БЛОГФорумСсылки Написать письмоПочему Арбуз? Служебная UN ЕЖЕ-движение - международный союз интернет-деятелей

Музыкальная шкатулка

Оркестр гремит басами
Трубач выдувает медь.
(Все знают эту песню)

Сейчас все компьютерные журналы взахлеб описывают прелести 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. Возможность работы со звуком – одна из самых приятных особенностей компьютерной составляющей нашей жизни, не упускайте случая поиграть и послушать.


Автор about me
Design by dady_MYKC
)c( 2000-2017
Kопирайта нет, копируйте на здоровье :)

100012 лет в Интернете


.