ReaScripts (скрипты для Reaper) - обсуждение (3 онлайн)

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Например мой озон максимайзер:
<VST "VST: iZotope Ozone 5 Maximizer (x86) (iZotope, Inc.)" "iZotope Ozone 5 Maximizer.dll" 0 "" 1517178701

После имени - в ВСТ число
1517178701 ? немного похоже на unix-дату, но что конкретно означает хз

PS: хотя еще вот такое бывает
<VST "VST3: iZotope RX 4 Decrackler (iZotope, Inc.)" "iZotope RX 4 Decrackler.vst3" 0 "" 148502403{5653545A6E3443695A6F746F70652052}

после переименования эффекта (пкм по эффекту - Rename FX instance)
<VST "VST3: iZotope RX 4 Decrackler (iZotope, Inc.)" "iZotope RX 4 Decrackler.vst3" 0 123456 148502403{5653545A6E3443695A6F746F70652052}

За 0 и последнее число могу спросить на форуме рипера, только как онп влияют на переименование эффекта?
 
  • Like
Реакции: EUGEN27771

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@lil-burn, добавить то можно, но только в конец.
А Женя ищет варианты Реплейса и нужно иметь возможность менять имя для дальнейших удобных манипуляций.
Хотя я и сам уже потерял нить поисков Жени :)
[DOUBLEPOST=1499280815][/DOUBLEPOST]Женя, а глянь как плагины прописываются после поиска в ini файле кофигурационном.
Может это как то поможет?
Ведь если плагин в ini файл не попал, ты его в Рипере и не увидишь, но если попал - то интерпритация однозначная.
Нужно глянуть как там будут прописанны два плага с одинаковым именем.
 
Последнее редактирование:

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771, http://forum.cockos.com/showthread.php?t=193665
насчет нуля пока не ясно
насчет большого числа говорят что это ID эффекта (если так, то имеет смысл попросить функцию AddFXByID() и GetFXID())

а для AU там не одно число? есть пример? я б туда закинул его
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Два одинаковых - в этом корень лажи, они ищут по двум именам и ошибаются
если у эффекта 2 одинаковых названия, то логично, что добавит только первый попавшийся, хотя это конечно не правильно.

у меня сейчас недоумение, почему AddFX() не добавляет JS
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771,
два имени, в основной чанк без опознавательных знаков
там же вроде понятно - первый захват после <VST - название, кот будет отображаться (если пользователь не менял вручную).
"VST: Limitless (DMGAudio)". Кавычки потому что с пробелами. В микшере отображается как Limitless (DMGAudio) - для компактности. Если навести мышь на эффект - отобразится полное название.
второе - название DLL файла. У JS нет
потом 0 (у JS нет)
потом "" либо пользовательское название эффекта
потом число (говорят ID) - но вообще даже не надо знать что оно означает, ведь его как и почти все остальное рипер берет из
reaper-vstplugins.ini
reaper-vstplugins64.ini
(на винде)

разве добавляет?
конкретный пример - надо добавить JS: Volume Adjustment. Как это сделать?
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771, насчет добавления JS - да. конечно добавляет
Но проблема в том, что если есть VST с похожим названием, он добавляет его, а не JS (только сейчас это заметил)

То есть TrackFX_AddByName(tr, 'volume', 0, -1) в моем случае добавляет не JS: Volume Adjustment, а VST: VolumeShaper4 (Cableguys).
(по-хорошему конечно риперу лучше было бы сначала поискать эффекты где volume - это полное название, а потом уже смотреть остальные варианты)

Есть ли идеи как это можно обойти?
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771,
У меня - без проблем.
а есть плагин VolumeShaper? Попробуй добавить для теста.


ни один скрипт в Риапаке по чанкам не работает и не может работать на 100%
Щас погоняю.
Если лучше работает конечно надо заменить

Иначе скрипты будут глючить на длинных чанках(> 4MB)
Где найти такой плагин (с чанком >4 мб), для теста?

