TouchOSC + Reaper

Стандартные лоджик раскладки?
[DOUBLEPOST=1441907841,1441907763][/DOUBLEPOST]У меня вообще была мысль сдать/принимать оск из скрипта, но пока это невозможно.
 
Я использую Lemyr.
Но делаю все ремоуты сам и под конкретные проекты и задачи.
Очень не люблю универсальных систем, в которых используется 5% от того, что перед глазами.
Но для Lemur есть сделанные под Рипер ремоуты, я знаю о двух полноценных как минимум -
Вот один из них, он мне очень помог в понимании в своё время
http://forum.cockos.com/showthread.php?t=98673

А вот про второй -
https://www.gearslutz.com/board/pro...onths/856816-new-reaper-controller-lemur.html


[DOUBLEPOST=1442035192,1442035122][/DOUBLEPOST]
У меня вообще была мысль сдать/принимать оск из скрипта, но пока это невозможно.
А как бы мне это пригодилось!!!!!!!!!!!!!!!
 
Последнее редактирование:
  • Like
Реакции: M Clis
@Коля Ефремов, в эдиторе можно отредактировать или создать любой собственный слой.Сам эдитор примитивен,там и объяснять нечего,другой вопрос-надо изучить документацию по OSC в папке Рипера,там с примерами расписано.Что-то понятно,что-то не очень,но путем экспериментов выясняется в итоге.
 
Не совсем по Touch OSC, скорее именно по риперу. но юзаю touch, по этому здесь.
Пока не совсем понял пока с чего начать. В KSP было сразу понятно, ято без каллбеков скрипт не заработает. Сейчас кажется, я что-то упускаю...
Вот что необходимо для аналога Hello World?
добавил стандартные строчки:
Код:
DEVICE_TRACK_COUNT 8
DEVICE_SEND_COUNT 4
DEVICE_RECEIVE_COUNT 4
DEVICE_FX_COUNT 8
DEVICE_FX_PARAM_COUNT 16
DEVICE_FX_INST_PARAM_COUNT 16
DEVICE_MARKER_COUNT 0
DEVICE_REGION_COUNT 0
плюс к этому простейшую команду для запуск плейбека:
Код:
PLAY t/play
и добавил в osc touch layout кнопку с сообщением "t/play" Именно эта команда и приходит при "прослушке" в рипер.
Но плейбек не начинается...

Что я делаю не так?
 
А есть ли возможность вывести по OSC GR-датчик от ReaComp? С параметрами все понятно (хотя еще не разобрался с отображением параметров адекватными числами. В Db или в Ratio). А вот подключить GR-метр к OSC не представляю как
[DOUBLEPOST=1446014136,1445921709][/DOUBLEPOST]А вот еще такой вопрос:
при создании кастом-экшена ему присваивается ID вида _2f217f1af3dedd4fbb51fc29164b535d
И когда OSC присылает action/43512 все работает нормально, но когда посылаешь action/_2f217f1af3dedd4fbb51fc29164b535d - ничего не происходит...
Возможно ли присвоить числовой ID, или дело не в этом? жзэ
7\эжооооооооооооооооооооооооооа
 
А вот еще такой вопрос:
при создании кастом-экшена ему присваивается ID вида _2f217f1af3dedd4fbb51fc29164b535d
И когда OSC присылает action/43512 все работает нормально, но когда посылаешь action/_2f217f1af3dedd4fbb51fc29164b535d - ничего не происходит...
Это проблема TouchOSC,он не передает строковые данные(или некорректно) от этой команды.Сталкивался с таким,некоторые программы могут передавать,вроде Lemur,например.
озможно ли присвоить числовой ID, или дело не в этом?
Можно попробовать узнать числовой ID через скрипт(NamedCommandLookup) и проверить в TouchOSC.Есть вероятность ,что будет работать,но проверить не могу сейчас.
 
  • Like
