zxtunes.com новости музыканты софт железо интервью подкасты статистика форум чаво музыка: игровая демошная из прессы с патей ремиксы в MP3
World's largest ZX Spectrum music collection язык rus eng

Софт  

просмотров 15052
обновление
09.11.2007



Asc Sound Master
version 0.12




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

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

Прошли те времена, когда компьютеры ( ЭВМ !) занимались "перемалыванием" колонок никому не нужных цифр, будоража умы пионеров компьютерной индустрии. Помянем добрым словом их теперь уже седые "яйцеобразные" головы (англ. 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

Музыкальный редактор 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 для дальнейшего использования в других программах.

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

Управление основывается на использовании 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 система хранения музыкальных данных. Предпологается знание целого ряда музыкальных терминов. t0.n:.kad Построение музыки базируется на 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 воспроизведение аккордов.

ГЛАВНОЕ МЕНЮ ПРОГРАММЫ


Теперь перейдем к описанию опций основного меню ASM в порядке их отображения на экране. Попутно будут прокомментированы и все вложенные меню. В заглавии каждого пункта в квадратных скобках будут указаны клавиши, нажатием которых можно быстро выбирать данную опцию меню. (см. 'Концепция управления').

Функция escape в основном меню служит для выхода из программы. При этом запрашивается подтверждение с помощью специального подменю.

PLAY COMPOSE / PLAY PATTERN [P]

Функцией select начинается воспроизведение композиции, находящейся в данный момент в памяти, в том случае, если в текущей Position указан номер какого-либо Pattern (т.е. если Position не пуста).

В случае PLAY PATTERN будет воспроизводиться только Pattern, указанный в данной Position (циклически), а в случае PLAY COMPOSE по окончании проигрывания Pattern в текущей Position произойдет переход к Pattern, указанному в следующей Position. Если следующая Position пуста, то программа будет анализировать последующие Position, пока не будет достигнута последняя Position.

В этом случае произойдет переход к Position, помеченной как точка цикла (Loop Point - LP - см. ниже).

Переключение варианта опции - функциями sub/add без выбора опции. При включении PLAY COMPOSE автоматически производится переход к Position с номером 00 (это самый быстрый способ перехода на начало композиции).

Во время проигрывания функциями sub/add можно изменять время Quant (Quant Value - QV -см. ниже), т.е. подбирать подходящий темп звучания композиции. Остановка проигрывания - функцией escape.

POSITION 00 [N]

Функциями sub/add можно установить текущую Position для проигрывания или редактирования Pattern, указанного в этой Position.

Функцией select производится вход в редактор Position. В редакторе Position отображается весь список Positions с указанием номеров Pattern в каждой Position по 10 каждой строке (10 строк=100 Positions). '--' вместо номера Pattern означает, что данная Position пуста.

Up/down/left/right служат для перемещения по списку Position: -10/+10/-1/+1 соответственно.

Select включает/выключает режим DEL<>INS. Если он выключен, то sub/add изменяют номер Pattern в текущей Position, а если включен, то sub 'удаляет' данную Position (сдвигая номера Pattern в последующих Positions на 1 влево), а add раздвигает список (номера Pattern в последующих Positions смещаются на 1 вправо, а номер в текущей Position дублируется в следующую Position).

Выход из редактора Position -функцией escape.

EDIT PAT. -- [E]

Функциями sub/add можно установить номер Pattern, указанного в текущей Position (не входя в редактор Position).

'--' означает, что текущая Position пуста. Функцией select производится вход в редактор Pattern.

В редакторе Pattern отображаются 7 Quants: 3 предшествующих текущему, текущий, 3 следующих за текущим. Термины 'предшествующий' и 'следующий' соответствуют порядку воспроизведения Quants при проигрывании.

Например, если установлен режим PLAY PATTERN и текущим является Quant 01, а размер текущего Pattern 64, то предыдущими будут Quants 62, 63 и 00 того же Pattern, а последующими - 02, 03 и 04. Если установлен режим PLAY COMPOSE, то при переходе через границу Pattern предыдущие Quants будут выбираться из Pattern, номер которого указан в предыдущей Position, а следующие - из Pattern, номер которого указан в следующей Position. Кроме того, если текущая Position помечена как Loop Point, то для нее предыдущей считается последняя занятая Position, а для последней занятой Position следующей считается Position, помеченная как Loop Point.

Перемещение в редакторе Pattern: up/down - перейти к предыдущему/следующему Quant. Учитывая вышеописанную систему определения предыдущих и следующих Quants, очевидно, что не выходя из редактора Pattern можно переместиться в любую часть композиции.

Одновременное нажатие up и down используется для быстрого перехода на начало Pattern.

Перемещение по текущему Quant: left/right - перейти к предыдущему/следующему элементу строки Quant (см. описание формата строки Quant).

Действие sub, add и select изменяется в зависимости от того, на каком элементе строки Quant находится в данный момент курсор:

- если курсор указывает на октаву/ноту канала A,B или C, то sub/add изменяют текущую октаву, select включает PLAY PATTERN / PLAY COMPOSE (в зависимости от того, что установлено в главном меню) с той лишь разницей, что проигрывание продолжается не до нажатия escape, а пока удерживается какая-либо клавиша;

- иначе sub/add изменяют значение в данном элементе строки, select проигрывает текущий Quant без перехода к последующему, пока удерживается какая-либо клавиша.

Как уже указывалось, в режиме редактирования Pattern при нахождении курсора в поле октавы - ноты 2 нижних ряда клавиатуры используются как клавиатура фортепиано. При вводе ноты в соответствующем канале могут автоматически устанавливаться остальные параметры (Sample,Image, Volume) канала так, как они указаны в опциях SM.--, IM.--, VOL.-- основного меню в том случае, если вместо '--' указаны какие-либо значения. Иначе соответствующий параметр не изменяется. Существует и обратная связь: если при редактировании Pattern изменить какой-либо параметр канала, то установленное значение будет перенесено в соответствующую опцию основного меню (SM,IM,VOL) и, значит, при дальнейшем вводе нот будет устанавливаться автоматически.

Особо следует сказать о вводе нот с клавиатуры в том случае, если в главном меню указано 'VOL.EN'. При этом в поле символа типа огибающей подставляется символ, указанный в главном меню (\,/,/\,\/), а код частоты envelope генератора для введенной ноты подсчитывается автоматически с учетом указанного в главном меню соотношения (3:1, 5:2, 2:1, 3:2, 1:1, 3:4, 1:2, 1:4, причем первая цифра указы- вает множитель для частоты envelope генератора, а вторая - для tone генератора).

Кроме того, клавиша 'I' служит для установки 'PSE' (паузы -Pause), 'K' - для установки 'RLS' (разрешение начать фазу Release -см. описание Sample), 'L' - для установки '___' (канал в данном Quant продолжает воспроизведение ранее указанной ноты).

При нахождении курсора в поле октавы/ноты клавиша'U' используется для установки команды в текущем Quant для данного канала AY. При нажатии этой клавиши на месте параметров канала появляется строка с названием команды и ее аргументом.

Список команд:

NO COMMAND - нет команды;

HLD SAMPLE - продолжить воспроизведение Sample с началом новой ноты;

HLD IMAGE - продолжить воспроизведение Image с началом новой ноты;

HLD INSTR. - продолжить воспроизведение Sample и Image с началом новой ноты;

QUANT = 03 - задать новую длительность Quant (смена темпа звучания композиции);

GLIS.UP 01 - смещать значение частоты канала на 1 вверх (в область высоких звуков) каждый Quark;

GLIS.DN 01 - смещать значение частоты канала на 1 вниз (в область низких звуков) каждый Quark;

PORT.-S 01 - плавный переход к указанной ноте от воспроизводившейся ранее за 1 Quark; Sample, который использовался при воспроизведении предыдущей ноты, продолжает свое звучание;

PORT.+S 10 - как предыдущая команда, но в момент начала перехода Sample, указанный в данном канале, начинает свое звучание с начала.

* Надо учитывать, что при выполнении двух последних команд всегда будет продолжать свое звучание Image, использовавшийся при воспроизведении предыдущей ноты. То же можно сказать и о Sample в случае выполнения команды PORT.-S. Кроме того, команда PORT.-S учитывает предыдущее смещение частоты канала, поэтому ее можно применять после команд GLIS и PORT. Если в текущем Quant канала, где применяется команда PORT, не указана нота, к которой надо делать переход (т.е. указано '___' или 'RLS'), и если до этого выполнялась команда GLIS или PORT, то произойдет возврат к той ноте, из которой происходил переход по команде GLIS или PORT; иначе команда ничего не делает.

* Команды GLIS и PORT кроме смещения высоты тона изменяют также и текущий номер noise, если noise разрешен в соответствующим Sample, в соотношении 16:1 (т.е. команда GLIS UP 32 будет смещать номер noise на 2 единицы каждый Quark в сторону меньших номеров). Из-за особенностей реализации команды PORT применение ее для изменения номера noise достаточно сложно, тогда как команда GLIS действует достаточно эффективно.

В режиме установки команды up/down/left/right - смена команды, sub/add - изменение аргумента команды (если он есть в данной команде), select - воспроизведение текущего Quant. Выход из режима редактирования Pattern - функцией escape.

QNT. PLAY -- [Y]

Отображает номер текущего Quant. '--' означает, что текущая Position пуста.

Функции sub/add служат для перехода к предыдущему/последующему Quant по там же законам, что и up/down в редакторе Pattern.

Функция select вызывает PLAY PATTERN / PLAY COMPOSE, причем проигрывание производится, пока нажата какая-либо клавиша.

Данная опция используется редко и в основном служит для контроля номера текущего Quant.

PAT. SIZE -- [Z]

Показывает размер текущего Pattern. '--' означает, что текущая Position пуста.

Функции sub/add позволяют ме- нять размер текущего Pattern в пределах от 1 до 64. При этом если Pattern уменьшается, то удаляется его последний Quant, а если увеличивается, то в конце его добавляется пустой Quant.

A+ B+ C+ [A,B,C]

С помощью этих трех опций можно запрещать воспроизведение соответствующего канала AY при проигрывании композиции. Переключение +/- производится функцией select.

LP.00 [J]

Показывает номер Position, на которую производится зацикливание (Loop Point). Необходимое значение устанавливается функциями sub/add.

QV.06 [Q]

Время Quant в Quarks - т.е. задание темпа композиции. Параметр изменяется функциями sub/add в пределах от 3 до 50.

SM.-- [S]

Служит для отображения номера Sample, подставляемого при вводе ноты в редакторе Pattern, и одновременно является входом в редактор Sample. Sub/add позволяют установить нужный номер Sample.

При '--' номер Sample в редакторе Pattern не подставляется и вход в редактор Sample не производится. В редакторе Sample отображаются до 7 строк текущего Sample и появляется меню редактора Sample:

HEAR SAMPLE 00 [H]

Функциями sub/add можно установить номер текущего Sample, select - воспроизведение Sample (пока нажата какая либо клавиша).

NAME: <-X--X-> [N]

Имя текущего Sample. Select - ввод нового имени. В режиме ввода имени select - завершение ввода, escape - возврат к предыдущему имени.

EDIT PLACE 000 [E]

Номер текущей строки Sample. Sub/add - смена текущей строки, select - вход в редактирование строки Sample. В режиме редактирования строки Sample up/down - перемещение по Sample вверх/вниз (смена текущей строки Sample), left/right - перемещение по строке Sample (см. описание формата строки Sample), sub/add - изменение значения элемента те- кущей строки Sample, select - воспроизведение Sample, escape - выход из редактирования строки Sample в меню редактора Sample. При нахождении курсора в первой позиции (содержащей номер строки Sample) sub/add вызывают изменение размера Sample по описанным ниже правилам.

ENTRY SIZE 000 [Z]

Размер текущего Sample в Quarks. Sub - уменьшение размера (удаляется текущая строка Sample), add - увеличение размера (текущая строка Sample дублируется).

(: 000 ): 000 [J,K]

Начало и конец цикла Sample. Syb/add - перемещение метки начала/конца цикла.

1_C 0 0 15 N00 [B,S,I,V,нет]

Параметры канала, используемые при воспроизведении Sample (октава, нота, Sample, Image, Volume и базовый номер Noise).

Sub/add - изменение соответствующего параметра. В отличии от редактора Pattern здесь октава и нота считаются одним параметром. Select - воспроизведение Sample.

DISK [D]

Вход в меню операций с диском для данного Sample. Оно аналогично меню операций с диском для композиции в целом и его описание помещено ниже. Типы данных для операций с диском (см. описание меню операций с диском) при вызове меню дисковых операций из этого подменю: 'SAMPLE #00' - текущий Sample и 'SM.00 IM.00' - текущий инструмент (совокупность Sample и Image).

GET < 00 [G]

Копирование указанного Sample в текущий. Sub/add - изменение номера Sample-источника, select - копирование.

Выход из редактора Sample - функцией escape.

IM.-- [I]

Выполняет действия, аналогичные только что описанному редактору Sample, но для Image.

1:1 [F]

Соотношение частот envelope и tone генераторов используемое при вводе нот для VOL.EN (см. описание редактора Pattern).

Sub/add - смена соотношения (3:1, 5:2, 2:1, 3:2, 1:1, 3:4, 1:2, 1:4), select - пересчет значений частоты envelope генератора с учетом данного соотношения и формы колебаний envelope генератора для всех нот в текущем Pattern.

\ [W]

Форма колебаний envelpoe генератора, используемая при вводе нот для VOL.EN (см. описание редактора Pattern). Sub/add - смена формы колебаний (\, /, /\, \/), select - пересчет значений частоты envelope генератора с учетом данного соотношения и формы колебаний envelope генератора в текущем Pattern.

VOL.-- [V]

Значение Volume, подставляемое при вводе нот в режиме редактирования Pattern. При '--' значение Volume при вводе нот подставляться не будет. Sub/add - изменение Volume (--, 01..15, EN).

1-ST OCTAVE [O]

Название октавы, ноты которой будут вводиться при редактировании Pattern. Sub/add - смена октавы (SUBCN, CONTR, LARGE, SMALL, 1-ST, 2-ND, 3-RD, 4-TH).

ASM COMPILER [M]

Вход в меню компилятора композиций. В верхней части меню (недоступной для курсора) отображается справочная информация о находящейся в памяти композиции (количество Positoins, Pattern, суммарный объем памяти, занятой Samples и Images). Ниже помещаются строки меню компилятора:

COMPILE MODULE [C]

Компиляция находящейся в памяти композиции. Select - начать компиляцию. После нормального завершения компиляции в нижней строке меню будет выдано сообщение о размере полученного в результате блока. Иначе будет выдано сообщение об ошибке (нечего компилировать, либо размер полученного блока превышает 16384b).

MUSIC'S NAME: SOUND MASTER'S
MUSIC [N] Название композиции.
Select - ввести новое название.
Escape при вводе названия - возврат к предыдущему названию.

DESIGNED BY: ANDREW SENDETSKI
ASC [D] Имя автора композиции.
Select - ввести новое имя автора. Escape при вводе имени - возврат к предыдущему имени.

BLOCK'S NAME: ANY-NAME [B] Имя файла, под которым скомпилированный блок будет записан на диск в формате TR-DOS. Select - ввести новое имя файла. Escape при вводе имени файла - возврат к предыдущему имени файла.

SAVE COMPILED BLOCK TO TRDOS [S]
Select - запись откомпилированного блока в TR-DOS под указанным в предыдущей строке меню именем файла. По окончании записи в нижней строке меню будет выведено сообщение либо об успешном завершении либо об ошибке (нечего записывать, неподходяший формат диска и т.д.). Откомпилированный блок после записи его на диск в формате TR-DOS затем может быть загружен в память по любому адресу.

Воспроизводить откомпилированный блок может следующая BASIC-программа:

1 RANDOMIZE USR X+11

11 RANDOMIZE USR X+14 : PAUSE 1

: GO TO 11 где X - адрес, по которому загружен блок.

После останова этой программы клавишей BREAK 'заглушить' AY можно командой:

RANDOMIZE USR X+17

Как видно, откомпилированный блок имеет 3 стандартные точки входа:

X+11 - INIT - инициализирует (устанавливает на начало) композицию, 'заглушает' AY, а при первом вызове еще и производит настройку программы на адрес загрузки; вызов этой точки входа первый раз после загрузки рекомендуется производить при запрещенных прерываниях (DI);

X+14 - NEXT - формирование очередного набора значений в регистрах AY (собственно воспроизведение композиции); необходимо вызывать с частотой 50 Гц (т.е. с частотой следования прерываний);

X+17 - MUTE - 'заглушение' AY. Как правило, вызов этой точки входа производится, если необходимо завершить воспроизведение композиции.

Надо учесть, что если после вызова MUTE затем возобновить вызовы NEXT, то воспроизведение композиции будет продолжено.

INFORMATION ABOUT PROGRAM [I]

Выдача информации об авторе программы и об условиях ее распространения. Любая клавиша - возврат в меню компилятора. Вы- ход из меню компилятора - escape.

CLR A [L]

Очистка указанной части теку- щего Pattern. Sub/add - выбор части Pattern, которая будет очищена (A, B, C - каналы A, B и C соответственно, E - значения частоты envelope генератора, N - значения базового Noise). Select - выполнение очистки.

UNDO [U]

Отмена изменений, только что внесенных в текущий Pattern при редактировании, очистке, копировании или альтерации (см. ниже). Следует помнить, что если в ходе редактирования Pattern произошел переход в другой Pattern, то функция UNDO действовать не будет.

GET A < 00 A [G]

Копирование в указанный канал текущего Pattern информации из определенного канала этого же или другого Pattern. Эта строка меню разделена на 3 части, в каждой из которых функциями sub/add можно установить один из параметров операции (канал-приемник, Pattern-источник и канал-источник).

Функция select осуществляет копирование, когда курсор находится на любой из этих трех частей.

KEY A < +000

Транспозиция (смещение на указанное количество полутонов) всех нот в указанном канале текущего Pattern. Эта строка меню разделена на 2 части, в каждой из которых функциями add/sub можно установить один из параметров операции (канал и количество полутонов). Функция select осуществляет транспозицию, когда курсор находится на любой из этих двух частей.

DISK OPTIONS [D]

Вход в меню дисковых операций для композиции:

MUSIC MODULE: [Y]

Задание типа данных, для которых будут производится дисковые операции (не считая трех операций), имеющих глобальный характер и выделенных в отдельную группу в нижней части меню). Исходя из указанного типа данных программа будет автоматически составлять список расширений имен файлов, по отношению к которым будут производиться файловые операции. Сам список расширений нигде не отображается и для пользователя знание его несущественно.

