Spectrofon #02
31 января 1994
  Софт  

Система - Музыкальный редактор ASM А.Сендецкого - авторская инструкция по работе с редактором.

<b>Система</b> - Музыкальный редактор ASM А.Сендецкого - авторская 
инструкция по работе с редактором.
 ┌───────────────────────────┐
 │ ──────   СИСТЕМА   ────── │
 └───────────────────────────┘

   Сегодня   мы  предлагаем  Вам
познакомиться  с музыкальным ре-
дактором ASC Sound Master (ASM).
Это   полнофункциональный  музы-
кальный редактор для ZX-Spectrum
128 Кb.

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

   Приятно  сознавать  тот факт,
что   для  любителей  компьютера
ZX-Spectrum нет не политических,
не экономических барьеров. И нам
всем будет только лучше, когда к
нашему   общему   делу   активно
подключатся и жители стран ближ-
него  зарубежья.  Тем более, что
опыт такого сотрудничества у нас
уже есть.

   В  первом  номере мы писали о
том, что "SPECTROFON" будет вся-
чески   поддерживать  российских
авторов  системных, прикладных и
игровых программ.


   Мы  уже  сообщали, что готовы
предоставлять  страницы  журнала
для авторских описаний, а так же
для  размещения демонстрационных
и полных версий программ. Мы да-
ем  авторам  возможность  начать
наконец-то нормальную, серьезную
работу,  за  которую можно будет
что-то получить. Теперь у многих
появится стимул писать программы
не  только для себя и своих дру-
зей,  но и на благо всех пользо-
вателей ZX-Spectrum.  SPECTROFON
донесет  Ваши  программы до всех
желающих приобрести их.

   О  том,  как  начать действо-
вать, подробно рассказано в пер-
вом  номере журнала "ZX-РЕВЮ" за
1994  год  в статье "К вопросу о
дистрибуции программного обеспе-
чения".

   А   сейчас  мы  предоставляем
слово автору музыкального редак-
тора "ASM".

(c) Андрей Сендецкий.

        ИСКУССТВО ЗВУКА
        ---------------

   Прошли   те   времена,  когда
компьютеры  ( ЭВМ !)  занимались
"перемалыванием"  колонок никому
не нужных цифр, будоража умы пи-
онеров  компьютерной  индустрии.
Помянем  добрым словом их теперь
уже  седые "яйцеобразные" головы
(англ.  egghead).  Теперь, когда
миром правит Amiga и даже "сине-
го  гиганта"  (IBM) стали волно-
вать не только размеры и бестол-
ково  разбазариваемые  мегагерцы
своих  компьютеров, люди все еще
ждут  от  компьютера чуда, кото-
рое уже стало реальностью.

   Не   секрет,   что   звуковое
оформление  программы может пол-
ностью  перевернуть  отношение к
ней и поднять ее рейтинг от без-
надежной до приемлемой, от хоро-
шей   до   сенсационной.   Имена
компьютерных   музыкантов   (Rob
Hubbard,     David    Whittaker,
Allister   Brimble   ...)  среди
компьютерных  фанов не менее по-
пулярны,  чем имена рок-музыкан-
тов.

   А  что же Spectrum? Есть ли у
него  шансы успеть на набирающий
ход  экспресс?  Конечно  нет ...
Если  не  совершить для него ма-
ленького  чуда:  заставить людей
поверить,  что  он  -  несколько
больше, чем достаточно дешевая и
простая в обращении "игрушка".


   Главной  целью  при написании
ASM  было  доказать себе - что я
что-то  понимаю в программирова-
нии,  людям - что на ZX-Spectrum
можно  создавать достаточно неп-
лохую музыку, самому ZX-Spectrum
-  что  его время еще не прошло.
Единственным серьезным ограниче-
нием явились звуковые возможнос-
ти AY.

    Что из всей этой затеи полу-