Реакции: PianoIst
Честно говоря уже давно я упёрся в несколько ограничений и проблем с Touch OSC и перешёл на Lemur.
 
  • Like
Реакции: PianoIst
Коллеги, вопрос по локальным OSC-сообщениям (как еще один "слой" автоматизации Рипера, позволяющий рулить локально, удаленно, плюс работать с "интерактивно" выбранными треками, не забивая перегруженный "нотами" MIDI). У Alexander Oleynik увидел идею для следующего CycleAction-а и он прекрасно работает с "текущим" треком, без ссылки на его номер/имя - управляет любым параметром FX:

CONSOLE /device/track/follows LAST_TOUCHED
CONSOLE /fx/1/fxparam/1/value 1

Однако с посылом - так, увы, не получается, следующий пример не работает:
CONSOLE /device/track/follows LAST_TOUCHED
CONSOLE /send/1/volume 1

Хотя строка с полным синтаксисом (с номером трека, скажем, №1) - работает прекрасно:
CONSOLE /track/1/send/1/volume 1

В чем может быть дело и есть ли обходной OSC-путь? Про EEL/LUA-путь знаю, морально готов написать 10 строк кода, но хотелось бы чисто в OSC.
 
Если морально готовы к скриптам - начинайте их писать...., тем более, что данная задача выльется в менее чем 10 строк кода.
OSC имеет смысл трогать только для внешних ремоутов.
Но я вечером гляну.
 
OSC рассматриваю как раз для "интеграции" внешнего ремоута с интерактивными действиями за компом. Эдакая "звукорежиссура в 4 руки". На самом деле решаемая задача намного шире - глубочайшая автоматизации Рипера в живой группе, с помощью "всего". При этом я за полное равноправие всех музыкантов, т.е. все - управляют всем. Для сочинения/записи это оптимальная формула. Полугодовые опыты обнадеживают: все участники группы - гитаристы (т.е. не-клавишники) - но рулят всем Рипером нотными клавишами с огромным удовольствием.

Вот что сейчас у меня одновременно взаимодействует с Рипером (пока всё - по MIDI):
- 3 миди-клавы (49+61+82 клавиш + в общей сложности 24 крутилки)
- 2 миди-контроллера с 60-ю "крутилками" каждый (реально нашел чем занять - с "десяток")
- 2 ремоута по WiFi для персонального мониторинга (смартфоны музыкантов через ПО Wireless Mixer - 14 фейдеров и пяток кнопок - в работе)
Сам Рипер глубоко настроен (JSFX-управляющие самонаписанные плагины, 20-ти строчные CycleActions, скрипты LUA), причем намеренно обошелся без defer-скриптов (боюсь падения производительности и знаю что зря, но всё же).

Хочется наконец за год доделать шаблон, с которым можно работать почти не касаясь компьютерной клавиатуры и мыши, только нажатиями миди-нот. Подтолкнул к этому "Инструментальный стек" от @Alexandr Oleynik и вообще весь Форум своим просто невероятным доброжелательным отношением к новичкам, взаимопомощью по "проблемам автоматизации". Это феномен, который я связываю с "экосистемой" Рипера. Кокосовский сайт в этом отношении также выделяется очень разительно от других.

Обязательно поделюсь здесь наработкой. Инструкция (всё по-уму) к ней - уже перевалила за 200 страниц...

OSC в SWS Console может упростить "автоматизацию последнего клика", то есть ту, которую и лучше, и быстрее, и креативнее выполнят сами музыканты - обычные пользователи, сидя по углам дома. Для них Console внутри CycleAction - ну в 100 раз проще и ближе, чем EEL/LUA/Python. Я это много лет назад выявил случайно на работе, с макросами VBA/Python. Надо только один раз показать как...
 
