Музыкальная шкатулка
26 февраля 2004
Рубрика: Обзоры и мнения.
Автор: .
pic
Оркестр гремит басами
Трубач выдувает медь.
(Все знают эту песню)

Сейчас все компьютерные журналы взахлеб описывают прелести 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»
10 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″THEN PLAY»O1L16A»
80 IF Q$=»7″THEN PLAY»O1L16B»
90 IF Q$=»8″THEN PLAY»O2L16C»
100 IF Q$=»9″THEN PLAY»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 IF Q$=»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

pic

Программа отлажена в 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 раза
FFFAAGFD-ADSSA= повторить сначала, затем ADSSA

Елочка — 500908555009+PP660980 99678

Улыбка — 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

pic

Не поленитесь, разучите эти мелодии и получите огромное удовольствие от такого своеобразного приобщения к миру музыки.
Программа предоставляет широкий простор для усовершенствований: можно выводить на экран клавиши рояля, дублируя свою игру отображением нажатия клавиш, еще можно сопровождать музыку появлением на экране различных фигур или цветных эффектов. Можно задействовать управляющие клавиши Shift и Ctrl в качестве педалей рояля или переключателей регистров на аккордеоне.
Самыми серьезными минусами программы являются, во-первых, невозможность взять аккорд из нескольких звуков и, во-вторых, невозможность вывода звука с помощью звуковой карты на внешние колонки. Оставим эти вопросы для умельцев — любителей музыки.

pic

Знатоки могут сказать, что существует множество музыкальных программ, превращающих клавиатуру компьютера в клавиатуру музыкальную. Но эти программы опять же требуют Пентиум со звуковой картой, желательно с хорошей, а, главное, написанная программа всегда милее готовой, как домашние пельмени вкуснее купленных. Несколько слов о музыкальных программах-редакторах. Они позволяют не только забавляться, редактируя и прослушивая миди-файлы, но и дают возможность композитору свести к минимуму рутинную работу, облегчая творческий процесс. По словам моего брата, композитора и дирижера военного оркестра, мало придумать хорошую музыку, основная работа композитора «оркестровка», то есть написание партий для каждого инструмента в оркестре. А это требует многих часов скрупулезного труда, так как, например, для саксофона-альта мелодия должна быть на полтора тона ниже, чем для фортепиано (точнее, не сама мелодия, а ее нотное представление). Этот процесс сдвига для каждого инструмента называется транспонированием и отнимает много времени. Здесь и приходит на помощь музыкальный редактор, например «Note Worthly Composer» (www.NoteWorth lyComposer.com). Он, среди прочих возможностей позволяет набрать мелодию и транспонировать ее для любого инструмента простым нажатием мышкой нужной кнопки. Можно также прослушать мелодию, подправить при необходимости и распечатать ноты на принтере. Музыкальных редакторов очень много, их обзор не входит в наши планы, при желании их можно найти в Сети или на пиратских дисках.

pic

