X - Журнал разработки

Ближайшие планы:

- нашлись вот цифровые потенциометры MCP41XXX/42XXX

- продумать концепцию рассширяемой платформы (в корпусе рек, в корпусе от АТХ)

- подобрать разъемы - гнезда для возможности свободного рассширения синта пользователями

http://www.dx.com/ru/p/10-x-5s-26awg-lipo-li-po-battery-balance-charger-plug-6-pin-cable-10-pcs-245235#.VW4IpM_tlBc

http://www.dx.com/ru/p/ys-056-3pin-terminal-lead-wire-harness-5-terminal-connector-sockets-white-5-pcs-255396#.VW4IXM_tlBc

- проработать оптический валкодер, как элемент управления, либо что-то иное, с высоким разрешением

http://www.ebay.com/sch/i.html?_from=R40&_sacat=0&_nkw=400+P+%2F+R+encoder&_sop=15

http://www.mindspring.com/~tom2000/Delphi/Codewheel.html

http://letsmakerobots.com/content/stepper-motor-encoder

http://www.ebay.com/itm/Photoelectric-Speed-Sensor-Encoder-Coded-Disc-code-wheel-for-Freescale-car-/321532198612?pt=LH_DefaultDomain_0&hash=item4adccffed4

- прикрутить LCD

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

Разработка:

VCA, VCF.

Придумать как задавать значения контролов by default и ПРЕСЕТЫ!

ADSR - исправить ошибки: быстро понажимать - вылезает громкая нота и висит, хотя кнопка не нажата. При 0 Sustain Идет хрень.

Обрабатывать кнопку RESET, Note OFF с velocity=0 как Note OFF, All note OFF, All sound OFF.

Poly/mono режим.

SynthMaker На предмет построения интерфейса рулежки и отправки миди сообщений.

Купить:

Флюс ТТ в книжном. Или NCL на ебее.

Купить конденсаторы 100pf (101),

заказан набор конденсаторов на ебее

74HC595 http://habrastorage.org/files/ebe/d74/421/ebed74421cf34236846110500e13ed34.gif

Планы второй очереди: цифровой БИХ фильтр, мастер построения текста верилог на заданный фильтр.

2016-01-12 Нашел I2S декодер и опробовал ПЛИС, как ЦАП

2016-01-10 схема норм!

2016-01-08 продолжаем тему симметричного двухполярного включения ключей (4.06 - Симм. сигнала Ключи). Схемы преобразования TTL в двухполярку, как это не странно, находятся в 3.1 - VCA. Там же и новая версия на комплиментарных транзисторах.

2015-08-16 начало сборки синта в 1u на ep2c5, запущен midi in на заказанной плате (плата работает на изначальных номиналах резисторов от Джовиана).

2015-08-15 разработка модуля fifo, собрана матица 2х2 на макете

2015-08-14 проработка poly режима. наклеены шильдики на 1u. сконтачился с рекламщиками на тему самоклейки.

2015-08-09 Проблема с преобразованием 0..vcc в -5...+5 вольт для управления биполярно запитанных ключей натолкнули на мысль попробовать работать с сигналом в аналоге симметричным не относительно ноля, а относительно 1/2 vcc. О чем мне говорили уже давно. Проверил работу ФНЧ 3.4 LPF 20 KHz c таким сигналом - проблем нет. Дальше набросал схему сумматора таких напряжений: 4.02.2 - Сумматоры асимм. VCA для такого сигнала нарисован тут 3.1 - VCA

2015-08-01 После многочисленных попыток добавить импульснику -5В решил от него отказаться совсем и перейти на 2 напряжения: +/- 5 В как для ключей, так и для ОУ.

2015-07-24 Заказал производство платы

2015-07-21 Развел плату ФНЧ 3.4 LPF 20 KHz

2015-07-02 Собрал ФНЧ по другой схеме. подключил все через китайский импульсный БП +5, -12, +12 схема 4.05.2 - Симм. сигнала ОУ

