Воспроизведение биперной музыки в Borland Pascal'е

 

Почти все программисты, пишущие программы на паскале, встречались с такой проблемой: как добавить музыку в свои программы?

Некоторые решали это так: писали для каждой ноты sound, delay, nosound, и так много-много раз. Создание музыки таким методом превращает программирование в настоящий ад, потому что эти три команды иногда приходится писать по тысячу раз.

Другие создавали свой формат хранения музыки, но он был ни с чем не совместим, и на написание мелодии уходило очень много времени.

Третье писали небольшой Wav проигрыватель, но поскольку wav файлы весят очень много, то программы получались очень громоздкими.

Реша помочь программистам в этом деле, я написал библиотеку Beeper, возможности которой мы сейчас и рассмотрим.

 

Итак,  что умеет модуль Beeper?  Модуль Beeper  воспроизводит текстовые файлы Vortex Tracker'а через ПК-спикер.

Vortex tracker это редактор AY музыки, который, для совместимости с другими редакторами, может сохранять музыку в очень легко-читаемый текстовой формат. Конвертировать музыкальный фаил в такой формат очень легко: выбрать в меню file->save as и в выпадающем списке выбрать module in text file (only for work).

Теперь перейдем к программированию. Библиотека Beeper содержит комманду PlayVT, которая воспроизводит мелодию. Вот описание этой процедуры:

 

PlayVT(filename, kanal, echo);

·        Filename - имя проигрываемого файла.

·        Kanal - проигрываемый канал. Дело в том, что AY- музыка трехканальная, а через бипер можно проигрывать только одноканальную, поэтому в параметре kanal нужно указать номер проигрываемого канала: 1, 2 или 3. Чтобы узнать канал, где играет основная мелодия музыки, можно использовать метод тыка, а можно с помощью Vortex tracker'а. В этом случае, надо в редакторе запустить музыку, и смотреть, в каком канале играемая в данный момент нота соответствует звучанию основной темы мелодии.

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

·        Echo - параметр типа Boolean. Если он включен, то нота играет до тех пор, пока не начнет играть следующая, если же выключен, то нота играет короткий промежуток времени, и потом, пока не идет следующая нота, ничего не звучит. Параметр Echo надо определять методом подбора, но в большинстве мелодий он в значении True.

 

С помощью этой команды можно проиграть любой текстовой AY - модуль, но это не факт, что он будет воспроизводится правильно. У некоторых файлов основная мелодия расположена на нескольких каналах, и поэтому воспроизводится плохо, но, к счастью, таких мелодий меньшинство и большая часть воспроизводится качественно.

 

 

Ссылки:

Библиотеку, исходник и демонстрационную программу можно скачать здесь:

Kabardcomp.narod.ru/beeper.rar

 

Vortex Tracker и большой архив музыки для него (20000 штук) можно скачать с сайта bulba.untergrunt.ru

 

Hosted by uCoz