FLslidBnk2

FLslidBnk2 — Un widget FLTK contenant un banc de réglettes horizontales.

Description

FLslidBnk2 est un widget FLTK contenant un banc de réglettes horizontales.

Syntaxe

FLslidBnk2 "names", inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index] 
FLslidBnk2 istring, inumsliders, ioutable, iconfigtable [,iwidth, iheight, ix, iy, istart_index] 

Initialisation

« names » -- une chaîne de caractères entre guillemets contenant le nom de chaque réglette. Chaque réglette peut avoir un nom différent. Chaque nom est séparé par un caractère « @ », par exemple : « fréquence@amplitude@coupure ». Il est possible de ne fournir aucun nom en donnant un seul espace «   ». Dans ce cas, l'opcode affectera automatiquement un numéro en progression ascendante comme étiquette pour chaque réglette.

istring -- un entier associé à une chaîne de caractères par strset, qui est utilisée comme « names » ci-dessus.

inumsliders -- le nombre de réglettes.

ioutable (facultatif, 0 par défaut) -- numéro d'une table allouée préalablement dans laquelle seront stockée les valeurs de sortie de chaque réglette. Il faut s'assurer que la taille de la table est suffisante pour contenir toutes les cellules de sortie, sinon Csound plantera avec une erreur de segmentation. En affectant zéro à cet argument, la sortie sera dirigée vers l'espace zak dans la zone de taux-k. Dans ce cas, l'espace zak doit avoir été alloué au préalable avec l'opcode zakinit et il faut s'assurer que la taille d'allocation est suffisante pour couvrir toutes les réglettes. La valeur par défaut est zéro (c'est-à-dire stockage de la sortie dans l'espace zak).

iconfigtable -- dans les opcodes FLslidBnk2 et FLvslidBnk2, cette table remplace iminmaxtable, iexptable et istyletable, tous ces paramètres étant placés dans une seule table. Cette table doit être remplie avec un groupe de quatre paramètres pour chaque réglette de la façon suivante :

min1, max1, exp1, style1, min2, max2, exp2, style2, min3, max3, exp3, style3 etc.

par exemple en utilisant GEN02 on peut taper :

inum ftgen 1,0,256, -2,     0,1,0,1,    100, 5000, -1, 3,      50, 200, -1, 5,….. [etc]

Dans cet exemple la première réglette reçoit les paramètres [0, 1, 0, 1] (valeurs comprises entre 0 et 1, réponse linéaire, aspect réglette pleine), la seconde réglette reçoit les paramètres [100, 5000, -1, 3] (valeurs comprises entre 100 et 5000, réponse exponentielle, aspect réglette normale), la troisième réglette reçoit les paramètres [50, 200, -1, 5] (valeurs comprises entre 50 et 200, réponse exponentielle, aspect réglette stylée), et ainsi de suite.

iwidth (facultatif) -- largeur de la zone rectangulaire contenant toutes les réglettes du banc, à l'exclusion des étiquettes qui sont placées à la gauche de cette zone.

iheight (facultatif) -- hauteur de la zone rectangulaire contenant toutes les réglettes du banc, à l'exclusion des étiquettes qui sont placées à la gauche de cette zone.

ix (facultatif) -- position horizontale du coin supérieur gauche de la zone rectangulaire contenant toutes les réglettes appartenant au banc. Il faut laisser suffisamment d'espace à la gauche de ce rectangle afin que les étiquettes des réglettes soient visibles. En effet, les étiquettes elles-mêmes sont situées à l'extérieur de la zone rectangulaire.

iy (facultatif) -- position verticale du coin supérieur gauche de la zone rectangulaire contenant toutes les réglettes appartenant au banc. Il faut laisser suffisamment d'espace à la gauche de ce rectangle afin que les étiquettes des réglettes soient visibles. En effet, les étiquettes elles-mêmes sont situées à l'extérieur de la zone rectangulaire.

istart_index (facultatif, 0 par défaut) -- un nombre entier indiquant un décalage des positions des cellules de sortie. Il peut être positif pour permettre l'allocation en sortie de plusieurs bancs de réglettes dans la même table ou dans l'espace zak. La valeur par défaut est zéro (pas de décalage).

Exécution

