[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[sc-users] Immediate Pattern Update via Environment



If I have the following PDefn:

	// Set Pattern1 environment first with initial values
	Pdefn(\Pattern1).set
		(
			\instrument, "bass", 
			\midinote, 40, 
			\dur, Pseq([1.0,1.0,1.0,1.0], inf),
			\legato, Pseq([0.9, 0.3, 0.3, 0.3, 0.3], 1),
			\amp, 0.5,
			\detune, 0.005
		);
	// Need to refer to Pattern1 environment in some way so create a variable =
envir
	e = Pdefn(\Pattern1).envir;
	// Define Pattern1
	Pdefn //(key,Pattern)
	(
		\Pattern1,
		{
			arg e;
			Pbind	
			(		
				\instrument, e.instrument,
				\midinote, e.midinote,
				\dur, e.dur,
				\legato, e.legato,		// /legato is a common synth parameter (find out
others)
				\amp, e.amp,
				\detune, e.detune
			)
		}
	);

Which is played via instrument:

		SynthDef("bass", 
		{
			arg freq = 440, gate = 1, amp = 0.5, slideTime = 0.17, ffreq = 1100,
width = 0.15,
			detune = 1.005, preamp = 4;
			var sig,
			// --------------------------------------------------
			env = Env.adsr(0.01, 0.3, 0.4, 0.1);	
			freq = Lag.kr(freq, slideTime);
			sig = Mix(VarSaw.ar([freq, freq * detune], 0, width, preamp)).distort *
amp 
			* EnvGen.kr(env, gate, doneAction: 2);
			sig = LPF.ar(sig, ffreq);
			// --------------------------------------------------
			Out.ar(0, sig ! 2)
		}).load(s);

Using the command:

Pseq([Pdefn(\Pattern1)], inf).play;

How do I change the environment for the next note in the sequence rather
than when the pattern is repeated?

For example setting a new \midinote:

Pdefn(\Pattern1).set(\midinote, 70);

Will only update once the pattern has come to the end of a repetition.  How
can I update it immediately, or when it is next safe to do so?

Thanks



-- 
View this message in context: http://www.nabble.com/Immediate-Pattern-Update-via-Environment-tp22427171p22427171.html
Sent from the Supercollider - User mailing list archive at Nabble.com.


_______________________________________________
sc-users mailing list

info (subscription, etc.): http://www.beast.bham.ac.uk/research/sc_mailing_lists.shtml
archive: https://listarc.bham.ac.uk/marchives/sc-users/
search: https://listarc.bham.ac.uk/lists/sc-users/search/