Последнее редактирование:
На самом деле решаемая задача намного шире - глубочайшая автоматизации Рипера в живой группе, с помощью "всего".
Эта задача уже решена, и без скриптов она в общем НЕ РЕШАЕМА красиво!
Вот всё что ставилось как задача в далёком 2013-ом году -
Спецификация возможностей (ТЗ) концертного (Live) сэтапа
Полностью решено и на много, много больше.
[DOUBLEPOST=1506766974][/DOUBLEPOST]
OSC в SWS Console может упростить "автоматизацию последнего клика", то есть ту, которую и лучше, и быстрее, и креативнее выполнят сами музыканты - обычные пользователи, сидя по углам дома.
Музыкантам не нужно разбираться ни со скриптами ни с OSC в SWS Console, да и с компом они могут быть на Вы. За годы общения с реальными коллективами вокруг моего сэтапа я ТОЧНО понял - музыкант должен уметь хорошо играть и этого более чем достаточно. Все попытки сделать из него комп креативщика обречены на фиаско как правило, за редким исключением.
По этому - строя какой-то програмный сэтап для живого коллектива стоит рассчитывать МАКСИМУМ на Одного члена коллектива, который способен хотябы в общих чертах понять КАК ему на вашем сэтапе собрать следующую композицию.
Это Во-первых!
Во-вторых, я ОЧЕНЬ не советую опираться на SWS надстройку вообще и на их CycleAction в частности, потому как этот проект потихоньку скисает и уже КУЧА глюков с SWS Экшинами и их програмками в новых версиях Рипера.
Если раньше ребята хотябы для релизных версий Рипера выпускали апгрэйды SWS, то теперь это в почти полном простое....
Ну и в третьих, я прошол путь от примитивных Экшинов и написанных сторонними разработчиками JS-ов до почти самостоятельно написанных скриптов для своего програмного сэтапа и могу ещё раз сказать -
Без освоения LUA вы не сделает толковый сэтап ни как - это всё равно будет поделка, с которой работать сможете только вы.
 
Последнее редактирование:
  • Like
Реакции: Ivan_k26
При этом я за полное равноправие всех музыкантов, т.е. все - управляют всем.
Абсолютная утопия!
Вот тут ваши OSC команды, основанные на follows LAST_TOUCHED и посыпятся - одновременно три человека начнут менять параметры на казалось бы ими выбранных треках.

От Теоретической Идеи, которая даже может и заработать в условиях студии, до Реально Работающего Лайв Сэтапа - ПРОПАСТЬ, пропасть из кучи условий, которые вам прийдётся добавить во все ваши цикл экшины и скрипты, чтоб всё это работало в реальной чихарде живого выступления.
 
  • Like
Реакции: Ivan_k26
@Alexandr Oleynik, благодарю за развернутый ответ! Ваше Техзадание было как раз тем самым "спусковым крючком" моего проекта. Как же я рад что увидел его до, а не после начала своих изысканий! И я, так же как и вы, - быстро пришел к необходимости переписывания решения (его наиболее уязвимых участков) максимально на скриптах LUA или Python, на котором у меня есть любительский, но длительный опыт программирования.

SWS, как кто-то выразился, "главный продукт французского экспорта, после шампанского (коньяка?)" - на мой взгляд, как IT-проект довольно живуч, поскольку опирается на API, все-таки OpenSource и кол-во его пользователей ненамного отстает от числа пользователей Рипера, особенно "там". Повторение части его функционала на LUA (те же LiveConfigs) - будет классическим изобретением велосипеда и тратой времени. Я сам забраковал несколько его модулей, те же SWS SnapShots. Но в целом SWS для меня пока незаменим.

