┌──────────────────────┐ │ Мир звуков Спектрума │ └──────────────────────┘ (c) Павел Лебедев, 1995 Содержание Предисловие 1. Физика звука 2. Оператор BEEP 2.1. Создание эффектов на BEEPе 2.2. Создание музыки на BEEPе 3. Как получается звук 4. Программирование звука в кодах 4.1. Программирование звуковых эффектов 4.1.1. Тон 4.1.2. Шум 4.1.3. Комплексы эффектов 4.2. Управление громкостью 4.3. Управление тембром 4.4. Программирование музыки 4.5. Многоголосые мелодии 4.6. Обработка внешних сигналов 4.7. Реверберация 4.8. Синтезирование речи 4.9. Звук на прерываниях 5. Оператор PLAY 5.1. Создание эффектов на PLAYе 5.2. Создание музыки на PLAYе 6. Управление музыкальным сопроцессором 6.1. Регистры 6.2. Программирование 7. Обзор программного обеспечения 7.1. Редактор звуковых эффектов Super Sound 7.1.1. Эффекты 7.1.2. Использование эффектов 7.1.3. Версии 7.2. Музыкальный редактор Wham The Music Box 7.2.1. Load Tune 7.2.2. Save Tune 7.2.3. Edit Mode 7.2.4. Help Page 7.2.5. Hear Tune 7.2.6. Set Tempo 7.2.7. Whampiler 7.2.8. Советы Приложение 1. Листинги звуковых эффектов Super Sound'а Приложение 2. Советы по использованию ассемблера Предисловие Эта книга предназначена для читателей, которые решили писать программы и хотят оформить их на высоком уровне, что невоз- можно без использования звуковых возмож- ностей ZX-Spectrum. Она составлена по принципу от простого - к сложному, и ра- зобраться в ней сможет даже не очень под- готовленный человек. Также книга может служить пособием для начинающих программи- ровать на ассемблере: она буквально напич- кана примерами. Здесь содержатся практически все сведе- ния, которые могут Вам понадобиться ког- да-нибудь для создания звукового сопровож- дения как игровых, так и системных прог- рамм. В книге рассматривается программирова- ние только стандартных звуковых устройств Спектрума (порт #FE и музыкальный со- процессор). Такая экзотика, как ЦАП, АЦП, MIDI, присущая Спектрумам - монстрам (ATM TURBO, PROFI) и некоторым самоделкам, да- же не затрагивается из-за ее нестандар- тности. Хотя с помощью одного только ЦАПа (Цифро-Аналогового Преобразователя) можно было бы создавать почти фантастические звуки. Возможно, когда-нибудь в будущем я опишу и эти средства создания звука. Теперь о том, что же здесь все-таки со- держится. В первой главе рассказывается о природе звука и о его характеристиках. В следующих трех главах описывается опера- тор Spectrum-бейсика BEEP, создание с его помощью эффектов и мелодий. В следующей главе рассказывается о том, как в ZX-Spectrum получается звук, а так- же о порте 254(#FE). Дальше повествуется о создании эффектов и музыки в машинных кодах. Затем - об обработке сигналов, подавае- мых на магнитофонный вход Вашего компью- тера, и о программах, синтезирующих чело- веческую речь. В следующей главе рассказывается о зву- ке на прерываниях. Вторая часть книги посвящена музыкаль- ному сопроцессору AY-3-8910 (AY-3-8912). Сначала описывается оператор бейсика- 128 PLAY и все, что с ним связано. Следующая глава поможет Вам разобраться в управлении сопроцессором и в его регис- трах. С ее помощью Вы научитесь програм- мировать микросхему AY в кодах. И наконец - обзор программного обеспе- чения, в который включены различные музы- кальные редакторы, редакторы звуковых эф- фектов, синтезаторы речи, демонстрационные программы и т.п. Подробно описаны три та- кие программы. Это SUPER SOUND - редактор звуковых эффектов, WHAM THE MUSIC BOX - музыкальный редактор и ASC SOUND MASTER (ASM) - музыкальный редактор для сопроцес- сора. В приложении 1 находятся листинги всех звуковых эффектов программы SUPER SOUND, a в приложении 2 даны советы по использова- нию ассемблера GENS4. Условные обозначения, используемые в книге CS - клавиша Caps Shift; SS - клавиша Symbol Shift; CS/1 - одновременное нажатие клавиш (в данном случае Caps Shift и 1); A+2 - последовательное нажатие клавиш (в данном случае A и 2); [1] - номер издания в списке литературы, в конце книги. 1. Физика звука Говоря научным языком, звук - это меха- нические продольные колебания упругой сре- ды. Выражаясь же языком простых смертных - это всего-навсего колебания воздуха. Человеческое ухо очень чувствительно к изменению воздушного давления, оно улавли- вает малейшие его колебания. Человек может воспринимать звуковые ко- лебания с частотой от 20 до 20000 Гц (Гц - герц. Одно колебание в секунду). Звук с частотой меньше 20 Гц называется инфразву- ком, а больше 20000 Гц - ультразвуком. Чем больше частота колебаний, тем выше слышимый звук. Чувствительность уха не одинакова на всем диапазоне звуковых час- тот. Самые низкие и самые высокие частоты воспринимаются гораздо хуже средних. Громкость звука напрямую зависит от ам- плитуды колебаний и измеряется в децибе- лах (дБ). Чем больше амплитуда, тем гром- че слышимый звук. Человек может восприни- мать звук с громкостью от 0 до 130 дБ. Са- мые громкие звуки (100 - 130 дБ) восприни- маются болезненно, а при громкости больше 130 дБ лопаются барабанные перепонки в ушах и человек становится глухим. Следующая характеристика звука - тембр. Тембр - это форма звуковой волны. Благода- ря тому, что наше ухо способно различать тембры, мы можем отличать звучание гитары от фортепиано. Для наглядности взгляните на рис.1. Там приведены две звуковые волны с различными тембрами. Еще одна характеристика - периодич- ность. Если звуковая волна состоит из од- ного повторяющегося фрагмента, то такой звук можно считать периодичным, а в про- тивном случае - нет. Периодичный звук вос- принимается как музыкальный тон, а непе- риодичный - как шум. Существует несколько различных видов шума. Два наиболее рас- пространенных - белый шум и импульсный шум. Их диаграммы приведены на рис.2. Последняя характеристика звука - дли- тельность. Она созданна искусственно, так как определяет не сам звук, а время его звучания. В основном эта характеристика используется в музыке. Все перечисленные выше параметры звука довольно относительны, потому что каждый человек ощущает их по-разному. Например, один и тот же звук может одному человеку казаться слишком громким, а другому - сли- шком тихим.