ReaScripts (скрипты для Reaper) - делимся

@Archchie спасибо, надо пофиксить, не успел еще на это напороться.
Из отличий: мне не нужен мьют дорожек, особенно когда я выбрал кусок времени (если и делать мьют, то кажется лучше сплитить айтемы и мьютить куски). Есть возможность не выбирать треки, а рендерить по таймселекшну. После рендера у меня дорожка появляется на том месте где я бы хотел ее видеть (т.е если у тебя срендерить дочерний трек, мне бы хотелось чтоб он срендерился ниже группы а не в самой группе).
 
  • Like
Реакции: Archie's
Например - вот пример:
182651

Оба трека выделены (папка и ребенок) и папка замьютирована. И так как скрипт рендерит стемы(треки), то в данной ситуации скрипт должен отрендерить трек №7, а у тебя отрендерит тишину. Так что с этой недоработкой, когда будешь рендерить большие группы, то не удивляйся что у тебя пропадают некоторые инструменты(треки). Так что обрати на это внимания и доработай по возможности.
Недописал в предыдущем сообщении).
И соответственно если так же выделены папка и ребенок, но только теперь папка не замьючена, то рендер должен произойти только шестого трека, седьмой уже не должен рендерится, что бы не наслаивать звук на звук, т.е. как у тебя сейчас и происходит.
Безымянный.png



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

Есть возможность не выбирать треки, а рендерить по таймселекшну.
Если выделенные треки есть, то рендер у тебя также происходит по выделенным треком,а то что у тебя если не выделен не один трек и при этом начнут рендерится все треки, мне кажется это немного странным или даже не странным, а опасным. Лучше уж выделить ctrl+a
все треки и запустить скрипт и это как минимум будит безопаснее.
 
Последнее редактирование:
Если выделенные треки есть, то рендер у тебя также происходит по выделенным треком,а то что у тебя если не выделен не один трек и при этом начнут рендерится все треки, мне кажется это немного странным или даже не странным, а опасным. Лучше уж выделить ctrl+a
все треки и запустить скрипт и это как минимум будит безопаснее.
Вроде проблем быть не должно с этим. Мне кстати тож показалось странным или небезопасным что у тебя без таймселекшна рендерится на всю длину)

И соответственно если так же выделены папка и ребенок, но только теперь папка не замьючена, то рендер должен произойти только шестого трека, седьмой уже не должен рендерится, что бы не наслаивать звук на звук
Я же исключаю потомков, не будет звука на звук, если я правильно понял.
 
Мне кстати тож показалось странным или небезопасным что у тебя без таймселекшна рендерится на всю длину)
Ну это как минимум логично и предсказуемо)), а то что рендерятся все треки, которые я не выделял - это точно не предсказуемо.

Я же исключаю потомков, не будет звука на звук, если я правильно понял.
Да - но если ты начнешь решать первую проблему, где на папке мьют, то там не получится исключать потомков. Я поэтому и дополнил это сообщение, что решая одно, можно поломать другое. Нужно найти папку, проверить ее на мьют и если мьют, то не исключать потомков.
 
Ну это как минимум логично и предсказуемо)), а то что рендерятся все треки, которые я не выделял - это точно не предсказуемо.
Ну так скрипт называется render time selection to new track) Нормально.
Да - но если ты начнешь решать первую проблему, где на папке мьют, то там не получится исключать потомков. Я поэтому и дополнил это сообщение, что решая одно, можно поломать другое. Нужно найти папку, проверить ее на мьют и если мьют, то не исключать потомков.
Да меня так устраивает, важно было "звук на звук" исключить. Ну типа если папка замьючена, то потомки же не играют на деле, поэтому я их и не рендерю) А вот косяк когда время не выбрано, вот это точно исправлю.
 
  • Like
Реакции: Archie's
Ну так скрипт называется render time selection to new track) Нормально.
Ну если опираться на одно названия, то скрипт тогда не должен вообще обращать внимания на выделенные треки, а всегда рендерить все треки вне зависимости от того, есть выделенные треки или нет.
Да меня так устраивает, важно было "звук на звук" исключить. Ну типа если папка замьючена, то потомки же не играют на деле, поэтому я их и не рендерю)
Про замьюченную папку - это шутка была)), ждал что ответишь(догадаешься или нет). Естественно если папка замьючена, то внутри папки должна быть тишина.)) С этими шутками, и неправильными посылами сам себя чуть не запутал и чуть свой скрипт не поломал.)) Зато благодаря этому тестированию у себя в скрипте обнаружил тоже баг с посылами. Если на треке были включены и соло и мьют одновременно, то тоже перехватывались посылы как во втором примере про "Yanick_Mixdown selection" . Исправил.
 
Последнее редактирование:
  • Like
Реакции: dsg
А можно как то сделать для одного и того же действия (например колесико) установить какой нибудь Toggle (например кнопкой на тулбаре) который бы переключал для него между собой два разных скрипта?
Спасибо
 