Уровень комп. грамотности музыкантов, да и вообще сотен подконтрольных по работе людей мне тоже хорошо известен (в среднем это 3+). Я готов в автоматизации "опуститься" до уровня понимания большинства, в надежде выловить там крупицы золота. Точнее дать людям возможность самим "намыть себе" если не богатства, то хотя бы сделать из хобби - Хобби, заключить свои "жемчужины" в пусть и наскоро сверстанную, но все-таки оправу. Даже в своей музыкальной семье я столкнулся с тем что старшие братья (с музой, консой, гнесинкой) - самостоятельно "не осилили" некоторые моменты в SAWStudio, Sonar, Cubase - а шаблонизированный Reaper позволил "шагнуть за край" той самой кривой обучения, на которой куча "шишек" и граблей с ложными экстремумами. По крайней мере, я так надеюсь.

То что равноправие это утопия в половине творческих коллективов - полностью согласен! Буду делать решение для другой половины, где творческое неравноправие страшнее анархии, так как убивает творчество и разрушает сначала "ауру", дружбу, а затем и саму группу. Проходил это лично не один раз, видел у многих. В такой группе не должно быть "приказчика". После развала - опасно оставаться одному. В exUSSR невозможно прожить на студийных альбомах, и такое "творческое одиночество" часто приводит к такой же "смерти". Разнообразие и качество иностранной музыки, в той же Швейцарии, - наглядное тому подтверждение.

Разрулить конфликты и всякие overrides в Рипере - помогут LUA-скрипты, читающие параметры напрямую из JSFX-эффектов, чанков и прочей интерактивной хрени. Благо что в Рипере можно всё.

Сканить набор треков по их GUID-ам defer-скриптом или по требованию, нумеровать их - уже научился, то есть задачу в общем-то решил.

Есть ли у кого рабочий код LUA-скрипта с last_touched или какой другой интересный способ работы OSC без конкретного номера трека?
 
Последнее редактирование:
Александр, есть ли у вас рабочий код LUA-скрипта с last_touched или другой способ работы OSC без конкретного номера трека?
А скрипт, с точки зрения OSC, может только тоже, что и Console - отправить ЛОКАЛЬНОЕ OSC сообщение -
reaper.OscLocalMessageToHost(string message, optional number valueInOptional)
Send an OSC message directly to REAPER. The value argument may be NULL. The message will be matched against the default OSC patterns. Only supported if control surface support was enabled when installing REAPER.
Проблема как правило ИМЕННО в last_touched, я просто вам ОЧЕНЬ рекомендую не использовать в своём сэтапе ни last_touched ни selected_track - как вещи не определённые и суппер не надёжные. Кстати - в Рипере эти вот два понятия вообще не совпадают, если вы знаете - т.е. выделенный трек может быть один, а last_touched совсем другим.
Думаю, что проблема с Send-ами при last_touched относится только к local OSC, который очень куций функционал имеет. Т.е. с внешнего Ремоута вы легко достучитесь и до сендов скорее всего, не проверял.
В еденицах измерения Рипера САМЫМ надёжным является GUID - так как он остаётся за треком в проекте до его смерти не зыблимым, даже если трек перенести в совсем другую позицию.
Имена треков стоит использовать только при старте проекта для идентификации и всё.

И по поводу defer -а --- я тоже очень переживал за то, что постоянно висящий скрипт может вызвать проблемы в работе Рипера, ну или сожрать ресурсы компа, которые так нужны для Лайва и его малой задержки.
На практике -
Во-первых, есть способы не сканировать состояние Рипера непрерывно, а только при определённых событиях.
Во-вторых, в Лайв проектах почти всегда CPU остаётся не догруженным из-за того, что предел производительности не CPU определяет, а возможности ASIO. В Рипере это RT CPU - и если значение его выше 55% - ждите ПРОБЛЕМ или увеличивайте буфер. При этом CPU может быть не выше тех-же 50% и позволять куче скриптов с defer крутиться всё время работы проекта.