Il n'y a pas d'argument de taux-k, même si les cellules de la table en sortie (ou l'espace zak) sont mis à jour au taux-k.

FLslidBnk2 est un widget contenant un banc de réglettes horizontales. On peut y mettre n'importe quel nombre de réglettes (argument inumsliders). La sortie de toutes les réglettes est stockée dans une table allouée au préalable ou dans l'espace zak (argument ioutable). Il est possible de déterminer la première position de la table (ou de l'espace zak) dans laquelle stocker la sortie de la première réglette au moyen de l'argument istart_index.

Chaque réglette peut avoir une étiquette individuelle placée à sa gauche. Les étiquette sont définies par l'argument « names ». L'intervalle de sortie de chaque réglette peut être fixé individuellement au moyen des valeurs min et max dans la table iconfigtable. La courbe de réponse de chaque réglette peut être fixée individuellement, au moyen d'une liste d'identifiants placés dans la table iconfigtable (argument exp). Il est possible de définir l'aspect de chaque réglette indépendamment ou de donner le même aspect à toutes les réglettes (argument style dans la table iconfigtable).

Les arguments iwidth, iheight, ix et iy déterminent la largeur, la hauteur, les positions horizontale et verticale de la zone rectangulaire contenant les réglettes. Noter que l'étiquette de chaque réglette est placée à sa gauche et n'est pas inclue dans la zone rectangulaire contenant les réglettes. Ainsi l'utilisateur doit laisser assez d'espace à la gauche du banc en affectant une valeur suffisante à ix afin que les étiquettes soient visibles.

[Avertissement] IMPORTANT !

Noter que les tables utilisée par FLslidBnk2 doivent être crées avec l'opcode ftgen et placées dans l'orchestre avant le valuateur correspondant. On ne peut pas les placer dans la partition. En effet, les tables placées dans la partition sont créées après l'initialisation des opcodes placés dans la section d'en-tête de l'orchestre.

Exemples

Voici un exemple de l'opode FLslidBnk2. Il utilise le fichier FLslidBnk2.csd.

Exemple 306. Exxemple de l'opode FLslidBnk2.

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       -M0 ;;;RT audio I/O with MIDI in
</CsOptions>
<CsInstruments>

sr	=	44100
ksmps	=	100
nchnls	=	2

;Example by Gabriel Maldonado

giElem	init	8
giOutTab	ftgen	1,0,128, 2, 	0

              ;min1, max1, exp1, type1, min2, max2, exp2, type2, min3, max3, exp3, type3 etc.
giConfigTab ftgen	2,0,128,-2,         .1, 1000, -1, 3,      .1, 1000, -1, 3,     .1, 1000, -1, 3,     30, 2000, -1, 3, \
                                        .1, 5000, -1,  5,      .1, 5000, -1,  5,     .1, 5000, -1,  5,     .1, 5000, -1,  5
giSine	ftgen	3,0,256,10,	1

	FLpanel	"This Panel contains a Slider Bank",600,600
	FLslidBnk2 "mod1@mod2@mod3@amp@freq1@freq2@freq3@freqPo", giElem, giOutTab, giConfigTab, 400, 500, 100, 10
	FLpanel_end

	FLrun

	instr 1

kmodindex1 	init 0
kmodindex2 	init 0 
kmodindex3 	init 0 
kamp 		init 0 
kfreq1 		init 0 
kfreq2	  	init 0 
kfreq3	 	init 0 
kfreq4 		init 0


       vtable1k  giOutTab, kmodindex1 , kmodindex2, kmodindex3, kamp, kfreq1, kfreq2 , kfreq3, kfreq4

amod1	oscili	kmodindex1, kfreq1, giSine
amod2	oscili	kmodindex2, kfreq2, giSine
amod3	oscili	kmodindex3, kfreq3, giSine
aout	oscili	kamp,       kfreq4+amod1+amod2+amod3, giSine
	
	outs	aout, aout
	endin


</CsInstruments>
<CsScore>

i1 0 3600
f0 3600

</CsScore>
</CsoundSynthesizer>


Voir aussi

FLslider, FLslidBnk, FLvslidBnk, FLvslidBnk2

Crédits

Auteur : Gabriel Maldonado

Nouveau dans la version 5.06