Помогите создать экшн / кастом экшн / скрипт

  • Автор темы Автор темы @Michael
  • Дата начала Дата начала
Не нужно ни чего делить. В этой ветке обсуждается всё, что может быть обсужденно за три-пять постов.
Если что-то сложнее - отдельная тема.
 
Друзья знающие! Может если кому не очень трудно создать скрипт вот с таким условием, потом править буду сам под свои нужды. На одном действии --- Если Тулбар закрытый он закрывал ниже указанные и открывал себя. А если он открытый он закрывался и открывал ниже указаный
 

Вложения

  • 2017-12-03_183301.jpg
    2017-12-03_183301.jpg
    89,6 KB · Просмотры: 65
Последнее редактирование:
Сорри не то сфоткал перескриншотил
 

Вложения

  • 2017-12-03_183301.jpg
    2017-12-03_183301.jpg
    89,6 KB · Просмотры: 62
Друзья знающие! Может если кому не очень трудно создать скрипт вот с таким условием, потом править буду сам под свои нужды. На одном действии --- Если Тулбар закрытый он закрывал ниже указанные и открывал себя. А если он открытый он закрывался и открывал ниже указаный
А чем данный сайкл не устраивает?
 
А чем данный сайкл не устраивает?
Резонный вопрос. Хочу свести цыкл экшины к минимуму и смотреть на скрипты и потихоньку учится
[DOUBLEPOST=1512656779][/DOUBLEPOST]
@Maestro Sound, я вообще не понял о чём речь :(
Какой тулбар?
Да без разницы но в данном примере это тулбар 14 и 4 чередуются с условиями для других указаных
 
Хочу свести цыкл экшины к минимуму и смотреть на скрипты и потихоньку учится
Если в скриптах присутствуют те-же Экшины (стандартные и SWS) - то толку от того, что это не в цикл экшине или в кастом экшине сделанно - НОЛЬ!
Прелесть скриптов в использовании API функций работающих ПРЯМО с внутренностями Рипера.
 
Но в цикл экшинах можно
Но в общем согласен - если нужна какая-то продвинутая логика - то скрипт писать удобнее и понятнее.
 
  • Like
Реакции: Maestro Sound
Вопрос такой: как вообще вызвать функцию os.remove() ?
Везде пишут, что
Если эта функция завершилась неудачей, она возвращает значение nil, плюс строку, описывающую ошибку, и код ошибки.
Но у меня в любом случае голый nil. Путь получен, имя файла получено. Не работает даже в связке
Код:
os.execute(path)
os.remove (filename)
Подскажите кто-нибудь, уже всю голову сломал.


Резонный вопрос. Хочу свести цыкл экшины к минимуму и смотреть на скрипты и потихоньку учится
Если совсем по-простому, то
PHP:
toggle_state = reaper.GetToggleCommandState(41941) -- получаем 0, если тулбар 14 закрыт, и 1, если открыт
if toggle_state == 0 then -- если тулбар 14 закрыт, то
    reaper.Main_OnCommand(reaper.NamedCommandLookup("id скрипта"), 0) -- закрываем тулбар Х
    reaper.Main_OnCommand(reaper.NamedCommandLookup("id скрипта"), 0) -- открываем тулбар 14
else -- в противном случае
    reaper.Main_OnCommand(reaper.NamedCommandLookup("id скрипта"), 0) -- закрываем тулбар 14
    reaper.Main_OnCommand(reaper.NamedCommandLookup("id скрипта"), 0) -- открываем тулбар Х
end
 
Уважаемые скриптописатели! Т.к. являюсь лишь скрипточитателем, имею к Вам просьбу.
Есть в рипере такой экшн - Item: Import item media cues as project markers
и есть такая опция в Project settings
0947c103495746a6ea528f8a036b02da.png
Так вот, мне нужен скрипт, к-рый бы делал обратное - прописывал маркера в item media cues.
Понимаю, что запрос несколько туманный, поэтому сейчас более детально.

Пишу многочасовые начитки. Чтецы ошибаются - я сразу, не останавливая, жму М (маркер) - в результате имею вэйву и 10-20 (30-40 :) ) маркеров в местах ошибок. Потом, когда редактирую, было бы очень удобно, чтоб маркера были привязаны к wav-ке, а не к таймлайну, но такого в рипере нет. С регионами работать не хочу (пробовал - мне не удобно). Уже было отчаялся, но вчера обратил внимание на то, что на картинке выше под спойлером - возможность сохранять маркера в wav. Попробовал как это выглядит на практике. А выглядит это так: если импортнуть wav из таким образом настроенного проекта в рипер (или любой аудиоредактор), на месте маркеров на этой импортированной вэйве увидим media cues. И они уже привязаны к вэйве т.е. если эту вэйву резать, двигать, то media cues двигаются вместе с новыми фрагментамы вэйвы. А это именно то, что нужно для удобного (быстрого) редактирования по маркерам.
Так а чего ж я хочу? Да всё просто - закончил запись, выделил маркера, запустил скрипт и они (эти маркера) прописались в айтем(ы) уже как media cues. В противном случае нужно жать save и потом ре-импортировать вэйвы обратно в проект.

