FLslider — Dispose une réglette dans le conteneur FLTK correspondant.
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
FLslider dispose une réglette dans le conteneur correspondant.
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 FLslider 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 -- valeur minimale de l'intervalle de sortie (correspond à la valeur à gauche pour les réglettes horizontales et à la valeur du haut pour les réglettes verticales).
imax -- valeur maximale de l'intervalle de sortie (correspond à la valeur à droite pour les réglettes horizontales et à la valeur du bas pour les réglettes verticales).
L'argument imin peut être supérieur à l'argument imax. Cela a pour effet d'« inverser » l'objet si bien que les valeurs supérieures sont dans la direction opposée. L'extrémité remplie des réglettes pleines est aussi inversée.
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 effet, 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 - une réglette horizontale pleine
2 - une réglette verticale pleine
3 - une réglette horizontale gravée
4 - une réglette verticale gravée
5 - une réglette horizontale stylée
6 - une réglette verticale stylée
7 - une réglette horizontale stylée saillante
8 - une réglette verticale stylée saillante
On peut aussi créer des réglettes à l'aspect "plastique" en ajoutant 20 à itype.
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 -- largeur 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.
Les réglettes sont créées avec la valeur minimale située par défaut à gauche/en haut. Si l'on veut inverser la réglette, il faut inverser les valeurs. Voir l'exemple ci-dessous.
Voici un exemple de l'opcode FLslider. Il utilise le fichier FLslider.csd.
Exemple 336. Exemple de l'opcode FLslider.
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 FLslider.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; A sine with oscillator with flslider controlled frequency sr = 44100 kr = 441 ksmps = 100 nchnls = 1 FLpanel "Frequency Slider", 900, 400, 50, 50 ; Minimum value output by the slider imin = 200 ; Maximum value output by the slider imax = 5000 ; Logarithmic type slider selected iexp = -1 ; Slider graphic type (5='nice' slider) itype = 5 ; Display handle (-1=not used) idisp = -1 ; Width of the slider in pixels iwidth = 750 ; Height of the slider in pixels iheight = 30 ; Distance of the left edge of the slider ; from the left edge of the panel ix = 125 ; Distance of the top edge of the slider ; from the top edge of the panel iy = 50 gkfreq, ihandle FLslider "Frequency", imin, imax, iexp, itype, idisp, iwidth, iheight, ix, iy ; End of panel contents FLpanelEnd ; Run the widget thread! FLrun ;Set the widget's initial value FLsetVal_i 300, ihandle instr 1 iamp = 15000 ifn = 1 kfreq portk gkfreq, 0.005 ;Smooth gkfreq to avoid zipper noise asig oscili iamp, kfreq, 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>
Voici un autre exemple de l'opcode FLslider, montrant les types de réglettes et d'autres options. Il montre aussi l'utilisation de FLvalue pour afficher le contenu d'un widget. Il utilise le fichier FLslider-2.csd.
Exemple 337. Exemple plus complexe de l'opcode FLslider.
<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 FLslider-2.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 kr = 441 ksmps = 100 nchnls = 1 ;By Andres Cabrera 2007 FLpanel "Slider Types", 410, 260, 50, 50 ; Distance of the left edge of the slider ; from the left edge of the panel ix = 10 ; Distance of the top edge of the slider ; from the top edge of the panel iy = 10 ; Create boxes to display widget values givalue1 FLvalue "1", 60, 20, ix + 330, iy givalue3 FLvalue "3", 60, 20, ix + 330, iy + 40 givalue5 FLvalue "5", 60, 20, ix + 330, iy + 80 givalue2 FLvalue "2", 60, 20, ix + 60, iy + 140 givalue4 FLvalue "4", 60, 20, ix + 195, iy + 140 givalue6 FLvalue "6", 60, 20, ix + 320, iy + 140 ;Horizontal sliders gkdummy1, gihandle1 FLslider "Type 1", 200, 5000, -1, 1, givalue1, 320, 20, ix, iy gkdummy3, gihandle3 FLslider "Type 3", 0, 15000, 0, 3, givalue3, 320, 20, ix, iy + 40 ; Reversed slider gkdummy5, gihandle5 FLslider "Type 5", 1, 0, 0, 5, givalue5, 320, 20, ix, iy + 80 ;Vertical sliders gkdummy2, gihandle2 FLslider "Type 2", 0, 1, 0, 2, givalue2, 20, 100, ix+ 30 , iy + 120 ; Reversed slider gkdummy4, gihandle4 FLslider "Type 4", 1, 0, 0, 4, givalue4, 20, 100, ix + 165 , iy + 120 gkdummy6, gihandle6 FLslider "Type 6", 0, 1, 0, 6, givalue6, 20, 100, ix + 290 , iy + 120 FLpanelEnd FLpanel "Plastic Slider Types", 410, 300, 150, 150 ; Distance of the left edge of the slider ; from the left edge of the panel ix = 10 ; Distance of the top edge of the slider ; from the top edge of the panel iy = 10 ; Create boxes to display widget values givalue21 FLvalue "21", 60, 20, ix + 330, iy givalue23 FLvalue "23", 60, 20, ix + 330, iy + 40 givalue25 FLvalue "25", 60, 20, ix + 330, iy + 80 givalue22 FLvalue "22", 60, 20, ix + 60, iy + 140 givalue24 FLvalue "24", 60, 20, ix + 195, iy + 140 givalue26 FLvalue "26", 60, 20, ix + 320, iy + 140 ;Horizontal sliders gkdummy21, gihandle21 FLslider "Type 21", 200, 5000, -1, 21, givalue21, 320, 20, ix, iy gkdummy23, gihandle23 FLslider "Type 23", 0, 15000, 0, 23, givalue23, 320, 20, ix, iy + 40 ; Reversed slider gkdummy25, gihandle25 FLslider "Type 25", 1, 0, 0, 25, givalue25, 320, 20, ix, iy + 80 ;Vertical sliders gkdummy22, gihandle22 FLslider "Type 22", 0, 1, 0, 22, givalue22, 20, 100, ix+ 30 , iy + 120 ; Reversed slider gkdummy24, gihandle24 FLslider "Type 24", 1, 0, 0, 24, givalue24, 20, 100, ix + 165 , iy + 120 gkdummy26, gihandle26 FLslider "Type 26", 0, 1, 0, 26, givalue26, 20, 100, ix + 290 , iy + 120 ;Button to add color to the sliders gkcolors, ihdummy FLbutton "Color", 1, 0, 21, 150, 30, 30, 260, 0, 10, 0, 1 FLpanelEnd FLrun ;Set some widget's initial value FLsetVal_i 500, gihandle1 FLsetVal_i 1000, gihandle3 instr 10 ; Set the color of widgets FLsetColor 200, 230, 0, gihandle1 FLsetColor 0, 123, 100, gihandle2 FLsetColor 180, 23, 12, gihandle3 FLsetColor 10, 230, 0, gihandle4 FLsetColor 0, 0, 0, gihandle5 FLsetColor 0, 0, 0, gihandle6 FLsetColor 200, 230, 0, givalue1 FLsetColor 0, 123, 100, givalue2 FLsetColor 180, 23, 12, givalue3 FLsetColor 10, 230, 0, givalue4 FLsetColor 255, 255, 255, givalue5 FLsetColor 255, 255, 255, givalue6 FLsetColor2 20, 23, 100, gihandle1 FLsetColor2 200,0 ,123 , gihandle2 FLsetColor2 180, 180, 100, gihandle3 FLsetColor2 180, 23, 12, gihandle4 FLsetColor2 180, 180, 100, gihandle5 FLsetColor2 180, 23, 12, gihandle6 FLsetColor 200, 230, 0, gihandle21 FLsetColor 0, 123, 100, gihandle22 FLsetColor 180, 23, 12, gihandle23 FLsetColor 10, 230, 0, gihandle24 FLsetColor 0, 0, 0, gihandle25 FLsetColor 0, 0, 0, gihandle26 FLsetColor 200, 230, 0, givalue21 FLsetColor 0, 123, 100, givalue22 FLsetColor 180, 23, 12, givalue23 FLsetColor 10, 230, 0, givalue24 FLsetColor 255, 255, 255, givalue25 FLsetColor 255, 255, 255, givalue26 FLsetColor2 20, 23, 100, gihandle21 FLsetColor2 200,0 ,123 , gihandle22 FLsetColor2 180, 180, 100, gihandle23 FLsetColor2 180, 23, 12, gihandle24 FLsetColor2 180, 180, 100, gihandle25 FLsetColor2 180, 23, 12, gihandle26 ; Slider values must be updated for colors to change FLsetVal_i 250, gihandle1 FLsetVal_i 0.5, gihandle2 FLsetVal_i 0, gihandle3 FLsetVal_i 0, gihandle4 FLsetVal_i 0, gihandle5 FLsetVal_i 0.5, gihandle6 FLsetVal_i 250, gihandle21 FLsetVal_i 0.5, gihandle22 FLsetVal_i 500, gihandle23 FLsetVal_i 0, gihandle24 FLsetVal_i 0, gihandle25 FLsetVal_i 0.5, gihandle26 endin </CsInstruments> <CsScore> f 0 3600 ;Dumy table to make csound wait for realtime events e </CsScore> </CsoundSynthesizer>