News / Live Journal / Information / Soft / Music / Forum / Links / About project




Powered by Google
Информация

 Железо
 Сжатие звука
 Трекеры
 Мьюзиком
 Renoise
 Энциклопедия стилей
 Мастер-класс
 Словарик
 Мысли

Добавить в избранное

Трекеры

Fast Tracker: ошибки и возможности
Zed

Комментарий автора

Смысл и конкретные цели написания этого технического опуса мне не известны, но по мере работы с музыкой и звуком накапливается кое-какой опыт, и в какой-то момент мне просто захотелось запечатлеть пару ошибок Fast Tracker'а, чтобы при возможности указать их доброму человеку, который возможно сел бы за написание FT3. Как Вы наверно знаете, работа над FT3 уже начата, но к сожалению (к моему) он предназначен для работы под Windows. Я считаю, что возможность работы без сбоев в режиме реального времени и поддержка напрямую всей физической памяти — это великая вещь, и её утрата (как это происходит под Windows) — это большой минус. Но это моё субъективное мнение.

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

И на последок пару советов новичкам, если такие конечно есть :) Дай бог, чтобы они всегда были!

  1. После рендринга модуля всегда доводите до ума его в редакторах типа Sound Forge. Т.е. нормализацию, небольшую реверберацию (если звук слишком сухой), так же всегда пропускайте песню через хороший эквалайзер (например TC Native(DirectX plugin)). Обычно требуется немного поднять высокие частоты. И не советую использовать при этих действиях наушники или плохие колонки!
  2. Не бойтесь использовать много больших семплов, даже если придётся работать под ДОС'ом. Я раньше боялся, а теперь жалею, что сразу не понял, что главное это конечный результат.
  3. Если придётся рендрить под ДОС'ом (из-за нехватки памяти), то не забудьте сначала загрузить smartdrv.exe! Это значительно убыстрит процесс рендринга. Хотя надо отметить, что smartdrv забирает себе 2 мегабайта физической памяти под кэш.
  4. Используйте всю мощь своего компьютера! Не стесняйтесь экспериментировать со звуком, даже если уверены, что он вам не пригодится. Нарезайте всё на кусочки и гоняйте по всем возможным фильтрам.
  5. Используйте программные синтезаторы типа Retro AS-1, так же рекомендую начать разбираться в программах типа Reactor, это штука довольно сложная, но настолько гибкая в работе со звуком, что можно прокопаться с одним эффектом весь день. Тем более что это конструктор ваших собственных звуковых эффектов и преобразований. А старая версия Reactor'а, которая называется Generator, позволяет работать в режиме плагина DirectX, что очень удобно кстати! (Я кстати как-то обратился в фирму Native Instruments с вопросом "почему Reactor не работает как плагин DirectX", и мне сообщили, что Reactor 3 будет работать в этом режиме.)
  6. Не злоупотребляйте уменьшением размера семпла за счёт конвертации в 8-ми битный формат. Лучше проконтролируйте частоты, частенько можно срезать, допустим, с 44100 до 22050 герц. Дело в том, что 8-ми битный звук очень плохо поддаётся обычной интерполяции, и заметно шипит при выводе в ЦАП.
  7. Используйте псевдо-стерео и псевдо-сюррауд с помощью команд 9, X1, X2. Т.е. например на одном канале уводите звук в левый канал, а другом такой же звук только в правый канал и с командой 901 или X11.
  8. И никогда не забывайте о самом трекере, о его эффектах, о его гибкости и простоте.

Внимание! Автор данной инструкции не ставит целью описать все тонкости формата XM доступным языком. Упор сделан на указания всех возможностей и ошибках Fast Tracker'а, которые могут повлиять на конечное звучание модуля.

Немного истории.

