Render, Bounce in place, Mixdown selection и тому подобное

Обновил , все равно пустая дорога на выходе ))
Какой именно скрипт не работает, только что скачал с первого поста и все работают. Вот гиф. Это вы походу не так что то делаете.
1112.gif
кто знает где ткнуть чтобы сгруппированные итемы вместе ездили по таймлайну , если выделяешь один )?
186937
 
  • Like
Реакции: Zerocool
Спасибо за группировку

да да ,я не так делаю - вот гифка
186940
 
Последнее редактирование:
Да , если выделить таймлайн то заработало но с лютым клиппингом , и это абсолютно не нужные телодвижения ...
сначала отметить таймлайн , потом сделать громкость на каналах тише , а потом уже миксдаун селекшн выполнить ...

Короче бесполезно , легче группы двигать ...
 
  • Like
Реакции: Archie's
Да , если выделить таймлайн то заработало но с лютым клиппингом , и это абсолютно не нужные телодвижения ...
сначала отметить таймлайн , потом сделать громкость на каналах тише , а потом уже миксдаун селекшн выполнить ...

Короче бесполезно , легче группы двигать ...
У меня этот скрипт работает нормально, как и раньше работал. И без тайм селекшн. Причём, один из сэмплов имеет +1.4Дб приблизительно, после рендера в том же месте + 1.15.
 

Вложения

  • Mix_sel.gif
    Mix_sel.gif
    341,6 KB · Просмотры: 90
@Zerocool, спасибо. Надеюсь вы найдёте ключ к решению вашей проблемы и я тоже за вас порадуюсь :Dle22:
 
Mr_Tsonts
А я не буду , в S1 у меня этой проблемы не существует ))
в рипере мне хватит группировать клипы, для задач чернового монтажа ....
 
  • Like
Реакции: Mr_Tsonts
@Zerocool, а у тебя time selection был нарисован где на момент гифки? Там работает так, по умолчанию, если TS есть, то он рендерит по нему (как штатные экшны рендера "selected area"), поэтому если на айтем не попадает, то и звука нет :) Если зайдешь в шапку скрипта (edit), поставь на time selection 0, тогда скрипт не учитывает его, только начало и конец айтемов (+ если есть хвост).
Это если я правильно понял о чем речь.
 
Последнее редактирование:
@Zerocool, ну а клиппинг, это уже как складывается так и получается :) Можно конечно нормализацию придумать, но я не стал, так как это "не тру"
 
Вообще я у себя скрипты уже обновлял с тех пор :) Надо обновить, а то я уже мог что-то исправить. Завтра займусь
 
Последнее редактирование:
Кстати в самой последней версии (у себя) я сделал перемещение трека к последнему айтему, который выделен, но щас понял что был не прав :) Попадая под папку на которой есть обработки, отрендеренные обработки снова попадут под обработки. Короче сделаю как было когда-то давно - в конец или начало списка треков (кажется S1 так и делает).
З.Ы. Жесткий просчет, но он связан с тем, что я не кладу обработки на папки а делаю сенды :)
 
Последнее редактирование:
  • Like
Реакции: sunsell
Так, к сожалению пропала возможность на этом форуме вечно редачить тему, поэтому придется постом обновлять :(
Что изменил - трек после Mixdown selection идет в конец проекта, что не будет конфликтовать с обработками в папках
Напомню что во всех версиях скриптов можно изменить в шапках то, как изначально скрипт показывает данные в User Input, ну или как изначально будет работать windowless
 

Вложения

Так, к сожалению пропала возможность на этом форуме вечно редачить тему, поэтому придется постом обновлять :(
Если надо что-то изменить в старом посте (например: стартовый пост темы с ссылками) пишите модератору, по возможности стараемся оперативно помочь.
Пиши в личку, я если у компа, сразу стараюсь поправить
 
Что изменил - трек после Mixdown selection идет в конец проекта, что не будет конфликтовать с обработками в папках
А каким образом это может конфликтовать с обработками, если трек не идет в самый конец проекта?

P.S. Если ты про то, что если рендеришь папку, то новый трек попадает в эту же папку, если да, то в этом случае новый трек должен попасть не в папку, а под нее.
 
А каким образом это может конфликтовать с обработками, если трек не идет в самый конец проекта?

P.S. Если ты про то, что если рендеришь папку, то новый трек попадает в эту же папку, если да, то в этом случае новый трек должен попасть не в папку, а под нее.
Я думал так сделать, но это лишний код вычислять чилдрен треки :) Я все делаю просто.
К тому же если до конца папки далеко, то трек все равно окажется где-то непонятно где, а в конце проекта его проще найти. Ну или в начале проекта.
 
...
Я думал так сделать, но это лишний код вычислять чилдрен треки :) Я все делаю просто.
К тому же если до конца папки далеко, то трек все равно окажется где-то непонятно где, а в конце проекта его проще найти. Ну или в начале проекта.
Да там не сложно вычислить низ папки.
Ну или трек создавать над, т.е. сверху над треками, а если все же охота под треком, то в таком случае, если трек папка то над, если не папка, то под. Ну а в начале или конце всего проекта, мне кажется что это будет совсем не удобно, особенно в большом проекте.
Хотя мне без разницы, просто идея.