чилось  -  решать пользователям,
тем более теперь, когда ASM стал
широко  доступен  благодаря сот-
рудничеству  с редакцией журнала
"SPECTROFON".

   Пользуясь  возможностью, хочу
открыть  маленький  секрет: вряд
ли  стоит  ожидать  появления на
свет  ASM  v1.13 (как никогда не
существовало  и ASM v0.13 - суе-
верие!).



Но в то же время сейчас есть все
шансы  на  появление  ASM v2.00,
работа  над которым уже ведется.
Есть  основания считать, что та-
кого  звучания, как в ASM v2.00,
никто  на AY еще не слышал. Воз-
можно,  впервые  ASM v2.00 будет
продемонстрирован  на  страницах
"SPECTROFON"a.  Но  это уже дело
будущего.

   А  пока  я  буду считать свою
работу  небесполезной,  если  ZX
Spectrum  и  ASM  позволят найти
себя  новым  талантливым компью-
терным  музыкантам, которые под-
готовятся  к тем временам, когда
в   нашу   жизнь  придут  другие
компьютеры и другие программы.



       КРАТКАЯ ИНСТРУКЦИЯ
 К МУЗЫКАЛЬНОМУ РЕДАКТОРУ A S M
 ------------------------------

Дата последней редакции: 17.1.94
Действующая версия: ASM v.1.12


   Музыкальный    редактор   ASC

Sound  Master (далее ASM) - пол-

нофункциональный музыкальный ре-

дактор  для  ZX  Spectrum 128k и

более  старших  моделей  с музы-

кальным  процессором  AY-3-8912A

либо   AY-3-8910A  и  TR-DOS  v.

5.01, 5.03 и совместимых с ними.




Основные  характеристики (описа-
ние терминологии - ниже):

 - хранение  нотного  текста  в
системе  Position/Pattern/Quant;
 - 100 Позиций (Position);
 - 32 Паттерна (Pattern);
 - 32 Инструментa (Sample);
 - 32 Орнамента (Image);
 - оконный интрфейс;
 - универсальное управление;
 - дисковая система ADS (MS-DOS
style):   12-bit  FAT,  255  Dir
Entries, 790kb free;
 - запись откомпилированных мо-
дулей  в  TR-DOS для дальнейшего
использования  в других програм-
мах.


.n0
.k0b0.k1t1.k2t2.k3b6





    Выберите часть описания:


 1.КОНЦЕПЦИЯ УПРАВЛЕНИЯ

 2.СТРУКТУРА МУЗЫКАЛЬНЫХ ДАННЫХ

 3.ОПИСАНИЕ ГЛАВНОГО МЕНЮ
     КОНЦЕПЦИЯ  УПРАВЛЕНИЯ
     ---------------------
.k0t0.n:
   Управление   основывается  на
использовании    8   управляющих
функций:

 - движение вверх (up);
 - движение вниз (down);
 - движение влево (left);
 - движение вправо (right);
 - выбор (select);
 - уменьшение (sub);
 - увеличение (add);
 - выход (escape);

   Каждую  из них реализует нес-
колько  различных клавиш либо их
сочетаний.





   Как видно, первые 5 - функции
джойстика. Естественно, их и ре-
ализуют  джойстики:  Sinclair I,
Sinclair  II,  Kempston,  Cursor
(+Enter), QAOP (+Space). С помо-
щью  этих  функций  производится
перемещение  по меню и выбор оп-
ций в меню.

   Уменьшение     (TRUE    VIDEO
(Caps+3)  или  R)  и  увеличение
(INV  VIDEO  (Caps+4) или T) ис-
пользуются  для  изменения пара-
метра текущей опции меню.

   Выход (BREAK (Caps+Space) или
EDIT (Caps+1)) служит для выхода
из  текущего  меню  в предыдущее
без выбора какой-либо его опции.





   Кроме  того, для выбора прак-
