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

## printarray

printarray — Affiche le contenu d'un tableau.

## Description

Opcode du greffon emugens.

Affiche le contenu d'un tableau.

## Syntaxe

    printarray ixs[] [, Smft, Slabel ]

    printarray kxs[] [, ktrig, Sfmt, Slabel ]

## Initialisation

Sfmt -- S'il est présent, il est passé à printf pour chaque élément du tableau. Sinon un format par défaut est utilisé.

Slabel -- S'il est présent, il est affiché avant le contenu du tableau, pour identifier facilement les données.

## Exécution

ktrig -- Le tableau est affiché chaque fois que cette valeur change de 0 à un nombre positif. On peut l'utiliser avec metro pour afficher à intervalle donné. Une valeur de -1 indique d'afficher à chaque cycle-k (1 par défaut).

## Exmples

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

Exemple 779. Exemple de l'opcode printarray.

    <CsoundSynthesizer>
    <CsOptions>

    --nosound

    </CsOptions>
    <CsInstruments>

    instr 1
      ; test i-time, 1D
      ivalues[] fillarray 0, 1, 3, 5, 7, 9
      printarray ivalues                      ; default fmt, no label
      printarray ivalues, "%.2f"              ; with given fmt
      printarray ivalues, "", "ivalues = "    ; uses default fmt

      ; test i-time, long array
      ilong[] genarray 0, 3, 0.01
      printarray ilong
      printarray ilong, "%.2f", "long="

      ; 2D
      ivalues2[][] init 11, 4
      ivalues2 fillarray 0,   1,  2, 3, \
                         10, 11, 12, 13, \
                         20, 21, 22, 23, \
                         30, 31, 32, 33, \
                         40, 41, 42, 43, \
                         50, 51, 52, 53, \
                         60, 61, 62, 63, \
                         70, 71, 72, 73, \
                         80, 81, 82, 83, \
                         90, 91, 92, 93, \
                        100,101,102,103
      printarray ivalues2, "%.2f"
      printarray ivalues2, "%.1f", "ivalues2="
      turnoff
    endin

    instr 2
      ; k-time, 1D, print every cycle
      kxs[] fillarray 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
      printarray kxs, -1, "", "instr 2"
      kxs += 1
    endin

    instr 3
      kxs[] fillarray 0, 1, 2, 3, 4, 5, 6, 7, 8, 9
      printarray kxs, metro(20), "%.0f", "kxs 1D="
      kxs += 1
      if kxs[0] > 1000 then
        turnoff
      endif
      endin

    instr 4
      ; k-time, 2D, print with a trigger
      kxs[][] init 3, 4
      kxs fillarray   0,  1,  2,  3, \
                     10, 11, 12, 13, \
                     20, 21, 22, 23
      ktrig metro 20
      printarray kxs, ktrig, "", "kxs="
      kxs[0][0] = kxs[0][0] + 1
      if kxs[0][0] > 1000 then
        turnoff
      endif
    endin

    instr 5
      ; test %d: it should work like printf("%d", (int)myfloat)
      ; this should print "0 1 2 3 4"
      kxs[] fillarray 0, 1.1, 2, 3.3, 4
      printarray kxs, 1, "%d"
      turnoff
    endin

    </CsInstruments>

    <CsScore>
    i 1 0 0.01
    i 2 1 0.05
    i 3 2 2
    i 4 2 2
    i 5 0 0.1
    </CsScore>

    </CsoundSynthesizer>

## Voir aussi

ftprint, metro printf

## Crédits

Auteur : Eduardo Moguillansky 2018

Nouveau greffon dans la version 6.12

Précédent | Niveau supérieur | Suivant
printsk | Sommaire | product