Автор Тема: Diy синтезаторы  (Прочитано 54518 раз)

0 Пользователей и 1 Гость просматривают эту тему.

General Dead

  • Гость
Diy синтезаторы
« Ответ #280 : Октября 26, 2009, 07:17:14 pm »
Цитировать
Ага. Небольшой (128x64), мононхромный, но графический :-)

Библиотеку и GUI синта, в принципе, доделал.

Сейчас решаю, как лучше сделать назначение MIDI-контроллеров для
автоматизации. Делать ли глобальную настройку, или для каждого пресета свою ? Делать ли просто менюшку с выбором контроллер->параметр, или
прикрутить MIDI Learn ? Пока в сомнениях.
Лучше делать как в обычных VA синтах типа virus, все контроллеры намертво закрепить за Filter\ADSR и т.д, и сделать матрицу модуляции и вот там можно дополнительно 6 илиболее контроллеров назначаемыхсделать которые будут в пресет сохраняться....Кстати что с sysex? Будет ли возможность рулить по сисекс и патчи заливать?
Дисплей 240х64 удобнее и информативнее былбы, хотя и дороже. Удобно дисплей 240х64 и под ним четыре энкодера для руления, у меня так на сэмплере и грувбоксе сделано,очень удобно. Особенно ADSR рулить, там над каждым энкодером надпись Attack,Decay... и параметр в числовой форме и сразу всеми энкодерами удобно рулить).  
ЗЫ А фотки GUI можно глянуть? можно даже с отладчика типа Proteus

Diz

  • Гость
Diy синтезаторы
« Ответ #281 : Октября 27, 2009, 01:29:31 am »
Матрица модуляции и прочее давно есть. Интерфейс примерно так и
выглядит, экран, четыре параметра и под ними четыре энкодера.
Те параметры, которые сейчас на экране, энкодерами и рулятся.
На экране с adsr так и есть, энкодеры соответствуют attack/delay/sustain/release. Плюс есть четыре (?) потенциометра, которые можно назначить
на любой (почти) параметр в рамках пресета - они работают независимо
от экрана.

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

Sysex не будет, не вижу нужды. Копировать/загружать патчи можно по USB -
при подключении синт виден как флешка, пресеты лежат в соответствующих
директориях. И выглядят как текстовые .ini файлы, так что можно и из блокнота подкорректировать :-)

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

Diz

  • Гость
Diy синтезаторы
« Ответ #282 : Октября 27, 2009, 01:40:22 pm »
GUI:

[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-1253-b2381ee4cd.jpg[/img]

Diz

  • Гость
Diy синтезаторы
« Ответ #283 : Ноября 05, 2009, 07:13:21 am »
Об имитации плаванья (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]


В железе еще не пробовал. Что скажете (кроме того, что надо пробовать :-) ?
« Последнее редактирование: Ноября 05, 2009, 07:24:02 am от Diz »

BSVi

  • Гость
Diy синтезаторы
« Ответ #284 : Ноября 05, 2009, 10:50:33 am »
Мне кажается, что такой ЧМ - очень жесток будет. Спектр будет весь в гармониках. И то, что ты задумаваешь будет полностью аналогично просто подмешиванию шума.

Аналоговое "плавание", насколько я понимаю, имеет совершенно не шумообразный характер. К примеру, термомодуляция зависит от амплитуды сигнала и предыдущей истории сигнала. Получается эдакий терморевер.

(в синтезаторах я шарю очень слабо, это - соображения общего характера )
« Последнее редактирование: Ноября 05, 2009, 10:51:12 am от BSVi »

Diz

  • Гость
Diy синтезаторы
« Ответ #285 : Ноября 05, 2009, 12:08:54 pm »
Попробовал - весьма занятно !

Качаем сэмпл:
http://diyfactory.ru/forum/index.php?act=D...download&id=103

Последовательность проигрывалась с частотой 1кГц и влияла на частоту первого осциллятора (максимальный уход не более 10 центов в обе стороны). Второй осциллятор имел фиксированную частоту и звучал в унисон с первым.

Период повторения последовательности, таким образом, около минуты.
« Последнее редактирование: Ноября 05, 2009, 12:14:52 pm от Diz »

General Dead

  • Гость
Diy синтезаторы
« Ответ #286 : Ноября 05, 2009, 06:23:28 pm »
Цитировать
GUI:

[img width=\\\'500\\\' src=\\\'http://diyfactory.ru/forum/uploads/img-1253-b2381ee4cd.jpg[/img]
Неплохо я так примерно и думал, можно за пример взять GUI с Waldorf Blofeld,удобно сделано и информативно, но у него 2энкодера под дисплеем.
 Хотя скорее всего ты в курсе, т.к твой GUI похож :).
ADSR

MOD Matrix

Ну и тут остальные картинки
http://www.waldorfmusic.de/en/products/blo..._user_interface
Если интересно могу GUI с сэммплера сфотать, там 5 энкодеров и дисплей 320х80
« Последнее редактирование: Ноября 05, 2009, 06:25:38 pm от General Dead »

Diz

  • Гость
Diy синтезаторы
« Ответ #287 : Ноября 05, 2009, 10:07:03 pm »
Черт, насколько похоже ! Включая полоску под названием экрана, честно взятую у iPod mini :-) Этот Waldorf (да и ничего похожего) не видел и до такого интерфейса дошел независимо.

