Atte;<br><br><div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">I still find myself wishing for ADSR's to be able to control stuff, but<br>
that won't happen, right?</blockquote><div><br>Hmmmm, ADSR doesn't seem to have a .value() output, no. How about this (from memory);<br>---------------------<br>SawOsc s =&gt; LPF f =&gt; dac;<br><br>//this makes envelope output a float between 0 and the vlaue held by the step module
<br>//clearly the sustain level is the important factor here but that's not hard to deal with<br>Step offset =&gt; ADSR env =&gt; blackhole;<br><br>440 =&gt; s.freq;<br><br>//this defines the maximum amount of modulation<br>
//it would make sense to express it as a multiple of s.freq() but let's keep it simple<br>880 =&gt; offset.next;<br><br><br>fun void updater()<br>{<br>while(1)<br>&nbsp;&nbsp;&nbsp; {<br>&nbsp;&nbsp;&nbsp; env.last() + s.freq() =&gt; f.freq;<br>&nbsp;&nbsp;&nbsp; 10::ms =&gt; now;
<br>&nbsp;&nbsp;&nbsp; }<br>}<br><br>spork ~ updater();<br>&nbsp;<br>//insert musical stuff here<br><br>-------------------<br><br>Or something along those lines.<br><br>Not feeling all that well, there might be a typo or two in there but that's one trick to do it. In this simple form it's rather static but there's no reason to not feed the Step some output from mtof (in the purely hypothetical case that you'd like some conventional tuning to your Moog, not accusing anyone ;-) )
<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Another related situation: Supposed I want to modulate both panning,<br>volume and filter by different predetermined &quot;curves&quot;s. I can't get my
<br>head around how that is done nicely. A multi breakpoint envelope that<br>could controll stuff (like csounds expseg and linseg) would be really<br>great in some situations, since they are so easy to setup and experiment
<br>with the different timings/levels. But how could something like this be<br>solved with chuck?</blockquote><div><br>linseg is great, it's one of the things in Csound that I realy liked. Along the lines of my example above or by using .value() you can use Envelope as a linseg. There are some older posts by me on this list where I tried to use it for exactly this and ran into trouble when Envelope was asked to hold values in the frequency range. This has since been fixed but I didn't yet return to that plan so  if you come up with any interesting results...
<br></div><br>It would need some aditional trickery to go from Envelope's simple ramps to a real multi stage modulation source but the same holds true for linseg so you should be fine.<br><br><br>Does that help?<br><br>Kas.
<br></div>