FLjoy

FLjoy — Un opcode FLTK qui agit comme un joystick.

Description

FLjoy est une zone carrée qui permet à l'utilisateur de modifier deux valeurs de sortie en même temps. Il agit comme un joystick.

Syntaxe

koutx, kouty, ihandlex, ihandley FLjoy "label", iminx, imaxx, iminy, \
      imaxy, iexpx, iexpy, idispx, idispy, iwidth, iheight, ix, iy

Initialisation

ihandlex -- 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és du valuateur. Il est automatiquement fixé par le valuateur.

ihandley -- 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és du valuateur. Il est automatiquement fixé par le valuateur.

« label » -- une chaîne entre guillemets contenant un texte fourni par l'utilisateur placé à côté du widget.

iminx -- valeur x minimale de l'intervalle de sortie.

imaxx -- valeur x maximale de l'intervalle de sortie.

iminy -- valeur y minimale de l'intervalle de sortie.

imaxy -- valeur y maximale de l'intervalle de sortie.

idispx -- 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.

idispy -- 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.

iexpx -- 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.

iexpy -- un nombre entier indiquant le comportement du valuateur :

  • 0 = la sortie est linéaire

  • -1 = la sortie est exponentielle

Tout autre nombre positif pour iexpy 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.

[Avertissement] 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.

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).

Exécution

koutx -- valeur x en sortie.

kouty -- valeur y en sortie.

Exemples

Voici un exemple de l'opcode FLjoy. Il utilise le fichier FLjoy.csd.

Exemple 288. Exemple de l'opcode FLjoy.

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 FLjoy.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Demonstration of the flpanel opcode
; Horizontal click-dragging controls the frequency of the oscillator
; Vertical click-dragging controls the amplitude of the oscillator
sr = 44100
kr = 441
ksmps = 100
nchnls = 1

FLpanel "X Y Panel", 900, 400, 50, 50
    ; Minimum value output by x movement (frequency)
    iminx = 200
    ; Maximum value output by x movement (frequency)
    imaxx = 5000 
    ; Minimum value output by y movement (amplitude)
    iminy = 0
    ; Maximum value output by y movement (amplitude)
    imaxy = 15000
    ; Logarithmic change in x direction
    iexpx = -1
    ; Linear change in y direction
    iexpy = 0
    ; Display handle x direction (-1=not used)
    idispx = -1
    ; Display handle y direction (-1=not used)
    idispy = -1
    ; Width of the x y panel in pixels
    iwidth = 800
    ; Height of the x y panel in pixels
    iheight = 300
    ; Distance of the left edge of the x y panel from 
    ; the left edge of the panel
    ix = 50
    ; Distance of the top edge of the x y 
    ; panel from the top edge of the panel
    iy = 50

    gkfreqx, gkampy, ihandlex, ihandley FLjoy "X - Frequency Y - Amplitude", iminx, imaxx, iminy, imaxy, iexpx, iexpy, idispx, idispy, iwidth, iheight, ix, iy
; End of panel contents
FLpanelEnd
; Run the widget thread!
FLrun

instr 1
    ifn = 1
    asig oscili gkampy, gkfreqx, 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>


Voir aussi

FLcount, FLknob, FLroller, FLslider, FLtext

Crédits

Auteur : Gabriel Maldonado

Nouveau dans la version 4.22

Exemple écrit par Iain McCurdy, édité par Kevin Conder.