Думаю, что запрос реально осуществимый, тем более что обратная операция (Item: Import item media cues as project markers) уже изначально встроена в рипер. Но чукча не писатель, чукча - читатель :) И именно поэтому буду весьма признателен за реализацию такого скрипта.
 
Последнее редактирование:
Мне нужен экшн для рендера айтема с MIDI сенд трека на новый трек с сендом на мастер, уже нагородил такую телегу:

Custom: Render item from MIDI track
SWS: Save current track selection
Script: mpl_Go to first send destination track.lua
SWS: Mute all receives for selected track(s)
SWS: Restore saved track selection
SWS: Unmute all sends from selected track(s)
Script: mpl_Go to first send destination track.lua
Xenakios/SWS: Render receives of selected track as stems
Track: Unmute tracks
SWS: Unmute all receives for selected track(s)
SWS: Enable master/parent send on selected track(s)
SWS/S&M: Cut selected tracks sends
Track: Go to previous track
SWS/S&M: Split selected items at time selection, edit cursor (MIDI) or prior zero crossing (audio)

Остался только экшн который бы удалял или выделял все айтемы кроме тех что в time selection, потому как экшн Xenakios/SWS: Render receives of selected track as stems рендерит весь трек.

Select all item on selected track outside time selection.
Есть ли подобный экшн или скрипт? Что то не могу нагуглить.
 
@Слава, Исключительно практический совет - назначьте на удобный хоткей "Item: Add stretch marker at cursor", используйте stretch markers вместо item media cues.
 
Последнее редактирование:
@Buyan,
Как вариант пробовал раньше и их (stretch markers). Не понравилось то, что они - не нейтральные текстовые метки и, помнится, что-то я там случайно понаделал... Уже не помню точно что именно я нахимичил тогда, но отбраковал... Хотя, если никто из здешних талантищей не поможет с преобразованием маркеров в media cue, вероятно, ещё раз попробую поработать с stretch маркерами.
Спасибо за помощь :)
 
@Слава,
Как вариант пробовал раньше и их (stretch markers). Не понравилось то, что они - не нейтральные текстовые метки и, помнится, что-то я там случайно понаделал...
Да просто нужно научится ими пользоваться. Можно заблокировать в момент записи и прослушивания, что-бы случайно не зацепить. А потом редактировать айтем без сплитов, с помощью тех-же stretch markers.
Если активировать опцию Set default mouse modifier action for "Media item stretch marker left drag" to "Ripple move stretch markers", то можно использовать stretch markers для вырезания (стрэйчинга до минус-бесконечности) исключительно проблемных участков (между двумя маркерами).

Если Вы недавно пользуетесь Reaper, то возможно имеют место привычки из предыдущих DAW:) Мне тоже поначалу в рипере было жутко неудобно, но все же я попытался привыкнуть к его логике и организации не прибегая к излишней кастомизации имитирующей другие DAW. Теперь понимаю насколько здесь все логичнее и удобней на самом деле по сравнению... Просто порой методика выполнения типичных операций может оказаться совершенно отличной от методик в других хостах, но более удобной и быстрой впоследствии.
[DOUBLEPOST=1512683416][/DOUBLEPOST]
без рендера ни как. Метки ведь в wav пишутся.
Только рендер и переоткрывать
Как по мне, то это как-то неэстетично, если для такой мелочи, без которой можно обойтись и тем более есть чем заменить, делать скрипт, который будет рендерить айтем, проверять кучу условий, установлены-ли нужные галочки в настройках, подменять текущий айтем и прочее... Но это исключительно мое мнение;), кому как удобно, тот так и делает.
 
