sterrain — Un opcode de synthèse par terrain d'onde utilisant des courbes calculées avec la superformule.
Un opcode de synthèse par terrain d'onde utilisant des courbes calculées avec la superformule. (Voir Wikipedia pour plus d'information).
aout sterrain kamp, kcps, kx, ky, krx, kry, krot, ktab0, ktab1, km1, km2, kn1, kn2, kn3, ka, kb, kperiod
ktabx, ktaby -- Les deux tables définissant le terrain - elles peuvent changer au taux-k.
La sortie est le résultat du dessin de la courbe de la superformule avec les paramètres km1, km2, kn1, kn2, kn3, ka, kb (voir sur wikipedia), pondérée avec krx et kry et centrée en kx, ky sur le terrain, pivotée autour du centre de krot radians, et le traversant à la fréquence de kcps/kperiod. km1, km2 sont convertis en entiers.
Comme la vitesse du point peut changer considérablement pour certaines classes de paramètres lors du dessin de la courbe sur le terrain, plusieurs sons différents peuvent être produits comparés à d'autres courbes standard, par exemple il peut y avoir des parties comme des triangles dans l'onde de sortie.
Les intervalles suivant sont supportés et utiles :
kn1, ka, kb -- != 0 et continus.
kn2, kn3 -- continus.
km1, km2 -- entiers positifs : noter que les courbes ne sont pas fermées pour toutes les combinaisons de km1, km2 et ont des pôles (fermeture à l'infini) par exemple si kn1 > 0 et s'il existe n, m dans Z avec 2*km1/km2 = 2m+1/n, c'est-à-dire des courbes avec (3,2) (5,2) (7,2) etc et (5,4) (6,4) (7,4) (9,4) etc. ont un pôle qui est notable à l'écoute. Si kn1 < 0 alors la courbe est inversée et les pôles vont vers zéro dans ce cas. Si km1 et km2 sont nuls, du silence est produit (un cercle plein - même effet qu'avec le tuple 2,2,2,2,2,1,1).
kperiod -- certains rapports de km1 et km2 peuvent causer des décalages de hauteur. Ceci peut être corrigé avec le paramètre kperiod. Si le rapport est 1 alor la valeur de kperiod doit aussi être fixée à km1 pour avoir la hauteur d'entrée en sortie.
Voici un exemple de l'opcode sterrain qui montre l'impact de laisser kn1 évoluer vers zéro. Il utilise le fichier sterrain.csd.
Exemple 1005. Exemple de l'opcode sterrain.
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> -odac -d </CsOptions> <CsInstruments> sr = 44100 ksmps = 64 nchnls = 1 0dbfs = 1 gisine ftgen 0,0,2^12,10,1 instr 1 kdclk linseg 0, 0.1, 1, p3-0.02, 1, 0.1, 0 kn1 transeg 2,p3/2,-5,0.15,p3/2,5,2 asig sterrain 0.5, 220, 0.5, 0.5, 0.5, 0.5, 0, gisine, gisine, 4, 4, kn1, 1, 1.5, 1.5, 1, 4 asig dcblock asig out asig*kdclk endin </CsInstruments> <CsScore> i 1 0 20 e </CsScore> </CsoundSynthesizer>
Voici un autre exemple de l'opode sterrain montrant la construction d'harmoniques. Il utilise le fichier sterrain2.csd.
Exemple 1006. Un autre exemple de l'opode sterrain montrant la construction d'harmoniques.
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> -odac -d </CsOptions> <CsInstruments> sr = 44100 ksmps = 64 nchnls = 2 0dbfs = 1 gisine ftgen 0,0,2^12,10,1 instr 1 kdclk linseg 0, 0.1, 1, p3-0.02, 1, 0.1, 0 kb linseg 1,p3/2,1.7,p3/2,1 krot linseg 0,p3,1 asig sterrain 0.5, 220, 0.5, 0.5, 0.5, 0.5, krot, gisine, gisine, 2,2,0.5,2,2,0.7,kb,2 asig dcblock asig asig = asig * kdclk aL,aR reverbsc asig, asig , 0.6, 12000, 44100, 0.5, 1 outs aL, aR endin </CsInstruments> <CsScore> i 1 0 40 e </CsScore> </CsoundSynthesizer>