История появления понятия "музыкальный модуль" уходит своими корнями в глубокое прошлое, а именно в середину восьмидесятых. Музыкальный модуль обязан своим рождением компьютеру "Amiga", в природе которого была заложена основа поддержка модульной музыки. Сам компьютер был спроектирован таким образом, что занятие творчеством доступно и естественно не только для человека, но и для компьютера. Вся идея была в распределении задач компьютера. Графикой занимается один "орган", музыкой другой, математикой ещё один, а центральный процессор лишь координирует их действия. Тем более что сам процессор был выбран очень грамотно — Motorola 68000, он изначально 32-х разрядный, т.е. шина адреса позволяла адресовать 4 гигабайта оперативной памяти. Кто знаком с программированием, тот знает, что значит "нет сегментации памяти". Все сопроцессоры были названы человеческими именами, что тоже очень символично. Процессор, отвечавший за звук, был назван именем "Paula". Он мог воспроизводить одновременно 4-ре 8-ми битных семпла, центральный процессор лишь "задавал тон". Для середины восьмидесятых это было очень круто, я бы даже сказал недоступно для остальных компьютеров.

Так что же, в конце концов "музыкальный модуль"? Это формат представления музыки. Основная идея в распределении музыки на некоторое количество нот и инструментов в одном файле. Грубо говоря, первая часть файла — это ноты, а вторая — это инструменты. Вся "нотная" часть разбита на небольшие кусочки — паттерны; это фрагменты музыки, которые содержат непосредственно ноты, номера инструментов и эффектов, и т.д. Задача компьютера в том, чтобы нужным образом сопоставлять данные, содержащиеся в паттернах с семплами, которые лежат отдельно от них, и генерировать уже конечные данные, которые уходят в ЦАП (ЦАП - это Цифро-Аналоговый Преобразователь, т.е. устройство, которое преобразовывает байты, поступившие с шины данных непосредственно в аналоговый сигнал по заранее заложенному в нём способу. Есть также АЦП — Аналого-Цифровой Преобразователь, он производит обратное ЦАП'у действие, в музыкальном мире это устройство называется семплер). Изначально музыкальный модуль имел поддержку 3-х октав, 4-ре независимых канала и до 15-ти инструментов, инструмент мог содержать только один 8-ми битный семпл размером до 64-х килобайт. Несмотря на скромные характеристики, при внедрении программной или использовании аппаратной интерполяции, звук может быть довольно качественным, а в Amiga есть ещё и аппаратное шумоподавление (команда E0). Файлы такого формата имеют расширение MOD. Немного позже появился формат, поддерживающий 31 инструмент и увеличение количества каналов, и что очень важно это нововведение не требовало смены расширения, т.е. это было естественным развитием стандарта.

Позже такой стандарт представления музыки вышел за пределы одной платформы, и начали появляться различные модификации требующие смены расширения как то: STM, S3M (Scream Tracker), IT (Impulse Tracker), XM (Fast Tracker) — это лишь основные, самые распространённые форматы, в скобках указаны музыкальные редакторы (для pc) их порождающие.

На мой, может быть субъективный, взгляд, лучшим редактором классических модулей является Fast Tracker 2. Он объединяет в себе удобства редактирования и широкие возможности. А именно: поддержка форматов STM, S3M, MOD (может также сохранять в этом формате, в целях удержания стандарта) и XM соответственно, 32 канала, 128 инструментов (или 2048 семпла), 8 октав, встроенный семплер и редактор/конвертор семплов, малый размер (530 килобайт), гибкий, настраиваемый интерфейс, MIDI поддержка, встроенную игру, и в конце концов, качественный звук. Вообще, лучше этого редактора придумать будет сложно, ну а сделать тем более. Хотя у меня есть несколько пожеланий. Я бы увеличил число каналов и число доступных логических громкостей до 128, и добавил бы внутри канальное усиление при указании громкости выше 128, а то частенько приходиться каналы тратить на усиление (вообще, не рекомендуется усиливать копированием каналов, но я всегда был разгильдяем, да и грамотный рендринг решает этот недостаток :).

Вследствие того, что формат XM исторически принадлежит программой Fast Tracker, то я буду опираться непосредственно на интерфейс FT.

Что такое инструмент расширенного модуля?

Чтобы легче понять природу инструмента, её можно условно разделить на две составные: физическую и логическую. Под физической частью следует понимать непосредственно байты семпла, который входит в этот инструмент, а под логической подразумевается информация, которая трансформирует "физическую" часть в момент микширования каналов и вывода в ЦАП. Итак, инструмент — это довольно гибко изменяемая звуковая структура. Она может содержать в себе до 16-ти семплов ("физическая часть"), имеющих две общие огибающие и ещё пару накладок ("логическая часть"). Первая огибающая — огибающая громкости — это порядок изменения логической громкости с течением времени, представленный в виде двумерного графика, который должен нарисовать пользователь, если он намерен использовать огибающую. Вторая, стерео огибающая, она описывает, тоже в виде графика, порядок изменения громкостей в правом и в левом канале, через наглядную позицию звука в пространстве. ВременнОе поле огибающих составляет примерно шесть с половиной секунд, но надо отметить то, что этого вполне достаточно, учитывая, что можно ещё использовать цикл внутри огибающей (Env. Loop). Иногда можно запариться и указать параметры цикла наоборот, т.е. в первой точкой цикла (Start) указать номер последней, а последней первой, тогда цикл откажется работать и огибающая будет работать сразу с той точки, которую вы указали в Start. На графике всё выглядит замечательно, однако звук будет несколько иным, и это может завести Вас в тупик. Это касается обоих огибающих. Есть также задержка на определённой точке огибающей на время удержания клавиши, это параметр Sustain. У каждой из огибающих свой Sustain. В FT можно сделать до шести пользовательских записей для каждой из огибающих, первая запись трактуется как огибающая по умолчанию. Запись производиться нажатием правой кнопки мыши на кнопке с номером записи. Это было общее описание. Но как я уже указал, есть ещё пара накладок.

Итак, как уже было сказано, один инструмент может содержать до 16-ти моно семплов. Как же они уживаются вместе? Информация описывающая всю связь между семплами и конечным звуком инструментами выглядит в виде таблицы, где каждой возможной ноте присваивается один из 16 семплов, условно назовём её нотной картой. В FT она изображается в виде стандартной клавиатуры клавишного инструмента. Принцип и основное назначение этой карты легче будет объяснить через пример. Итак, допустим нам надо добиться звука максимально приближенного к звучанию акустической гитары. Не просто одного звука, а звука, который будет сохранять похожесть на гитару на нескольких октавах. Первое, так как у нашей гитары 6 струн (можно и 12, но не будем злоупотреблять), нам надо отсемплировать каждую струну по отдельности, ведь у каждой струны свой особый звук, и не только по частоте, но и по форме звуковой волны. У нас получилось шесть семплов. Мы загружаем семплы в один инструмент, настраиваем их таким образом, чтобы они звучали на одной ноте и одной октаве и в нотной карте распределяем семплы между нужными нам нотами. Теперь эта карта указывает, какой семпл использовать при проигрывании той или иной логической ноты. Т.е. после того как мы распределили семплы, вызывая, например, низкие ноты, компьютер будет использовать семпл "толстой" струны. Таким же макаром можно реализовать, например, барабаны, хотя удобнее использовать их как разные инструменты, в основном это используется для таких инструментов как гитара, рояль, пианино и т.п., т.е. инструментов с усложнённой схемой построения конечного звучания.

Едем дальше. Помимо семплов, огибающих, нотой карты есть ещё несколько атрибутов. Первое, для полной настройки семплов существуют следующие параметры (помимо логического нотного отклонения) как то: громкость 0-40 (указываются в шестнадцатеричном виде), точная подстройка тональности -128 +127 (-полутон +полутон), следует заметить, что в результате эксперимента выяснилось, что на самом деле в FT не 256 уровней точной подстройки, а 32, и реально частота меняется через каждые 8 ступенек. Все эти параметры используются как по умолчанию, т.е. если в паттерне указана не указана громкость и указан номер инструмента, то будут использованы именно эти параметры. Для каждого семпла они свои. Будет также не лишним указать некоторые стандарты, они полезны, когда нужно получить оригинальную тональность звучания загруженного семпла. Частота 44100 — нотное отклонение с С-4 до F-5, точная подстройка -28. При этих параметрах на ноте С-5 звук будет оригинальным. При другой частоте всё тоже просто - линейная зависимость, т.е. 22050 будет выглядеть как С-4 => F-4, -28 — ровно на октаву ниже. На этот счёт можно было бы указать таблицу, но я уже указал самые популярные частоты. Второе, помимо всех конкретных настроек звука, есть дополнительная "нагрузка" - тональная вибрация. Она полезна при использовании искусственных звуков, построенных по принципу "кислотный цикл" (Acid loop). Кислотный цикл, называется кислотным, потому что при зацикливании маленьких фрагментов в результате получается очень резкий и монотонный звук. Он может быть и не очень резким, но то что он монотонный - это факт. И вот тут то нам поможет тональная вибрация. Мы, конечно, могли бы сделать эту вибрацию внутри музыки, но это утомительное и неблагодарное дело. Есть пять накруток, которые нам помогут. Это Fade-out (затемнение), Vib. Speed (скорость), Vib. Depth (глубина), Vib. Sweep (задержка перед вибрацией), и выбор одной из четырёх форм вибрации.

Основные правила.

В этой инструкции под одним тактом подразумевается одна логическая позиция в паттерне. Каждый такт делится на то количество тиков, которое выставлено в параметре задающей скорости. Для проигрывания инструмента необходимо наличие только ноты, при этом будет использоваться последний используемый на текущем канале инструмент и его громкость. (Тут следует учесть одну деталь — при указании только ноты огибающие перестанут работать, точнее звук будет соответствовать последней точке каждой из огибающих; я не знаю к чему это отнести — к особенности формата или ошибке FT, скорее всего к ошибке.) Если будет указан только номер инструмента, то будут изменены текущие параметры звука на указанные в параметрах данного инструмента. Все команды действуют только в течение одного такта, кроме команд типа L, С, т.е. команд задающих конкретные параметры звука; для продолжения действия эффекта необходимо указывать соответствующие команды. В большинстве команд могут использоваться параметры прев идущей такой же команды, если указан параметр 00, причём у каждой команды будут сохранены свои параметры. Это команды 1, 2, 3, 4, 5, 6, 7, 9, A, B, E1, E2, EA, EB, X, H, P, T и M (в столбике громкости). Все каналы имеют свои собственные сохранённые параметры. Автоматическое переключение паттернов на параметры не влияет, и как было замечено, не влияет даже остановка и перезапуск воспроизведения модуля. Все параметры указываются в шестнадцатеричном виде, т.е. в основе числа лежат цифры от 0 до F (0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F). Чтобы перевести из десятичных в шестнацетиричные числа в пределах от 0 до 255, можно воспользоваться таблицей или простой формулой. Число, которое необходимо перевести нужно разделить на 16, тогда целая часть полученного будет вторым разрядом шестнацетиричного числа, а умножив дробную часть на 16, Вы получите первый разряд. При вычислениях учтите, что 10=A, 11=B, 12=C, 13=D, 14=E, 15=F. Со временем можно в уме научиться пересчитывать.

C-5 01 40 000
123 NI 45 678

1 — Позиция ноты или указателя переключения режима для громкостных огибающих.
2 — Позиция диеза.
3 — Позиция октавы.
NI- Номер инструмента. Ноль не изображается.
4 — Позиция второго разряда громкости или команды управления эффектом. Следует отметить, что в стандартном MOD-файле отдельный столбик громкости отсутствует. Возможный аргумент или команда:

0, 1, 2, 3, 4 — Второй разряд громкости.

+ — Повышение громкости.

- — Понижение громкости.

U — Плавное повышение громкости.

D — Плавное понижение громкости.

S — Установка скорости тональной вибрации звука.

V — Тональная вибрация заданной формы, форма указывается командой E4, глубина вибрации указывается в 5.

P — Стерео позиция.

R — Переход в правый канал (изображается стрелкой).

L — Переход в левый канал (изображается стрелкой).

M — Плавный тональный переход, скорость указывается командой 3.

5 — Позиция первого разряда громкости или аргумента для команды управления громкостью/тональностью. Возможный параметр 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F.

6 — Позиция команды управления эффектом.

Возможные команды:

0 — команда частичного изменения тональности, во время одного такта звук проигрывается циклически на трёх разных полутонах, каждый тик — свой тон, первый из которых звучит указанная раннее нота, а второй и третий звучит нота с повышением на то количество полутонов, которое указано в позициях 7, 8 — поочерёдно, а в следующий тик уже играет опять нота указанная раннее.

1 — Повышение тона со скоростью указанной в позициях 7 (старший полубайт), 8 (младший полубайт).

2 — Понижение тона со скоростью указанной в позициях 7 (старший полубайт), 8 (младший полубайт).

3 — Плавный переход от прев идущего тона к последней указанной с этой командой ноте со скоростью указанной в позициях 7 (старший полубайт), 8 (младший полубайт). По достижению тона соответствующего раннее указанной ноте действие команды прекращается, даже если команды продолжают поступать. Есть ещё один режим работы этой команды, переключение режимов осуществляется командой E3.

4 — Тональная вибрация звука заданной формы, форма указывается командой E4. Параметры в: 7 — скорость, 8 — глубина.

5 — Плавный переход от прев идущего тона к последней указанной с этой командой ноте с одновременным изменением громкости. Параметр скорости изменения тональности указывается в команде 3 до момента использования команды 5. Параметры изменения громкости: 7 — скорость повышения, 8 — скорость понижения.

6 — Тональная вибрация звука с одновременным изменением громкости. Параметры вибрации указывается в команде 4, до момента использования команды 6. Параметры изменения громкости в: 7 — скорость повышения, 8 — скорость понижения).

