printks

printks — Imprime au taux-k avec une syntaxe à la printf().

Description

Imprime au taux-k avec une syntaxe à la printf().

Syntaxe

printks "string", itime [, xval1] [, xval2] [...]

Initialisation

"string" -- la chaîne de caractères à imprimer. Peut contenir jusqu'à 8192 caractères et doit être entre guillemets.

itime -- intervalle en secondes entre les impressions.

Exécution

xval1, xval2, ... (facultatif) -- Les valeurs de taux-k à imprimer. Celles-ci sont spécifiées dans « string » au moyen des indicateurs de valeur du C standard (%f, %d, etc.) dans l'ordre donné.

A partir de la version 4.23 de Csound, on peut utiliser autant de variables kval que l'on veut. Dans les versions antérieures à la 4.23, on doit donner 4 et seulement 4 kvals (mettant 0 pour les kvals non utilisées).

printks affiche des nombres et du texte qui peuvent être des valeurs de taux-i ou de taux-k. printks est extrêmement flexible, et si on l'utilise avec des codes de positionnement du curseur, il peut servir à écrire des valeurs spécifiques à certaines positions de l'écran pendant l'exécution de Csound.

Un mode d'opération spécial permet à printks de convertir le paramètre d'entrée kval1 en valeur comprise entre 0 et 255 et de l'utiliser comme le premier caractère à imprimer. Un programme Csound peut ainsi envoyer des caractères arbitraires à la console. Pour cela, il faut que le premier caractère de la chaîne soit un # éventuellement suivi de texte normal et d'indicateurs de format.

Cet opcode peut être exécuté à chaque cycle-k de l'instrument auquel il appartient. Pour cela, il faut mettre itime à 0.

Si itime est différent de 0, l'opcode imprime sur le premier cycle-k lors de son appel, puis chaque fois qu'une durée itime s'est écoulée. Le temps commence à s'écouler à partir de l'initialisation de l'opcode, typiquement à l'initialisation de l'instrument.

Formatage de l'impression

Tous les caractères de contrôle de printf() du langage C standard peuvent être utilisés. Par exemple, si kval1 = 153.26789, voici quelques-unes des options de formatage habituelles :

  1. %f imprime avec toute la précision : 153.26789

  2. %5.2f imprime : 153.26

  3. %d n'imprime que la partie entière : 153

  4. %c traite kval1 comme le code ASCII d'un caractère.

En plus de tous les codes de printf(), printks supporte ces codes de caractère utiles :

Code printks Code de Caractère
\\r, \\R, %r, or %R retour chariot (\r)
\\n, \\N, %n, %N caractère de nouvelle ligne (\n)
\\t, \\T, %t, or %T tabulation (\t)
%! point-virgule (;) C'est nécessaire car un « ; » est interprété comme un commentaire.
^ caractère d'échappement (0x1B)
^ ^ accent circonflexe (^)
˜ ESC[ (escape+[ est la séquence d'échappement des consoles ANSI)
˜˜ tilde (˜)

Pour plus d'information sur le formatage à la printf(), consulter une documentation sur le langage C.

[Note] Note

Avant la version 4.23, seul le code de format %f était supporté.

Exemples

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

Exemple 786. Exemple de l'opcode printks.

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

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

; Instrument #1.
instr 1
  ; Change a value linearly from 0 to 100,
  ; over the period defined by p3.
  kup line 0, p3, 100
  ; Change a value linearly from 30 to 10, 
  ; over the period defined by p3.
  kdown line 30, p3, 10

  ; Print the value of kup and kdown, once per second.
  printks "kup = %f, kdown = %f\\n", 1, kup, kdown
endin


</CsInstruments>
<CsScore>

; Play Instrument #1 for 5 seconds.
i 1 0 5
e


</CsScore>
</CsoundSynthesizer>


Sa sortie contiendra des lignes comme :

kup = 0.000000, kdown = 30.000000
kup = 20.010843, kdown = 25.962524
kup = 40.029991, kdown = 21.925049
kup = 60.049141, kdown = 17.887573
kup = 79.933266, kdown = 13.872493

Voir aussi

printk2 et printk

Crédits

Auteur : Robin Whittle
Australie
Mai 1997

Exemple écrit par Kevin Conder.

Merci à Luis Jure pour avoir signalé une erreur concernant le paramètre itime.

Merci à Matt Ingalls pour la mise à jour de la documentation pour la version 4.23.