STKBlowHole — Modèle physique de clarinette STK avec un trou de registre et un trou d'intonation.
Cet opcode est basé sur le modèle de la clarinette, avec en plus l'implémentation d'un trou de registre à deux ports et d'un trou d'inténation à trois ports.
Dans cette implémentation, les distances entre trou de registre/anche et trou d'intonation/pavillon sont fixes. Ainsi, le trou d'intonation et le trou de registre auront tous deux une influence variable sur la fréquence jouée, qui dépend de la longueur de la colonne d'air. De plus, la fréquence la plus haute pouvant être jouée est limités par ces longueurs fixes.
asignal STKBlowHole ifrequency, iamplitude, [kc1, kv1[, kc2, kv2[, kc3, kv3[, kc4, kv4[, kc5, kv5]]]]]
ifrequency -- Fréquence de la note jouée, en Hz.
iamplitude -- Amplitude de la note jouée (entre 0 et 1).
kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8 -- Jusqu'à 8 paires de contrôleurs facultatifs au taux-k pour les opcodes STK. Chaque paire de contrôleurs est constituée d'un numéro de contrôleur (kc) suivi d'une valeur de contrôleur (kv). Les 5 numéros de contrôleur et les valeurs qui fonctionnent pour STKBlowHole sont :
kc, kv -- 2, raideur de l'anche.
kc, kv -- 4, gain du bruit.
kc, kv -- 11, état du trou d'intonation.
kc, kv -- 1, état du registre.
kc, kv -- 128, pression du souffle.
![]() |
Note |
---|---|
Le code pour cet opcode vient directement de la classe BlowHole du Synthesis Toolkit en C++ par Perry R. Cook et Gary P. Scavone. On peut en savoir plus sur les classes STK ici : https://ccrma.stanford.edu/software/stk/classes.html |
Voici un exemple de l'opcode STKBlowHole opcode. Il utilise le fichier STKBlowHole.csd.
Exemple 790. Exemple de l'opcode STKBlowHole opcode.
<CsoundSynthesizer> <CsOptions> ; Select audio/midi flags here according to platform -odac ;;;RT audio out ;-iadc ;;;uncomment -iadc if RT audio input is needed too ; For Non-realtime ouput leave only the line below: ; -o STKBlowHole.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 2 0dbfs = 1 instr 1 ipch = p4 kstiff = p7 khole line p5, p3, p6 asig STKBlowHole cpspch(ipch), 1, 2, kstiff, 4, 100, 11, khole, 1, 10, 128, 100 outs asig, asig endin </CsInstruments> <CsScore> i 1 0 4 10.00 20 127 100 i 1 + 3 6.09 120 0 10 e </CsScore> </CsoundSynthesizer>