7 — Вибрация громкости заданной формы, форма указывается командой E7. Параметры изменения громкости в: 7 - скорость вибрации, 8 — глубина.

8 — Стерео позиция, указывается в позициях 7 (старший полубайт), 8 (младший полубайт). При аргументе равном 00 звук выходит через левый канал, при #FF через правый. Учитывайте наличие стерео огибающей и параметра семпла PANNING.

9 — Проиграть инструмент с заданным смещением от начала семпла (работа команды возможна только при наличии ноты). Отклонение от начала семпла указывается в позициях 7 (старший полубайт), 8 (младший полубайт), полученный байт используется как старший при вычислении смешения. Если семпл 16-ти битный, то параметр автоматически удваивается. Младшим байтом служит #00.

A — Изменение громкости. Параметры изменения громкости 7 — скорость повышения, 8 -скорость понижения.

B — Переход на позицию (в таблице паттернов всей музыки) указанную в параметрах 7 (старший полубайт), 8 (младший полубайт). Текущий такт становится последним в паттерне.

С — Задать громкость. Указывается в 7 (старший полубайт), 8 (младший полубайт). Максимальное значение #40, минимальное 00.

D — Ограничитель длинны паттерна с переходом на указанный такт следующего паттерна. Текущий такт становится последним в паттерне. Такт, на который следует перейти, указывается как не странно в десятичном(!) виде — в 7 (второй разряд) и 8 (первый разряд). Это единственная команда, где параметр указывается в десятичном виде.

