Reaper: вопросы присматривающихся к этой программе (2 онлайн)

  • Автор темы Автор темы goa
  • Дата начала Дата начала
Править вне проекта, потому что я хочу чтобы в проекте оставались только айтемы которые точно утверждены для трека, и работать над отдельными айтемами не затрагивая основной проект. Чтобы править в проекте, нужно найти этому айтему место, на обум это не сделаешь, заглушить не нужные дорожки, если они мешают, и еще кучу ненужных действий. Просто создать отдельный проект нельзя, там нужно выставлять теже свойства проекта, создавать дорожки, закидывать теже эффекты и пр, а это уже получится клон первого проекта. Просто это когда в одно действие.
То что отдельного оконного аудиоредактора в рипере нету это понятно, но вот запускать миди редактор из пула проекта мне кажется никто не мешает сделать
 
Вот кое-что. Просто назначил на "R" replace media item, а на "N" insert as new take
ctrl+alt+drag можно перетащить в media explorer нужные айтемы.
 
Ребята, напомните пожалуйста, как сделать так, чтобы фокус не перескакивал с virtual midi keyboard на другие окна?
Нужно одновременно работать и с virtual midi keyboard и c открытым VST к примеру
 
Ребята, напомните пожалуйста, как сделать так, чтобы фокус не перескакивал с virtual midi keyboard на другие окна?
Нужно одновременно работать и с virtual midi keyboard и c открытым VST к примеру
правый клик внизу миди-клавы и поставить галку на втором пункте.
Снимок экрана 2020-12-09 в 1.36.14.png
 
@X-Tropic, я так понимаю это единственный вариант через docker?
Не совсем удобно, потому что я постоянно прыгаю между своими сохраненными скринсетами, получается нужно во все скринсеты прописывать виртуальную клавиатуру в докер
 
@X-Tropic, я так понимаю это единственный вариант через docker?
Не совсем удобно, потому что я постоянно прыгаю между своими сохраненными скринсетами, получается нужно во все скринсеты прописывать виртуальную клавиатуру в докер
А при чем тут докер? Вам второй пункт нужен. Он не влияет на то, находится ли клавиатура в докере или нет.
 
  • Like
Реакции: fractala
Ребята, добрый вечер!
Подскажите пожалуйста, есть ли возможность вытащить midi партию как midi item в арранж из арпеджиатора arp!0 - groovy midi arpeggiator к примеру?

Очень удобно это реализовано в лоджике или кубейсе - там драг н дропом перетаскивается с арпеджиаторов миди в арранж. Можно ли здесь как то подобное реализовать?
 
@fractala, Можно только через запись. Нужно открыть UI синта, ПКМ на 2 out (или 2\64 out) MIDI Output - Merges with MIDI Bus
Потом создать новый трек - Record Arm - отправить MIDI посыл с предыдущего трека и записать.
 
  • Like
Реакции: fractala
@Broojacker, подозревал что через такую маршрутизацию - много телодвижений конечно, вот бы скрипт подобный найти
 
Други, подскажите плз, можно ли реверсировать значение по панораме у айтемов?
192842

На скрине сигнал сэмпла смещен больше в левый монитор, а надо чтобы наоборот, т.е в правый.
 
Други, подскажите плз, можно ли реверсировать значение по панораме у айтемов?
Посмотреть вложение 192842
На скрине сигнал сэмпла смещен больше в левый монитор, а надо чтобы наоборот, т.е в правый.
JavaScript:
    ---------------------------------------------------------
    local function no_undo();reaper.defer(function()end);end;
    ---------------------------------------------------------
   
    local CountSelItem = reaper.CountSelectedMediaItems(0);
    if CountSelItem == 0 then no_undo() return end;
  
    reaper.Undo_BeginBlock();
    reaper.PreventUIRefresh(1);
  
    for i = 1, CountSelItem do;
        local item = reaper.GetSelectedMediaItem(0,i-1);
        local take = reaper.GetActiveTake(item);
        local pan = reaper.GetMediaItemTakeInfo_Value(take,'D_PAN');
        pan = pan - pan * 2;
        reaper.SetMediaItemTakeInfo_Value(take,'D_PAN',pan);
        reaper.UpdateItemInProject(item);
    end;
  
    reaper.PreventUIRefresh(-1);
    reaper.Undo_EndBlock('invert pan take', -1);
 
  • Like
