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

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

vilager

  • Гость
Diy синтезаторы
« Ответ #260 : Июля 11, 2009, 12:38:55 am »
можно сделать 2 регулятора: первый "диапазон", а второй - "линза" или "масштабер", чем он больше введён, тем грубее перестройка по диапазону.

Diz

  • Гость
Diy синтезаторы
« Ответ #261 : Июля 29, 2009, 10:13:15 am »
Спасибо за советы. Подумал, и сделал так - параметр при вращении
ручки энкодера грубо меняется от 0 до 100 (0,1,2,3 ... 100). А при нажатой
ручке тонкая настройка, меняются десятые - 0.1, 0.2, 0.3
Привел к таком виду не только LFO, но и многие другие параметры, оказалось
удобно.

PS Забавный наивный сэмпл с тремя осцилляторами и полным отсутствием огибающих - http://www.sendspace.com/file/54btoh

EternalEngine

  • Гость
Diy синтезаторы
« Ответ #262 : Июля 29, 2009, 08:50:41 pm »
Оригинальная идея. круто!

З.Ы. Давайте тут семплы выкладывать - так удобнее.
« Последнее редактирование: Июля 29, 2009, 08:55:21 pm от EternalEngine »

echowave

  • Гость
Diy синтезаторы
« Ответ #263 : Июля 30, 2009, 07:42:15 pm »
вот интересный ресурс по теме http://musicfromouterspace.com/
проекты подробно описаны, ко многим есть лэйауты

Diz

  • Гость
Diy синтезаторы
« Ответ #264 : Августа 01, 2009, 01:56:26 am »
music from outer space хороши, но там в основном традиционный аналог.

PS Сэмпл доброго и теплого басового sweep-а:
http://rghost.ru/375792

Serge_D

  • Гость
Diy синтезаторы
« Ответ #265 : Августа 24, 2009, 04:37:06 pm »
Парни а никто не рассматривал возможность создания DCO аналогичного Juno6 jx3p на таймерах http://ru.wikipedia.org/wiki/8253 ??
Посути такой синт сможет обслужить один из массовых контроллеров PIC или AVR.. особенно когда надо ... 12 осциляторов как у JX3P..
(ранние синты роланда строились на Z80 и 8031 контроллерах)

AceessTI

  • Гость
Diy синтезаторы
« Ответ #266 : Августа 24, 2009, 07:16:35 pm »
вроде в маэстро на них построены DCO...

Diz

  • Гость
Diy синтезаторы
« Ответ #267 : Августа 24, 2009, 10:25:11 pm »
Осцилляторы в полисинте - мелочь по сравнению с фильтрами, огибающими
 и коммутацией на каждый голос :-)

Железные таймеры, конечно, можно использовать - только тогда уже не на отдельных микросхемах городить, а ставить FPGA/CPLD.  

Serge_D

  • Гость
Diy синтезаторы
« Ответ #268 : Августа 25, 2009, 07:57:14 pm »
конечноже FPGA/CPLD в идеале..  но если пока не шарим в плис можем и на отдельных чипах ))

EternalEngine

  • Гость
Diy синтезаторы
« Ответ #269 : Августа 26, 2009, 06:44:36 pm »
Ребят, а не подскажете схему линейного VCA на LM13700?

Serge_D

  • Гость
Diy синтезаторы
« Ответ #270 : Августа 26, 2009, 07:42:17 pm »
MFOS в помощь

Serge_D

  • Гость
Diy синтезаторы
« Ответ #271 : Августа 26, 2009, 07:44:09 pm »

Serge_D

  • Гость
Diy синтезаторы
« Ответ #272 : Сентября 04, 2009, 10:27:48 pm »
DIZ а как в твоём синтезаторе реализован "трекинг" нот.. (если я правильно выражаюсь).. тоесть попросту как контроллер вычисляет нужную частоту ноты? по формуте или из таблички ?? если из таблички то как тогда организовать плавный питч??

EternalEngine

  • Гость
Diy синтезаторы
« Ответ #273 : Сентября 06, 2009, 07:21:41 pm »
Цитировать
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)

если делать по принципу накопления фазы, то там ещё сильно упростить можно (в частности можно избавиться от деления)
« Последнее редактирование: Сентября 06, 2009, 07:28:09 pm от EternalEngine »

Diz

  • Гость
Diy синтезаторы
« Ответ #274 : Сентября 06, 2009, 07:38:40 pm »
Табличка инкрементов 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 бит
(ведь значения инкремента плавно возрастают с небольшим шагом).

Serge_D

  • Гость
Diy синтезаторы
« Ответ #275 : Сентября 06, 2009, 09:22:51 pm »
кое что проясняется. слишком сложные формулы с делением для простых контроллеров конечно не желательно... Значит заранее расчитываем значения этой самой таблички в центах на 4.8 кБ..

Я пока смутно представляю что такое DDS..  фазовый акумулятор я так понял это значения счётчика (32 битового в данном случае) задающего время периода сигнала..?? как только он сбрасывается в 0 начинается новая фаза..
Гдето так.. я правильно мыслю?

И ещё мысли.. в JUNO использовались таймеры 8253 с 16 битными счётчиками.. я гдето читал что в связи с этим синтезатор не точно воспроизводил некоторые ноты. в связи с низким разрешением счётчиков особено на высоких октавах.
Правильно ли я понимаю что в твоём DIZ синтезаторе значение частоты задаётся в 32битных значениях а значит ошибка будет ничтожно мала.??

Diz

  • Гость
Diy синтезаторы
« Ответ #276 : Сентября 07, 2009, 01:00:07 am »
Не совсем. На каждом шаге к фазовому аккумулятору прибавляется инкремент.
Вот когда аккумулятор переполнится (и продолжит считать дальше), это и будет началом нового периода.

Если в варианте со счетчиком инкремент фиксированный, а задаем
предельное значение, то тут наоборот - предельное значение фиксированно (2^32), а управляем инкрементом.

http://caxapa.ru/lib/MyDDS.pdf

В DDS точность установки частоты одинаковая во всем диапазоне. Другое дело, что с увеличением частоты на спектре
вылезает мусор, алиасинг и прочие прелести.
« Последнее редактирование: Сентября 07, 2009, 01:11:30 am от Diz »

Diz

  • Гость
Diy синтезаторы
« Ответ #277 : Октября 04, 2009, 12:47:21 am »
Работа над синтом несколько приостановилась - в работе графическая библиотека, которая будет использоваться в нем (и не только).

Serge_D

  • Гость
Diy синтезаторы
« Ответ #278 : Октября 26, 2009, 02:06:37 am »
Будешь использовать графический дисплей?

Diz

  • Гость
Diy синтезаторы
« Ответ #279 : Октября 26, 2009, 08:22:20 am »
Ага. Небольшой (128x64), мононхромный, но графический :-)

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

Сейчас решаю, как лучше сделать назначение MIDI-контроллеров для
автоматизации. Делать ли глобальную настройку, или для каждого пресета свою ? Делать ли просто менюшку с выбором контроллер->параметр, или
прикрутить MIDI Learn ? Пока в сомнениях.