2015-06-30 заказал потенциометры цифровые

2015-06-17 нашлись вот цифровые потенциометры MCP41XXX/42XXX

2015-05-28 проведен серьезный рафакторинг midi_in.v. Теперь нет глюков в приеме нот. Теперь можно поставить стандартные резисторы в аппаратный оптронный модуль. Я их подбирал, считая, что дело в них, а дело в логике ПЛИС. Сделал новый модуль note_mono.v, который выбирает самую старшую из нажатых нот. Сначала с массивом, который хранит нажатые клавиши, но потом переделал на хранения каждой клавиши битом в слове. Важность, моно модуля: "Железные аналоговые синтезаторы сначала имели всего один голос. А еще в "моно" режиме можно использовать скольжение от ноты к ноте(глиссандо), которое может звучать очень выразительно.". Модуль проверен, работает стабильно. Дальше работа ведется над "глиссандо", чтобы сделать плавный подъезд к ноте. Но для этого пришлось поработать с модулем note_pitch2dds чтобы частота ноты складывалась из целой и дробной части ноты. Целая часть - это 0..127 - нота, дробная часть - это промежуточное значение между ними. Глиссандо будет делаться дробной частью, плюс к этому прибавляется масштабированое к нотам значение PITCH. Итог этого сложения и есть значение ноты с целой и дробной частью. Модуль всетаки удалось переделать и с большим трудом заставить работать так, как нужно (устал). Код получился хороший, небольшой, понятный, логичный, без стейт машин. При этом, ресурсов тратится не слишком много. Теперь, в принципе, можно делать глиссандо, LFO на частоту.

2015-05-18 Пристреливался к звуку Roland JP 8080 и его supersaw будучи в командировке в СП.

2015-05-11 Опробована работа семплов TR606 в качестве ударников. По ударникам, пожалуй, надо будет сделать отдельный модуль со входами note on|off, chanel, и выходами GATE по каждому барабану (но потом). https://soundcloud.com/vitasynth/vitasynth-drum-test-samples-bass-snar-of-tr606

2015-05-05 Создана группа вконтакте, в которой будут не сильно технические новости https://vk.com/fpga_synth

2015-05-02 Итак, получены платы от Itead Studio пробовал 1.2 - MIDI вход, подробности там же. Почему-то вместо ожидаемых 20 штук плат, пришло 10, хотя поставлена опция опенсорс. Время от отправки до получения плат на почте - 23 дня.

2015-04-26 пытаемся продолжать вот что бы то ни стало

2015-04-21 Узнал о существовании CD4054 (561УМ1), умеет преобразовать 0..5 в -5..5. В даташите к 4066, они работают в паре. http://www.155la3.ru/datafiles/k561um1.pdf http://pdf1.alldatasheet.com/datasheet-pdf/view/26880/TI/CD4054.html к сожалению их нет в наличии в нашем магазине (возможно, стоит заказать). В ходе трех дней ожесточенных боев с кликами, при использовании VCA на ключах, последние были побеждены, а схема VCA упростилась и теперь требует всего 1 ключ. То есть один 4066 - 4VCA. Подробности будут тут 3.1 - VCA.

2015-04-20 Куплен триггер шмитта для экспериментов с чистотой управляющего сигнала

2015-04-18 Загрузил семпл рабочего барабана. Работа над щелчками в VCA на ключе.

2015-04-15 Добавил настраиваемые модули Verilog: rndx (x-битовый рандом) и powerup_reset для генерации ресета при включении. Прочий рефактиринг, связанный с параметризацией модулей.

2015-04-14 и 15 собран фильтр переменных состояния по схеме 4.07.1 - VCF state var ч.1 и в результате получились такие же осциллограммы, как в рассчетах. Сначала не работало, был непропай. И добавлена обратная связь в интеграторе в составе фильтра переменных состояния. Управление Q пока не реализовано. Замечены щелчки - разрыв фазы. Изменен порядок следования VCO->VCA->VCF на логичный и правильный VCO-VCF-VCA. При подключении по первому варианту, когда VCA стоит перед VCF, то можно обойтись без фильтра ФНЧ для VCA.

