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

Re: [sc-dev] crossfading groups, noid for groups



Ronald, the help files should not go in the class library ... they should go in the Help/ directory in your build folder.

I'm not sure if it'll do exactly what you want, but it does have client-side methods for fading channels in and out over time. By default it's a linear fade, but you can substitute any kind of warp understood by ControlSpec.

James

On Thursday, Jun 19, 2003, at 12:03 US/Eastern, Ronald J. Kuivila wrote:

Hi James,

 I just downloaded your stuff and will take a look.  One little oddity:
the help file aliases break SC's compile if they are left in the class
library. The OS will resolve the alias if it stays in the same folder but
loses it otherwise.

RJK

On Wed, 18 Jun 2003, James Harkins wrote:

MixerChannel does this in a different way. It provides groups for
playing things (synths and effects are kept in separate groups) and a
fader/panner. Also pre and post-fader sends.

http://swiki.hfbk-hamburg.de:8888/MusicTechnology/516

Even though the class bundle is called "MixingBoard," you can use
MixerChannels without the gui bits.

James

PS I need to update it today to use Balance2 for 2-in, 2-out channels
rather than calculating it in math ugens.

On Wednesday, Jun 18, 2003, at 10:53 US/Eastern, Ronald J. Kuivila
wrote:


Hi,

 It occurs to me that Group's could be used directly to
provide crossfading similar to Julian's NodeProxy. Basically,
you fade out the group rather than individual members.

 This involves overloading bus assignment with group membership, but
this
is already being done in a number of classes.  (I.e., a group has a
private bus its members output to and a public bus where the
accumulated
output is written by a separate synth immediately after the group.)

 If this seems like a good idea, then the  message "noid" could be
extended to groups.  It would change the id's of all of its children.
Then on the client side, replacement nodes could be generated without
allocating new ID's.

  Here is a crude example:

SynthDef("fadeIn", { arg i_busOut=0, i_busIn=16, i_dur = 5;
	Out.ar(i_busOut, Line.kr(0, 1, i_dur) * In.ar(i_busIn, 2))
}).writeDefFile;

SynthDef("fadeOut", { arg i_busOut=0, i_busIn=16, i_dur = 5,
i_doneAction
= 3; var out;
out = K2A.ar(0);
Out.ar(i_busOut, Line.kr(1, 0, i_dur, doneAction: 3) * In.ar(i_busIn,
2));
ReplaceOut.ar(i_busIn, [out,out]);
	// clear busIn for duplicate group that is fading in
}).writeDefFile;

s.boot;
r = RootNode(s);
b = Bus.audio(s, 2);

g = Group.basicNew(s);
t = Synth.basicNew("fadeIn", s);
s.sendBundle(nil, g.addToTailMsg(r),
t.addAfterMsg(g,[\i_busIn,b.index])
);

x = Patch({arg f= 400, a = -20; SinOsc.ar(f,0,a.dbamp) });
x.play(g,0,b);
// x.args.at(0).activeValue_(1000).changed;
// x.synth.set(\f,1000);

u = Synth.basicNew("fadeOut", s);
h = Group.basicNew(s);
v = Synth.basicNew("fadeIn",h.server);

s.sendBundle(nil,
	[\n_set,x.synth.nodeID, \f,1000],
	t.freeMsg,
	u.addAfterMsg(g,[\i_busIn,b.index]),
	h.addAfterMsg(u,[\i_busIn,b.index]),
	v.addAfterMsg(h,[\i_busIn,b.index])

);

x.synth = nil;
// x.args.at(0).activeValue_(1000).changed;
x.play(h,0.1,b,400);



_______________________________________________
sc-dev mailing list
sc-dev@xxxxxxxxxxxxxxx
http://www.create.ucsb.edu/mailman/listinfo/sc-dev


____________________________________

H. James Harkins /// dewdrop_world
http://www.duke.edu/~jharkins

"WHAT'S WRONG WITH MURIEL PUCE?"

SuperCollider Server codepool:
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/524

_______________________________________________
sc-dev mailing list
sc-dev@xxxxxxxxxxxxxxx
http://www.create.ucsb.edu/mailman/listinfo/sc-dev

_______________________________________________
sc-dev mailing list
sc-dev@xxxxxxxxxxxxxxx
http://www.create.ucsb.edu/mailman/listinfo/sc-dev


____________________________________

H. James Harkins /// dewdrop_world
http://www.duke.edu/~jharkins

"WHAT'S WRONG WITH MURIEL PUCE?"

SuperCollider Server codepool:
http://swiki.hfbk-hamburg.de:8888/MusicTechnology/524