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

## seqtime2

seqtime2 — 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 seqtime2 ktrig_in, 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.

ktrig_in -- signal de déclenchement en entrée.

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.

seqtime2 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.

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 seqtime2.

seqtime2 est semblable à seqtime, la différence étant que lorsque ktrig_in contient une valeur différente de zéro, l'indice courant est réinitialisé à la valeur de kinitndx. kinitndx peut varier pendant l'exécution.

## Exemples

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

Exemple 827. Exemple de l'opcode seqtime2.

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

    sr = 44100
    ksmps = 32
    nchnls = 2
    0dbfs  = 1

    gitabMap2 ftgen	57,0,512,-2, 1,1/4,1/4,1/8,1/8,1/8,1/8,1/4,1/4,.5,1/4,1/4,1/16,1/16,1/16,1/16,1/16,1/16,1/16,1/16
    gisine	  ftgen	1,0,512,10, 1

    instr 1

    ktrigin	metro	.333333333333
    ktrig2	metro	1
    	schedkwhen ktrig2, 0,0, 2, 0, .1			; just to set the metronome!
    kspeed	init	1
    ;          	 ktime_unit, kstart, kloop, initndx, kfn_times
    ktrig	seqtime2 ktrigin, kspeed, 0, 20, 2, gitabMap2
    ;ktrig	seqtime	 kspeed, 0, 20, 0, gitabMap2			; try with seqtime too...
    	schedkwhen ktrig, 0, 0, 3, 0, ktrig			; the duration is got from seqtime2 output!
    endin

    instr 2

    a1	line	1,p3,0
    aout	oscili	0.7*a1,500,gisine
    	outs1	aout
    endin

    instr 3

    a1	line 	1,p3,0
    aout	oscili	0.7*a1,1000,gisine
    	outs2	aout
    endin

    </CsInstruments>
    <CsScore>
    i1 0 20

    ;f0 3600
    </CsScore>
    </CsoundSynthesizer>

## Voir aussi

GEN02, GEN23, seqtime, trigseq, timedseq

## Crédits

Auteur : Gabriel Maldonado

Précédent | Niveau supérieur | Suivant
serialWrite | Sommaire | seqtime