И какие глюки могут быть? (не замечал пока)
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771, да, видел косяки с большими чанками. завтра все обновлю. спасибо

Volume adjustment все-таки не добавляет никаким макаром, если есть VolumeShaper (Cubleguys). На другом компе проверил - то же самое
Как это обойти в принципе есть пара идей.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@EUGEN27771, Женя, мне кажется, что для столь функционального скрипта стоит завести отдельную ветку и в ней всё это писать и обсуждать. Заодно там можно будет постепенно и функционал (подкреплённый "зарисовками" GUI) описывать и обсуждать.
В этой теме просто всё утонит в прочих скриптах и обсуждениях.
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
встроенный браузер не может не добавить - это был бы нонсенс
имею в виду при добавлении через функцию AddByName()

напиши прямо на офф. форуме
Могу начать - просто законстатирую, что нашли косяки в стандартном Get/Set chunk, а ты потом добавишь пруфы, которые по-любому будут спрашивать.
А могут спрашивать:
- в чем конкретно выражается проблема, если чанк больше 4 мб?
- это проблема только луа или не зависит от языка?
- почему при использовании предложенного варианта все ок, всегда ли это можно использовать, нет ли других косяков?

и у меня вопрос (у других наверно тоже будет):
- чтоб у людей работали SNM функции насколько знаю нужно установленное SWS? если да, то можно ли повторить эти функции без использования SWS (вдруг можно)?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@EUGEN27771, а нельзя как то при регистрации или после неё сделать переименование "сходных" по имени плагинов средставми того же lua?
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771, а красиво в любом случае не будет, хотя бы потому что
1) нет функции добавления плагина по ID (причем эта функция должна включать позицию, куда нужно добавить эффект и интересоваться, нужно ли просто добавить эффект или заменить.)
2) а самое главное - нет нормальной функции перемещения эффекта. Которая перемещала бы эффект в любое место цепи моментально. Если цепь большая, то это критично.

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

И конечно в этом случае то что творится в цепи этого трека в риперовском микшере, лучше не смотреть (там будет куча пустых JS эффектов).
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@lil-burn, нет, всё немного проще и понятнее.
Задуман скрипт, для которого у Джастина когда-то выпросили API для пинов трековых каналов.
По сути, я очень на это надеюсь, это будет чуть круче чем Blue Cat's Patch Work, но родными средствами Рипера и без глюков, которые в Патч Ворке есть.
Сплитер нужен на треке один, в месте, где сигнал будет рассплитован на паралельную обработку, ну и микшер один, в конце.
Собственно по этому Женя и про матрицу pre, split, mix, post написал - до паралельной цепочки последовательная цепочка эффектов и после тоже.
[DOUBLEPOST=1499460063][/DOUBLEPOST]@EUGEN27771, я думаю, что лучше использовать Вариант 1 и подумать над тем, что GUI скрипта может также быть хранилищем однозначных меток - вот те самые ноды они же скриптом понимаются однозначно, и эффект поставленный в цепочку инсёрта нажатием на конкретную ноду может буть интерпретирован чётко именно по этой самой ноде.
Также не вижу надобности запрещать добавлять не один FX при открытии FX браузера - добавили пару - поставить их последовательно в ту цепочку, в которую добавляли, увидит пользователь, что зря добавил - сам удалит, конечно используя GUI скрипта.
По поводу того, что всё должно произойти за один шаг - так ты же для этого и делаешь матрицу из таблиц - при открытии Скрипта на треке с уже созданной конструкцией (Edit режим) - скрипт читает чанк и пишет всё в твои таблицы Матрицы, затем пользователь начинает что-то править, таблицы автоматом переписываются, а при закрытии скрипта - формируем новый чанк и только тогда на треке происходит полное изменение состояния.
Хотя......., нужно ещё крепко подумать, а не делать ли изменения на треке всякий раз когда Пользователь что-то поменял при открытом скрипте!!!!!!
По поводу стопки костылей - нужно сделать работающий ПЕРВЫЙ вариант и начать тестировать.
 
