Создание mp3 из миди

Мне нужно генерировать файлы MP3 из файлов MIDI в пакетном режиме. Есть ли библиотека, которая может это сделать? Желательно с открытым исходным кодом и написанным на .NET.


person Amy    schedule 21.02.2010    source источник
comment
@ yodaj007: Я не думаю, что LAME может читать MIDI ... сначала его нужно преобразовать в форму волны.   -  person Mauricio Scheffer    schedule 22.02.2010
comment
Поиск звуковых шрифтов. Я думаю, что FruitLoops может конвертировать MIDI в mp3, если у вас есть звуковые шрифты.   -  person Spidey    schedule 22.02.2010
comment
короткий ответ - невозможно, но мне было бы любопытно узнать, чего вы на самом деле пытаетесь достичь. Может быть, есть другой способ добраться туда.   -  person cdonner    schedule 22.02.2010
comment
У меня есть около 80 композиций, написанных в MIDI, и я хочу преобразовать их в MP3, чтобы их можно было воспроизводить на всех компьютерах и они звучали одинаково.   -  person Amy    schedule 22.02.2010
comment
is.gd/igp4m -- я видел так много вопросов о преобразовании MIDI в аудио, что мне пришлось написать этот . Пожалуйста, найдите время, чтобы прочитать его, если вы планируете написать какую-то программную систему, которая должна это делать.   -  person Nik Reiman    schedule 06.12.2010


Ответы (4)


Вы можете преобразовать midis в mp3, используя пакетный файл и vlc.

Как указано в вики VLC, для воспроизведения миди в Windows требуется версия 1.1.0, а также звуковой шрифт. Эта версия в настоящее время находится на стадии тестирования, поэтому ее можно загрузить с http://download.videolan.org/pub/videolan/testing/

После того, как вы настроили поддержку midi в соответствии с вики и протестировали ее( играя миди). Вы можете настроить свой пакетный файл.

Команда, которую я использовал для преобразования одного миди в mp3,

C:\Users\Public\Music>"C:\Program Files\VideoLAN\VLC\vlc" -I dummy -vvv "australia.mid" --sout=#transcode{acodec="mp3",ab="512","channels=2"}:standard{access="file",mux="raw",dst="australia.mp3"} vlc://quit

Приведенная выше команда сохраняет оба файла в одной папке. Я адаптировал эту команду на основе информации, найденной в VLC wiki-How_to_Batch_Encode.

person mikek3332002    schedule 18.05.2010

Ваша самая большая проблема — это преобразование из миди в волновую форму любого формата. Например, в миди не указано, как звучит пианино, поэтому каждый миди-плеер будет звучать по-разному.

person Chris    schedule 22.02.2010

Эта тема обсуждается также в теме Нужна библиотека, генерирующая WAVE из Midi, возможно, вы могли бы найти там некоторую информацию, особенно в мой ответ.

Полученную волну можно затем закодировать в MP3 или любой другой формат, который вам нравится. Для кодирования WAVE в MP3 есть пример проекта с использованием библиотеки LAME encoder.

person Aries    schedule 15.01.2012

Этого можно добиться, используя timidity и lame:

timidity myMidiFile.midi -Ow -o - | lame - audioOutput.mp3"

Для всех ваших пакетных нужд используйте эти программы в сценарии bach.

Если это должно быть связано с C, попробуйте проверить Csound.

Для .NET проверьте NAudio.

person Speldosa    schedule 17.01.2014