FLslidBnk2Setk

FLslidBnk2Setk — mofidie les valeurs d'un banc de réglettes.

Description

FLslidBnk2Setkmofidie les valeurs d'un banc de réglettes selon un ensemble de valeurs stockées dans une table.

Syntaxe

FLslidBnk2Setk  ktrig, ihandle, ifn [, istartIndex, istartSlid, inumSlid]

Initialisation

ihandle - identifiant du sliderBnk (à utiliser pour fixer ses valeurs).

ifn - numéro d'une table contenant un ensemble de valeurs à affecter à chaque réglette.

istartIndex - (facultatif) indice dans la table du premier élément à être évalué. La valeur par défaut est zéro.

istartSlid - (facultatif) première réglette à évaluer. 0 par défaut, indiquant la première réglette.

inumSlid - (facultatif) nombre de réglettes à mettre à jour. 0 par défaut, indiquant toutes les réglettes.

Exécution

ktrig – la sortie de FLslidBnk2Setk est un déclencheur qui indique si les réglettes doivent être mises à jour ou pas. Une valeur non nulle force la mise à jour des réglettes.

FLslidBnk2Setk est semblable à FLslidBnkSet mais il permet de modifier les valeurs de FLslidBnk2 au taux-k (on peut aussi utiliser FLslidBnk2Setk avec FLvslidBnk2, obtenant un résultat identique). Il permet aussi de relier le banc de réglettes au MIDI. Si l'on utilise le MIDI (par exemple au moyen de l'opcode slider8table), FLslidBnk2Setk change les valeurs du banc de réglettes FLslidBnk2 avec un ensemble de valeurs situées dans une table. Cet opcode est ainsi capable de servir de pont MIDI vers le widget FLslidBnk2 lorsqu'il est utilisé avec la famille d'opcodes sliderXXtable (voir l'entrée slider8table pour plus d'information). Noter que, si l'on veut utiliser l'indexation de table comme une courbe de réponse, il est impossible de le faire directement dans la configuration iconfigtable de FLslidBnk2, lorsque l'on a l'intention d'utiliser l'opcode FLslidBnk2Setk. En fait, l'élément correspondant de l'élément inputTable de FLslidBnk2Setk doit être positionné en mode linéaire et respecter l'intervalle de 0 à 1. Même les éléments correspondants de sliderXXtable doivent être positionnés en mode linéaire dans l'intervalle normalisé. On peut indexer la table plus tard au moyen des opcodes tab et tb, et recadrer la sortie en fonction des valeurs max et min. D'un autre côté, il est possible d'utiliser une courbe de réponse linéaire ou exponentielle directement, en fixant l'intervalle min-max courant ainsi que l'indicateur à la fois dans l'iconfigtable du FLslidBnk2 correspondant et dans sliderXXtable.

FLslidBnk2Setk est la version de taux-k de FLslidBnk2Set.

Exemples

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

Exemple 302. Exemple de l'opcode FLslidBnk2Setk.

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>
; Audio out   Audio in    No messages
-odac           -iadc     -d     ;;;RT audio I/O
</CsOptions>
<CsInstruments>

sr     = 44100
ksmps  = 10
nchnls = 2

;Example by Gabriel Maldonado 2007
giElem	init	8
giOutTab	ftgen	1,0,128, 2, 	0
giSine	ftgen	3,0,256,10,	1
giOutTab2	ftgen	4,0,128, 2, 	0
itab	ftgen	29, 0, 129, 5,  .002, 128, 1		;** exponential ascending curve for slider mapping
giExpTab	ftgen	30, 0, 129, -24, itab, 0, 1                    ;** rescaled curve for slider mapping
giConfigTab ftgen	2,0,128,-2,         	1, 	500,	-1, 	13, \
				     	1, 	500,	-1,  	13, \
				          1, 	500,	-1, 	13, \
 					1, 	5000,	-1, 	13, \
\
					1, 	1000, 	-1,  	5, \
					1, 	1000, 	-1,  	5, \
					1, 	1000, 	-1,  	5, \
					1, 	5000, 	-1,  	5

	FLpanel	"Multiple FM",600,600
	FLslidBnk2 "mod1@mod2@mod3@amp@freq1@freq2@freq3@freqPo", giElem, giOutTab2, giConfigTab, 400, 500, 100, 10
giHandle	FLslidBnkGetHandle 
	FLpanel_end

	FLrun
	instr 1
ktrig slider8table  1, giOutTab, 0, \ ;	ctl	min	max	init	func
	27,	1, 	500,	3,	-1,	\ ;1 repeat rate
	28,	1, 	500,	4,	-1,	\ ;2 random freq. amount
	29,	1, 	500,	1,	-1,	\ ;3 random amp. amount
	30,	1,	5000,	1,	-1,	\ ;4 number of concurrent loop points
\
	31,	1, 	1000,	1,	-1,	\;5 kloop1
	32,	1, 	1000,	1,	-1,	\;6 kloop2
	33,	1, 	1000,	1,	-1,	\;7 kloop3
	34,	1, 	1000,	1,	-1	;8 kloop4
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  giOutTab2, kmodindex1, kmodindex2, kmodindex3, kamp, kfreq1, kfreq2, kfreq3, kfreq4
;	 *kflag, *ihandle, *ifn, *startInd, *startSlid, *numSlid;
	FLslidBnk2Setk  ktrig, giHandle, giOutTab, 0, 0, giElem
printk2 kmodindex1
printk2 kmodindex2,10
printk2 kmodindex3,20
printk2 kamp,30
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
</CsScore>
</CsoundSynthesizer>


Voir aussi

FLslider, FLslidBnkGetHandle, FLslidBnk, FLslidBnk2, FLvslidBnk, FLvslidBnk2 FLslidBnkSet, FLslidBnk2Set, slider8table

Crédits

Auteur : Gabriel Maldonado

Nouveau dans la version 5.06