Spectrofon
#02
31 января 1994 |
|
Система - Музыкальный редактор 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 воспроизведение аккордов.
Другие статьи номера:
Похожие статьи:
В этот день... 21 ноября