Из интерфейса осталось реализовать секвенсор (3 трека/16 шагов).
Было бы интересно взглянуть, как это сделано в Waldorf.
С другой стороны, лучше подождать несколько дней, пока доделаю
секвенсор, и уж затем сравнить. Самостоятельный вариант может
получиться не менее интересным :-)

Попутно пара вопросов.

Где бы разжиться интересными волновыми формами для wavetable-осциллятора ? Традиционные формы (saw, square, sine и т.д.) прикрутил,
но осталось еще много свободных слотов (не считая 30 юзерских форм).
Надо что-то, от чего можно отталкиваться. Подходят любые 16-битные pcm,
из них будут проигрываться в цикле первые 256 сэмплов.

Где бы достать хороший пиксельный шрифт. Сейчас у меня
использован замечательный шрифт standard_07 (miniml.com), но он коммерческий - хотелось бы что-то фришное. Все остальные использованные компоненты бесплатные/открытые, не хочется портить free/open source идиллию несчастным шрифтом :-)

General Dead

  • Гость
Diy синтезаторы
« Ответ #288 : Ноября 06, 2009, 05:30:55 pm »
Есть полно волновых форм для синтезатора Rapture от CakeWalk, там один период волны засэмплирован в Wav, есть куча wavetable для Waldorf Microwave в формате VSTI Komplexer, я думаю можно переконвертить в wav, там raw наверное.
Ну исамому нарисовать в sound forge\wave lab можно).
ЗЫ В Waldorf Blofeld нету секвенсера, есть только ARP программируемый на 16 шагов.  

Diz

  • Гость
Diy синтезаторы
« Ответ #289 : Ноября 06, 2009, 05:58:06 pm »
Спасибо, посмотрю. Давно я уже не общался с VSTi-шками :-)

General Dead

  • Гость
Diy синтезаторы
« Ответ #290 : Ноября 06, 2009, 06:19:18 pm »
Да я тоже давно), просто оставил волны, думал в сэмплер пихать но толку в нем от них мало. Вообще как бы от статичных волн толку немного, у меня есть аддитивный синт Kawai k5000s, он любую волну может синтезировать, но вся фишка красивого звука не в вычурной волне, а именно в динамике этих волн. Грубо говоря пила с детюном\хорусом звучит уже интереснее обычной голой пилы.
Кстати унисон\хорус в синте предусмотрен?
ЗЫ волны могу выложить архивом куданить
« Последнее редактирование: Ноября 06, 2009, 07:05:16 pm от General Dead »

Diz

  • Гость
Diy синтезаторы
« Ответ #291 : Ноября 07, 2009, 06:43:01 am »
Для унисона разве что настроить осцилляторы на одну частоту (с небольшим detune или drift, как в сэмпле выше).

Хоруса (как и каких-нибудь эффектов) тоже нет. Сигнал рождается в
цифре, выходит в аналог и аналога не покидает (идет на микшер, vca, vcf).

Есть мысли поиграть с чем-то негармоническим (интересные волны были absynth).  Либо с кучей гармоник, как у органа. Если еще и FM такими штуками делать, может быть любопытно.

А еще можно те же волны использовать для LFO - тут уже совсем другие эффекты.