P.S.
Я думал так сделать, но это лишний код вычислять чилдрен треки :)
Если что, то вот держи функцию, она возвращает, первым параметром номер запрашиваемого трека, вторым параметром номер последнего трека в папке если папка или nil, третьим параметром запрашиваемый трек и четвертым параметром последний трек в папке если возможно или nil.
PHP:
    local function GetTrackNF(track);
        local fold = reaper.GetMediaTrackInfo_Value(track,'I_FOLDERDEPTH')==1;
        local numb = reaper.GetMediaTrackInfo_Value(track,'IP_TRACKNUMBER');
        local numb2,trackX;
        if fold then;
            local Depth1 = reaper.GetTrackDepth(track);
            for i = numb, reaper.CountTracks(0)-1 do;
                local track2 = reaper.GetTrack(0,i);
                local Depth2 = reaper.GetTrackDepth(track2);
                if Depth2 <= Depth1 then;
                    numb2 = reaper.GetMediaTrackInfo_Value(track2,'IP_TRACKNUMBER');
                    trackX = reaper.GetTrack(0,numb2-2);
                    break;
                end;
            end;
        end;
        if tonumber(numb2) then numb2 = numb2-1 end;
        return numb,numb2,track,trackX;
    end;
 
Последнее редактирование:
  • Like
Реакции: sunsell и borisuperful
@borisuperful, пожалуйста не забрасывай по возможности скрипты типа Yanick_Mixdown selection (windowless). Я сделал варианты моно и стерео, да и нравится, что результат размещается под последним выбранным айтемом (треком), а не в начале или в конце треков! :Dle12:
 
да и нравится, что результат размещается под последним выбранным айтемом (треком), а не в начале или в конце треков!
Для миксдаун скрипта это некорректно. Потому что последний выбранный трек (вернее последний выбранный айтем этого трека) может быть под папкой....
 
Единственное что я могу сделать, чтобы не писать много бесполезного кода, это определить, что последний выбранный айтем принадлежит чилдрен треку, и при таком условии отправить миксдаун трек вверх или вниз.
Что касается моно...Для моно есть скрипты баунса (или штатные экшны). В случае миксдауна не понимаю зачем это :) Ты же складываешь сумму, нужна ли моно сумма? Главное не путай этот скрипт с баунсами, он НЕ ЗАМЕНЯЕТ их и имеет совсем другой смысл.
Но в любом случае я могу это вернуть, если действительно нужна моно сумма
 
Последнее редактирование:
Archie скинул код немного выше и он работает. Для поиска собственно последнего трека в папках, НО, я кажется так и не понял как безболезненно сделать скролл к этому треку после рендера. Почему-то нативные экшны не срабатывают. Поэтому проще было сделать скролл вверх или вниз. То есть к самому верхнему или нижнему треку. Думаю, надо еще посмотреть варианты, но с виду так оно и есть...
 
На свежую голову посмотрел, в общем есть вариант скролла через нативные экшны. Нужен такой порядок
Track: Set first selected track as last touched track
Track: Vertical scroll selected tracks into view
Все дело в том, что только к последнему выбранному треку мышкой можно сделать скролл
Отсюда следует, что код Archie можно реализовать. И миксдаун-трек будет помещаться рядом с концом или началом папки. Самое важное сделать к нему скролл иначе смысла нету
 
Но даже такой скролл не будет работь в микшере. Впрочем и сейчас скроллы вверх и вниз также не работают в микшере
 
@borisuperful, я вот за этот скрипт говорю. Сделал из него два - стерео и моно и в кастоме добавил мутировать айтемы после их микса. Очень удобно. Это из твоих самых первых.
Привык к его результатам)
Код:
--------------------------------------

tail = 0

time_selection = 1

mono_stereo = 2

pre_render_length = 0

   trim_start = 1


---------------------------------------

local values_for_render = tostring(tail)
..","..tostring(time_selection)
..","..tostring(mono_stereo)
..","..tostring(pre_render_length)
..","..tostring(trim_start)

---------------------------------------

if reaper.CountSelectedMediaItems(0) == 0 then reaper.MB('Please select an item', 'Error', 0) return end




local function Create_global_folder_for_render()
  local track_for_folder = reaper.GetTrack(0,0)
    if track_for_folder then
      local numb = reaper.GetMediaTrackInfo_Value(track_for_folder,"IP_TRACKNUMBER")
      reaper.InsertTrackAtIndex(numb-1,false)
      local track_for_folder_two = reaper.GetTrack(0,numb-1)
        reaper.SetMediaTrackInfo_Value(track_for_folder_two, 'I_FOLDERDEPTH', 1)
        reaper.SetOnlyTrackSelected(track_for_folder_two)
    end
end




reaper.Undo_BeginBlock()
reaper.PreventUIRefresh(1)
if reaper.CountSelectedMediaItems(0) == 0 then return end

