lorisplay

lorisplay — restitue un ensemble stocké de partiels à largeur de bande améliorée en utilisant la méthode de synthèse additive à largeur de bande améliorée implémentée dans le logiciel Loris, et en appliquant au taux de contrôle des enveloppes de mise en forme de la fréquence, de l'amplitude et de la largeur de bande.

Syntaxe

ar lorisplay ireadidx, kfreqenv, kampenv, kbwenv

Description

lorisplay restitue un ensemble stocké de partiels à largeur de bande améliorée en utilisant la méthode de synthèse additive à largeur de bande améliorée implémentée dans le logiciel Loris, et en appliquant au taux de contrôle des enveloppes de mise en forme de la fréquence, de l'amplitude et de la largeur de bande.

Initialisation

istoreidx, ireadidx, isrcidx, itgtidx sont des étiquettes qui identifient un ensemble stocké de partiels à largeur de bande améliorée. lorisread importe les partiels depuis un fichier SDIF et les stocke avec l'étiquette entière istoreidx. lorismorph réalise un morphing des ensembles de partiels étiquetés isrcidx et itgtidx, et stocke les partiels résultants avec l'étiquette entière istoreidx. lorisplay restitue les partiels stockés avec l'étiquette ireadidx. Les étiquettes ne sont utilisées qu'à l'initialisation de la note, et l'on peut les réutiliser sans coût supplémentaire ou bénéfice en efficacité, et sans introduire d'interaction entre les instruments ou leurs instances.

Exécution

lorisplay implémente la reconstruction de signal au moyen de la synthèse additive à largeur de bande améliorée. Les données de contrôle sont obtenues à partir d'un ensemble stocké de partiels à largeur de bande améliorée importé depuis un fichier SDIF en utilisant lorisread ou construit par un autre générateur unitaire tel que lorismorph. kfreqenv est un facteur de transposition au taux de contrôle : une valeur de 1 signifie pas de transposition, 1.5 transpose vers l'aigu d'une quinte juste, et 0.5 transpose vers le grave d'une octave. kampenv est un facteur de mise à l'échelle au taux de contrôle qui est appliqué à toutes les enveloppes d'amplitude des partiels. kbwenv est un facteur de mise à l'échelle au taux de contrôle qui est appliqué à toutes les enveloppes de largeur de bande ou de caractère bruiteux des partiels. Les données de partiel à largeur de bande améliorée sont stockées en mémoire avec une étiquette spécifiée pour un accès ultérieur par un autre générateur.

Exemples

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

Exemple 1349. Exemple de l'opcode lorisplay.

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
-odac      ;;;realtime audio out
;-iadc    ;;;uncomment -iadc if realtime audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o lorisplay.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs  = 1
; clarinet.sdif can be found in /manual/examples

; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime
; and no frequency , amplitude, or bandwidth modification.

instr 1

ktime	linseg	  0, p3, 3.0			; linear time function from 0 to 3 seconds
	lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
kfrq	= p4	; pitch shifting
asig	lorisplay 1, kfrq, 1, 1
	outs 	  asig, asig
endin

; Play the partials in clarinet.sdif from 0 to 3 sec with 1 ms fadetime
; adding tuning and vibrato, increasing the "breathiness" (noisiness) and overall
; amplitude, and adding a highpass filter.

instr 2

ktime	linseg	0, p3, 3.0			; linear time function from 0 to 3 seconds
						; compute frequency scale for tuning
    
ifscale	=	cpspch(p4)/cpspch(8.08)		; (original pitch was G#4)
						; make a vibrato envelope
kvenv	linseg	0, p3/6, 0, p3/6, .02, p3/3, .02, p3/6, 0, p3/6, 0
kvib	oscil	kvenv, 4, 1			; table 1, sinusoid
kbwenv	linseg	1, p3/6, 1, p3/6, 100, 2*p3/3, 100 ;lots of noise
	lorisread ktime, "clarinet.sdif", 1, 1, 1, 1, .001
a1	lorisplay 1, ifscale+kvib, 2, kbwenv
asig	atone	a1, 1000			; highpass filter, cutoff 1000 Hz
	outs	asig, asig
endin

</CsInstruments>
<CsScore>
; a sinusoid 
f 1 0 4096 10 1

i 1  0   3  1.2	; shifted up
i 1  +   1  1.5
i 1  +   6  .5	; shifted down
s

;     strt   dur   ptch
i 2      1    3    8.08
i 2      3.5  1    8.04
i 2      4    6    8.00
i 2      4    6    8.07
e

</CsScore>
</CsoundSynthesizer>


Crédits

Cette implémentation des générateurs unitaires Loris a été écrite par Kelly Fitz (loris@cerlsoundgroup.org). Elle est modèlisée sur un prototype d'implémentation du générateur unitaire lorisplay écrit par Corbin Champion, et basé sur la méthode de synthèse additive à largeur de bande améliorée et sur les algorithmes de métamorphose sonore implémentés dans la bibliothèque Loris pour la modélisation et la manipulation du son. Les opcodes ont été ensuite adaptés sous la forme d'un greffon de Csound 5 par Michael Gogins.