Превращаем РК в годный музыкальный синтезатор

Советский компьютер Радио-86РК (1986) и его клоны

Moderator: Shaos

Hammer
Fanat
Posts: 92
Joined: 10 Apr 2024 05:15

Re: Все звуки музыки

Post by Hammer »

Shaos wrote:Я так понимаю они тоже должны сгодиться (у них правда в теории, если соединить входы вентилей ради их использования в качестве инверторов, должны быть в разные стороны смещены пороги срабатывания)...
Ничего по этому поводу сказать не могу. Главное для ОУ, это иметь высокое входное сопротивление, что с ним и как при соединении входов, не могу сказать.

4069/561ЛН2 - не очень правильные ОУ, потому, что они как бы логические элементы. Звук из них очень напоминает лампы. Есть много противников такого использования этих микросхем. Но в советских журналах встречается и усилитель на них, и генератор синуса и другие варианты аналогового использования. 4069 тоже активно используется в западных синтезаторах, самый известный из них WASP и бесконечное количество простых синтезаторов класса LUNETTA.



561ЛН2 более высокочастотная, и более чистый звук даёт. Я использую ОУ только там, где нельзя использовать эти буферы.

Фильтры есть тоже с разной топологией. Я фанат State Variable, поэтому и собрал его. В Коргах используется фильтр Sallen-Key, в Moog лестничный транзисторный фильтр (запатентован), Roland переделал этот фильтр на диоды, чтобы не нарушать патент.

SID - единственный чип для 8-ми битных компьютеров, где использовался фильтр. Причем он был криво сделан, и мог звучать по-разному на разных чипах. И мне кажется, что резонансом у него нельзя управлять. Я бы тоже резонанс зафиксировал.

Вот нижний канал, басс сделан прямоугольным импульсом и фильтром:



Для того, чтобы амплитуда жалась к середине, а не к минусу, я делал цифровой манипулятор амплитудой.

Image

Вот так он жмёт амплитуду:

Image

Только нафиг он не нужен, если использовать фильтр или управляемый усилитель на 561ЛН2, который я выкладывал уже. Они жмут амплитуду к середине. Использовать цифровой манипулятор амплитудой имеет смысл только если планируется управлять им через каналы ВИ53.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Все звуки музыки

Post by Shaos »

X9C104 чото дороговат (от 7 до 9 баксов за штучку), но Гугл мне предложил дешёвую альтернативу, причём в DIP :)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Превращаем РК в годный музыкальный синтезатор

Post by Shaos »

Если делать управляемый резистор "на коленке", то можно взять аналоговый ключ CD4066 (их у меня много и на DigiKey прямо сейчас 1 штуку можно за 32 цента купить, а если кучей брать, то по 17), у которого есть советский аналог К561КТ3А, и подсоединить цепочкой резисторы 68к, 33к, 15к и 6к8 (если выбирать из общедоступного ряда сопротивлений), шунтируя каждый одним из четырёх управляемых ключей из 4066 (сопротивление замкнутого ключа обещается быть менее 5 Ом) - в итоге получим 16 разных значений для общего сопротивления цепочки от 0 (на самом деле ~20 Ом) до 123 кОм, выбираемых 4-битным кодом от 1111 (все ключи замкнуты) до 0000 (все ключи разомкнуты). Таким способом можно сделать и управляемое усиление ОУ в (каждом канале звука), и управление фильтром.

P.S. Если брать 2% резисторы, то тогда линейку можно такую сделать: 6.49k, 13.3k, 26.1k, 53.6k (общее сопротивление 99.49k)
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
Hammer
Fanat
Posts: 92
Joined: 10 Apr 2024 05:15

Re: Превращаем РК в годный музыкальный синтезатор

Post by Hammer »

Есть ещё один древний, но рабочий способ управления сопротивлением, это оптопара. В музыке это называется "Вактрол". Схем много, вот одна из них, с небольшой фильтрацией.
LowPassGate.jpg
https://benjiaomodular.com/post/2021-03-12-vactrol-vca/

Если ШИМить светодиод, меняя его яркость, можно управлять сопротивлением. Недостаток - долгая атака, фильтр может давать немного булькающий звук.
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Превращаем РК в годный музыкальный синтезатор

Post by Shaos »

Интересная штука

Приуменьшил картинку и прицепил прям сюда на форум...
Я тут за главного - если что шлите мыло на me собака shaos точка net
Hammer
Fanat
Posts: 92
Joined: 10 Apr 2024 05:15

Re: Превращаем РК в годный музыкальный синтезатор

Post by Hammer »

Shaos wrote:можно взять аналоговый ключ CD4066
Надо проще. Музыкальный сопроцессор не хотелось бы превращать в ещё один РК по сложности.

Совсем простой вариант может быть таким... Берём мой или любой другой усилитель, у которого усилитель управляется разрядом конденсатора:

Image

