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

  • Автор темы Автор темы drzhnn
  • Дата начала Дата начала
@dmitryga, а зачем это без плэя нужно вообще?
даже если вы что-то наигрываете без минуса на таймлайне - клик то должен звучать, а значит и плэй нажатым быть.
 
ну можно запустить фоном программу и что-нибудь наигрывать и быстро восстановить ноты если что-то понравилось. Чаще всего, конечно, происходит как вы написали, но бывает что когда нажмёшь стоп тут то и получается то что нужно и второй раз уже играть не надо)). Ну и самое главное - КАК ТАК что рипер не может то что могут другие О_О =)
 
@elektrozz,

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

Вот же оно, нет?
upload_2016-4-5_11-35-41.png
Если имеются в виду пресеты плагина, которых нет в выпадающем списке пресетов, то такой фичи, да, нет.

Эти же на F11-F12 поставил, работают.

Но порой хочется перематывать только либо по втроенным (built-in), либо только по пользовательским (созданным пользователем, user presets). Если разберусь, как это сделать, к вечеру здесь появятся + еще несколько на эту же тему
 
Делюсь. Выделенные дорожки при активации (клава В или кнопка) скрипта создают общий BUSS с соответствующей коммутацией и отключением Master out.
 

Вложения

  • Like
Реакции: axis
Михаил,@lil-burn, если с hex разбирались - подскажите пару вопросов:
Задача такая - имеется wav файл из Рипера - то есть, source из айтема.
В этом файле есть чанки и т.п.,в общем это просто, считали.
Далее секция data - это семплы по кол-ву каналов.
П.С. вопрос очень красиво решен через string.unpack - string.pack
 
Последнее редактирование:
  • Like
Реакции: Beckoff, nounaim и axis
@EUGEN27771,
A = (B2 & 0xFF | B1 << 8) * sign
для меня это пока жестко)

разбирался недавно немного с сохранением пресетов и в частности с преобразованием base64 в hex, сделал lua-скрипт, который это делает, на чем пока остановился, т.к. оказалось, что далеко не все пресеты сохраняются в ini-файл просто преобразованием куска чанка трека с плагином из 64 в hex (хотя некоторые - да, например Sausage Fattener от Dada Life).
 
Updated
Было время повозиться, сделал.
В теме по скриптам, SampleEditor - готовый вариант. Распаковка - упаковка данных реализована напрямую средствами lua
 
Последнее редактирование:
  • Like
Реакции: Strannicom
Раймонд обновил страничку с грамотно форматированной API документацией.
Теперь клик = скопировать. Слева перманентный поиск. Ну и все последние функции добавлены.
У кого старая версия - почистить кукисы.

http://extremraym.com/cloud/reascript/x-raym_reascripthelp.html

Также продумываем сейчас с ним собственную ветку по API документации, ибо кокосы на это давно забили болт. Начали пока с репозитория документации. Что с ним дальше будет и в какую сторону от кривого нативного html пойдёт это дело - пока не знаем, думаем. https://github.com/ReaTeam/ReaScripts-Doc
 
Михаил, уговорите Кокосов включить в API скриптов OSCII-bot, а было бы хорошо и модуль аудио входа-выхода прямой иметь в скрипте.
Очень не хватает прямого контроля хотябы за midi и osc.
Строить костыли через параметры JSFX - бред.
 
Последнее редактирование:
Есть вполне, но надо обращаться сюда: http://rmmedia.ru/threads/110165/
И с подробностями: куда копировать получившиеся CC мессаги с максимальным разрешением - на какой трек, в какой айтем, на какую позицию, какой СС
Пока я сделал экшн с командами Apply track/take FX to items (MIDI output) и Convert active take MIDI to .mid.
Остается птом забрать мидюху из папки и уже применить.
Но вопрос, конечно же не в этом, тут способ получения результата.
А сам процесс осуществляется с помощью вот этих скриптов JS:
https://yadi.sk/d/PY5lYtA9s9sUV
Так как я в скриптах нибумбум (ума хватило только на то, чтоб убрать лишние выводы в конверторе на 4 СС, оставив лишь один), не знаю, откуда берутся лесенки при формировании СС или питч-бенда.
В Рипере умолчание указано разрешение макс. кол-ва мидисигналов в 960 тиков за четверть ноты.
Но лесенки получаются примерно по 40-50 мс, что достаточно много.
Вдруг в самом скрипте это разрешение можно улучшить?

