Звуковые файлы - это в основном поток данных, верно? Таким образом, вам на самом деле не нужно иметь дело со всем файлом сразу. Пользователи Audacity могут работать только с небольшим фрагментом этого большого файла в любой момент.
Гипотетически, если вы добавляете 1-секундный фрагмент звука к большому звуковому файлу, вам действительно нужно иметь дело со всем файлом только тогда, когда вам нужно сохранить, после чего вы склеиваете 3 части: до, 1 секунда фрагмент, а после. Таким образом, единственное, что должно быть в памяти, - это 1-й фрагмент, и, возможно, небольшая часть звука до и после фрагмента.
Поэтому, когда вы сохраняете, вы читаете, скажем, 64 мегабайта файла за раз (если вы действительно агрессивны), и передаете его во временный файл, пока не дойдете до точки вставки. Затем вы выводите 1-секундный фрагмент, передаете оставшуюся часть исходного файла, закрываете временный файл записи, удаляете исходный файл и переименовываете новый файл в исходное имя файла.
Конечно, это немного сложнее, чем это. Например, перед сохранением может быть несколько правок и буфер отмены. Но я могу в значительной степени гарантировать, что Audacity ограничен в несохраненной сложности редактирования количеством доступной оперативной памяти.