partikkelget

partikkelget — Retourne un index de masque pour un paramètre de masque spécifique d'une instance courante de partikkel.

Description

partikkelget est un opcode pour obtenir un index de masque de partikkel pour un paramètre spécifique. Utilisé de concert avec partikkelset, il permet de synchroniser le masquage de partikkel entre différentes instances courantes de l'opcode partikkel. On peut aussi l'utiliser pour contrôler d'autres processus basés sur un index de masque interne, par exemple pour créer des modèles de masquage plus complexes que ceux disponibles dans le système régulier de masquage de grain.

Syntaxe

kindex partikkelget kparameterindex, iopcode_id

Initialisation

iopcode_id -- l'id de l'opcode, liant une instance de partikkel à une instance de partikkelsync.

Exécution

kindex -- index de masque en sortie. Retourne l'index de masque courant pour le paramètre spécifié par kparameterindex dans l'instance de partikkel identifiée par iopcode_id.

kparameterindex -- paramètre de masque. Séléction du paramètre de masquage pour lequel sera fourni l'index de masque courant. Les différents paramètres sont identifiés par :

  • 0 : masque du gain

  • 1 : masque du début de balayage de hauteur

  • 2 : masque de la fin de balayage de hauteur

  • 3 : masque de l'indice de modulation mf

  • 4 : masque de canal

  • 5 : masque de mélange de forme d'onde

Exemple

Voici un exemple des opcodes partikkelget et partikkelset. Il utilise le fichier partikkelgetset.csd.

Exemple 680. Exemple de manipulation de l'index de masque interne de partikkel, basé sur la valeur d'autres index de masque dans la même intance de partikkel.

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  
-odac           ;;;RT audio 
; For Non-realtime ouput leave only the line below:
 -o partikkel-getset.wav -W ;;; for file output any platform
</CsOptions>
<CsInstruments>

nchnls 	= 2
0dbfs	= 1

giSine ftgen 0, 0, 65536, 10, 1
giCosine ftgen 0, 0, 8192, 9, 1, 1, 90
giSigmoRise ftgen 0, 0, 8193, 19, 0.5, 1, 270, 1
giSigmoFall ftgen 0, 0, 8193, 19, 0.5, 1, 90, 1

instr 1

; freqstart masking table, simple ascending semitones pattern
iwavfreqstarttab ftgentmp 0, 0, 32, -2, 0, 11,  
    semitone(0), semitone(1), semitone(2), semitone(3),
    semitone(4), semitone(5), semitone(6), semitone(7),
    semitone(8), semitone(9), semitone(10), semitone(11)

iwavfreqendtab ftgentmp 0, 0, 32, -2, 0, 11, 
    semitone(0), semitone(1), semitone(2), semitone(3),
    semitone(4), semitone(5), semitone(6), semitone(7),
    semitone(8), semitone(9), semitone(10), semitone(11)

; channel masking table, simple panning back and forth
ichannelmasks ftgentmp 0, 0, 32, -2, 0, 7, 0.0, 0.25, 0.5, 0.75, 1.0, 0.75, 0.5, 0.25

; init unused arate signals
awavfm = 0
asamplepos1	= 0
async = 0

; system
id = 1

a1,a2 partikkel 6, 0, -1, async, 0, -1, giSigmoRise, giSigmoFall, 
    0.9, 0.5, 100, ampdbfs(-9), -1, 1, 0,iwavfreqstarttab, iwavfreqendtab, awavfm, 
    -1, -1, giCosine, 1, 1, 1, ichannelmasks, 0, 
    giSine, giSine, giSine, giSine, 
    -1, asamplepos1, asamplepos1, asamplepos1, asamplepos1, 
    440, 440, 440, 440, 100, id

outch 1, a1, 2, a2

; using partikkelget and partikkelset to make the channelmask and freqmask indices 
; interact to create a more complex pattern
kfqmask partikkelget 1, id
kchmask partikkelget 4, id
kcount1 init 0
kcount2 init 0
if kchmask > (kfqmask+kchmask)%11  then
partikkelset 1, kcount1, id
partikkelset 2, kcount1, id
kcount1 = (kcount1+1)%7
elseif kfqmask > (kfqmask*kchmask)%7  then
partikkelset 4, kcount2, id
kcount2 = (kcount2+kcount1)%6
endif
        
endin

</CsInstruments>
<CsScore>
i1 0 30
</CsScore>
</CsoundSynthesizer>


Voir aussi

partikkel

Crédits

Auteur : Thom Johansen
Auteur : Øyvind Brandtsegg
Mai 2017

Nouveau dans la version 6.09