Оркестр гремит басами
Трубач выдувает медь.
(Все знают эту песню)
Сейчас все компьютерные журналы
взахлеб описывают прелести Windows XP и четвертого Пентиума, хотя далеко
не все читатели владеют такими сокровищами. Хочется рассказать о забаве,
которая доставит много приятных минут и дома, и школьникам-студентам на
учебе и на работе (в отсутствие начальника, конечно) независимо от
крутизны компьютера. Годятся любые модели, начиная с 286 ХТ, лишь бы был
любой Бейсик. Предлагаю интересное развлечение – с помощью небольшой
программы компьютер превращается в музыкальный инструмент, близкий по
звучанию к электрооргану. Особенно интересно играть в компании – с детьми,
с родителями, одноклассниками – кто с кем, по выбору. Программа позволяет
подбирать на слух или по нотам и играть различные мелодии. Звук выводится
встроенным динамиком. Программа написана на Бейсике, так как он имеет
удобные встроенные команды для задания октав, нот и длительности звучания.
В других языках, например, Turbo Pascal’e такие возможности не
предусмотрены – можно задать частоту звучания и длительность, всё
остальное надо программировать самому.
В Бейсике вывод мелодии задаётся
оператором PLAY и строкой символов, имеющих следующий смысл: О - номер
октавы от 0 по 6, причём первые три (номера с 0 по 2) лежат ниже первой
октавы, а четыре выше (номера с 3 по 6) L - длительность текущей и всех
последующих нот от целой (L1) до 1/64 (L64) MB – обычное исполнение ML –
легато MS – стаккато P – пауза от 1 до 1/64 секунды (P1 – P64) . –
(точка)- увеличивает длительность ноты или паузы в 1.5 раза CDEFGAB –
вызывает звучание нот – полная семизвуковая гамма, начиная с С=
«ДО» второй октавы. D= ”PE”, E=“МИ», F=”ФА»,
G=”СОЛЬ», A=”ЛЯ», B= ”СИ».
Ноты можно выводить с диезом (+ или #) для повышения тона или с бемолем
(- ) для понижения. Можно было бы рассказать, что частота звука нот, отстоящих друг от
друга на одну октаву, отличается ровно в два раза, то есть разница в пол
тона соответствует разнице частот в корень двенадцатой степени из двух раз, что двенадцать полутонов и дают семь
известных нот и пять дополнительных черных клавиш на рояле, и что
частота колебаний ноты «ля» первой октавы равна 440 Герц.
Но читатели, учившиеся в музыкальной школе,
это знают, не учившимся все равно сходу не усвоить, и те и другие ждут
перехода к практическому воплощению программного пианино. Приведённые
сведения позволят вам разобраться с предлагаемой программой и изменять ее,
добиваясь различных эффектов. Итак, обещанный текст программы:
4 PLAY"O0L64CML" 1
0 Q$=INKEY$:IF LEN(Q$)=0
THEN Q$=Q$632*1
15 IF Q$=CHR$(27) THEN STOP
20 IF
Q$="1"THEN PLAY"O1L16CML"
30 IF Q$="2"THEN PLAY"O1L16D"
40 IF
Q$="3"THEN PLAY"O1L16E"
50 IF Q$="4"THEN PLAY"O1L16F"
60 IF Q$=
"5"THEN PLAY"O1L16G"
70 IF Q$= "6"THENPLAY"O1L16A"
80IF Q$=
"7"THENPLAY"O1L16B"
90IF Q$= "8"THEN PLAY"O2L16C"
100IF Q$ =
"9"THENPLAY"O2L16D"
110 IF Q$= "0"THEN PLAY"O2L16E"
120 IF
Q$="-"THEN PLAY"O2L16F"
140 IF Q$="`"THEN PLAY"O0L16B"
150 IF Q$=
"="THEN PLAY"O2L16G"
160 IF Q$="A"THEN PLAY"O2L16A"
170 IF
Q$="S"THEN PLAY"O2L16B"
180 IF Q$="D"THEN PLAY"O3L16C"
190 IF
Q$="F"THEN PLAY"O3L16D"
200 IF Q$="G"THEN PLAY"O3L16E"
210 IF
Q$="H"THEN PLAY"O3L16F"
220 IF Q$="J"THEN PLAY"O3L16G"
230 IF Q$=
"K"THEN PLAY"O3L16A"
240 IFQ$="L"THEN PLAY"O3L16B"
250 IF
Q$=";"THEN PLAY"O4L16C"
260 IF Q$="'"THEN PLAY"O4L16D"
270 IF
Q$="Q"THEN PLAY"O1L16C#"
280 IF Q$="W"THEN PLAY"O1L16D#"
290 IF
Q$="E"THEN PLAY"O1L16E"
300 IF Q$="R"THEN PLAY"O1L16F#"
310 IF
Q$="T"THEN PLAY"O1L16G#"
320 IF Q$="Y"THEN PLAY"O1L16A#"
330 IF Q$= "U"THEN PLAY"O1L16B"
340 IF Q$= "I"THEN
PLAY"O2L16C#"
350 IF Q$= "O"THEN PLAY"O2L16D#"
360 IF Q$ = "P"THEN
PLAY"O2L16E"
370 IF Q$= "["THEN PLAY"O2L16F#"
380 IF Q$= "]"THEN
PLAY"O2L16G#"
390 IF Q$= "Z"THEN PLAY"O2L16A#"
400 IF Q$= "X"THEN
PLAY"O2L16B"
420 IF Q$= "C"THEN PLAY"O3L16C#"
430 IF Q$= "V"THEN
PLAY"O3L16D#"
440 IF Q$= "B"THEN PLAY"O3L16E"
450 IF Q$="N"THEN PLAY"O3L16F#"
460 IF Q$= "M"THEN PLAY"O3L16G#"
470 IF Q$= ","THEN PLAY"O3L16A#"
480 IF Q$="."THEN PLAY"O3L16B"
490 IF Q$= "/"THEN PLAY"O4L16C#"
1000 GOTO 10
Программа отлажена в Turbo Basic’e, корректно работает в QBasic’e (в
том числе и русифицированном) и в «патриархе» GWBasic’e. В строке 10
оператор INKEY$ опрашивает клавиатуру и заносится в переменную Q символ
нажатой клавиши. В последующих строках анализируется символ нажатой
клавиши – если - то выход, для
других клавиш вызывается звучание определённой ноты. После запуска
программы клавиатура превращается в электроорган – при нажатии любой
клавиши звучит соответствующая нота. Если у вас есть музыкальный слух, то
через несколько минут вы освоитесь и сможете сыграть любую мелодию. А если
медведь всё-таки наступил – не огорчайтесь – вы всё равно освоитесь, через
часик, и будете играть чуть хуже Растроповича с Башметом. Для тех, у кого
безнадёжно со слухом, с голосом и с пониманием этой безнадёжности, но есть
непреодолимое желание помузицировать (как, например, у автора программы)
приведём популярные мелодии, записанные в символах клавиатуры в
соответствии с программой.
Катюша - ASDADDSAS0SDFSFFDSA GKJKJHHGFGAHFG
DFFDSA
Марсельеза – DDHHHJJJ;KH,JF,,KJJH - 2 раза 7-40 -
HDHDHDHMHMHMHM:M:M,J,MJHGJ
Три поросёнка – JGDDDKJ – 2раза KJ;;;JK
Ламбада – GFDSAADSA=A09090 2 раза FFFA—AGFD-ADSSA= повторить сначала, затем ADSSA
Ёлочка - 500908555009+PP66—098099678
Улыбка – JGKJFHGFD GJKKKL’;LK;J
KL;LKGHFK LK;JLKKJFGFD
Подмосковные вечера – ADGDFDSGFA DGJJKJHG
NMLKGDAGFH JHGFDGFA
Прогноз погоды – GGGFDDSAA]ASA=-- HHHGFFFSSZSGFD
Черный ящик в Что Где Когда – 88U890-= = = ASDDDSDGDFSD
Силита Линда (эта
песня была на пластинке пятидесятых годов вместе с Бессамо мучо и Мамайо
Кэрри, после, почему-то небыло приятных мелодий) FJJGNN – 2 раза FJJGNGDA
DGGGNGDA DGGNGS = Припев: LKJDJKJLJ FGFGF;;KN FGFLKLKJ
Не поленитесь,
разучите эти мелодии и получите огромное удовольствие от такого
своеобразного приобщения к миру музыки.
Программа предоставляет широкий
простор для усовершенствований: можно выводить на экран клавиши рояля,
дублируя свою игру отображением нажатия клавиш, ещё можно сопровождать
музыку появлением на экране различных фигур или цветных эффектов. Можно
задействовать управляющие клавиши Shift и Ctrl в качестве педалей рояля
или переключателей регистров на аккордеоне. Самыми серьёзными минусами
программы являются, во-первых, невозможность взять аккорд из нескольких
звуков и, во-вторых, невозможность вывода звука с помощью звуковой карты
на внешние колонки. Оставим эти вопросы для умельцев - любителей музыки.
Знатоки могут сказать, что существуют множество музыкальных программ,
превращающих клавиатуру компьютера в клавиатуру музыкальную. Но эти
программы, опять же, требуют Пентиума со звуковой картой, желательно с
хорошей, а, главное, написанная программа всегда милее готовой, как
домашние пельмени вкуснее купленных.
Несколько слов о музыкальных
программах-редакторах. Они позволяют не только забавляться, редактируя и
прослушивая миди-файлы, но и дают возможность композитору свести к
минимуму рутинную работу, облегчая творческий процесс. По словам моего
брата композитора и дирижера военного оркестра, мало придумать хорошую
музыку, основная работа композитора – «оркестровка», то есть написание
партий для каждого инструмента в оркестре. А это требует многих часов
скрупулезного труда, так как, например, для саксафона-альта мелодия должна
быть на полтора тона ниже, чем для фортепиано (точнее, не сама мелодия, а
ее нотное представление). Этот процесс сдвига для каждого инструмента
называется транспонированием и отнимает много времени. Здесь и приходит на
помощь музыкальный редактор, например “Note Worthly Composer”
(www.NoteWorthlyComposer.com). Он, среди прочих возможностей, позволяет
набрать мелодию и транспонировать ее для любого инструмента простым
нажатием мышкой нужной кнопки. Можно, так же прослушать мелодию,
подправить при необходимости и распечатать ноты на принтере. Музыкальных
редакторов очень много, их обзор не входит в наши планы, при желании их
можно найти в Сети или на пиратских дисках.
Для тех, кому интересно
цифровое представление звука, предлагаю популярное изложение темы без
претензии на академическую полноту. Основной звуковой формат - «WAV».
Именно в нем записаны многочисленные «родные» звуки Windows, привязанные к
разным событиям – открытие окна, ошибка, разворачивание из значка и т.д.
Звук записан в цифровом виде. Чтобы досконально разобраться, что такое
«цифровой звук» можете прочитать, например, статью «Загадки и парадоксы
цифрового звука» (http://www.computerra.ru/offline/1999/292/3538/), но
предупреждаю, вам понадобится знание теоремы Котельникова–Найквиста и
дискретного преобразования Фурье. Но можно обсудить и попроще.
Итак, звук,
представляющий собой совокупность гармонических колебаний, разбивается по
времени на «участки» в количестве 44100 в 1 секунду. (Эта величина 44.1
кГц называется частотой дискретизации, она должна быть вдвое больше
максимальной частоты «цифруемого» звука, принимаемой 20 кГц.) Затем, на
каждом участке определяется величина колебания и записывается 16-битным
двоичным числом, то есть числом от 0 до 216 –1=65535 в привычном нам виде.
Именно так записана музыка на музыкальных лазерных дисках. Именно с такой
записью звука в начале восьмидесятых два крупнейших производителя – Sony и
Philips – наглядно продемонстрировали всем, как можно заработать
миллиарды, сменив для всего народа пластинку с пластмассовой на CD. 16-бит
– это разрядность кодирования амплитуды звукового колебания на каждом
участке, выбирается в зависимости от требования к качеству передаваемого
звука. Например, в цифровых телефонах, не требующих «музыкального»
качества, используется 8-битное кодирование. Давайте прикинем, какой объем
занимает цифровой звук с качеством CD.
· Умножим частоту дискретизации на
разрядность кодирования: 44100Гц * 16 бит = 705600 бит/сек – получили
скорость цифрового потока.
· Умножим на 2 с учетом того, что у нас два
канала, то есть стерео: 705600 бит/сек * 2 = 1411200 бит/сек
· Переведем в
байты (в 1 байте 8 бит): 1411200бит/сек : 8 = 176400 байт/сек
· Переведем
в килобайты (1кбайт=1024 байт): 176400 байт/сек : 1024 = 172.2 кбайт/сек;
получили величину потока, часто встречающуюся при обозначении параметров
звука качества CD.
· Посчитаем объем дисковой памяти для записи
минутного отрывка звука, для чего умножим скорость цифрового потока на 60:
172.2кбайт/сек * 60 = 10332 кбайт
· Переведем эту величину в мегабайты
(1Мбайт = 1024кбайт): 10322кбайт : 1024 = 10 Мбайт То есть для записи
одной минуты музыки в формате WAV необходимо 10 мегабайт на нашем
винчестере, а для трехминутная мелодия займет 30 Мб. Это ужасно много – 30
мелодий займут на винчестере 1 Гигабайт, жалко даже для самых любимых
мелодий. На CD-диске объемом 650 Мб поместятся 20 мелодий или около десяти
6-минутных произведений, что общеизвестно. Зато цифровая запись считается
идеальной по качеству, неподвержена многочисленным недостаткам пластинок и
магнитофонов. Хотя в прессе можно найти и недовольство специалистов и
меломанов тем, что звук, якобы, приобретает «консервный» характер
звучания, что с уменьшением уровня звука нарастает ошибка квантования и
что частота дискретизации 44.1 кГц слишком груба для сложного спектра.
Меня качество лазерных CD очень даже удовлетворяет, и читатели, думаю, в
этом со мной согласятся.
Так что же делать с большим объемом? Выход один –
сжимать! Ведь вышеуказанные 16 бит в подавляющем большинстве случаев
содержат ряды нулей, что открывает простор для сжатия. За последнее время
разными фирмами разработаны многочисленные форматы представления сжатого
звука. Обзор этих форматов и адреса их разработчиков в Интернете можно
найти в обзоре «Чем оцифровывают музыку?»
(http://www.computerra.ru/offline/1999/290/3454/ ). Нас же интересует наш
старый знакомый МР3 (www.mp3.com ). Он сжимает формат WAV примерно в 10
раз, то есть наша трехминутная мелодия займет не 30 Мб, а «всего» 3! (не
факториал, а восторг), и отдать 1 Гб винчестера для 300 любимых мелодий
уже не и так жалко. Это будет целая фонотека, в рамках которой можно
создавать «Play-list» для прослушивания в зависимости от настроения, свой
для каждого пользователя (члена семьи). Тем более сейчас, когда в продаже
появились винчестеры объемом 160 Гб, можно собрать на таком диске
практически все любимые мелодии в формате МР3.
Некоторые любители музыки
не разделяют моих восторгов по поводу звуковых файлов МР3. Действительно,
пластинку или CD-диск можно подержать в руках, понюхать, подарить,
уронить, дать послушать, обменяться и т.д., то есть это товар, продукт,
вещь со всеми атрибутами (помню, как раньше любовно разрисовывали коробки
от магнитных лент с любимыми записями). А файл, вроде он есть, но,
простите, где? Его не подаришь, не завернешь, не надпишешь. Однако оставим
эти вздохи тем, кто не любит сидеть за компьютером. Только ощущение того,
что я могу его (файл) перенести в другую папку, переслать, переименовать и
потом удалить, перекрывает все прелести от ощущения его как вещи. Опять же
с вещью куча хлопот – беречь ее, место для нее, искать ее и пыль с нее
сдувать, а тут все делает Windows. Возможность работы со звуком – одна из
самых приятных особенностей компьютерной составляющей нашей жизни, не
упускайте случая поиграть и послушать.