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

## readk

readk — Lit périodiquement la valeur d'un signal de contrôle de l'orchestre depuis un fichier externe.

## Description

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

## Syntaxe

    kres readk ifilname, iformat, iprd

## Initialisation

ifilname -- un entier N indiquant un fichier nommé "readk.N" ou une chaîne de caractères (entre guillemets, espaces autorisés) contenant le nom du fichier externe. Si c'est une chaîne de caractères, elle peut être un nom de chemin complet avec un répertoire spécifié ou bien un simple nom de fichier. Dans ce dernier cas, le fichier est d'abord cherché dans le répertoire courant, puis dans SSDIR et finalement dans SFDIR.

iformat -- spécifie le format des données d'entrée :

- 1 = entiers signés sur 8 bit (char)

- 4 = entiers courts sur 16 bit

- 5 = entiers longs sur 32 bit

- 6 = flottants sur 32 bit

- 7 = entiers longs en ASCII (plein texte)

- 8 = flottants en ASCII (plein texte)

Noter que les formats A-law et U-law ne sont pas disponibles, et que tous les formats sauf les deux derniers sont binaires. Le fichier d'entrée doit être un fichier de données brutes sans en-tête.

iprd -- le taux (période) en secondes, arrondi à la période de contrôle de l'orchestre la plus proche, auquel le signal est lu depuis le fichier. Une valeur de 0 implique une période de contrôle (le minimum imposé), qui lira les nouvelles valeurs au taux de contrôle de l'orchestre. Avec des périodes plus longues, les mêmes valeurs seront répétées pendant plus d'une période de contrôle.

## Exécution

kres -- le signal lu depuis ifilname.

Cette opcode permet de lire la valeur d'un signal généré au taux de contrôle depuis un fichier externe nommé. Le fichier ne doit pas contenir d'en-tête d'information mais il doit contenir une suite temporelle de valeurs de contrôle échantillonnées régulièrement. Pour les formats de texte ASCII, les valeurs doivent être séparées par au moins un espace. Il peut y avoir n'importe quel nombre d'opcodes readk dans un instrument ou dans un orchestre et il peuvent lire à partir du même ou depuis différents fichiers.

## Exemples

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

Exemple 770. Exemple de l'opcode readk.

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

    ; Initialize the global variables.
    sr = 44100
    kr = 4410
    ksmps = 10
    nchnls = 1

    0dbfs = 1
    ; By Andres Cabrera 2008

    instr 1
    ; Read a number from the file every 0.5 seconds
      kfibo readk "fibonacci.txt", 7, 0.5
      kpitchclass = 8 +  ((kfibo % 12)/100)
      printk2 kpitchclass
      kcps = cpspch( kpitchclass )
      printk2 kcps
      a1 oscil 0.5, kcps, 1
      out a1
    endin

    </CsInstruments>
    <CsScore>
    f 1 0 1024 10 1
    i 1 0 10
    e

    </CsScore>
    </CsoundSynthesizer>

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

Exemple 771. Exemple 2 de l'opcode readk.

    <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 readk-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 comprendra des lignes comme 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

dumpk, dumpk2, dumpk3, dumpk4, readk2, readk3, readk4

## Crédits

Par : John ffitch and Barry L. Vercoe

1999 ou avant

Précédent | Niveau supérieur | Suivant
readfi | Sommaire | readk2