тически  всех опций во всех меню
назначены определенные буквенные
клавиши.  Они нигде явно не ука-
заны,  но, как правило совпадают
с  первой  буквой названия соот-
ветствующей  опции.  При нажатии
такой клавиши происходит переме-
щение  курсора к соответствующей
опции  и ее выбор. При этом надо
помнить,   что  если  какая-либо
клавиша    выполняющая   функции
джойстика  (Q,A,O,P) , назначена
на выбор опции, то в данном меню
функцию  джойстика она выполнять
не будет.








   Существует  только 2 исключе-
ния  из схемы:

 - в   режиме     редактирования
Pattern при нахождении курсора в
поле  октавы/ноты  2 нижних ряда
клавиатуры используются как кла-
виатура  фортепиано,  'I'  - для
установки 'PSE', 'K' - для уста-
новки 'RLS', 'L' - для установки
'___', 'U' для входа в режим ре-
дактирования команд;

 -   в   режиме   редактирования
Pattern,  Sample, Image одновре-
менное  нажатие 'вверх' и 'вниз'
используется для перехода на на-
чало  Pattern, Sample, Image со-
ответственно.

  СТРУКТУРА МУЗЫКАЛЬНЫХ ДАННЫХ
  ----------------------------
   В  этом  разделе  описывается
принятая  в ASM система хранения
музыкальных  данных. Предполога-
ется  знание  целого  ряда музы-
кальных терминов.
.k0t0.n:
   Построение  музыки базируется
на 6 основных понятиях:

 - Quant;
 - Pattern;
 - Position;
 - Sample;
 - Image;
 - Quark.

   Наиболее  фундаментальным  из
этих понятий является Quant: на-
именьшая  длительность ноты, ис-
пользуемая  в данном музыкальном
произведении.

В  этом  случае  для того, чтобы
указать длительность любой ноты,
достаточно     будет    указать,
сколько  Quants  она составляет.
Обычно  в качестве Quant выбира-
ется   длительность   1/16  либо
1/32.   Тогда,   например,   для
Quant=1/16  длительности 1/8 бу-
дут  соответствовать  2  Quants,
длительности  1/4  с  точкой - 6
Quants и т.д.

   Если известно, что данная но-
та  должна  длиться определенное
количество Quants, то для указа-
ния  этого  надо, чтобы в первом
Quant  было  указано обозначение
ноты,  а  последующие должны ос-
таться незанятыми ('___').

   Таким образом, все время зву-
чания композиции оказывается по-
деленным на Quants.

   Для  удобства манипулирования
отдельными  частями музыкального
произведения Quants группируются
в  Patterns.  Pattern - совокуп-
ность из нескольких Quants. Мак-
симальный  размер  Pattern  - 64
Quants. Тогда для Quant=1/16 но-
ты   по   длительности  звучания
Pattern     будет     составлять
64*(1/16)=4  целых  ноты  или  4
такта для размера 4/4.

   Размер Pattern можно изменять
(минимум=1,   максимум=64),   но
всегда  удобно, чтобы Pattern по
длительности   составлял   целое
число  тактов (для размера 3/4 и
Quant=1/16     удобен     размер
Pattern=48  Quants, что составит
48*(1/16)/(3/4)=4 такта).
   Patterns  малого размера (ме-
нее  1  такта)  могут, например,
применяться  для создания затак-
тов.

   В  ASM  имеется  32 Patterns,
имеющих номера 00 .. 31. Как те-
перь ясно, Pattern, как правило,
содержит  нотный текст части му-
зыкального  произведения  (музы-
кальной  фразы). Для того, чтобы
на  основе  Patterns конструиро-
вать  композицию,  надо  указать
последовательность       номеров
Patterns,  которые  должны будут
воспроизводиться. Эта последова-
тельность называется списком по-
зиций  (Positions). Понятно, что
в  списке Positions номер одного
и  того  же  Pattern  может быть
указан любое количество раз.



   Размер   списка  Positions  -
100.  Positions  имеют номера 00
.. 99.

   Теперь  от описания структуры