E — Команда-префикс для расширения командного набора. Параметр указанный в 7 становится расширенной командой, а в 8 служит аргументом этой команды. Расширенные команды:

0 — Управление шумоподавлением. Команда работает только на Amiga.

1 — Тонкое повышение тона.

2 — Тонкое понижение тона.

3 — Изменение режима перехода от ноты к ноте с помощью команды 3 или 5, при команде E31 переход осуществляется по полутонам, при команде E30 переход будет плавный.

4 — Задать форму вибрации звука для команды 4 или V(в колонке громкости). Возможные параметры: 0 — синусная форма, 1 — треугольная, 2 — квадратная.

5 — Задать отклонение от полутона, расстояние делится на 16 частей, параметр знаковый, т.е. 0 — середина, 7 максимальное повышение, 8 максимальное понижение. Пример повышения от максимально пониженного: 8 9 A B C D E F 0 1 2 3 4 5 6 7.

6 — Зацикливание фрагмента паттерна. Командой E60 указывается начало цикла. При аргументе не равном 0, он расценивается как число повторов. Текущий такт становится последним в цикле. На каждом канале возможен свой независимый цикл. В программе Fast Tracker 2.06 — 2.09 допущена ошибка — при проигрывании паттерна с циклом внутри, следующий паттерн начинает играть с позиции указанной в этом цикле.