А по поводу заданных конкретных вопросов -
1) через кастом экшн вроде результат хороший, поэтому JS висит как плагин. Если не как плагин, а сразу обработчик, тогда можно делать по типу баунса в тот же айтем или сразу же спрашивать куда закинуть миди файл с контрллером (так даже было бы удобнее). Длина как у исходной вавы.
2) СС в том скрипте я выбираю вручную по ситуации, но в принципе это не суть важно, его всегда можно потом кинуть в нужный контроллер.
Но если нельзя сделать свой выбор перед баунсом, то предпочел бы, чтоб сохранялось в какой-нибудь контроллер, отличный от стандартного набора (1,2,7,10,11, итп) в какой-нибудь безымянный.
 
Последнее редактирование:
@@Michael, ухты, класс какой.
Спасибо большущее.
п.с. С луа в Рипере досель делов не имел, затрудняюсь предположить, куда файлик разместить.

п.с. Все, разобрался. У меня еще Рипер 4й стоял.
Заработало все четко.

А хотелки можно? :)

1. Не смог подружить скрипт с экшном convert active take midi to .mid потому что фокус остается на вавке, а экшна для переброски фокуса на айтем следущего трека не нашел. Не велика беда, но вдруг..
2. На будущее - в какой строке скрипта можно поменять разрешение конвертации (типа ppq/2 )?
Чтоб не менять сам параметр в Рипере.
3. Самое главное - можно ли выбирать способ создания контроллера между биполярным и однополярным? Насколько я понял, сейчас он берет минимальное значение из аудио, делая его нулем, а максимальное - 127. Для биполярки поведение было бы несколько иное: ноль аудио=63, 1=127, -1=0.
 
Последнее редактирование:
Раймонд обновил страничку с грамотно форматированной API документацией.
Теперь клик = скопировать. Слева перманентный поиск. Ну и все последние функции добавлены.
непривычно))
в идеале конечно - это функции, встроенные в редактор рипера, с возможностью драг-н-дропить их из отдельного окна функций (добавил бы такое окно, или выпадающий список функций с полем фильтра). А сами функции сделал бы нередактируемыми - только переменные менять, тоже драгндропом например перетаскивать из одной строки в другую.
 
@ljekio фокус перевёл, если переводить пики сс, рипер займёт 100% твоего проца за милую душу. Я сливаю пики в таблицу и ищу RMS, далее рмс ковертится в СС. Параметр aa.window_sec - окно рмс в секундах
 
Выложил сюда скрипт http://forum.cockos.com/showthread.php?t=177883
Но "внимания тогда не обратили" - а на самом деле это очень крутой скрипт для разработки.
Годится для тестов офф-лайн обработки и т. п.
Скорость впечатляет, это сравнимо со скоростью рендера Рипера - что очень круто для скрипта, скажу я
 
Интересный(для меня) вопрос перевода чанка в пресет был. Спасибо @Aleksandr Oleynik, за содействие(и за сам вопрос тоже). Сам механизм готов и работает.
Проблема пока в быстродействии. Есть некоторые эффекты, которые тянут за собой около мегабайта данных о всех загруженных в них пресетах, а то и более(нафига - непонятно), при этом все равно реально сохраняется только один. Перевод в Hex занимает, соответственно, некоторое время, пару-тройку секунд. Но таких, слава Богу уже не много. Скрипт, естественно сырой, будет допиливаться-перепиливаться, но вполне рабочий. Для тестов, кому интересно.
П.С. Основная проблема с производительностью при переводе в Hex уже решена, и будет еще ускорено и допилено в других моментах(хотя и так уже нормально).
Save_VST_Preset.lua
 
Последнее редактирование:
  • Like
Реакции: lil-burn
@EUGEN27771, есть ли какие-нибудь предположения, из-за чего чанк трека может быть непостоянным? делал недавно такой опыт: брал чанк трека с Kонтактом (NI Kontakt) и сохранял в файлы - каждый раз в новый файл - в результате чанки были разные. Менялся код с данными о параметрах Контакта, но менялось немного знаков, только несколько. Компрессор The Glue, например, тоже менял чанк. А некоторые не меняли.
 