Реакции: squarebel
@Archie's, спасибо! Создал а экшнах новый скрипт. Вставил туда содержимое и чёт не работает у меня( Что не так делаю?
 
Последнее редактирование:
@Archie's, спасибо! Создал а экшнах новый скрипт. Вставил туда содержимое и чёт не работает у меня( Что не так делаю?
Так у тебя панорама на тейке смещена?
Или на тейке панорама в ноль и это просто тейк изначально такой?
Если на тейке панорама в ноль, то:
192850
А скрипт вот эту панораму инвертирует

192851
 
  • Like
  • Wow
Реакции: Antonio и squarebel
@Archie's, Все оказывается гениально просто. Спасибо дружище :Dle46:
 
Последнее редактирование:
Всем привет. Так и нельзя сделать привязку огибающей питча нот к полутонам? Может есть скрипт который квантизирует выбранные точки по полутонам? Хоть какое-то решение есть? может я туплю...
 

Вложения

  • Снимок экрана 2020-12-12 в 14.56.59.jpg
    Снимок экрана 2020-12-12 в 14.56.59.jpg
    31,6 KB · Просмотры: 118
@Darek, C зажатым шифтом вообще не двигается, как во второй части гифки.
Плотно погуглил и понял что нет нормального решения, находил какие-то скрипты для последующего квантайза по полутонам, но они у меня в 6-й версии не заработали. Там у Рипера свои значения, трудно видимо сделать для огибающей питча нот - по центам и полутонам.

123.gif123.gif
 
@Antonio, Ну драмсэмплер типа Sitala висит и в переходе например хочется чтобы снэр или тональный перкуссионный звук лесенкой 16-ми по полутонам поднимался. Да и вообще мне кажется для питча логичней было бы в центах и полутонах. имхо конечно.
Понятно, что решения другие есть, но просто хотел узнать можно ли).
 
  • Like
Реакции: Antonio
@AlexLazer, Скрипты не я писал.
Имейте в виду, что они закодированы для диапазона питч бенда из 12 полутонов. т.е. в синте питч должен быть установлен в актаву.
JavaScript:
/*
   * increase selected Pitch event values by one semitone
   * eel script for Reaper
*/
  function set_pitch_value() 
(
  BendRange = 12; //bend range in semitones
  factor = 8192 / BendRange;

  act_editor = MIDIEditor_GetActive()) ? ( 
    (take = MIDIEditor_GetTake(act_editor)) ? ( 
      event_count = MIDI_CountEvts(take, notecntOut, ccevtcntOut, textsyxevtcntOut); 
      i = 0; 
      loop (ccevtcntOut, 
        MIDI_GetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, msg2Out, msg3Out);
        pitchVal = msg2Out + msg3Out * 128;
        Qval_O = floor((pitchVal/factor) - BendRange +0.5);
        Var_O = (pitchVal - (floor (Qval_O * factor + 8192.5)));
        newVal = pitchVal + factor;
        Qval = floor((newVal/factor) - BendRange +0.5);
        newVal = Var_O + (floor (Qval * factor + 8192.5));
        newVal > 16383 ? newVal = 16383;
        newVal < 0 ? newVal = 0;
        byte3 = (newVal / 128) | 0;
        byte2 = (newVal - byte3 * 128) | 0;
        sel == 1 && chanmsgOut == 224 ? ( 
          MIDI_SetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, byte2, byte3, 1); 
        ); //end if sel 
        i += 1; 
      ); // end loop
      MIDI_Sort(take);
    ); // end if take          

); // end function

set_pitch_value();
JavaScript:
/*
   * decrease selected Pitch event values by one semitone
   * eel script for Reaper
*/
  function set_pitch_value() 
(
  BendRange = 12; //bend range in semitones
  factor = 8192 / BendRange;

  act_editor = MIDIEditor_GetActive()) ? ( 
    (take = MIDIEditor_GetTake(act_editor)) ? ( 
      event_count = MIDI_CountEvts(take, notecntOut, ccevtcntOut, textsyxevtcntOut); 
      i = 0; 
      loop (ccevtcntOut, 
        MIDI_GetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, msg2Out, msg3Out);
        pitchVal = msg2Out + msg3Out * 128;
        Qval_O = floor((pitchVal/factor) - BendRange +0.5);
        Var_O = (pitchVal - (floor (Qval_O * factor + 8192.5)));
        newVal = pitchVal - factor;
        Qval = floor((newVal/factor) - BendRange +0.5);
        newVal = Var_O + (floor (Qval * factor + 8192.5));
        newVal > 16383 ? newVal = 16383;
        newVal < 0 ? newVal = 0;
        byte3 = (newVal / 128) | 0;
        byte2 = (newVal - byte3 * 128) | 0;
        sel == 1 && chanmsgOut == 224 ? ( 
          MIDI_SetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, byte2, byte3, 1); 
        ); //end if sel 
        i += 1; 
      ); // end loop
      MIDI_Sort(take);
    ); // end if take          

); // end function

