Программирование и ЦОС: Создание собственных плагинов и софт-синтезаторов.

  • Автор темы Автор темы CJ MMx
  • Дата начала Дата начала

CJ MMx

Spugedelik hupi
5 Май 2004
523
64
28
t.me
Привет всем!

Пошукав форум похожей темы не нашёл.

Что предлагаю:

- делиться здесь мыслями, связанными с написанием подключаемых модулей формата VST, AU, RTAS и других;
- обсуждать различные подходы к реализации тех или иных DSP алгоритмов;
- обмениваться опытом в разработке;
- делиться ссылками на полезные ресурсы; (хотя имхо тут больше гугл решает, если только речь не идёт о каком-то специфическом контенте);

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

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

Я сам начал осваивать эту тему где-то в ноябре. А интерес к этому появился достаточно давно, но не хватало понимания всего процесса.

Я пообщался немного с Дмитрием Щёсом, создателем синтезатора Diversion, который подсказал мне направление в котором стоит двигаться, за что ему огромное спасибо.

Теперь поделюсь своими успехами - был написан простейший вст модуль, содержащий один осциллятор, генерирующий пилообразную волну с использованием оверсэмплинга. Интерфейс отсутсвует, есть один параметр - громкость. Синтезатор пока что монофонический и больше чем 1 одновременно нажатую ноту не распознаёт. Также попробовал алгоритмы простейших фильтров.

Текущая задача: реализация менеджера голосов и генератора огибающей.
 
Поддерживаю тему))) предлагаю делиться примерами кода и обсуждать методы и технологии обработки цифровых сигналов):yes:
 
Да, тоже интересно. интересно придумать свой уникальный алгоритм) Хочу виртуальный норд :D
 
http://code.google.com/p/dspfilterscpp/
http://aquila-dsp.org/examples/

а вообще, если найдёте лабораторки одного университета LA, где значительная часть программы посвящена sound DSP, то будем вам счастье.

Ну а сами алгоритмы синтезируются в "Simulink Matlab". Вслепую лично я ещё ничего не принимался писать.
 
  • Like
Реакции: CJ MMx
А мне было бы интересно попробовать написать свою "ламповую гитарную голову", настоящую эмуляцию какой нить известной "башки":blush:

---------- Добавлено в 13:13 ---------- Предыдущее сообщение было размещено в 12:13 ----------

Ребята, может начать с какого нить синтэдита?? попробовать мне в нем что либо поковырять??в каком направлении двигаться то?:wacko:
 
naash_g спаять пару голов самостоятельно )) а потом изучать программирование )) делов то )
 
В матлабе есть signal processing toolkit, а тема занятная, сам в ней буквально чуть, в поиске алгоритма bandlimited osc, один профессор направил в нужную сторону:) что за универ интересно. В Matematica много полезный презентаций на эту тему.
 
Последнее редактирование:
Тема как-то сразу неправильно начинается. Если подразумевается практическая направленность - первое сообщение должно с этого и начинаться))
Другое дело, что здесь она, в общем-то, смысла и не имеет. Разве что можно пообсуждать баловство с JSками в Рипере. Это примерно тот уровень, на котором здесь реально интересно и плодотворно пообщаться
 
  • Like
Реакции: naash_g
сейчас в голову пришла идея. чтобы было в этом треде легче ориентироваться предлагаю каждому кто постит ставить теги типа #синтез, #обработка, #кодинг поскольку эти темы немного разнятся



naash_g,

тебе и остальным. Хотел бы высказать своё мнение по поводу синтэдитов, синтмейкеров, реакторов. Получая определённые удобства вы расплачиваетесь производительсностью и помимо этого где-то еще стабильностью работы, свободной гибкостью ну или может еще чем-то. Конечно, в первую очередь надо плясать от поставленной задачи. Если возможно применять гибридный подход.

Я сам начал знакомство с написанием дсп кода на Си шарп, но перенос этого кода на С++ дал мне выигрыш на порядок в затрачиваемом на расчёты времени. Поэтому какой-то простой плагин или может даже плагин-обработчик миди быстрее будет настрочить на .NET или Delphi(под обе платформы есть портированный VST SDK) или собрать в синтмейкере\синтэдите\реаторе.
 
  • Like