2015-04-13 Преобразователь меандра 3.5 в +-5 на транзисторах получить не удалось. Подумали на счет max232. В итоге я решил применять ОУ. Причем в режиме компаратора. А после прочтения статьи AD решено использовать именно компаратор. Буду пробовать LM339 (попробовал, получилось и в симуляторе и в железе 3.1 - VCA). Дальше можно подавать на ключ. Создал раздел Компараторы. Загрузил LM339. Собрал в железе: проверил осциллографом - все работает именно так, как задумано! Подал сигнал на плату ФНЧ и пронаблюдал, как аккуратная пила под воздействием сигнала ADSR плавно менялась по амплитуде. Таким образом, получилась цепочка выход ПЛИС -> ФНЧ1 -> VCA -> ФНЧ2 (после ФНЧ1 - чистый сигнал, после ФНЧ2 - модулирован VCA). Теперь, собственно, осталось самое интересное: VCF (между ФНЧ1 и VCA).

2015-04-11 Статус заказа печатных плат перешел в complete! Заказано 2, обработано и пущено в производство 3, а сегодня 11го уже готово.

2015-04-10 Подключил шины +-5в. Вывел тестовый меандр 195 КГц (ШИМ 8 бит 50%). Прошил ПЛИС так, чтобы при включении этот сигнал всегда там был. Готов работать с ключами VCA.

2015-04-09 Купил ТТ (: это такой флюс). Еще причесал github, догрузил туда то, что не успел вчера. Смоделировал управляющую часть (3.3 -> 5 на транзисторе, буфер, инвертор, буфер) для подачи на ключ, запитанный с двухполярки. 3.1 - VCA

2015-04-08 В связи с закрытием сервиса google.code, начал переносить исходные коды на github. Там же английская короткая вики. Там же файлохранилище для этого проекта. Добавил скрины превью плат midi_in, заказанных с китая и загружен проект Altium (1.2 - MIDI вход). Дальше работать по VCA.

2015-04-07 Посвятил вечер изучению источников питания для получения +-12, 5 вольт.

2015-04-06 Проверена работа печатной платы фильтра [1, 2]: плата работает. При заказе печатных плат потребуется доработка, но это не страшно, потому что надо все равно переразводить под две стороны.

2015-04-04 Разведена для теста заказа в китае плата midi_in, размещен заказ на сайте. Ждем результат. Спаял плату, надо проверять.

2015-04-02 Был перерыв, за прошлую неделю возвратился к делам, прекратил работать ФНЧ на отладочной плате. Решено переходить к разработке печатных плат на Altium Designer, установлен, разработана схема, плата, распилена, засверлена, нарисована, вытравлена, залужена и частично запаяна. В процессе пайки по схеме (из 4.05.2 - Симм. сигнала ОУ), выяснилось, что один резистор не 10к, а 7к, то есть сборный и я такой видел отдельно, видимо он выпал из платы, поэтому фильтр и не работал. Часть платы спаяна обратно, т.к. была съедена коррозией от кислоты, которой лудил стойки, от кислоты решено отказаться. Еще вышел из строя осциллограф, был отремонтирован, проверен, отъюстирован и снова работает. Ведутся работы по изучению разработки печатной платы с последующим заказом ее в китае.

2015-01-19 За последние дни сигнал с выхода ПЛИС стал симметрированным и достаточно отфильтрованным (подробности тут 4.05.2 - Симм. сигнала ОУ). Распаяны стабы +-5 вольт (был сгоревший -5) для ключей.

2015-01-09 Отсимметрировал выход по схеме № 2 из 4.05 - Симм. сигнала ОУ. На резисторах не получилось. Только с подстроечником.

