- влево
- вправо
- выбор опции
Помимо этих, задействованы клавиши
(CS+4) и (CS+3),
которые используются для увеличения /
уменьшения различных цифровых параметров
или изменения некоторых других.
Горячие клавиши доступны во всех
меню; для их индикации необходимо нажать
(CS+SS). Горячая клавиша
обеспечивает перемещение курсора на опцию
и ее выбор. В основном меню горячие клавиши работают только при нажатом .
Выход из всех меню, а также отказ
от некоторых функций осуществляется клавишей (CS+1).
Помимо этих, в некоторых случаях
шспользуются другие клавиши, описание которых будет приведено в соответствующих
разделах.
5. Главное меню.
Ниже приводится описание оций
главного меню:
POSITION XX. (CS+I) - указывает
номер текущей POSITION (XX=1..256). Клавиши (далее: +) и (далее: -) используются для изменения номера XX. устанавливает
POSITION=1 (начало COMPOSE).
EDIT PAT.XX (CS+E) - указывает номер редактируемого PATTERN (1...40). Доступны функции +/-, устанавливает
QUANT=0 (начало PATTERN).
CACOFONY позволяет производить редактирование PATTERN _НЕЗАВИСИМО_ от положения курсора в главном меню, т.е. одновременно возможно как редактирование
PATTERN, так и выбор/изменение опция
главного меню, и все это - без бестолкового переключения режимов работы, как это
почему-то принято в других редакторах.
PATTERN EDITOR доступен ВСЕГДА,
когда активно главное меню и использует
следующие клавиши:
(CS+6) - переход на строку
(QUANT) назад (вверх).
(CS+7) - оереход на строку
вниз.
(CS+5) - перемещение курсора в PATTREN EDITOR влево.
(CS+8) - перемещение курсора вправо.
Окно PATTERN EDITOR состоит из семи строк, три из котырых являются предудущими текущей строке, и три - последующими. Текущая (редактирумая) строка выделена цветом и содержит в себе мерцающий
курсор.
Формат строки PATTERN:
| LL | EE | NNN SO | NNN SO | NNN SO |
(канал A B C)
где LL - номер строки PATTERN'а
EE - номер ENVELOPE (--,01...FF)
для текушего QUANT.
NNN - нота (в международной системе) и октава:
C - до
C# - до#
D - ре
D# - ре#
E - ми
F - фа
F# - фа#
G - соль
G# - соль#
A - ля
A# - ля#
B - си
Октавы обозначаются как: U,C,L,
S,1,2,3,4 - соответственно суб контр, контр, большая, малая,
1-я, 2-я, 3-я, 4-я.
Пример: C#L - до диез большой
октавы. A-2 - ля 2-й октавы.
S - номер SAMPLE (-,1...F).
O - номер ORNAMENT (-,1...F).
Символы "-" или "0" в позициях
EE, NNN, SO, показывают, что в данном
QUANT соответствующая величина не изменяется, т. е. продолжает действовать ранее
установленное значение. В случаях с
ENVELOPE, SAMPLE и ORNAMENT имеет смысл
только для экономии размера откомпилированного блока. Если же символы "---" находятся в позиции NNN, то это значит, что
в соответствуюшем канале будет продолжать
свое звучание определенная ранее нота.
Обпатите внимание, что в отличие
от SOUNDTRACKER 0 в посиции ORNAMENT означает не 0-й ORNAMENT, а ранее установленный.
Для изменения значений EE, SO, используются клавиши 0...9, A...F при расположении курсора в необходимой позиции.
Изменение NNN осуществляется клавишами
Z,S,X,D,C,V,G,B,H,J,M которые соответствуют нотам от До до Си. При вводе
ноты осушествляется автоматическая установка SO и EE, если соответствующие им
опции SAMPLE, ORNAMENT либо ENV главного
меню имеют отличные от "-" параметры. Для
установки "---" в позицию ноты используется клавиша "К"; пауза "PSE" вводится
клавишей "L" и обеспечивает заглушение
канала.
PAT.SIZE XX (1...64) (CS+Z) - определяет размер текущего PATTERN. При
уменьшении PAT.SIZE строки выходящие за
пределы PATTERN НЕ ОЧИЩАЮТСЯ и при последующем увеличении PAT.SIZE восстанавливаются.
DELAY X (-,1...F) (CS+Y) - скорость воспроизведения композиции в текущеи POSITION (1 - максимальная, F - минимальная). Фактически определяет количество QUARK в QUANT. При значении DELAY
равном "-" скорость остается прежней.
/X (SS+V) - X равный 1 или 2 показывает сколько QUARK содержится в интервале времени 1/50 секунды. 1 - стандартный режим использующийся большинством
редакторов (обновление регистров AY - 50
раз в секунду). 2 - специальный режим с
удвоением частоты выдачи данных на AY,
позволяет улучшить качество звучания
SAMPLE/ORNAMENTS (QUARK=1/100 сек.).
A+NN, B+NN, C+NN - определяет величину модуляции соответствующего канала
PATTERN'а в текущей POSITION. Позволяет
воспроизводить один и тот же PATTERN в
разных POSITION в различных тональностях.
LEN. XX (1...256) (CS+N) - длина
композиции (количество PATTERNS используемых в COMPOSE).
LP. NN (1...256) (CS+L) - номер
POSITION, на которую происходит зацикливание COMPOSE при проигрывании ее до конца.
PLAY COMPOSE/PATTERN () -
функции +/- переключают режим воспроизведения. При включенном режиме PATTERN происходит проигрывание/редактирование только текущего PATTERN, иначе - всей
COMPOSE. При выборе этой опции клавишей
(или горячей клавишей )
включается режим воспроизведения. При
проигрвании композиции доступны _ВСЕ_ опции главного меню, а также редактирование
PATTERN (!), что позволяет при некотором
умении редактировать музыку непосредственно в процессе ее воспроизведения.
Если же Вы таким умением пока не обладаете, то воспользовавшись возможностью
EDIT-IN-PLAY с легкостью поймете происхождение названия редактора.
Выключение режима PLAY осуществляется клавишей или при входе в любое меню.
В режиме /2 воспроизведение несколько искажается, т.к. изменение регистров AY происходит апериодично.
PLAY SONG (CS+P) - функция включающая воспроизведение музыки. В режиме /1
полностью аналогична вышеописанной. В режиме /2 обеспечивает реальное воспроизведение композиции (обновление регистров AY
100 раз в секунду через равные промежутки
времени).
SAMPLE X (-,1...F) (CS+S)
ORNAMENT X (-,1...F) (CS+O)
При X отличном от "-" нажатие
осуществляет вход в INSTRUMENT
EDITOR.
INSTRUMENT EDITOR представляет собой совмещенный редактор SAMPLE/ORNAMENT.
экран IE разделен на две части: первая
(основная) содержит до 15-ти строк(QUARK)
SAMPLE/ORNAMENT, вторая часть - это строка, похожая на строку PATTERN, но имеющая
нотную позицию только для одного канала -
служит для ввода ноты и ENVELOPE, которые
используются в IE. В данной строке возможно, также, изменение номеров SAMPLE и
ORNAMENT, при этом новые SAMPLE/ORNAMENT
становятся текущими. Клавиши редакторования этой строки аналогичны используемым в
PATTERN EDITOR.
Основная часть - собственно редактор SAMPLE/ORNAMENT - отображает до 15-ти
строк (в зависимости от их длинны). Строка IE состоит из 10-ти позиций и имеет
следующий формат:
LL()+TONE+EN#### ######()+OR
| |||| || || || |||| |
+++||+-+-++-++-+-++--+-+||+++
| || | | | | || |
1 23 4 5 6 7 89 10
Позиции 2...7 относятся к SAMPLE,
8...10 - к ORNAMENT.
1 - номер строки SAMPLE/ORNAMENT
2&3 - символы "(" и ")" в данных
позициях обозначают участок SAMPLE, который повторяется при воспроизведении. При
воспроизведении SAMPLE проигрывается от
начала до конца, затем воспроизводится
участок ограниченный скобками.
4 - смещение частоты для генератора TONE, определяет на сколько единиц изменяется содержимое регистров TONE для
данного QUARK относительно частоты ноты
(но не предыдущего QUARK, как сделано в
ASM & PSM). В отличае от SOUNDTRACKER,
где возможные значения аналогичного параметра лежат в пределах от -4096 до +4095,
в CACOFONY возможный диапозон - -2047...
+2046, что практически полностью перекрывает 4096 возможных значений регистров
TONE. Знак "+" перед числом соответстует
не повышению частоты, как в ST, а увеличению значения регистра TONE, т.е. понижению частоты. При изменении регистров
TONE действуют законы операций над числами в дополнительном коде по модулю 4096,
т.е увеличение на 1 аналогично уменьшению
на 4095, что объясняет в два раза меньший
диапазон возможных чисел чем в ST.
Если в данной позиции находятся
символы "-----", то генератор TONE отключается.
5 - аналогично предыдущиму параметру,но смещение задается для генератора
ENVELOPE. Возможные значения от -80 до
+7F (в шестнадцатиричном виде). Необходимо помнить, что частоты TONE и ENVELOPE
различаются в 16 раз для одинаковых значений их регистров, поэтому изменению
TONE на 32 соответствует изменение ENVELOPE на 2 (типы ENVELOPE 8 & C) или 1
(типы ENVELOPE A & E) для соотношения
TONE/ENVELOPE 1/1.
6 - данная позиция определяет
громкость QUARK'а (графическое обозначение) либо номер типа ENVELOPE (цифро-буквенное обозначение: -,1...F). Одновременное использование ENVELOPE и громкости
невозможно из-за ограниченнсти возможностей AY. Символ "-" в позиции определителя
ENVELOPE означает что в данном QUARK тип
ENVELOPE не меняется. Внимание! использование повторяющихся одинаковых определителей ENVELOPE вместо "-" сильно меняет
звучание SAMPLE, поскольку в случае, когда определитель ENVELOPE отличен от "-"
происходит переустановка соответствующего
регистра AY и генератор ENVELOPE перезапускается.
Цвет графического обозначения
громкости определяет подключен (белый)
или нет (синий) генератор TONE (при включенном ENVELOPE и отключенном TONE звучит
"чистая" ENVELOPE, т. е. при значениях
определителя ENVELOPE равных 8 или C имеем пилообразные, а при A и E - треугольные колебания). Помимо этого возможен
особый режим (цвет - зеленый), когда частота TONE устанавливается равной 110KHz;
этот режим похож на отключение TONE, поскольку данная частота выходит за диапазон
слышимости, одноко, если в QUARK используется также NOISE или ENVELOPE, то
громкость их звучания понижается. Как
видно CACOFONY позволяет иметь ДВЕ громкости ENVELOPE.
7 - базовая частота NOISE генератора. Цвет данной позиции определяет
подключен (белый) или нет (синий) генератор NOISE к выходу канала.
8&9 - аналогичны 2&3, но используются для ORNAMENT'а.
10 - значение модуляции текущего
QUARK, показывает на сколько полутонов
вверх или вниз изменяется текушая нота.
Необходимо помнить, что AY имеет
по одному генератору NOISE и ENVELOPE, и
только один определитель типа ENVELOPE,
поэтому использование в разных каналах
PATTERN'а SAMPLE'ов с различными NOISE
или ENVELOPE не приведет к желаемому результату: звучать будет ENVELOPE/NOISE
того SAMPLE, который находится в канале
имеющем более высокий приоритет (A - наивысший, C - наинизший).
Редактирование параметров и перемещение курсора происходит при помощи
стандартных для CACOFONY клавиш;
дублируется также клавишей
, а - , нажатие последних с приводит к изменинию на
несколько единиц сразу. Помимо этих используются еще две клавиши: - обнуление текушего значения и <.> (+
) - смена знака числа либо маски (в
позиции 2&3 - изменение маски TONE). Возможны комбинации из этих клавиш.
Изменение размера SAMPLE или ORNAMENT выполняется при нахождении курсора в
позиции 1, причем если до этого курсор
находился в позициях SAMPLE'а, то происходит изменение размера SAMPLE, иначе -
размера ORNAMENT.
OCTAVE NNN (CS+V) - текущая октава, которая используется при вводе ноты.
Октавы обозначаются: SUB, CON, LRG, SML,
1ST, 2ND, 3RD, 4TH - сответственно субконтр, контр, большая, малая, 1...4 октавы. Для изменения октавы доступны также
клавиши +<1>...<8>, причем не только
из основного меню, но и из INSTRUMENT
EDITOR.
ENV.E/T (SS+M) - устанавливает отношение частот ENVELOPE/TONE для автоматического ввода делителя ENVELOPE. При
параметре "---" ввод делителя ENVELOPE не
происходит. Следует иметь ввиду, что частоты звучания ENVELOPE разных типов (8&C
и A&E) различаются вдвое (см. также INSTRUMENT EDITOR). Ввод делителя ENVELOPE
осуществляется как в PATTERN EDITOR так и
в INSTRUMENT EDITOR.
A+,B+,C+ (CS+A, CS+B, CS+C) -
включение/отключение каналов при воспроизведении.
CLEAR (CS+R) - вход в меню
очистки. Работа с меню достаточно проста:
помещаем курсор на необходимый объект и
нажимаем . При ответе на запрос
"ARE YOU SURE?" "Y" происходит стирание,
любая другая клавиша - отказ.
Строка LINE L1 -- L2 - стирает
текст в текущем CHANNEL PATTERN'а от
строки L1 до L2, при этом курсор может
находиться как в позиции LINE L1, так и в
позиции -- L2. L1 и L2 можно устанавливать прямо из PATTERN EDITOR нажатием соответственно + и +. CHANNEL
и PATTERN устанавливаются автоматически
при входе в меню в зависимости от положения курсора и текущего PATTERN'а.
COPY TEXT (CS+X) - меню копирования. Работа с меню практически полностью
аналогична предыдущему. Символы ">>" указывают направление копирования. Копирование строк/каналов возможно как в пределах
одного так и разных PATTERN'ов. Опция
LINE L1 -- L2 >> L3 копирует строки с L1
по L2 в строки начиная с L3; PATTERN и
CHANNEL источника и приемника определяются значениями в соответствуючих опциях.
При копиривани строк в пределах одного
PATTREN'а и CHANNEL'а строки выходящие за
0-ю или 63-ю строки помещаются соответственно в конец/начало PATTERN'а (происходит циклический здвиг строк).
Опция CREATE INSTRUMENT генерирует
SAMPLE и ORNAMENT с соответствующими номерами из текста текущего CHANNEL'а PATTERN'а начиная со строки L3. Генерируются
всегда SAMPLE и ORNAMENT длинной 120. Для
нормальной работы функции необходимо наличие ноты и ENVELOPE (если используются
SAMPLES со смещением ENVELOPE) в текущей
строке PATTREN'а, а также необходимо,
чтобы SAMPLE/ORNAMENT генерация которых
происходит не использовались в тексте
PATTERN'а. Полученные SAMPLE/ORNAMENT эквивалентны по звучанию группе строк с L3
и по L3+N, где N=120/DELAY или 60/DELAY
для режимов 50/100 QUARKS соответственно) при условии, что SAMPLE/ORNAMENT будут воспроизводиться с нотой/ENVELOPE,
установленной в строке L3. После выполнения опции устанавливается строка до которой выполнена конверсия. Данная опция
удобна для замены часто повторяющихся
групп строк одной нотой.
TRANSPOSE (CS+T) - меню транспонирования. Транспонирожание осуществляется
на величену SEMITONES. в позиции
SEMITONES меняет знак последней. В остальном работа с окном аналогична предыдущим.
Следует заметить, что применение
TRANSPOSE для канала или PATTERN'а может
выть заменено использованием модуляции
(см. A+NN, B+NN, C+NN) - это оправданно в
тех случаях, когда транспонируемый канал
встречается в композиции несколько раз,
поскольку при компилировании происходит
упаковка идентичных каналов.
В 3-х предыдущих окнах помимо
SPEED KEYS работают также SPEED KEYS с
и для перемещения курсора на
опции типа --LN2 и >>LN3.
DISK (CS+D) - меню дисковых функций:
OBJECT: - функции <+>/<-> меняют
объект для дисковых операций.
NAME: - нажетие осуществляет вход в редактор имени файла.
Используются управляющие клавиши:
, , ,
, , или - завершение редактирования. Тип файла не редактируется.
LOAD - загрузка соответствующего
объекта. При отсутствии файла выдается
сообщение . Обратите внимание, что CACOFONY работает с файлами способными иметь одинаковое имя и тип (т.е.
одноименных с точки зрениЯ TR-DOS), но
являющихся разными объектами. Тип объекта
определяется по длине и адресу загрузки
фаила.
SAVE - выгрузка объекта. При существовании одноименного объекта выдается
запрос . При OVERWRITE
осуществляется перезапись ПОВЕРХ файла, а
не удаление/запись, как это обычно принято.
ERASE - удаляет объект. Одноименные фаилы других объектов НЕ удаляются.
RENAME - переиминовывает файл на
диске. После выбора опции осуществляется
редактирование имени файла (если он есть
на диске); если имя изменено то оно переписывается в каталог диска.
CATALOG - вывод каталога диска.
Выводится имя диска, количество свободных
секторов (число в скобках), общее число
и число удаленных файлов. Для каждого
файла указывается его имя и тип (строчные
буквы заменяются прописными), а для файлов CACOFONY так же и тип объекта.
В случае если на диске записано
файлов больше, чем может поместиться в
окне, выдается сообщение и ожидается нажетие любой клавиши. осуществляет отказ от дальнейшего просмотра
каталога.
DRIVE - дисковод (A,B,C,D).
IMPORT ST 1.0 - конвертирование
файлов формата SOUNDTRACKER (тип S). Для
нормального звучания необходимо подгрузить таблицу STRACKER.M.SOUNDS (так как
все звуки в ST подняты на 10 полутонов).
Конвертирование музыки осуществляется в
большинстве случаев правильно, однако
возможны следующие проявления несовместимости форматов:
1. ST имеет 0-й ORNAMENT. При импорте CACOFONY ищет незадействованный ORNAMENT и заменяет им 0-й. Если в COMPOSE
задействованы все ORNAMENT (никогда такого не видел) то замена 0-го ORNAMENT'а не
происходит и звучание COMPOSE может
сильно измениться (в CACOFONY 0-й ORNAMENT означает, что номер ORNAMENT'а не
меняется).
2. В CACOFONY номер ENVELOPE указывается непосредственно в SAMPLE, поэтому,
если в ST один и тот же SAMPLE используется с разными ENVELOPE, то правильная
конверсия такого SAMPLE затруднена. Если
же этот SAMPLE используется еще и без ENVELOPE, то придется немного покритиковать
тупость опции IMPORT ST1.0 создавая разные SAMPLE для этих случаев вручную. Однако, я надеюсь, что для тех, кто занимается конверсией СВОИХ композиций, а не
импортирует украденные из чужих программ,
эта неприятная работа не займет много
времени.
В результате работы с диском возможны различные ошибочные ситуации. Так,
при чтении с плохих секторов и при попытке записи на заклеенную дискету выдается
сообщение "RETRY/IGNORE TRK/SEC?"; клавиши "R" и "I" выполняют очевидные функции,
ABORT производится нажатием . Такие
сообщения как , , в коментариях, надеюсь, не ныждаются.
COMPILE (CS+M) - меню компилирования.
CACOFONY COMPILER - вход в одноименную программу (только для ZX128, владельцам ZX48 придется загружать COMPILER
отдельно). Подробности работы описаны в
описании компилятора.
MUSIC'S NAME - ввод названия композиции (осуществляется аналогочно вводу
имени файла).
AUTHOR(S) - имя автора(ов) композиции.
MUSIC'S NAME и AUTHOR(S) заносятся
в откомпилированный файл при компиляции.
ABOUT - информация о версии и авторе.
6. CACOFONY COMPILER
Компилятор представляет собой независимую программу, которую может запускаться независимо от редактора. При запуске CACOFONY на 128-х машинах происходит автоматическая подзагрузка компилятора и вызов его возможен непосредственно
из редактора.
Компилятор имеет всего одно меню,
большинство опций которого аналогичны опциям DISK MENU и служат для загрузки/выгрузки файлов. Загружаться могут только
файлы *.M.COMPOSE а выгружаться - типа C.
Непосредственно компиляция происходит при выборе опции COMPILE MODULE.
При этом создается блок пригодный к использованию вне CACOFONY.
Функция +/- PLAY ROUTINE позволяет
выгружать откомпилированный блок как с
процедурами воспроизведения, так и без
них. Размер PLAYER'а можно увидеть при
запуске Kомпилятора в строке MODULE
LENGHT.
MUSIC ON/OFF включает/выключает
музыку (если она откомпилирована).
Откомпилированная музыка может
выть загружена по любым разумным адресам
и воспроизводиться путем огращения к несколькимточкам входа (N - адрес загрузки
блока):
N+00 - инициализация музыки, которая располагается непосредственно за проигрываюшими процедурами . При первом вызове происходит так же настройка под адрес загрузки. При инициализации прерывания не меняются; при первом вызове желапельно прерывания запретить, или делать
вызов данной точки непостредственно после
HALT (при разрешенных прерываниях).
N+03 - инициализация музыки, адрес
которой находится в регистрах DE. Если DE
содержит адрес по которому нет музыки, то
последствия непредсказуемы.
N+06 - заглушение AY.
N+09 - резерв.
N+12 - воспроизведение одного
QUARK. При длительности QUARK=1/50 (параметр /N=1) вызов данной точки осуществляется один раз в прерывание (из процедуры
обработки IM2 или после HALT). При QUARK=
1/100 вызов данной точки необходимо осучествлять ДВА раза за прерывание, причем
через одинаковые промежутки времени, что
требует специального подхода к построению
програмы использующей такую музыку. Следующий пример покажет возможный вариант:
MM HALT
* CALL N+12
* CALL P28000; процедуры, общей длительностью приблизительно равные 28000 тактам прицессора.
* CALL N+12
CALL OTHERS; процедуры, не превышающие по длительности 28000 тактов.
JR MM
N+14 - в случае QUARK=1/50 полностью аналогичен предыдущей точке. При
QUARK=1/100 выполняет строки из приведенного выше примера, помеченнуе символом
"*", что позволяет обращаться к данной
точке ОДИН раз за прерывание (например,
из процедуры обработки прерываний). Следует, однако, заметить, что в этом случае
процедурой P28000 является бесполезная
пауза, что приводит к пустой трате процессорного времени, поэтому, данной
функцией рекомендуется пользоваться при
воспроизведении музыки в различных меню и
т.п.
(c) 20.03.1996, S.T.A.S.