Допустимые типы данных:

- MUSIC MODULE - все данные, описывающие композицию;

- PATTERNS - идентификатор программы, название композиции, имя автора, темп, список Positions и все используемые в нем Patterns;

- INSTRUMENTS - 32 Samples и 32 Images;

- SAMPLES - 32 Samples;

- IMAGES - 32 Images;

LOAD [L]

Чтение с диска файлов с указанных именем, составляющих выбранный тип данных; SAVE [S]

Запись на диск файлов с указанным именем, составляющих выбранный тип данных;

CHOOSE NAME [C]

Выбор имени файла (файлов), по отношению к которому применяются все файловые дисковые операции, из списка имеющихся на диске. Select - вызов списка имен файлов на диске, соответствующих выбранному типу данных. Если тип данных требует наличия нескольких файлов с разными расширениями, то автоматически будет проверяться наличие файлов со всеми необходимыми расширениями дла всех имен, которые затем будут выведены в списке.

При выборе имени из списка up/down/left/right - перемещение по текущей странице имен, sub/add - переход к предыдущей/последующей странице имен, select - выбор имени, на которое указывает курсор (с возвратом в меню дисковых операций), escape - возврат к предыдущему имени (с возвратом в меню дисковых операций).

NAME: ANY_NAME [N]

Имя файла (файлов), по отношении к которому применяются все файловые дисковые операции. Select - ввод нового имени. В режиме ввода нового имени escape - возврат к предыдущему имени. Вместе с именем файла может быть указан и дисковод (B:FILENAME).