И ещё раз хочу предостеречь вас от привязки к last_touched!
С Лайв сэтапом во время выступления работают все музыканты на сцене, т.е. тем или иным образоб обращаются к Риперу и плагинам в нём и делают это ОДНОВРЕМЕННО.
Представляете сколько вам прийдётся написать УСЛОВИЙ, чтоб разрулить этот самый last_touched для каждого музыканта отдельно? И всё равно это не будет работать.
Для надёжной, одновременной работы нескольких пользователей с Проектом Рипера все их обращения должны быть Абсолютными, ни в коем случаи не относительными.
[DOUBLEPOST=1506850432][/DOUBLEPOST]
SWS, как кто-то выразился, "главный продукт французского экспорта, после шампанского" - на мой взгляд, как IT-проект довольно живуч, поскольку опирается на API, все-таки OpenSource и кол-во его пользователей ненамного отстает от числа пользователей Рипера, особенно "там".Повторение части его функционала на LUA (те же LiveConfigs) - будет классическим изобретением велосипеда и тратой времени.
Я с этого самого LiveConfigs и начал и очень быстро напоролся на все его ограничения, который не совместимы с реальной свободой творчества.
Даже не хочу перечислять все его ТУПИКИ.
Я сам забраковал несколько его модулей, те же SWS SnapShots. Но в целом SWS для меня пока незаменим.
Очень редко, из-за лени, использую готовые SWS Action и всё.
Потратьте время на изучение LUA и API - и получите реальную свободу.
 
Есть ли у кого рабочий код LUA-скрипта с last_touched или какой другой интересный способ работы OSC без конкретного номера трека?
Опишите как можно подробнее задачу, без привязки к своим знаниям возможностей Рипера и SWS надстроек.
Опишите так, как если бы и вовсе ни одного Экшина ни разу в жизни не использовали.
 
Aleksandr, внял вашим советам:
- с внешнего ремоута достучался до сендов, работает хорошо, но отзывчивость ниже чем по миди (проверю WiFi). Про нерабочий CONSOLE /send/1/volume 0.5 - буду писать разрабам SWS, наверняка их косяк;
- изучаю API (какой же он большой!);
- SWS Action-ов слишком много, чтобы от них отказаться. Без них Рипер - не Рипер.

Свою вышеописанную задачу решил допиской управляющего JSFX и LUA-скрипта. Теперь 4-е крутилки миди-клавы управляют на каждом текущем (любом - миди-аудио) треке сразу 20 параметрами 8-ми эффектов, в зависимости от миди-канала (1,10,11,12,13):
- 1 Compressor - Treshold, Ratio, Attack, Release
- 1 EQ - Низ обрезной фильтр, "Пик" +6 Дб, "Долина" -3 Дб, Верх обрезной фильтр
- 3 Reverb:Hall, Amb, Room (уровень посыла, Time)
- 2 Delay:X4, X2 (уровень посыла, Feedback)
- 1 Chorus (уровень посыла, Feedback)
Причем эффект м.б. любым (JS/VST) - нужно лишь сделать MIDI Learn (1 минута) и сохранить его как Default Controller Mapping. Старая добрая миди-маршрутизация, пока не OSC.

Взял первый раз в руки чужой Fender JazzBass, отстроил звук как в "The Wall" Пинков за 2(!) минуты, не касаясь комп. клавы и мыши. Viola! Дольше предусилитель настраивал.

Спасибо за советы и особенно за предостережения! Буду копать глубже...
 
Последнее редактирование:
изучаю API (какой же он большой!);
И почти ни как не описанный - вот в чём беда.
SWS Action-ов слишком много, чтобы от них отказаться. Без них Рипер - не Рипер.
Для ваших целей - все SWS Экшины можно создать Скриптами, но прийдётся с этим попотеть. Зато вы не будете заложником проекта, который может в один прекрасный момент схлопнуться.
 