За архив скажу спасибо :-)
« Последнее редактирование: Ноября 07, 2009, 06:43:27 am от Diz »

General Dead

  • Гость
Diy синтезаторы
« Ответ #292 : Ноября 07, 2009, 02:03:18 pm »
А если попробовать создавать копии генерируемого сигнала и сдвигать ихпо фазе\частоте, что бы при этом изначальная полифония не страдала.
Хорус можно аналоговый сделать на ПЗС ;).
Кстати коротко спецификацию на синт можно? Ну там что из себя представляет...Моно\поли,количество ADSR\LFO\VCO, есть ли FM\Ringmod, будут ли waveshaper? Степ модулятор будет?
Вот неплохой синт с вейвтейблами и аналоговым фильтром http://www.avrx.se/spec.html
В нем вейвшейперами изрядно волны колбасятся, тут и PWM для любой волны и др.
ЗЫ в аттаче архив с волнами с Rapture,там есть и ЛФО волны и в папке prosound волны с МиниМуг  

Diz

  • Гость
Diy синтезаторы
« Ответ #293 : Ноября 07, 2009, 08:04:19 pm »
Спасибо ! Кажется, с подключение этих волн не будет проблем.

Все эффекты, если понадобится, будут внешние - а это я так никогда не закончу :-)

Спецификация на данный момент такая:

Моносинт с тремя осцилляторами.

Два аналоговых осциллятора (но с цифровым тактированием), формы волны 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 :-)
« Последнее редактирование: Ноября 07, 2009, 08:06:29 pm от Diz »

General Dead

  • Гость
Diy синтезаторы
« Ответ #294 : Ноября 07, 2009, 08:18:10 pm »
Да, неплохо. Я бы еще добавил 5и ступенчатые AD2DSR, с функцией loop, очень неплохо для переливающихся тембров, в том же Waldorf microQ\Blofeld есть выбор между one shot\ADSR\AD2DSR генераторами, т.еодин енвелопер может либо так либо этак работать/
А какие органы управления кроме 4х энкодеров? Хороший вариант энкодеры+обычные потенциометры. Каку меня в yamaha RM1x, под ЖК стоят 4е энкодера для рулежки и есть еще 8 крутилок аналоговых для быстрого доступа к фильтру\адср...С переключателем групп.

Diz

  • Гость
Diy синтезаторы
« Ответ #295 : Ноября 07, 2009, 08:39:29 pm »
ADSR с loop это как ? Во время сустейна повторяется в цикле AD (или AHD) ?

С управлением так и задумываю, 4 энкодера + 4 потенциометра (назначаемых). Они будут на отдельной плате с отдельным процом, который будет передавать их положения основному процу. Пока что вместо этой платы макет с джунглями из МГТФ :-)
« Последнее редактирование: Ноября 07, 2009, 08:41:05 pm от Diz »

General Dead

  • Гость
Diy синтезаторы
« Ответ #296 : Ноября 07, 2009, 08:52:04 pm »
Цитировать
ADSR с loop это как ? Во время сустейна повторяется в цикле AD (или AHD) ?

С управлением так и задумываю, 4 энкодера + 4 потенциометра (назначаемых). Они будут на отдельной плате с отдельным процом, который будет передавать их положения основному процу. Пока что вместо этой платы макет с джунглями из МГТФ :-)
Да используется два Decay с своимиу ровнями и между ними loop.

Diz

  • Гость
Diy синтезаторы
« Ответ #297 : Ноября 07, 2009, 09:09:04 pm »
Понятно. Думаю, что это у меня тоже можно имитировать - плавно ввести LFO (назначив еще одну огибающую на уровень LFO).

Diz

  • Гость
Diy синтезаторы
« Ответ #298 : Ноября 10, 2009, 04:29:36 pm »
Перевел wav'ы в свой формат (16 бит, 256 сэмплов на период), попробовал.
Органные и FM волны отличные, спасибо.

General Dead

  • Гость
Diy синтезаторы
« Ответ #299 : Ноября 10, 2009, 08:32:10 pm »
Дык есть еще wavetable от Waldorf,но они там в своем формате WT, но в принципе я думаю расковырять можно с помощью awave или sound forge.
Ну и ВСТ синт Surge тоже типа Rapture с волнами, если нужно могу поискать.  
« Последнее редактирование: Ноября 10, 2009, 08:37:59 pm от General Dead »