Из дистрибутива программы +---------------------------------------+ | CACOFONY PRO SYSTEM v0.10 | | & | | CACOFONY COMPILER v0.01 | | | | Дата последней редакции:10.03.1996 | | | | Версия инструкции: 0.00 | | | | (c) 10.03.1996. S.T.A.S. | +---------------------------------------+ CACOFONY PRO SYSTEM (далее - CACOFONY) является полнофункциональным музыкальным редактором для компьютеров ZX-SPECTRUM с с музыкальным сопроцессором AY-3-8910/12. Для работы программы необходима следующая конфигурация компьютера: - ОЗУ 48к (желательно 128) - TR-DOS любой версии (использует- ся только точка входа #3D13) - SOS 82 или TURBO 90 (но только для стабильной шины данных). Не гарантируется работа на "чайни- ковских" переделках ПЗУ. К таким глюкам как тупая дешифрация порта #7FFD, от- сутствию сигнала /M1 на муз. процессоре или порта #FF CACOFONY не критичен. CACOFONY написан по образу и подо- бию широко известного редактора SOUND TRACKER и является совместимым с ним сни- зу вверх. Однако, наличие различных при- ятных, полезных и просто мощных функций выделяет CACOFONY на фоне других музы- кальных редакторов. Ниже приведена сравнительная таб- лица известных мне редакторов SOUND TRACKER, ASM и включившего в себя все их "лучшие" черты PSM. +---------------+-----+-----+-----+-----+ | | ST | ASM | PSM | CPS | +---------------+-----+-----+-----+-----+ |кол-во POSITION| 256 | 100 | | 256 | +---------------+-----+-----+-----+-----+ |кол-во PATTERN | 31 | 32 | | 40 | +---------------+-----+-----+-----+-----+ |кол-во SAMPLE | 15 | 32 | 15 | 15 | +---------------+-----+-----+-----+-----+ |кол-во ORNAMENT| 16 | 32 | 32 | 15 | +---------------+-----+-----+-----+-----+ |размер PATTERN | 9-64| 1-64| 1-64| 1-64| +---------------+-----+-----+-----+-----+ |размер SAMPLE | 32 |1-150| 1-32|1-120| +---------------+-----+-----+-----+-----+ |размер ORNAMENT| 32 | 1-32| 1-32|1-120| +---------------+-----+-----+-----+-----+ |независимая | - | + | + | + | |длина PATTERN | | | | | +---------------+-----+-----+-----+-----+ |изменение ско- | - |ко- | для любой | |рости | |манда| POSITION | +---------------+-----+-----+-----+-----+ |LOOP POINT | - | + | + | + | +---------------+-----+-----+-----+-----+ |модуляция | PAT-| - | PAT-|любой| | | TERN| | TERN|канал| +---------------+-----+-----+-----+-----+ |громкость | - | + | + | - | +---------------+-----+-----+-----+-----+ |спец. команды | - | + | - | - | +---------------+-----+-----+-----+-----+ |авт. ввод дели-| - | ++ | + | ++ | |теля ENVELOPE | | | | | +---------------+-----+-----+-----+-----+ |использ. ENV. | - | + | - | + | |вместе с ORNAM.| | | | | +---------------+-----+-----+-----+-----+ |использование | 20% | 50% | 40% | 90% | |ENV. в SAMPLE,%| | | | | +---------------+-----+-----+-----+-----+ |использование | 100%| 6.2%| 24% |99.9%| |TONE в SAMPLE,%| | | | | +---------------+-----+-----+-----+-----+ |дополнительные | - | ++ | + | - | |возможн. SAMPLE| | | | | +---------------+-----+-----+-----+-----+ |изменение гром-| - | - | - | + | |кости ENVELOPE | | | | | +---------------+-----+-----+-----+-----+ |редактор SAMPLE| ** | * |*****| ****| +---------------+-----+-----+-----+-----+ |автоматическая | - | - | - | + | |генерация SAMP.| | | | | +---------------+-----+-----+-----+-----+ |оконная система| - | + | - | + | |& SPEED KEYS | | | | | +---------------+-----+-----+-----+-----+ |EDIT-IN-PLAY | - | - | - | + | +---------------+-----+-----+-----+-----+ |изменение QUARK| - | - | - | + | +---------------+-----+-----+-----+-----+ |подгрузка любой| - | - | - | + | |таблицы звуков | | | | | +---------------+-----+-----+-----+-----+ |индикаторы | * |*****| *** |*****| +---------------+-----+-----+-----+-----+ |поддержка 48k | + | - | - | + | +---------------+-----+-----+-----+-----+ |совместимость | - | - | - | ST | +---------------+-----+-----+-----+-----+ 1. Музыкальный процессор AY8910/12 Музыкальный сопроцессор AY8910/12 является программируемым синтезатором звука и содержит в себе три независимых генератора прямоугольных колебаний (TONE) A, B и C, генератор белого шума (NOISE), генератор колебаний программируемой формы (ENVELOPE) и трехканальный микшер-усили- тель с независимой установкой громкостей для каждого канала. Каждый канал (A,B,C) может воспроизводить звук соответствующе- го генератора TONE и/или белый шум, Поми- мо этого громкость каждого канала может быть промодулирована генератором ENVELOPE. A8912/10 имеет 15/16 програмно- доступных регистра, из которых 14 имеют отношение к музыке: R0&R1 составляют 12-ти разрядный регистр, определяющий высоту тона генера- тора A. Высота тона определяется формулой H=110.8375/R, где R - значение регистра R0&R1. Видно, что возможный диапазон ле- жит в пределах от 27Hz до 110KHz. При этом генератор способен воспроизводить 4095 различных звуков (R=1...4095). R2&R3 и R4&R5 - аналогично для ге- нераторов B и C. R6 - 5-ти разрядный регистр, опре- деляющий базовую частоту генератора NOISE, которая определяется выражением N=110.8375/R6 KHz R7 - маски микширования (1-генера- тор отключен, 0-подключен): D0 - генератор A -> канал A. D1 - генератор B -> канал B. D2 - генератор C -> канал C. D3 - генератор NOISE -> A. D4 - генератор NOISE -> B. D5 - генератор NOISE -> C. R8,R9,R10 - определяют громкости каналов A,B,C. При этом биты D0..D3 обес- печивают 16 разничных уровней громкости. Если бит D4=1,то амплитудой соответствую- щего канала управляет генератор ENVELOPE. R11&R12 определяют частоту генера- тора ENVELOPE: E=6.927/R11&R12 KHz. R13 определяет вид ENVELOPE: 0 \______ 1 \______ 2 \/|____ 3 \/|____ 4 /|_____ 5 /|_____ 6 /\_____ 7 /\_____ 8 \|\|\|\ 9 \______ A \/\/\/\ B \|----- C /|/|/|/ D /------ E /\/\/\/ F /|_____ Генератор ENVELOPE испольсуется в CACOFONY в основном для получения непря- моугольных колебаний звуковых частот, по- этому регистр R12=0. 2. Основные термины. В CACOFONY используется терминоло- гия принятая в редакторе ASM. Для тех, кто незнаком с ней, ниже даны краткие описания основных понятий (более подробно они будут описаны далее). QUARK - минимальный элемент компо- зиции, определяется временем между двумя циклами изменения регистров муз. процес- сора. Так как общение Z80 и AY8912 осу- ществляется с периодичностью прерываний, то минимально возможная длина QUARK равна 1/50 секунды. Такая продолжительность является фиксированной и используется во ВСЕХ редакторах. Однако, CACOFONY имеет возможность устанавливать QUARK равным 1/100 секунды, что позволяет увеличить частоту обновления регистров муз. процес- сора вдвое и улучшить звуковые возможнос- ти. SAMPLE - основной определитель звуков. Позволяет через интервалы времени равные 1 QUARK изменять ВСЕ (кроме R12) регистры муз. процессора по описанному в нем закону. Используется для описания инструментов. (см. INSTRUMENT EDITOR) ORNAMENT - вспомогательный опреде- литель звуков. Позволяет изменять ТОЛЬКО регистры TONE. Используется для расшире- ния возможностей SAMPLE и имитации аккор- дов. (см. INSTRUMENT EDITOR) QUANT - элемент композиции равный по длительности минимально возможной дли- не ноты. Обязательно кратен QUARK. Может включать в себя ноты, воспроизводимые каждым каналом, а также их определители (SAMPLE & PRNAMENT). (см. PATTERN EDITOR) PATTERN включает в себя от одного до 64-х QUANTS и является, по сути, музы- кальной фразой из которых и состоит ком- позиция. POSITION - таблица, определяюшая последовательность воспроизводимых PAT- TERNS, а также скорости их воспроизведе- ния и величины модуляции (т.е. повышения/ понижения) для каждого канала. SOUNDS - таблица, определяющая частоту (точнее- значения регистров TONE) для каждой ноты. Применение различных таблиц обеспечивает возможность изменения частот звучания нот, что необходимо, в частности, при конвертировании композиций из формата SOUNDTRACKER, поскольку в нем все ноты транспонированы вверх но 10 по- лутонов по отношению к стандартным часто- там. COMPOSE - включает в себя вышеука- занные модули. 3. Главный экран. Главный экран CACOFONY разделен на три части. Верхняя - главное меню, из ко- торого осуществляется выбор основных функций редактора. Ниже располагается ок- но PATTERN EDITOR, в котором происходит редактирование композиции. В нижней части экрана находятся индикаторы шума и частот каналов. Причем последний показывает зву- ки неполных восьми октав с точностью до полутона; идикация происходит в соот- ветствии со стандартным рядом частот не- зависимо от таблицы SOUNDS. 4. Управление редактором. Для управления CACOFONY использу- ется система меню, все функции которой можно выбирать либо посредством курсора, либо используя "горячие" клавиши. Перед- вижение курсора осуществляется клавишами: - вверх - вниз - влево

- вправо - выбор опции Помимо этих, задействованы клавиши (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 соответствует изменение ENVE- LOPE на 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 или ORNA- MENT выполняется при нахождении курсора в позиции 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) различаются вдвое (см. также IN- STRUMENT 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'а PAT- TERN'а начиная со строки 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 ищет незадействованный ORNA- MENT и заменяет им 0-й. Если в COMPOSE задействованы все ORNAMENT (никогда тако- го не видел) то замена 0-го ORNAMENT'а не происходит и звучание COMPOSE может сильно измениться (в CACOFONY 0-й ORNA- MENT означает, что номер ORNAMENT'а не меняется). 2. В CACOFONY номер ENVELOPE указы- вается непосредственно в SAMPLE, поэтому, если в ST один и тот же SAMPLE использу- ется с разными ENVELOPE, то правильная конверсия такого SAMPLE затруднена. Если же этот SAMPLE используется еще и без EN- VELOPE, то придется немного покритиковать тупость опции 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 является бесполезная пауза, что приводит к пустой трате про- цессорного времени, поэтому, данной функцией рекомендуется пользоваться при воспроизведении музыки в различных меню и т.п. ----------------------------------------- Дата редакции описания 20.03.1996 (c) S.T.A.S.