Эффекты типа DSP в реальном времени на C64: как это возможно?

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

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

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


person justinb    schedule 05.10.2010    source источник
comment
У вас был конкретный вопрос о программировании, который вы хотели задать?   -  person Paul R    schedule 05.10.2010


Ответы (2)


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

person larsch    schedule 06.10.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 и регулятор громкости для эффектов фильтра и громкости.

person supercat    schedule 09.12.2010