barmodel — Crée un timbre similaire à une barre de métal frappée.
La sortie audio est un timbre semblable à celui d'une barre de métal frappée, mettant en œuvre un modèle physique développé à partir de la résolution de l'équation différentielle partielle. On contrôle les conditions aux limites ainsi que les caractéristiques de la barre.
iK -- paramètre de raideur sans dimension. Si ce paramètre est négatif, l'initialisation est ignorée et l'état précédent de la barre est prolongé.
ib -- paramètre de perte des hautes fréquences (à garder petit).
iT30 -- temps de décroissance à 30 db en secondes.
ipos -- position le long de la barre où a lieu la frappe.
ivel -- vitesse de frappe normalisée.
iwid -- largeur spatiale de la frappe.
Une note est jouée sur une barre métallique, avec les arguments suivants.
kbcL -- Condition aux limites à l'extémité gauche de la barre (1 fixée, 2 pivotante, 3 libre).
kbcR -- Condition aux limites à l'extémité droite de la barre (1 fixée, 2 pivotante, 3 libre).
kscan -- Taux de lecture de la position de sortie.
Noter que le changement des conditions aux limites pendant l'exécution peut provoquer des bruits parasites ; cette possibilité est offerte à titre expérimental. L'utilisation d'un kscan différent de zéro peut produire des réintroductions apparentes du son à cause de la modulation.
Voici un exemple de l'opcode barmodel. Il utilise le fichier barmodel.csd.
Exemple 90. Exemple de l'opcode barmodel.
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 -d ;;;RT audio I/O ; For Non-realtime ouput leave only the line below: ; -o barmodel.wav -W ;;; for file output any platform </CsOptions> <CsInstruments> ; Initialize the global variables. sr = 44100 kr = 4410 ksmps = 10 nchnls = 1 ; Instrument #1. instr 1 aq barmodel 1, 1, p4, 0.001, 0.23, 5, p5, p6, p7 out aq endin </CsInstruments> <CsScore> i1 0.0 0.5 3 0.2 500 0.05 i1 0.5 0.5 -3 0.3 1000 0.05 i1 1.0 0.5 -3 0.4 1000 0.1 i1 1.5 4.0 -3 0.5 800 0.05 e /* barmodel */ </CsScore> </CsoundSynthesizer>