Свою вышеописанную задачу решил допиской управляющего JSFX и LUA-скрипта. Теперь 4-е крутилки миди-клавы управляют на каждом текущем (любом - миди-аудио) треке сразу 20 параметрами 8-ми эффектов, в зависимости от миди-канала (1,10,11,12,13):
- 1 Compressor - Treshold, Ratio, Attack, Release
- 1 EQ - Низ обрезной фильтр, "Пик" +6 Дб, "Долина" -3 Дб, Верх обрезной фильтр
- 3 Reverb:Hall, Amb, Room (уровень посыла, Time)
- 2 Delay:X4, X2 (уровень посыла, Feedback)
- 1 Chorus (уровень посыла, Feedback)
Причем эффект м.б. любым (JS/VST) - нужно лишь сделать MIDI Learn (1 минута) и сохранить его как Default Controller Mapping. Старая добрая миди-маршрутизация, пока не OSC.
Рипер, как среда создания любой сложности сэтапов очень раззадоривает людей творческих, но нужно себя сдерживать и ВСЁ время задавать вопрос - а ТОЧНО это кому-то кроме меня будет нужно и интересно?
Опять же из опыта, если речь идёт не о "поиграться" стоит нацелиться не на свободу творчества на сцене, а на качественный прогнозируемый саунд.
Слушатель (Зритель) ни как не оценит ваши сложные манипуляции с 20-ю параметрами на сцене в риалтайме, а вот лажу в результате этих не отрепетированных манипуляций услышит сразу.
Строя свой сэтап я поставил целью не управляемость всего и вся (хотя это без проблем реализуемо как угодно в Рипере, ещё и двумя-тремя способами), а удобная подготовка композиции в спокойных условиях студии, предсказуемость и повторяемость результата, снятие с музыкантов Не Творческих манипуляций с приборами и инструментами, удобная информативность.
 
Последнее редактирование:
У меня почти те же самые цели, но с упором не на Сцену, а на комфортное музицирование, сочинительство, аранжировку, саунд-дизайн в условиях репы/домашней студии с избавлением от мышино-клавиатурной возни - главного бича виртуальных студий и "компьютерных" музыкантов. Смена патча/банка на любом из 20-ти VSTi-треков, например - "нетворческая" процедура, но если её будет делать звукореж - это будет пустая трата времени, "простой". Клавишник должен делать все себе сам, как будто у него рабочая станция, а не бюджетная миди-клава.

Если отвязаться от оборудования - то, выходит, всё надо делать нотными клавишами и лишь чуть-чуть "крутилками", которых обычно хоть немного, но есть. Или можно купить за 50 долларов платку типа LIVID Brain Jr и сделать свой миди-контроллер, например с 24-мя "крутилками", в т.ч. 8 "безупорных" + 48 одно или 16 RGB-светодиодов для визуальной обратной связи. На всё про всё уйдет 5 тыс. руб., а эффект может быть колоссальный.

Для Сцены - согласен, вседозволенность и неопределенность управления чревата позором. Для концертной деятельности и как вы выразились "прогнозируемый саунд", имхо, ваши наработки, @Aleksandr Oleynik, - безальтернативны, так как тему "раскрыли" полностью. Подробнее свой сетап распишу в отдельной (новой) теме, так как надеюсь на резонанс и массовость применения. Да и причесать надо, снять промо-видео с написанием кусочков в разных стилях музыки, чтобы было интересно ;)

Вообще, поиск "нетворческих" действий, "пожирателей времени" - сродни охоте. Очень они текучи даже у себя самого, не говоря про других. Есть печальная статистика по работе: 6% макросов, написанные по техзаданиям(!) - оказываются никому не нужными, а еще 10% - за год запускаются единичные случаи, и потраченные на них человеко-часы - не окупятся ни за что (я реализовал сбор статистики запусков прямо в самих макросах). Зато самые тупые и примитивные скрипты оказываются неожиданно "хитами" и экономят тысячи человеко-часов времени и долларов...

В Рипере - многое аналогично. Я иногда с грустью просматриваю ReaPack, понимая какой это труд и как сложно все это упомнить и контекстно применить в деле... И как часто костылишь ручками или делаешь то же самое просто по инерции.
 
Последнее редактирование:

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