STKBlowHole

STKBlowHole — Modèle physique de clarinette STK avec un trou de registre et un trou d'intonation.

Description

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.

Syntaxe

asignal STKBlowHole ifrequency, iamplitude, [kreed, kv1[, knoise, kv2[, khole, kv3[, kreg, kv4[, kbreath, kv5]]]]]

Initialisation

ifrequency -- Fréquence de la note jouée, en Hz.

iamplitude -- Amplitude de la note jouée (entre 0 et 1).

Exécution

kreed -- contrôleur 2, raideur de l'anche. kv1 compris entre 0 et 127.

knoise -- contrôleur 4, gain du bruit. kv2 compris entre 0 et 127.

khole -- contrôleur 11, état du trou d'intonation. kv3 compris entre 0 et 127.

kreg -- contrôleur 1, état du registre. kv4 compris entre 0 et 127.

kbreath -- contrôleur 128, pression du souffle. kv5 compris entre 0 et 127.

[Note] Notes

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

kc1, kv1, kc2, kv2, kc3, kv3, kc4, kv4, kc5, kv5, kc6, kv6, kc7, kv7, kc8, kv8 -- Jusqu'à 8 paires de contrôle facultatives au taux-k pour les opcodes STK. Chaque paire de contrôle est constituée d'un numéro de contrôleur (kc) suivi d'une valeur de contrôleur (kv). Le numéro de contrôleur ainsi que la valeur associée sont des variables de taux-k. Cependant, durant l'exécution, les numéros de contrôleur sont habituellement constants tandis que les valeurs correspondantes peuvent changer à tout moment. L'ordre des paires de contrôle est arbitraire mais elles doivent apparaître après iamplitude. Il n'est pas non plus nécessaire d'utiliser toutes les paires.

Exemples

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

Exemple 922. Exemple de l'opcode STKBlowHole opcode.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;realtime 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
kv1	=	p7						;stiffness of reed
kv3	line	p5, p3, p6					;state of tonehole

asig	STKBlowHole	cpspch(ipch), 1, 2, kv1, 4, 100, 11, kv3, 1, 10, 128, 100
	outs	asig, asig
endin

</CsInstruments>
<CsScore>

i 1 0 4 10.00 20 127 100
i 1 + 7 6.09 120  0  10
e
</CsScore>
</CsoundSynthesizer>


Crédits

Auteur : Michael Gogins (d'après Perry Cook)
Irreducible Productions
New York, NY

Nouveau dans la version 5.11 de Csound.