JS to VST транслятор+компилятор (1 онлайн

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
Всем добрый день!
По форуму пошуршал и подобного ненашел, так что просьба к модераторам в случае чего поправить а не пинать.


JES2CPP может транслировать код js эффектов Reaper в код на c++ а затем компилировать с помощью компиляторов mingw (gcc) или microsoft visual studio не ниже версии 2010 года.
Так же для трансляции требуется vst sdk который можно скачать с сайта
steinberg.net из раздела для разработчиков.

Подробнее о JES2CPP читаем тут:
http://wascal.net/music

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

PS: Недавно как раз поднимался вопрос в данном разделе о возможности разработки своих vst плагинов на основе js, теперь у всех есть такая возможность)))) И лично мое мнение: я уже второй год ковыряю Csound, Chuck и Cabbage но иногда крыша едет от количества замудреных операторов и генераторов в коде, а с js все намного понятней и проще.
[DOUBLEPOST=1433409641,1432974524][/DOUBLEPOST]Выяснилась одна немного неприятная вещь: geep jeez умеет транслировать для компиляции в vst только аудио и миди эффекты, синтезаторы идут с немного другой структурой и позиционируются в рипере как vsti.
Я уже веду с разработчиком переписку и надеюсь мы дойдем до взаимопонимания и получится сделать удобный инструмент.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
На сколько я понимаю, для пользователей Рипера подобная трансформация не только бессмысленна, а и возможно ущербна?
 

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
Aleksandr Oleynik,
никакого ущерба, наоборот компилированый код исполняется в несколько раз быстрее чем интерпретирование js.
Судя по тому что читал в блоге Дерека он занялся разработкой транслятора из-за медленной обработки какого-то аудио с помощью js.
Разработка jes2cpp только началась и в будущем будет еще много чего, в том числе и оптимизация кода которая даст еще прирост к выполнению плагинов.
 
  • Like
Реакции: Aleksandr Oleynik

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
После двухнедельной переписки Дерек Эванс согласился допилить js2cpp до создания vst синтезаторов.
Ориентировочно новая версия будет к июлю, прийдется очень многое в трансляторе переписать практически с нуля.
 

xlt

Well-Known Member
1 Май 2008
1.388
860
113
Обратите внимание, пользователь заблокирован на форуме.
@Alex_028, большая производительность сомнительна, так как JS много где исполняется в контексте виртуальной машины с JIT оптимизацией и компиляцией, что дает прирост производительности. Это 10 лет назад все было печально, а сейчас прогресс не стоит на месте. Например в компиляторе LLVM(clang) который стал очень популярным, есть JIT компилятор для x86 кода, когда прозрачно можно обычный компилированный код запускать в контексте виртуальной машины и использовать JIT оптимизацию, что дает на сложных вычислениях приличный прирост производительности.

Да имхо смысла от транслятора в C++ код тоже нет смысла, это очень быстро перенести код например во фреймворк WDL-ol, алгоритм не меняется, а математические функции везде одинаковые. Смысл только есть переписать алгоритмы на ассемблер с оптимизации алгоритмов под платформы с использованием векторизации SSE AVX итд.
 

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
xlt, за устройство js незнал, думал что это обычный интерпретатор.
С принципами работы vm достаточно хорошо знаком, но все же компилированый код с оптимизацией на уровне трансляции и компоновки выполняется процентов на 10 - 15 быстрее. Хотя я давно уже не интересовался vm и может сужу по java и angelscript.
 

xlt

Well-Known Member
1 Май 2008
1.388
860
113
Обратите внимание, пользователь заблокирован на форуме.
@Alex_028, давно не обычный, так бы все медлено работало включая браузеры итд. Сейчас в природе пратически не осталось чистых интерпретированных языков. C jit производительность может быть выше чем с нативным кодом. C JIT считайте код оптимизируется и компилируется при выполнении кода и после каждой итерации алгоритма он оптимизируется в памяти.
 

Alex Longard

Well-Known Member
10 Май 2015
1.941
1.232
113
36
München->Deutschland, Київ->Україна
xlt, довольно интересно стало, сейчас погуглю. Знаю только что с 20 какой-то версии firefox движок перевели на asmjit.
Да и сам я сейчас периодически пишу для себя на языке Oxygen который некоторые вещи за несколько миллионов итераций выполняет шустрее чем аналогичное на msvc. А сам Oxygen пошел от jit-компилятора Asmosphere.
Вы не могли бы скинуть линк, где вам попадались сорсы js? Любопытно поковыряться.
 

Antonio

Well-Known Member
9 Ноя 2003
4.343
1.558
113
48
Алматы
Последнее редактирование:

Сейчас онлайн (Пользователей: 0, Гостей: 1)