http://nostalgy.org.ru (c)2004 М.Бабичев 2 августа 2004 г. Как слушать MIDI без звуковой карты Музыка в формате MIDI очень компактна. Ведь это по сути дела набор нот, и ничего больше. Поэтому типичный файл .MID занимает всего 10...100 Кб. Кроме того, MIDI-файлы хорошо сжимаются различными архиваторами, также как текст (обычно раза в четыре). В результате на одну дискету можно записать несколько десятков неплохих MIDI-композиций, а это - больше часа музыки. Разумеется, музыку MIDI легко распространять по сети, и в Интернете существует много сайтов, с которых можно скачать практически любую мелодию или музыку к песне. Все это очень хорошо, но у формата MIDI есть свои особенности. Набор нот в MIDI-файле нужно превратить в музыку, то есть нам нужен некий виртуальный "музыкант", а еще лучше "оркестр". В роли "оркестра" выступают MIDI-синтезаторы. Они бывают аппаратными и программными. Профессиональные аппаратные синтезаторы высокого качества обычно выполнены в виде внешних устройств, подключаемых к компьютеру через специальный порт (обычно это порт MPU401/джойстик на звуковой карте, но есть и другие интерфейсы). Через порт передается поток нот.
Более простые аппаратные синтезаторы встроены в
звуковую карту. Эти синтезаторы бывают двух видов: Разумеется, с помощью формул практически невозможно синтезировать звук реального музыкального инструмента - многие факторы остаются неучтенными, поэтому звук на выходе FM-интезатора получается неестественным, "сухим" и мало похож на настоящую музыку. Однако долгое время это многих устраивало. Но с каждым годом память (как ОЗУ, так и ПЗУ) дешевела, и появилась возможность отказаться от частотного синтеза. В память волнового синтезатора стали записывать оцифрованные звуки настоящих музыкальных инструментов (сэмплы, или патчи). Волновой синтезатор, чтобы воспроизвести ноту, считывает из памяти соответствующий патч и выводит его на ЦАП, с нужной амплитудой и длительностью (изменением длительности, или тональности звучания патча можно получить любую из 12 нот - 7-ми основных и 5-ти промежуточных, нужной октавы). Если одновременно звучит несколько нот, синтезатор микширует их. Часть сэмплов записана в ПЗУ звуковой карты, и их нельзя измнить. Но звуковая карта с wave-синтезом также содержит ОЗУ (как правило в виде обычных модулей SIMM 30 pin), в которое можно записать с диска т.н. подгружаемые, дополнительные сэмплы. При воспроизведении MIDI волновым синтезатором получается гораздо более реалистичный, "живой" и выразительный звук, чем при использовании FM-синтеза. Иногда его трудно отличить от обычной аудиозаписи музыки. Наличие в файле MIDI только нотной партитуры обуславливает его малый размер, но к сожалению получаемый звук сильно зависит от синтезатора. Один и тот же MIDI-файл может звучать посредственно, а иногда просто скверно (на дешевой, часто безымянной звуковой карте с FM-синтезом), хорошо (на звуковой карте с wave-синтезом) и отлично (на профессиональной звуковой карте или синтезаторе при правильном выборе подгружаемых сэмплов). Хотя некоторые MIDI-файлы (как правило простые, рассчитанные на воспроизведение с помощью дешевых звуковых карт) неплохо звучат на любых синтезаторах. Итак, если при воспроизведении оцифрованной аудиозаписи качество звука определяется только фазочастотными и шумовыми характеристиками звукового тракта, то в случае с MIDI звук зависит также от характеристик синтезатора. С этим приходится мириться. Могу предложить две "аксиомы": 1. Не существует синтезатора (и программы-проигрывателя для него), одинаково хорошо воспроизводящего любой MIDI-файл. 2. Не существует MIDI-файла, одинаково хорошо воспроизводимого любым MIDI-синтезатором. Очевидно, MIDI-синтезатор является достаточно сложным и дорогим устройством, даже если он встроен в единственную микросхему на звуковой карте. Современные компьютеры как правило всегда содержат звуковую плату (часто встроенную в плату материнскую). Но со старыми компьютерами ситуация иная. Далеко не каждый 386, 486 или даже Pentium оснащен звуковой платой. Но это полбеды. За 2-3 доллара сегодня можно купить "звуковуху" и установить в слот ISA. А вот многие старые ноутбуки (и, к сожалению мой Toshiba Satellite 110CS) не оборудованы мультимедийными устройствами, и найти для них специальную звуковую карту (для шины PCMCIA) весьма сложно и дорого... Если трекерные файлы (.MOD, .STM, .XM, .IT...), оцифрованные звуки (.WAV, .VOC...) и даже сжатую музыку (.MP3) можно слушать через имеющийся в любом компьютере системный динамик PC-Speaker либо Covox (программ для этого существует достаточно много, в т.ч. на нашем сайте), то файлы MIDI до недавнего времени были недоступны для прослушивания без звуковой карты. Однако теперь, после долгих поисков удалось обнаружить программный MIDI-синтезатор TiMidity, работающий в DOS и не нуждающийся в звуковой карте! TiMidity выводит звук через системный динамик и даже через Covox, причем с весьма высоким качеством... Также TiMidity может выводить звук через звуковую карту, совместимую с Sound Blaster, не используя ее MIDI-синтезатор (но к сожалению у меня TiMidity плохо выводил звук через SB AWE32, в несколько раз быстрее чем нужно). TiMidity использует волновой синтез звука, для этого ему нужен набор патчей от звуковой карты Gravis Ultrasound (GUS General MIDI Patch Set). В наборе 190 файлов .PAT, занимает он около 8 Мб. Также, как TiMidity, его можно скачать с нашего сайта NOSTALGY.ORG. К сожалению, скачивание 8 Мб по телефонной линии займет около часа на скорости 28800 бит/с, но если вы желаете слушать MIDI на ноутбуке или ином компьютере без звуковой платы - загрузите этот набор патчей, не пожалеете! Использовать TiMidity целесообразно, даже если у вас есть звуковая карта - с невыразительным FM-синтезатором. TiMidity хорошо воспроизвдоит большинство файлов MIDI, почти так же, как это делает SB AWE32 со специальной программой-проигрывателем MIDI (AWEPLAY). Качество звука не зависит от аппаратуры (могут меняться только громкость, тембр и уровень шумов): один и тот же MID-файл проигрывается TiMidity на разных компьютерах одинаково как через Ковокс, так и через спикер.
Для синтезатора TiMidity нужен компьютер 386 и выше.
Программа конфигурируется в файле запуска TRY_ME.BAT
переменными DEV и SPK (либо ключами -O и -K).
Ключ -S задает частоту дискретизации звука, чем
больше эта частота, тем лучше. Но ее максимальное
значение ограничивается быстродействием компьютера.
Для 486SX-25 автор советует 16000 Гц, для ноутбука
Toshiba (Pentium-100) максимальная частота, на
которой программа нормально работает - 27000 Гц.
Файл конфигурации TIMIDITY.CFG (его имя и путь к нему
определяются параметром ключе -c в командной строке)
содержит описание доступных программе патчей:
Программа выполнена в виде проигрывателя, она в алфавитном порядке воспроизводит MID-файлы, заданные в командной строке. Клавиша [N] - следующий файл, [P] - предыдущий, [F] - "перемотка вперед, [B] - назад. [R] - проиграть файл заново. [Q] - выйти в DOS; [v] и [V] - уменьшить/увеличить громкость (при прослушивании через Ковокс для лучшего качества звука следует увеличить громкость до 800%). К сожалению интерфейс программы очень "сырой". При открытии MID-файлов на экран выводится информация о файле, названия дорожек, сообщения об ошибках, сверху вниз, но курсор выходит за нижнюю границу экрана и информация не отображается на экране. Также присутствует упомянутый выше недостаток при выводе звука через Sound Blaster. К счастью, к программе прилагаются исходники на языке Си. Возможно, найдутся программисты, которые пожелают исправить эти недостатки. Автор этой статьи будет очень рад, если ему предоставят возможность разместить исправленную версию программы на сайте. Следует заметить, что TiMidity является бесплатной, свободно распространяемой (freeware) и соответствует стандарту General Public Licence. В-общем программа работает хорошо и не вызывает нареканий, кроме указанных выше. Автор этой статьи был немало обрадован, запустив TiMidity на компьютере Pentium-100 с ч/б монитором Hercules (обычно эта машина используется в качестве FTP-сервера). Через спикер раздался громкий и качественный звук. Для лучшей громкости следует использовать в качестве спикера динамическую головку большего диаметра и мощности, чем стандартная (100 мм, 1-2 Вт). Итак, TiMidity - единственная в своем роде программа для DOS, позволяющая слушать через системный динамик или Ковокс (подключаемый к параллельному порту LPT) файлы MIDI, причем с неплохим качеством. К тому же эта программа бесплатная... Если у вас есть другие аналогичные проигрыватели для DOS, просим поделиться с нами :-). Пишите на форум nostalgy.org.ru. Спасибо за внимание! М.Бабичев (Антиквар) |