Помогите создать экшн / кастом экшн / скрипт (4 онлайн)

dmitryga

Active Member
12 Июн 2008
238
116
43
можно кстати даже так поставить вопрос, 2 скрипта на одну кнопку. Первый запускается если просто нажать на кнопку, а другой вид скрипта запускается с зажатым ctrl.
 

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
Фактически, использовать JS как переходник - это хорошее решение
одно такое решение меня в каждом проекте, называется Retro Rec Midi :)

Если использовать файл, как посредник - Вы потеряете в скорости в десятки, может сотни, тысячи раз
ну это понятно) просто в js не шарю пока, поэтому и не знал про то что можно через слайдер.
Имел в виду просто SetExtState - он же, если persist == 0, в файл не пишет

MIDI Examiner(но никуда не сохраняет - цепляться к слайдерам
а как прицепить к слайдеру?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
можно кстати даже так поставить вопрос, 2 скрипта на одну кнопку. Первый запускается если просто нажать на кнопку, а другой вид скрипта запускается с зажатым ctrl.
Это сделать можно, но вам прийдётся пожертвовать Control-ом для всех прочих вещей .... хотя........ в общем можно конечно, но при нажатии Control во всех прочих случаях, будет запускаться не нужный скрипт :(
[DOUBLEPOST=1481386131][/DOUBLEPOST]
а как прицепить к слайдеру?
Так там из слайдеров прям закодированное midi сообщение получаешь. Правда часто оно нафиг не нужно и лучше бы просто номер ноты или тип и номер контролера ПРЯМО
 
  • Like
Реакции: lil-burn и dmitryga

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
если не сложно, набросайте пример кода, как вообще это можно сделать...
Мне, честно говоря, не видится сосем практическое применение сего, а поэтому и думать особо не тянет об этом.
Зачем это? Место под кнопки мало, что вы на одну два скрипта хотите повесить?
Если объясните понятно - тогда подумаю как.
 
Последнее редактирование:

lil-burn

Well-Known Member
15 Авг 2012
903
638
93
Екатеринбург
@Aleksandr Oleynik, @EUGEN27771, а, все понял) там надо Status выбрать нужный, тогда ползунки забегают)
PS: только плагин работает только для выделенного трека, а как сделать, чтобы не зависело от выделения трека, как Retro Rec например?
 

MSerg

Well-Known Member
30 Ноя 2015
872
1.539
93
Есть специфическая задача. Диктор начитал аудио-книгу по химии. И так как диктору незнакомы многие слова и термины из химии, прежде, чем произнести каждое предложение, он сначала читал предложение про себя, вглядываясь в каждое слово, и только потом проговаривал на запись. Таким образом, в 6-часовой дорожке есть очень-очень много пауз. Вопрос, можно ли как-то сделать, чтобы рипер нашёл все паузы больше 1сек, и автоматически укоротил их до одной секунды?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
там надо Status выбрать нужный, тогда ползунки забегают)
Нет, у меня они бегают при поступлении midi и статус автоматом показывается

PS: только плагин работает только для выделенного трека, а как сделать, чтобы не зависело от выделения трека
Вообще-то он работает на том треке на котором стоит и если на него приходит midi, и показывает те значения, которые пришли.
Его можно переписать под себя - вывести параметры иначе, хотя этот плагин ПОЛНОСТЬЮ универсален и показывает ЛЮБОЕ midi сообщения и считывая скриптом все эти слайдеры можно полностью идентифицировать пришедшее миди.
 
  • Like
Реакции: lil-burn

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
@lil-burn, я делал скрытый трек, который всегда активен и принимает сообщ. со всех источников.
Косяки все равно возможны - в Рипере есть экшн - убирает rec-arm со всех треков, это тоже исправимо
Мы в скрипте можем ловить внешнее midi сообщение?
Расскажи как.
Только одно. То, к которому привязан скрипт на запуск. Но из него тоже можно вытянуть информацию - значение и разрешение - это 14 бит.
16384 варианта
это статус-байт - тип сообщ. и канал.
Вот старая, но очень хорошая статья http://www.muzoborudovanie.ru/articles/midi/midi2.php
 
  • Like
