[Tuto Vidéo] - Les actions contextuelles
- 1 réponse
- 2 participants
- 1 142 vues
- 1 follower
Anonyme
8413
Sujet de la discussion Posté le 03/09/2015 à 17:06:14[Tuto Vidéo] - Les actions contextuelles
Bonjour à tous, suite à une demande de Vincent Sermone, voici un tutoriel vidéo sur les actions contextuelles dans REAPER 5
ATTENTION = SUPER GEEK!
INSTALLATION SWS OBLIGATOIRE!!!
merci à BREEDER pour l'aide du code!
le code
ATTENTION = SUPER GEEK!
INSTALLATION SWS OBLIGATOIRE!!!
merci à BREEDER pour l'aide du code!
le code
Spoiler - Cliquer ici pour lire la suite
///GABARIT pour la realisation d'action contexutelle par ReNo Mellow. Thanks to Breeder for the golden starting point!
/// Mode d'emploi :
/// pour appeller une action il suffit de noter action suivi de l'action ID entre parenthese
/// exemple : action (65535)
/// pour appeller une action SWS, une custom action ou un script, utilisez sws suivi de l'ID de l'action
// entre parentheses et entre guillemets
/// exemple : sws("_S&M_MOUSE_L_CLICK")
/// pour appeller une action MIDI, une custom action ou un script, utilisez midi suivi de l'ID de l'action
// entre parentheses
/// exemple : midi (65535)
///pour appeller une action SWS, une custom action ou un script de l'editeur MIDI, utilisez midisws suivi de l'ID de l'action
// entre parentheses et entre guillemets
/// exemple : midisws ("_S&M_MOUSE_L_CLICK")
/// NE PAS TOUCHER CETTE PARTIE
function action (param)
(
Main_OnCommand(param,0);
);
function sws (param)
(
Main_OnCommand(NamedCommandLookup (param), 0);
);
function midi (param)
(
MIDIEditor_LastFocused_OnCommand(param,0);
);
function midisws (param)
(
MIDIEditor_LastFocused_OnCommand(NamedCommandLookup(param), 0);
);
Undo_BeginBlock();
// Call BR_GetMouseCursorContext API from SWS to get current details for stuff under mouse cursor
extension_api("BR_GetMouseCursorContext", #window, #segment, #details);
overTimeSel = 0;
// Get time selection info
GetSet_LoopTimeRange2(0, 0, 0, tStart, tEnd, 0);
(tStart != tEnd) ?
(
mousePos = extension_api("BR_GetMouseCursorContext_Position"); // call this only after calling BR_GetMouseCursorContext to obtain data for current mouse position
mousePos >= tStart && mousePos <= tEnd ? overTimeSel = 1;
);
/// ZONE d'EDITION UTILISATEUR ////////////////////////////////
// Si la souris est au dessus de la barre de Transport :
!strcmp(#window, "transport") ?
(
action(65535);
)
/// Si la souris est au dessus du tcp :
: !strcmp(#window, "tcp") && !strcmp(#segment, "track") ?
(
action(65535);
)
/// Si la souris est au dessus du tcp vide :
: !strcmp(#window, "tcp") && !strcmp(#segment, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus du ecp :
: !strcmp(#window, "tcp") && !strcmp(#segment, "envelope") ?
(
action(65535);
)
/// Si la souris est au dessus du mcp :
: !strcmp(#window, "mcp") && !strcmp(#segment, "track") ?
(
action(65535);
)
/// Si la souris est au dessus du mcp vide :
: !strcmp(#window, "mcp") && !strcmp(#segment, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne des regions :
: !strcmp(#window, "ruler") && !strcmp(#segment, "region_lane") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne des marqueurs :
: !strcmp(#window, "ruler") && !strcmp(#segment, "marker_lane") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne des marqueurs de tempo :
: !strcmp(#window, "ruler") && !strcmp(#segment, "tempo_lane") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne temporelle (ruler)
: !strcmp(#window, "ruler") && !strcmp(#segment, "timeline") ?
(
action(65535);
)
/// Si la souris est au dessus d'un section de piste vide
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus d'un item (objet):
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "item") ?
(
action(65535);
)
/// Si la souris est au dessus d'un marqueur d'etirement (stretch marker) :
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "item_stretch_marker") ?
(
action(65535);
)
/// Si la souris est au dessus d'un point d'envelope de prise:
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "env_point") ?
(
action(65535);
)
/// Si la souris est au dessus d'un segment d'envelope de pris :
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "env_segment") ?
(
action(65535);
)
/// Si la souris est au dessus d'une envelope vide
: !strcmp(#window, "arrange") && !strcmp(#segment, "envelope") && !strcmp(#details, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus d'un point d'envelope
: !strcmp(#window, "arrange") && !strcmp(#segment, "envelope") && !strcmp(#details, "env_point") ?
(
action(65535);
)
/// Si la souris est au dessus d'un segment d'envelope
: !strcmp(#window, "arrange") && !strcmp(#segment, "envelope") && !strcmp(#details, "env_segment") ?
(
action(65535);
)
/// Si la souris est au dessus d'une partie vide de l'arrangement
: !strcmp(#window, "arrange") && !strcmp(#segment, "empty") ?
(
action(65535);
)
/// MIDI ////////////////////////////////////////////////////
/// Si la souris est au dessus de la ligne temporelle (ruler) de l'editeur MIDI
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "ruler") ?
(
midi(65535);
)
/// Si la souris est au dessus du Piano (gauche de l'ecran)
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "piano") ?
(
midi(65535);
)
/// Si la souris est au dessus du piano roll ou d'un note
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "notes") ?
(
midi(65535);
)
/// Si la souris est au dessus du selecteur de cc
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "cc_lane") && !strcmp(#details, "cc_selector") ?
(
midi(65535);
)
/// Si la souris est au dessus de la ligne d'edition des cc
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "cc_lane") && !strcmp(#details, "cc_lane") ?
(
midi(65535);
)
////////////// STOP ////////////////
;
UpdateArrange();
/////N'oubliez pas le nom de votre action
Undo_EndBlock("Contextual action name", 0);
///GABARIT pour la realisation d'action contexutelle par ReNo Mellow. Thanks to Breeder for the golden starting point!
/// Mode d'emploi :
/// pour appeller une action il suffit de noter action suivi de l'action ID entre parenthese
/// exemple : action (65535)
/// pour appeller une action SWS, une custom action ou un script, utilisez sws suivi de l'ID de l'action
// entre parentheses et entre guillemets
/// exemple : sws("_S&M_MOUSE_L_CLICK")
/// pour appeller une action MIDI, une custom action ou un script, utilisez midi suivi de l'ID de l'action
// entre parentheses
/// exemple : midi (65535)
///pour appeller une action SWS, une custom action ou un script de l'editeur MIDI, utilisez midisws suivi de l'ID de l'action
// entre parentheses et entre guillemets
/// exemple : midisws ("_S&M_MOUSE_L_CLICK")
/// NE PAS TOUCHER CETTE PARTIE
function action (param)
(
Main_OnCommand(param,0);
);
function sws (param)
(
Main_OnCommand(NamedCommandLookup (param), 0);
);
function midi (param)
(
MIDIEditor_LastFocused_OnCommand(param,0);
);
function midisws (param)
(
MIDIEditor_LastFocused_OnCommand(NamedCommandLookup(param), 0);
);
Undo_BeginBlock();
// Call BR_GetMouseCursorContext API from SWS to get current details for stuff under mouse cursor
extension_api("BR_GetMouseCursorContext", #window, #segment, #details);
overTimeSel = 0;
// Get time selection info
GetSet_LoopTimeRange2(0, 0, 0, tStart, tEnd, 0);
(tStart != tEnd) ?
(
mousePos = extension_api("BR_GetMouseCursorContext_Position"); // call this only after calling BR_GetMouseCursorContext to obtain data for current mouse position
mousePos >= tStart && mousePos <= tEnd ? overTimeSel = 1;
);
/// ZONE d'EDITION UTILISATEUR ////////////////////////////////
// Si la souris est au dessus de la barre de Transport :
!strcmp(#window, "transport") ?
(
action(65535);
)
/// Si la souris est au dessus du tcp :
: !strcmp(#window, "tcp") && !strcmp(#segment, "track") ?
(
action(65535);
)
/// Si la souris est au dessus du tcp vide :
: !strcmp(#window, "tcp") && !strcmp(#segment, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus du ecp :
: !strcmp(#window, "tcp") && !strcmp(#segment, "envelope") ?
(
action(65535);
)
/// Si la souris est au dessus du mcp :
: !strcmp(#window, "mcp") && !strcmp(#segment, "track") ?
(
action(65535);
)
/// Si la souris est au dessus du mcp vide :
: !strcmp(#window, "mcp") && !strcmp(#segment, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne des regions :
: !strcmp(#window, "ruler") && !strcmp(#segment, "region_lane") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne des marqueurs :
: !strcmp(#window, "ruler") && !strcmp(#segment, "marker_lane") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne des marqueurs de tempo :
: !strcmp(#window, "ruler") && !strcmp(#segment, "tempo_lane") ?
(
action(65535);
)
/// Si la souris est au dessus de la ligne temporelle (ruler)
: !strcmp(#window, "ruler") && !strcmp(#segment, "timeline") ?
(
action(65535);
)
/// Si la souris est au dessus d'un section de piste vide
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus d'un item (objet):
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "item") ?
(
action(65535);
)
/// Si la souris est au dessus d'un marqueur d'etirement (stretch marker) :
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "item_stretch_marker") ?
(
action(65535);
)
/// Si la souris est au dessus d'un point d'envelope de prise:
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "env_point") ?
(
action(65535);
)
/// Si la souris est au dessus d'un segment d'envelope de pris :
: !strcmp(#window, "arrange") && !strcmp(#segment, "track") && !strcmp(#details, "env_segment") ?
(
action(65535);
)
/// Si la souris est au dessus d'une envelope vide
: !strcmp(#window, "arrange") && !strcmp(#segment, "envelope") && !strcmp(#details, "empty") ?
(
action(65535);
)
/// Si la souris est au dessus d'un point d'envelope
: !strcmp(#window, "arrange") && !strcmp(#segment, "envelope") && !strcmp(#details, "env_point") ?
(
action(65535);
)
/// Si la souris est au dessus d'un segment d'envelope
: !strcmp(#window, "arrange") && !strcmp(#segment, "envelope") && !strcmp(#details, "env_segment") ?
(
action(65535);
)
/// Si la souris est au dessus d'une partie vide de l'arrangement
: !strcmp(#window, "arrange") && !strcmp(#segment, "empty") ?
(
action(65535);
)
/// MIDI ////////////////////////////////////////////////////
/// Si la souris est au dessus de la ligne temporelle (ruler) de l'editeur MIDI
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "ruler") ?
(
midi(65535);
)
/// Si la souris est au dessus du Piano (gauche de l'ecran)
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "piano") ?
(
midi(65535);
)
/// Si la souris est au dessus du piano roll ou d'un note
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "notes") ?
(
midi(65535);
)
/// Si la souris est au dessus du selecteur de cc
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "cc_lane") && !strcmp(#details, "cc_selector") ?
(
midi(65535);
)
/// Si la souris est au dessus de la ligne d'edition des cc
: !strcmp(#window, "midi_editor") && !strcmp(#segment, "cc_lane") && !strcmp(#details, "cc_lane") ?
(
midi(65535);
)
////////////// STOP ////////////////
;
UpdateArrange();
/////N'oubliez pas le nom de votre action
Undo_EndBlock("Contextual action name", 0);
Anonyme
139
2 Posté le 04/09/2015 à 04:28:38
Merci Reno pour ce tuto.
Je veux par ailleurs te remercier pour toutes les vidéos que tu mets à la disposition du tout-venant ; j'ai énormément appris grâce à toi.
"Voilà qui est fait".
Je veux par ailleurs te remercier pour toutes les vidéos que tu mets à la disposition du tout-venant ; j'ai énormément appris grâce à toi.
"Voilà qui est fait".
- < Liste des sujets
- Charte