Встраивать метаданные в волновые файлы, сохраненные с помощью NAudio
Я работаю над некоторым программным обеспечением, способным генерировать "одноцикловые осциллограммы" на основе некоторых базовых осциллограмм, и некоторые операции над ними выполняются (упрощенно). На данный момент я добавил возможность импортировать волновые файлы (в виде "нарисованной от руки") и простую функцию воспроизведения (используя NAudio), чтобы позволить пользователю слушать генерируемые сигналы.
Целью генерации этих сигналов является окончательный экспорт их во внешние / отдельные волновые файлы ("Одноцикловые сигналы" и / или таблицы волн), чтобы их можно было загружать в синтезаторы / сэмплеры и использовать для производства музыки.
Однако помимо необработанных данных (сигналов) я хотел бы добавить маркеры петель (петля-начало / конец) вместе с корневым ключом и так далее. Кто-нибудь знает, возможно ли это с Наудио, и если да, то как?
1 ответ
Файлы WAVE состоят из серии фрагментов RIFF. Есть два, которые должны присутствовать - блок форматирования и блок данных, но можно добавить и другие, и есть несколько стандартных, которые могут удовлетворить ваши потребности. NAudio не имеет встроенной поддержки записи произвольных кусков, но WaveFileWriter
может быть переопределено, чтобы включить запись пользовательских чанков. Хорошим примером этого является CueWaveFileWriter
класс, который может быть полезен для ваших маркеров цикла.
Альтернативой является изучение создания файлов.sfz, которые поддерживаются многими сэмплерами, и это простой текстовый формат, который описывает, как должны использоваться ваши сэмплы WAV.