[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [sc-users] sending synth parameters with patterns
Well here is a vote for fixing it...
I'm using Supercollider on a Beagleboard as a way to have a low cost synthesis engine. It will be driven by messages sent from another processor, in this case an Arduino Mega.
I'm not sure why SynthDef variants isn't an obvious and frequently used feature. It's something I was rather counting on. Below is a (i would assume) simple subtractive synth. My plan was to be able to choose a synth and a preset. Perhaps I'm not thinking about things the "Supercollider way" but it seems like the most natural thing in the synth-world to want to do...synths with presets.
Meanwhile...is there no workaround to force Pbind to select the appropriate variant?
( I need to deal with this in the next week. Right now it looks like I will have to break my variants up into individual SynthDef's or turn my variants into rather unsightly case statements.)
thanks,
Phil
p.s. gratuitous example of variants use:
(SynthDef("basicsub",
{
arg freq = 440, gateTime = 0.25, outVol = 0.5, outbus = 0, keyVel = 1,
vcaA = 1, vcaD = 1, vcaS = 0.5, vcaR = 1,
vcfA = 1, vcfD = 1, vcfS = 0.5, vcfR = 1,
vcfTrack = 1, vcfOffset = 2, vcfEnvAmt = 1, vcfQ = 0;
var gate, osc1, vcfEnv, vcfCV, vcaEnv, inst;
gate = EnvGen.kr(Env.linen( 0.001, gateTime, 0.001 ));
osc1 = Saw.ar( freq );
vcfEnv = EnvGen.kr( Env.adsr(vcfA, vcfD, vcfS, vcfR, 1, -4), gate );
vcfCV = (freq * vcfOffset * vcfTrack) + (vcfEnv * freq * vcfEnvAmt);
vcaEnv = EnvGen.kr( Env.adsr(vcaA, vcaD, vcaS, vcaR, 1, -4), gate, doneAction: 2);
inst = MoogFF.ar( osc1, freq: vcfCV, gain: vcfQ ) * vcaEnv * keyVel * outVol;
Out.ar(outbus, [inst, inst])
},
variants: (
oboe: [vcaA: 0.05, vcaR: 0.05, vcfOffset: 3],
reverse: [vcaA: 3, vcaR: 0.01],
epiano: [vcaA: 0.01, vcaD: 3, vcaS: 0, vcaR: 3, vcfQ: 0.5, outVol: 0.9],
qwaah: [vcaA: 0.01, vcaR: 4, vcfQ: 3.7],
sweep: [vcaA: 0.01, vcaR: 4,
vcfOffset: 2, vcfQ: 3.7, vcfEnvAmt: 10,
vcfA: 0, vcfS: 0, vcfR: 4, vcfD: 4 ],
thwap: [vcaA: 0.01, vcaD: 1, vcaS: 0, vcaR: 0.25, outVol: 0.9,
vcfA: 0, vcfD: 0.025, vcfS: 0, vcfR: 0.025,
vcfOffset: 0, vcfQ: 3.7, vcfEnvAmt: 10 ]
)
).send(s);)
On Nov 17, 2013, at 6:49 PM, James Harkins <jamshark70@xxxxxxxxx> wrote:
> On Sunday, November 17, 2013 3:45:38 PM HKT, adam4 wrote:
>> or make a "variant" in the synthdef, like a preset
>>
>> officially you're supposed to be able to do:
>> Pbind(\instrument,\zither,\variant,\zitherofdoom,\cutoff, 440,
> \modulation,
>> 0.3,\note, 1)
>
> Personally, I've never found any serious use for variants. I'd file this in the category of features that new users could safely ignore.
>
> Still, about the \variant problem -- I attempted to address this a couple of months ago:
>
> http://thread.gmane.org/gmane.comp.audio.supercollider.devel/59999
>
> .. but other developers were more interested in talking about github and *not even one other person* had a single word to say about the actual subject of the thread. :-|
>
> So, patches for this issue are out there. I had asked for advice on which approach would be better, and... the proverbial resounding thud. So it's still broken.
>
> hjh
>
> _______________________________________________
> 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/
_______________________________________________
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/