ATSinfo
Précédent | Opcodes et opérateurs de l'orchestre | Suivant

## ATSinfo

ATSinfo — Lit des données de l'en-tête d'un fichier ATS.

## Description

atsinfo lit des données de l'en-tête d'un fichier ATS.

## Syntaxe

    idata ATSinfo iatsfile, ilocation

## Initialisation

iatsfile – le numéro ATS (n dans ats.n) ou le nom entre guillemets du fichier d'analyse créé avec ATS.

ilocation – indique quel champ de l'en-tête du fichier retourner. Les données de l'en-tête donnent de l'information sur les données contenues dans le reste du fichier ATS. Les valeurs possibles pour ilocation sont données dans la liste suivante :

0 - Taux d'échantillonnage (Hz)

1 - Taille de trame (en échantillons)

2 - Taille de fenêtre (en échantillons)

3 - Nombre de partiels

4 - Nombre de trames

5 - Amplitude maximale

6 - Fréquence maximale (Hz)

7 - Durée (secondes)

8 - Type du fichier ATS

## Exécution

Des macros peuvent améliorer la lisibilité de votre code Csound, je donne mes définitions de macro ci-dessous :

                #define ATS_SAMP_RATE #0#
                #define ATS_FRAME_SZ #1#
                #define ATS_WIN_SZ #2#
                #define ATS_N_PARTIALS #3#
                #define ATS_N_FRAMES #4#
                #define ATS_AMP_MAX #5#
                #define ATS_FREQ_MAX #6#
                #define ATS_DUR #7#
                #define ATS_TYPE #8#

ATSinfo peut être utile pour écrire des instruments génériques qui fonctionneront avec plusieurs fichiers ATS, même s'ils ont différentes longueurs, différents nombres de partiels, etc. L'exemple 2 est une simple application de cela.

## Exemples

voici un exemple de l'opcode ATSinfo. Il utilise le fichier ATSinfo.csd.

Exemple 71. Exemple de l'opcode ATSinfo.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -odac     ;;;RT audio out
    </CsOptions>
    <CsInstruments>

    sr = 44100
    ksmps = 32
    nchnls = 2

    instr 1	; "fox.ats" is created by atsa

    inum_partials	ATSinfo	"fox.ats", 3
    		print	inum_partials

    endin

    </CsInstruments>
    <CsScore>
    i 1 0 0
    e

    </CsScore>
    </CsoundSynthesizer>

Dans l'exemple ci-desssus nous utilisons ATSinfo pour trouver le nombre de partiels dans le fichier ATS.

## Autres exemples

1.       imax_freq     ATSinfo "cl.ats", $ATS_FREQ_MAX

   Dans l'exemple ci-dessus nous obtenons la valeur de la fréquence maximale du fichier ATS "cl.ats" et nous la stockons dans imax_freq. Nous utilisons la macro Csound $ATS_FREQ_MAX (définie ci-dessus), qui est équivalente au nombre 6.

2.       i_npartials   ATSinfo p4, $ATS_N_PARTIALS
         i_dur         ATSinfo p4, $ATS_DUR
         ktimepnt      line    0, p3, i_dur
         aout          ATSadd  ktimepnt, 1, p4, 1, i_npartials

   Dans l'exemple ci-dessus nous utilisons ATSinfo pour retrouver la durée et le nombre de partiels dans le fichier ATS indiqué par p4. Avec cette information nous synthétisons les partiels au moyen d'ATSadd. Comme la durée et le nombre de partiels ne sont pas codés en dur, nous pouvons utiliser ce code avec n'importe quel fichier ATS.

Voici un autre exemple de l'opcode ATSinfo. Il utilise le fichier ATSinfo-2.csd.

Exemple 72. Exemple 2 de l'opcode ATSinfo.

    <CsoundSynthesizer>
    <CsOptions>
    ; Select audio/midi flags here according to platform
    -n     ;;;no audio out
    </CsOptions>
    <CsInstruments>
    ;example by joachim heintz
    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs = 1

    instr 1	; "fox.ats" has been created by ATSanal
    Sfile   =       "fox.ats"
    isr     ATSinfo Sfile, 0
    ifs     ATSinfo Sfile, 1
    iws     ATSinfo Sfile, 2
    inp     ATSinfo Sfile, 3
    inf     ATSinfo Sfile, 4
    ima     ATSinfo Sfile, 5
    imf     ATSinfo Sfile, 6
    id      ATSinfo Sfile, 7
    ift     ATSinfo Sfile, 8
            prints  {{
    Sample rate =   %d Hz
    Frame Size =    %d samples
    Window Size =   %d samples
    Number of Partials = %d
    Number of Frames = %d
    Maximum Amplitude = %f
    Maximum Frequency = %f Hz
    Duration =      %f seconds
    ATS file Type = %d
    }}, isr, ifs, iws, inp, inf, ima, imf, id, ift
    endin
    </CsInstruments>
    <CsScore>
    i 1 0 0
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

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

## Crédits

Auteur : Alex Norman
Seattle,Washington
2004

Précédent | Niveau supérieur | Suivant
ATScross | Sommaire | ATSinterpread