Надо войти в SWS auto Color/icon. Добавить трэк, в поле Filter выбрать (children), в поле Color - Parrent.Ребята кто знает есть ли такая команда или скрипт с помощью которой можно было бы раскрашивать треки которые находятся в папке т е раcкрашиваешь папку а все треки что в ней раскрашивались бы в такой же цвет автоматически.....
Я как раз с этого и начинал,хотел сначала записать в файл.Потом выяснилось,что запись в файл идет только в секции @serialize,и что пишет не в любой файл,а именно в файл проекта,вдобавок в бинарном виде.Может быть,я где-то неправильно понял,но вроде именно так.Из JS я так понимаю можно файл писать (file_mem, @serialize, file_avail(handle))? Ну вот
Вообще,тот плаг что я сделал и есть по сути почти MIDI Logger,только с некоторыми добавочными функциями.Но в файл(отдельный,не проекта и в нормальном виде) напрямую,как уже написал не получается.JS MIDI Logger и из него всё писать текстом
Так а может Михаил может забрать скриптом нужную инфу прямо из файла проекта?Но в файл(отдельный,не проекта и в нормальном виде) напрямую,как уже написал не получается.
Тут пока бардак полный.Но плаг пишет и воспроизводит входящие миди,точность записи до сэмпла,воспроизведение делалось только для эксперимента и проверки.И много лишнего.выложе поглядеть что навоял.
slider1:0<0,1,1{REC,PLAY Recorded}>Mode
slider2:0<0,65536,5>MSG Number
slider3:0<0,1000000000,1>Block Position
slider4:0<0,2048,1>Offset
slider5:0<0,127,1>msg1
slider6:0<0,127,1>msg2
slider7:0<0,127,1>msg3
in_pin:none
out_pin:none
@slider
(slider1 == 1 && play_state == 0 ) ? i = 0;output_msg_count=0;
(slider1 == 0 && play_state == 0 ) ? i = 0;output_msg_count=0;
s = slider2;
slider3= buf[s];slider4=buf[s+1];slider5=buf[s+2];slider6=buf[s+3];slider7=buf[s+4];
@init
ext_noinit = 1;
//===RECORD INPUT MIDI===//
@block
sample_position = floor(srate*play_position + 0.5);
(play_state == 0 || sample_position<Last_Point || sample_position-Last_Point > 4*samplesblock) ?
(i = 0;output_msg_count=0;
Start_Point = sample_position;);
block_position = sample_position - Start_Point;
slider1 == 0 && play_state == 1 ?
(
while (midirecv(offset,msg1,msg2,msg3) )
(i==0 ? input_msg_count=0;
input_msg_count+=1;
buf[i] = block_position;
buf[i+1] = offset;
buf[i+2] = msg1;
buf[i+3] = msg2;
buf[i+4] = msg3;
i+=5;
midisend(offset,msg1,msg2,msg3);//Pass true
);
);
Last_Point = sample_position;
//=========PLAY Recorded MIDI===================
@sample
slider1 == 1 && output_msg_count<input_msg_count && (play_state == 1 || play_state == 5) ?
(
block_position == buf[i] ?
( midisend( buf[i+1],buf[i+2], buf[i+3],buf[i+4]);
output_msg_count+=1;
i+=5;
);
);
Hex редактор или просмотровщик
retval, hex = reaper.GetUserInputs('hex 2 dec', 1, '', '')
if retval ~= nil then hex = tonumber(hex, 16) if hex ~= nil then reaper.ShowConsoleMsg(hex) end end
пока скрипт не умеет принимать и передавать миди
reaper.StuffMIDIMessage(integer mode, integer msg1, integer msg2, integer msg3)
+reaper.get_action_context()
Returns contextual information about the script, typically MIDI/OSC input values:
is_new_value,filename,sectionID,cmdID,mode,resolution,val = reaper.get_action_context()
val will be set to a relative or absolute value depending on mode (=0: absolute mode, >0: relative modes). resolution=127 for 7-bit resolution, =16383 for 14-bit resolution.
Notes: sectionID, and cmdID will be set to -1 if the script is not part of the action list. mode, resolution and val will be set to -1 if the script was not triggered via MIDI/OSC.
reaper.SetExtState(string section, string key, string value, boolean persist)
Если приедете - будет не только пиво ОБЕЩАЮ!!!!!@@Michael, поехали в Киев под пиво RetrospectivRecords for Reaper писать?
Женя, но это же круть неимоверная!Короче,уже легко пишутся любые Control Change.С любой позиции,и вставляются на любой трек,работает как положено,вставляются моментально.И скрипт без Defer() вообще.
Посмотреть вложение 106817
Осталось с note on - note off разобраться и все привести в порядок.
Опция добавлена.попробуй добавить опцию: имя айтема согласно имени трека.
Пока вряд ли.Входные ноты скриптом не прочитать пока.что-то мне подсказывает что текущий вопрос можно порешать средствами одного скрипта без участия JSFX.
Плагин просто читает и сохраняет все входные миди-данные в свой буфер,типа "массив".вышли скрипт. Без него пока не понимаю логику работы плагина.
Тут хотя бы все до ума довести.И на кокосе просто никто и не брался,там у многих такой уровень,что могли бы наверно и вообще нативно сделатьНужно на Какосе твою работу выложить