2015-01-06 Обобщил информацию по енкодерам и LCD. В принципе можно будет делать, если это будет нужно: 1.8 LCD 16x2, 1.9 Rotary encoder

2015-01-05 Осциллограммы с 112го показали немного другую картину (в лучшую сторону). Подготовка макетки к двухполярной работе фильтров и ключей. Скрутил старые схемы. Готово +-12В, стаб -5В оказался неисправен. Изучение LCD 16x2.

2014-12-26 Приехали енкодеры (20 щелчков на оборот)

2014-12-25 Вчера подарили осциллограф С1-112А (исправный, компактный, меряет до 10 МГц), так что вопрос с осциллом теперь закрыт.

2014-12-20 Не смотря на проеденный мозг, нашел силы позаниматься. На время удалось найти осциллограф и померять звуковой тракт 4.13.1 Осциллограммы ч.1. Не смотря на удовлетворительное звучание, осциллограммы показали, что нужно заняться фильтрацией более серьезно и поработать над линейностью.

2014-12-14 Продолжаю делать фильтр. Прикрутил управление резонансом 4.07.2 - VCF state var ч.2

2014-12-13 Добавил:1.0 - Блок питания, 4.06 - Симм. сигнала Ключи. Работаю над фильтром переменных состояния 4.07.1 - VCF state var ч.1

2014-12-12 Последние две недели пытался привлечь внимание к проекту и собрать денег на осциллограф. Приятно порадовали ребята с promodj, приняли радушно. С dx.com пришел цифровой анализатор 8 каналов. Жду с ебея oled экраны 128х64, энкодеры, LED кольцо. С Питера привез двухстрочный ЖК экран и плату с ARM cortex M3 (на будущее). В поезде ковырял схемы VCF и VCA, дилема в какой момент нужно делать сигнал симметричным относительно ноля(?), нужно выяснить, с каким размахом питающих напряжений могут работать ключи(3..15В), если питания будет +-5В, каким напряжением открывать ключ(3(-5= -2В при питании +-5) и меньше-будет закрыт/7(-5=+2 при питании +-5) будет открыт). Симуляция симметрирование выходного сигнала относительно земли: 4.05 - Симм. сигнала ОУ. Достал БП с -12 и +12 вольтами для питания ОУ, завел на плату, надо пробовать. Продолжаю искать осциллограф.

2014-11-26,27 Генератор sin.

2014-11-20 VCA на аналоговых ключах. Мысли на счет заземления входа КТ3 и экономии ключей не подтвердились. В схеме и КТ1 и КТ3 работают одинаково . ФНЧ после VCA не сделан, но уже работает не плохо.

2014-11-12 Сутки рефакторингов. Освоил RAM. Модуль note2dds теперь занимает всего 120 ячеек. Фикс варнингов модулей rnd1 и rnd8, а так же бенчи для них.