ERASE [E]

Удаление с диска файлов с указанным именем, составляющих выбранный тип данных.

PROTECT [P]

Защита файлов с указанным именем, составляющих выбранный тип данных. Защита заключается в установке флага 'только для чтения' (Read Only). Защищенные файлы нельзя будет удалить функцией ERASE, пока не будет проведена отмена защиты (см. ниже).

UNPROTECT [U]

Отмена защиты файлов с указанным именем, составляющих выбранный тип данных.

RENAME: NEW_NAME [M]

Переименование файлов с указанным именем, составляющих выбранный тип данных.

Select - ввод нового имени. Select в режиме ввода имени - произвести переименование, escape - отказ от ввода нового имени и от переименования.

LOGGED DRIVE :A [D]

Задание дисковода, на котором будут производиться все дисковые операции. Sub/add - смена дисковода (A, B).

FORMAT DISK [F]

Форматирование диска в формате 'ADS 1.00 (C) ASC' (790Kb). Select - вывод запроса о начале форматирования, затем 'Y' - начать форматирование, любая другая клавиша - отказ от форматирования.

IMPORT ASM 0.1X [I]

Чтение композиции, записанной предыдущей версией редактора, с диска в формате TR-DOS. Эта функция действует только для типа данных 'MUSIC MODULE'.

Выход из меню дисковых операций - escape.



© 2006—2014...?
ZXTUNES — ex'World's largest ZX Spectrum music collection