Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Звуки и Музыка    >>    music
   
 
 Фоновая Музыка в Паскаль-Программах  Ярослав Мигач 19.03.1992

Пакет подпрограмм для работы с фоновой музыкой на PC Speaker
Background music PC Speaker routines



6k 
 

MUSIC V 1.0 Пакет подпрограмм для работы с фоновой музыкой (c) 1990, Мигач Ярослав РУКОВОДСТВО ПО ЭКСПЛУАТАЦИИ Пакет Music предназначен для осущетвления проигрывания мелодий на фоне выполнения любой написанной Вами программы на языке Turbo Pascal V 5.5. Сам пакет реализован при помощи языков Turbo Pascal V 5.5 и Assembler. Пакет требует для своей работы такие системные модули как Dos и Crt. Для подключения Music воспользуйтесь следующим обьявлением: USES Dos, Crt, Music; Одновременно в пакете может быть использованно до 20 различных мелодий. В одной мелодии не может содержатся более чем 999 тактов. Каждый такт представляет собой частоту в герцах и длительность звучания динамика на этой частоте. Длительность задается в миллисекундах, однако всегда будет приводится к числу, кратному 55 мс. Частота звучания < 55, указывает на то, что динамик необходимо отключить. При этом осуществляется переход к началу проигрывания текущей мелодии. Таким образом возможно осуществление циклического проигрывания мелодии. Если будет произведено обращение к мелодии которая не была инициализирована, то исполнение музыки автоматически прекращается. Невозможно выполнить процедуры обработки мелодии, исполняемой в текущий момент времени. Перейдем к расмотрению процедур пакета. Прежде всего необходимо создать хотя бы одну мелодию. Инициализирует мелодию процедура: n_music ( ms : INTEGER; sz : INTEGER ); где ms номер инициализируемой мелодии, а sz ее предполагаемый размер в тактах ( не более 999 ). Если Вы допустите ошибку при задании параметров, то процедура инициализации выполнена не будет. После выполнения инициализации можно приступить к занесению нот. Это действие выполняется при помощи процедуры : note ( h_sound, t_sound : INTEGER ); где первый параметр - частота текущего такта, а второй - длительность. Если Вы попытаетесь задать больше тактов,чем указано в процедуре инициализации, то такты сверх максимально заданного номера будут проигнорированы. При h_sound = 0 динамик отключается на t_sound микросекунд. При t_sound < 55 происходит переключение на первый такт мелодии. Следует