Diyfactory Forum
Основные форумы => Музыкальное оборудование => Тема начата: Diz от Октября 08, 2007, 03:32:21 am
-
Приветствую всех собравшихся.
Возможно, кто-то помнит меня по GTLab-у :-)
Мои хобби-интересы давно и плавно перекочевали от гитарных железяк
ко всяческим шумелкам, синтезаторам и прочим забавным зверюшкам.
Пользуясь рекламой Medved-а, обратил внимание на этот ресурс.
Ого ! Кажется, здесь есть люди со схожими интересами.
Сейчас решил собрать простой и дешевый моносинт с
максимальным использованием цифры в тех местах, где это оправдано -
LFO, ADSR, MIDI-CV (клавиатуру делать не собираюсь :-), возможно
и VCO. Фильтр и VCA однозначно аналоговые.
Пока что собран двухканальный ADSR (цифровой), есть линейный режим
и экспонента.
Если будем полезны друг-другу - буду рад :-)
-
Привет. Тут народ за минимуг рубится, подключайся)
-
Diz
Я думаю многим интересно - расскажи по возможности подробнее. Что собирал и как? Какие ресурсы использовал что почитать можно и т.д. В общем если реально всё необходимое для повторения твоих опытов...
-
Синт дело непростое... я вот тяготею к разного рода фильтрбоксам... гораздо проще и универсальнее в применении...
есть например такой проект:
http://www.oakleysound.com/filtrex.htm (http://www.oakleysound.com/filtrex.htm) (могу выложить схему, если интересно)
-
Xopek
А что с такими штуками можно делать? Просто как обработка? FX? А на вход всё что угодно подавать можно? Гитару и т.д.?
-
ага
Вот к стати подборка ссылок по синтам:
http://home.no.net/eifi/Gear/DIYLinks/SynthDIYLinks.html (http://home.no.net/eifi/Gear/DIYLinks/SynthDIYLinks.html)
-
Ну у нас была тема по этому поводу :) http://diyfactory.ru/forum/index.php?showtopic=143 (http://diyfactory.ru/forum/index.php?showtopic=143) Там же где решили за мининмуг приняться. :)
Там есть вроде эта ссылка. По сути дубль ветки но ничего страшного думаю тем более если продолжим конкретный прибор обсуждать (тогда и тему переименовать можно конкретизировать)...
-
Фильтры - хорошая штука. До Муговской "лестницы" не добрался,
а вот state-variable делал. С гитарой на входе хорошо,
у буржуев есть похожие вещи Mutron и Lovetone Meatball.
Впрочем, у меня круче - у меня еще LFO есть :-)
Но синт - это совсем другое :-) Основная идея именно в создании простого синта с максимумом цифры в управляющих цепях, не требующего дефицитных компонентов. Да и не стремящегося повторить что-то винтажное.
Довел до ума ADSR. Вот так он выглядит:
[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-162-0bafbbeddc.jpg[/img]
И пример огибающей:
[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-164-7a5b2a7260.jpg[/img]
-
Да уж смд паять страшно.
Diz
Не тяни. :) Будет время расскажи конкретнее что собирал, где описание проекта взять, печатки...
-
О, это наш подход. ATmega и кучка потов к ней :)
Поты в АЦП встроенные, а остальное делает мега :) ммм :)
Есть кстате идея попробовать AT91SAM7 в роли синта. Там вычеслительных мощей - мама не горюй. АВР и близко не плювали :)
-
BSVi:
Можно и ARM запрячь - есть кучка под рукой. Только, мягко скажем, избыточно для таких мелочей :-)
diyfactory:
SMD паять совсем не страшно, стоит лишь попробовать.
Паяется даже быстрее, чем выводные компоненты.
При этом масса плюсов:
плата компактнее, длина сигнальных цепей меньше,
паразитные параметры (индуктивность выводов) меньше,
платы ЛУТ не надо сверлить (!).
И, в конце-концов, скоро уже трудно будет найти микросхемы
не то, что в DIP, а даже в SOIC. Будут одни BGA :-)
-
>Можно и ARM запрячь - есть кучка под рукой. Только, мягко скажем, >избыточно для таких мелочей :-)
А что из армов под рукой?
Просто интересно, я юзаю исключительно AT91 и филлиповский LPC, может просвятишь, что еще в мире делается, а то скорее всего отстал я от жизни :)
Насчет избыточности - ты зря, если одна нота, то да, а если полифония хотябы 7 голосов, то уже просто так на си под АВР не попишешь :) Вот тогда арм какраз в жилу будет. Темболее 10$ ему цена.
>не то, что в DIP, а даже в SOIC. Будут одни BGA :-)
И тогда я повешусь :))))
-
А все тоже самое - SAM7S..., SAM7X..., LPC как-то не прижились.
Ну, если запихивать весь синт в контроллер, включая фильтр,
то да, согласен. Существует, кстати, симпатичная отладка от Olimex,
как раз для такой задачи: http://olimex.com/dev/sam7-ex256.html (http://olimex.com/dev/sam7-ex256.html)
У меня же цель оставить снаружи аналоговый фильтр со всеми вкусными
искажениями и VCA :-)
Не вешайся, мужики уже научились их паять феном. Осталось
научиться делать под них многослойный ЛУТ :-)
-
>Ну, если запихивать весь синт в контроллер, включая фильтр,
Дык, а как по другому то :) И коэфициенты для фильтров тоже считать в рил-тайме :)
>Существует, кстати, симпатичная отладка от Olimex,
Она -то симпатичная, но стоит, наверняка...
>У меня же цель оставить снаружи аналоговый фильтр со всеми вкусными
>искажениями и VCA :-)
Тогда и авр-ки хватит за глаза... Мне твой подход ооочень нравится :)
>Не вешайся, мужики уже научились их паять феном. Осталось
>научиться делать под них многослойный ЛУТ :-)
Дак феном их не паяют, а только немного шевелят, если шарики потеряли контакт, а припаять БГА с кол-вом шариков под 200 - нереально без оснастки специальной помоему...
Да и без многослойки не обойдешься никак... тоесть вообще никак :(
Чувствую еще чуть-чуть и девайсины полноостью на кристалле будут делать там травить ионисторы, ядро, порты, стабилизаторы - наружу будут торчать только проводки для входов и выходов...
А это идея - научиться бы делать кристаллы в домашних условиях :))
-
Сегодняшнее пополнение: генератор белого шума (псевдослучайная последовательность, сдвиговый регистр длиной 31 бит, два отвода) на маленьком восьминогом pic12f675.
Шумит превосходно, от аналогового шума не отличить :-)
-
>Сегодняшнее пополнение: генератор белого шума
Дык можно было и в мегу всунуть. Тебеж нужно до 40кГц всего
-
Народ. Хватит болтать давайте проект уже. :D Тоже хочется чего-нить такого собрать попроще для начала. В идеале фильтрбокс какой-нибудь чтобы можно было и с гитарой и с другими сточниками использовать...
-
BSVi: В мегу, во-первых, уже не очень хорошо лезет - генерация двух
огибающих с ШИМ на 32 кГц (плюс масштабирование, интерполяция)
занимает ~85% времени. Оставшееся время на фильтрацию потов,
антидребезг кнопок и т.д.
Во-вторых, генератор шума в составе ADSR - это как-то идеологически
неверно :-)
А частота около 100 кГц, чтобы фильтровать было проще.
diyfactory: проектов пока что нема - их как-то оформлять надо ведь :-)
Впрочем, могу предложить свой аналоговый фильтр общего применения, проверенный и рабочий. Двухсторонняя заводская печатная
плата, smd-детали. Желающие могут переразвести под односторонний ЛУТ
и DIP. Очень похоже на http://www.paia.com/prodimages/9730sch.gif (http://www.paia.com/prodimages/9730sch.gif)
-
2 Diz.... очень элегантное решение ADSR... :) слюни текут.. когда уже будет завершена работа над синтезатором? :P можешь выложмть схемку ADSR если не жалко для этого сайта, комьюнити (я например ) оформит как надо красиво схему для народа.. Будем помогать чам сможем :)
По поводу синтезатора.. расскажи поподробней.. Осциляторы поланируются цифровые? Вот кстати здесь http://www.jarek-synth.strona.pl/ (http://www.jarek-synth.strona.pl/) есть готовый DCO на AVR... хотя думаю тебе интересней будет разработарь оригинальное решение..
-
Урряяяя, хоть один чел из Киева :) Ч уж думал, что один тут :) Преведствую :)
Я вообще думаю, а не забацать ли синт на одном камне - вот это айс :)
-
Приветствую , будем кооперироваццо если что ;) Я пока собрался собрать MIDI BOX SID.... пока в раздумьях.. потяну ли полный контрольный интерфейс.. или сделать упрощённый.. и управвлять софтом.. :huh:
Если делать полный интерфейс то можно заказать корпус или хотяб лицевую панель на радиорынке с надписями и дырками... нужно разработать..
Кстати плату от комодора64 нашёл на радиорынке за 10 грн.. был безумна рад :D ....
Витает ещё в голове идея поцепить такой винтажный чип как AY3-89-10 к аvr или pic... минимум это хотябы управлять по миди голосами а максимум - поместить внутрь кристала арпегиатор аналогичный трекерам c zх spectrum... (Pro tracker) дл получения характерных звуков :P .. можно также вывести CV и GATE для управления внешним фильтром.. вобщем разработки Dizа тут как раз кстати :P
-
Когда будет завершена - не знаю даже. Времени, как всегда,
не хватает :-)
Синт пока что видится таким:
Монофонический. Два цифровых осциллятора (DDS), форма
волны - прямоугольник с ШИМ или пила, либо любая другая -
все равно будет воспроизводиться из таблички. Отдельный
генератор шума.
Второй генератор можно расстраивать до 2 октав относительно первого.
Управление по MIDI - клавиатуру я делать не собираюсь :-)
Буквально только что появилась мысль сделать на мелком ARM-е, исключительно из-за аппаратного USB. Также будут функции
легато (glide) и hold.
После генераторов простой аналоговый фильтр 2-го порядка
(svf) - переключение нч-вч-полосовой-заграждающий.
Есть подходящая собранная плата, давно ждущая своего часа :-)
Затем ADSR для громкости и частоты среза фильтра.
LFO - прямоугольник, пила, треугольник, псевдослучайная лестница.
Частоту можно синхронизировать с MIDI-clock. Модулировать
можно частоту среза фильтра, питч, скважность генератора (ов?).
VCA - скорее всего традиционный вариант на OTA типа LM13700.
Перед выходом простенький овердрайв на ОУ.
Схему, печатную плату к ADSR и прошивку постараюсь выложить
на выходных.
-
Diz
Если есть желание - создавай тему или даже несколько по разным компонентам будем более предметно это всё обсуждать (по аналогии как преампы здесь обсуждали, как минимуг сейчас обсуждается). По принципу от простого к сложному по возможности. :) Чтобы в результате образовывалось некое количество информации позволяющей в конечном итоге повторить твой опыт и собрать отдельные модули или всё целиком.
-
ИМХО если уж осциляторы будут цифровыe (на базе AVR наверное) то почему бы не сделать их три :P Появится возможность воспроизводить простенькие аккорды...
А вот про ARM-ку.... конечно тебе как разработчику виднее :huh: но может лучше сначала сделать стандартное миди.. для народа.. на AVR B)
-
арм прогать не сложнее чем авр. так что народу длжно быть всеравно...
-
Думаю, AVR со всем фоновым барахлом не потянет три осциллятора.
А, впрочем, на 16 МГц потянет.
ARM с USB можно зашить и через USB - так что все проще.
Не считая принципиального отсутствия их в DIP.
Самым доступным останется TQFP с шагом 0.5 :-)
-
Не ну USB так USB но вы же не собираетесь лишить синт обычного MIDI входа.. (и THRU выхода) а как напрямую клаву подключить? :o да и ктомуже возится с USB это солидный кусок работы....
Кстати неплохо бы в ADSR и других предусмотреть на будещее связь с центральным ядром... (последовательная шина) в вдруг захотим управлять черезз миди... :D Управление то цифровое.. то почему бы не использовать все выгоды.. Хотя ето добавляет гемора..
-
Естественно, обычный последовательный MIDI и MIDI thru будут.
USB-midi я уже реализовывал, вполне успешно :-)
Насчет связи - возможно, но не в этой версии.
Выкладываю потихоньку материалы.
Схема ADSR:
-
В каком виде желаете печатку ? Оригинал в Pcad-2004. Можно P-cad, можно
.pdf, можно еще как-то.
-
Печатка односторонняя? в таком случае наверное лучше в PDF или в картинке приличного разрешения (хотя мож комуто понадобится и PCAD2004, поэтому оригинал не помешает).. Хотя я например всёравно переведу её в формат Sprint Layout... мне так удобней.. может какието правки внести.. да и на флешку вместе с программой забросить и распечатать на принтере легче.. не надо софт устанавливать..
-
По сути в любом виде подойдёт кроме гереров и других спецформатов. Конечно если есть возможность сделать и пдф и в спринте и в пикаде (если исходник в нём) - то было бы здорово. Но посути согласен с Serge_D пдфа хватит. Ну и конечно хорошо бы печатка была одностороннаяя не под смд... :rolleyes:
-
Без smd никак нельзя, призывы к возврату в каменный век
игнорируются :-) Печатка односторонняя, но медь на другой стороне не
снимается и служит глобальным земляным полигоном.
Вот:
-
Сильно.
Кто готов переразвести под "каменный век"? :D
PS: Если совсем обнаглеть - пару слов для ламаков также было бы здорово... :unsure:
-
Будет даже побольше, чем пара слов - как только найду немного времени.
Либо это сделает кто-то еще :-)
Под DIP переразвести не сложно, но придется выбрать другой контроллер -
у DIP-варианта Atmega48 только 6 входов АЦП, а нам для восьми потенциометров нужно 8 входов.
Половину деталей - конденсаторы около потенциометров, некоторые конденсаторы развязки и т.д. можно не запаивать, будет работать и так.
Питание -12В нужно только для операционников, чтобы
можно было получить на выходе хороший ноль. Если это не критично, или можно поставить операционник получше, то -12В не нужно. У меня в синте в любом случае будет шина -12В, а lm324 есть целая куча - поэтому использую. Если -12В нет, то замыкается джампер J11 и на минус питания операционника идет земля.
Запуском и остановкой огибающей занимается вход KEY, который замыкается
на землю. Либо вход EXT_GATE - стандартный внешний вход GATE
с порогом +2.5 В.
Вход HOLD (замыкание на землю) запрещает остановку огибающей,
ноты будут 'висеть'. Светодиод LED3 отображает текущее состояние HOLD.
Джамперы J4 и J8 выбирают тип огибающей для каждого канала -
линейную или экспоненциальную. Анализируются при подаче питания.
Яркость светодиодов LED1 и LED2 отображает текущий уровень CV каналов,
они зажигаются и гаснут синхронно с огибающей - красиво :-)
Прошивку положу чуть позже.
-
отлично.. ;) Можно ли обойтись без второй стороны, соединив проводами несколько контактов, разведена ли земля на основном слое? В пдф кстати приведена только одна основная сторона. Двусторонних плат боюсь как огня :P
-
Зря, двусторонние платы делаются без проблем вообще.
-
Да, у меня так и сделано - со стороны bottom сплошная медь
и несколько проводков-перемычек. Те отверстия, которые не соединяются
с землей, немного раззенкованы (снято кольцо меди вокруг отверстия).
Без сплошной меди на bottom схема не будет работать. Те отверстия,
которые должны соединяться с землей, обязательно должны с ней соединяться :-) Вывод детали должен быть припаян с обоих сторон.
-
Вторая версия pdf - текста стало больше !
-
Следующий на очереди - фильтр !
-
Diz
Ждём! Опять в смд?
-
Не совсем - скорее всего, главная микросхема (LM13700) будет в dip -
ее проще достать. А все остальное smd, конечно :-)
-
хочю одностороннюю и в дип :(
может возьмёмся переразведём? хотябы под обычные резисторы и конденсаторы( контроллер в дип корпусе.. со слов Diz имеет меньше линий АЦП стало быть непотходит) и на одностороннюю плату полностью (с использованием проволочных перемычек). для начала ADSR . А то я как глянул на плату Diza так у меня руки и опустились... вобщем формируем оппозицию к Dizu и делаем альтернативную плату ;)
И предложение к Diz и модератору.. переименовать топик на Diz Synth (или как будет называтся именной синтезатор Diza :P ) и в первом топике по пунктам для новичков вести блог чтоли.. что готово.. что в процессе..
-
Serge_D
Можем встретится, и покажу как делать двусторонки. Плевое дело. Паять TQFP - тоже не проблема абсолютно.
-
Паять smd совсем не трудно. Рано или поздно придется, если
и дальше заниматься этим хобби :-)
Говорю уверенно, так как наблюдал людей, столкнувшихся
с этим впервые (и с паяльником вообще) и через час уже
сносно паявших.
-
Serge_D
Поддерживаю. Потому как задача наша имхо - сделать материал максимально доступным. Я вот вряд ли возьмусь паять тольк потому что мне в лом будет искать смд компоненты покупать учиться их паять и разводить двусторонние платы - уверен что по сути просто но гиморно...
Переименовать тему - не вопрос. А лучше завести новую и версти авторский проект. :) Кстати по поводу оформления тем и что писать и как писать - каждый может относиться к форуму как к коллективному блогу - интересно что-то и есть что сказать - заводим тему и пишем в ней над чем работаем, делимся маткриалом попутно обсуждаем...
BSVi
Аватар поправь. Не грузится. А лучше залей на сервак, не давай ссылкой... :)
-
diyfactory:
Все наоборот - dip становится найти труднее, да и стоят они дороже :-)
Как и smd резисторы 0805, например - большинство переходит
с 0603 на 0402 :-)
Печатная плата в ADSR односторонняя (!). Просто медь с обратной стороны не
снята.
-
ну незнаю :P для меня даже эстетически.. приятнее паять дип и односторонюю плату.. когда сверху просвечиваются дорожки если тесктолит немного прозрачный.. ммммм... этож естетика старого аналогового оборудования .. винтаж :lol: я согласен ещё на микросхемы.. но резиторы и конденсаторы SMD должны паять роботы.. :P Всёравно переделаю по своему..
ок.. Ждём фильтр.. впринципе может Smd и не так плохо :D
Тогда маэстро.. пару слов о фильтре .. хочеццо чтоб фильтр был качественным с крутизной спада 12 и 24db/oct ...
-
А вот 'маэстро' не надо - какой я, нафих, маэстро ? :-)
Фильтр будет некачественный, спад лишь 12 дб/октава. Зато дешевый
и повторяемый :-) Low-pass, High-pass, Bandpass.
-
2 Diz Сорри ;)
хорошо... тоже неплохо.. самое главное чтоб все узлы были со стандартным управлением 0-10v... тогда по желанию я смогу применить другой фильтр.. от муга например.. или даже от поливокса :P
-
Управление линейное, 0-10В - так что все ок.
У поливокса крутой фильтр, очень необычный - и звук хороший,
злой :-)
-
Фильтр - предварительная версия описания.
Качаем !
-
Народ сорри что разрушаю структуру обсуждения но ещё раз обьясните мне тупому - вот собрал я фильтр. Могу я его как обработку гитарного звука к примеру использовать? :D
-
Плата хорошо сделана.. Интересно только что за микруха LM13700?.... поищу по сайтам надеюсь у нас покупается..
Ждём осциляторы... собственно синт начну собирать как только появится схемка осциляторов ;) так наиболее логично.. сперва слушаем голый звук.. потом потихонтку добавляем фильтр.. огибающие..
Кикие идеи есть по осциляторам? нет ли способа достаточно просто генерировать аналоговым способом? Потому как цыфоовые осцыки будут ступенчатые чтоли.. (в каком разрешении планируются 8 или 16 бит?) :unsure: ... может в железе по крайней мере предусмотреть 3 CV outs для "external osc (analog)" на будущее.. ;)
-
Кикие идеи есть по осциляторам? нет ли способа достаточно просто генерировать аналоговым способом?
Поливокс :) В этом синтезаторе был относительно просто реализован Генератор Управляемый Напряжением на операционниках. Причем, можно было выбирать генерацию сигнала, переключаясь между несколькими формами волны. По-моему, в Поливоксе, было три независимых осциллятора и генератор шума.
-
Народ сорри что разрушаю структуру обсуждения но ещё раз обьясните мне тупому - вот собрал я фильтр. Могу я его как обработку гитарного звука к примеру использовать? Frostwave Funk-A-Duck (envelope filter, hand-made, Australia)
В начале обсуждения эта тема проскальзывала, именно потому я предлагал начинать с фильтра, его можно использовать как самостоятельное устройство, в том числе и с гитарой, вот один из примеров:
Продам resonant envelope filter от Frostwave, сделано в Австралии. Отлично подойдет для использования как с гитарой и басом, так и с драм-машинами и в составе модульных синтезаторных систем. По словам разработчика, является вариацией на тему легендарного фильтра из Korg MS-20. Совмещает в себе hi-pass и lo-pass (HP/LP) фильтры, огибающая настраивается между режимами up и down. Многие пользователи считают его более гибким и удобным в использовании чем значительно более дорогой ($500+) Lovetone Meatball. В американских-австралийских интернет-магазинах и на ebay стоит от 250 до 300 USD.
-
diyfactory: Можешь. Для согласования с гитарой нужно будет добавить
на вход повторитель (входное сопротивление 47к маловато), на выход - разделительный конденсатор. Плюс байпас и т.д.
При желании можно собрать детектор огибающей (см. схемы Mutron,
Meatball) и подключить его к одному из CV-входов. К другому можно
подключить внешнуюю педаль экспрессии, ala-квак.
Serge_D: Осцилляторы можно сделать аналоговыми и весьма просто,
но нет желания иметь проблемы со стабильностью и промежуточным
звеном MIDI-CV. Выход осцилляторов скорее всего 8-битный.
Для square это не критично совсем :-), для saw чуть более.
К тому же, выходной сигнал будет нормализован и выводиться
с максимальной амплитудой для использования всего динамического
диапазона 8 бит. Управление громкостью (VCA) будет уже после и
в аналоге.
Вообще говоря, я пробовал на макетке такие осцилляторы - нормально :-)
Попутно пробовал и сэмпл-плеер - тоже вполне, можно делать драм-машину
(см. http://www.muzoborudovanie.ru/equip/studio...oxxbase999.php (http://www.muzoborudovanie.ru/equip/studio/elperc/jomoxxbase999.php))
:-)
-
Ну понятно :) в принципе я не против 8 битных OSC.. Довольно интересно звучат... тем более сейчас в моде бит краш эффект :P ... Но ггг.. вдруг ктото захочет самостоятельно доработать прошивку, подключить DАС и вывести управление внешними OSC... тоесть такую возможность следуеет IМНО предусмотреть хотябы теоретически. ;)
-
Записал пример звучания фильтра. Исходная секвенция и сэмпл проигрывались
с компа :-)
Update:
см. пост от diyfactory ниже.
-
Diz
Не даёт скачать пока - все слоты заняты у сендспейса. Можно было приаттачить просто...
PS: Скачал. Прикольно :)
Приаттачил.
-
весьма прилично звучит.. думал будет хуже ;)
-
весьма прилично звучит.. хочу на пиле послушать свип.. :P
-
Ок, попробую записать.
-
Записать на пиле пока не выходит - нет времени.
Зато почти определился с осцилляторами.
Прямоугольный сигнал будет генерироваться в цифре (с управляемой
скважностью).
Пила - гибридным образом. Интегратор на ОУ, который будет
сбрасываться в нужный момент времени контроллером. Для сохранения постоянной амплитуды пилы входное напряжение интегратора будет задаваться в зависимости от частоты (устанавливаться через ЦАП(ШИМ?)).
Будет два отдельных осциллятора, с пилой и прямоугольником на выходе каждого. Плюс генератор шума.
На этой же плате - несколько потенциометров. Смещение частоты (+/- 2 октавы) и скважность для каждого осциллятора, расстройка второго осциллятора.
Все остальное управление по шине i2c от мастер-контроллера :-)
-
Вот такая получается схема VCO:
-
Diz
А ты в чем схемы рисуешь?
сама схема неплоха, тока вот операцилнников неиспользуемых много :(
Кстате - если не используешь лучшеоперационник как повторитель включать и вход плюсовой на ноль посадить. Если оставить так, то можно схватить возбуд.
-
Схемы - банально в P-Cad.
Три сдвоенных операционника - вроде немного :-)
Насчет подключения неиспользуемых ОУ знаю, конечно.
Здесь используются все.
А ! Вероятно, тебя смутили "операционники" внизу листа ? В
библиотечном компоненте три отдельных символа:
1-й ОУ, 2-й ОУ в корпусе и питание.
-
ага, они то и смутили.
Слухай, а как ты из PCAD'а так схемку экспортируешь хорошо?? Поделись секретом :)
-
Все просто :-) Ставим драйвера Adobe Postscript Printer, печатаем на него
в файл (.eps). В .eps будет векторная картинка. После чего .eps
преобразуем в pdf любой подходящей софтиной - в моем случае
это бесплатные Ghostscript + GsView. Можно сделать это в Corel и т.д.
Так можно почти из любого када вывести векторную графику.
-
Тем временем концепция синта меняется - в первую очередь,
из-за желания иметь сохраняемые-загружаемые пресеты.
Теперь это видится так:
Кучка отдельных модулей (осцилляторы, adsr, lfo и т.д.), соединенных
по шине i2c. А все кнопки и потенциометры будут опрашиваться
одним-единственным главным модулем. Возможен и дешевый вариант,
без крутилок и кнопок, с рулением все параметров по MIDI.
Блок осцилляторов:
1) два псевдоаналоговых осциллятора, пила + прямоугольник с управляемой скважностью.
2) один цифровой осциллятор - воспроизведение по таблице, 16
прошитых форм волны.
3) второй и третий осцилляторы могут быть синхронизированы по первому.
4) белый шум, никак не управляемый.
5) все параметры (частота, включение синхронизации, скважность)
передаются мастером по i2c.
6) частота устанавливается в центах (1/100 полутона) - таким образом
легко можно задать pitch bend, модуляцию, glide.
Фильтр остается прежним.
Блок LFO выдает огибающую в аналоговом виде для модуляции фильтра и
VCA, и параллельно в цифровом по i2c для осцилляторов.
ADSR остается прежним, но лишается потенциометров. Теперь их значения
передаются по I2C. Впрочем, можно оставить и прошлый - тоже будет
работать.
VCA - аналоговый, двухступенчатый. Первая ступень - модулирование
от ADSR, вторая - от главного модуля (velocity ноты).
Микшер - с цифровыми потенциометрами и аналоговыми ключами,
управление от главного модуля.
Главный модуль опрашивает безумное количество потенциометров и
кнопок, грузит-сохраняет пресеты, принимает MIDI, генерирует CV
для VCA и управляет другими модулями по i2c.
Осцилляторы сейчас разводятся. Послушаем, как они звучат
и будем думать дальше :-)
-
Звучит заманчиво.. учтены ранее озвучиваемые мной идеи в части связывания цыфрой всех модулей.. хотя идея явно на поверхности :D ..
Както избыточно правда выглядит на мой неопытный глаз вот ето:
"Блок LFO выдает огибающую в аналоговом виде для модуляции фильтра и
VCA, и параллельно в цифровом по i2c для осцилляторов." тоесть даные с генератора LFO будут обратно возвращатся в центральный модуль для управления VCO... <_<
Вообще было бы круто если бы всё реализовать в одном центральном чипе и ЛФО и АDSR, и не возится с i2c...
И такое предложение - оставить интервейс для опционального подключения как осциляторов так и фильтров сторонних разработок (коих на просторах сети уже достаточно много)... ну хотя фильтр уже можно подключать любой..
-
Данные от LFO будут идти к VCO напрямую. В I2C любое устройство
может быть как мастером, так и слейвом.
В центральный модуль запихивать не хочу, ему и так будет чем заняться.
Генерация одновременно нескольких LFO (с малым джиттером)
хорошо загрузит процессор.
Другие осцилляторы подключить можно так: вместо моих осцилляторов
ставим модуль I2C->ЦАП, который будет выдавать нужные CV для
аналоговых осцилляторов.
-
Запустил тестовую версию осцилляторов - весьма неплохо получается.
Два псевдоаналоговых осциллятора square+saw, третий - синусоида
по табличке, плюс шум.
Вот что говорит спектралаб:
Пила (http://diyfactory.ru/forum/uploads/img-196-a07a8f8eab.png)
Прямоугольник (http://diyfactory.ru/forum/uploads/img-198-4bc92a7aeb.png)
Синус (http://diyfactory.ru/forum/uploads/img-197-7d27e4a7ca.png)
Фотография платки (http://diyfactory.ru/forum/uploads/img-199-2a2a29b669.jpg).
И сэмпл (http://www.sendspace.com/file/ksjxr9) (размер 4Мб, к форуму не цепляется). Два осциллятора - пила и прямоугольник в квинту, с небольшой модуляцией частоты. Подавались на два канала микшера, затем обрабатывались (замыливались :-) софтовым фильтром и софтовым же делеем.
-
Неплохо очень даже.. я так понял плюс таких осциляторов в том что нет ступенек как в цифровых восьмибитных... почти аналог . Прямоугольник правда выглядит как укороченая пила ;)
Кстати демки лучше бы выложить без обработки но разной частоты.. так можно будет и сравнить и поразглядывать поближе волны.
На какой стадии разработки этот модуль? осциляторы уже управляются по миди?
А вообще приятно осознавать что проект движется ;) Ждём продолжения.
-
Прямоугольник некорректно в звуковуху смотреть) Надо бы осциллом ткнуть)
-
Пила сделана как в Roland Juno, аналоговый интегратор, сбрасываемый
из цифры. Ступенек не может быть впринципе - зато могут быть негармонические составляющие от джиттера сигнала сброса
(имхо это меньшее зло). Синус, кстати, восьмибитный со всеми
положенными ступеньками :-)
Прямоугольник так и должен выглядеть после прохождения через
разделительный конденсатор :-) Если привести осциллограмму
до него, то будет честный меандр. Спектр тут показательнее - вторая
гармоника отсутствует.
Модуль почти закончен. Наружу торчит интерфейс i2c и написан
протокол для управления осциилляторами - сменить частоту,
включить-выключить осциллятор, изменить скважность и т.д.
Частоту осцилляторов можно задавать с шагом в 1 цент (1/100 полутона).
Другой модуль - разбор миди-команд и управление осцилляторами -
написать недолго. Думаю, сделаю тестовую версию на днях
из всякого подручного барахла.
-
Осцилл на работе - завтра доберусь :-)
-
Тоесть синус это ROM OSC.... тогда уж для полного счастья можно добавить и ROM saw, тriangle, PW прямоугольники етс. в таблицу... а что пусть будет всёравно память наверное осталась :)
-
Да, я оставил память еще под три таблицы - пока не знаю, какие волны забить :-) Если взять контроллер чуть дороже (Atmega88 вместо 48), то можно добавить еще 16 табличек :-)
-
Картинки с осциллографа:
Пила до и после кондера (http://diyfactory.ru/forum/uploads/img-202-6fb95250ed.jpg)
Прямоугольник до и после кондера (http://diyfactory.ru/forum/uploads/img-204-b0bc2fbfdf.jpg)
Синус (http://diyfactory.ru/forum/uploads/img-205-02e9b0b36f.jpg)
-
Хм интересно :huh: как это конденсатор меняет так форму волны.. по идее это и на звук влияет, на пиле явно низов добавляет... ггг сорри за ламерство ;)
-
Наоборот - низы убавляются. Представь, что треугольник стал еще
больше заваленным - тогда останутся лишь одни иголки. Какие уж тут низы :-)
Да, на картинках сигнал инвертированный - снимался после
усилителя.
Подумал, что все-таки стоит делать лестничный фильтр имени
товарища Боба Муга :-) Ибо концепция изменилась, а простой двухполюсный
svf не даст полностью реализоваться потенциалу.
PS Оказывается, Moog правильно произносится как Мог. Нежиданно !
-
хехе... я бы сейчас на фильтре на останавливался.. хоть это и увлекательно но отдаляет релиз готового изделия.. фильтр можно изменить потом :unsure:
-
А не снижается надежность микроконтроллера? Сигнал на выходе интегратора отрицательный и через резистор MIX попадает на линию контроллера питаемого от +5В. При отсутствии сигнала сброса потенциально может достигнуть почти -12В и вызвать через 10к вытекающий ток 1мА. Это допустимо или нужны дополнительные защитные диоды с ножек 15,17 на землю?
-
В принципе, на входах микроконтроллера есть защитные диоды.
Нога всегда настроена на выход и имеет драйвер, способный отдавать/забирать около 20 мА.
На самом деле я собрал по немного другой схеме, тут все безопасно:
-
Если я правильно понимаю, частота пилы стабилизирована по линии сброса интегратора, а амплитуда программно через шим и фнч по амплитуде на входе интегратора? Проверялась амплитудная стабилизация от частоты и переходная характеристика при большом изменении питча?
Какова частота шим? Если достаточно высока, то не возникало желания попробовать ввести коррекцию формы пилы? Повысив частоту среза фнч на входе интегратора и синхронно корректируя напряжение управления или подав отдельный корректирующий сигнал на неинвертирующий вход интегратора.
-
Да, именно так - интегратор сбрасывается с частотой, привязанной к клоку
контроллера (он тактируется от кварца 20МГц), а опорное напряжение на входе интегратора зависит от питча и рассчитывается программно.
Выводится через 12 битный ШИМ - частота 4.9 кГц.
Фильтр настроен на ~250 Гц с подавлением пульсаций ШИМа на 60 дБ.
Амплитуда пилы проверялась при свипе по всему диапазону -
неравномерность не более 1.5 дБ (если не ошибаюсь).
_Резкое_ изменение питча проверялось только на слух,
артефактов не замечено (если они и были, то наверняка не
более 1-2 периодов).
Коррекция формы ? Зачем ? Или имеется в виду этакий shaping пилы в более
другие формы волны ?
-
Ну да, чтобы появились вторая, а может и более высокие производные. Кажется именно это и называется waveshaping. Конечно 5кГц для этого маловато, но такие штуки должны быть особенно эффективны на низких частотах. Правда будет лишний источник шима на выход при увеличении полосы фильтра. А 60дБ для 5кГц не мало? Не прослушивается на выходе? Можно попробовать подать выход фильтра через конденсатор и резистор еще и на неинвертирующий вход интегратора и т.о. организовать дополнительное подавление шим. Правда может быть сложно подобрать корректирующие цепи для хорошего подавления и сохранения амплитудной характеритстики при резком изменении питча. Вероятно, это неудачная мысль. А вот программный шейпинг был бы кстати для функциональности генератора.
-
Вроде как не прослушивается - на фоне жужжащей пилы разве разберешь ? :-) Да и 60 дБ это только на опорном входе, плюс сам интегратор действует
как неслабый ФНЧ и давит польсации еще ниже.
В принципе, даже если и будут какие-то артефакты при резком именении
питча, не страшно - придаст своеобразия осциллятору :-)
Сейчас соберу простенького мастера, принимающего миди и
управляющего осцилляторами. Можно будет записать тестовые
секвенции и сделать окончательные выводы.
-
Это верно, интегратор помогает и кроме того помеха является амплитудной модуляцией, но при таком соотношении частот эквивалентна суммированию.
Некоторые артефакты могут пойти на пользу изделию, это запросто. В таком деле не знаешь где найдешь, а где потеряешь. :D
-
Нашел немного времени и подключил осцилляторы для пробы по миди. Получилось ИМХО весьма недурно. Если есть желающие, могу записать сэмплы.
И, подскажите, что имеется в виду под экспоненциальным и линейным
glide-ами ?
-
есть ))
-
И, подскажите, что имеется в виду под экспоненциальным и линейным
glide-ами ?
Про глайды представляю это так: либо прямая диагональ между ступеньками kbd CV в случае с линейным, либо + или - дуга в случае экспоненциального.
Семплы в студию!!!!
-
Привинтил какой-то глайд, который я посчитал экспоненциальным :-)
Сэмплы (все без обработки, кроме последнего): тут (http://www.sendspace.com/file/yozxk0).
Аккуратно, размер 7Mb, пролежат на сенд'с'пейс-е недолго.
-
у меня не открывается :unsure:
-
Вроде ожила ссылка.
-
Прикрутил к синтезатору LFO - пока что лишь на питч и pulse width. Засим короткий кусочек (размером 2 Мб): Тут (http://www.sendspace.com/file/3mbpja). В кусочке красуются синт, фильтр из аблетона и небольшой перегруз.
-
Мда... аблетоновский фильтр не впечатляет.. и вообще какой толк в демке если на неё неложены софтовые плагины.. хочется услышать чистый звук синта..
-
хочется услышать чистый звук синта..
присоединяюсь!!! и модуляции, модуляции побольше!!! Если можно в wav - хоцца хорошо прослушать ВЧ на предмет aliasing'а.
-
Модуляция пока приделана лишь кое-как, особо демонстрировать нечего.
Вот три семпла без эффектов, прямо в микшер. В первом частота прямоугольника модулируется пилообразным LFO, во втором
две пилы и синусоидальный LFO, в третьем две пилы, расстроенных
на 4 цента и тоже самое.
3.2 Мб (http://www.sendspace.com/file/w53ihe).
Без aliasing-а никуда, его и в mp3 отлично слышно на высоких нотах :-)
Update: забыл перед записью сменить прошивку в осцилляторах
на более актуальную. Тут мало того, что не включен псведо-dithering,
так еще и какой-то глюк с нестроящими нотами на верху диапазона
из-за ошибок округления :-)
-
а откуда алиасинг? насколько я понял пила у тебя полуаналоговая... а вот на цифровых осциляторах должно быть слышно..
-
Да что вы к алиазингу прицепились)) Если устройство не претендует на точную эмуляцию аналоговости то в этом даже есть своя изюминка. Вспомните PPG который алиазит мама не горюй. Но мы его любим не только за это:) На вст модели ппг даже кнопочку сделали "включить алиазинг"
Демки послушал. Достаточно клево звучит. Характер звука как раз и напомнил ппг. Не знаю как будет с басом, но середина хорошая, мясистая и шершавая как наждачка. Сюда бы еще фильтр на ссм2044))))))
...и в микс...
-
Постараюсь объяснить на пальцах.
Хоть интегратор и аналоговый, но сбрасывается из цифры.
Все цифровые ошибки в частоте сброса вылезают в виде частотной
модуляции.
Для получения нужной частоты есть несколько путей.
Первый вариант - делать ее кратной клоку, в этом случае ошибка
увеличивается с ростом частоты и на высоких нотах становится значительной,
но побочных компонентов в спектре не будет. Так сделано в Roland Juno.
Второй вариант - не кратной клоку (аккумулятор с переполнением). Тогда каждый период будет завершаться либо на такт раньше, либо
на такт позже, но в среднем частота будет иметь нужную точность
независимо от клока (точность будет определяться разрядностью
аккумулятора). Проблема в том, что последовательность округлений к
тому или иному такту будет не случайной, а повторяющейся, периодической, что вылезает в спектре в виде побочных негармонических составляющих.
Грубо говоря, частота постоянно скачет между соседними дискретными значениями так, чтобы в среднем дать нужную частоту. Но скачет
слишком предсказуемо (пилообразно), давая палки (spurs) в спектре.
Можно сделать так, чтобы эти скачки были непредсказуемыми,
промодулировав частоту шумом. Уровень шума поднимется,
но мусор в спектре заметно опустится.
Если значение аккумулятора использовать не напрямую, а как индекс
в таблице с волновой формой (и выводить уже значение из таблицы),
то получится типичный цифровой осциллятор. В немузыкальном
мире это зовется DDS (Direct Digital Synthesis).
Третий вариант - выводить при помощи DDS наружу синусоиду,
хорошо фильтровать, подавать на аналоговый компаратор, а фронт компаратора использовать для сброса интегратора. Вот тогда
получится спектрально чистая и точная пила :-)
До третьего варианта я не добрался (хотя и осознаю его преимущества),
и собираюсь остановится на втором.
В последней демке, кстати, звучал первый вариант. Мусор при высоких
нотах не из-за aliasing-а, а из за слишком высокой дискретности
частоты на ВЧ. Грубо говоря, вместо 4400 Гц мы можем вывести или
4000 и 4800 Гц (цифры с потолка), а скачки между этими значениями при работе LFO и слышны как "шум вертолета" :-)
-
>Третий вариант - выводить при помощи DDS наружу синусоиду,
хорошо фильтровать, подавать на аналоговый компаратор, а фронт компаратора использовать для сброса интегратора.
не уверен. как только начинается "хорошая фильтрация", начинаются приколы интегрирования, тоесть качания уровня, в конечном итоге блуждания фронта-спада компаратора. по сути - последствия алайзинга, вернее псевдо-...
думаю, алайзинг можно существенно снизить заменив (как уже указывалось) ШИМ с фильтрами на ЦАПы. правда, цапы нужны серьёзные.
хотя нужно, действительно, определиться - оставлять алайзинг или бороться с ним, если оставлять - то всё упрощается, чего с ветряными мельницами сражаться, если нет - придётся решать серьёзные проблемы.
-
Серьезные производители DDS-генераторов (например, AD) делают
на выходе синусоиду. А потом, если нужно получить прямоугольник для клока, рекомендуют несколько пассивных RC-фильтров и
компаратор (часто на борту того же DDS-чипа). Хотя, казалось бы, вывести прямоугольник из DDS элементарно.
Если имеется в виду ШИМ в моей схеме, то он не при чем, так как влияет
лишь на опору интегрирования - на амплитуду, а не на частоту.
А так, меня aliasing абсолютно не смущает - пусть будет :-)
azot: А фильтр хочу по мотивам Муговской лестницы.
Сейчас думаю насчет организации модуляции. Склоняюсь к нескольким
слотам (5-6), с выбором source, destination и amount для каждого.
-
>пассивных RC-фильтров
вот! пассивных. с ними меньше интеграторных приколов.
>Если имеется в виду ШИМ в моей схеме, то он не при чем, так как влияет
лишь на опору интегрирования - на амплитуду, а не на частоту.
хе-хе, мы про разный алайзинг говорим) я про тот, что является ошибкой от работы двух параметров - частота (которая, конечно же, имеет свой алайзинг) и "амплитуда", тоесть скорость интегратора плюс переходные процессы от ШИМ+фильтрА.
немного в тему:
делал я как-то девайс, где использовалась подобная идея - ШИМ->фильтр->скорость интегратора. скорость была переменной и менялась скачкообразно. и вот эти "приколы фильтрации ШИМа"- переходные процессы - сильно портили картину. попытки задрать частоту шима повыше и посильнее зафильтровать были малоэффективны. и тогда я оставил всего-навсего единственную RC-цепочку и "отпустил" частоту, тоесть оставил фильтрацию неглубокой, даже пила нефильтрованная осталась. и всё пошло! вот эта неотфильтрованная пила оказалась стабилизирующим фактором, следом же стоит интегратор. а время переходных процессов значительно снизилось и произошло "размытие" переходов.
-
Мысль понятна - что-то в этом есть, буду иметь в виду.
Специально для любителей ломографии - процесс записи синта в
огрызках (http://home.planetahost.ru/~firewood/synth_make.jpg) :-)
-
Однако, сколько в процессе вылезает тонкостей !
Сегодня написал логику распознавания нескольких нажатых нот.
Оказывается, в классических моносинтах обычно использовался
либо high-note приоритет, либо low-note приоритет - звучит
всегда либо самая высокая из зажатых клавиш, либо самая низкая.
В Pro-52 (эмуляции Prophet-5) забавнее - при отпускании клавиши
делается глайд к ближайшей нажатой.
В итоге сделал стек на N нот и при отпускании глайд к предыдущей
нажатой (а если она уже отпущена - то к ее предыдущей и так до конца стека). На мой дилетантский взгляд, весьма играбельно :-)
-
по-хорошему, неплохо бы сделать переключение режимов: правая мажоритарность, левая, последняя нажатая-отпущенная, ближайшая при отпускании, остаётся отпущенная... или ещё какой.
-
В принципе, можно и другие режимы добавить по мере необходимости.
-
Однако, сколько в процессе вылезает тонкостей !
Сегодня написал логику распознавания нескольких нажатых нот.
Оказывается, в классических моносинтах обычно использовался
либо high-note приоритет, либо low-note приоритет - звучит
всегда либо самая высокая из зажатых клавиш, либо самая низкая.
В Pro-52 (эмуляции Prophet-5) забавнее - при отпускании клавиши
делается глайд к ближайшей нажатой.
В итоге сделал стек на N нот и при отпускании глайд к предыдущей
нажатой (а если она уже отпущена - то к ее предыдущей и так до конца стека). На мой дилетантский взгляд, весьма играбельно :-)
однако да... правда, это не тонкости, а основополагающие моменты. сейчас решаю эту же задачу. таки получается, что надо контролировать ВСЕ ноты! для имитации классического аналога, вернее приёмов игры на нём, всегда надо отыскивать ноту крайнюю правую из нажатых, но ниже отпущенной. вот и получается, что надо держать под контролем все ноты, тоесть или вести учет нажатых-отпущенных с сортировкой по возрастанию или перебирать. я иду по второму варианту.
дауж, в аналоге - один операционник - и всё. а в цифре - столько заморок...!)
-
Думаю, такой приоритет сделать несложно. Можно на каждую ноту отвести один бит - итого 16 байт на все ноты. При отпускании ноты сбрасываем бит
и ищем ближайший установленный слева (справа). Если процессор
имеет команду типа nlz (подсчет кол-ва ведущих нулей), то вообще халява.
PS Вот здесь хорошо написано про приоритеты:
http://www.soundonsound.com/sos/oct00/articles/synthsec.htm (http://www.soundonsound.com/sos/oct00/articles/synthsec.htm)
Да и вообще весь цикл Synth Secrets стоящий.
-
так и сделано - ноты в виде битов. даже ещё проще - 8 байт на 5 октав, больше не требуется.
-
какие интересные исполнительские эффекты получаются, когда в программе получаются косяки)) в частности с сигналами "гейт" и "триггер". особенно понравилась ситуация, когда огибающая запускается при нажатии ноты и при отпускании, причём любой. техника игры резко возрастает! :D можно такими 16-ми играть - прямо виртуоз!) (даже при моём скромном умении)
-
Да уж. Когда писал стек сыгранных нот, промахнулся с границами стека - в итоге пошло играться все содержимое RAM :-) Любой авангадный музыкант
многое бы отдал за обладание таким инструментом.
А что такое разрабатываешь, расскажи ?
Я сейчас размышляю над интерфейсом. Думаю, что 180 потенциометров - это явный перебор, хехе. Склоняюсь к матрице 8x8, как в Dave Smith's Evolver.
-
кстате. Насчет сброса осциляторов. А если использовать вариант
"Грубо говоря, частота постоянно скачет между соседними дискретными значениями так, чтобы в среднем дать нужную частоту. Но скачет
слишком предсказуемо (пилообразно), давая палки (spurs) в спектре."
из твоего описания, только выход завести на ФАПЧ и сделать врямя подстройки фапча больше длительности такта. получим точно нужную частоту с небольшими пульсациями. Эдакий частотный фильтр получается )
-
В принципе, есть такая топология - DDS driven PLL. Не вникал в подробности,
но подозреваю, что это оно и есть.
А вообще, проще всего собрать осцилляторы на FPGA (или CPLD),
сделать клок этак 60 Мгц - и палки будут едва различимы на уровне
шумов :-)
-
Да уж.
>Да уж. Когда писал стек сыгранных нот, промахнулся с границами стека - в итоге пошло играться все содержимое RAM :-) Любой авангадный музыкант
многое бы отдал за обладание таким инструментом.
помнится, когда-то очень давно сделал нечто подобное - подал такт от цифрового генератора случайных чисел (шума, иными словами) - на цифровой интерфейс, который выдавал CV на VCO синтезатора. грубо говоря, получился случайный выбор ноты со случайным периодом. ну это был музон!) для 87-го года это было авангардом однозначно) кстати, музыканты оценили, но мы играли исключительно рок, и применение эффект не нашёл.
>А что такое разрабатываешь, расскажи ?
мидирование сов. синтов, аналоговый модуляр, итд... в этом ключе.
>Склоняюсь к матрице 8x8
не, я за регуляторы, переключатели, и чем их больше, тем лучше))
-
> выход завести на ФАПЧ и сделать врямя подстройки фапча больше длительности такта.
вот тут видятся подвохи неслабые. для стабильной основной частоты проблем нет, но при фм модуляции грязь появится однозначно. проверено.
>"Грубо говоря, частота постоянно скачет между соседними дискретными значениями так, чтобы в среднем дать нужную частоту. Но скачет
слишком предсказуемо (пилообразно), давая палки (spurs) в спектре."
а вот тут виден резон, пробовать надо.
-
Затормозился с глубиной модуляций.
Поясню на примере модуляции питча.
Хочется, чтобы можно было задать и очень глубокую модуляцию
(скажем, на весь диапазон питча), и очень небольшую (на 10 центов, например). При этом глубину модуляции задавать либо с лицевой
панели энкодером, либо мидишным CC. Численное значение глубины модуляциии хотелось бы ограничить 0..127, 0- модуляции нет, 1-минимальная модуляция, 127 - максимальная, на весь диапазон. Но в этом случае значение 1 уже получается слишком грубым, это модуляция почти на полутон.
Большой диапазон значений (0..6000) делать неразумно - по миди такое не примешь (если не объединить два CC), а энкодер на панели замучаешься крутить.
Если сказать иначе, хочется получить большой диапазон с хорошим разрешением, не усложняя интерфейс.
Вариантов вижу несколько: забить на большой диапазон; забить
на удобство :-) ; делать по два регулятора - coarse и fine;
ввести нелинейную зависимость глубины от поворота регулятора.
-
последний вариант имхо лучший.
-
Придумал вариант еще лучше (на примере питча, но подходит для всех
больших параметров): ввести два разных _destination_ в матрице модуляции:
coarse pitch (разрешение в четверть тона, диапазон -6000...6000) и fine pitch
(разрешение в цент, -99..99).
-
Еще один момент. Берем ADSR-огибающую для VCA, добавляем к ней чувствительность к динамике (скорости, velocity). Предположим, что была нажата клавиша с максимальной силой - огибающая в стадии атаки дойдет почти до максимума, затем будет спадать. Затем нажата еще раз с малой силой - значение максимума после атаки будет малым. Но возникает вопрос, откуда двигаться к этой атаке - если от текущего значения огибающей на момент запуска ноты, то может статься, что атака будет отрицательной !
А если принудительно обнулять огибающую перед атакой, то поимеем щелчок.
Может, есть какие-то еще варианты ?
Для пояснения картинка (сгенеренная самим моим синтом) - в первом случае
возвращаемся к нулю, во втором нет.
-
интонирование должно быть обязательно, имхо. поэтому (как мне кажется) следует обнулять предыдущую огибающую, но относительно плавно. думаю 1-2 мс будет достаточно для снижения щелчка, а задержка следующей огибающей на таких временах заметна не будет. можно и переключатель ввести на 2 режима.
-
Спасибо, здравая мысль. Переключатель возвращения к нулю введу в любом случае, а плавное обнуление надо попробовать в деле.
-
а интересно было бы такую фишку попробовать - следующая огибающая накладывается на предыдущую и масштабируется предыдущей. "0" предыдущей - единичное усиление следующей.
-
В том смысле, что новая огибающая (меньшая) играет в своем масштабе,
зависящем от velocity, но смещенная наверх - нулем становится то значение,
при котором она запустилась ? Если так, то мне нравится решение - даже
больше предыдущего :-)
Естественно, релиз второй огибающей в таком случае идет к настоящему
нулю. Плюс большая огибающая после малой может войти в насыщение-переполнение, но ИМХО это должно звучать очень естественно.
А вот при цепочке нот одной и той же динамики (вернуться к настоящему
нулю не даем) громкость будет постепенно возрастать, что нехорошо.
-
вобщем, есть над чем поработать...))
-
Синтопроект снова понемногу оживает. Перетащил всю цифровую
часть на LPC2148 (32-битный ARM7 микроконтроллер), стало значительно
веселее ! Есть достаточные запасы по производительности, а периферия
на борту очень неплохо ложится в проект (6 32-битных каналов ШИМ,
2 UART, 10-битный ЦАП, USB и т.д.).
-
ждём демки.
-
Обязательно.
А вообще, никто не желает поучаствовать в проекте ? Если есть
сложности с smd, то можно сделать прощенный конструктив,
с DIP-элементами и микроконтроллером, уже распаянным на
header-плате - http://www.olimex.com/dev/lpc-h2148.html (http://www.olimex.com/dev/lpc-h2148.html)
-
А вообще, никто не желает поучаствовать в проекте ?
Один проект уже похоронили, совместными усилиями похоронят и этот, так, что лучше водиночку - быстрее.
-
Есть какие-нибудь мысли по поводу цифрового потенциометра на VCA ?
Естественно, с лог. характеристикой и предназначенного для audio, вроде
lm1972. Меня мучают смутные сомнения - все таки они большое
предназначено для неспешного управления громкостью, при больших скоростях может и zipper/stepper noise вылезти. В общем, всегда можно
поставить обычный OTA типа lm13700, но найти их с каждым днем становится все труднее.
-
а чем обычный управляемый дифкаскад плох? классика. можно и дискретно-аналоговый модулятор применить, с ШИМ управлением.
-
дифкаскад не плох - но в таком случае проще поставить LM13700 из
запасов, по сути он же в интегральном исполнении, но без мороки с подбором транзисторов.
Что имеется в виду под дискретно-аналоговым модулятором -
Аналоговый умножитель (на второй вход шим-cv) ?
Или, может, порубить сам аудиосигнал в капусту высокочастотным шимом и отфильтровать ?
-
да, второй вариант. фактически дискретизирующий ключ, стоящий в верхнем (или нижнем) плече резистивного делителя является переменным резистором, с проводимостью, пропорциональной скважности.
-
)))
-
После долгой паузы проект оживает :-)
Софтовая часть практически доведена до ума, добавилось два
субосциллятора (прямоугольник), в wavetable-канале появились FM и Ring
модуляции. И юзерские штуки - USB для MIDI и файловой системы (видно
как флешку), пресеты в виде ini-файлов, графический экран, энкодеры и
т.д.
Заказал печатные платы для аналогово-цифровой части, пора оформлять
в виде готовой конструкции :-) Будет еще вторая плата с энкодерами,
кнопками и светодиодами, соединяемая с первой шлейфом.
Вот такие должны получиться печатки:
-
Diz, на арме собирал?
простите за ламерство, никто не поможет разобраться с этой штукой? http://diyfactory.ru/forum/index.php?showtopic=672 (http://diyfactory.ru/forum/index.php?showtopic=672)
немогу не понять как её запусить.
-
Ага, LPC2368.
-
Ух ты ) класно ) можно будет платы купить с наборчиком основных деталей?
-
Пока не знаю, но возможно. В любом случае, до финала еще далеко -
даже на этой плате после запайки обнаружилось несколько досадных косяков.
Плюс на очереди вторая плата, с экранчиком и крутилками.
Платы рассчитаны под корпус Gainta G1183.
PS SMD-детали с шагом 0.5мм не пугают ? :-)
-
Diz а проект там где Пила клочится от МК можно вылодить с исходниками? Атмега, на СИ?
-
Отдельный осцилляторный модуль, с внешним i2c-управлением ?
Это можно. Надо ?
-
да, желательно и схему. Какнить может поковыряю и себе что-то придумаю...Я в Си мало что понимаю, мой выбор asm+Jtag.
-
Вот, прошлый осцилляторный модуль на AVR с I2C управлением.
Выкладываю как есть, без всяких правок и причесываний. Собирается при помощи GCC (WinAVR) командой 'make all CFG=Release'.
Камешек - Atmega48, тактируется от кварца 20МГц.
-
Diz пасиба....А почему компилер фришный юзаешь? IAR или Keil вроде получше.
-
Пока не знаю, но возможно. В любом случае, до финала еще далеко -
даже на этой плате после запайки обнаружилось несколько досадных косяков.
Плюс на очереди вторая плата, с экранчиком и крутилками.
Платы рассчитаны под корпус Gainta G1183.
PS SMD-детали с шагом 0.5мм не пугают ? :-)
"PS SMD-детали с шагом 0.5мм не пугают ? :-)"
уже не пугают )) наоборот удобно..
-
Как собрать VCA на LM13700?
Эмулировал схемку из даташита на NI Multisim. работает нормально, но выход смещён на -2V. Это кривой результат Multisim, или я что-то недопонял?
Хочу сделать на них управляемый напряжением микшер.
-
Diz пасиба....А почему компилер фришный юзаешь? IAR или Keil вроде получше.
GCC - отличный компилятор (правда, не совсем приспособленный к восьмибитникам). А IAR даже бесплатно не надо - у меня на него аллергия :-)
-
"PS SMD-детали с шагом 0.5мм не пугают ? :-)"
уже не пугают )) наоборот удобно..
Хех. Возрадуемся, что еще не все камешки в BGA и не все резисторы 0102 :-)
-
Как собрать VCA на LM13700?
Эмулировал схемку из даташита на NI Multisim. работает нормально, но выход смещён на -2V. Это кривой результат Multisim, или я что-то недопонял?
Хочу сделать на них управляемый напряжением микшер.
Если после выходного буфера (дарлингтона), то вполне. 0.6В падает на одном переходе база-эмиттер, 0.6В на втором. Еще сколько-то набежит из-за ошибок смещения усилителя. Хотя -2В многовато, -1.2..-1.5В в самый раз.
-
Diz, подскажи плз, какая точнось у 16 битного ШИМ меги? Достаточно чтоб рулить осциллятором в диапозоне 7 октав с шагом 0.1 цент?
-
Хочешь напрямую, без экспоконвертора ?
С такими требованиями не хватит.
Во-первых, хотя бы из-за низкой частоты ШИМ.
Если камешек работает на 20 МГц (максимум для AVR), частота 16-битного ШИМа будет 305 Гц. Соответственно, нужен будет фильтр высокого
порядка, чтобы ослабить пульсации на -40...-60 дБ. И время установления
фильтра (скорость перехода между нотами) будет большим, десятки
миллисекунд.
Во-вторых, сейчас грубо прикинем разрешение в лучшем случае.
В октаве 1200 центов. В 7-ми октавах 8400 центов. При нужном шаге в 0.1 цент(даже не говоря об экспо-не экспо) нужно иметь по меньшей мере 84000
разных кодов в ШИМ. Это уже 17 бит :-)
-
Экспоконвертор есть в осцилляторе 1в/октава. взял схемку из memorymoog (задолбался с минимуговым... осциллогрофоп каждую ногу осциллятором прощупал, вроде всё как должно быть, только не генерирует. посылаю внешнюю пилу все формы синтезирует норм :( ) там два компаратора и 4 операционника и термокомпенсация сделана из транзисторной сборки и там как раз осцилляторы 0..10в выход.
Я так грубо прикинул, если брать 12 бит цап - 4096 уровней, то получаем ~40 уровней между двумя соседними тонами, что есть очень мало. Если взять 16 бит - 65536 уровней, то получаем ~ 650 уровней на тон, что составляет 0.15 цента, с диапозоном 8 октав.
только я незнаю где раздобыть 3 дешовых цап бить на 16-20), да ещё лучше чтоб в дипе были, хотя смд тоже подойдёт (ты меня убедил :D )
или может быть есть какой-нить вариант по сборке 1 24бит цап из 2х 12бит?
З.Ы.
кстати можешь сразу написать как фильтр как снова перепаять на питание +-15в и управление 0..+10в, чтоб я тебя больше с ним не допекал :wacko:
:wacko: :blink: :wacko: извини плз, если задолбал, сам уже задолбался...
-
www.analog.com и выбирать, а затем на www.efind.ru - смотреть цены и доставабельность.
Можно попробовать объединить выходы двух 12-битных ЦАП
на суммирующем операционнике через резисторы R и R/4096. Нужной точности не получишь, но разрядность будет высокая. Можно посмотреть и в сторону
аудио сигма-дельта ЦАП, они недорогие и с хорошей разрядностью.
Пересчет на +/-15В как-нибудь позже, сейчас лень. В принципе, там все просто. Как работает сумматор на основе инвертирующего ОУ, представляешь ?
-
Diz, спасибо, я понимаю, просто мне сложно к сумматору нужные коэффициенты подобрать, т.к. так ещё до конца не врубился какое отношение к.у. 13700 к подаваемого на перемножающий вход напряжению...
з.ы. мне высокая точность не к чему, нухно питьчем и детьюном руоить с большой различаемостью,
-
Ну, там в даташите должен быть график крутизны в зависимости от управляющего тока gm = Iвых/Uвх, по нему можно посчитать.
Просмотрел, что CV = 0..10. Редактирую.
R30, R14 - 12k.
и вообще RV3 уменьшить до 10-33к, дабы смещение было стабильнее.
Ограничивающие резисторы R46, R48, R28 можно оставить как в оригинале.
-
Diz, спасибо что ты есть, без тебя бы хрен разобрался.
Есть то есть, то симулятор мне совсем не то даёт(
кстати симулировал с 2мя па2 и операционником 1k и 4М TL074, результат меня более чем устроил
-
да и кстати если мультиплексировать 24 бит цап на 3 выхода, используя устройство выборки хранения на TL74x и емкостью 10n, в точности сильно проиграю? и с какой частотой ячейки лучше перебирать?
-
Шумы еще учти. Скажем, диапазон 5В, 12-битный ЦАП - один дискрет 1.2 мВ.
Сможешь обеспечить настолько чистую землю ? Не говоря уже про большую битность :-)
У TL074 может быть ошибка смещения напряжения до 6-10 мВ, прикидывай
сам. Ячейки перебирать с такой частотой, чтобы задержки были незаметны. 1-5 мс на обход всех ячеек.
-
а что ты можешь посоветовать? нужно управлять 3мя осцилляторами с частотой ~1кгц чтоб можно было примесить к ним лфо.
-
Поставить хороший 12-битный ЦАП, затем sample&hold на нужные каналы - pitch, fine tune, pitchbend, cutoff, resonance, vca ... Pitch, tune, pitchbend просуммировать на операционнике. При необходимости немного корректировать CV в прошивке по табличке или полиному.
-
Да, помоему это единственно верное решение! Я уже просчитывал этот вариант, правда он накладывает много ограничений. жаль конечно, что других нет.
З.Ы. Ты кстати не смотрел ещё по поводу фильтра?
-
Кстати если интересно, могу выложить схемку от меморимуга. В эмуляторе запускается, всё норм.
-
Ну, можно и отдельные ЦАП-ы на каждый канал поставить - тебе решать :-)
А что с фильтром ? Напомни.
Да, было бы интересно завести square-выход осциллятора обратно в
контроллер на ножку таймера/счетчика. Тогда станет возможной автоматическая калибровка. Нажали кнопочку на панели, синт приглушил VCA, пробежался по опорным нотам, померял частоту, подобрал числа/коэффициенты и записал в память.
-
З.Ы.
кстати можешь сразу написать как фильтр как снова перепаять на питание +-15в и управление 0..+10в, чтоб я тебя больше с ним не допекал
извини плз, если задолбал, сам уже задолбался...
Diz, ты прям мои мысли читаешь на счёт самоподстройки)
Кстати у меня появилась интересная на мой взгляд мысля:
Я собираюсь заменить в осцилляторе 3080 на 13700
И половина микросхемы будет неиспользована.
В муге PWM сделана тоько на квадратную форму, которая получается путём сравнения на компараторе пилы.
А что если сначала инвертировать пилу, затем включить управляемыи усилитель на второй половине 13700 с к.у. от 1 до например 10 в режиме клиппинга, и на выходе поставить инвертор. Выйдет PWM пилы, а из неё уже можно получить все остальные формы.
З.Ы.
Помоги пожалуйста разобраться с 13700. Весь датащит перетыл, так и не воткнул, по какил формулам её просчитывать (возможно я просто не понимаю какая из них к чему относится) :unsure:
-
Про фильтр ответил выше, смотри внимательнее.
Про пилу - в принципе, можно попробовать. Внимательно не вникал.
Я бы лучше использовал вторую половину LM-ки для другого осциллятора
или VCA, VCF.
С LM13700 для прикидочных расчетов все просто. В даташите есть
график крутизны gm = Iвых/Uвх в зависимости от управляющего тока.
Если делаешь VCA, то Iвых преобразуется в Uвых резистором
к земле: Uвых = Iвых*Rвых. Так можно найти отношение Uвых/Uвх = f(Iabc).
А дальше можно погонять в симуляторе - у меня в Microcap все сходилось с
реальностью :-)
-
Я просто хочу сделать их независимыми (каждый на своей платке) сейчас собрал в NI Multisim модуляция работает. пила приходит к - входу 13700, к + входу 10в, между выходом и 10в ограничитель на диоде, и далее инвертор со сдвигом 10в. получилась PWM пила. :) при к.у.=1, PW=100%, при 2 50% сделал до 30%, дальше к 13700 немогу нужный вход подобрать, чтоб за рамки не выходил... :blink: там я насколько понял нужен экспоконвертор?
-
Если я правильно понял, пила доводится до ограничения и превращается в трапецию (остаток периода держится на уровне ограничения) ?
Схемка бы не помешала, хотя бы скриншот из сима.
-
Если я правильно понял, пила доводится до ограничения и превращается в трапецию (остаток периода держится на уровне ограничения) ?
Схемка бы не помешала, хотя бы скриншот из сима.
Вот
Оранжевый - после ограничителя, фиолетовый после инвертора.
-
Посимил на скорую руку (использовал ограничение самого операционника).
То, что нужен какой-то степенной закон для CV, ясно даже геометрически :-)
-
Хочу поделиться радостью - почти смонтировал аналоговую часть платы (цифру смонтировал раньше). По ссылкам большие фото.
1 (http://i289.photobucket.com/albums/ll203/wig_of_the_pig/IMG_3006.jpg)
2 (http://i289.photobucket.com/albums/ll203/wig_of_the_pig/IMG_3007.jpg)
3 (http://i289.photobucket.com/albums/ll203/wig_of_the_pig/IMG_3008.jpg)
4 (http://i289.photobucket.com/albums/ll203/wig_of_the_pig/IMG_3009.jpg)
-
Круто! я может чтото пропустил я правильно понимаю что на этой плате посути весь синт с осцом и фильтром?
Хочу такое же собрать ) а если не секрет во сколько о обошлись платы?
-
Ага, на этой плате почти все. На второй плате будут всякие кнопки, энкодеры, светодиоды, экранчик и контроллер для их обработки.
Цена плат не секрет. Три таких платы, вместе с подготовкой производства, изготовлением за 3 дня (в реальности 5) и доставкой - 4500 р.
Из них 40$ за подготовку, 10.5$ за изготовление каждого квадратного дециметра.
-
мне интересно а не дешевле будет платы китае заказать? есть сайты принимают заказы просто онлайн.. можно выбрать модную расцветку лака.. ))
Скажи чесно Diz.. будет ли возможность самостоятельно собрать аппарат ? )) кж больно всё фирменно выглядит )
И на счёт энкодеров.. я бы подумал. может стоит поставить всётаки резисторы? а енкодер поставить листать меню на екранчике.. имхо резистор для того же кутоффа както природнее.. тем более мода на енкодеры проходит.. вот клавия в новом синте резисторы ставит.
-
Diz, открывай фирму)
-
В китае имеет смысл при серии, а прототип "хочу через три дня" проще у нас. Тем более ДПП и простенькая. А так китай рулит, там же и монтаж можно заказывать - получается сильно дешевле :-)
Пока ничего не могу обещать насчет Kit-а. В основном связано с тем, что
не хочу открывать прошивку - там довольно много побочного кода и своих
наработок, кочующих из проекта в проект, которые отдавать не собираюсь. Возможно, будет просто hex.
С управлением так. Четыре энкодера + 4 потенциометра.
Энкодерами рулить отображаемые в данный момент на ЖК параметры.
Например, находимся на странице Filter - энкодеры управляют Cutoff, Resonance, Env, Keyb. А потенциометры можно назначить на любые параметры и сохранить назначение для каждого пресета. Скажем, пот 1 в пресете Funky Bass (хех) рулит cutoff, а в пресете Evil PWM - частоту LFO.
-
Cистема как в Nord Modular)
-
Кто-нибудь использовал AD420 в качесве миди-св?
-
Выглядит интересным. Правда, токовый выход - но это нормально, все равно масштабировать до нужного диапазона CV. Как он по цене ?
-
AD420 ~800р в митраконе. + OP07 -50р в положительном включении с к.у.=2. ADG506 мультиплексор и 8 LF412 -50р (low drift, low offset) в качестве ячеекек. или может какие другие ОУ посоветуете?
З.Ы. Что за косяки с форумом уже второй день? Еле грузится да и то с третьего раза...(
-
да, ещё не подскажете набор аналоговых ключей с SPI входом типа MAX335?
-
Я думаю, что LF подойдут для такого применения. Даже TL082...TL084 сгодятся,
т.к. все равно стоит компенсировать смещение в софте. А так - можно посмотреть на AD712, например.
-
AD712 конечно отличная штука, но очень уж денежно выйдет 8 штук ставить(.
Кстати такой ещё вопрос. Сколько максимально устройств типа MAX335 можно повесить на SPI порт Меги? или всё-же нужно использовать буфферы? если нужно то какие посоветуете?
-
Если не задирать клок SPI, то очень много :-)
Забавно, в даташите указана только минимальная Fclk - опечатка ?
-
Если не задирать клок SPI, то очень много :-)
Забавно, в даташите указана только минимальная Fclk - опечатка ?
судя повсему да. т.к. max395 - её прямой замены 2.1МГц указан как максимум.
-
Diz, а ты не мог бы вот этот кусочек прогнать в смуляторе для проверки его работоспособности, а то в моём CA3080 криво прописана?
-
У меня в симуляторе нет модели CA3080.
-
Жалко, я даже незнаю каким симулятором её проверить.
-
Симь LM13700 - они внутри одинаковые, не считая Дарлингтон-буфера.
-
Симь LM13700 - они внутри одинаковые, не считая Дарлингтон-буфера.
c lm13700 всё отсимил, всё работает как часы- и AM и PWM. только вот хочу для начала собрать один оригинальный муговский осциллятор (без своих добавок), а LM13700 на половину использовать жалко(...
-
Собери на второй половине VCA :-)
-
куда мне столько VCA?)))))
вобще в иделале должно выйти типа такого)
-
Внушает ! А как будешь управлять уровнями микшера - VCA, цифровые потенциометры, LDR ... ? Или микшер - именно коммутатор, без управления
громкостью ?
-
всё это дело будет в рековой стойке 1U и управляться с PC (редактироваться и заливаться в синт пресеты) по типу как это сделано в Норд Модуляре. управлять всем этим делом буду с меги644Р (на ней 2 uart один на usb-usart другой midi). на spi повешу 16 канальный 16 битный CV контроллер и коммутатор на аналоговых ключах. На выходе каждого осциллятора и нойза будет стоять VCA. далее всё это дело будет в коммутаторе переключаться и суммироваться со выходами CV. Да кстати Сutoff и Emphasis тоже подключу к коммутатору.
-
Мощно получается. А lfo и т.д. - в софте ? И зачем usb-uart ?
-
Мощно получается. А lfo и т.д. - в софте ? И зачем usb-uart ?
Да, lfo, арпеджиатор, секвенсор, глайд софтверные, т.к. вопервых для того чтоб легче было синхронизировать по midi clock, вовторых проще добавлять коэфиценты к управляющим сигналам внутри программы, а не собирать отдельное устройство и коммутировать его ко всем 13СV. ))
на счёт usb-usart - вопервых он собран на FT232RL и имеет уже готовые фирменные дрова на все версии винды, ОС Х B) и линус. определяется и работает как обычный ком порт), а вовторы так значительно проще. :D
-
С FTDI проще, не спорю, хотя сам давно не применяю. Но таки не ясно, зачем нужен uart. Рулить с компа с помощью самописной программы и своего протокола ? Вроде уже есть честный миди-вход. А использовать ftdi как
usb-миди напрямую не выйдет, они умеют лишь cdc.
Не думал микшировать выходы осцилляторов через цифровые потенциометры ?
Если не нужно ADSR на каждый осциллятор, а хватит фиксированной громкости, то вполне себе вариант. Корпусов меньше и проще.
-
Просто был у меня Nord Modular G2 Engine. С виду так просто коробочка красная небольшая. С переди кнопка питания и две лампочки (миди и питание). С задней стороны 3 Миди, юсб штук 10 джеков.
Работало всё это так. Цепляешь ты всё это дело к ноуту по юсб, по миди цепляешь клаву, на ноуте програмка, в ней собираешь себе нужные модули, вешаешь понравившиеся крутилки на CC клавы, заливаешь этот пресет в синт и уже юзаешь без ноута на концерте). По юсб хочу сделать свой протокол, чтоб вытворять такие-же вещи.)) http://art-tech.ru/catalog.asp?mode=showmodel&id=4125 (http://art-tech.ru/catalog.asp?mode=showmodel&id=4125)
Я ещё хочу сделать для него VSTi плагин, чтоб события клавиатуры и автоматизация отправлялась на синт по этому моему юсб протоколу, а сигнал полученный со входа звуковухи назад в секвенсор)
ADSR обзщий на выходе. На счёт цифровых потенциометров думал, но что-то не нашёл по нормальной цене(. их там много выйдет - на один выход очциллятора по 13 входов. Например если ставить один VCA на выход и 2 ключа на MAX335 то довольно просто выходит- до 16 каналов и с высокой точностью подстройки. с другой стороны с цифровыми потенциометрами можно каждый посыл рулить отдельно.) Если подскажешь точные (хотябы 10 бит) и недорогие, то буду очень признателен)
-
Понятно, с nord modular знаком.
Себе в синт поставил четырехканальные AD5204, 130р. в терре - 32р. за канал, имхо нормально. Они 8-битные, рулятся по SPI. Чтобы получить логарифмическую характеристику, повесил нагрузочный резистор от движка
на землю. В таком варианте 8 бит хватает с головой.
-
Понятно, с nord modular знаком.
Себе в синт поставил четырехканальные AD5204, 130р. в терре - 32р. за канал, имхо нормально. Они 8-битные, рулятся по SPI. Чтобы получить логарифмическую характеристику, повесил нагрузочный резистор от движка
на землю. В таком варианте 8 бит хватает с головой.
Интересно, вечером посмотрю)
-
посмотрел AD5204. Там управление 11бит. Если я на неё буду пакеты по 16бит с 5 нулями в старших разрядах отправлять, она их будет понимать?
кстати я вот думаю может делей на PT2399 на выход прицепить?
-
В faq-е AD есть такой вопрос про 12-битные.
For a digital potentiometer that requires 12-bit word length, how can I control with only 8-bit word length from my micro?
You need to issue a 2 byte word. The first 4 MSB in the first byte are ignored.
Думаю, с 11-битными все так же - данные защелкиваются по фронту CS.
У меня в lpc SPI можно настроить в 11-битный режим, так что вопрос не возникал. Если надо, могу проверить 16-битный режим.
Делей - нафих, и без делея хватит работы :-)
-
AVR такой режим передачи не поддерживает... конечно можно завести SCK на внешнее прерывание, но это придётся за одну передачу по 5 раз входить и выходить из прерывания.... а с армами в униварситете не научили работать(((
А делей так просто прикинул - хочу повторить встшку Moog modular V)
-
впринципе в теории почти всё готово (нехватает
1. термостабильного +-15В, +-10mВ погрешность БП.
2. потянет ли мега такие расчёты?
3. надо найти свободное время и поехать на митино.
на практике медленнее, ибо как стало модно сейчас говорить - кризис :angry:.
-
16-битный режим AD5204 проверю сегодня, самому стало интересно.
Зачем такой злой БП ?
Я пробовал на меге. 8МГц системный клок, работало 3 LFO и 3 ADSR с табличным воспроизведением (DDS). Фазовые аккумуляторы 16 битные,
обсчет новых значений каждую 1ms. Плюс прием миди, глайд,
управление внешними осцилляторами по i2c. Скорости хватило бы еще на пяток LFO и ADSR точно :-) А вот расчет матрицы модуляции с кучей 24-битных
умножений/сложений изрядно тормозил процесс на 8-битнике. Если у тебя
варианты коммутации модуляции фиксированные,то мега однозначно потянет.
-
Блок питания для осцилляторов, там родной муговский на 10mV стоит. Не подскажешь ещё где можно нарыть транс на 2*(27-24В) и 12-9В? было бы супер чтоб в виде врешнего адаптера (типа как на термен воксах муговских).
У меня пока в наличии есть мега162 т.к. (644P на заказ только достать можно), разогнанная до 24 MHz. будет считаться 1 LFO, 2 ADSR, Glide, приём и обработка миди, 16 CV. модуляция будет только по лфо. Я вот думаю, выйдет ли всё это в 162 затолкать, или всётаки нужно заказывать 644Р?
Да, вот ещё интересно, ячейки хранения CV не успеют за 1mc сильно расстроиться?
-
С трансом не подскажу. Можно набрать из нескольких типа ТПК,
можно намотать на заказ. Я бы вообще импульсники поставил :-)
А куда такие огромные напряжения ? Не хватит просто двух шин +15/-15 ?
Разгонять - имхо партизанство. Лучше уж взять проц помощнее
или несколько процов.
Одного LFO не мало будет ? Сразу захочется и вибрато на осциллятор,
и плавный PWM, и чуть двигать частоту фильтра ... да еще и с разными формами волны.
Проц возьми с запасом - все таки не серийное изделие, к чему лишние трудности ?
Про ячейки CV смотри утечки в даташите на конденсатор, ключи, операционник (input bias current).
PS Проверил - AD5204 отлично работает с 16-битными командами, игнорит старшие биты.
-
отлично, спасибо. Можно взять арм, но мне тогда ещё втыкать придётся как он работает) ни разу с ними дела не имел... А на счёт вибратто и пвм и т.д. есть три аналоговых осциллятора, которые могут работать ка лфо.) А софтверный лфо для синхронизации с миди клок по большому счёту)
На счёт бп - я имел в виду переменку. Если есть схемка хорошего импульсника - я был бы очень признателет)
-
Впрочем, софтовых LFO сможешь добавить потом сколько угодно - железо не изменится. И софтовые LFO ничуть не хуже - в том же Prophet 5 LFO и ADSR были софтовые.
С питанием все равно не понял. Какие нужны конечные питания в схеме ?
+15/-15/+5(+3.3) ?
-
я не спорю что они хуже, просто хочу делать перекрёстную модуляцию осцилляторов, поэтому всёравно придётся делать коммутацию с выхода на входы)
+-15, +5, +10
Я там в теме фильтр переделал - можешь глянуть плз?
-
Если токи небольшие, можешь вот так сделать, как на аттаче.
На вход переменка, >= 15В, +10В стабилизатором из +15, +5В стабилизатором из +10В.
Схему посмотрю позже.
-
Впринципе, если ёмкости большие воткнуть, то может и прокатит)
-
Кстати интересно, а делал ли кто-нибудь FM синтезатор на меге?
-
Только учти ток через большие емкости - он будет немаленький,
при этом нормальные стабилизаторы хорошо давят 50/100Гц пульсации.
Такое питание встречал, например, в рековых железках от Alesis.
Причем с неслабым потребление по цифровым 5В - до 300 мА (включая подсветку LCD).
-
Diz, сподвиг ты меня на освоение армов на свою голову)))) теперь у меня к тебе ряд вопросов...
Какие принципиальные в программировании армов в отличае от авров (пишу на С)?
Какой компилятор лучше использовать, желательно с шаблонами (типа Codevision)?
Чем AT91SAM7 отличается от LPC?
Как писать юсб дрова под арм?
З.Ы.
Можешь посоветовать какую нибудь простейшую схемку с армом, чтоб с ним поиграться, попрограммить, воткуть как он вобще работает.
-
Хехе, процесс изучения армов может затянуться и отложить сборку синта
на неопределенный срок :-)
Принципиальных отличий нет, и то и это микроконтроллеры. А в частностях - сколько угодно. Придется пару страниц написать и на ассемблере (стартап).
И забыть и 8-битных привычках - вроде повсеместного использования unsigned char.
Компилятор - любой доступный. Я пользую GCC по разным причинам
(в том числе и религиозным :-), шаблоны для настройки периферии
и генерации стартапа можешь поискать в uVision от Keil.
Sam7 от Lpc отличается почти всем, то-есть периферией и контроллером прерываний :-) Lpc пошустрее за счет хорошего memory accelerator модуля.
USB-стек стоит взять готовый и заточить под свою задачу. Я использую
основательно перепаханный lpcusb.
Для освоения самый простой вариант это купить стартер на www.starterkit.ru
и накопать книжку "Микроконтроллеры ARM7. Семейство LPC2000 компании Philips Вводный курс" Тревора Мартина.
-
Синтезаторостроение пока встало в связи с нехваткой финансов(. Вот думал пока притарить какой-нибудь простенький контроллер, развести SMD-DIP переходник с кварцем и буфферами 5V на борту, и поковырять его пока время немного есть...
-
Посмотрел платки. Может для линукса сразу взять))))))
-
Diz, можешь подсказать как реализовать ф-цию синхронизации программного LFO по миди клок, не используя деления (только сдвиги)? :unsure:
Параметры просчитываются каждую миллисекунду (по прерыванию счётчика), амплитуда выражается числом от 0 до 65535.
...Разумеется на С для меги.
-
Без деления может не получиться.
Как реализовано LFO - как DDS (фазовый аккумулятор + вывод по таблице) ?
Как это сделано у меня. Пересчет параметров (в том числе нового значения LFO) каждую миллисекунду. Есть отдельный высокоскоростной таймер (f=200 kHz), одна из его функций измерять время между приходами соседних миди клоков. Измеренные тики сглаживаются простым фильтром типа скользящего среднего (так как миди-клок может и будет плавать).
Затем смотрится, на какой позиции находится LFO - сколько осталось до окончания цикла. И сколько миди-клоков должно придти до окончания цикла.
И определяется новый инкремент для фазового аккумулятора LFO так, чтобы миди клок и LFO засинхронизировались ровно через цикл LFO.
В итоге получается очень мягкая синхронизация, как будто музыкант догоняет или подтормаживает свою партию так, чтобы со следующего такта вступить со всеми одновременно. А четкая синхронизация на каждый миди-клок звучит очень грубо с большим джиттером, не рекомендую.
В коде есть одно целочисленное деление.
-
а какого порядка? интересно, сколько циклов на него потратит 8 бит AVR ядро?
И зачем такая высокая ч-та? 1кгц не хватит?
-
В принципе, хватит - но так исторически сложилось.
Попробую прикинуть.
За один такт нам приходит 96 клоков. Будем считать, что предельная частота
клоков 1 кГц/2 = 500 Гц, затем вылезает ошибка. Частота полного такта 500/96 = 5.2 Гц, частота появления четвертей 5.2 * 4 = 20.8 Гц. Это 20.8 * 60 = 1248 bpm :-) При таком темпе и быстрее начнет появляться ошибка измерения в 1/96 ноту.
Нигде не ошибся ?
О делении.
В первом приближении делимое = разрядность фазового аккумулятора * ( частота измерительного таймера / частота пересчета LFO).
Делитель:число насчитанных измерительных тиков * максимальный множитель синхронизации (у меня два такта, 96*2 = 192).
Максимальное число изм. тиков можно определить через мин. bpm.
Скажем, минимум 20 bpm. Это 20 четвертей в минуту, 20/4*96/60 = 8 миди-клоков в секунду, 8 Гц. Максимальное число тиков 1 кГц/8 Гц = 125.
-
Вроде всё правильно. это выходит порядка 1000 тактов на одну операцию деления 16 разрядном аккумуляторе? :blink:
скоро зарплатэ) вот подумал, а можно ли заменить ca3046 на 198нт1 в экспоконверторе осциллятора? там на ней ещё термостабилизация сделана... схемка там ниже лежит.
-
да, и не знаешь где можно добыть AD5206BN, их даже на заказ найти не могу...
-
Если 1000 тактов, то нормально - скажем, при системном клоке 16 МГц это всего 62 мкс. Можно попробовать ограничить число возможных bpm,
округлять к ближайшему, заменить деление умножением+сдвигом и
свести множители в таблицу.
AD5206 не знаю. Чем AD5204 не устраивают ? Вполне доступны.
-
в 5206 6 потенциометров. ставить 2 по 4 не хочется(
а что насчёт 198нт1?
на счёт таблицы - я так делал в цифровых осцилляторах - слишком много памяти кушает)
-
Думаю, лучше поставить то, что можно достать. Цена так для несерийного изделия вообще не критична. И с разводкой чуть проще - можно поставить
каждый корпус поближе к сигналу. Если получатся неиспользуемые каналы, то им тоже найдется применение - подстройка/калибровка фильтра, например.
С 198нт1 не знаком.
1-2кб - разве много ? :-)
-
ну если учесть что там было всего обин кб SRAM то да))))
-
А RAM-то зачем ? Все таблицы во флэш !
-
Накопал такую микросхему, она использовалась в старых синтах. Интересно, а что-нибудь типа неё сейчас выпускают?
на счёт флэша- тогда он был забит банками под завязку(, но впринципе сейчас банков то не будет)
-
Сомневаюсь. Также как и микросхемы фильтров и т.д.
Каким должен быть динамический диапазон VCA, кто сталкивался ?
Понятно, что в нуле делаем максимальное подавление, а дальше, в рабочей области ? У меня экспоненциальная зависимость для VCA и получается не очень хороший эффект. Скажем, если сделать плавную атаку на ADSR, значительную часть времени ничего не слышно - подползаем к -50дБ. А вот затем довольно естественно выходим к максимуму.
При линейной зависимости, ясное дело, эффект обратный - быстрое нарастание и долгое малозаметное набирание последних 6 дБ.
Попробовать степенную зависимость типа x^3, x^4 ?
-
Интересная тут у вас тема, разрешите поучаствовать.
Для Diz
Если я правильно понял вопрос, то вот мой ответ (совет):
Для того, чтобы было равномерное на слух регулирование, VCA должен иметь управление вида dB/V. Т.е. при каком-то линейном приросте управляющего U получим равномерный в дБ, а, значит, и на слух, прирост громкости. Такие VCA широко применяются в студийных приборах динамической обработки. Серия THAT218х - самое то. На них есть пару проектов компрессоров на этом форуме. Раньше это была серия THAT215х (2150, 2151, 2155, 2159) - тоже хорошие, их можно найти в старом оборудовании, начиная от примочек БОСС и ....
Если их применять, то ADSR-генераторы должны вырабатывать линейно изменяющиеся сигналы. Так будет намного проще получить плавное равномерное регулирование в очень широком диапазоне, т.к. эти чипы обеспечивают точную децибельную хар-ку по управляющему входу. Плюс к этому - малые шумы.
У меня экспоненциальная зависимость для VCA и получается не очень хороший эффект
Возможно, VCA по управляющему входу нелинейный. Возможно, у него есть какая-то начальная "зона нечувствительности". Кстати, по какой схеме он собран? И точно ли соблюдается экспоненциальный закон упр. сигнала в широком диапазоне?
Как вариант, при линейных сигналах управления и линейном VCA (например, перемножитель или ОТА типа 3080, 13700) необходимо собрать конвертор управляющего напряжения, чтобы получить нужную функцию управления.
Каким должен быть динамический диапазон VCA, кто сталкивался ?
Чем шире, тем лучше, учитывая насыщенный синтюковый "исходник", никак не меньше 60-70дБ. Чипы THAT обеспечат его с большим запасом. Это еще одно их преимущество.
Примерно так... Удачи!
-
You are welcome :-)
Все так, LM13700, линейные ADSR и экспоконвертор. Смотрел в спектралабе,
нарастает как надо, линейно в логарифмическом масштабе. А вот на слух
что-то не так. Возможно, ухо привыкло к укомпрешенному звучанию с динамикой в 6 дБ, хех ?
Вот тут, кстати, тоже упоминается подобный эффект (Theory and Techniques of Electronic Music by Miller Puckette):
http://crca.ucsd.edu/~msp/techniques/lates...tml/node60.html (http://crca.ucsd.edu/~msp/techniques/latest/book-html/node60.html)
-
А фиг его знает, товарищ майор! В своих экспериментах (гитарные синтезаторы) я не сталкивался с такой проблемой. Там, видимо, попроще с этим. Может, надо что-то делать с кривой управления (начальный скачок, что ли?). Ну, не компрессировать же синт, в конце-концов.
Возможно, ухо привыкло к укомпрешенному звучанию с динамикой в 6 дБ, хех ?
Ваша правда, есть такая всеобщая тенденция - ужимать все подряд.
-
Интересно, а что стоит в Minimoog Voyager? не думаю что там всё на операционниках... кто нибуд кстати видел от него сервис мануал?
-
Думаю так и сделать, начальный скачок. В нуле максимальное подавление,
затем 1/8 диапазона подъем линейно до -50dB, а затем уже экспонента.
Впрочем, попробую выложить вечером сэмпл для обсуждения - может, не так все и страшно ?
Попробовал применить ADSR к регулятору гейна на цифровом потенциометре (256 позиций, с движка на землю нагрузочный резистор Rpot/6 для имитации логарифма). Результат приятно удивил - ступенек (zipper noise) на слух не заметно.
Если дело дойдет до следующей ревизии железа, откажусь полностью
от OTA (LM13700) и заменю на цифропоты. Плюс аналоговые осцилляторы
на FPGA/CPLD для уменьшения алиасинга, хех.
EternalEngine, а этот муг какого года ? Современный ?
PS Гитарные синтезаторы тоже было бы очень интересно обсудить, наверное
в другой теме. Немного копал в этом направлении.
-
Или Prophet 08 тоже интересно посмотреть что внутри...
http://www.arttechnology.ru/ourcatalog.asp...showmodel&id=40 (http://www.arttechnology.ru/ourcatalog.asp?mode=showmodel&id=40)
http://arttechnology.ru/catalog.asp?mode=showmodel&id=8566 (http://arttechnology.ru/catalog.asp?mode=showmodel&id=8566)
насчёт VCA может вот этот поможет http://www.analog.com/static/imported-file...ets/SSM2164.pdf (http://www.analog.com/static/imported-files/data_sheets/SSM2164.pdf)
-
По поводу SSM2164. У нее врожденный порок сердца - она при ослаблении 30 с чем-то дБ добавляет к сигналу какой-то мерзкий острый пик. Сам не проверял, это мне рассказал один мой знакомый - отличный инженер, автор нескольких хороших публикаций на тему регулирования. Говорит, что пробовал чипы из разных партий.
Если нужна линейная функция регулирования, то самое лучшее, что я знаю - это 525ПС3 (AD534), но дорогой, собака.
Читал эту ветку, так там был вопрос про управление 13700. Могу посоветовать филипсовский даташит на NE5517(тот же самый 13600/13700) - там самое подробное описание на эту тему.
-
да, 525ПС3 50р стоит вроде сейчас, и шумит на порядок меньше чем любой ОТА)
За NE5517 спасибо, а то методом научного тыка всё делал.
VCF, VCO
вот кстати как работало всё это дело
-
Спасибо за ответы, покопаю. С сэмплом пока откладывается на завтра.
Внутри Prophet 08, насколько я знаю, тоже самое, что внутри Poly Evolver
(только каналов поболее).
http://www.flickr.com/photos/matrixsynth/385021623/ (http://www.flickr.com/photos/matrixsynth/385021623/)
А внутри Poly Evolver четыре Evolver-а:
http://www.flickr.com/photos/13642135@N02/1392903418 (http://www.flickr.com/photos/13642135@N02/1392903418)
Как видно, стоит dsPIC для управления (и создания CV ?), недорогой
речевой DSP ADSP-2191 от Analog Devices, какой-то многоканальный
кодек от AD. На выходе две микросхемки с маркировкой DSI - аналоговые фильтры, что-то изготовленное на заказ для Дейва либо перемаркированное.
Осцилляторы, насколько понимаю, полностью цифровые. Микс осцилляторов выводится кодеком на фильтр, после чего снова заводится в цифру для
постэффектов и снова выводится в аналог :-)
PS Вопрос к общественности. Как лучше имитировать легкую нестабильность
питча аналоговых осцилляторов ? Подозреваю, что сглаженным рандомным
LFO. А вот уплывать они должны в Гц или в центах ? Иными словами,
какая расстройка характерна - относительная или абсолютная (вне зависимости от ноты).
-
думаю, нелинейность по диапазону клавиатуры наиболее близко будет к реаланалогу. причем лучше сделать несколько вариантов "расстройки".
-
я дуаю в центах, т.к. расстройка и шумы в настройке происходят в основном в экспоконверторе осцилляторов.
тогда ясно почему пропхет дешевле относительно муга. в муге уверяют что осцилляторы аналоговые.
-
Нелинейность по диапазону клавиатуры - имеется в виду на каждую ноту
своя фиксированная расстройка ? Интересная идея, стоит попробовать.
В профете/эволверах тоже уверяют, что аналоговые :-) Но на плате evolvera ничего похожего не вижу.
Приложил сэмпл атаки. Амплитуда VCA модулируется во всем его диапазоне
однополярным треугольным LFO. По спектралабу динамический диапазон
получается 72дБ.
-
И что тебе не нравится?)) 0_о
-
Э ... То, что это не отдельные фейды с паузой, а треугольное LFO прямиком на VCA. Громкость поднимается до максимума, сразу опускается до минимума, снова поднимается до максимума и т.д. И половину времени - тишина,
пока мы доходим от минимального до едва слышимого уровня.
-
Нелинейность по диапазону клавиатуры - имеется в виду на каждую ноту
своя фиксированная расстройка ?
ну типа того. но с некоторой закономерностью. это если наложить на идеальную экспоненту реальную аналоговую, то некоторые участки будут аппроксимироваться очень точно, но некоторые будут разбегаться. эта разбежка и есть "монотонная расстройка". как-то так.
да, и для каждого осциллятора своя функция расстройки.
-
Вопрос по передаче миди. сделал на mega8 простенький миди контроллер на 6 крутилок. какая оптимальная скорость сканирования ацп для миди?
-
Имеется в виду частота сэмплирования потенциометров на миди-контроллере ?
-
Уменьшил динамический диапазон VCA. При нулевой громкости максимальная аттенюация, затем скачок и экспоненциальный рост до максимума.
Результат в приложенном сэмпле, можно сравнить с прошлым вариантом (http://diyfactory.ru/forum/index.php?act=Attach&type=post&id=7751).
Сравнение не совсем корректное, поскольку частота LFO в новом сэмпле получилась выше, но все равно, эффект заметен.
-
Имеется в виду частота сэмплирования потенциометров на миди-контроллере ?
Да. Я незнаю таких (наверно внегласных) стандартов. Нужно сделать так чтоб промежуток времяни СС команд был достаточным для плавной регулировки как минимум двух параметров (например частота среза+резонанс) одновременно.
я использовал частоту клоков 500Гц. потенциометры перебираются последовательно от 1 по 6. т.е.
32150бод / (10бит*3)=1071пакет/c / 2 = 500Гц
500/6=83Гц.
запустил на ноутбуке вст Минимуг - всё работает нормально. включаю кубэйз кручу катофф - всё норм, начинаю крутить резонанс - работает только катофф, пока не отпущу катофф резонанс не крутится. причём есть некоторая задержка ~40-60мс (в ASIO дровах стоит 21мс). если крутить с фирменной миди клавы - всё нормаьно.
-
ИМХО 83Гц более, чем достаточно.
В кубейсе (по-крайней мере SX1) была какая-то заморочка с типом миди драйвера. При одном получался джиттер более 10 мс, при другом все ок.
Подробностей уже не вспомню.
С неработающим контроллером похоже на какой-то софтовый косяк. Поставь
midiox для просмотра миди-траффика - может помочь.
-
ну вот мне и кажется что 83гц слишком более чем достаточно. юзаю M-AUDIO MIDISPORT 1x1. написал вст хост на делфи - все пакеты приходят как нужно. на сколько можно уменьшить частоту сканирования чтоб это не сказывалось на плавности руления)?
-
Можно вообще сэмплировать довольно медленно, но интерполировать
между отсчетами и отправлять миди команды часто. Просто повесить на
каждый канал простенький цифровой фильтр 1-го порядка.
Как только отсчеты на выходе фильтра перестали меняться, перестаем отправлять миди-команды. Оно также немного поможет уменьшить
дребезг, когда движок потенциометра встал ровно между соседними дискретами.
-
Можно вообще сэмплировать довольно медленно, но интерполировать
между отсчетами и отправлять миди команды часто. Просто повесить на
каждый канал простенький цифровой фильтр 1-го порядка.
Как только отсчеты на выходе фильтра перестали меняться, перестаем отправлять миди-команды. Оно также немного поможет уменьшить
дребезг, когда движок потенциометра встал ровно между соседними дискретами.
Спасибо, Diz. у меня возник вопрос по ad5204. какое напряжение они могут держать? в датащите написано voltage range 5.5v. смогу ли я коммутировать сигналы в 10в?
-
Нет, но никто не мешает поставить делитель.
-
ну я вот тоже к этому склоняюсь, правда слишком замороченная схема коммутатора полчается. нужно скоммутировать 4 выхода на 12 входов. это нужно будет на каждый потенциометр делать повторитель на ОУ потом сумматор на каждый из 12 каналов :blink: ... мого железа( может есть какой-то более простой способ?
-
Без схемы трудно решить. Как вариант, избавиться от повторителей.
В любом случае, будет проще чем с кучей VCA.
-
Хочется обсудить вопрос с диапазоном частот LFO.
Можно сделать от 200Гц до 0.02Гц (50с). Поскольку управляется из
цифры, то можно сделать и не линейную зависимость регулятора, и
не логарифмическую, а ту, которая максимально удобна.
Какие диапазоны более востребованы, из практики ?
Думаю сделать побольше делений на 1Гц-10Гц - вибрато,
на 0.1Гц-1Гц (10 сек-1сек) - для sweep-ов близких по длине к такту.
На 0.02Гц-1Гц отсчетов поменьше, и на 10Гц-200Гц тоже (это больше для
эффектов и псевдо fm-модуляции)
-
Хочется обсудить вопрос с диапазоном частот LFO.
Можно сделать от 200Гц до 0.02Гц (50с). Поскольку управляется из
цифры, то можно сделать и не линейную зависимость регулятора, и
не логарифмическую, а ту, которая максимально удобна.
Какие диапазоны более востребованы, из практики ?
Думаю сделать побольше делений на 1Гц-10Гц - вибрато,
на 0.1Гц-1Гц (10 сек-1сек) - для sweep-ов близких по длине к такту.
На 0.02Гц-1Гц отсчетов поменьше, и на 10Гц-200Гц тоже (это больше для
эффектов и псевдо fm-модуляции)
а можно ещё переключатель диапазона поставить...
-
можно сделать 2 регулятора: первый "диапазон", а второй - "линза" или "масштабер", чем он больше введён, тем грубее перестройка по диапазону.
-
Спасибо за советы. Подумал, и сделал так - параметр при вращении
ручки энкодера грубо меняется от 0 до 100 (0,1,2,3 ... 100). А при нажатой
ручке тонкая настройка, меняются десятые - 0.1, 0.2, 0.3
Привел к таком виду не только LFO, но и многие другие параметры, оказалось
удобно.
PS Забавный наивный сэмпл с тремя осцилляторами и полным отсутствием огибающих - http://www.sendspace.com/file/54btoh (http://www.sendspace.com/file/54btoh)
-
Оригинальная идея. круто!
З.Ы. Давайте тут (http://rghost.ru) семплы выкладывать - так удобнее.
-
вот интересный ресурс по теме http://musicfromouterspace.com/ (http://musicfromouterspace.com/)
проекты подробно описаны, ко многим есть лэйауты
-
music from outer space хороши, но там в основном традиционный аналог.
PS Сэмпл доброго и теплого басового sweep-а:
http://rghost.ru/375792 (http://rghost.ru/375792)
-
Парни а никто не рассматривал возможность создания DCO аналогичного Juno6 jx3p на таймерах http://ru.wikipedia.org/wiki/8253 (http://ru.wikipedia.org/wiki/8253) ??
Посути такой синт сможет обслужить один из массовых контроллеров PIC или AVR.. особенно когда надо ... 12 осциляторов как у JX3P..
(ранние синты роланда строились на Z80 и 8031 контроллерах)
-
вроде в маэстро на них построены DCO...
-
Осцилляторы в полисинте - мелочь по сравнению с фильтрами, огибающими
и коммутацией на каждый голос :-)
Железные таймеры, конечно, можно использовать - только тогда уже не на отдельных микросхемах городить, а ставить FPGA/CPLD.
-
конечноже FPGA/CPLD в идеале.. но если пока не шарим в плис можем и на отдельных чипах ))
-
Ребят, а не подскажете схему линейного VCA на LM13700?
-
MFOS в помощь
-
http://www.musicfromouterspace.com/analogs...newdualvca.html (http://www.musicfromouterspace.com/analogsynth/newdualvca.html)
-
DIZ а как в твоём синтезаторе реализован "трекинг" нот.. (если я правильно выражаюсь).. тоесть попросту как контроллер вычисляет нужную частоту ноты? по формуте или из таблички ?? если из таблички то как тогда организовать плавный питч??
-
DIZ а как в твоём синтезаторе реализован "трекинг" нот.. (если я правильно выражаюсь).. тоесть попросту как контроллер вычисляет нужную частоту ноты? по формуте или из таблички ?? если из таблички то как тогда организовать плавный питч??
fn = Atune + 2^(n/12) + 2^(dtune/1200)
где
fn - частота звука
Atune - частота настройки (А=440Hz)
n - номер ноты
dtune - частота растройки в центах
TAB1(n) = 2^(n/12), n={1..12}
TAB2(dtune) = 2^(dtune/1200), dtune={1..100}
100центов=1нота(полутон)
для переключения октав илпользуй сдвиг влево, если на октаву ниже, и вправо - на октаву выше (fn<<1, fn>>1)
если делать по принципу накопления фазы, то там ещё сильно упростить можно (в частности можно избавиться от деления)
-
Табличка инкрементов DDS (фазового аккумулятора) на самую нижнюю
октаву с шагом в 1 цент. Итого 1200 32-битных значений, 4.8 кБ.
Для других октав сдвигаем значение влево (умножаем на 2^n) на нужное кол-во октав.
ulong octaveNum;
for ( octaveNum = 0; Cent >= CENTS_IN_OCTAVE; Cent -= CENTS_IN_OCTAVE, octaveNum++ ); // Find octave
*oscP->incP = incTable[Cent] << octaveNum;
Если жалко памяти, то разбиваем таблицу на несколько блоков,
так, чтобы в каждом блоке диапазон значений укладывался в 8 бит
(ведь значения инкремента плавно возрастают с небольшим шагом).
-
кое что проясняется. слишком сложные формулы с делением для простых контроллеров конечно не желательно... Значит заранее расчитываем значения этой самой таблички в центах на 4.8 кБ..
Я пока смутно представляю что такое DDS.. фазовый акумулятор я так понял это значения счётчика (32 битового в данном случае) задающего время периода сигнала..?? как только он сбрасывается в 0 начинается новая фаза..
Гдето так.. я правильно мыслю?
И ещё мысли.. в JUNO использовались таймеры 8253 с 16 битными счётчиками.. я гдето читал что в связи с этим синтезатор не точно воспроизводил некоторые ноты. в связи с низким разрешением счётчиков особено на высоких октавах.
Правильно ли я понимаю что в твоём DIZ синтезаторе значение частоты задаётся в 32битных значениях а значит ошибка будет ничтожно мала.??
-
Не совсем. На каждом шаге к фазовому аккумулятору прибавляется инкремент.
Вот когда аккумулятор переполнится (и продолжит считать дальше), это и будет началом нового периода.
Если в варианте со счетчиком инкремент фиксированный, а задаем
предельное значение, то тут наоборот - предельное значение фиксированно (2^32), а управляем инкрементом.
http://caxapa.ru/lib/MyDDS.pdf (http://caxapa.ru/lib/MyDDS.pdf)
В DDS точность установки частоты одинаковая во всем диапазоне. Другое дело, что с увеличением частоты на спектре
вылезает мусор, алиасинг и прочие прелести.
-
Работа над синтом несколько приостановилась - в работе графическая библиотека, которая будет использоваться в нем (и не только).
-
Будешь использовать графический дисплей?
-
Ага. Небольшой (128x64), мононхромный, но графический :-)
Библиотеку и GUI синта, в принципе, доделал.
Сейчас решаю, как лучше сделать назначение MIDI-контроллеров для
автоматизации. Делать ли глобальную настройку, или для каждого пресета свою ? Делать ли просто менюшку с выбором контроллер->параметр, или
прикрутить MIDI Learn ? Пока в сомнениях.
-
Ага. Небольшой (128x64), мононхромный, но графический :-)
Библиотеку и GUI синта, в принципе, доделал.
Сейчас решаю, как лучше сделать назначение MIDI-контроллеров для
автоматизации. Делать ли глобальную настройку, или для каждого пресета свою ? Делать ли просто менюшку с выбором контроллер->параметр, или
прикрутить MIDI Learn ? Пока в сомнениях.
Лучше делать как в обычных VA синтах типа virus, все контроллеры намертво закрепить за Filter\ADSR и т.д, и сделать матрицу модуляции и вот там можно дополнительно 6 илиболее контроллеров назначаемыхсделать которые будут в пресет сохраняться....Кстати что с sysex? Будет ли возможность рулить по сисекс и патчи заливать?
Дисплей 240х64 удобнее и информативнее былбы, хотя и дороже. Удобно дисплей 240х64 и под ним четыре энкодера для руления, у меня так на сэмплере и грувбоксе сделано,очень удобно. Особенно ADSR рулить, там над каждым энкодером надпись Attack,Decay... и параметр в числовой форме и сразу всеми энкодерами удобно рулить).
ЗЫ А фотки GUI можно глянуть? можно даже с отладчика типа Proteus
-
Матрица модуляции и прочее давно есть. Интерфейс примерно так и
выглядит, экран, четыре параметра и под ними четыре энкодера.
Те параметры, которые сейчас на экране, энкодерами и рулятся.
На экране с adsr так и есть, энкодеры соответствуют attack/delay/sustain/release. Плюс есть четыре (?) потенциометра, которые можно назначить
на любой (почти) параметр в рамках пресета - они работают независимо
от экрана.
Я имел в виду назначение CC, чтобы рулить параметрами извне. Но
вроде тоже придумал, как оно будет - утрясаю детали. Суть такая:
есть дефолтные назначения CC, применимые ко всем пресетам.
Но в каждом пресете можно переназначить какие-то CC на другие параметры -
действует это переназначение только в рамках пресета.
Sysex не будет, не вижу нужды. Копировать/загружать патчи можно по USB -
при подключении синт виден как флешка, пресеты лежат в соответствующих
директориях. И выглядят как текстовые .ini файлы, так что можно и из блокнота подкорректировать :-)
Ни под каким Proteus-ом проект не взлетит, хехе. Интерфейс сознательно минималистичный, никакой графики - текст, линии, ничего лишнего.
Но фотографии попробую сделать.
-
GUI:
[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-1253-b2381ee4cd.jpg[/img]
-
Об имитации плаванья (drift-а) аналоговых осцилляторов.
Основная проблема в характере модуляции частоты. Требуется плавная модуляция, не имеющая явно выраженных ступенек и явно выраженной частоты. Можно, конечно, использовать random (step) lfo, сглаженное фильтром, но частота lfo будет явно прослеживаться в сигнале.
Пришла в голову следующая идея.
Берем генератор псевдослучайных чисел, но используем число на выходе не непосредственно для модуляции, а для задания направления смещения частоты.
Иначе говоря: если генератор выдал четное число, увеличиваем
частоту осциллятора. Выдал нечетное - уменьшаем. Таким образом, мы получаем плавное изменение частоты (она никогда не меняется более, чем на единицу). Что еще более важно, в модулирующем сигнале будут присутствовать воздействия разных масштабов.
А можно представить это в виде интегратора, на которые подаются ступеньки +1/-1.
Получается почти классический random walk-алгоритм !
Обычно объясняется на примере с пьяницей, который делает случайный
шаг в случайную сторону и выписывает замысловатую непредсказуемую траекторию. Разница лишь в том, что пьяница рано или поздно доберется до канавы, нам же нужно в среднем оставаться на месте (интегратор не должен уйти в насыщение).
На помощь приходит генератор псевдослучайных чисел в виде сдвигового регистра (m-последовательность максимальной длины). Тактируя регистр длиной n бит, на каждом шаге получаем случайное число от 1 до 2^(n-1). Более того, регистр выдает все числа от 1 до 2^(n-1) в случайном порядке ни разу не повторяясь. А после 2^(n-1) шагов вся последовательность начинается заново.
Получается, что за период повторения последовательности мы получим равное число четных и нечетных чисел (точнее, нечетных на одно больше, что легко учесть). Таким образом, частота осциллятора будет всегда в среднем оставаться на месте, никуда не уползая. А сам закон плаванья частоты будет определяться видом m-последовательности.
Для примера, 16-битный регистр с обратной связью на 16, 15, 12 и 1 отводах даст такую картинку:
[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-1275-38f0d31470.png[/img]
А это 16, 15, 12, 10:
[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-1276-4ddc59d2f2.png[/img]
Если тактировать такой генератор с частотой 10 Гц, то последовательность повторится через 6554с (1.8 часа).
Можно и немного отфильтровать сигнал, если окажется слишком грубым. Прошлая последовательность с ФНЧ:
[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-1277-7eed133712.png[/img]
В железе еще не пробовал. Что скажете (кроме того, что надо пробовать :-) ?
-
Мне кажается, что такой ЧМ - очень жесток будет. Спектр будет весь в гармониках. И то, что ты задумаваешь будет полностью аналогично просто подмешиванию шума.
Аналоговое "плавание", насколько я понимаю, имеет совершенно не шумообразный характер. К примеру, термомодуляция зависит от амплитуды сигнала и предыдущей истории сигнала. Получается эдакий терморевер.
(в синтезаторах я шарю очень слабо, это - соображения общего характера )
-
Попробовал - весьма занятно !
Качаем сэмпл:
http://diyfactory.ru/forum/index.php?act=D...download&id=103 (http://diyfactory.ru/forum/index.php?act=Downloads&do=download&id=103)
Последовательность проигрывалась с частотой 1кГц и влияла на частоту первого осциллятора (максимальный уход не более 10 центов в обе стороны). Второй осциллятор имел фиксированную частоту и звучал в унисон с первым.
Период повторения последовательности, таким образом, около минуты.
-
GUI:
[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-1253-b2381ee4cd.jpg[/img]
Неплохо я так примерно и думал, можно за пример взять GUI с Waldorf Blofeld,удобно сделано и информативно, но у него 2энкодера под дисплеем.
Хотя скорее всего ты в курсе, т.к твой GUI похож :).
ADSR
(https://forum.diyfactory.ru/proxy.php?request=http%3A%2F%2Fwww.waldorfmusic.de%2Fassets%2Fimages%2Fproducts%2Fblofeld%2Fblofeld_filter_envelope.png&hash=a285dcfd3d76a8f548e7c6198d8d586ff32e9143)
MOD Matrix
(https://forum.diyfactory.ru/proxy.php?request=http%3A%2F%2Fwww.waldorfmusic.de%2Fassets%2Fimages%2Fproducts%2Fblofeld%2Fblofeld_modulation.png&hash=b54ae92846ce03d567f70665fe78329c06242561)
Ну и тут остальные картинки
http://www.waldorfmusic.de/en/products/blo..._user_interface (http://www.waldorfmusic.de/en/products/blofeld/blofeld_user_interface)
Если интересно могу GUI с сэммплера сфотать, там 5 энкодеров и дисплей 320х80
-
Черт, насколько похоже ! Включая полоску под названием экрана, честно взятую у iPod mini :-) Этот Waldorf (да и ничего похожего) не видел и до такого интерфейса дошел независимо.
Из интерфейса осталось реализовать секвенсор (3 трека/16 шагов).
Было бы интересно взглянуть, как это сделано в Waldorf.
С другой стороны, лучше подождать несколько дней, пока доделаю
секвенсор, и уж затем сравнить. Самостоятельный вариант может
получиться не менее интересным :-)
Попутно пара вопросов.
Где бы разжиться интересными волновыми формами для wavetable-осциллятора ? Традиционные формы (saw, square, sine и т.д.) прикрутил,
но осталось еще много свободных слотов (не считая 30 юзерских форм).
Надо что-то, от чего можно отталкиваться. Подходят любые 16-битные pcm,
из них будут проигрываться в цикле первые 256 сэмплов.
Где бы достать хороший пиксельный шрифт. Сейчас у меня
использован замечательный шрифт standard_07 (miniml.com), но он коммерческий - хотелось бы что-то фришное. Все остальные использованные компоненты бесплатные/открытые, не хочется портить free/open source идиллию несчастным шрифтом :-)
-
Есть полно волновых форм для синтезатора Rapture от CakeWalk, там один период волны засэмплирован в Wav, есть куча wavetable для Waldorf Microwave в формате VSTI Komplexer, я думаю можно переконвертить в wav, там raw наверное.
Ну исамому нарисовать в sound forge\wave lab можно).
ЗЫ В Waldorf Blofeld нету секвенсера, есть только ARP программируемый на 16 шагов.
-
Спасибо, посмотрю. Давно я уже не общался с VSTi-шками :-)
-
Да я тоже давно), просто оставил волны, думал в сэмплер пихать но толку в нем от них мало. Вообще как бы от статичных волн толку немного, у меня есть аддитивный синт Kawai k5000s, он любую волну может синтезировать, но вся фишка красивого звука не в вычурной волне, а именно в динамике этих волн. Грубо говоря пила с детюном\хорусом звучит уже интереснее обычной голой пилы.
Кстати унисон\хорус в синте предусмотрен?
ЗЫ волны могу выложить архивом куданить
-
Для унисона разве что настроить осцилляторы на одну частоту (с небольшим detune или drift, как в сэмпле выше).
Хоруса (как и каких-нибудь эффектов) тоже нет. Сигнал рождается в
цифре, выходит в аналог и аналога не покидает (идет на микшер, vca, vcf).
Есть мысли поиграть с чем-то негармоническим (интересные волны были absynth). Либо с кучей гармоник, как у органа. Если еще и FM такими штуками делать, может быть любопытно.
А еще можно те же волны использовать для LFO - тут уже совсем другие эффекты.
За архив скажу спасибо :-)
-
А если попробовать создавать копии генерируемого сигнала и сдвигать ихпо фазе\частоте, что бы при этом изначальная полифония не страдала.
Хорус можно аналоговый сделать на ПЗС ;).
Кстати коротко спецификацию на синт можно? Ну там что из себя представляет...Моно\поли,количество ADSR\LFO\VCO, есть ли FM\Ringmod, будут ли waveshaper? Степ модулятор будет?
Вот неплохой синт с вейвтейблами и аналоговым фильтром http://www.avrx.se/spec.html (http://www.avrx.se/spec.html)
В нем вейвшейперами изрядно волны колбасятся, тут и PWM для любой волны и др.
ЗЫ в аттаче архив с волнами с Rapture,там есть и ЛФО волны и в папке prosound волны с МиниМуг
-
Спасибо ! Кажется, с подключение этих волн не будет проблем.
Все эффекты, если понадобится, будут внешние - а это я так никогда не закончу :-)
Спецификация на данный момент такая:
Моносинт с тремя осцилляторами.
Два аналоговых осциллятора (но с цифровым тактированием), формы волны pulse, saw, pulse+saw. Pulse - дергается ножка проца, Saw - ножкой проца сбрасывается аналоговый интегратор. Есть Sync и PWM.
Один wavetable осциллятор (вывод через ЦАП). Есть еще один (неслышимый)
wavetable осциллятор-модулятор специально для FM и Ring модуляций первого.
Огибающих пока что 4 штуки, ADHSR (с pre-delay). Две их них назначены
на vca/vcfa, остальные для модуляции. Можно и больше, количество ограничено производительностью проца (в которую еще не уперся).
LFO 4 штуки, несколько встроенных волн (включая Random step) + все
те волны, которые могут использоваться wavetable-осциллятором.
Есть MIDI-sync. Количество тоже можно увеличить.
Матрица модуляции с 10 слотами (тоже можно больше). Практически все
параметры можно модулировать, в том числе и сами уровни модуляции.
Секвенсор (3 трека / 16 шагов) для модуляции. Фактически step-модулятор
и есть. Нотный секвенсор не особо интересен.
Осцилляторы смешиваются в аналоге, затем Moog-образный фильтр и аналоговый VCA.
MIDI, GUI, USB :-)
-
Да, неплохо. Я бы еще добавил 5и ступенчатые AD2DSR, с функцией loop, очень неплохо для переливающихся тембров, в том же Waldorf microQ\Blofeld есть выбор между one shot\ADSR\AD2DSR генераторами, т.еодин енвелопер может либо так либо этак работать/
А какие органы управления кроме 4х энкодеров? Хороший вариант энкодеры+обычные потенциометры. Каку меня в yamaha RM1x, под ЖК стоят 4е энкодера для рулежки и есть еще 8 крутилок аналоговых для быстрого доступа к фильтру\адср...С переключателем групп.
-
ADSR с loop это как ? Во время сустейна повторяется в цикле AD (или AHD) ?
С управлением так и задумываю, 4 энкодера + 4 потенциометра (назначаемых). Они будут на отдельной плате с отдельным процом, который будет передавать их положения основному процу. Пока что вместо этой платы макет с джунглями из МГТФ :-)
-
ADSR с loop это как ? Во время сустейна повторяется в цикле AD (или AHD) ?
С управлением так и задумываю, 4 энкодера + 4 потенциометра (назначаемых). Они будут на отдельной плате с отдельным процом, который будет передавать их положения основному процу. Пока что вместо этой платы макет с джунглями из МГТФ :-)
Да используется два Decay с своимиу ровнями и между ними loop.
-
Понятно. Думаю, что это у меня тоже можно имитировать - плавно ввести LFO (назначив еще одну огибающую на уровень LFO).
-
Перевел wav'ы в свой формат (16 бит, 256 сэмплов на период), попробовал.
Органные и FM волны отличные, спасибо.
-
Дык есть еще wavetable от Waldorf,но они там в своем формате WT, но в принципе я думаю расковырять можно с помощью awave или sound forge.
Ну и ВСТ синт Surge тоже типа Rapture с волнами, если нужно могу поискать.
-
Тестировали код арпеджиатора - получили в том числе и вот
такие забавные сэмплы:
jk_ean_synth_arp_demo.mp3 (http://www.divshare.com/download/10239356-3c5)
-
Супер! Diz, сделай потом библиотеку семплов.)
оффтоп:
кстати если не сложно- можешь сделать всёже версию фильтра для DIP деталек.
ну или хотябы подскажи какую нибудь литературу на предмет автоматического проектирования печатных плат (только не очень заумную), а то я со спринт лойаутом повешусь скоро.
-
Спасибо ! Попробую выложить еще в скором времени.
Для дип переделывать откровенно лениво - я обычно очень долго
и мучительно развожу платы. Может, кто-то еще переделает ?
Или переходи на smd, это совсем не больно :-)
Раньше пользовался P-cad, сейчас Altium Designer - оба изучал по докам и tutorial-ам в комплекте(очень достойным). Спринт никогда не пробовал :-)
Там есть хотя бы нетлист (список связей) ?
-
для меня тоже разведение платы самый сложный процесс из всего цикла разработки. я его от недели до месяца делаю.
в спринте нихрена нет - заточенная под схемотехнику версия пэинта =). связи сам создаёшь. слава богу хоть есть автотрассировка (пусть даже кривая и глючит)
кстати, если надо могу скинуть проект блока питания прецезионного с термокомпенсацией и мугоосциллятора. разведены в этом спринт лойауте.
осциллятор сразу завёлся, в блоке есть какой-то небольшой косячёк (выдаёт отрицательное напряжение с погрешностью), пока не искал. вот ща над фильтром бьюсь.
на счёт смд - это уже для отлаженных блоков удобно. в процессе разработки я много косячу (кстати как раз из за плат). приходится много чего переделывать.
-
может поднимем отечественное синтезаторостроение. по моим расчётам можно сделать синт по себестоимости минимум в 2 раза ментшей забугорным. да и в россии никто синтезаторы не делает уже года как с 90го, так что продукт будет вполне конкурентоспособный.
-
я уже давно об этом задумываюсь. по цене очень сильная будет разница с заграницей. там простейшие модули стоят от 60$
прошерстил определенное количество информации. много чего нашел в наших журналах ( выложил на http://diy.192khz.ru/ (http://diy.192khz.ru/) )
с товарищем пытаемся белать именно модульный.
но пока как-то очень кисло: основной работой, работой по дому загружен.
-
Автотрассировкой никогда не пользовался (не считая тупых некритичных вещей, вроде LED-экрана).
А зачем прецизионный БП ? Думаю, для синта точности обычных линейных стабилизаторов (типа регулируемого варианта lm1117) достаточно.
Особой разницы между дип и смд макетками не вижу. И там и там куча
МГТФ-а Ж) Какие проблемы могут быть из-за плат ? Если схемотехника
правильная и футпринты проверенные в деле, то плата считай автоматически получается корректной. Всякие тонкие моменты вроде взаимного расположения
дорожек и т.д. не считаем.
-
По моим прикидкам, по себестоимости деталей (+печатная плата и монтаж) никак не дешевле забугорных вариантов. Вот ноу-хау в софте - совсем
другое дело, на этом можно вылезать.
Впрочем, если у нас образуется (или уже есть ?) весомое коммьюнити любителей синтостроения и волшебных аналоговых звуков, буду более чем доволен.
Поднять проекты, делать киты и готовые печатки реально, был
бы спрос :)
PS Из той же сессии с арпеджиатором - монотонные FM-бульканья с модуляцией: jk_ean_synth_idmo.mp3 (http://www.divshare.com/download/10248364-71f)
-
diz, я вот думаю твой синт мог бы вполне составить конкуренцию норд лид. если особенно учесть, что у него половна тракта аналоговая.
-
я вот например думаю сделать гибридный аналоговый модуляр с управлением по юсб (по подобию норд модуляр энжин). если выйдет, то друзья музыканты попросили сделать парочку для них.
вот правда одному это делать уныло и напряжно, особенно когда не знаешь многих вещей (тот же арм например)
-
Предпочел бы, чтобы он составил конкуренцию DSI Evolver-у :-)
Но Evolver ориентировочно в 1.5 раза дешевле и умеет больше (хотя
и несколько в другом направлении)
Коммерческих перспектив пока не вижу, так что все ради фана и опыта.
-
кстати на счёт фильтра. а что там не то с режимом хайпасс?
-
По моим прикидкам, по себестоимости деталей (+печатная плата и монтаж) никак не дешевле забугорных вариантов.
Хотелось бы поподробнее узнать на чем основаны такие выводы. На ценники каких фирм ориентировались и какую цену предполагаете на свой товар делать?
Не хочу обидеть москвича, но если в цену вложить московскую з/п то наверное будет сложно конкурировать. Ну а для нашего города очень может быть (при з/п до 20 т.р.). Да и сложно вот так просто оценить сколько будет стоить конечный вариант.
Еще один интересный вопрос: это открытость информации по вашему проекту, если вы будете его продавать, то станете ли вы выкладывать все схемы, печатные платы, прошивки и техпроцесс изготовления.
-
sea, ответил по себестоимости в ЛС.
Если делать кИты, получается несколько дешевле - минус корпус и монтаж.
Если проект вырастет до кита, то будут выложены схемы/печатные платы,
свежая прошивка. На печатной плате будет запаян процессор с начальным загрузчиком - никакие программаторы собирающему не нужны, лишь usb-кабель. Возможно, и код загрузчика тоже будет выложен, на радость
клонирующим.
-
EternalEngine, с hipass был странный эффект - резонансный пик есть,
ВЧ есть, а НЧ подавлены недостаточно (из-за небольшого поворота фазы и
неидеального суммирования). В целом, на ФВЧ было похоже :-)
-
Я думаю это может быть даже фишкой этого фильтра. ведь у каждого инструмента свой тембр)
-
да, на самом деле при увеличении резонанса сдвигается фаза. а есть какие нибудь идеи как это исправить?
-
Это фича любого мугофильтра, фиксить не надо :-)
-
с лоупасс это хорошо. а есть ли какая-нибудь схемка хайпасс на половинке 13700? (хелательно с более хёстким звучанием =) )
-
Разве что первого порядка - 6 дБ/октаву :-)
-
в датащите который?)
хочу сделать 2 фильтра последовательно - хп лп.
-
Ага, вроде того. Для фильтров высокого порядка надо рулить более чем
одним коэффициентом, если не ошибаюсь.
-
как обычно: частота среза и резонанс.
diz, в датащите к 13700 есть state variable filter. там вход на частоту среза (я насколько понял - линейный). можешь помочь с управлением, чтоб можно было прикрутить к CV 0..10V?
думаю сделать 3х полосный дисторшн на его базе.
кстати имеет смысл делать диодный ограничитель на каждую полосу или лучше все вместе после сумматора?
-
Имелись в виду коэффициенты в числителе и знаменателе передаточной функции фильтра :-)
State variable на lm13700 - нет ничего проще !
http://diyfactory.ru/forum/index.php?showt...findpost&p=2486 (http://diyfactory.ru/forum/index.php?showtopic=172&view=findpost&p=2486)
Наверное, на каждую полосу. Был в кубейсе плагин quadrafuzz (четырехполосный дисторшн), очень гибкая и интересная штуковина!
-
Кстати, мне нравится идея такого дисторшна - с одной крутилкой для перестройки всех трех полос (lp, bp, hp).
Открываем тему ?
-
определённо)
я вот и подумал, что будет интересный эффект. если повесить лфо на эту крутилку)
уже есть набросок схемы - завтра выложу.
з.ы. кстати идею спёр из квадрафуза какраз.
-
Кстати, мне нравится идея такого дисторшна - с одной крутилкой для перестройки всех трех полос (lp, bp, hp).
Diz, немного не понял. Разделение на полосы перед искажалками формирует некий кроссовер, и одной крутилкой мы меняем синхронно (перестраиваем) частоты раздела? Чувствую, что не так, но идея обычного "трёхручечного" EQ, управляемого одной ручкой мне кажется ещё более далёкой. Чего-то третьего на ум не приходит.
Кстати, когда-то выпускался трёхполосный дисторшн Yamaha MBD-10 (и/или 20).
-
ок, идея такая:
кросовер формирует 3 полосы, на каждую из них ставится свой отдельный регулятор уровня и ограничитель. при превышения уровня (к примеру 0дб) сигнал начинает обрезаться ограничителем. те получаем трёхполосный дисторшн. фишка в том, что будучи встроенным в аналоговый синтезатор будет возможна перестройка частот среза с одного модулирующего источника LFO или ADSR, что должно давать довольно интересный кислый звук (особенно если добавить резонанс). чтоб прикинуть звучание можно покрутить тот же квадрафуз, который используется чуть более чем на кажной дороге в трансовом проэкте.
diz, а можно как нибудь увеличить крутизну среза до 24дб (чтоб получить свист - это было бы шикарно)?
-
diz, вот ещё что, у тебя есть какие нибудь идеи, как допилить мугофильтр до полноценного хайпасс (или связку из двух мугофильтров до хайпасс/бэндпасс)?
пробовал суммировать 2 фильтра в противофазе с разной частотой среза. опять же из-за сдвига фаз ничего толкового не вышло - спад слишком пологий за исключением момента с полностью выкрученным резонансом у обоих фильтров, тогда получаем странный бэндпасс с двумя резонансными пиками.
это основопологающий момент в построении синта, тк пока недопилю фильтр - дело дальше не пойдёт. а всётаки очень хочеться муговскую лестницу.
кстати интересно, какие фильтры стоят в новых мугах? есть подозрения что не лестничные.
-
полагаю, что лестничная структура по своей природе обречена быть только фнч. для фвч этот вариант не прокатит. кмк.
-
кстати, вот схемка квадрафузза кому интересно глянуть будет:
http://www.paia.com/talk/viewtopic.php?f=6&t=89 (http://www.paia.com/talk/viewtopic.php?f=6&t=89)
к слову, популярный у пси-трансеров плагин
-
Не, можно сделать и лестничный hipass, как в модуле Moog 904B - топология есть в оригинальном патенте: http://www.pat2pdf.org/pat2pdf/foo.pl?number=3,475,623 (http://www.pat2pdf.org/pat2pdf/foo.pl?number=3,475,623)
Правда, там нет обратной связи и регулятора резонанса, так что имхо смысл в такой лестнце небольшой. Другая топология должна быть не хуже.
Интересно, что популярен для транса. Я его обычно на барабаны вешал :-)
Схемка хороша, только полосы там в отличие от софтового фиксированы.
-
Практически всё трансовое сообщество (имхо основной потребитель аналоговых и псевдоаналоговых синтов) считает квадрафуз панацеей. собственно я думаю оно было бы нам очень благодарно если бы мы встроили такой подарок в наши синтезаторы. впринципе если доработать добротность фильтра до -24дб окт. (хотя для начала хватит и 12), сделать управляемый напряжением резонанс, добавить по VCA с ограничением на выходе для каждой полосы, то можно было бы использовать этот дистофильтр в качестве основного фильтра синтезатора.
остаётся добавить 2 DCO с Sync, FM, AM; 2 софтверных LFO и 2 ADSR; возможно арпеджиатор. и пусть такой синтезатор не будет универсальным, но зато его можно сделать относительно простым (в т.ч. и интерфейс) и доступным. при всём при этом он будет одним из лучших для создания "трансовых/кислых" лидов и вполне может составить конкуренцию норд лиду (а если учесть, что большая часть тракта будет железной, то и превзойти его)
з.ы. diz можешь если не трудно доработать резонанс на своём полосовом фильтре (CV резонанс и по возможности -24дб окт.) я додумаю остальное и разведу платку под дип версию.
з.з.ы. так может и поднимем отечественное синтезаторостроение :D
-
EternalEngine,
спасибо за объяснение того, "что имеется в виду".
ultrashock,
спасибо за схему квдрофуза.
Я когда-то занимался фильтрами, правда, немного для других применений. При регулировании Q возможны 3 варианта конфигураций, по крайней мере, для биквада (все три варианта встречаются в реальных конструкциях):
1) Усиление на частоте резонанса (величина резонансного пика) остаётся строго постоянным. Усиление в полосе прозрачности, естественно, зависит от установленного Q. Достоинство - никогда не наступает перегрузка последующих цепей. Недостаток - громкость напрямую зависит от Q, т.е. меняется в широких пределах.
2) Усиление в полосе прозрачности постоянное, меняется только величина резонансного пика (усиление на частоте резонанса). Недостаток - возможен перегруз последующих цепей. Громкость меняется не так сильно, как в 1).
3) Промежуточный вариант, когда меняется как одно, так и другое. Встречается довольно редко. Возможно, для аналогового синта - это оптимум.
Что думаете по этому поводу? Какие фильтру встречаются в реальных конструкциях синтов? Т.к. я потихоньку занимаюсь разработкой гитарного синта, то вопрос достаточно актуальный.
-
Честно, удивлен насчет квадрафузза. Впрочем, я далековат от трансового сообщества :)
EternalEngine Такой синт вполне реален, но тут надо определиться -
открытый проект, коммерческий продукт или что-то среднее.
CV на резонанс прикрутить несложно, но потребует еще одной половинки LM13700 (или, возможно, цифрового потенциометра ?) 24 дБ/октаву можно получить, соединив последовательно два фильтра - я пробовал, работает ок.
-
Tuvalu, вариант 2 более актуален, т.к. в зависимости от уровня сигнала можно получать как перегруженный так и чистый звук.
схема среднестатистического лида: 2 осциллятора на пиле, второй настроен на октаву ниже и модулирует перый (возможна так-же и синхронизированный со вторым), далее хайпасс с задранным резонансом и катоффом на автоматизации/лфо, далее лоупасс и дисторшн (особо ценится перегруженный свист фильтра).
diz, я думаю нечто среднее, т.к. тех кто может собрать синт сам - единицы (открыть схеу и прошивку - пусть собирают), основной потребитель синтов - музыканты, им проще его заказать (при стоимости синта с такими характристиками ~1к$ он может вполне тягаться с норд лидом)
-
лучше на половинке 13700. на случай если вдруг потом решим прикрутить аналоговые осцилляторы
-
Tuvalu Классический мугофильтр работает по первому варианту -
при высоком резонансном пике пропадает бас. Во-втором варианте
имеем перегруз полосы, приходящийся на резонансный пик.
Тогда фильтр можно рассматривать не только как субтрактивный синтез (удаляем лишнее), но и как аддитивный - добавляем к сигналу гармоники, тесно связанные с резонансной частотой. Лично мне больше по душе второй
вариант.
Впрочем, в реальности тот-же мугофильтр искажает всегда.
При высоком резонансе спектр сигнала перед перегрузом становится более бедным. А перегруженный сигнал, соответственно, менее грязным
и более 'округлым'.
Так что истина где-то рядом :-)
-
EternalEngine Скомпонуй из Paia 9730 (http://www.paia.com/prodimages/9730sch.gif) и моего ssvf.
От пайи будут управление CV и два фильтра последовательно, от меня
повторители из '13700 вместо интеграторов на ОУ (особой разницы нет)
и цепь обратной связи (с диодами).
-
diz, насколько я понял, в Paia 24дб/окт. реализован только на одну из полос на выбор? предполагаю, что можно получить 24дб. включив 2 половинки последовательно для каждой полосы в рамках одного фильтра, или я ошибаюь. в данный момент нет возможности нарисовать и проверить.
-
Нет, включаем два фильтра последовательно и снимаем со второго LP, HP и BP (при желании и Notch) одновременно.
-
Diz, я наверно путаю. Но если соединить их последовательно, как на
(https://forum.diyfactory.ru/proxy.php?request=http%3A%2F%2Fwww.paia.com%2Fprodimages%2F9730blk.gif&hash=5ad83858bc2153ffeb8269e0137c72bca29111d8)
то 24дб/окт. выходит только на какую-нибудь 1 из полос.
-
Верно, туплю.
-
мне бы так "тупить" как тебе :D
вот я тут накидал, в таком включении вроде всё норм - 24 дб. вечером резонанс попробую отстроить.
-
бэндпасс только совсем обрубленный получился. как бы его расширить?
-
Что-то исходную схему не пойму, много линий :)
Ты просто соедиил два фильтра последовательно или еще сделал
2 дополнительных обратных связи ?
-
нет, обратные связи оставил как есть. просто вместо одной половинки 13700 поставил 2. те, если одна даёт -6 дб то две последовательно должны дать -12 дб/окт.
-
кстати у меня появилась навязчивая идея сделать не диодные ограничители, а ламповый перегруз (конечно полезность идее сомнительна, но может быть фишкой) :D
ну или например перегруз на FETах
-
Интересная топология вышла, учитывая то, что каждый последующий
каскад на '13700 инвертирует фазу. Надо поразмыслить.
Вообще, обратная связь должна бы быть от каждого каскада -
по количеству коэффициентов в знаменателе передаточной функции.
Ламповый перегруз в данном случае считаю излишеством :-)
-
Diz, можно и по неинвертирующим входам соединить, не думаю что это что-то поменяет.
если я ничего не путаю, на каждой половинке собран 6дб/окт. лоупасс фильтр, обратная связь для получения хайпасс. если соединить последовательно 2 лоупасс по 6дб - получаем один лоупасс на 12дб, и точно так-же вычитаем из исходного сигнала.
я тоже думаю, что ламповый перегруз излишен. его использование умаестно исключительно в "рекламных целях", как например в семплерах KORG. там выходной усилитель собран на лампах и каких-либо заметных на слух изменений в сигнал не вносит. сделано это из принципа "лампочки мигают - лох радуется". :D без лампочек то семплер цифровой, а с ними ламповый)
можешь помочь привинтить 13700 на резонанс, никак не воткну, как там считается передаточная функия.
-
С передаточной функцией все несложно, вообщем-то. Примерно так:
Для системы второго порядка в общем виде G(s) = (b2*s^2 + b1*s + b0) / (a2*s^2 + a1*s + a0)
b2, b1 и b0 для state-variable будут соответствовать миксу :-) на выходе из lp, bp и hp
Если фильтр чисто lp, то b2 = 0 и b1 = 0. Если hp, то b1 = 0 и b0 = 0
a1, a0 коэффициенты в обратных связях. a1 - с выхода bp, a0 - с lp. a2 - усиление в
ОС первого ОУ.
1/s - это интегратор. 1/s^2 - два интегратора последовательно.
Вот и картинка в тему накопалась, даже с такими же обозначениями:
(https://pantherfile.uwm.edu/msw/www/StateVariable/CtrlCan.gif)
Подробнее про SVF в Титце-Шенке, там он обзывается 'универсальный фильтр'.
В принципе, можешь попробовать расписать так же для системы 4-го порядка,
но ... обычно высокопорядистые фильтры строят из узлов 2-го порядка.
В цифре БИХ фильтры так почти всегда.
-
с этим ещё как-то поняьно, но как это к 13700 привинтить?
-
Diz, можешь расчитать эту часть схемки (включено вместо R14, значение которого должно быть 24к-47к), я уже замучался.
если не трудно, покажи как расчитывал.
-
Что-то не понял, что посчитать и куда включена схемка :-)
Предположу (!), что она в цепи ОС и ты пытаешься ей рулить резонанс.
Там не нужен экспоконвертор на двух транзисторах, нужна линейная характеристика и обычный источник тока.
Подключаешь вместо нее обычный делить и находишь нужный
диапазон усиления(аттенюации) сигнала - скажем, 0.5...0.9
Затем ставишь вместо делителя обратно LM-ку. LM дает токовый выход
Iвых = Uвх * gm(Iabc). Преобразуешь выходной ток в напряжение резистором
на землю: Uвых = Iвых*R. Получаешь соотношение Uвых/Uвх и подбираешь
Iabc и R так, чтобы уложиться в нужный диапазон 0.5...0.9
-
Господа, прошу прощения за фоотоп. Кто-нибудь в курсе, куда пропал товарищ Diz? Может у кого остались его координаты?