Последнее редактирование:
ТОЧНО!Оба выдают значение. GetParam еще и минимум/максимум.
function Open_Item_and_Zoom_to_Content()
(
Main_OnCommand(40153, 0); // MAIN section action 40153: "open selected item in MIDI editor"
active_MIDI_editor = MIDIEditor_GetActive(); // Now the MIDI editor is opened -> get MIDI editor ID
MIDIEditor_OnCommand(active_MIDI_editor, 40466); // ME action: "zoom to content"
MIDIEditor_OnCommand(NamedCommandLookup("_cf13e58d303dc541bd14eed46abbf6fd"), 0); // ME action: "my custom"
MIDIEditor_OnCommand(active_MIDI_editor, 40003); // ME action: "zoom to one loop iteration"
);
Open_Item_and_Zoom_to_Content();
[DOUBLEPOST=1434918366][/DOUBLEPOST]Это цитата с поста #283Вообще-то, если это EEL, то для стандартных Action пишут -
PHP:
MIDIEditor_OnCommand(40466,0);
А для Custom -
PHP:
MIDIEditor_OnCommand(NamedCommandLookup("_cf13e58d303dc541bd14eed46abbf6fd"), 0);
На ум приходит только то, что этот Кастом Экшин не из секции MIDI Editor, а например из Main и тогда строка должна быть вот такой -Вот строка:
MIDIEditor_OnCommand(NamedCommandLookup("_cf13e58d303dc541bd14eed46abbf6fd"), 0);
Что в ней не так? Подскажите, пожалуйста?
function Open_Item_and_Zoom_to_Content()
(
Main_OnCommand(40153, 0); // MAIN section action 40153: "open selected item in MIDI editor"
active_MIDI_editor = MIDIEditor_GetActive(); // Now the MIDI editor is opened -> get MIDI editor ID
MIDIEditor_OnCommand(active_MIDI_editor, 40466); // ME action: "zoom to content"
loop(12,
MIDIEditor_OnCommand(active_MIDI_editor, 40111);
);
MIDIEditor_OnCommand(active_MIDI_editor, 40003); // ME action: "zoom to one loop iteration"
);
Open_Item_and_Zoom_to_Content();
Тогда попробуйте заменить его на такое -@Aleksandr Oleynik, да нет же, этот кастом экшн именно из секции MIDI Editor
GetExtState(#trackguid, "TrackGUID", "S1");
tr = extension_api("BR_GetMediaTrackByGUID", 0, #trackguid);
TrackFX_GetParamNormalized(tr, 0, 5) == 0?
(
TrackFX_SetParam(tr, 0, 2, 0.24);
);
//////////////////////////////////////////////
TrackFX_GetParamNormalized(tr, 0, 5) == 1?
(
TrackFX_SetEnabled(tr, 1, 0);
TrackFX_SetEnabled(tr, 2, 1);
TrackFX_SetEnabled(tr, 3, 0);
TrackFX_SetEnabled(tr, 4, 0);
TrackFX_SetEnabled(tr, 5, 0);
TrackFX_SetEnabled(tr, 6, 0);
);
GetExtState(#trackguid, "TrackGUID", "S1");
tr = extension_api("BR_GetMediaTrackByGUID", 0, #trackguid);
TrackFX_GetParamNormalized(tr, 0, 5) == 0 ? (
TrackFX_SetParam(tr, 0, 2, 0.24);
);
function wait_for_1() (
TrackFX_GetParamNormalized(tr, 0, 5) == 1 ? (
TrackFX_SetEnabled(tr, 1, 0);
TrackFX_SetEnabled(tr, 2, 1);
TrackFX_SetEnabled(tr, 3, 0);
TrackFX_SetEnabled(tr, 4, 0);
TrackFX_SetEnabled(tr, 5, 0);
TrackFX_SetEnabled(tr, 6, 0);
defer("wait_for_1()");
) : (
atexit("");
);
);
wait_for_1();
Не, так не работает.Пишу с телефона, так что работоспособность не гарантирую:
PHP:GetExtState(#trackguid, "TrackGUID", "S1"); tr = extension_api("BR_GetMediaTrackByGUID", 0, #trackguid); TrackFX_GetParamNormalized(tr, 0, 5) == 0 ? ( TrackFX_SetParam(tr, 0, 2, 0.24); ); function wait_for_1() ( TrackFX_GetParamNormalized(tr, 0, 5) == 1 ? ( TrackFX_SetEnabled(tr, 1, 0); TrackFX_SetEnabled(tr, 2, 1); TrackFX_SetEnabled(tr, 3, 0); TrackFX_SetEnabled(tr, 4, 0); TrackFX_SetEnabled(tr, 5, 0); TrackFX_SetEnabled(tr, 6, 0); defer("wait_for_1()"); ) : ( atexit(""); ); ); wait_for_1();
GetExtState(#trackguid, "TrackGUID", "S1");
tr = extension_api("BR_GetMediaTrackByGUID", 0, #trackguid);
TrackFX_GetParamNormalized(tr, 0, 5) == 0 ?
(
TrackFX_SetParam(tr, 0, 2, 0.24);
);
function wait_for_1()
(
TrackFX_GetParamNormalized(tr, 0, 5) == 1 ?
(
TrackFX_SetEnabled(tr, 1, 0);
TrackFX_SetEnabled(tr, 2, 1);
TrackFX_SetEnabled(tr, 3, 0);
TrackFX_SetEnabled(tr, 4, 0);
TrackFX_SetEnabled(tr, 5, 0);
TrackFX_SetEnabled(tr, 6, 0);
) : (
defer("wait_for_1()");
);
);
wait_for_1();
Т.е. defer-ов несколько в одном скрипте не может быть?Мой пост был не об этом, а о том, как выключить defer() одного скрипта из другого скрипта. defer() для каждого скрипта свой.
function wait_for_1()
(
TrackFX_GetParamNormalized(tr, 0, 5) == 1 ?
(
TrackFX_SetEnabled(tr, 1, 0);
TrackFX_SetEnabled(tr, 2, 1);
TrackFX_SetEnabled(tr, 3, 0);
TrackFX_SetEnabled(tr, 4, 0);
TrackFX_SetEnabled(tr, 5, 0);
TrackFX_SetEnabled(tr, 6, 0);
) : (
defer("wait_for_1()");
);
);
wait_for_1();
TrackFX_GetParamNormalized(tr, 0, 5) == 0 ?
(
TrackFX_SetParam(tr, 0, 2, 0.24);
);
GetExtState(#trackguid, "TrackGUID", "S1");
tr = extension_api("BR_GetMediaTrackByGUID", 0, #trackguid);
function wait_for_1()
(
TrackFX_GetParamNormalized(tr, 0, 5) == 1 ?
(
TrackFX_SetEnabled(tr, 1, 0);
TrackFX_SetEnabled(tr, 2, 1);
TrackFX_SetEnabled(tr, 3, 0);
TrackFX_SetEnabled(tr, 4, 0);
TrackFX_SetEnabled(tr, 5, 0);
TrackFX_SetEnabled(tr, 6, 0);
) : (
defer("wait_for_1()");
);
);
TrackFX_GetParamNormalized(tr, 0, 5) == 0 ?
(
TrackFX_SetParam(tr, 0, 2, 0.24);
) : (
wait_for_1()
);
;
function do_actions_from_main_and_midi_sections()
(
cmd = 40153; // 40153 == open selected item in MIDI editor
midi_cmd = 40003; // 40003 == select all notes
midi_cmd2 = NamedCommandLookup("_2c424cf79e9fbb4e94396a449556abbc"); //select high notes
midi_cmd3 = NamedCommandLookup("_BR_ME_SAVE_NOTE_SEL_SLOT_5");//save sel notes
midi_cmd4 = NamedCommandLookup("_BR_ME_RESTORE_NOTE_SEL_SLOT_5");//restore save sel note
Main_OnCommand(cmd, 0); //open ME
MIDIEditor_OnCommand(MIDIEditor_GetActive(), midi_cmd);//sel all notes
MIDIEditor_LastFocused_OnCommand(midi_cmd2 ,0); //script sel high notes
MIDIEditor_LastFocused_OnCommand(midi_cmd3 ,0); //save sel notes,slot5
MIDIEditor_LastFocused_OnCommand(midi_cmd4 ,0);//restore sel notes,slot5
MIDIEditor_OnCommand(MIDIEditor_GetActive(), 2); // ME action: "Close MEditor"
);
do_actions_from_main_and_midi_sections();
function repeat_while_loop()
startOut, endOut = reaper.GetSet_LoopTimeRange2(0, false, true, 0, 0, true)
timesel = endOut - startOut
if timesel > 0 then
reaper.GetSetRepeatEx(0,1)
reaper.defer(repeat_while_loop)
else
reaper.GetSetRepeatEx(0,0)
reaper.defer(repeat_while_loop)
end
end
repeat_while_loop()