Советую посмотреть журнал Радио 1992 г №12
стр 35 Музыкальный синтезатор Студнев - блок синтеза звука
А вдруг это то что надо
Немножко входных данных для размышлений на основе хорошо известного примера:
MOS6581 (SID) использует 24-битный фазовый аккумулятор, который складывается с частотой 1 МГц с 16-битным регистром высоты звука. Верхние 8 бит аккумулятора работают непосредственно как выход для генерации пилы и треугольника, включены через компаратор для генерации меандра, или могут (могли бы) использоваться как индексы в таблице генерации волновой формы. Это на один канал.
Может ВМ80 складывать 24+16 бит с частотой 1*<число каналов> МГц? Как? Или, какая элементная база 80-х позволяет собрать три (или сколько надо каналов) 24+16 битных сумматора, которые поместились бы в корпус желаемого размера?
Больше игр нет
Игрался в начале 90х с 8-разрядным ЦАП на процессоре ВМ80 (2 МГц).
Была попытка сделать хотя бы один канал как у Scream Tracker.
Было два подхода к изменению частоты воспроизведения.
Первый - выводить подряд все отсчёты, но с разной скоростью в зависимости от ноты. Качество получилось "потянет", но на ноты никак не ложилось - не хватало точности настройки. Хотя наверное басовые инструменты можно было в пределах одной октавы настроить.
Задержка между выдачей очередного отсчёта в ЦАП формировалась при помощи вычисляемого прыжка в цепочку NOP'ов. Чем ниже тон, тем больше NOP'ов выполнялось. В итоге точность подстройки получалась примерно 4 такта.
Второй - в зависимости от высоты ноты пропускать в семпле соответствующее количество отсчётов (на самом деле чуть посложнее, но идея именно в возможности пропускать отсчёты). Качество звучания никакое, низкая частота дискретизации, но зато можно было настроить по нотам.
В итоге всё закончилось одноголосой "драм-машинкой".
Слабоват ВМ80 для ИКМ-синтеза. Если идея-фикс именно на отечественной базе, то наверное имеет смысл посмотреть в сторону 16-битных PDP-совместимых процессоров...
Музей цифровой археологии: http://www.asvcorp.ru/darch/
Занимаюсь разработкой облачного САПР для электронщиков: https://sapr.asvcorp.ru/
С любовью к вам, Yandex.Direct
Размещение рекламы на форуме способствует его дальнейшему развитию
Я начал разговор про фазовый аккумулятор потому, что речь была не о простой пищалке, это и ВИ53 с грехом/2 делает, а о чем-то, что проигрывает семплы из памяти. Просто проигрывать как оно есть ВМ80 справится, конечно, сам. Но если играть музыку, надо менять высоту звука, причем очень точно. Эту задачу надо как-то решать.
Вот пример сложения 24+16, я не проверял его на правильность и не претендую на оптимальность, но радикально проще не будет:
106 тактов. При тактовой 2МГц и полном отсуствии циклов ожидания это дает нам 18,868 Гц. Это только одна подпрограмма вычисления фазы, даже без подсчета времени на ее вызов. Число тактов вырастет втрое в реальной программе, и это только один канал.Код:phase_cycle: lhld phase_add ; 16 xchg ; 5 lhld phase_low ; 16 dad d ; 10 shld phase_low ; 16 lda phase_hi ; 13 aci 0 ; 7 sta phase_hi ; 13 ret ; 10 = 106 phase_add: dw 0 phase_low: dw 0 phase_hi: db 0
Если использовать внешние микросхемы для того же самого, можно это делать быстро. И ВМ80 тогда совершенно не нужен.
Последний раз редактировалось svofski; 02.09.2012 в 21:01.
Больше игр нет
А MIDI планируется? оно и проще, и полезнее, хотя тоже уже почти сорок лет стандарту.
Если играть семплы из памяти, можно поставить 1810ВТ37 и ВИ53. Получится гибрид GS и DMA USC. Только памяти 512 килобайт надо.
Оцените мощность ВМ80 с точки зрения ПДП, т.е. сколько он реально успеет отгрузить байт в ЦАП. Или может быть проц будет заниматься чтением с внешних устройств а завгрузку таки отдать ВТ57 ?
не кидайтесь на 16х44.1х2 это не реально, расчитайте для начала 8х22х2.
разберите вопрос волнового синтеза http://www.computerra.ru/340318/
.
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)