Реакции: naash_g
В матлабе есть signal processing toolkit, а тема занятная, сам в ней буквально чуть, в поиске алгоритма bandlimited osc, один профессор направил в нужную сторону:) что за универ интересно. В Matematica много полезный презентаций на эту тему.
Там ещё генерация кода есть, так что это реально спасает (хоть код и допиливать приходится + есть куча особенностей трансляции .m => java, например) :).
 
ты про Signal или Simulink? а есть трансляция в C++?

DSP toolbox. Для Simulink'а генерации кода не существует, насколько я знаю.

Там есть "Жаба", и ".Net" (а значит, любой совместимый синтаксис можешь получить, в т.ч. и Cpp).
 
а реально ли в JS сделать что то стоящее?
Смотря что подразумевается под "стоящим" :)
Реально, я думаю, там можно сделать практически всё многое, но так как исходники будут палиться - не каждый решится делать что-то серьёзное.
Примеры того, что уже сделано, можно поискать на оффоруме в соответствующем разделе.
Даже не так. Я бы крайне рекомендовал пользователям Рипера немного пошерстить соответствующий раздел на предмет полезностей :yes:
 
Последнее редактирование:
  • Like
Реакции: naash_g
имхо, освоить нормальный язык программирования (с++, с , базовый асм) в объёме, который необходим для реализации не дико замороченного ДСП алгоритма намного прощще, нежели придумать и реализовать этот самый алгоритм.
Конечно, если разговор о чем-то стоящем, а не о простейшем БИХ фильтре.

а если конечная цель - сделать что-то, что можно более менее продуктивно юзать в реальнмо времени, то тут всякие java имхо лучше забыть.
 
  • Like
Реакции: naash_g
Alex Vortex, а скажи где и что почитать про эту тему??чего то найти не мог...

---------- Добавлено в 19:54 ---------- Предыдущее сообщение было размещено в 19:53 ----------

buncker, посоветуй ресурсы где все можно почитать про программирование вст
 
naash_g, http://www.kvraudio.com/forum/viewforum.php?f=33

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

PS затевать эмуляцию ламповой головы без нормального владения математикой (а лучше бы и радиоэлектроникой) имхо бесполезно. Если эти знания есть или есть силы их приобрести, то вперёд!
 
Последнее редактирование:
  • Like
Реакции: naash_g
А зачем что-то писать? По-моему уже достаточно всего написано. Посмотрите список производителей на КВР-е - там их около тысячи. Писать свой плагин? Вряд-ли на этом можно заработать. Покупать-то будут только у известных марок, а тягаться со Штайнбергом по-моему бесполезно.:)
 
zettt, довольно спорное утверждение. Есть как обычно куча нюансов. Да и топик тут не про деньги вроде =)
 
Alex Vortex, а скажи где и что почитать про эту тему??чего то найти не мог...
http://forum.cockos.com/forumdisplay.php?f=3
http://www.reaper.fm/sdk/js/js.php
а если конечная цель - сделать что-то, что можно более менее продуктивно юзать в реальнмо времени, то тут всякие java имхо лучше забыть.
Ай-яй)) Особой любви не питаю, но всё же на поворотах бы аккуратнее)) Java уже давно не та ява, которой пренебрегали, над которой открыто насмехались, а о её производительности слагались легенды :)
 
  • Like
Реакции: naash_g
Ну если хочется пописАть просто так, то тогда вопросов нет. Просто в отличии от С# сайтовых приложений, где в интернете полно ответов на все вопросы, в ДСП, так не получится. И за время, потраченное на запуск ДСП- приложения, можно написать тучу сайтов и заработать много больше. А нормальные идеи все равно никто даром не сдаст.

---------- Добавлено в 20:31 ---------- Предыдущее сообщение было размещено в 20:30 ----------

Забудьте о Java и C# :) Это не тот инструментарий. Visual C++ без вариантов для РС:) ASM кстати тоже не нужен, если хотите кроссплатформенности.
 
я так реально хотел бы только гитарные усилители научиться делать...схемы вроде есть...желание тоже...осталось умение приобрести:laugh3:
 