Последнее редактирование:
@Слава, без рендера ни как.
Вот именно в этом не уверен... пока. Мне ещё хотелось бы узнать точку зрения EUGEN27771 по этому поводу. И если девствительно только рендер&переоткрыть то, вероятно, буду идти каким-то другим путём... Но
Если Вы недавно пользуетесь Reaper, то возможно имеют место привычки из предыдущих DAW:) Мне тоже поначалу в рипере было жутко неудобно, но все же я попытался привыкнуть к его логике и организации не прибегая к излишней кастомизации имитирующей другие DAW. Теперь понимаю насколько здесь все логичнее и удобней на самом деле по сравнению... Просто порой методика выполнения типичных операций может оказаться совершенно отличной от методик в других хостах, но более удобной и быстрой впоследствии.
моя методика ( :) ) меня устраивает и другие хосты здесь ни при чем. Мне лишь нужно как-то обойти это маленькое (?) неудобство с привязкой маркеров. Стретчинг аудио использую, но не в случае убирания лишнего (ошибочного) слова из предложения. Хотя, может быть, кому-то это и удобно, мне - нет.
Так что пока жду. И... надежда умирает вместе с нами :)
 
  • Like
Реакции: Buyan
Да, маркеры пишутся в файл напрямую. Но это только тестовый скрипт.
 
  • Like
Реакции: Buyan
Так, ребята, кажись я офигенно протупил...
Только что ещё раз проверил всю процедуру:
в Project settings включил опцию сохранять маркера;
включил запись, нащелкал 3 маркера;
нажал стоп;
не сохраняя проект и не рендеря ничего просто сдвинул (и удалил) маркера, а под ними, оказывается, уже есть media cues (!) Для пущей убедительности сразу (не сохраняя проект) открыл файл в вавозавре - да, media cues уже на месте.
Т.е. файл уже содержит привязанные к нему маркера и его уже можно редактировать...
Правда, я не уверен, что это тот же результат что и у вас, EUGEN27771, например у вас я вижу текст (M1 M2 M3 M4), а у меня вообще никакого текста...
Т.е. какой формат того, что вставляет ваш скрипт - media cue, или это какие-то другие маркера. И можно ли те, или другие подвинуть, удалить (в рипере)?
 
Последнее редактирование:
Выручайте, мучаюсь. :confused:
Имеется строка с путями вида D:\Audio\File01D:\Audio\File02D:\Audio\File03. Без пробелов, но они и не нужны.
Скриптом получаю путь D:\Audio\File02, с помощью string.find ищу его в этой строке. Всё нормально, находит и выдаёт индекс 16.
Далее пытаюсь удалить найденное из строки, но не тут-то было. Уже всё перепробовал, ничего не помогает.
Делаю так:
PHP:
finds = string.find (string, filename, 1, true)
-- возвращает индекс 16
string.gsub (string, filename, "")
-- и результата никакого.

---- И даже вот так не хочет:

finds = string.find (string, filename, 1, true)
sss = string.sub (string, tonumber (finds), tonumber (finds) + #filename - 1)
string.gsub (string, sss, "")
 
Последнее редактирование:
@CerberPic, строки в lua неизменяемые, нужно
str = string.gsub (str, sss, "").
И не используйте string как переменную - это таблица для строковой библиотеки.
 
ничего не помогает
странно, в таком скрипт виде работает
Код:
reaper.ShowConsoleMsg('')

string = "D:\\Audio\\File01D:\\Audio\\File02D:\\Audio\\File03"
filename = "D:\\Audio\\File02"
finds = string.find (string, filename, 1, true)
-- возвращает индекс 16
reaper.ShowConsoleMsg(string.."\n"..filename.."\n")
reaper.ShowConsoleMsg(string.gsub (string, filename, ""))
 
Так, ребята, кажись я офигенно протупил...
Только что ещё раз проверил всю процедуру:
в Project settings включил опцию сохранять маркера;
включил запись, нащелкал 3 маркерa...
Да, сам все проверил. Действительно таким образом cues прописываются в файл и видны в айтеме.
 

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