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