музыкального  текста в целом пе-
рейдем  к  кодированию  нот и их
характеристик.

   Музыкальный         процессор
AY-3-8912A/10A  имеет 3 програм-
мируемых    генератора   прямоу-
гольных  сигналов  (tone) с 16-ю
градациями громкости по логариф-
мической  шкале, 1 генератор бе-
лого шума (white noise) 32-х ви-
дов, а также генератор огибающих
(envelope)  8-ми типов. При этом
надо  учитывать,  что  громкость
генератора  noise контролируется
регистрами  громкости tone гене-
раторов,  что  не позволяет счи-
тать  его  полноценным 4-м кана-
лом.




   Envelope  генератор  также не
обладает достаточными для полно-
ценного  контроля огибающей воз-
можностями, поэтому в ASM он ис-
пользуется нестандартным образом
для получения сигналов непрямоу-
гольной формы.

   При    редактировании   музы-
кального   текста  каждый  Quant
представляется   в  виде  строки
текста,  в  которой  указываются
параметры, контролирующие работу
генератора  envelope, генератора
noise и tone генераторов.

Формат строки Quant:

 |00|027\12|2#G 1 3 15|...|...|
   A  B CDEF G  H I J   K   L

A.   Порядковый  номер  Quant  в
Pattern.

B.  Код частоты envelope генера-
тора.   При  сложении  колебаний
tone   генератора   и  колебаний
envelope генератора, если часто-
ты  колебаний  соотносятся между
собой  как небольшие целые числа
(1:1,  2:3  и  т.д.),  то  в ре-
зультате  получаются колебания с
достаточно сложной формой сигна-
ла, вносящие приятное разнообра-
зие  в не слишком богатое звуча-
ние AY.

C. Символ типа огибающей.

      Тип          Символ

    |\|\|\|\          \

    /|/|/|/|          /

    /\/\/\/           /\

    \/\/\/\           \/
D.  Код запрета смещения noise -
цифра от 0 до 7, показывающая, к
каким каналам относится, а к ка-
ким  не относится указанное в п.
E смещение noise:

  0 - cмещение относится ко всем
каналам;
  1 - смещение запрещено для ка-
нала A;
  2 - смещение запрещено для ка-
нала B;
  4 - смещение запрещено для ка-
нала  C.

  Суммируя  эти  значения, можно
указывать смешанные запреты (5 -
запрет  смещения для каналов A и
C).

E.  Базовый номер noise, относи-
тельно которого будут затем про-
водиться смещение noise, указан-
ные в Sample (см. ниже).


   Задание  базы  для генератора
noise  аналогично  указанию ноты
(т.е.  частоты) для tone генера-
тора.  Можно  указать  1 из 32-х
возможных баз, обозначаемых сле-
дующим  образом:  0..9  и  далее
A..V.

F..J.  Параметры, контролирующие
канал A:


F.  Указатель наличия команды (#
-   есть,   |  -  нет).  Команды
(Command)  - мощное средство до-
полнительного  управления данным
каналом  либо  композицией в це-
лом.  Список команд - в описании
редактора Pattern.



