synthesizer

MIDI BOARD + FPGA SYNTHCORE = SYNTH Hardware

Кратко о событиях:
1. На заводе Электроизмеритель отгремела Резиденция V. UNCASE, 4-5 сентября!
2. Я собрал воедино MIDI клавиатуру и синтезатор и запустил комбинированную модуляцию фазы пилообразной волны - медленный случайный сдвиг фазы в пару колебаний в сек и нойз питания на проводах в комнате! Теперь на нем можно ... играть.


Фазымод с хаотичным графиком крутая штука, выдает прям рваный хрустящий глючный саунд

Как это работает:


FPGA SYNTH @ Kingdom


FPGA SYNTH @ Kingdom

FPGA SYNTH @ Kingdom

FPGA SYNTH @ Kingdom

FPGA SYNTH @ Kingdom

Как видите, технологии на месте не стоят и все продвигается по намеченному плану!)

А теперь держитесь!

Недавно я приобрел мини-ПК OrangePi 4 с кучей плюшекна борту, 4 гектар оперативки и 16 гектар EMMC памяти. Система Android 8.1. Я нацелился сделать Андроид хост для графического 3D меню синтезатора с поддержкой ... WiFi!

Разумеется, на самой системе Андроид  звук синтезироваться не будет, но APK приложение (GUI) будет отправлять на FPGA синтезаторный модуль (DSP) управляющие команды настроек синтеза.

Краткий тест на сенсорном дисплее))

Мне предстоит изучить как писать 3D APK приложение, а также научиться управлять интерфейсом обмена сигналами - GPIO - промышленные порты ввода-вывода информации на OrangePi 4

LIVE NOISED SAWTOOTH WAVE
1 ▲
8 December 2021 21:10
Kingdom
2 comments

Синтезатор - это просто ^ ^ Hardware

Всем привет!

Хочу поделиться радостной вестью: я на пороге создания своего собственного железного синтезатора.

Да-да, вы не ослышались.

Как же у меня случился столь стремительный научно-технический прорыв и ментальный штурм?

Отвечу простой аббревиатурой, которая попалась мне на глаза буквально месяц назад и в течение месяца в редкие  часы свободного времени мне удалось сделать полностью адекватный, скомпилированный без ошибок проект ЖЕЛЕЗНОГО СИНТЕЗАТОРА С MIDI ВХОДОМ!

Это чудо называется F.P.G.A.

Я воспользовался одной из самых дешевых разновидностей этой технологии под названием C.P.L.D.

Чтобы не мучать вас долгими лекциями кибернетики и цифровой электроники, скажу простыми словами: это микросхема, которая сделана из матрицы блоков, которые делают нужные логические и арифметические действия и связи между ними прошиваются спецпрограмматором, позволяя создать собственный микропроцессор С НУЛЯ.

Итак, цены с алиэкспресса:

Intel MAX II EPM240 голый чип – 30 грн/1$ оптом за штуку

И да, в один этот чип мне удалось впихнуть  простейший осциллятор с выбором волны и миди входом. Я просто в шоке)

Но 30 грн этого мало. Нужна плата, программатор, внешний генератор колебаний на 50МГц. В итоге у китайцев есть готовое решение для  ламеров – стартерпак-комплект за 230 грн (7$)

aliexpress.ru/item/40002045447…

Кроме того нужны 2 флэш памяти – на одной нужно записать таблицу музыкальных частот, чтобы синтезатор мог читать нужное значение для нужной ноты и генерировать волну на этой частоте, а на второй нужно записать наборчик волн в виде таблиц значений волный за один период, WAVETABLE. Осциллятор генерирует не саму волну, а адрес ячейки таблицы в нужный момент времени и волна уже превращается цифроаналоговым преобразователем (на группе резисторов и операционный усилитель) в аналог с выхода этой флэшки. Флэшки эти не NAND типа (те которые знает обычный юзверь), у которых ограниченный срок службы в 1500 циклов перезаписи, а EEPROM – ее можно перезаписывать примерно 100000 раз, такой себе биос! Но объем ее намного меньше, в виду дорогой технологии. Стоит одна флэшка 1,5-2 бакса, купить 16 мбит можно например здесь: www.kosmodrom.com.ua/el.php?na…, и для ее прошивки нужен специальный программатор, который достаточно дорог (от 50$), но если вы талантливый погромизд и у вас есть ардуина за 6-12$, вы можете сами сделать себе программатор))

