GEN44 — Génère une matrice de raideur (connexion) à utiliser dans scanu/scanu2.
Le fichier nommé dans la première version ou le fichier stiff.num dans le second cas est lu pour créer la matrice.
La première ligne du fichier doit être « <MATRIX size=integer> » ce qui crée une matrice carrée de la taille indiquée. Suivent ensuite des lignes de deux ou trois nombres, les deux premiers indiquant une connexion du premier au second et le troisième étant un poids. Si le troisième nombre est omis, on lui affecte la valeur 1. La liste se termine par une ligne « </MATRIX> » ou par la fin du fichier.
Exemple du format de matrice:
<MATRIX size=16> 1 2 2 2 3 1 3 4 3 4 5 1 5 6 4 6 7 1 7 8 5 8 9 6 9 10 7 10 11 6 11 12 5 12 13 4 13 14 3 14 15 2 15 16 1 16 1 9 14 13 2 10 3 6 6 4 2 2 14 7 </MATRIX>
Peut être donnée comme valeur nulle auquel cas une table de taille size*size est créée. Si size dans l'instruction gen est trop petit pour la matrice, l'espace est réalloué à la taille requise.
Note : pour éviter la confusion avec d'autres formats de matrice, il vaut mieux sauvegarder ce format de matrice avec l'extension de fichier .matrxT.
Voici un exemple du générateur GEN44. Il utilise le fichier gen44.csd.
Exemple 1310. Exemple du générateur GEN44.
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> </CsOptions> <CsInstruments> sr = 44100 ksmps = 32 nchnls = 1 0dbfs = 1 instr scan a0 init 0 irate = .01 kmass line 2,p3,5 kstiff line 30,p3,45 kcenter line .08,p3,.01 kdamp line .01,p3,.08 kpos line 0,p3,16 kdisplace line 0,p3,.5 ;scanu2 init,irate,ifndisplace,ifnmass,ifnmatrix,ifncentr,ifndamp,kmass,kmtrxstiff, ; kcentr, kdamp, ileft, iright, kpos, kdisplace, ain, idisp, id scanu2 -1, irate, 6, 2, 3, 4, 5, kmass, kstiff, kcenter, kdamp, .2, .7, kpos, kdisplace, a0, 1, 2 ;ar scans kamp, kfreq, ifntraj, id a1 scans ampdbfs(p4), cpspch(p5), 7, 2 a1 dcblock2 a1 out a1 endin </CsInstruments> <CsScore> ; Initial displacement condition f1 0 16 10 1 ; sine hammer ; Masses f2 0 16 -7 1 16 1 ; Spring matrices f3 0 0 -44 "string_with_extras-16.matrxT" ; Centering force f4 0 16 -7 1 16 1 ; uniform initial centering ; Damping f5 0 16 -7 1 16 1 ; uniform damping ; Initial displacement - (displacement, vel, and acceleration ; Acceleration is from stiffness matrix pos effect - increases acceleration f6 0 16 -7 .01 16 .01 ; uniform initial velocity-displacement ; Trajectories f7 0 16 -5 .001 16 16 i"scan" 0 2 -6 7.00 i"scan" 2 2 -6 5.00 i"scan" 4 2 -6 6.00 i"scan" 6 2 -6 8.00 i"scan" 8 2 -6 10.00 e </CsScore> </CsoundSynthesizer>