ZX Power #04
09 января 2000
  Железо  

Разное - И СНОВА AY. Статья о коррекции звучания муз. сопроцессора.

<b>Разное</b> - И СНОВА AY. Статья о коррекции звучания муз. сопроцессора.
Снова об AY3-8910/12 


(С) 1999, (R)soft 
__________________________________________ 

   Не знаю, куда главный редактор поместит 
эту статью, в "Металлолом" или в "Разное", 
суть  статьи  останется  той же.  Проблема 
"фальши" музыкального сопроцессора на сов-
ковых Спектрумах. К сожалению, как заядлый
железячник,  я  эту проблему без паяльника
решить  не смог. Иногда проблема несовмес-
тимости  софта решается не перепатчиванием
мегабайтов  кода,  а просто заменой некор-
ректно  работающего  железа.  Это я и сде-
лал...

                  * * * 

   Я  прочитал  третий номер "ZX-Power", и 
меня  буквально потрясли две статьи. Это -
"Фальшивые  редакторы" by JAM и незаконче- 
ная  статья  "Траблы  с  AY" by TAN. Сразу 
скажу, что в обоих статьях я заметил неко-
торые  неточности  (да не обидятся на меня
авторы ;-).  В  статье  JAM'а указано, что
частота тактирования в фирменном "Spectrum
2+"  связана  с  частотой  процессора, как
fAY=fCPU/2,  что  не  есть  правильно. TAN
правильно  заметил, что она связана с час-
тотой  цветовой  поднесущей PALа 4.4336190
МГц.  Если ее разделить на 2.5, то получим
1.773448  МГц, которые и заводятся на зву-
ковой  сопроцессор.  Здесь опять маленькая
неточность.  Все  дело  в том, что частоту
4.4336190  МГц  получают  делением  на два
стандартной   частоты   PALовского  кварца
8.867238  МГц. Отсюда выходит не целый ко-
эффициент  делителя  у  TANа,  надо делить
частоту  кварца на пять, а не частоту под-
несущей цвета на 2.5.
  В общем, у меня родилась идея доработать
свой  AY  так,  чтобы  он  полностью соот-
ветствовал  фирменному по частоте тактиро-
вания.  Сначала  я проверил, соответствует
ли указанная частота (в фирменный Спектрум
я,  естественно, не заглядывал ;-) реально
используемой  в  "Spectrum  2+"?  Пришлось
поступить  несколько необычным образом. За
основу  я  взял  формулу получения частоты
ноты на AY (нота = FtaktAY/16/делитель), а 
также несколько программ, работающие с AY.
Как известно, в каждом проигрывателе мело-
дии для AY есть табличка делителей частоты
для каждой ноты в пределах семи или восьми
октав  -  все  зависит от конкретного типа
проигрывателя.  Для  тестирования  я  взял
пять  типов  программ (точнее, даже четыре
;-).  Это  муз.  редактор  ProTracker 3.1, 
проигрыватель  музыки для AY из игры "Bat- 
man"  известнейшей  фирмы Ocean, муз. демо 
"FXSOUND" by Frantishek Fuka и муз. проиг- 
рыватель из игры "Monty Free". В общем все 
четыре  программы по принципу проигрывания
мелодий особо не отличаются. Самое главное
- мне нужны были таблицы делителей. В муз.
редакторе  ProTracker  таких таблиц оказа- 
лось  две (от старого SoundTrackera и род-
ная).  Они переключаемы в редакторе (жаль,
что  не  загружаемы!!!). И вот что получи-
лось.  В проигрывателе "Monty Free" полной 
таблицы не было, а ноты получались делени-
ем  основных  двенадцати  делителей  самой
низкой  (первой) октавы на два, до требуе-
мой октавы.
   Я посчитал это наиболее грубым пересче-
