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

## seqtime

seqtime — Génère un signal de déclenchement suivant les valeurs stockées dans une table.

## Description

Génère un signal de déclenchement suivant les valeurs stockées dans une table.

## Syntaxe

    ktrig_out seqtime ktime_unit, kstart, kloop, kinitndx, kfn_times

## Exécution

ktrig_out -- signal de déclenchement en sortie.

ktime_unit -- unité de mesure du temps, par rapport aux secondes.

kstart -- indice du début de la section en boucle.

kloop -- indice de la fin de la section en boucle.

kinitndx -- indice initial.

| Note
Bien que kinitndx soit renseigné au taux-k, l'accès ne s'y fait qu'au taux d'initialisation. Ainsi, si l'on utilise un argument de taux-k, son affectation doit se faire avec init.

kfn_times -- numéro de la table contenant une suite de dates.

Cet opcode traite des suites temporelles de groupes de valeurs stockées dans une table.

seqtime génère un signal déclencheur (une suite d'impulsions, voir aussi l'opcode trigger), en fonction des valeurs stockées dans la table kfn_times. Cette table doit contenir une suite d'intervalles de temps (c-à-d des durées entre des évènements adjacents). Les unités temporelles stockées dans la table sont exprimées en secondes, mais peuvent être changées d'échelle grâce à l'argument ktime_unit. La table peut être remplie avec GEN02 ou au moyen d'un fichier texte externe contenant des nombres, avec GEN23.

| Note
Noter que l'indice kloop marque la limite de la boucle et n'est PAS inclus dans les élements de la boucle. Si l'on veut boucler sur les quatre premiers éléments, il faut fixer kstart à 0 et kloop à 4.

Il est possible de démarrer la séquence depuis une valeur différente de la première, en affectant à kinitndx un indice différent de zéro (qui correspond à la première valeur de la table). Normalement la séquence est bouclée, et le début et la fin de la boucle peuvent être ajustés en modifiant les arguments kstart et kloop. L'utilisateur doit s'assurer que les valeurs de ces arguments (ainsi que celle de kinitndx) correspondent à des indices de table valides, sinon Csound plantera (car il n'y a aucun test sur ces indices).

Il est possible de désactiver la boucle (mode à une passe) en affectant la même valeur aux arguments kstart et kloop. Dans ce cas, le dernier élément lu sera celui correspondant à la valeur de ces arguments. La table peut être lue à l'envers en affectant une valeur négative à kloop. Il est possible de déclencher deux évènements presqu'en même temps (actuellement séparés d'un k-cycle) en donnant la valeur zéro à l'intervalle de temps correspondant. Si l'utiliseur désire envoyer une impulsion de déclenchement, le premier élément de la table doit valoir zéro. L'évènement doit être déclenché sur un instrument de l'orchestre venant immédiatement après l'instrument contenant l'opcode seqtime.

## Exemples

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

Exemple 828. Exemple de l'opcode seqtime.

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

     sr = 44100
     ksmps = 64
     nchnls = 1

    ; By Tim Mortimer and Andres Cabrera 2007

    0dbfs = 1

    gisine         ftgen    0, 0, 8192, 10,    1
    ;;; table defining an integer pitch set
    gipset    ftgen     0, 0, 4, -2, 8.00, 8.04, 8.07, 8.10
    ;;;DELTA times for seqtime
    gidelta    ftgen    0, 0, 4, -2, .5, 1, .25, 1.25

      instr 1

    kndx init 0
    ktrigger init 0

    ktime_unit init 1
    kstart init p4
    kloop init p5
    kinitndx init 0
    kfn_times init gidelta

    ktrigger seqtime ktime_unit, kstart, kloop, kinitndx, kfn_times

    printk2 ktrigger

    if (ktrigger > 0) then
       kpitch table kndx, gipset
       event "i", 2, 0, 1, kpitch
       kndx = kndx + 1
       kndx = kndx % kloop
    endif

      endin

      instr 2
    icps = cpspch (p4)
    a1    buzz    1, icps, 7, gisine
    aamp expseg    0.00003,.02,1,p3-.02,0.00003

    a1 = a1 * aamp * 0.5

    out a1
      endin

    </CsInstruments>
    <CsScore>
    ;      start    dur   kstart  kloop
    i 1	0	7	0	4
    i 1	8	10	0	3
    i 1	19	10	4	4

    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

GEN02, GEN23, trigseq seqtime2

## Crédits

Auteur : Gabriel Maldonado

Novembre 2002. Note sur le paramètre kinitndx ajoutée grâce à Rasmus Ekman.

Nouveau dans la version 4.06

Exemple par Tim Mortimer et Andrés Cabrera, 2007

Précédent | Niveau supérieur | Suivant
seqtime2 | Sommaire | setctrl