xyin

xyin — Détecte la position du curseur dans une fenêtre de sortie.

Description

Détecte la position du curseur dans une fenêtre de sortie. Lorsque xyin est appelé, la position de la souris dans la fenêtre de sortie est utilisée pour répondre à la requête. En raison de la simplicité de ce mécanisme, on ne peut utiliser de manière précise qu'un seul xyin à la fois. La position de la souris est rapportée dans la fenêtre de sortie.

Syntaxe

kx, ky xyin iprd, ixmin, ixmax, iymin, iymax [, ixinit] [, iyinit]

Initialisation

iprd -- période de détection du cursesur(en secondes). Typiquement 0.1 seconde.

xmin, xmax, ymin, ymax -- valeurs limites des coordonnées x-y du curseur dans la fenêtre d'entrée.

ixinit, iyinit (facultatif) -- coordonnées x-y initiales rapportées ; les valeurs par défaut sont 0, 0. Si ces valeurs ne sont pas dans l'intervalle min-max donné, elles seront déplacées dans cet intervalle.

Exécution

xyin échantillonne la position x-y du curseur dans une fénêtre d'entrée toutes les iprd secondes. Les valeurs retournées sont répétées (pas interpolées) au taux-k, et restent fixes jusqu'à ce qu'un nouveau changement intervienne dans la fenêtre. Il peut y avoir n'importe quel nombre de fenêtres en entrée. Cette unité est utile pour le contrôle en , mais il vaut mieux éviter un mouvement continu si iprd est anormalement petit.

[Note] Note

Vous pouvez être amenés à activer les affichages au moyen de l'option de ligne de commande --displays en fonction de votre plate-forme et de votre distribution.

Exemples

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

Exemple 1096. Exemple de l'opcode xyin.

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     --displays ;;;RT audio I/O
; For Non-realtime ouput leave only the line below:
; -o xyin.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

; Initialize the global variables.
sr = 44100
ksmps = 10
nchnls = 2

; Instrument #1.
instr 1
  ; Print and capture values every 0.1 seconds.
  iprd = 0.1
  ; The x values are from 1 to 30.
  ixmin = 1
  ixmax = 30
  ; The y values are from 1 to 30.
  iymin = 1
  iymax = 30
  ; The initial values for X and Y are both 15.
  ixinit = 15
  iyinit = 15

  ; Get the values kx and ky using the xyin opcode.
  kx, ky xyin iprd, ixmin, ixmax, iymin, iymax, ixinit, iyinit

  ; Print out the values of kx and ky.
  printks "kx=%f, ky=%f\\n", iprd, kx, ky

  ; Play an oscillator, use the x values for amplitude and
  ; the y values for frequency.
  kamp = kx * 1000
  kcps = ky * 220
  a1 poscil kamp, kcps, 1

  outs a1, a1
endin


</CsInstruments>
<CsScore>

; Table #1, a sine wave.
f 1 0 16384 10 1

; Play Instrument #1 for 30 seconds.
i 1 0 30
e


</CsScore>
</CsoundSynthesizer>


Lorsque les valeurs de kx et de ky changent, elles sont affichées comme ceci :

kx=8.612036, ky=22.677933
kx=10.765685, ky=15.644135

Crédits

Exemple écrit par Kevin Conder.