dumpk3 — Ecrit périodiquement les valeurs de trois signaux de contrôle de l'orchestre dans un fichier externe.
Ecrit périodiquement les valeurs de trois signaux de contrôle de l'orchestre dans un fichier externe, dans un format spécifique.
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.
ksig1, ksig2, ksig3 -- signaux au taux de contrôle
Cet opcode permet de sauvegarder les valeurs de trois signaux générés 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 dumpk3 dans un instrument ou dans un orchestre mais chacun doit écrire dans un fichier différent.
Voici un exemple de l'opcode dumpk3. Il utilise le fichier dumpk3.csd. Noter que l'exemple doit être exécuté depuis un répertoire dans lequel l'écriture est autorisée.
Exemple 256. Exemple de l'opcode dumpk3.
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 dumpk3.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 three control signals to a file kfreq randh 100, 1, 2, 1, 500 ;generates one random number between 400 and 600 per second kdb randh 12, 1, 2, 1, -12 ;amplitudes in dB between -24 and 0 kpan randh .5, 1, 2, 1, .5 ;panning between 0 and 1 dumpk3 kfreq, kdb, kpan, "dumpk3.txt", 8, 1 ;writes the control signals prints "WRITING:\n" printks "kfreq = %f, kdb = %f, kpan = %f\n", 1, kfreq, kdb, kpan ;prints them endin instr 2 ;reads the file written by instr 1 kf,kdb,kp readk3 "dumpk3.txt", 8, 1 prints "READING:\n" printks "kfreq = %f, kdb = %f, kpan = %f\n", 1, kf, kdb, kp ;prints again kdb lineto kdb, .1 ;smoothing amp transition kp lineto kp, .1 ;smoothing pan transition aout poscil ampdb(kdb), kf, giSine aL, aR pan2 aout, kp outs aL, aR endin </CsInstruments> <CsScore> i 1 0 5 i 2 5 5 e </CsScore> </CsoundSynthesizer>
Sa sortie contiendra des lignes comme celles-ci :
WRITING: kfreq = 473.352855, kdb = -15.197657, kpan = 0.366764 kfreq = 473.352855, kdb = -15.197657, kpan = 0.366764 kfreq = 441.426368, kdb = -19.026206, kpan = 0.207327 kfreq = 452.965140, kdb = -21.447486, kpan = 0.553270 kfreq = 585.106328, kdb = -11.903852, kpan = 0.815665 kfreq = 482.056760, kdb = -4.046744, kpan = 0.876537 READING: kfreq = 473.352900, kdb = -15.197700, kpan = 0.366800 kfreq = 473.352900, kdb = -15.197700, kpan = 0.366800 kfreq = 441.426400, kdb = -19.026200, kpan = 0.207300 kfreq = 452.965100, kdb = -21.447500, kpan = 0.553300 kfreq = 585.106300, kdb = -11.903900, kpan = 0.815700 kfreq = 482.056800, kdb = -4.046700, kpan = 0.876500