<br><br><div><span class="gmail_quote">On 5/31/07, <b class="gmail_sendername">Josh Lawrence</b> <<a href="mailto:hardbop200@gmail.com">hardbop200@gmail.com</a>> wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Last night I sat down and was able to modify <a href="http://polyfony.ck">polyfony.ck</a> to use a<br>SawOsc instead of the Mandolin.</blockquote><div><br>Cool!<br><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;">
My next step was to try to connect<br>that oscillator to a filter, but how do I do that? My thinking was<br>after I get done with defining my SawOsc parameters, I could just<br>chuck the oscillator to the filter, like so?
<br><br>s => moog;<br><br>(s is my SawOsc, and moog is Moog.)</blockquote><div><br>Ah, yes. "moog" in this case refers to a emulation (a simple but fun one) of a Moog synth, not to the Moog filter (think Minimoog
v.s. Moogerfooger). What you are looking for would run something like this;<br><br>SawOsc osc => LPF filt => ADSR env => dac;<br><br>That would be the basic layout of a traditional single oscilator synth. You could elaborate on that, for example by adding a second oscilator and a filter modulation envelope if you'd like to get more fancy.
<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;"><br>Does anyone have any examples of a more complete subtractive<br>synthesizer that I can model mine after?
</blockquote><div><br>How about starting with the layout above? You can look up the Ugens used in the manual and see how far those get you.<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;">
Final question: Is monophonic operation with glide out of the<br>question with ChucK?</blockquote><div><br>No, not at all, that's quite possible and indeed would likely be more simple then polyphonic operation. The glide bit would be the hardest. How about this;
<br>-----------------------<br>//warning, unchecked code, might contain typos<br><br>//example signal<br>SawOsc s => dac;<br><br>//modulation source<br>//you might want to look up "blackhole" to see what it does,
<br>//blackhole is quite usefull when using modulation.<br>Envelope slide => blackhole;<br><br>//this will be a 303-style slide that takes a second to reach any given target<br>second => slide.duration;<br><br>//set initial frequency
<br>330 => s.freq;<br>//making sure the modulation source fits this<br></div>330 => slide.value;<br><br>//let it sound for a bit<br>second => now;<br><br>//the actual slide starts here.<br>
440 => slide.target;<br><br>//we run this untill the slide has reached it's goal<br>while(slide.value() != slide.target)<br> {<br> //this is where the actual modulation occurs<br> slide.value() => s.freq
;<br><br> //this represents the "controll rate"<br> //shorter values produce a smoother glide at a higher cpu cost<br> 10::ms => now;<br> }<br><br>//let the new frequency sound for a bit too<br>second => now;
<br>----------------------------<br>Hope that gets you started?<br><br>Kas.<br></div>