Ставим на три канала ВИ53, но с разной длительностью затухания. В итоге при программировании мелодии пишем ноты в соответствующие каналы. На каком из каналов активировать атаку огибающей выбираем сигналом INTE. Через счётчик, или ещё как-то, пока это не важно. Если получилось хорошо - делаем аналогично канал с шумом, один из каналов превращаем в пилу, у другого сглаживаем меандр через интегратор.

Это уже даст много интересных возможностей для фоновой музыки в играх при очень простой схеме, звучать будет почти, как NES.

Почему так просто?

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

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

Построим основной цикл движка по образу счётчика-делителя.

Code: Select all

MAIN:

; Ждём обратный ход луча для синхронизации
CALL VG75_READY

; Счетчик-делитель

LXI H, clock
INR M

; X1
CALL X1

; X2 FLIP
LDA clock
ANI 1
CZ X2
    
; X2 FLOP
LDA clock
ANI 1
CNZ X2_

; X4
LDA clock
ANI 3
CZ X4

JMP MAIN

X1:
RET

X2:
RET

X2_:
RET

X4:
RET

VG75_READY:   
; Ждем обратный ход

LXI HL, KR580VG75 + 1
MOV A, M

VG75_WAIT:

MOV A, M
ANI $20
JZ VG75_WAIT
RET

clock:  db $00
В начале цикла мы ожидаем, когда закончится отрисовка кадра. Далее увеличиваем значение ячейки памяти, и проверяем его.

Мы синхронизируем основной цикл движка с самым точным из доступных таймеров - кадровой частотой. Получаем четыре выхода на подпрограммы:

X1 - подпрограмма вызывается каждый цикл, основное тело программы;
X2 - подпрограмма вызывается каждый нечётный цикл;
X2_ - подпрограмма вызывается каждый чётный цикл;
X4 - подпрограмма вызывается каждый четвёртый цикл.

X2 и X2_ можно использовать для раздельного вывода спрайтов и подсчета их позиции, так же удобно менять кадр спрайта отдельно от его отрисовки.

X4 удобен для процедуры генерации фоновой музыки, медленного движения звёзд, опроса клавиатуры и других фоновых задач.
С такими таймингами получается, что для проигрывания мелодий удобно использовать подпрограмму X2. Именно ток сделано в предсказательнице и в сквоше. А под эти тайминги и два-три варианта затухания амплитуды можно разумно подобрать.

Вот пример, как звучит мелодия с разной скоростью, скорость меняется стрелкой вверх/вниз.
You do not have the required permissions to view the files attached to this post.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Превращаем РК в годный музыкальный синтезатор

Post by Shaos »

Ты всё предлагаешь каналы ВИ53 по разному использовать

А если автор хочет аккорд взять из трёх нот состоящий?...
Я тут за главного - если что шлите мыло на me собака shaos точка net
Hammer
Fanat
Posts: 92
Joined: 10 Apr 2024 05:15

Re: Превращаем РК в годный музыкальный синтезатор

Post by Hammer »

Shaos wrote:А если автор хочет аккорд взять из трёх нот состоящий?...
Не вижу проблем. Будет аккорд, но из меандра, пилы и почти синуса.

Но только ты посмотри осциллограммы C64, AY и NES - нет там никаких аккордов.

Где-то читал интервью Роба Хаббарда, так он там рассказывал, что сначала делается линия баса с ударными, максимально сочная, потом лид, потом оставшееся на аранжировку.

Если соответствовать названию топика про годный синтезатор, так его надо отдельным картриджем для ППА делать, там вообще на всё управления хватает. Мне же достаточно будет простой в пайке приблуды, которая даст возможность делать фоновую музыку и эффекты для игр, не нагружая процессор. Того, что я предложил, более, чем достаточно:

- белый шум для перкуссии
- канал с пилой для лида
- канал с меандром для чиптюна
- канал со сглаженным меандром для флейт, ударных
- отдельный аналоговый ударник, если хватит управления
- не надо управлять значениями амплитуды, только атакой и моментом релиза
- не надо останавливать таймеры для отключения ноты
- максимально чистый звук без "песка"

Для управления атаками каналов можно использовать счетчик, управлять им сигналом INTE (выбор канала) и RUS/LAT (сброс), заодно светодиод в такт нотам мигать будет. А можно и без сброса даже. Наверняка таким способом можно будет управлять уровнем заряда на конденсаторах огибающих, тогда вообще всё, что надо есть.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Превращаем РК в годный музыкальный синтезатор

Post by Shaos »

Hammer wrote:Если соответствовать названию топика про годный синтезатор...
то синтезатор должен быть многоголосым :lol:

Должна оставаться возможность получить 3 разных ноты абсолютно одинакового инструмента (возможно с разной громкостью плюс шумовой канал):


https://www.youtube.com/watch?v=yU5ITdUy0TI&list=PLmbYQnB4VKE3FkFyjltuPdieVlFHoaV1_&index=1


https://www.youtube.com/watch?v=il62-PM0PyQ&list=PLmbYQnB4VKE3FkFyjltuPdieVlFHoaV1_&index=2

P.S. Не обязательно все 3 сигнала должны быть прямоугольные - могут быть все синусы (и может быть даже пилы и треугольники):


