/* * ReaScript Name: Select all MIDI notes and events right of cursor * Author: spk77 * Author URI: http://forum.cockos.com/member.php?u=49553 * Licence: GPL v3 * Version: 1.1 * Changelog: # Works on all editable takes in MIDI editor (by X-Raym) */ function select_events( take ) local( cursor_ppq_pos, notes, ccs, sysex, sel, muted, start, end, chan, pitch, vel, chanmsg, msg2, msg3, type ) ( cursor_ppq_pos = MIDI_GetPPQPosFromProjTime(take, GetCursorPosition()); MIDI_CountEvts(take, notes, ccs, sysex); i = 0; loop(notes, MIDI_GetNote(take, i, sel, muted, start, end, chan, pitch, vel); start >= cursor_ppq_pos ? MIDI_SetNote(take, i, 1, muted, start, end, chan, pitch, vel); i += 1; ); i = 0; loop(ccs, MIDI_GetCC(take, i, sel, muted, start, chanmsg, chan, msg2, msg3); start >= cursor_ppq_pos ? MIDI_SetCC(take, i, 1, muted, start, chanmsg, chan, msg2, msg3); i += 1; ); i = 0; loop(sysex, MIDI_GetTextSysexEvt(take, i, sel, muted, start, type, #msg); start >= cursor_ppq_pos ? MIDI_SetTextSysexEvt(take, i, 1, muted, start, type, #msg); i += 1; ); ); function select() local(midi_editor, z) ( midi_editor = MIDIEditor_GetActive(); MIDIEditor_OnCommand(midi_editor, 40214); // unselect all (APIExists("MIDIEditor_EnumTakes")) ? ( z = 1; while(z) ( (take = MIDIEditor_EnumTakes(midi_editor, z-1, 1) ) ? ( z += 1; select_events( take ) ):( z = 0; ); ); ):( (take = MIDIEditor_GetTake(midi_editor)) ? ( select_events( take ); ); ); Undo_OnStateChange("Select events right of cursor"); ); select();