ZX Forum
#04
19 ноября 1997 |
|
Мир звуков Спектрума - глава 7.2: Музыкальный редактор Wham the Music Box.
7.2. Музыкальный редактор Wham the Music Box Wham the Music Box ("музыкальная шка- тулка") - пожалуй, самый богатый по своим возможностям музыкальный редактор для ZX- Spectrum. С его помощью Вы сможете созда- вать двухголосые мелодии с использованием барабана и шумовых эффектов. Созданный му- зыкальный фрагмент можно сохранить на лен- те или дискете и, при необходимости, заг- рузить его снова и внести изменения. Большим достоинством редактора является то, что мелодии, написанные с его помощью, можно использовать для оформления других программ. После загрузки Wham'а звучит мелодия, а на экране появляется главное меню (MAIN MENU). Для выбора какого-либо режима наж- мите соответствующую цифровую клавишу: 1. LOAD TUNE - загрузка мелодии 2. SAVE TUNE - сохранение мелодии 3. HEAR TUNE - прослушивание мелодии 4. WHAMPILER - компиляция 5. SET TEMPO - установка темпа 6. EDIT MODE - режим редактирования 7. HELP PAGE - подсказка 7.2.1. LOAD TUNE - загрузка мелодии Этот режим позволяет загрузить файл, содержащий ранее созданную мелодию, в ре- дактор для дальнейшей работы с ним. Пос- ле перехода в режим LOAD TUNE (клавиша 1) программа спросит, с какого устройства Вы хотите загружать файл: SELECT PERIFERAL DEVICE TAPE MEMORY DRIVE (SPACE=EXIT) Если Вы решили отказаться от своей за- теи, то нажмите пробел. В противном слу- чае - выбирайте устройство с помощью од- ной из клавиш: T - кассета, M - оператив- ная память, D - микродрайв. При загрузке с кассеты на запрос "FILE- NAME ?" введите имя файла, в котором хра- нится мелодия. Вместе с Wham'ом на кассете (дискете) поставляется файл EXAMPLE, в котором со- держится веселая мелодия. Попробуйте его загрузить и прослушать (см. дальше). Так как в России микродрайв не прижил- ся, а вместо него прижился дисковод, воз- никает законное желание заменить надпись DRIVE на DISK, со всеми вытекающими отсю- да последствиями. Это было довольно успеш- но сделано несколькими российскими прог- раммистами (существует также версия прог- раммы на русском языке). Самый распростра- ненный дисковый вариант перед запросом "FILENAME ?" (см.выше) спрашивает, не рас- печатать ли ему каталог диска "A" (Да/ Нет): PRINT CATALOGUE 'A:' (Y/N) ? А затем загрузка идет стандартным обра- зом. Если Вы обратитесь к оперативной памя- ти (клавиша M), то на экране появится спи- сок из шести мелодий: 1. FREEDOM 2. TROPICANA 3. YOUNG GUNS 4. WHISPER 5. BAD BOYS 6. Первые пять из них созданы авторами программы, а шестая зарезервирована для Ваших творений. Для загрузки любой из них достаточно нажать соответствующую цифро- вую клавишу. По окончании загрузки программа автома- тически переходит в режим MAIN MENU. 7.2.2. SAVE TUNE - сохранение мелодии Благодаря этому режиму Ваш труд не про- падет даром, когда Вам придется надолго оторваться от составления мелодии, то есть созданный музыкальный фрагмент можно бу- дет сохранить на ленте или диске для даль- нейшего усовершенствования. Войти в режим SAVE TUNE можно из глав- ного меню, нажав клавишу 2, после чего появится уже знакомый вопрос об устрой- стве, на которое Вы желаете записать свое произведение: SELECT PERIFERAL DEVICE TAPE MEMORY DRIVE (SPACE=EXIT) Как и раньше, нажав пробел, Вы верне- тесь в главное меню, а выбрав устройство: T - кассета, M - память и D - микродрайв (дискета), получите запрос "FILENAME ?", на который надо ввести имя файла, в кото- ром будет сохранена мелодия. Если Вы решили записать свой музы- кальный фрагмент в оперативную память, пе- ред Вами появится список из шести мелодий. Ваше произведение можно записать на место любой из них, но храниться оно будет толь- ко до выключения питания или нажатия кноп- ки сброса. В случае записи на кассету, после ее завершения появится вопрос: VERIFY (Y/N). Если Вы уверены в качестве записи, то мо- жете жать клавишу "N", в противном случае нажмите "Y", перемотайте ленту на начало только что записанного файла и включите воспроизведение для его проверки. По окончании записи программа автомати- чески переходит в режим MAIN MENU. 7.2.3. EDIT MODE - режим редактирования Режим редактирования - это основной ин- струмент, с помощью которого Вы сможете реализовать свои музыкальные идеи. Войти в этот режим можно из главного меню, нажав клавишу 6. При этом на экране появятся изображения двух нотных станов (для басового и скрипичного ключей), а также указатель октавы OCTAVE, указатель текущего канала (голоса) CHANNEL 1(2) и счетчики шагов для каждого из каналов COUNTERS (CHN1, CHN2). Для выбора функций редактора использу- ются два верхних ряда клавиш, а нижние два - заменяют собой клавиатуру фортепиа- но. Значения этих клавиш Вы можете уви- деть на рис.5. Ряд от Caps Shift до Space играет роль белых клавиш, а от A до L - черных. Итак, Вы хотите "набросать" какую-ни- будь мелодию. Нажимая клавишу T, выбери- те голос, с которым собираетесь работать, клавишами 1...4 - октаву (1 - большая, 2 - малая, 3 - первая, 4 - вторая) и попробуй- те "наиграть" мелодию на "звуковых" клави- шах. При этом на нотном стане появятся изображения нот, а цветные квадратики ука- жут соответствующие клавиши фортепиано (для первого голоса квадратик красный, для второго - фиолетовый). Если Вы ошибочно нажали не ту клавишу, не расстраивайтесь, все поправимо: нажав клавишу 0, Вы верне- тесь на один шаг назад. Если же нужно вер- нуться больше, чем на шаг, нажмите 9. Проигрывание одной ноты с продвижением на шаг вперед осуществляется клавишей P. Удерживая эту клавишу, Вы можете прослу- шать часть мелодии. С помощью клавиши O можно "перемотать" мелодию вперед. Вам наверняка захочется прослушать му- зыкальный фрагмент целиком, не выходя из режима редактирования. Нажмите R (возврат в начало мелодии), затем Q (проигрывание мелодии), - и зазвучит Ваше творение. Ос- тановить воспроизведение можно нажатием любой клавиши. Для написания второго голоса переключи- те клавишей T канал и с помощью клавиш R, O, P, 0, 9 перейдите к тому шагу, с кото- рого Вы собираетесь его использовать. К сожалению, Wham не дает возможности записать мелодию нотами разной длительнос- ти. Необходимая длительность достигается либо использованием паузы (клавиша Enter), либо записью нужного количества одинако- вых нот. Ваш музыкальный фрагмент зазвучит сов- сем по-другому, если Вы используете для его аранжировки барабан (клавиша E) и шу- мовые эффекты (клавиши Y, U, I). Барабан может звучать по-разному, в зависимости от того, в каком канале он установлен. В пер- вом канале это действительно барабан, а во втором он больше похож на ноту СИ контрок- тавы или ДО большой октавы. Шумовые эффек- ты можно редактировать с помощью соответ- ствующего режима, в который можно попасть из EDIT MODE, нажав клавишу 8. После это- го на экране появится меню выбора частоты (WAVEFORM) и длительности (DURATION) шумо- вых эффектов. Выбрать один из предостав- ляемых программой 16 вариантов длительнос- ти и 8 вариантов частоты (формы колебаний) шумовых эффектов можно с помощью следую- щих клавиш: 5,8 - Выбор редактируемого шумового эффекта; 6 - Переход к функции выбора частоты; 7 - Переход к функции выбора длитель- ности; 0 - Изменение эффекта. Получающиеся в процессе редактирования шумовые эффекты можно прослушать, исполь- зуя клавишу 9. После настройки эффектов можно выйти обратно в режим редактирования мелодии (любая клавиша, кроме участвующих в нас- тройке эффектов) и использовать их в рабо- те с помощью клавиш Y, U и I. Хотя под шу- мовые эффекты отведены только эти три кла- виши, Вы можете использовать гораздо боль- шее их количество (до 128). Для этого соз- даются первые три эффекта и расставляются в нужных местах мелодии, затем следующие три и т.д. Наличие барабана и шумовых эффектов в мелодии отображается на нотном стане в ви- де пробела, что очень неудобно. Учтите, что одновременно с барабаном и шумовыми эффектами не может звучать нота (исключе- ние составляет только барабан, установлен- ный во втором канале). Если Вы хотите, чтобы мелодия повторя- лась с какого-либо шага, то есть звучала непрерывно, клавишей W установите на выб- ранном шаге метку цикла в обоих каналах. При этом компьютер спросит: SET LOOP HERE ? (Y/N) - установить метку здесь ? (Да/Нет) Расположение меток в первом и втором каналах может и не совпадать. Но для того, чтобы при циклическом проигрывании мело- дии не нарушалась синхронность звучания голосов, количества шагов в первом и вто- ром каналах должны быть кратны друг другу. Для успешной компиляции (см. ниже) уста- новка метки в обоих каналах обязательна. Если Вы хотите очистить память от неу- дачного произведения, нажмите 7 и подтвер- дите запрос: ERASE CURRENT TUNE ? (Y/N) - удалить мелодию ? (Да/Нет) С помощью клавиши 5 можно изменять цвет бордюра. А чтобы вернуться в главное меню, нажмите клавишу 6. 7.2.4. HELP PAGE - подсказка В режиме редактирования Вам понадобит- ся использовать немалое количество клавиш, сразу запомнить их функциональное назначе- ние не так просто. Поэтому в качестве по- мощи Вам предлагается страница подсказки - HELP PAGE, которую можно вызвать из глав- ного меню, нажав клавишу 7. На экране появится список клавиш, ис- пользуемых при редактировании: KEYS FUNCTION 1-4 SELECT OCTAVE выбор октавы 5 CHANGE BORDER изменение цвета бордюра 6 MAIN MENU выход в главное меню 7 ERASE TUNE удаление мелодии 8 NOISE MIXING редактирование шумовых эффектов 9 REPEAT BACKSTEP прокрутка назад 0 SINGLE BACKSTEP возврат на один шаг Q REPLAY TUNE проигрывание мелодии E DRUM EFFECT барабан T CHANGE CHANNEL выбор канала Y,U&I NOISE EFFECTS шумовые эффекты O FAST FORWARD прокрутка вперед P PLAY NEXT NOTE проигрывание следующей ноты The lower half of the keyboard Нижняя половина клавиатуры mimics a piano, enter is a rest имитирует фортепиано, enter - пауза Use cursor keys to edit the Используйте курсорные клавиши white noise with 9 to hear the для редактирования белого шума, current effect and 0 to alter it 9 - прослушивание, 0 - изменение 7.2.5. HEAR TUNE - прослушивание мелодии При прослушивании мелодии в режиме EDIT MODE она звучит в несколько искаженном ви- де, так как процессор кроме воспроизведе- ния музыки занят еще и выводом на экран нот, обслуживанием клавиатуры и т.д. Что- бы получить представление об истинном зву- чании мелодии, то есть услышать, как она будет исполняться после компиляции (см. ниже), воспользуйтесь функцией HEAR TUNE (клавиша 3 главного меню). После прослушивания, нажав любую клави- шу, Вы попадаете в режим EDIT MODE. 7.2.6. SET TEMPO - установка темпа Если после прослушивания мелодии Вы за- хотите изменить темп ее исполнения, вос- пользуйтесь режимом SET TEMPO (клавиша 5 главного меню). Клавишей 8 можно ускорить темп испол- нения мелодии, а клавишей 5 - замедлить. Изменение темпа изображается наглядно, с помощью фиолетовой полоски на экране. С уменьшением темпа полоска тоже уменьшается и наоборот. Нажав любую клавишу, кроме 5 и 8, Вы попадете в режим редактирования (EDIT MO- DE). 7.2.7. WHAMPILER - компиляция Музыкальный фрагмент, сохраненный в ви- де редактируемого файла в режиме SAVE TUNE, можно загрузить снова (LOAD TUNE) и продолжить работу с ним. Однако такой спо- соб представления мелодии позволяет прос- лушивать ее только находясь в редакторе. Если же Вы хотите оформить музыкой программу, написанную на бейсике или ас- семблере, необходимо записать мелодию в виде программы, работающей независимо от редактора. Такая подпрограмма создается с помощью режима компиляции WHAMPILER. В результате компиляции на ленту или дискету записывается файл, который пред- ставляет собой программу в кодах, запус- каемую отдельно от Wham'а, но, в отличие от редактируемого файла, не поддающуюся дальнейшему изменению. Перед компиляцией с помощью функции LOAD TUNE загрузите мелодию, которую хоте- ли бы скомпилировать и проверьте, в обоих ли каналах выставлены метки цикла. В качестве примера попробуем откомпили- ровать одну из 5 мелодий, загружаемых из памяти (см. LOAD TUNE - MEMORY), допустим, тему под номером 1 - FREEDOM. Загрузите ее и, нажав клавишу 4, войдите в режим компи- ляции. На запрос TUNENAME ? введите имя, под которым Вы хотите сохранить откомпили- рованный файл, например, FREE-MUS. Далее программа попросит ввести адрес, с которо- го будет располагаться и запускаться от- компилированный файл: ASSEMBLY ADDRESS ? Укажите десятичный адрес не менее 32768, например, 60000, после чего компи- лятор выведет на экран следующую информа- цию: TUNE NAME: FREE-MUS имя мелодии ASSEMBLY ADDRESS: 60000 адрес RETURN OPTION: KEYPRESS условие возврата WHITE NOISE: --NONE-- шумовые эффекты отсутствуют CHANNEL 1 LENGTH: 313 число шагов в 1-ом канале CHANNEL 1 LOOP : START цикл от начала в 1-ом канале CHANNEL 2 LENGTH: 313 число шагов во 2-ом канале CHANNEL 2 LOOP : START цикл от начала во 2-ом канале 1. KEYPRESS 2. ALWAYS 3. TUNEEND RETURN OPTION 1, 2 OR 3 ? Цифрами 1, 2 и 3 обозначены условия окончания воспроизведения мелодии. В зави- симости от выбранного варианта получаются определенные модификации откомпилированно- го файла: KEYPRESS - проигрывание мелодии завершается при нажатии любой клавиши; ALWAYS - проигрывание мелодии осуществля- ется одновременно с работой программы (по- дробно этот режим описан ниже); TUNEEND - проигрывание завершается либо по окончании мелодии, либо при нажатии любой клавиши. Запуск компиляции произойдет сразу пос- ле выбора клавишами 1, 2 или 3 одного из перечисленных условий. Нажмите, к примеру, клавишу 1. По окончании компиляции на экран будет выведена длина исполняемого файла в бай- тах и сообщение о нормальном завершении операции: CODE LENGTH: 893 ROUTINE COMPILATION COMPLETED OK Затем, после надписи ADJUSTMENT POKES: (настроечные POKE), появится информация, необходимая для настройки исполняемого файла уже в процессе использования его в Вашей программе (помните, что в нашем при- мере ASSEMBLY ADDRESS равен 60000): REPLAY SPEED: 60035, (230 TO 255) этой надписью программа сообщает, что, за- писывая в ячейку памяти с адресом 60035 (ASSEMBLY ADDRESS + 35) число от 230 до 255, можно изменять темп исполнения мело- дии; BORDER COLOR: 60026, (0 TO 7) это сообщение говорит о том, что, записы- вая в ячейку памяти 60026 (ASSEMBLY AD- DRESS + 26) число от 0 до 7, Вы можете на время исполнения мелодии устанавливать требуемый цвет бордюра (по умолчанию - фиолетовый); TO RUN - RANDOMIZE USR 60000 эта надпись напоминает, что для запуска мелодии из бейсика необходимо использо- вать команду RANDOMIZE USR 60000 (ASSEMBLY ADDRESS). После вывода этих сообщений производит- ся запись исполняемого файла на кассету или диск, в зависимости от версии. Теперь можно смело жать кнопку сброса и загружать в память полученную после компи- ляции программу в кодах. Если исполняемый файл сохранен на ленте, то для его загруз- ки и запуска напишите следующую программу на бейсике: 10 LOAD "FREE-MUS" CODE 20 POKE 60026,7: REM цвет бордюра - белый 30 RANDOMIZE USR 60000 Запустите ее и загрузите мелодию, а за- тем Вы услышите скомпилированную мелодию, которая будет звучать, пока Вы не нажмете какую-нибудь клавишу. Поэкспериментируйте с темпом исполнения произведения, занося с помощью оператора POKE различные числа в пределах от 230 до 255 в ячейку 60035. Для дисковой версии первую строку прог- раммы нужно заменить на следующую: 10 RANDOMIZE USR 15619: REM: LOAD "FREE-MUS" CODE Теперь Вы сможете откомпилировать лю- бую мелодию (в том числе и свою собствен- ную), выполняя аналогичные действия. Процесс компиляции может проходить нес- колько иначе. Например, если Вы решили сделать повторяющуюся басовую партию и за- циклили ее гораздо раньше основной мело- дии (проследите, чтобы число шагов в обоих каналах было кратно друг другу). В этом случае программа исключает возможность компиляции в режиме TUNEPEND и устанавли- вает режим KEYPRESS, а вместо возможности выбора спрашивает: CHANGE RETURN OPTION TO ALWAYS ? сменить режим компиляции на ALWAYS ? Если Вы нажмете клавишу Y, режим будет сменен. В противном случае компиляция про- должится в режиме KEYPRESS. Учтите, что компилятор выдает число ша- гов в канале вместе с меткой цикла. Поэто- му Вы можете обнаружить, что, например, 65 кратно 9 (на самом деле - 64 и 8). Если в Вашей мелодии число шагов в обоих голосах не кратно друг другу, то компиляция прервется следующим сообщением: WARNING ПРЕДУПРЕЖДЕНИЕ End markers mismatch Не совпадают метки цикла. may cause distorted tune Может исказиться мелодия. Continue ? (Y/N) Продолжить ? (Да/Нет) Если Вы нажмете Y, то компиляция про- должится, как если бы число шагов было кратно друг другу, но за то, что получит- ся, никто ответственности не несет. В про- тивном случае компиляция прервется и Вы окажетесь в главном меню. Если же Вы вообще забыли поставить мет- ку цикла хотя бы в одном из каналов, то Вашему взору предстанет следующая картина: TUNE NAME: XXXXXXXXXX ASSEMBLY ADDRESS: XXXXX RETURN OPTION: KEYPRESS WHITE NOISE: XXXXXXXX CHANNEL 1 LENGTH: NOT PRESENT число шагов в первом канале не определено CHANNEL 1 LOOP : START CHANNEL 2 LENGTH: NOT PRESENT число шагов во втором канале не определено CHANNEL 2 LOOP : START Tune compilation abandoned. Компиляция прервана. No end markers defined. Не установлены метки цикла. Use the W key to place the end Используя клавишу W, установите marker for the current channel. метку в каждом канале. Если машина обругала Вас, отнеситесь к этому спокойно. Нажав клавишу Enter, вый- дите из режима компиляции, устраните заме- ченные недостатки и, будьте уверены, что со второй, в крайнем случае с третьей по- пытки мелодия будет откомпилирована, и Вы сможете украсить ею свою программу. Ско- рее всего, Вы захотите, чтобы Ваша прог- рамма работала одновременно с проигрыва- нием мелодии. Подобного эффекта можно до- биться, если при компиляции использовать режим ALWAYS. Файл, скомпилированный в этом режиме, вызывается по двум адресам: имеет две точки входа. Первая служит для инициализации мелодии и проигрывания пер- вой ноты и расположена по тому же адресу, что и в других режимах (ASSEMBLY ADDRESS), а вторая - проигрывания всех последующих нот (расположена по адресу ASSEMBLY AD- DRESS+12). Таким образом, если в приведенном выше примере компиляции использовать режим AL- WAYS, то для инициализации мелодии и про- игрывания первой ноты нужно выполнить опе- ратор RANDOMIZE USR 60000, а для проигрывания каждой последующей но- ты - оператор RANDOMIZE USR 60012. Вот пример программы, демонстрирующей возможности режима ALWAYS: 10 PAPER 0: BORDER 0: INK 7: BRIGHT 1: CLS 20 LOAD "FREE-MUS" CODE: CLS: OVER 1 30 LET A$="ALWAYS-mode demonstration!" 40 RANDOMIZE USR 60000 50 PRINT AT 10,3; 60 FOR A=1 TO LEN A$: RANDOMIZE USR 60012 70 PRINT INK RND*6+1; A$(A); 80 NEXT A: GOTO 50 Аналогичным образом Вы можете оформлять и программы в машинных кодах. Учтите, что время выполнения Вашей про- граммы в промежутках между нотами не дол- жно быть очень большим, иначе теряется ка- чество мелодии. Кроме того, оно должно быть примерно одинаковым между двумя любы- ми нотами. 7.2.8. Советы 1. Если программа вышла в бейсик с сооб- щением об ошибке (например, при заг- рузке с магнитофона или если Вы совер- шенно случайно нажали клавишу BREAK), то для возвращения в главное меню вве- дите команду RUN. 2. Если Вы решили создать более менее длинную мелодию, используя оба голоса, то вводить эти голоса следует парал- лельно, иначе неизбежны ошибки. Кроме того, желательно время от времени про- слушивать, что у Вас получилось. 3. Все сочиненные Вами мелодии стоит сох- ранять на одной кассете (или дискете) с помощью функции SAVE TUNE. Благода- ря этому через некоторое время у Вас будет довольно большой выбор мелодий при оформлении новой программы.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября