Записать миди-последовательность в файл

У меня есть консольная программа, написанная на C, которая генерирует короткие случайные музыкальные композиции с использованием библиотеки PortMidi. В конечном итоге я хотел бы написать эти последовательности в виде миди или аудио файла.

Я нашел некоторые объяснения функций чтения и записи в библиотеке portmidi: Pm_read(), а также Pm_write(); но без примеров я изо всех сил пытаюсь понять и реализовать это.

Можно ли как-то экспортировать всю последовательность сразу?

Если нет, то нужно ли рекурсивно читать в буфер и сохранять отдельные ноты midi? Или мне нужно прочитать всю последовательность в буфер и затем сохранить ее?

1 ответ

У PortMidi нет никакого способа сделать все это в одном шебанге (насколько я могу судить), поэтому вы должны вручную буферизовать все выходные MIDI-сообщения в массив и затем сохранить их в файл. Хороший пример этого можно найти в receive_sysex() функция на http://audacity.googlecode.com/svn/audacity-src/trunk/lib-src/portmidi/pm_test/sysex.c.

Другие вопросы по тегам