https://www.youtube.com/watch?v=PQM8ozRQzI8

(разнотипные сигналы тоже можно мешать конечно, но слышится это не очень по-моему)
Я тут за главного - если что шлите мыло на me собака shaos точка net
Hammer
Fanat
Posts: 92
Joined: 10 Apr 2024 05:15

Re: Превращаем РК в годный музыкальный синтезатор

Post by Hammer »

Shaos wrote:то синтезатор должен быть многоголосым :lol:
Странно, все самые крутые синтезаторы одноголосые)
Shaos wrote:Должна оставаться возможность получить 3 разных ноты абсолютно одинакового инструмента
Не соглашусь, наоборот, большинство музыкантов стараются выделить инструменты на фоне друг друга, чтобы получить объём гармоник, а не слить их в один плоский звук.
Shaos wrote:Не обязательно все 3 сигнала должны быть прямоугольные - могут быть все синусы
Когда они все синусы, это частотный синтез, а не аддитивный, совсем другая схема и тема, другое поколение синтезаторов, ВИ53 сдвиги сигналов по фазе делать не умеет, ничего не получится, а программировать частотный синтез вообще кукушку свернёшь. И да, в частотном синтезе сливают несколько синусоид в один сигнал, чтобы получить ОДИН инструмент.
Shaos wrote:разнотипные сигналы тоже можно мешать конечно, но слышится это не очень по-моему
Ну тогда и не стоит мечтать о звуке уровня хотя бы NES.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Превращаем РК в годный музыкальный синтезатор

Post by Shaos »

Hammer wrote:
Shaos wrote:то синтезатор должен быть многоголосым :lol:
Странно, все самые крутые синтезаторы одноголосые)
Ну как сказать: https://muted.io/synth-list/

Одноголосые только аналоговые модели эконом-класса от Behringer типа того же wasp и ещё есть один дешёвый Korg и один не такой дешёвый Moog (хотя для кого и этот за штуку дешёвка), а все остальные многоголосые (аналоговые 2, 4, иногда больше, а цифровые 8, 16, 32 и т.д.)

Тот же поливокс пишут был двухголосый…
Я тут за главного - если что шлите мыло на me собака shaos точка net
Hammer
Fanat
Posts: 92
Joined: 10 Apr 2024 05:15

Re: Превращаем РК в годный музыкальный синтезатор

Post by Hammer »

Shaos wrote:Ну как сказать: https://muted.io/synth-list/
Всё правильно, я про крутые синтезаторы говорил, а не про популярные. Moog крутой, наверное половина синтезаторов из этого списка используют фильтр по схеме Moog, за исключением Коргов, они до сих пор часто используют фильтр по схеме Sallen-Key.

Ещё из знаковых в этом списке Korg MS-20 Mini, подозрительно дешёвый. Все Volca, это улучшенный Monotron с секвенсором.
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Превращаем РК в годный музыкальный синтезатор

Post by Shaos »

Hammer wrote:Ещё из знаковых в этом списке Korg MS-20 Mini, подозрительно дешёвый
Амазон прямо сейчас предлагает вот такую цену:
Screenshot from 2024-04-30 20-49-09.png
А вот MS-20 FS (Full Size) больше штуки стоят...
You do not have the required permissions to view the files attached to this post.
Я тут за главного - если что шлите мыло на me собака shaos точка net
User avatar
Shaos
Admin
Posts: 24080
Joined: 08 Jan 2003 23:22
Location: Silicon Valley

Re: Превращаем РК в годный музыкальный синтезатор

Post by Shaos »

Hammer wrote:Не соглашусь, наоборот, большинство музыкантов стараются выделить инструменты на фоне друг друга, чтобы получить объём гармоник, а не слить их в один плоский звук.
Инструмент то может и один, но клавиш у него много (или струн) :lol:
Я тут за главного - если что шлите мыло на me собака shaos точка net
Hammer
Fanat
Posts: 92
Joined: 10 Apr 2024 05:15

Re: Превращаем РК в годный музыкальный синтезатор

Post by Hammer »

Это тебя не отпускает призрачная возможность портирования музыки) Забей, ничего не получится)

Даже в современных клонах РК, где ВИ53 остаётся только для звука, разработчики ставят её в непонятный частотный диапазон. Ноты попадают в правильные частоты в пределах двух октав + по половине октавы сверху и снизу. Частота в большинстве клонов аппаратно ограничена сверху т.е. не вырваться за эти пределы. Формально-то конечно можно, но обеспечить точность частоты ноты в 2% уже не получится, мелодия будет фальшивить.

По этим же причинам падает разрешение частот. Чем выше частота, тем меньше возможность для вибрато.

Т.е. не только ноты портировать не получится, но и простейшие эффекты.

Заново придется музыку писать, или портировать вручную, сдвигая партии разных каналов на на октаву-две вниз, если это возможно.

Аккорд из трёх нот, как ты писал ранее, может не получиться, если ноты удалены друг от друга на октаву. Поэтому надо смотреть в сторону секвенсорной музыки, это круто и полностью ложится на схематоз РК.