sensekey

sensekey — Retourne le code ASCII d'une touche enfoncée.

Description

Retourne le code ASCII d'une touche enfoncée ou -1 si aucune touche n'a été enfoncée.

Syntaxe

kres[, kkeydown] sensekey

Exécution

kres - retourne la valeur ASCII d'une touche qui a été enfoncée ou relachée.

kkeydown - retourne 1 si la touche a été enfoncée, 0 si elle a été relachée ou s'il n'y a pas d'évènement de touche.

On peut utiliser kres pour lire les évènements clavier de stdin. Il retourne la valeur ASCII de toute touche qui a été enfoncée ou relachée, ou -1 s'il n'y a eu aucune activité clavier. La valeur de kkeydown est 1 si une touche a été enfoncée, 0 sinon. Ce comportement est suivi par défaut, si bien qu'un relachement de touche est généré immédiatement après chaque pression de touche. Pour une fonctionnalité complète, on peut utiliser FLTK pour capturer les évènements clavier. FLpanel peut être utilisé pour capturer les évènements clavier et les envoyer à l'opcode sensekey en ajoutant un argument supplémentaire facultatif. Voir FLpanel pour plus d'information.

[Note] Note

Cet opcode peut également s'écrire sense.

Exemples

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

Exemple 949. Exemple de l'opcode sensekey.

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
-odac -d   ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
</CsOptions>
<CsInstruments>

; By Stefano Cucchi - 2020

; Initialize the global variables.
sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1


instr 1

; Instr 1 trigger instr 2: every time you press any key, instr 2 produce a note.
; The pitch of the tone produced by instr 2 is equal to the ASCII code of the key pressed.

gkNumber, gkPress sensekey 
 
if changed(gkPress) == 1 then
      if (gkPress == 1) then
          event "i", 2, 0, 0.3
      endif 
endif      
endin

instr 2
  
iCps init i(gkNumber)
print iCps
asig oscili 0.2, iCps, 1 
kenvelope linseg 0, 0.1, 1, 0.1, 1, 0.1, 0
outs asig*kenvelope, asig*kenvelope
endin

</CsInstruments>
<CsScore>
f 1 0 4096 10 1 1 0.3 0 0.2 0.3 0.5

i 1 0 2000
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : John ffitch
Université de Bath, Codemist. Ltd.
Bath, UK
Octobre 2000

Exemples écrits par Kevin Conder, Johnathan Murphy et Istvan Varga.

Nouveau dans la version 4.09 de Csound. Renommé dans la version 4.10 de Csound.