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

## dumpk

dumpk — Ecrit périodiquement la valeur d'un signal de contrôle de l'orchestre dans un fichier externe.

## Description

Ecrit périodiquement la valeur d'un signal de contrôle de l'orchestre dans un fichier externe, dans un format spécifique.

## Syntaxe

    dumpk  ksig, ifilname, iformat, iprd

## Initialisation

ifilname -- chaîne de caractères (entre guillemets, espaces autorisés) contenant le nom du fichier externe. Peut être un nom de chemin complet avec un répertoire cible ou un simple nom de fichier à créer dans le répertoire courant.

iformat -- spécifie le format des données de sortie :

- 1 = caractères signés sur 8 bit (les 8 bit d'ordre supérieur d'un entier sur 16 bit

- 4 = entiers courts sur 16 bit

- 5 = entiers longs sur 32 bit

- 6 = flottants sur 32 bit

- 7 = entiers longs en ASCII

- 8 = flottants en ASCII (2 positions décimales)

Noter que les sorties A-law et U-law ne sont pas disponibles, et que tous les formats sauf les deux derniers sont binaires. Le fichier de sortie ne contient pas d'information d'en-tête.

iprd -- la période de la sortie ksig en secondes, arrondie à la période de contrôle de l'orchestre la plus proche. Une valeur de 0 implique une période de contrôle (le minimum imposé), qui créera un fichier de sortie échantillonné au taux de contrôle de l'orchestre.

## Exécution

ksig -- un signal au taux de contrôle

Cet opcode permet de sauvegarder la valeur d'un signal généré au taux de contrôle dans un fichier externe. Le fichier ne contient pas d'information auto-descriptive en en-tête. Mais il contient une suite temporelle échantillonnée régulièrement, appropriée pour une entrée ultérieure ou une analyse. Il peut y avoir n'importe quel nombre d'opcodes dumpk dans un instrument ou dans un orchestre mais chacun doit écrire dans un fichier différent.

## Exemples

Voici un exemple de l'opcode dumpk. Il utilise le fichier dumpk.csd. Noter que l'exemple doit être exécuté depuis un répertoire dans lequel l'écriture est autorisée.

Exemple 221. Exemple de l'opcode dumpk.

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
    -odac           -iadc    ;;;RT audio I/O
    ; For Non-realtime ouput leave only the line below:
    ; -o dumpk.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

    ; Initialize the global variables.
    sr = 44100
    kr = 20
    nchnls = 1

    ; By Andres Cabrera 2008

    instr 1
    ; Write fibonacci numbers to file "fibonacci.txt"
    ; as ascii long integers (mode 7), using the orchestra's
    ; control rate (iprd = 0)

    knumber init 0
    koldnumber init 1
    ktrans init 1
    ktrans = knumber
    knumber = knumber + koldnumber
    koldnumber = ktrans
    dumpk  knumber, "fibonacci.txt", 7, 0
    printk2 knumber
    endin

    </CsInstruments>
    <CsScore>

    ;Write to the file for 1 second. Since control rate is 20, 20 values will be written
     i 1 0 1

    </CsScore>
    </CsoundSynthesizer>

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

Exemple 222. Exemple 2 de l'opcode dumpk.

    <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 dumpk-2.wav -W ;;; for file output any platform
    </CsOptions>
    <CsInstruments>

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

    giSine ftgen 0, 0, 2^10, 10, 1

    instr 1 ;writes a control signal to a file
    kfreq randh  100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second
          dumpk  kfreq, "dumpk.txt", 8, 1 ;writes the control signal
          printk 1, kfreq 				 ;prints it
    endin

    instr 2 ;reads the file written by instr 1
    kfreq readk  "dumpk.txt", 8, 1
          printk 1, kfreq ;prints it
    aout  poscil .2, kfreq, giSine
          outs   aout, aout
    endin

    </CsInstruments>
    <CsScore>
    i 1 0 5
    i 2 5 5
    e
    </CsScore>
    </CsoundSynthesizer>

Sa sortie contiendra des lignes commes celles-ci :

    WARNING: Seeding from current time 683384022

     i   1 time     1.00033:   463.64510
     i   1 time     2.00000:   463.64510
     i   1 time     3.00000:   483.14200
     i   1 time     4.00000:   567.55973
     i   1 time     5.00000:   576.37060
     i   1 time     6.00000:   460.66550

     i   2 time     6.00033:   463.64510
     i   2 time     7.00000:   463.64510
     i   2 time     8.00000:   483.14200
     i   2 time     9.00000:   567.55970
     i   2 time    10.00000:   576.37060
     i   2 time    11.00000:   460.66550

## Voir aussi

dumpk2, dumpk3, dumpk4, readk, readk2, readk3, readk4

## Crédits

Par : John ffitch et Barry L. Vercoe

1999 ou avant

Précédent | Niveau supérieur | Suivant
dssilist | Sommaire | dumpk2