Эффекты типа DSP в реальном времени на C64: как это возможно? - PullRequest
3 голосов
/ 05 октября 2010

Я только что видел это, и это одна из самых удивительных вещей, которые я когда-либо видел:

http://www.youtube.com/watch?v=MDrqBYkco-Y

Я даже не в состоянии понять это. Что здесь происходит?

Ответы [ 2 ]

8 голосов
/ 06 октября 2010

Эта статья содержит подробное объяснение того, что происходит. Основной метод - это сжатие голоса, которое работает так же, как музыкальный секвенсор или трекер, но с учетом голоса. Это облегчает настройку высоты тона и скорости (поскольку именно это делает трекер). Добавьте некоторые типичные хитрости C64 для синхронизации всего и использования каждого цикла процессора.

3 голосов
/ 09 декабря 2010

Я выполнил синтез таблицы с четырьмя голосами на Atari 2600. Вывод одной выборки каждые 76 циклов ЦП - 46 циклов для музыки и 30 циклов для отображения и прочего. Каждый образец должен был сделать по существу следующее:

  out1 = table1[phase1] + table2[phase2];
  out2 = table3[phase3] + table4[phase4];
  phase1 = (phase1 + freq1) mod length1;
  phase2 = (phase2 + freq2) mod length2;
  phase3 = (phase3 + freq3) mod length3;
  phase4 = (phase4 + freq4) mod length4;

Флаг переноса должен быть сброшен при вводе кода генерации образца и сброшен при выходе. Регистр Y и аккумулятор могут быть чем угодно при входе и будут выброшены при выходе. Регистр X не используется.

Я бы предположил, что в демонстрации Cubase для 64 каждая фонема зацикливается с помощью трекера, а затем используется довольно простой код для эффекта эха, при этом используется аппаратная фильтрация C64 и регулятор громкости для фильтров и эффектов громкости. *

...