Цифроаналоговый преобразователь делается из копеечных резисторов и микросхемки простейшего операционного усилителя звука LM358N, к нему можно сразу подключать наушники, схемы гуглите в интернети. Работает ЦАП так: на вход по 8 дорожкам подается 8 битное число и оно превращается в аналоговое пропорциональное напряжение почти мгновенно!

Итак, давайте же разберемся, как же нам сгенерировать звук.

Задача состоит в том, чтобы устройство выдавало 8 битное число, которое периодически нарастает от 0 до 255 с нужной скоростью и в конце сбрасывается в ноль. Выглядит это так 


01 - SAW @ Kingdom

V = 255, при этом на графике разумеется будет 2 в 8-й степени = 256 ступенек, потому что все цифровые счетчики умеют прибавлять  минимум по единичке. В реале у вас получится пилообразная волна с 256 ступеньками, хотя они достаточно маленькие и на слух 8 битные ступеньки практически не слышны. Внимание, не путать 8 битный звук с 8 битными приставками! Хочу развеять один миф. 8 битная приставка NINTENDO на самом деле генерирует 4-хбитный звук и 4-х битный цвет, это 16 ступенек, которые ухо четко различает как чиптюн, а 8 битными приставки назвали потому что 8 бит в них … это размер шины ДАННЫХ, А НЕ ЗВУКА!

Хорошо, скажете вы, а как же нам сделать другие волны, не пилу? А нам нужно это нарастающее число использовать, как адрес таблички, в которой записаны совсем другие значения напряжения волны! Какие угодно – синус, прямоугольник, тысячи разновидностей волн, которые даже можете нарисовать руками)) Для этого нам и нужна флэшка, в которую мы запишем табличку из 256 значений графика волны за один период, на вход флэшки подаем номер ячейки таблички, на выходе – вуаля – уже совсем другая нужная волна, в цифровом разумеется виде


02 - WAVE @ Kingdom

Окей, со ступеньками и формой волны разобрались, а как же нам быть с частотой? Как заставить это устройство считать с нужной скоростью, чтобы получить нужную нам музыкальную частоту генерации пилы?

Давайте разберемся, какое устройство нужно, чтобы генерировать нарастающее число. Нам для этого нужен обыкновенный счетчик.  Это такая электронная штука, которая хранит число и циклически с каждым шагом увеличивает его на единичку до заданного максимального значения. Для того чтобы счетчик считал, к нему подключают ножку генератора импульсов, такие генераторы выдают простые квадратные щелчки, стоят копейки и используются для процессоров и разных устройств, чтобы они считали шаги и выполняли команды по очереди. Счетчик получает один импульс от генератора и увеличивает свое число на 1. Все просто. Скорость счета равна скорости импульсов. В моем проекте я использую генератор на 50МГц. Это 50 миллионов счетов за одну секунду. Тогда какая же будет частота нашей нарастающей пилы, если мы со скоростью 50млн в секунду будем увеличивать на единичку 256 раз, от нуля до 255? Правильно, в 256 раз медленнее, то есть 50 000 000/256 = 195312,5 Гц. Нуу, скажете вы, это же очень быстро, музыка не играет на такой частоте, как же нам замедлить счет еще больше и как нам считать с разными скоростями используя всего один генератор импульсов?

Первый секрет. Это увеличить максимальное число счетчика, очень сильно, значит счетчик будет считать до него гораздо дольше, а значит частота пилы будет гораздо меньше, а чтобы превратить это огромное число назад в диапазон 0-255, мы просто поделим его ровно настолько, насколько умножали. Хорошо, если мы будем делить частоту 50 МГц таким способом на целые числа, у нас получатся частоты, которые кратны 50 МГц, но они будут сильно отличаться от музыкальных частот, которые нам нужны, вот табличка для равномерно темперированного строя


03 - TUNE @ Kingdom

Кроме того, счетчик использует двоичный код, а значит считает до числа кратного степени двойки.

Например если мы использует 24 бита

Nmax = 2^24-1 = 16777215

А для 32-х бит 

Nmax = 2^32-1 = 4294967295

Если мы будем считать от 0 до 4294967295 со скоростью 50 000 000 Гц, мы получим пилу с частотой 50000000/ 4294967296 = 0,0116415321826934814453125 Гц.

