GEN44

GEN44 — Génère une matrice de raideur (connexion) à utiliser dans scanu/scanu2.

Description

Génère une matrice de raideur à partir d'un fichier texte de triplets de nombres.

Syntaxe

f # time size -44  "filename"
f # time size -44  num

Exécution

Le fichier nommé dans la première version ou le fichier stiff.num dans le second cas est lu pour créer la matrice.

Format de 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.

Exemples

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>


Crédits

Auteur : John ffitch

Nouveau dans la version 6.16, juin 2021