ну тема открывалась не с заглавием как быстро написать крутой вст с суперпупер ультрахайпер пилой, мне лично интересно дсп с другой стороны нежели для людей зарабатывающих деньги использованием данных плагинов.
Преобразование Фурье, Котельников и тд и тп.
Ну просто прет:) Интересно как! только сложно:(
С++ и Juce, vst sdk и gui sdk вот современные инструменты для создания плагинов
 
Последнее редактирование:
я так реально хотел бы только гитарные усилители научиться делать...схемы вроде есть...желание тоже...осталось умение приобрести
Ну я смотрел немного как буржуи нечто похожее делают. Тестировал даже. Поэтому мой энтузиазм как-то поубавился делать что-то подобное. Лучше все равно не сделаю. Ограничиваюсь немузыкальными ДСП приложениями, и то мелкими. Короче, если имитация схем - то систему дифференциальных уравнений и решать ее. Какой метод решения самый быстрый - это больше к Лукину вопрос, он у нас математик.(...а-ля Рунге-Кутта и.т.д) Это классика жанра описанная везде. Но... может не получиться по причине малой производительности - расхождения процесса, и.т.д., зато точность результатов высокая. Еще можно посмотреть в сторону цифровых волновых фильтров, тока там все довольно слабо описано и точность вроде как не особо, но зато стабильность работы. Ну вот так то.
 
  • Like
Реакции: naash_g
Ай-яй)) Особой любви не питаю, но всё же на поворотах бы аккуратнее)) Java уже давно не та ява, которой пренебрегали, над которой открыто насмехались, а о её производительности слагались легенды :)
вы писали плаги?
даже на плюсах нажо быть очень осторожным (выделение динамической памяти к примеру), а уж языки с автоматическими менеджерами памяти - это не дело. Я не говорю что нельзя этого делать. Я говорю что если по барабану что изучать - плюсЫ или жаву, то однозначно для этого применения - с++.
 
мне лично интересно дсп с другой стороны нежели для людей зарабатывающих деньги использованием данных плагинов.
Преобразование Фурье, Котельников и тд и тп.
По этой теме можете посмотреть первую лекцию в моём курсе по DSP и раздел "Материалы" там же.
 
Последнее редактирование:
вы писали плаги?
даже на плюсах нажо быть очень осторожным (выделение динамической памяти к примеру), а уж языки с автоматическими менеджерами памяти - это не дело. Я не говорю что нельзя этого делать. Я говорю что если по барабану что изучать - плюсЫ или жаву, то однозначно для этого применения - с++.
Вы говорите именно то, что говорите, а не то, что подразумеваете. Соответственно, я также цитирую и отвечаю на то, что вы говорите, а не подразумеваете.
Яву в обиду не дам =)
 
Всякие эксперименты можно в Реакторе делать, можно также библиотеку Синтмейкер прикупить - всего то 50$ (если не вру), оно сильно упрощает жизнь.Ну а получится что-то дельное - можно и дсп-профи найти, фрилансеров к примеру, чтоб помогли с реализацией, это не сложно. Главное - идея. Оно так везде - нюансы реализации убивают идеи - математики редко бывают музыкантами, а крутые музыканты дсп-шниками :) Инженеры, слабо ориентируется что народу надо. Примеры: синтезатор CASIO с минифейдерми которыми пользоваться будет невозможно(см. пост по хардвару), или пиано Yamaha CLP-340 (2007г) с 3-мя 7ми сегментными светодиодными индикаторами, как в начале 80-х годов и с глюками при передаче инфы с компом...хотя это известные фирмы. А народ и тот обычно сам толком не знает, что ему надо. Даже проверяют сами редко, смотрят отзывы по сети. Я вот долго выбирал себе конволюционник, и выбрал никому не известный Xenium XR-1 не потому, что он дешевый, а потому что он такой же как и тот, который за 180$. Поэтому если вы точно знаете что вам нужно - вперед!

---------- Добавлено в 21:44 ---------- Предыдущее сообщение было размещено в 21:40 ----------

Яву в обиду не дам =)
Никто не трогает вашу Яву. Просто если вы готовы переписать ВСТ-сдк на нее, тогда вперед. Но предупреждаю - там туча кода :)
 

Сейчас просматривают