STKBlowHole — Modèle physique de clarinette STK avec un trou de registre et un trou d'intonation.
Opcode du greffon stkopd. Ce greffon se trouve dans le répertoire des greffons et il doit être installé séparément. Le répertoire des greffons est ici : https://github.com/csound/plugins
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, [kreed, kv1[, knoise, kv2[, khole, kv3[, kreg, kv4[, kbreath, kv5]]]]]
ifrequency -- Fréquence de la note jouée, en Hz.
iamplitude -- Amplitude de la note jouée (entre 0 et 1).
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.
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. |
Voici un exemple de l'opcode STKBlowHole opcode. Il utilise le fichier STKBlowHole.csd.
Exemple 1011. 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>