G. Октава и нота. В ASM допусти-
мы 1 неполная и 7 полных октав:

  U  -  субконтр  октава  (в ней
только  2  ноты:  #A  и  B);
  C - контр октава;
  L - большая октава;
  S - малая октава;
  1 - первая октава;
  2 - вторая октава;
  3 - третяя октава;
  4 - четвертая октава.

   Ноты   обозначаются  в  соот-
ветствии  с  международным стан-
дартом:

  C - до;          #F - фа диез;
 #C - до диез;      G - соль;
  D - ре;          #G - соль диез;
 #D - ре диез;      A - ля;
  E - ми;          #A - ля диез;
  F - фа;           B - си.

H.  Указание  номера Sample, ис-
пользуемого  при воспроизведении
данной ноты. В ASM можно опреде-
лить  32  Samples,  первые 10 из
которых   обозначаются   цифрами
(0..9),  а  остальные  - буквами
(A..V).

   Sample  является основным оп-
ределителем звука. В Sample ука-
зываются  характеристики огибаю-
щей,  задействование tone, noise
и envelope генераторов, смещение
номера  noise относительно базо-
вого и смещение частоты tone от-
носительно заданной ноты (в еди-
ницах частоты AY).

   Подробное  описание структуры
и возможностей Sample - в описа-
нии редактора Sample (см. ниже).




I.  Указание  номера  Image, ис-
пользуемого  при воспроизведении
данной ноты. В ASM можно опреде-
лить 32 Images, первые 10 из ко-
торых    обозначаются    цифрами
(0..9),  а  остальные  - буквами
(A..V).

   Image    является   вспомога-
тельным  определителем  звука. В
Image указываются смещение номе-
ра  noise  относительно базового
(как и в Sample) и смещение час-
тоты  tone относительно заданной
ноты  (в  полутонах).

   Подробное  описание структуры
и  возможностей Image - в описа-
нии редактора Image (см. ниже).




J.  Громкость. Допустимые значе-
ния:  01..15. Указание громкости
означает то, что диапозон значе-
ния громкостей 0..15 при воспро-
изведении данной ноты будет про-
масштабирован в диапазон от 0 до
заданного  значения. Указание EN
в   данном  поле  разрешает  ис-
пользование  envelope генератора
(если кроме того его использова-
ние  указано  в  Sample  (см. п.
H)).


K.  и L. Аналогично F..J для ка-
налов B и C соответственно.


   Теперь рассмотрим взаимосвязь
работы  программы  с  некоторыми
жизненно  важными параметрами ZX
Spectrum.


   Как  известно,  в ZX Spectrum
генерируются прерывания с часто-
той 50 Гц. Интервал времени 1/50
секунды,  равный интервалу между
двумя   соседними  прерываниями,
называется  кварком  (Quark). По
импульсам прерываний осуществля-
ется  синхронизация работы прог-
раммы,  и,  кроме  того, взаимо-
действие  компьютера  с AY также
происходит  с этой частотой. Это
означает,  что лишь 50 раз в се-
кунду могут быть изменены значе-
ния  в  регистрах  AY. Исходя из
этого  факта легко прийти к мыс-
ли,  что  время  звучания одного
Quant  (см.  выше)  должно  быть
равно    целому   числу   Quarks
(нельзя   начать  воспроизводить
новую  ноту, не изменив значений
в регистрах AY).





   Время одного Quant указывает-
ся для каждой композиции в глав-
ном  меню.  (например,  QV.06  -
Quant  равен 6 Quarks). Допусти-
мые  значения длительности Quant
-  от 3 до 50 Quarks.

   Если  Quant  равен 6 Quarks и
соответствует 1/16 ноты, то тог-
да  темп звучания композиции бу-
дет состовлять примерно 125 уда-
ров  в минуту. То же самое можно
сказать,   если  Quant  равен  3
Quarks,  но  соответствует  1/32
ноты.   К  сожалению,  изменение
времени  Quant является довольно
грубым, но единственным способом
задания темпа композиции.




   Описатели   звука   Sample  и
Image  неявно  также  используют
понятия  Quark:  каждая строка в
описании  Sample или Image соот-
ветствует   одному   Quark,  что
обеспечивает задание характерис-
тик  звука с максимальной допус-
тимой дискретностью (как уже от-
мечалось,  менять параметры зву-
чания  AY в ASM нельзя через ин-
тервал    времени   меньше   чем
Quark).

  Максимальный  размер  Sample -
150,  Image  - 30 Quarks. Формат
строки Sample:

   |002|()|+05|-002|12|TN-|
     A   B  C    D   E  F

A.   Порядковый  номер  Quark  в
Sample.


B. Метки зацикливания.

 '(' - начало цикла,

 ')' - конец цикла.

   При   воспроизведении  Sample
будут    проигрываться    Quarks
'внутри'  этих меток до тех пор,
пока не начнется воспроизведение
другой ноты, паузы (Pause - PSE)
либо  не  будет разрешено начать
фазу  послезвучания  (Release  -
RLS).

   В  этом  последнем случае при
достижении  Quark  с  меткой ')'
произойдет  переход на следующий
Quark  (если  он  есть), а не на
Quark с меткой '('.




C. Смещение номера noise относи-
тельно  воспроизведенного в пре-
дыдущем Quark. Это означает, что
при каждом последующем воспроиз-
ведении  данного  Quark  (т.к. в
примере  он указан внутри цикла)
номер   noise  будет  изменяться
согласно     последовательности:
n+5,n+10,n+15  и  т.д.,  где n -
номер noise, воспроизводившегося
в Quark с порядковым номером 01.

D.  Аналогично C, но для частоты
tone генератора. Надо учитывать,
что  это изменение частоты зада-
ется  в единицах частоты AY. Как
известно,  каждый tone генератор
AY может в данный момент воспро-
изводить  одну  из  4095 частот,
номер  которой заносится в соот-
ветствующие   регистры  AY.



   При  этом частоту можно опре-
делить  по  формуле:  F=110.83/n
[kHz],  где  n  -  номер частоты
(1..4095).

   Из формулы видно, что на низ-
ких частотах интервал между дву-
мя  соседними  частотами AY сос-
тавляет доли герца, тогда как на
высоких  частотах  он  достигает
нескольких килогерц.

   Это  надо учитывать при зада-
нии  смещения  частоты в Sample.
На практике для нот первой окта-
вы  суммарное  смещение  частоты
обычно не превышает 5-10 единиц.


E.  Громкость. Т.к. tone генера-
тора  AY имеет 16 градаций гром-
кости,  то допустимые здесь зна-
чения : 00..15.

F. Режим работы канала. Содержит
3 позиции:

1. задействование tone генерато-
ра:  'T'  -да,  '_' -нет;
2.  задействование noise генера-
тора: 'N' -да; '_' -нет;
3. дополнительные возможности:

 '_'  -не  использовать дополни-
тельные  возможности;

 'E'  -использовать envelope ге-
нератора,  если  в Pattern будет
указано EN;

 '+'  -увеличить  на  1 смещение
громкости;

 '-'  -уменьшить  на  1 смещение
громкости;



   Смещение  громкости  означает
отличие  реально воспроизводимой
громкости от указанной в п. E. В
начале   воспроизведения  Sample
оно равно нулю, а затем его зна-
чения могут накапливаться, оста-
ваясь в диапазоне -15..+15. Если
указан  режим  работы  'T_E' или
'__E',  то смещение, указанное в
п.  C, относится не к noise, а к
частоте envelope генератора.


   Формат  строки  Image  схож с
форматом строки Sample за исклю-
чением того, что отсутствуют пп.
E. и F., а смещение частоты в п.
D.  указывается в полутонах, что
позволяет   задавать   в   Image
воспроизведение аккордов.



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

Экспертиза - разбор игры "ShadowFire", продолжение игры "Enigma Force".

Дебют - Описания двух интересных игр: "Deactivators" и "Vendetta".

Эказамен - Вам предлагается решить игровой этюд по программе "Deactivators".

Обзор - Новые подробности о новосибирской версии игры "ELITE".

С миру по биту - "Не надо нам такого порядка" дискуссия на тему: "IS-DOS: проблемы развития".

Система - Музыкальный редактор ASM А.Сендецкого - авторская инструкция по работе с редактором.

Реклама - раздел бесплатных обьявлений.


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

Похожие статьи:
Мнение - Кстати, о компьютерных фестивалях...
Реклама - реклама и объявления.
ZXNet - О истории открытия SPbZXNet.
Ответы на письма №50-55.
График - На BBS продолжается эксперемент с новым графиком работы.

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