ATScross

ATScross — exécute une synthèse croisée à partir de fichiers d'analyse ATS.

Description

ATScross utilise les données d'un fichier d'analyse ATS et d'un ATSbufread pour exécuter une synthèse croisée.

Syntaxe

ar ATScross ktimepnt, kfmod, iatsfile, ifn, kmylev, kbuflev, ipartials \
          [, ipartialoffset, ipartialincr]

Initialisation

iatsfile – entier ou chaîne de caractères dénotant un fichier de contrôle dérivé de l'analyse ATS d'un signal audio. Un entier indique le suffixe d'un fichier ATS.m ; une chaîne de caractères (entre guillemets) donne un nom de fichier, ou un nom de chemin complet. Si ce n'est pas un chemin complet, le fichier est d'abord cherché dans le répertoire courant, puis dans celui qui est donné par la variable d'environnement SADIR (si elle est définie).

ifn – numéro de la table d'une fonction stockée contenant une onde sinusoïdale.

ipartials – nombre de partiels qui seront utilisés dans la resynthèse.

ipartialoffset (facultatif) – le premier partiel utilisé (0 par défaut).

ipartialincr (facultatif) – fixe le pas d'incrémentation que ces opcodes de synthèse utilisent pour compter les composants bins à partir de ipartialoffset dans la resynthèse (1 par défaut).

Exécution

ktimepnt – Le pointeur de temps en secondes utilisé comme indice sur le fichier ATS. Est utilisé pour ATScross exactement de la même manière que pour pvoc.

kfmod – une entrée pour faire une transpositon de hauteur ou une modulation de fréquence sur tous les partiels synthétisés ; si aucune modulation de fréquence ou aucun changement de hauteur ne sont désirés, il faut utiliser 1 pour cette valeur.

kmylev - pondère le composant ATScross du spectre de fréquence appliqué aux partiels depuis le fichier ATS indiqué par l'opcode ATScross. L'information du spectre de fréquence vient du fichier ATS de ATScross. Une valeur de 1 (et 0 pour kbuflev) donne le même résultat que ATSadd.

kbuflev - pondère le composant ATSbufread du spectre de fréquence appliqué aux partiels depuis le fichier ATS indiqué par l'opcode ATScross. L'information du spectre de fréquence vient du fichier ATS ATSbufread. Une valeur de 1 (et 0 pour kmylev) donne des partiels qui ont l'information de fréquence du fichier ATS donné par l'ATScross, mais les amplitudes imposées par les données du fichier ATS donné par ATSbufread.

ATScross utilise les données d'un fichier d'analyse ATS (indiqué par iatsfile) et les données d'un ATSbufread pour exécuter une synthèse croisée. ATScross utilise ktimepnt, kfmod, ipartials, ipartialoffset et ipartialincr de la même manière que ATSadd. ATScross synthétise une onde sinus pour chaque partiel sélectionné par l'utilisateur et utilise la fréquence de ce partiel (après pondération en fréquence par kfmod) comme indice dans la table créée par ATSbufread. Les valeurs intermédiaires sont obtenues par interpolation. ATScross utilise la somme des données d'amplitude de son fichier ATS (pondérée par kmylev) et les données d'amplitude fournies par ATSbufread (pondérées par kbuflev) pour mettre à l'échelle l'amplitude de chaque partiel qu'il synthétise. En fixant kmylev à un et kbuflev à zéro, ATScross agira exactement comme ATSadd. En fixant kmylev à zéro et kbuflev à un, on produira un son qui aura tous les partiels sélectionnés par l'unité ATScross, mais avec les amplitudes fournies par ATSbufread. Il n'est pas nécessaire que le pointeur de temps de l'ATSbufread soit le même que celui de l'ATScross.

Exemples

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

Exemple 65. Exemple de l'opcode ATScross.

<CsoundSynthesizer>
<CsOptions>
; Select audio/midi flags here according to platform
-odac     ;;;RT audio out
;-iadc    ;;;uncomment -iadc for RT audio input is needed too
; For Non-realtime ouput leave only the line below:
; -o ATScross.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

sr = 44100
ksmps = 32
nchnls = 2
0dbfs = 1

instr 1	; "beats.ats" and  "fox.ats" are created by atsa

ktime	line	0, p3, 4
ktime2	line	0, p3, 4
kline	expseg	0.001, .3, 1, p3-.3, 1
kline2	expseg	0.001, p3, 3
  	ATSbufread ktime2, 1, "fox.ats", 20
aout	ATScross   ktime, 2, "beats.ats", 1, kline, 0.001 * (4 - kline2), 180
	outs aout*2, aout*2

endin

</CsInstruments>
<CsScore>
; sine wave.
f 1 0 16384 10 1

i 1 0 4 
e
</CsScore>
</CsoundSynthesizer>


Cet exemple exécute une synthèse croisée à partir des deux fichiers ATS "fox.ats" et "beats.ats". Le résultat sera un son qui débute avec le profil (en fréquence) de fox.ats et se termine avec le profil de beats.ats. Toutes les fréquences d'onde sinusoïdale viennent de beats.ats. La valeur de kbuflev est pondérée parce que l'énergie produite en appliquant le spectre de fréquence de fox.ats aux partiels de beats.ats est très importante. Noter également que les pointeurs de temps d'ATSbufread (fox.atds) et d'ATScross (beats.ats) n'ont pas nécessairement la même valeur, ce qui permet de lire les deux fichiers ATS à des vitesses différentes.

Voir aussi

ATSread, ATSreadnz, ATSinfo, ATSsinnoi, ATSbufread, ATSinterpread, ATSpartialtap, ATSadd, ATSaddnz

Crédits

Auteur : Alex Norman
Seattle,Washington
2004