FLmouse — Retourne la position de la souris et l'état de ses trois boutons.
Opcode du greffon widgets. Ce greffon se trouve dans le répertoire des greffons et il doit être installé séparément. Les widgets FLTK ne fonctionnent pas sur Mac. Le répertoire des greffons est ici : https://github.com/csound/plugins
FLmouse retourne les coordonnées de la position de la souris dans un panneau FLTK et l'état de ses trois boutons.
imode – (facultatif, 0 par défaut) Détermine la façon de rapporter la position de la souris.
0 - Position absolue normalisée dans l'intervalle 0-1
1 - Position absolue en pixel brut
2 - Position en pixel brut, relative au panneau FLTK
kx, ky – les coordonnées de la souris, dont l'intervalle dépend de l'argument imode (voir ci-dessus).
kb1, kb2, kb3 – les états des boutons de la souris, 1 lorsque le bouton correspondant est enfoncé, 0 lorqu'il est relaché.
FLmouse retourne les coordonnées de la position de la souris dans un panneau FLTK et l'état de ses trois boutons. Les coordonnées peuvent être récupérées selon trois modes dépendant de la valeur de l'argument imode (voir ci-dessus). Les modes 0 et 1 retournent la position de la souris par rapport à l'écran complet (mode absolu), tandis que le mode 2 retourne la position en pixels dans un panneau FLTK. Noter que FLmouse n'est actif que lorsque le curseur de la souris se trouve sur une zone FLpanel.
Voici un exemple de l'opcode FLmouse. Il utilise le fichier FLmouse.csd.
Exemple 319. Exemple de l'opcode FLmouse.
Voir les sections Audio en Temps Réel et Options de la Ligne de Commande pour plus d'information sur l'utilisation des options de la ligne de commande.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform ; Audio out Audio in No messages -odac -iadc -d ;;;RT audio I/O </CsOptions> <CsInstruments> sr=44100 ksmps=128 nchnls=2 ;Example by Andres Cabrera 2007 giwidth = 400 giheight = 300 FLpanel "FLmouse", giwidth, giheight, 10, 10 FLpanelEnd FLrun 0dbfs = 1 instr 1 kx, ky, kb1, kb2, kb3 FLmouse 2 ktrig changed kx, ky ;Print only if coordinates have changed printf "kx = %f ky = %f \n", ktrig, kx, ky kfreq = ((giwidth - ky)*1000/giwidth) + 300 ; y coordinate determines frequency, x coordinate determines amplitude ; Left mouse button (kb1) doubles the frequency ; Right mouse button (kb3) activates sound on channel 2 aout oscil kx /giwidth , kfreq * (kb1 + 1), 1 outs aout, aout * kb3 endin </CsInstruments> <CsScore> f 1 0 1024 10 1 i 1 0 120 e </CsScore> </CsoundSynthesizer>