Это просто невероятно медленно. Окей, как же тогда нам получить нужную частоту? А давайте прибавлять не единичку, а некое целое число! Это и есть второй секрет: так мы ускоряем счет, но уже не так радикально, как замедление увеличением битности. Чтобы узнать какое это число, нам нужно искомую частоту разделить на этих самых пресловутых 0,0116415321826934814453125 Гц. 

Для 1 Гц это число равно ПРИБЛИЖЕННО 

1Гц / 0,0116415321826934814453125 Гц = 85,89934592.

То есть нам нужен счетчик, который в каждом шаге прибавляет не 1, а 85,89934592 или округлим до 86.  Давайте умножим 

86 на 50 000 000 = 4300000000

Получается погрешность 

4300000000/4294967296-1 = 1,0011717677-1=0,0011717677 или примерно 0,12%!

Неплохо, да? Мы получили волну 1Гц с погрешностью 0,12%!

Победа))

Осталось рассчитать эти прибавки счетчика для КАЖДОЙ музыкальной частоты из таблицы и записать эти прибавки в нашу первую флэшку. Когда нам нужно сыграть на нужной ноте, мы подаем номер ноты на вход флэшки, читаем нужное нам ЗАРАНЕЕ ПРОСЧИТАННОЕ 32-х битное число, и счетчик постоянно складывает вместе с этой прибавкой.

А чтобы на выходе у нас было 8 бит, мы просто берем из этого числа старшие 8 бит, таким образом делим огромное число на 2^24.

Есть еще один нюанс, чисто аппаратный. Флэшка может за один раз выдать только 8 бит из памяти, а нам нужно 32. Значит нужно собрать  читалку , которая читает 4 байта (1 байт = 8 бит) подряд и подает готовое 32х битное число на счетчик.

Итак, структурная схема осциллятора с читалкой получилась такая 


Synth PM @ Kingdom

Пройдемся по обозначениям:

OSC – генератор импульсов, я вначале использовал встроенный в MAX II генератор 5,56 МГц, потом узнал, что на китайской плате стоит внешний на 50 МГц, провод ON включает генератор, если подать «1».

Counter328 – 32-х битный счетчик адреса волны с 8 битным выходом адреса на вторую флэшку волны, 32-хбитным входом прибавки Def, 8-хбитным входом фазы(это даст возможность сделать FM синтез)

Countread – читалка прибавок частот  с первой флэшки

Толстые линии – это жгуты/шины проводов.

А вот чтобы сделать все эти счетчики и схему, мне пришлось изучить настоящий язык эльфов VERILOG и программу для разработки QUARTUS!

Код счетчика:

module counter328(

    clk,

clr,

def,

phase,

clk2,

    adr

);


input clk;

input clr;

input [31:0]def;

input [7:0]phase;

output clk2;

output [7:0]adr;


reg [31:0]cnt = 0;


assign adr[7:0] = cnt[31:24]+phase[7:0];


assign clk2 = cnt[31];


always @(posedge clk or posedge clr) begin

    if (clr)

        cnt <= 0;

    else

        cnt <= cnt + def;

end


endmodule

Код читалки:

module countread(

    clk,

clr,

in,

adr,

    out

);


input clk;

input clr;

input [7:0]in;

output [1:0]adr;

output [31:0]out;

reg [31:0]out;

reg [31:0]buffer;


reg [2:0]cnt = 0;


assign adr[1] = cnt[2];

assign adr[0] = cnt[1];


always @(posedge clk or posedge clr) begin

    if (clr)

        cnt <= 0;

    else begin

        case(cnt)

  0:begin

  out <= buffer;

  end

  1:begin

  buffer[7:0] <= in[7:0];

  end

  3:begin

  buffer[15:8] <= in[7:0];

  end

  5:begin

  buffer[23:16] <= in[7:0];

  end

  7:begin

  buffer[31:24] <= in[7:0];

  end

  endcase

  cnt <= cnt + 1;

end   

end


endmodule

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

Вот его контакты

https://vk.com/bolshakov_av

https://vk.com/fpga_synth

https://habr.com/ru/users/UA3MQJ/

Отдельно хочу поблагодарить его за интеллектуальную помощь.