2014-11-10-11 Создал SVN, исходники будут теперь там (https://code.google.com/p/fpga-synth/). Модули выделены в отдельную библиотеку(папку), чтобы их можно было использовать в проектах разных версий синтезаторов. При переносе была выявлена проблема Time Quest в проекте, исправлена. Проведена ревизия модулей, выявлены проблемные, исправлен и улучшен 2.102 - NOTE+PITCH2DDS. Туда же добавил демо того, что получилось.

2014-11-09 Работает отлично, попробовал и с хостовой программы и с MIDI клавиатуры. 2.102 - NOTE+PITCH2DDS

2014-11-08-09 Линейная интерполяция значений Pitch Wheel. Как заработает - пока неизвестно.

2014-11-05,06 Схема Горнера - модуль на Verilog для real чисел 4.04 - Всякий матан.

2014-11-01 - 03 Если указать мультисиму реальные ОУ, то он вроде начинает работать. Аппроксимация полиномами 3-5-7 порядков. Варианты умножений 4.04 - Всякий матан, в котором изучена Схема Горнера для вычисления полинома.

2014-10-31 Работы над фильтром. Нашел способ поиска коэффициентов полинома X порядка в excel.

2014-10-30 Решение системы уравнений для получения полиномов 3го порядка (мало). Расчет (Filter Solutions) и симуляция SWCAP фильтра в Multisim.

2014-10-29 Изучение апроксимации полиномами

2014-10-27 Куплены в СП в магазине tramv12.ru аналоговые ключи: К176КТ1(10 шт), HEF4016BP(14 шт), TC4066BP(20 шт) еще есть К561КТ3А (2шт)

2014-10-24 Апроксимация экспоненты линиями. Модуль табличного преобразования. 4.03 - EXP для ADSR

2014-10-23 Скорректирован VSTi на передачу данных в экспоненциальном виде.

2014-10-21 Добавлены модули регистров 2.11 - Регистры. Решены проблемы с синхронизацией, осталось минимум варнингов, все заработало стабильнее. Доделан проброс сообщений и параметров контролов, декодирование этих сообщений и запись в регистры, из регистров на входы ADSR, из него на программный VCA. Обнаружилась проблема работы ctrl как vsti в fl studio.

2014-10-20 БИХ VCF, оказывается можно масштабировать коэффициенты (NUM). Сообщения канала: Program Change, Channel Pressure.

2014-10-19 Полностью переделан MIDI-IN на корректную работу с сообщениями, изменены интерфейсы, разбор сообщений канала: Note ON, Note OFF, Poliphonic Key Pressure, Control Change, Pich Wheel Change. Модуль 2.10 NOTE2DDS.

2014-10-18 Освоен http://ctrlr.org/ в качестве платформы для разработки VSTi для синта. Сделан VSTi с Envelope ADSR. 1 Vita Poly One

2014-10-15 Улучшена плата. Сделана 8 голосная полифония.

2014-10-14 Исправлена ошибка в модуле 1.2 - MIDI вход. Сделана 4 голосная полифония (http://www.youtube.com/watch?v=KAr6dQVR5Xw).

2014-10-09 Суммирование в цифре с последующим выводом через ШИМ не понравилось. Размышлял по поводу аналогового сумматора 4.02 - Сумматоры

2014-10-08 Идут работы над межканальной полифонией: каждый из 16 каналов - моно, но может звучать одновременно с другими каналами.

2014-10-06 ЗНАМЕНАТЕЛЬНОЕ СОБЫТИЕ. Преодоленный рубеж. Написан алгоритм преобразования по таблице нота->приращение DDS. Собрана первая версия синтезатора, который играет МИДИ ноты с любого канала. Пока без изменения громкости и прочего. Чистый меандр. Проект занял порядка 350 ячеек, 0 умножителей и один PLL (не обязательный). Играл "Шутку" Баха.

2014-10-05 Доделал модуль мониторинга МИДИ данных 2.12 - MIDI_IN monitor и выделил обработку МИДИ данных в отдельный модуль 2.13 - MIDI_IN

2014-10-01 Настроил модуль приема МИДИ данных - UART, рассчитал правильную скорость и полярность сигнала. Стабильный вывод MIDI NOTE ON на светодиод.

2014-09-29,30 Наконец-то заработал 1.2 - MIDI вход. Ошибка в полярности диода. С БИХ <2 порядка все сложно. Немного разобрался с TimeQuest и причинами возбуда фильтров. Но не работают даже на уровне математики. Пожалуй, пока с ними надо прерваться и перейти к MIDI_2_DDS, чтобы начали выводиться уже какие-то осмысленные звуки.

2014-09-27 Принято решение переписывать ВСЕ модули в плане вывода данных: рассчет по нарастающему фронту CLK, запись на выход по спаду. Фильтр VCF с fixed mul сдвигами.

2014-09-25 Дополнил страницу 0 - Введение техническими данными. Создал страницу X - Журнал разработки и Y - Контакты. Прорабатывал вопрос применения умножения сдвигами в фильтрах. Фильтры КИХ