Реакции: lil-burn

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
Вот старая, но очень хорошая статья
Она у меня как настольная книга! :)
[DOUBLEPOST=1481387708][/DOUBLEPOST]
Только одно. То, к которому привязан скрипт на запуск. Но из него тоже можно вытянуть информацию - значение и разрешение - это 14 бит.
16384 варианта
Ааааааааа, не - это ни чего не даёт :(
 

lil-burn

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

@MSerg, как вариант - использовать auto trim split items (remove silence) - установить ignore silence shorter then 1000 ms (игнорировать тишину короче секунды). Затем поискать такой скрипт, который укорачивает расстояние между айтемами, смещая их влево. Могу такой написать, это не сложно
 

MSerg

Well-Known Member
30 Ноя 2015
872
1.539
93
как вариант - использовать auto trim split items (remove silence) - установить ignore silence shorter then 1000 ms (игнорировать тишину короче секунды).
Не могу это найти в рипере. Подскажите, куда кликнуть?

Затем поискать такой скрипт, который укорачивает расстояние между айтемами, смещая их влево. Могу такой написать, это не сложно
Если не сложно, то я был бы очень признателен. Эта функция освободила бы мне пол ночи.
 

EUGEN27771

Well-Known Member
23 Апр 2010
2.293
1.995
113
Ааааааааа, не - это ни чего не даёт
Смотря как подойти - это говорит о том, что скрипт может получить любую информацию. Вопрос в том как передать, как расшифровать, какое время нужно и тп. С помощью этого можно передать вообще что угодно.
====
Понимаете, когда говоришь невозможно - это значит вообще невозможно. А тут такого нет.
Есть лазейка. Я приведу абстрактный пример - нужно передать в скрипт, допустим список чьих-то имен. При этом, как можно быстрее - на одной стороне сказали - на другой услышали и сразу что-то предприняли, допустим наградили или расстреляли.
Мы посылаем в скрипт информацию - сообщ., к которому привязан скрипт - само по себе - адрес, чтобы не дядя Вася получил письмо, а именно наш КГБ-скрипт. Совершенно не означает, что письмо нужно отправить целиком - так никто не делает, даже в целях конспирации. Мы отправим два слова(два по 7 бит), далее еще и тп, потом говорим собщ. закончено - тоже какой-нибудь спец. символ. В этот момент скрипт делает выводы и принимает историческое решение. Чтобы сообщить окружающим или вопрошающим - тоже можно воспользоваться сообщниками. Скрипт в состоянии отправить некоторую информацию.
Давайте воспринимать его, как центр управления, он не может послать письмо напрямую, но может намекнуть, что бы другие это сделали.
Короче, это достаточно сложно - придумать или взять готовую какую-то азбуку, но возможно.
Кроме того, есть и другие варианты. Естественно, мы смотрим на знакомое и проверенное.
Что выше сказано - только пример самой возможности.
 
Последнее редактирование:

lil-burn

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

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
@lil-burn, я попросил объяснить практический смысл подобных контроло зависимых кнопок на тулбаре. Пока пояснения нет. Видимо идея была, как и многие другие, чисто теоретической.
 

dmitryga

Active Member
12 Июн 2008
238
116
43
Вообщем, сделал кнопки для выделения пачки инструментов(вся группа струнных стакато, духовый, итд) т.к треков много, проект неудобно мотать туда сюда, этакий быстрый доступ. Так вот я хотел наделать таких кнопок и быстро выделять нужные инструменты, и через ctrl я хотел объединять такие группы(например легато струнных + легато флейт)
вот сам код одной из кнопки
Код:
reaper.Main_OnCommand(40297, 0) -- unselect all track
tr1 =reaper.GetTrack(0, 4);
reaper.SetTrackSelected(tr1, true);
tr2 = reaper.GetTrack(0, 11);
reaper.SetTrackSelected(tr2, true);
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
@dmitryga, вы описываете середину своей общей какой то задачи по оптимизации воркфло, а для наиболее эффективного решения нужно понимать задачу от самого его начала и до конца.
В Рипере такое кол-во все возможных вариантов решений, что нужно сразу постараться идти наиболее оптимальным путём, а не первым пришедшим в голову.
Ну вот объясните - зачем вам это выделение различные треков?
Ну выделили и что? Тем более, что выделенные группы (объединённые) могут быть в разных концах проекта, вы их и не увидите ни в микшере ни в аранже.

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

PS: И обращение к трекам по их номеру - очень не надёжная схема работы, она удобна только если проект ВСЕГДА один и тот-же и треки не могут ни добовляться не переносится ни удаляться. А опыт подсказывает, что это мало вероятно и в один прекрасный момент, вы забудете об этой "особенности" работоспособности ваших скриптов, и поставите (или умышленно или случайно) в начало проекта (например) какой-то вспомогательный трек - и вся ваша КОНСТРУКЦИЯ полетит к чертям - (вместо скрипо будут выделяться волторны).
Единственный способ привязаться к конкретному треку раз и на всегда (пока он вообще в проекте есть) это через его GUID номер - он уникален и остается всегда куда бы трек потом не переносили.
И вот таких нюансов - тонна.
 
Последнее редактирование:

dmitryga

Active Member
12 Июн 2008
238
116
43
@Aleksandr Oleynik, именно нужно выделение треков чтоб можно было сразу наиграть и слышать как звучит вся эта пачка(видеть это всё не обязательно, да и не возможно потому что треки могут быть в разных частях проекта)
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
@Aleksandr Oleynik, именно нужно выделение треков чтоб можно было сразу наиграть и слышать как звучит вся эта пачка
Т.е. вы сделали в проекте так, что при выделении треки солируются и/или на них включается запись и мониторинг?
(видеть это всё не обязательно, да и не возможно потому что треки могут быть в разных частях проекта)
То вы не знаете тогда Рипера! Можно и НУЖНО!
[DOUBLEPOST=1481445930][/DOUBLEPOST]
Код:
reaper.Main_OnCommand(40297, 0) -- unselect all track
tr1 =reaper.GetTrack(0, 4);
reaper.SetTrackSelected(tr1, true);
tr2 = reaper.GetTrack(0, 11);
reaper.SetTrackSelected(tr2, true);
Точку с запятой в конце строки в LUA ставить не нужно, вместо true, false можно писать 1, 0.
Ну и повторюсь - использовать номер трека в скрипте - опасно!
И используйте не просто CODE, а PHP - иначе часть вашего кода будет отображаться не верно тут на форуме.
 
Последнее редактирование:

dmitryga

Active Member
12 Июн 2008
238
116
43
Т.е. вы сделали в проекте так, что при выделении треки солируются и/или на них включается запись и мониторинг?
на всех треках включён авто рек арм когда выделяешь

То вы не знаете тогда Рипера! Можно и НУЖНО!
Т.е предлагаете скрывать не выделенные треки?
 

Aleksandr Oleynik

Well-Known Member
16 Янв 2007
26.360
20.064
113
62
Киев
Для вашей задачи, так как я её понимаю сейчас, лучше всего сделать отдельный тулбар на котором будет столько кнопок, сколько у вас есть груп инструментов и всё!
Вот только кнопки должны быть с фиксацией (подсветкой) - нажал -кнопка засветилась, группа выбрана, отжал - кнопка потухла, выделение с группы снялось.
На форуме есть описание как такие кнопки делать, не найдёте - стучитесь.
Ну и включить в скрипт функцию показывать в микшере и/или аранже только эти выделенные треки.
Такой вариант, кроме всего прочего, позволит вам делать ЛЮБОЕ сочетание моментально и какое выбранно будет видно хорошо по нажатым кнопкам.
[DOUBLEPOST=1481446439][/DOUBLEPOST]
Т.е предлагаете скрывать не выделенные треки?
Я написал выше что предлагаю.
Но повторюсь - я не знаю до конца ни вашего воркфло, ни вашего стиля работы, ни задумки.
С вырванной из контекста задачей стараюсь не работать и не советовать ни чего, пока не пойму всё целиком. Почти всегда, когда задача становится столь же ясной как и тому, кто с вопросом о её решении пришёл - способ её решения меняется на 360 градусов.
 
Последнее редактирование:
  • Like
Реакции: dmitryga

MSerg

Well-Known Member
30 Ноя 2015
872
1.539
93
@MSerg, вот такой скрипт
выделяете айтемы, предварительно очищенные от тишины экшеном Auto trim/split, затем запускаете скрипт (айтемы должны быть выделены)
Посмотреть вложение 124518

Экшен Auto trim split легко найти например таким образом
Посмотреть вложение 124519
Вот это да! Спасибо огромное! Сегодня буду разбираться т.к. такими продвинутыми штуками ещё не пользовался.
 

Слава

Member
22 Ноя 2006
98
23
8
@MSerg,
Как альтернатива - скрипт из пакета Xenakios/SWS: Reposition selected items... (это уже после отработки Auto trim split)

А по-хорошему, перед тем как всю эту нарезку склеить, желательно пробежаться по стыкам и прослушать результат. Да, это долго и муторно (в случае 6ч), но лучше автомату доверять да проверять... (особенно Auto trim split).

И ещё - это единственная редакция, к-рая необходима (паузы)? Диктор не запинался, не перечитывал слово\фразу и т.п.?
В случае моих "дикторов" паузы - это наименьшая проблема...

PS Аудио учебников записал уже много и продолжаю писать.
 
Последнее редактирование:

Nagor

Active Member
4 Окт 2010
725
128
43
Никак не получается настроить Auto trim split, чтобы обрезка получалась в начале фразы наиболее близко к волне, а в конце оставался небольшой запас тишины. Поделитесь плиз скрином с правильной настройкой этой функции.
 
  • Like
Реакции: Furqat

Psyfacktor

Member
2 Апр 2016
71
30
18
38
подскажите экшн чтобы сбросить выделенное время в окне аранжировки, хочу повесить на среднюю кнопку мыши, не могу найти
 

alexvg

Well-Known Member
4 Авг 2004
2.050
912
113

Вложения

  • 164,3 KB Просмотры: 70
Последнее редактирование:
  • Like
Реакции: Psyfacktor

Psyfacktor

Member
2 Апр 2016
71
30
18
38
странно, это был первый экшн, который я запустил, когда искал, но ничего не произошло. Теперь работает.
Другой вопрос: на энкодер korg nanokontrol2 вешаю экшн Track: Set pan for track 01 (MIDI CC/OSC only) с режимом relative 3, в итоге получается что повернув на треть ручку влево, в программе панорама уже полностью слева , поворачивая энкодер назад, даже не дойдя до середины, панорама уже с другого края. Другие режимы этого экшена работают вообще неадекватно. в чем может быть проблема?
зы; с контроллером все ок, в других хостах работает нормально.
 

Psyfacktor

Member
2 Апр 2016
71
30
18
38
с другими режимами, панарама становится только в 3 положеня - центр, 100r, 100l

попробовал назначить этот экшн на миди клаву, там нормально работает с режимом абсолют.
но я хочу на nanokontrol эту функцию назначить(
 
Последнее редактирование:

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