set_pitch_value();
JavaScript:
/*
   * increase selected Pitch event values by one semitone - Quantized
   * eel script for Reaper
*/
  function set_pitch_value() 
(
  BendRange = 12; //bend range in semitones
  factor = 8192 / BendRange;

  act_editor = MIDIEditor_GetActive()) ? ( 
    (take = MIDIEditor_GetTake(act_editor)) ? ( 
      event_count = MIDI_CountEvts(take, notecntOut, ccevtcntOut, textsyxevtcntOut); 
      i = 0; 
      loop (ccevtcntOut, 
        MIDI_GetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, msg2Out, msg3Out);
        pitchVal = msg2Out + msg3Out * 128;
        newVal = pitchVal + factor;
        Qval = floor((newVal/factor) - BendRange +0.5);
        newVal =floor (Qval * factor + 8192.5);
        newVal > 16383 ? newVal = 16383;
        newVal < 0 ? newVal = 0;
        byte3 = (newVal / 128) | 0;
        byte2 = (newVal - byte3 * 128) | 0;
        sel == 1 && chanmsgOut == 224 ? ( 
          MIDI_SetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, byte2, byte3, 1); 
        ); //end if sel 
        i += 1; 
      ); // end loop
      MIDI_Sort(take);
    ); // end if take          

); // end function

set_pitch_value();
JavaScript:
/*
   * decrease selected Pitch event values by one semitone - Quantized
   * eel script for Reaper
*/
  function set_pitch_value() 
(
  BendRange = 12; //bend range in semitones
  factor = 8192 / BendRange;

  act_editor = MIDIEditor_GetActive()) ? ( 
    (take = MIDIEditor_GetTake(act_editor)) ? ( 
      event_count = MIDI_CountEvts(take, notecntOut, ccevtcntOut, textsyxevtcntOut); 
      i = 0; 
      loop (ccevtcntOut, 
        MIDI_GetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, msg2Out, msg3Out);
        pitchVal = msg2Out + msg3Out * 128;
        newVal = pitchVal - factor;
        Qval = floor((newVal/factor) - BendRange +0.5);
        newVal =floor (Qval * factor + 8192.5);
        newVal > 16383 ? newVal = 16383;
        newVal < 0 ? newVal = 0;
        byte3 = (newVal / 128) | 0;
        byte2 = (newVal - byte3 * 128) | 0;
        sel == 1 && chanmsgOut == 224 ? ( 
          MIDI_SetCC(take, i, sel, mute, ppqposOut, chanmsgOut, chanOut, byte2, byte3, 1); 
        ); //end if sel 
        i += 1; 
      ); // end loop
      MIDI_Sort(take);
    ); // end if take          

); // end function

set_pitch_value();
 
Отцы, подскажите, как освободить проект от ненужных айтемов, хранящихся в кэше? При баунсе (рендер ин плэйс) на выскакивающей табличке написано, мол баунсится айтем такой то из аж 670. А потом начинается с каждым баунсом все сильнее тормозить проект и в итоге слетает Рипер. Как то нужно кэш зачистить?
 
Отцы, подскажите, как освободить проект от ненужных айтемов, хранящихся в кэше? При баунсе (рендер ин плэйс) на выскакивающей табличке написано, мол баунсится айтем такой то из аж 670. А потом начинается с каждым баунсом все сильнее тормозить проект и в итоге слетает Рипер. Как то нужно кэш зачистить?
Вообще в первую очередь - File: Clean current project directory... Там покажет всё, что в папке, где медиа айтемы. У меня например -Audio.
А вообще, всё, что есть в проекте, можно увидеть через View: Show project bay window (экшен лист) или View - Project Media/Fx Bay. Через это окно вообще много чего интересного можно делать.
 

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