том т.к. частоты нот представляются не це-
лым  числом герц, а с точностью до сотых и
при делении тактовой частоты AY не получит
требуемой частоты с достаточной точностью.
Хотя  в программе "Monty Free" использован 
довольно правильный метод формирования де-
лителей нот, но не в данном случае. В иде-
але, как это делается на ЭМИ (электромузы-
кальных инструментах) - синтезаторах? Сто-
ит  двенадцать откалиброванных генераторов
частоты.  Потом  каждая частота делится на
два, тем самым получая все требуемые окта-
вы и частоты. В данном же случае, конкрет-
но с AY точной частоты ноты не получить, в
каждом  отдельном  случае  будут некоторые
погрешности  после  округления коэф. деле-
ния.  Вот  например  как  я  проверял пра-
вильность  делителя  для  ноты. Получалось
так, что из пяти полученных таблиц делите-
лей две полностью совпали - SoundTracker'а 
и Batman'а (для удобства я буду их так на- 
зывать),  остальные  несколько  отличались
друг  от  друга.  Сначала я "схватился" за
проигрыватель  Frantishek'а  т.к.  был его
давним  поклонником и доверял ему на 100%.
Мои надежды оправдались. Взял я первый ко-
эффициент из таблицы и подставил в формулу
с  тактовой  частотой  1.773448  МГц. Т.е. 
1773448/16/4031=27.497023  или  получается 
почти  нота ля (A) нулевой (нижней) октавы
(в идеале 27.50Гц). Это максимальный коэф-
фициент  из таблицы нот (Кmax=4095). Далее
я распечатал таблицу и надписал возле каж-
дого  делителя  ноту,  которая  ему  соот-
ветствует.  Взял  я табличку частот нот от
нулевой  до  седьмой октавы и начал прове-
рять коэффициенты деления, но теперь я де-
лил так: 1773448/16/261.63(нота до четвер- 
той октавы)=423.653633. (Т.е. делил уже не 
на  коэффициент,  а  на частоту ноты.) При
округлении  до  424, число соответствовало
делителю   в   таблице. Далее: 1773448/16/ 
/587.33  (нота  ре пятой октавы) =188.7192
или  189 - правильно. В общем, мне это на- 
доело (пересчет на калькуляторе) и я напи-
сал  на скорую руку программку на бейсике,
которая выдавала коэффициенты делителя для
каждой  ноты  и помечала коэффициент, если
он  мог округляться либо в большую, либо в
меньшую  сторону (т.е. десятичное значение
равно  5). Как ни странно, но пара коэффи-
циентов  из 84 нот на единицу не совпадали
с моими расчетными. Но в общем погрешность
составляла очень малую долю (на слух почти
;-) не отличимо). У Frantishek Fuka табли-
ца  начиналась с ноты ля нулевой октавы. В
Batman,  Protracker  и Monty Free - с ноты 
ля-диез  нулевой  октавы. С таблицей ProT- 
racker'а у меня вышла некоторая заминка. В 
общем  там коэффициенты деления получались
для  тактовой частоты AY порядка 1.447 МГц
(???), но точно посчитать я так и не смог.
Для  меня это осталось единственной загад-
кой.
   Теория   -  теорией,  калькулируй  - не
калькулируй, а результат тот же - проблема
фальшивых  нот. Я взялся за схему. Вот что
у меня получилось:



   Схема  получилась  простой  и недорогой
по деталям. Генератор, собраный на DD1.1 и
DD1.2 генерирует с частотой кварцевого ре-
зонатора. Подстроечным конденсатором уста-
навливается точная частота генерации. Если
C1 совсем не устанавливать, то схема будет
и  так  работать.  Но кварц будет шунтиро-
ваться сопротивлениями R1 и R2. Получается
заниженная  на несколько десятков килогерц
частота. Поэтому лучше C1 поставить. Счет-
чик  DD2  работает как делитель частоты на
пять.  Схема нуждается в некоторой наладке
- по частотомеру устанавливают точную час-
тоту   генерации  ZQ1,  вращая  движок  C1
(контролируют  либо  на 14, либо на 8 ноге
счетчика).  Если  нет  частотомера, то ем-
кость  C1  ставят в районе 12-22 пикофарад
(идеального  кварца все равно нет). У меня
получилось  отстроить  частоту с точностью
-10  Гц.  Но,  естественно, такая точность
особо не нужна. Все равно погрешность час-
тоты ноты будет при округлении делителя до
целого значения. Печатная плата генератора
размером 20х30 мм установлена сверху платы
звукового  сопроцессора. После опробывания
муз. редактора (конечно, с таблицей от So- 
undTracker'a) и попытке подыгрывания люби- 
мым  композициям  было  замечено  довольно
точное соответствие реальным нотам. Ну ес-
тественно! Теория пересеклась с практикой,
т.е.  как и должно быть. Наконец-то я смог
нормально  подыграть  композиции "Two Win- 
ters  Only" группы "My Dying Bride". Вооб- 
ще, кто занимается музыкой, такая нехитрая
переделка  позволит  более продуктивно ис-
пользовать  свой  Спектрум  для  несложных
аранжировок. Помнится, как-то лет пять на-
зад я с приятелем пытался с SoundTrackerom 
сделать  аранжировку  песни  под гитару. В 
редакторе был написан простейший ритм-бокс
и что-то типа звука флейты. Так вот, флей-
та  ну  НИКАК  не  вписывалась в гитару. Я
долго  не мог понять почему. Понял намного
позже, даже, точнее, мне кто-то подсказал.
Как  оказалось,  все  из-за несоответствия
частоты.  Теперь бы  ту  композицию прове-
рить.  ;-) Что же, может я не зря потратил
время  на  устранение этого, мягко говоря,
глюка?

  Ладно!  Все  это  хорошо.  А если не все
имеют  возможность  залезть  внутрь своего
Спектрума  с  паяльником? Я вижу здесь два
выхода из сложившейся ситуации.

1) Как уже правильно говорил JAM (я присо- 
единяюсь!) - писать новые муз. редакторы с
нормальными  таблицами  делителей под 1.75
МГц.  Хотя,  по моему, проще пофиксить это 
дело  в  самом редакторе (например в ProT- 
racker'е).  Лучше,  чтобы была возможность 
подгрузки  таблички  с  диска.  Как сказал
Rst7: "Драйвера - рулез!" ;-). 

