partikkelset

partikkelset — Fixe l'index de masque pour un paramètre de masque spécifique d'une instance courante de partikkel.

Description

partikkelset est un opcode pour fixer l'index de masque de partikkel pour un paramètre spécifique. Utilisé de concert avec partikkelget, 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

partikkelset kparameterindex, kmaskindex, iopcode_id

Initialisation

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

Exécution

kparameterindex -- paramètre de masque. Séléction du paramètre de masquage pour lequel sera fixé 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

kmaskindex -- valeur sur laquelle mettre l'index de masque. Fixe l'index de masque courant pour le paramètre spécifié avec kparameterindex dans l'instance de partikkel identifié par iopcode_id.

Exemple

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

Exemple 733. 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