Финальная версия синтезатора которую я хочу прошить в чип, выглядит в проекте вот так


Synth MIDI PM @ Kingdom

 

Скачать и посмотреть в Full HD можно здесь

И да. Тема очень сложная и я не буду вас учить микроэлектронике! Учитесь сами)

6 ▲
19 March 2020 13:29
Kingdom
28 comments

Синтезатор Dave Smith Instruments Mopho Keyboard Купить-продать

Продается! б/у, в отличном состоянии, небольшой торг (г.Москва, м.Деловой центр)

- без встроенной акустики
- клавиш: 32, полувзвешенные
- интерфейс USB для подключения к ПК
- компактный корпус с подключаемыми педалями
- 474x91x282 мм, вес 4.25 кг
- выход на наушники

53'900р

0 ▲
20 October 2016 12:41
Alina
no comments

Yamaha Reface воссоздает старые мощные звуки. Серия компактных синтезаторов с ретро дизайном. Hardware

Компания Yamaha запускает новую линейку мини инструментов с мощным звучанием Reface, клавиатуры представляют собой переосмысление четырех классических инструментов использовавшихся артистами начиная от Stevie Wonder и заканчивая  Pink Floyd, Queen и Michael Jackson.
Даже начинающий музыкант легко справится с этими устройствами благодаря отсутствию глубоких сложных настроек, все органы управления вынесены на лицевую панель, поворот любой ручки или слайдера дает мгновенное изменение звука.

Многие винтажные инструменты уже сложно найти в продаже и они совсем не предназначены для переноски, Reface дает жирный, мощный звук, встроенные динамики (если они нужны), профессиональную мини клавиатуру с 37 клавишами и питание от батареек, все это в компактном корпусе.


Линейка состоит из 4х устройств:


  •  reface DX - FM синтезатор созданный на основе легендарного DX7, дебютировавшего в 1983 году и использующегося даже сегодня.
  •  reface YC - Переосмысление органов Yamaha YC, представленных в конце 60х, использовавшихся  Pink Floyd, Tangerine Dream и многими другими. 
  •  reface CP - Переработка 6 электропианино определивших звучание 70x.
  •  reface CS - Наследие синтезаторов серии CS, представленных в 1976 году и использовавшихся Stevie Wonder, Michael Jackson и другими.  
 

Более подробно о характеристиках инструментов:

Reface DX
Reface YC
Reface CP
Reface CS

Надо сказать, что анонсированная стоимость каждого из инструментов в $799 это довольно дерзко и позволяет надеяться, что Ямаха сбавит свой аппетит к появлению серии в магазинах. Поступление ожидается в сентябре 2015 года.
 

0 ▲
27 July 2015 13:41
ALL FOR DJ
no comments

[ПРОДАМ] Access Virus TI desktop ,домашний, б/у Купить-продать

Продам Access Virus TI desktop, полный комплект, коробка, наклейки(кроме одной), мануалы, провода, бп, рековые уши и т.д. и т.п.

использование только домашнее, только на столе, ничего не проливалось, не ударялось, не вскрывалось, не ремонтировалось, ось прошивалась регулярно(могу при вас обновить на последнюю)... последнее время стоял, пылился, есть не просил, места не занимал...

Решил продать, т.к. наступила полная импотенция к лабанию музыки. От пыли почистил(могу вылизать со спиртом, если принципиально), фотку сделал psyprog.com/mp3/virus.jpg

едва заметные царапинки на дереве(справа), от монитора(на функционал никак не влияют ;-)

хочу 62тыр без торга

любители повайнить и аргументировать ебаем - вперед на ебай.

осмотр м. красногвардейская/м. Марьино (район Зябликово), самовывоз отсюда-же, встречи в пром-зонах, "за гаражами" не интересуют :>

контакты skype - realsushiba, айцукен - 65триНОЛЬодин55, мыл sushiba сцобако psyprog.com

в голове
0 ▲
5 July 2011 16:39
ililiililil
2 comments

Продам синтезатор басс бочки Jomox M.Base11 Купить-продать

Продаю синтезатор басс бочки (кика) Jomox M.Base11 за 14600 рублей.

Хочешь купить? ...Обращаться ко мне) или воспользоваться контактами на сайте http://www.sentonore.ru/browse/view/11521.html

0 ▲
27 May 2011 13:04
Laura DJ
8 comments