Для тех, кому интересно цифровое представление звука, предлагаю популярное изложение темы без претензии на академическую полноту. Основной звуковой формат — «WAV». Именно в нем записаны многочисленные «родные» звуки Windows, привязанные к разным событиям — открытие окна, ошибка, разворачивание из значка и т.д. Звук записан в цифровом виде. Чтобы досконально разобраться, что такое «цифровой звук», можете прочитать, например, статью «Загадки и парадоксы цифрового звука» (http://www.computer ra.ru/offline/1999/292/3538/), но предупреждаю, вам понадобится знание теоремы Котельникова-Найквиста и дискретного преобразования Фурье. Но можно обсудить и попроще. Итак, звук, представляющий собой совокупность гармонических колебаний, разбивается по времени на «участки» в количестве 44100 в 1 секунду. (Эта величина 44.1 кГц называется частотой дискретизации, она должна быть вдвое больше максимальной частоты «цифруемого» звука, принимаемой 20 кГц.) Затем на каждом участке определяется величина колебания и записывается 16-битным двоичным числом, то есть числом от 0 до 216 1=65535 в привычном нам виде. Именно так записана музыка на музыкальных лазерных дисках. Именно с такой записью звука в начале восьмидесятых два крупнейших производителя — Sony и Philips — наглядно продемонстрировали всем, как можно заработать миллиарды, сменив для всего народа пластинку с пластмассовой на CD.

pic

16-бит — это разрядность кодирования амплитуды звукового колебания на каждом участке, выбирается в зависимости от требования к качеству передаваемого звука. Например, в цифровых телефонах, не требующих «музыкального» качества, используется 8-битное кодирование.
Давайте прикинем, какой объем занимает цифровой звук с качеством CD:

• умножим частоту дискретизации на разрядность кодирования:
44100Гц * 16 бит = 705600 бит/сек.
получили скорость цифрового потока
• умножим на 2 с учетом того, что у нас два канала, то есть стерео:
705600 бит/сек. * 2 = 1411200 бит/сек
• переведем в байты (в 1 байте 8 бит):
1411200бит/сек.: 8 = 176400 байт/сек.
• переведем в килобайты (1кбайт=1024 байт):
176400 байт/сек.: 1024 = 172.2 кбайт/сек.; получили величину потока, часто встречающуюся при обозначении параметров звука качества CD, например в приложениях «Фонограф» из Windows 95 или «Звукозапись» из Windows 98
• посчитаем объем дисковой памяти для записи минутного отрывка звука, для чего умножим скорость цифрового потока на 60:
172.2кбайт/сек. * 60 = 10332 кбайт
• переведем эту величину в мегабайты (1Мбайт = 1024кбайт):
10322кбайт: 1024 = 10 Мбайт

То есть для записи одной минуты музыки в формате WAV необходимо 10 мегабайт на нашем винчестере, а трехминутная мелодия займет 30 Мб. Это очень много — 30 мелодий займут на винчестере 1 Гигабайт, жалко даже для самых любимых мелодий. На CD-диске объемом 650 Мб поместятся 20 мелодий, или около десяти 6-минутных произведений, что общеизвестно. Зато цифровая запись считается идеальной по качеству, не подвержена многочисленным недостаткам пластинок и магнитофонов. Хотя в прессе можно найти недовольство специалистов и меломанов тем, что звук, якобы, приобретает «консервный» характер звучания, с уменьшением уровня звука нарастает ошибка квантования и частота дискретизации 44.1 кГц слишком груба для сложного спектра. Меня качество лазерных CD очень даже удовлетворяет, и читатели, думаю, в этом со мной согласятся.

pic

Так что же делать с большим объемом? Выход один — сжимать! Ведь вышеуказанные 16 бит в подавляющем большинстве случаев содержат ряды нулей, что открывает простор для сжатия. За последнее время разными фирмами разработаны многочисленные форматы представления сжатого звука. Обзор этих форматов и адреса их разработчиков в Интернете можно найти в обзоре «Чем оцифровывают музыку?» (http://www.computerra.ru/offline/1999/290/3454/). Нас же интересует наш старый знакомый МР3 (www.mp3.com). Он сжимает формат WAV примерно в 10 раз, то есть наша трехминутная мелодия займет не 30 Мб, а «всего» 3! (не факториал, а восторг), и отдать 1 Гб винчестера для 300 любимых мелодий уже не так жалко. Это будет целая фонотека, в рамках которой можно создавать «Play-list» для прослушивания в зависимости от настроения, свой для каждого пользователя (члена семьи). Тем более сейчас, когда в продаже появились винчестеры объемом 60 Гб, можно собрать на таком диске практически все любимые мелодии в формате МР3.
Некоторые любители музыки не разделяют моих восторгов по поводу звуковых файлов МР3. Действительно, пластинку или CD-диск можно подержать в руках, понюхать, подарить, уронить, дать послушать, обменяться и т.д., то есть это товар, продукт, вещь со всеми атрибутами (помню, как раньше любовно разрисовывали коробки от магнитных лент с любимыми записями). А файл, вроде он есть, но, простите, где? Его не подаришь, не завернешь, не надпишешь.
Однако оставим эти вздохи тем, кто не любит сидеть за компьютером. Только ощущение того, что я могу его (файл) перенести в другую папку, переслать, переименовать и потом удалить, перекрывает все прелести от ощущения его как вещи. Опять же с вещью куча хлопот — беречь ее, место для нее, искать ее и пыль с нее сдувать, а тут все делает Windows.
Возможность работы со звуком — одна из самых приятных особенностей компьютерной составляющей нашей жизни, не упускайте случая поиграть и послушать.

Orphus system
Подписывайтесь на канал infoCOM.UZ в Telegram, чтобы первыми узнавать об ИКТ новостях Узбекистана
В Telegram
В WhatsApp
В Одноклассники
ВКонтакте