|
|
|
04-24-2019, 01:47 PM
|
#1
|
Human being with feelings
Join Date: Nov 2009
Location: Belgium
Posts: 10,474
|
Besoin d'aide des scripters
Bonjour à tous
Grâce au snippet de code de X Raym, j'ai pondu ceci
Code:
--[[
* ReaScript Name: Continuous push shortcut to toggle arm action
* Author: X-Raym & ReNo
* Licence: GPL v3
* REAPER: 5.0
* Version: 1.0
--]]
--[[
* Changelog:
* v1.0 (2019-04-10)
+ Initial Release
--]]
-- Note: Link your keys to No-op (no action) in action list or to the orignal action
-- Note: Be very strict about focus (is arrange view in focus, is mouse over item etc) else the action might trigger at unexpected moment (like writing track name)
-- USER CONFIG AREA --
action_id = 40012 -- Item: Split items at edit or play cursor
VirtualKeyCode = 0x53 -- S -- https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
section = "Main"
----------------------
-- Globals
armed, section = reaper.GetArmedCommand()
if armed == action_id then
toggle_state = 1
else
toggle_state = 0
end
-- Set ToolBar Button State
function SetButtonState( set )
if not set then set = 0 end
local is_new_value, filename, sec, cmd, mode, resolution, val = reaper.get_action_context()
local state = reaper.GetToggleCommandStateEx( sec, cmd )
reaper.SetToggleCommandState( sec, cmd, set ) -- Set ON
reaper.RefreshToolbar2( sec, cmd )
end
-- Main Function (which loop in background)
function main()
retval, state = reaper.JS_VKeys_GetState()
window, seg, detail= reaper.BR_GetMouseCursorContext()
if state:byte(VirtualKeyCode) ~= 0 then
if toggle_state == 0 and window == "arrange" then
--reaper.ShowConsoleMsg("G key is pressed" .. "\n")
reaper.ArmCommand( action_id , "Main") -- Toggle grid
reaper.UpdateArrange()
toggle_state = 1
end
else
if toggle_state == 1 and window == "arrange" then
--reaper.ShowConsoleMsg("G key is released" .. "\n")
reaper.ArmCommand(0, "Main") -- Toggle grid
reaper.UpdateArrange()
toggle_state = 0
end
end
reaper.defer( main )
end
-- RUN
if not reaper.JS_VKeys_GetState then
reaper.ShowConsoleMsg('Please Install js_ReaScriptAPI extension.\nhttps://forum.cockos.com/showthread.php?t=212174\n')
else
reaper.ClearConsole()
SetButtonState( 1 )
main()
reaper.atexit( SetButtonState )
end
C'est un script defer qui fait en sorte que lorsque la touche "S" du clavier est maintenue, l'action "Item: Split items at edit or play cursor" est armée dans la souris jusqu'au relachement de la touche "S"
C'est pratique mais il y'a quelques problèmes
-Si je veux avoir ce confort ergonomique sur d'autres raccourcis, il faut pondre autant de script que d'action (et le lancer tous au démarrage de RPR)
-La touche concernée n'est pas en rapport avec le raccourcis clavier affecté au script. pire, si j'alloue le raccourcis clavier S à une autre action, celui-ci fonctionne normalement et on peut très vite perdre en cohérence si on change des raccourcis clavier
Je me demandais juste si il n'y avait pas moyen d'obtenir ces deux choses via lua et/ou l'API de RPR (et extensions)
1) intercepter les virtual keycode des touches enfoncées
2) que reaper vérifie si la touche n'est pas allouée à une raccourcis clavier et, le cas échéant, chopper le command id de l'action en question et sa section?
Ca permettrait de n'avoir qu'un gros script qui permet de faire passer n'importe quel action en mode "arm" à partir du moment où l'on maintient la touche de raccourcis qui lui est allouée!
Des idées?
D'avance merci
|
|
|
04-24-2019, 02:52 PM
|
#2
|
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 9,902
|
Cela me parait trop complexe,
quelques infos:
- la liste des raccourcis claviers utilisés est dispo dans un reaper-kb.ini, avec les lignes qui ont Key en mot clé. Chez moi c'est un fichier de 5600 lignes (vu qu'il a aussi les custom actions). Parser ce fichier à chaque execution du script juste pour voir si la touche n'est pas affecté ) autre chose me parait complétement overkill (à la fois d'un point de vue performance mais aussi de dev). (EDIT: cela dit on peut parser par le bas du fichie rligne à ligne, là ce sera plus rapide du coup vu que les Keys sont à la fin - mais les keys sont pas encodé comme dans le script, et a ma connaissance il n'y a pas de fonction simple pour passer de l'u à lautre format)
Quote:
-Si je veux avoir ce confort ergonomique sur d'autres raccourcis, il faut pondre autant de script que d'action (et le lancer tous au démarrage de RPR)
|
Quote:
Ca permettrait de n'avoir qu'un gros script qui permet de faire passer n'importe quel action en mode "arm" à partir du moment où l'on maintient la touche de raccourcis qui lui est allouée!
|
- Le script peut déjà être utilisé pour l'ensemble des actions dont ont veut basculer l'état à la pression d'une touche. Juste à rajouter ses propres raccourcis et ses conditions et c'est bon.
C'est donc en somme déjà possible de modifier le script pour faire ça sans devoir coder de nouvelles fonctions ou de choses complexe; Toutes les fonctions nécéssaires sont déjà dans le code existant.
Last edited by X-Raym; 04-24-2019 at 03:03 PM.
|
|
|
04-24-2019, 11:06 PM
|
#3
|
Human being with feelings
Join Date: Nov 2009
Location: Belgium
Posts: 10,474
|
oui mais le but est de degeeker le tout justement
Si dans 6 mois, il y'a une nouvelle action dans reaper 6 et que je veux raccorder cette nouvelle action à un raccourcis clavier, va falloir que je réouvre le script pour aller ajouter un caractère ou modifier l'action allouée à une touche parce que, je décide de changer.
La, avec ce que je préconise, si je fait un changement de raccourcis ou qu'une nouvelle action arrive, le script reste identique mais fonctionnel
En gros, le script s'appellerait
options : toggle arm action when holding their key shortcut.
Allez franchement, je suis sur que c'est possible?
|
|
|
04-25-2019, 04:37 AM
|
#4
|
Human being with feelings
Join Date: Jan 2011
Location: Chanaz-Savoie
Posts: 989
|
Moi je fais une action personnalisée avec l'action "toggle arm of next action" suivie de l'action que je veux armer.
Ça revient à faire 2 clics au lieu d'un seul tenu, donc pas une grosse différence en terme de travail, mais l'avantage c'est que c'est lié à une action et non à son raccourci, qui peux donc changer plus tard.
__________________
La musique est un cri qui vient de l'intérieur.(Bernard Lavilliers)
|
|
|
04-25-2019, 05:06 AM
|
#5
|
Human being with feelings
Join Date: Nov 2009
Location: Belgium
Posts: 10,474
|
Non mais oui mais je suis d'accord mais le toggle arm next action est hyper limité, déjà , il ne fonctionne pas dans une cycle action
l'exemple ici du code est pour donner une base, mais ca ouvre des possibilités énormes
|
|
|
04-26-2019, 12:13 AM
|
#6
|
Human being with feelings
Join Date: Jun 2017
Location: Paris-Bruxelles
Posts: 1,266
|
Je ne suis pas certain d'avoir compris, mais l'idée est-elle d'ajouter des possibilités aux "mouse modifier" pour ne pas les limiter aux simples: Cmd+Clic ou Shift+Clic ou Alt+Clic etc...
En effet, si je peux faire un "M+Clic" ou un "B+clic" pour activer des commandes, cela m'intéresse beaucoup. Car la fonction fonction "toggle" ON/OFF n'est pas toujours adaptée.
vous me direz...
|
|
|
04-26-2019, 12:47 AM
|
#7
|
Human being with feelings
Join Date: Nov 2009
Location: Belgium
Posts: 10,474
|
Arpegia, c'est exactement ça
Avec le script au dessus, la touche S devient un mouse modifiers qui fait en sorte que le click effectue l'action "split item" lorsque le S est maintenu enfoncé
regarde
https://drive.google.com/open?id=1uz...Z1U-LoIxyt-2nq
|
|
|
04-26-2019, 10:11 AM
|
#8
|
Human being with feelings
Join Date: Jun 2017
Location: Paris-Bruxelles
Posts: 1,266
|
Quote:
Originally Posted by Reno.thestraws
|
C'est cool ça... LA question alors: comment modifier le script pour y adresser la fonction qu'on souhaite sur la touche qu'on souhaite ?
|
|
|
04-26-2019, 03:05 PM
|
#9
|
Human being with feelings
Join Date: Apr 2013
Location: France
Posts: 9,902
|
@Arpegia
Il ya juste à modifier les valeurs des variables dans la section USER CONFIG AREA du script:
Code:
-- USER CONFIG AREA --
action_id = 40012 -- Item: Split items at edit or play cursor
VirtualKeyCode = 0x53 -- S -- https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
section = "main"
Tu remplaces l'action ID par celle de ton choix (clic droit dans la liste des actions, copier action ID).
Et tu change le virtual key code avec celui de la touche de ton choix avec le lien mentionné.
Tu sauvegardes ça avec sous un nouveau nom de script,
tu assignes la touche du clavier à l'action "Pas d'action" (je ne sais pas comment cela a été traduit) et c'est bon.
|
|
|
04-26-2019, 04:49 PM
|
#10
|
Human being with feelings
Join Date: Jun 2017
Location: Paris-Bruxelles
Posts: 1,266
|
Quote:
Originally Posted by X-Raym
@Arpegia
Il ya juste à modifier les valeurs des variables dans la section USER CONFIG AREA du script:
Code:
-- USER CONFIG AREA --
action_id = 40012 -- Item: Split items at edit or play cursor
VirtualKeyCode = 0x53 -- S -- https://docs.microsoft.com/en-us/windows/desktop/inputdev/virtual-key-codes
section = "main"
Tu remplaces l'action ID par celle de ton choix (clic droit dans la liste des actions, copier action ID).
Et tu change le virtual key code avec celui de la touche de ton choix avec le lien mentionné.
Tu sauvegardes ça avec sous un nouveau nom de script,
tu assignes la touche du clavier à l'action "Pas d'action" (je ne sais pas comment cela a été traduit) et c'est bon.
|
Merci, merci à toi et à Reno, ... je vais essayer ça
|
|
|
04-26-2019, 11:32 PM
|
#11
|
Human being with feelings
Join Date: Nov 2009
Location: Belgium
Posts: 10,474
|
arpegia
pas sûr que ça marche sous Mac..
c"est d'ailleurs pour ça que je te conseille d'attendre.
en l'état le script est pratique mais lourd si tu veux l'appliquer à plusieurs actions.
le but du Thread est d'obtenir de l'aide de plus compétents que moi pour faire un truc plus poussé
|
|
|
04-27-2019, 04:18 AM
|
#12
|
Human being with feelings
Join Date: Nov 2009
Location: Belgium
Posts: 10,474
|
voila où j'en suis et qui explique un peu mieux l'interet de la chose
https://youtu.be/P8pUvqOBytM
|
|
|
04-27-2019, 05:37 AM
|
#13
|
Petit manitou
Join Date: Feb 2009
Location: Mars
Posts: 7,356
|
Woooawww ! c'est brillant comme d'hab, Justin devrait te piquer l'idée pour pouvoir le mettre par défaut sans passer par un script.
|
|
|
04-27-2019, 07:31 AM
|
#14
|
Human being with feelings
Join Date: Jun 2017
Location: Paris-Bruxelles
Posts: 1,266
|
Quote:
Originally Posted by Reno.thestraws
arpegia
pas sûr que ça marche sous Mac..
c"est d'ailleurs pour ça que je te conseille d'attendre.
en l'état le script est pratique mais lourd si tu veux l'appliquer à plusieurs actions.
le but du Thread est d'obtenir de l'aide de plus compétents que moi pour faire un truc plus poussé
|
Bon d'accord, je vais attendre...
je viens de regarder ta vidéo explicative qui est très intéressante. Aussi j'observe que tu as customisé tes icônes. Quel programme utilises-tu pour cela ? ou, existe-il une base de données avec tes icônes?
|
|
|
05-19-2020, 03:23 PM
|
#15
|
Human being with feelings
Join Date: Sep 2016
Posts: 513
|
Comme dab brillant impatient de voir la suite merci reno
|
|
|
Thread Tools |
|
Display Modes |
Linear Mode
|
Posting Rules
|
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts
HTML code is Off
|
|
|
All times are GMT -7. The time now is 01:29 PM.
|