--::START::
--local retval, value = reaper.GetUserInputs("Mixdown selection", 5, "Set tail (sec)... ,Time selection? (1 - yes, 0 - no),Mono-1  Stereo-2,Pre-render length (sec)...,    Trim item's start? (pre-ren)", values_for_render)
   --if retval then
     local val1, val2, val3, val4, val5  = values_for_render:match("([^,]+),([^,]+),([^,]+),([^,]+),([^,]+)")
     local val_tail = tonumber(val1)
     local val_timesel = tonumber(val2)
     local val_chan = tonumber(val3)
     local val_pre = tonumber(val4)
     local val_trim = tonumber(val5)
 

     if not val_tail or not val_timesel or not val_chan or not val_pre or not val_trim then
     reaper.MB('No value. Please enter a number', 'Error', 0) end
     
        ---if not value for render, script must return---
        if val_chan == 0 then return end
         
        ---for playing project in real time :)---
        reaper.Main_OnCommand(1016, 0) reaper.Main_OnCommand(40345, 0)


        reaper.Main_OnCommand(41559, 0) -- solo items

        Create_global_folder_for_render()
     
     
        local save_selection_start, save_selection_end = reaper.GetSet_LoopTimeRange(0, false, 0, 0, 0)
        local save_cursor_position = reaper.GetCursorPosition()
     
     
           if val_timesel == 1 and save_selection_start == save_selection_end then
              reaper.Main_OnCommand(40290, 0) -- Set time selection to items
           elseif val_timesel == 0 then
              reaper.Main_OnCommand(40290, 0) -- Set time selection to items
           end
       
        local render_selection_start, render_selection_end = reaper.GetSet_LoopTimeRange(0, false, 0, 0, 0)
        reaper.GetSet_LoopTimeRange(1, false, render_selection_start-val_pre, render_selection_end+val_tail, 0)
       
       
           local count_tracks_1 = reaper.CountTracks(0)

           if val_chan == 1 then
              reaper.Main_OnCommand(41718, 0) -- Render mono
           elseif val_chan == 2 then
              reaper.Main_OnCommand(41716, 0) -- Render stereo
           end
     
     
     
     

            local get_selected_track_render = reaper.GetSelectedTrack(0,0)
            if reaper.GetMediaTrackInfo_Value(get_selected_track_render, 'I_FOLDERDEPTH') == 1 then
              reaper.DeleteTrack(get_selected_track_render) else
              reaper.GetSetMediaTrackInfo_String(get_selected_track_render, 'P_NAME','Mixdown',true)
              local get_item_item = reaper.GetTrackMediaItem(get_selected_track_render, 0)
              if get_item_item then
                local get_take_get = reaper.GetActiveTake(get_item_item)
                if get_take_get then
                reaper.GetSetMediaItemTakeInfo_String(get_take_get, 'P_NAME', 'Mixdown', true)
                local get_number_track = reaper.GetMediaTrackInfo_Value(get_selected_track_render,"IP_TRACKNUMBER")
                local get_folder_track = reaper.GetTrack(0, get_number_track)
                  reaper.DeleteTrack(get_folder_track)
                  local count_item_count = reaper.CountSelectedMediaItems(0)
                  local get_item_get = reaper.GetSelectedMediaItem(0,count_item_count-1)
                  local get_track_get = reaper.GetMediaItemTrack(get_item_get)
                  local get_info_get = reaper.GetMediaTrackInfo_Value(get_track_get,"IP_TRACKNUMBER")
                    reaper.ReorderSelectedTracks(get_info_get, 0)
                end
              end
            end
         
            local count_tracks_2 = reaper.CountTracks(0)
                             
                     if val_trim > 0 and val_pre > 0 then
                          if count_tracks_1 == count_tracks_2 then
                            local get_selected_track_ren = reaper.GetSelectedTrack(0,0)
                            local get_sel_it = reaper.GetTrackMediaItem(get_selected_track_ren, 0)
                            reaper.SplitMediaItem(get_sel_it, render_selection_start)
                            local get_sel = reaper.GetTrackMediaItem(get_selected_track_ren, 0)
                            reaper.DeleteTrackMediaItem(get_selected_track_ren, get_sel)
                        end
                      end
     
     
     reaper.GetSet_LoopTimeRange(1, false, save_selection_start, save_selection_end, 0)
     reaper.SetEditCurPos(save_cursor_position, 0, 0)  
     
    reaper.Main_OnCommand(41560, 0) -- unsolo items
       

  --else return end


reaper.UpdateArrange()
reaper.Undo_EndBlock('Mixdwon selection', -1)
reaper.PreventUIRefresh(-1)
Yanick_Mixdown selection (windowless) STEREO.gif
А твой репак я установил! Спасибо! :Dle12:
 
Последнее редактирование:
Есть конечно момент, что Bounce я сделал чисто под S1, там каждый айтем на одном или нескольких треках рендерится по отдельности. Это позволяет на стоящих в разных местах айтемах сделать независимый хвост. Сплошником не работает, но сплошником работает штатный рендер - selected area например, по time selection, и дублировать уже не хотел.
 
Что касается отправки трека в начало и конец папки, я это сделаю позже. Т.к. оказалось, что скролл работает.
 

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