expcurve

expcurve — Cet opcode implémente une formule qui génère une courbe exponentielle normalisée dans l'intervalle 0 - 1. Il est basé sur le travail dans Max / MSP de Eric Singer (c) 1994.

Description

Génère une courbe exponentielle dans l'intervalle de 0 à 1 avec une raideur de pente arbitraire. Une raideur de pente inférieure à 1.0 levant des erreurs NaN (Not-a-Number) et provoquant un comportement instable, elle est traitée comme si elle valait 1.

La formule utilisée pour le calcul de la courbe est :

(exp(x * log(y))-1) / (y-1)

où x est égal à kindex et y est égal à ksteepness.

Syntaxe

kout expcurve kindex, ksteepness

Exécution

kindex -- Valeur d'indice. Attendue dans l'intervalle de 0 à 1.

ksteepness -- Raideur de la courbe générée. Avec des valeurs proches de 1,0 on obtient une courbe plus rectiligne alors qu'avec des valeurs plus grandes la courbe est plus raide.

kout -- Sortie pondérée.

Exemples

Voici un exemple de l'opcode expcurve. Il utilise le fichier expcurve.csd.

Exemple 278. Exemple de l'opcode expcurve.

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    Silent
-odac           -iadc     -n    ;;;realtime output
</CsOptions>
<CsInstruments>

sr	=	44100
ksmps	=	1000
nchnls	=	2

		instr	1	; logcurve test

kmod	phasor	1/p3
kout	expcurve kmod, p4

printks "mod = %f  out= %f\\n", 0.5, kmod, kout

		endin

/*--- ---*/
</CsInstruments>
<CsScore>

i1	0	5  2
i1	5	5  5
i1	10	5  30
i1	15	5  0.5

e
</CsScore>
</CsoundSynthesizer>


Voir aussi

scale, gainslider, logcurve

Crédits

Auteur : David Akbari
Octobre
2006
Test de l'intervalle introduit dans la 6.16 par John ffitch