Большой архив статей, книг, документации по программированию, вебдизайну, компьютерной графике, сетям, операционным системам и многому другому
 
<Добавить в Избранное>    <Сделать стартовой>    <Реклама на сайте>    <Контакты>
  Главная Документация Программы Обои   Экспорт RSS E-Books
 
 

   Компьютеры -> Аудио -> MOD - Формат и технология воспроизведения


3.ПРИНЦИП ВОСПРОИЗВЕДЕНИЯ MOD-ФАЙЛОВ

В проигрывателе для каждого канала хранится описание состояния канала. Оно полностью описывает звучание канала. Состояние канала имеет следующие характеристики:

  1. последняя использовавшаяся на канале нота;
  2. последняя использовавшаяся на канале частота выборки для сэмпла;
  3. текущая частота выборки для сэмпла;
  4. текущая громкость;
  5. количество выборок, оставшихся до конца сэмпла;
  6. длина повторяемой части сэмпла;
  7. смещение текущей выборки;
  8. смещение зацикливания;
  9. целая и дробная части значения, на которое увеличивается смещение текущей выборки, определяет текущую частоту выборки;
  10. дробная часть смещения в буфере, в который помещается сумма выборок сэмплов со всех каналов, целая часть смещения глобальна для всех каналов;
  11. указатель на дескриптор последнего использовавшегося на канала сэмпла;
  12. последний использовавшийся на канале эффект и его параметр;
  13. значения по умолчанию параметров некоторых эффектов:
    1. параметр эффектов Portamento Up & Down;
    2. параметр эффекта TonePortamento;
    3. параметр эффекта Sample Offset;
  14. переменные, используемые при обработке эффектов:
    1. счетчики для эффектов Arpeggio, Note Cut, Note Delay и Retrig;
    2. переменные для Vibrato: глубина, скорость, текущий указатель в таблице волновой формы Vibrato, текущая волновая форма Vibrato и указатель, надо ли играть новую ноту с начала волновой формы, или использовать позицию, оставшуюся от предыдущей ноты;
    3. переменные для Tremolo: глубина, скорость, текущий указатель в таблице волновой формы Tremolo, базовая громкость Tremolo, текущая волновая форма Tremolo и указатель, надо ли играть новую ноту с начала волновой формы, или использовать позицию, оставшуюся от предыдущей ноты;
    4. номер сэмпла для эффектов Note Delay и Retrig;
    5. счетчик и номер строки начала цикла для эффекта Pattern Loop.

Перед проигрыванием текущая нота и текущий номер сэмпла не заданы. Эффект и его параметр нулевые, что эквивалентно отсутствию эффекта. С момента, как на канале встретится нота или номер сэмпла, они будут уже всегда заданы. На одном канале в каждый момент времени может звучать только один сэмпл.

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

Микшер в это время, работая параллельно с проигрывателем, микширует сэмплы и подает результат на звуковой выход. Микшер в своей работе использует часть характеристик состояния канала. Работа микшера сводится к просмотру структур, описывающих состояние каналов. Если на канале задан сэмпл, и он не доиграл до конца, то из сэмпла берется текущая выборка и добавляется в сумму текущих выборок со всех каналов. После чего указатель текущей выборки передвигается на следующую позицию в сэмпле. Оригинально, в MOD-формате звук из каналов с номерами 1+4*n и 4+4*n выводится в левый звуковой выход, а звук из каналов с номерами 2+4*n и 3+4*n - в правый, где n - целое неотрицательное число, зависящее от числа каналов.

После того, как проигрыватель в начале первого кадра изменил состояния каналов, он ждет 5/(BPM*2) секунд. По прошествии этого времени начнется второй кадр. В это время возможно изменение состояния каналов, если до этого были заданы соответствующие эффекты. Опять ожидается, пока не начнется новый кадр. И т.д. Когда пройдет число кадров, равное текущей скорости, указатель текущей строки перемещается на следующую, и происходит изменение состояния каналов в соответствии с новыми нотами, сэмплами и эффектами.

Рассмотрим влияние ноты и номера сэмпла на изменение состояния канала.

Если встречается нота при незаданном номере сэмпла или встречается номер сэмпла при незаданной ноте, то они сохраняются и никаких дальнейших действий не происходит.

Если одновременно заданы и нота, и номер сэмпла, то они становятся текущими, и происходит инициализация информации о сэмпле. Она включает в себя следующее: по ноте и тонкому тону сэмпла находится текущая частота выборки; смещение текущей выборки обнуляется; длина повторяемой части, смещение зацикливания и текущая громкость копируется из дескриптора сэмпла; вычисляется количество выборок, оставшихся до конца сэмпла.

Если задана только нота, она становится текущей и происходит инициализация информации о сэмпле.

Если задан только номер сэмпла, то проверяется не совпадает ли он с номером текущего сэмпла. Если совпадает, то инициализируется только текущая громкость. Иначе происходит полная инициализация информации о сэмпле.

Кроме ноты и номера сэмпла на состояние канала влияют эффекты.


Предыдущая | Оглавление | Следующая


 

 
Интересное в сети
 
10 новых программ
CodeLobster PHP Edition 3.7.2
WinToFlash 0.7.0008
Free Video to Flash Converter 4.7.24
Total Commander v7.55
aTunes 2.0.1
Process Explorer v12.04
Backup42 v3.0
Predator 2.0.1
FastStone Image Viewer 4.1
Process Lasso 3.70.4
FastStone Image Viewer 4.0
Xion Audio Player 1.0.125
Notepad GNU v.2.2.8.7.7
K-Lite Codec Pack 5.3.0 Full


Наши сервисы
Рассылка новостей. Подпишитесь на рассылку сейчас и вы всегда будете в курсе последних событий в мире информационных технологий.
Новостные информеры. Поставьте наши информеры к себе и у вас на сайте появится дополнительный постоянно обновляемый раздел.
Добавление статей. Если вы являетесь автором статьи или обзора на тему ИТ присылайте материал нам, мы с удовольствием опубликуем его у себя на сайте.
Реклама на сайте. Размещая рекламу у нас, вы получите новых посетителей, которые могут стать вашими клиентами.
 
Это интересно
 

Copyright © CompDoc.Ru
При цитировании и перепечатке ссылка на www.compdoc.ru обязательна. Карта сайта.