А можно как то сделать для одного и того же действия (например колесико) установить какой нибудь Toggle (например кнопкой на тулбаре) который бы переключал для него между собой два разных скрипта?
Спасибо
Можно
 
Очередная версия скрипта для того, чтобы наиболее удобно соединить два моно трека в один стерео трек. Собственно это простой рендер, он может и более двух треков сложить, и соответственно не только моно треки. Работает по TS, автоматически. НО! Скрипт работает методом создания временного трека с посылами (с удалением трека, то есть с восстановлением прежнего вида), поэтому сумма из сигналов перехватывается из инсертов, то есть это НЕ Mixdown!

PHP:
reaper.Undo_BeginBlock()
reaper.PreventUIRefresh(1)

    local tra = reaper.GetSelectedTrack(0,0)
    local number_tra = reaper.GetMediaTrackInfo_Value(tra,'IP_TRACKNUMBER')
  
    reaper.InsertTrackAtIndex(number_tra-1,true)
    for i=0, reaper.CountSelectedTracks(0)-1 do
      local get_track = reaper.GetSelectedTrack(0,i)
      reaper.CreateTrackSend( get_track, reaper.GetTrack(0,number_tra-1))
    end
  
  
    reaper.SetOnlyTrackSelected(reaper.GetTrack(0,number_tra-1),true)
  
    reaper.Main_OnCommand(41716, 0) -- Render stereo
  
    reaper.DeleteTrack(reaper.GetTrack(0,number_tra))

reaper.Undo_EndBlock('Render selected tracks to stereo track (obeing time selection)',-1)
reaper.PreventUIRefresh(-1)

Из всех прежних моих экшнов этот самый толковый, т.к. алгоритм прост и полностью соответствует результат по звучанию. Даже если на инсерт треках были какие-то обработки. Кстати панорамники лучше разводить на 100% L и 100% R, тогда будет работать Dual pan
 
Последнее редактирование:
Чувак создал крутую фишку для лайвов и не только (Nabla looper):
Выглядит как какой то мэджик. Я пока ни фига не понял как оно работает....
 
Странно, что не нашёл такого скрипта.


Для запуска требует установленный reapy и Python соответственно. Сейчас эта процедура гораздо более дружелюбная, чем полгода назад. Но вообще, мы надеемся, что станет ещё более дружелюбной.

Python:
import reapy as rpr
from reapy import core

with rpr.inside_reaper():
    pr = core.Project()
    pr = core.Project(pr.name)

    pr.select_all_items()

    # Item: Split items at time selection
    rpr.perform_action(40061)

    # select all items in current time selection
    rpr.perform_action(40717)
    old_items = list(pr.selected_items)

    tracks = [item.track for item in pr.selected_items]
    print(tracks)
    print([[tr.name, tr.index] for tr in tracks])

    tracks[0].make_only_selected_track()
    for nr in range(tracks[0].index + 1, tracks[-1].index + 1):
        pr.tracks[nr].select()

    # SWS/S&M: Copy selected tracks (with routing)
    c_id = rpr.get_command_id("_S&M_COPYSNDRCV1")
    rpr.perform_action(c_id)

    subtrack = pr.add_track()
    pr.unselect_all_tracks()
    # subtrack = core.Track(0)
    subtrack.make_only_selected_track()

    # Insert new subproject...
    rpr.perform_action(41049)

    subproject = rpr.get_projects()[-1]
    subtrack.name = subproject.name

    subproject.make_current_project()
    print(subproject.name)

    # Item: Paste items/tracks
    c_id = rpr.get_command_id("_SWS_AWPASTE")
    rpr.perform_action(c_id)

    item_ids = [item.id for item in subproject.selected_items]
    for item in subproject.items:
        if item.id not in item_ids:
            # print(f"{item.id} not in item_ids")
            item.delete()
        # else:
        # print(f"{item.id} in item_ids")

    pr.make_current_project()
    for item in old_items:
        item.delete()
 
  • Like
Реакции: riko, Antonio и aps
кто то слышал о ReaLearn,? не могу понять делает ли он фейдеры в миди режиме двигающимися ?
 
Кто то может в курсе,- существуют ли скрипты для того что бы связать в MIDI Velosity и кривую огибающую (динамика, громкость)? То есть если на определенной ноте кривая огибающй установлена на значение минимум- то и велосити автоматически подгоняются в этом месте в значение минимум. Если установлено максимум-и велосити максимум. Руками это все сделать ресурсоемко-есть ли какой то вариант автоматизации?
 
Razor edit - вкратце это что? На английском не совсем понятно.
 
Коллеги, может у кого сохранился CDP Extension for REAPER?

 
У меня такой вопрос...
А есть ли скрипт или возможно кто нибудь может его написать, суть которого отключения индикаторов пульта, чтоб они не дёргались.
Иногда мешают в работе, но таких кнопок я в редакторах не встречал.
 

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