Последнее редактирование:
  • Like
Реакции: EUGEN27771

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@Aleksandr Oleynik, у Жени прочитал

Даже в простейшем случае - функция должна открыть браузер, дождаться добавления эффекта, удалить лишнее(если было более 1-го FX),
переместить в нужную позицию и переименовать в соответствии с раскладом слотов добавленный эффект.
переместить в нужную позицию - это же значит переместить эффект в цепи трека?
каким образом происходит перемещение?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
переместить в нужную позицию - это же значит переместить эффект в цепи трека?
каким образом происходит перемещение?
При помощи правки чанка, об этом и весь сыр бор.
Итоговая конструкция ведь ни что иное, как запомненный FX Chain, а в нём FX-ы можно перемещать не открывая Рипера вообще. Или нельзя?
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@Aleksandr Oleynik, в том-то и дело что перемещать можно, но не мгновенно.
Там все работает от первого эффекта:
рипер сравнивает по порядку эффекты нового и старого чанков например
1) в старом был FX A и остался FX A- ок
2) в старом был FX B и остался FX B - ок
3) в старом был FX C а в новом - FX D - непорядок - и добавляет FX D
и далее при каждом новом несовпадении добавляет эффекты так, как будто их нет на треке (хотя они есть, просто сместились).

вроде так.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
@lil-burn, а мгновенно, в данном случаи и не нужно. Я знаю как с чанками происходит.
Всё равно других вариантов нет.
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.063
113
62
Киев
Мне в общем не понятно почему Джастин не включит ни в API ни в стандарт функционсл то, что происходит с FX и треками при драг анд дропе
 
  • Like
Реакции: EUGEN27771 и stepperian

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771,
там про функцию
Thank you for the functions!


Just to note that your workaround is quite a bit slower than the reaper function. For example, getting the chunk from 300 (almost empty) tracks:
- Reaper's function time: 0.013485364965163
- Eugen's function time: 0.18676601076731

Nonetheless, your workaround is invaluable when someone wants to be sure he doesn't encounter problems with tracks with large chunks and we thank you!,
что чуть медленнее стандартной.

Кстати, сейчас пишу функции для добавления цепи эффектов на трек и темплейта трека из файла.
Пока стараюсь не мудрить - например для замены цепи просто заменяю блок <FXCHAIN\n(...)> чанка трека на содержимое файла.
Если блока нет (например когда нет и не было эффектов на треке) - предварительно добавляю.
Вроде пока все ровно.

По трек-темплейтам - еще проще: создаю новый трек и заменяю весь его чанк на содержимое файла template.RTrackTemplate
Но сразу видно, что надо что-то делать с GUID-ами: если добавить 2 трека с одинаковым темплейтом, то миди-айтемы пулятся (pooled midi).

Не замечал других косяков/вещей, за которыми надо следить при таком добавлении трек-темплейтов и цепей?
 
  • Like
Реакции: EUGEN27771

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771,
так ищу
PHP:
function get_tr_fx_chain(chunk)
  if chunk:match'\n<FXCHAIN\n' then
    return chunk:match'\n<FXCHAIN\n(.-)>\n>\n'
  end
end
поэтому такой косяк (с ">" в имени пресета) должно игнорить
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@EUGEN27771,
насчет добавления FX:
получается, при добавлении эффекта достаточно только его первой строки (там, где названия плагина и тд) и строки с названием пресета?
Сейчас попробовал
PHP:
'<VST "VSTi: Sylenth1 (x86) (LennarDigital)" "Sylenth1 [32bit].dll" 0 "" 1937337393\nPRESETNAME "ARP 303 Saw">'
работает

PS: вернее работает - добавляет fx, но пресет не добавляет. но уже хорошо. пресет можно потом добавить
 
Последнее редактирование:

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