FLroller — Un widget FLTK qui crée une molette.
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
FLroller est une sorte de bouton rotatif, mais disposé transversalement (une molette).
kout, ihandle FLroller "label", imin, imax, istep, iexp, itype, idisp, \
iwidth, iheight, ix, iy
ihandle -- un identifiant (un nombre entier) qui référence de manière univoque le widget correspondant. Il est utilisé par d'autres opcodes qui modifient les propriété du widget (voir Modifier l'Apparence des Widgets FLTK). Il est automatiquement retourné par FLroller et ne doit pas être fixé par l'étiquette de l'utilisateur. (L'étiquette de l'utilisateur est une chaîne entre guillemets contenant un texte fourni par l'utilisateur placé à côté du widget.)
« label » -- une chaîne entre guillemets contenant un texte fourni par l'utilisateur placé à côté du widget.
imin -- mvaleur minimale de l'intervalle de sortie.
imax -- valeur maximale de l'intervalle de sortie.
istep -- un nombre en virgule flottante indiquant le pas d'incrémentation du valuateur à chaque clic de souris. L'argument istep permet de ralentir le mouvement de la molette, ce qui autorise une précision arbitraire.
iexp -- un nombre entier indiquant le comportement du valuateur :
0 = la sortie est linéaire
-1 = la sortie est exponentielle
Tout autre nombre positif pour iexpx indique le numéro d'une table existante lue par indexation avec interpolation linéaire. Un numéro de table négatif supprime l'interpolation.
IMPORTANT ! | |
---|---|
Noter que les tables utilisées par les valuateurs doivent être créées avec l'opcode ftgen et placées dans l'orchestre avant le valuateur correspondant. On ne peut pas les placer dans la partition. En fait, les tables placées dans la partition sont créées après l'initialisation des opcodes placés dans la section d'en-tête de l'orchestre. |
itype -- un nombre entier indiquant l'apparence du valuateur.
L'argument itype accepte les valeurs suivantes :
1 - molette horizontale
2 - molette verticale
idisp -- un identifiant retourné par une instance précédente de l'opcode FLvalue pour afficher la valeur courante du valuateur dans le widget FLvalue. Si l'on ne veut pas utiliser cette possibilité d'affichage des valeurs courantes, il faut donner à cet identifiant un nombre négatif.
iwidth -- largeur du widget.
iheight -- hauteur du widget.
ix -- position horizontale du coin supérieur gauche du valuateur, relative au coin supérieur gauche de la fenêtre correspondante (exprimée en pixels).
iy -- position verticale du coin supérieur gauche du valuateur, relative au coin supérieur gauche de la fenêtre correspondante (exprimée en pixels).
kout -- valeur en sortie.
FLroller est une sorte de bouton rotatif, mais disposé transversalement (une molette) :
Voici un exemple de l'opcode FLroller. Il utilise le fichier FLroller.csd.
Exemple 327. Exemple de l'opcode FLroller.
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 ; For Non-realtime ouput leave only the line below: ; -o FLroller.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; A sine with oscillator with flroller controlled frequency sr = 44100 kr = 441 ksmps = 100 nchnls = 1 FLpanel "Frequency Roller", 900, 400, 50, 50 ; Minimum value output by the roller imin = 200 ; Maximum value output by the roller imax = 5000 ; Increment with each pixel istep = 1 ; Logarithmic type roller selected iexp = -1 ; Roller graphic type (1=horizontal) itype = 1 ; Display handle (-1=not used) idisp = -1 ; Width of the roller in pixels iwidth = 300 ; Height of the roller in pixels iheight = 50 ; Distance of the left edge of the knob ; from the left edge of the panel ix = 300 ; Distance of the top edge of the knob ; from the top edge of the panel iy = 50 gkfreq, ihandle FLroller "Frequency", imin, imax, istep, iexp, itype, idisp, iwidth, iheight, ix, iy ; End of panel contents FLpanelEnd ; Run the widget thread! FLrun instr 1 iamp = 15000 ifn = 1 asig oscili iamp, gkfreq, ifn out asig endin </CsInstruments> <CsScore> ; Function table that defines a single cycle ; of a sine wave. f 1 0 1024 10 1 ; Instrument 1 will play a note for 1 hour. i 1 0 3600 e </CsScore> </CsoundSynthesizer>