Pre Record Audio своими силами

@Michael

Well-Known Member
14 Дек 2010
971
1.638
93
Орёл / Москва
(этот пост был перемещён модерами в новый тред)

Ну вот в 5.05pre3 появилось
+ JSFX: add export_buffer_to_project()

Умельцы JS уже могут реализовать Retrospective Record, просто неохота наверно :)
 
Последнее редактирование:
  • Like
Реакции: pustoy
@@Michael, ещё бы описание на эту функцию найти бы. Пока известно что в скобках должно быть 5 параметров, но что именно и какой результат функции или действие - неизвестно.
[DOUBLEPOST=1444860760,1444855981][/DOUBLEPOST]В общем фишка работает, осталось продумать как запустить её через кей команду.
 
  • Like
Реакции: EUGEN27771
Может каким-либо MIDI сообщением специфичным?

Из скрипта можно послать

StuffMIDIMessage(integer mode, integer msg1, integer msg2, integer msg3)
Stuffs a 3 byte MIDI message into either the Virtual MIDI Keyboard queue, or the MIDI-as-control input queue. mode=0 for VKB, 1 for control (actions map etc), 2 for VKB-on-current-channel.
Пока искал, набрёл на это (4.60pre13):
Justin:
Scheduling of MIDI events is really better off done within JSFX or VST plug-ins, ReaScripts are for higher level UI/project type stuff. We could possibly add support for ReaScript<-->JSFX communication, though.
Видать, забили они на это, а зря)
 
Последнее редактирование:
В общем вот такая пока бета версия плагина
Код:
desc:Pre Record Audio
// V alfa 0.01

//slider1:0<0,1,1{Mono,Stereo}>Channel Mode
slider1:1<1,99,1>Track (#)

@init
buf=0

@slider
nch = 1; //+ (slider1 >= 0.5);
track_idx = slider1 - 1;

@block
@sample
trigger == 1 ? (s=10;a=1);
play_state == 1 ? (buf[i]=spl0; i=i+1):(len=i);
spl0=spl0;
spl1=spl1;

@gfx
a == 1 ? (a=0;export_buffer_to_project(buf, len, nch, srate, track_idx, 0, tempo));
алгоритм работы аля ПроТулс ПанчИн: нажимаешь плэй, потом рек, потом стоп, потом нажимаешь на нулевой тригер и то что звучало по входу вставится в виде айтема от начала старта до начала записи.
Плагин ставить в Input FX, регулятором выставить номер трэка на который будут вставляться пререкорды.

Версия для ознакомления, документации нет, скорее всего алгоритм работы операнда будет ещё меняться.
------------------------------
Всё это конечно костыль. Лучше бы реализовали на уровне АПИ - самое главное уже всё есть, осталось только реализовать.
 
Последнее редактирование:
  • Like
Реакции: EUGEN27771
@@Michael, высылаю версию с миди тригером. Активируется любым значением СС119.
Код:
desc:Pre Record Audio
// V 0.02 alfa
//slider1:0<0,1,1{Mono,Stereo}>Channel Mode
slider1:1<1,99,1>Track (#)

@init
buf=0
@slider
nch = 1; //+ (slider1 >= 0.5);
track_idx = slider1 - 1;
@block
while (midirecv(offset,msg1,msg2,msg3)) ( // REAPER 4.59+ syntax while()
       msg1==176 && msg2==119 ? (
         noteon_cnt+=1; // count note-ons
      // ) : (
         midisend(offset,msg1,msg2,msg3); // passthrough other events
        a=1
       )
    );
@sample
trigger == 1 ? (s=10;a=1);
play_state == 1 ? (buf[i]=spl0; i=i+1):(len=i);
spl0=spl0;
spl1=spl1;
@gfx
a == 1 ? (a=0;export_buffer_to_project(buf, len, nch, srate, track_idx, 0, tempo));
[DOUBLEPOST=1444914942,1444914858][/DOUBLEPOST]В коде имеются лишние строки, использовал для себя в качестве индикаторов исполнения.
 
  • Like
Реакции: EUGEN27771

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