@lil-burn, это контрольная сумма. Если хочешь, объясню все подробно, я сам потратил время, чтобы понять как что устроено.
Кстати, без контр. суммы работать не будет - проверено - только эффекты с одним блоком Data будут.
================
В общем, если кому-то понадобится, а то я сам скоро забуду.
Hex в файле пресета повторяет чанк и наоборот. Это просто разные форматы(B64-Hex).
Но есть нюанс - в Hex данные храняться блоками по 16384 байт(если данных более чем 16384) + один байт - контрольная сумма блока. Это просто младший разряд от общей суммы всех байтов блока - для проверки я делал небольшой спец.скрипт и это всегда так, могу выложить.
В последней строке чанка хранится имя пресета, но свое можно не применять - это принцип Рипера, он считает из пресета - хотя у меня и стоит функция(закомментирована).
Сами данные в чанке (и в Hex) - это значения параметров эффекта и прочая̶ л̶а̶б̶у̶д̶а̶ полезная информация. При желании можно легко найти и изменить значение какого-либо параметра по байтам. Вот и все...
 
Последнее редактирование:
  • Like
Реакции: lil-burn
делал недавно такой опыт: брал чанк трека с Kонтактом (NI Kontakt) и сохранял в файлы - каждый раз в новый файл - в результате чанки были разные.
Если бы ты делал внимательно, то чанк всегда был бы одинаковым. Имя пресета тоже меняет контр. сумму:). При этом имена 123 и 321, например, дают одинаковую(при условии, что остальное не меняется). Также и, например, эффект с двумя параметрами при прочих равных, если поменять местами их значения ровно противоположно, даст одинаковую контр. сумму. Я это заметил сразу. @Aleksandr Oleynik, предположил, что это влияет на восприятие Рипером - поменялись ли данные или нет. Я сделал тест и вычислил точно, но это я пишу быстро, на самом деле тоже провозился долго. Сперва попытался заменить нулями, потом рандомными, нифига Рипер не хочет, ему только реальную контр. сумму подавай.
 
  • Like
Реакции: lil-burn
Надо усовершенствовать функцию декодирования base64 - она отнимает 90% времени , и у меня есть мысль, сразу в Hex. И сразу из чанка брать нужное кол-во (это 4/3 ). Надо все это проверить, может только кажется, что быстрее будет. Но интуиция подсказывает... и кое-кто(я):) утверждает, что да. Если только не забросить, как с маркерами на полпути- но маркеры-то я сделал, но тоже только в тест-режиме.
Смотрю, как-то до конца у меня ничего не доводится, интерес пропадает к задаче.
 
Смотря что считать результатом. Это вопрос философский. Ведь остальное сделать уже легко. Я понимаю, что в идеале нужен готовый и быстрый скрипт. Но есть ведь еще куча интересных вещей и детское любопытство преодолевает, не могу ничего с этим сделать - здесь я(к сожалению или к счастью) остался ребенком, у меня везде так...Я по-детски радуюсь когда что-то начинает правильно работать. И Вы бы тоже, кстати, тут не сидели без этого любопытства - я не верю, что это прагматизм. Мы бы стали роботами, уж лучше тогда быть животными, они тоже не лишены этого чувства, уверяю.
Но функцию более быструю я сделаю(если смогу), это интересно.
==
Из нового - продумал FFT-фильтр, который работает в 5-10 раз быстрее, чем были до этого. Если кому-то интересно - опишу схему.
 
Из нового - продумал FFT-фильтр, который работает в 5-10 раз быстрее, чем были до этого. Если кому-то интересно - опишу схему.
Безусловно интересно!
Женя, я ведь такой-же как ты ребёнок, хоть и уже далеко за 50 и голова варит хуже на порядок чем у тебя. :)
 
Суть - использовать функции array - copy, clear, table - они, насколько я понял работают с областью памяти. Это в десятки раз быстрее, чем в цикле. В зависимости от задач это может быть полезным, а может и нет. Обычный фильтр без перекрывающихся окон будет раз в 10 быстрее. А если нужно собирать результаты пачками - copy в любом случае ускорит.
 
@axis,
С буржуйским конечно у многих проблема, но там прекрасные видео материалы поясняющие работу скрипта есть ещё - в общем полноценный мануал.
 
кстати, не заметил, что скрипт платный, все искал его в ReaPack )
 

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