2) Покупка  фирменного  "Spectrum  2+" ;-) 
Это,  конечно, шутка. Первый вариант более
подходит.

   Ну  а  если  не хотите корячить новый и
старый софт (муз. демки, игрушки и т.д.) -
собирайте  вышеизложенную  схему и наслаж-
дайтесь "фирменным", не фальшивым звуком.

   Выражаю  особую  благодарность главному
редактору "ZX-Power" за публикацию статьи. 
Главное, что идея не пропала. ;-) Да и те-
ма  вроде  бы  еще не иссякла. С интересом
отвечу на все вопросы и возражения по ниже
указанному адресу.


       С уважением, Бакум Владимир
              aka (R)soft 
         2:461/1024.6 (7/11/1999) 
__________________________________________ 



Другие статьи номера:

Авторы - Авторы журнала и контакты редакции.

Вступление - Приветствия и вступительное слово.

Вступление - Описание возможностей оболочки.

Вступление - Содержание номера.

Игротека - GLADIATOR. Анализ интересной fightingовой игры.

Игротека - BARD-S TALE. Продолжение "штурма" классической РПГ.

Игротека - SUPAPLEX. Презентация харьковской boulder dash-еобразной игры.

Игротека - SNAKE Презентация написанной в Харькове недетерминированной игры.

Игротека - SNAKE-HELP1. Советы по игре Snake.

Игротека - SNAKE-HELP2. Принципы игры и история создания.

Игротека - СОЛДАТИКИ. Рассказ автора о созданной им стратегической игре.

Игротека - КОРАБЛИКИ. Информация о новом стратегическом проекте.

Игротека - BRAIN PRESSURE. Рассказ о новой логической игре.

Игротека - ПСЕВДОШАШКИ. Еще одна логическая игрушка.

Интервью - Интервью с создателями нашумевшей игры Зеркало, группой ART WORK.

Интервью - Интервью с DEMIURGE ASH.

Интервью - Интервью с MIDISOFT/EM.

Интервью - Интервью с ENERGY MINDS.

Интервью - X-PROmotion. Рассказ о поездке XPJ в Донецк.

Интервью - SSG-99. Рассказ о проходившей в Севастополе Party

Интервью - Интервью с группой из Феодосии - X-THEME.

Ликбез - ВОССТАНОВЛЕНИЕ ИГР#3. Заключительная статья.

Ликбез - алгоритмы быстрой 3D-графики №2. Дополнения и замечания.

Ликбез - CHEATS&POKES. Две последние части из цикла.

Комната смеха - ПРО СИСАДМИНОВ. Подборка анекдотов.

Комната смеха - КАК СДЕЛАТЬ ЖУРНАЛ. Советы "экспертов"

Комната смеха - ГАМЛЕТ#1. Первая часть новой версии бессмертной трагедии.

Комната смеха - БЕЛЫЙ ПИНГВИН. Антиновелла по одной известной игре.

Меломания - МЕЛОМАНИЯ#2. Второй выпуск музыкальной рубрики.

Меломания - ОБЗОР АЛЬБОМОВ. Обзор heavy-metal CD за 98/99 гг.

Меломания - VOODOO (рус.)Перевод альбома King Diamond-98.

Меломания - VOODOO (англ.)Оригинальный текст альбома.

Обозрение - НОВЬЕ?.. Рассуждения на тему свежего софта, список новых игр.

Обозрение - ОБЗОР свежих электронных журналов для ZX Spectrum.

Обозрение - ИГРЫ. Знакомство с новинками игрового ПО: Козел, Охота на кротов, Белый Орел, Leprikon, 12 Тайных Книг, King, C.H.I.F., Черный Ворон - новые миссии.

Вокруг света - Intel: скептики опять ошиблись?

Вокруг света - Новые машины Silicon Graphics: ПК или рабочие станции?

Вокруг света - Новинки с MacWorld Expo.

Разное - НАШЕ НИЩЕНСТВО. Очерк А.П.Чехова.

Разное - ROLE PLAYING GAMES. История ролевых игр.

Разное - ЧЕМПИОНАТ ЗМЕЙ. Новый конкурс.

Разное - И СНОВА AY. Статья о коррекции звучания муз. сопроцессора.

Разное - РЕКЛАМА.

Разное - КОНКУРС.

Рабочий стол - DIGITAL SOUND EDITOR. Презентация цифрового редактора звука.

Рабочий стол - NEOS. Рассказ о новой операционной системе для Спектрума.

Рабочий стол - INTERMINAL. Новая терминальная программа.

Теверна - первый выпуск рубрики, посвященной игровым программам: концепция игры "Таверна".

Почта - Переписка с читателями журнала.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Игры - СМЕРТЬ ЛЮДИШКАМ!!! Прохождение игры Черный Ворон 2 за Кунгов.
Local News - Ковровские новости.
Demo Party - рассказ о поездке Antares в Казань на CAFe'99
Игрушки - ROBOCOP 2.
Железяки - загрузка программ в спектрум с CD с использованием SP-Dif.

В этот день...   27 апреля