7 — Задать форму вибрации громкости для команды 7. Возможные параметры: 0 — синусная форма, 1 — треугольная, 2 - квадратная.

8 — Не используется.

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

A — Тонкое повышение громкости.

B — Тонкое понижение громкости.

С — Проигрывание части инструмента. Время проигрывания измеряется также в тиках.

D — Задержка перед проигрыванием инструмента. В тиках.

E — Задержка при проигрывании паттерна. Измеряется тактами.

F — Не используется.

F — Команда управления скоростью. Аргумент команды в 7 (старший полубайт), 8 (младший полубайт). Если аргумент меньше #20, то он расценивается как параметр задающей скорости. Если аргумент больше #20, то он расценивается как параметр BPM (Beats Per Minute). Если задающая скорость равна шести (по умолчанию), то параметр BPM соответствует международному стандарту, конечно при условии, что сильные доли в модуле идут через 4 такта.

Дополнительный набор команд (не поддерживается стандартными MOD-файлами):

G — Установить глобальную громкость. Указывается в параметрах 7 (старший полубайт), 8 (младший полубайт). Максимальное значение #40, минимальное 00.

H — Изменение глобальной громкости. 7 - скорость повышения, 8 — скорость понижения.

L — Установить позицию огибающих данного инструмента. 7 (старший полубайт), 8 (младший полубайт). 00 — первая позиция.

P — Управление стерео позицией. 7 - скорость перехода в правый канал, 8 — скорость перехода в левый канал.

R — Расширенный повтор инструмента внутри такта. Пауза измеряется в банальных тиках. Параметр указанный в 7 показывает скорость изменения громкости, начиная с текущей: 0 — не изменяет; 1=-1; 2=-2; 3=-4; 4=-8; 5=-16; 6=*2/3; 7=*1/2; 8 — не изменяет; 9=+1; A=+2; B=+4; C=+8; D=+16; E=*3/2; F=*2. Ну а в 8 пауза при повторах, измеряется в тиках.

T — Квадратичная вибрация громкости. Время проигрывания с громкостью указанной в параметрах инструмента в 7, а время проигрывания с громкостью 00 в 8. Время указывается в тиках.

X — Сверхтонкое изменение тона. Направление изменения тона указывается в позиции 7, 1 — вверх, 2 — вниз. Скорость указывается в 8.

Вернуться в раздел

Dreams...
Отправить письмо дизайнеру
к началу страницы
copyright © 1997-2025 t.r.a.c.k.e.r.s
All Rights Reserved