From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #22 Reply-To: sc-users Sender: owner-sc-users-digest@lists.io.com Errors-To: owner-sc-users-digest@lists.io.com Precedence: bulk sc-users-digest Tuesday, December 29 1998 Volume 01 : Number 022 ---------------------------------------------------------------------- Date: Sun, 20 Dec 1998 13:17:31 -0500 (EST) From: "Ronald J. Kuivila" <---@---.---> Subject: minor SC and/or GuiUtils bugs Hi James: Here is a bug: 60.midicps.cpsmidi.frac.post; 1 somehow the "frac" message gives erroneous output for cpsmidi(arg) when arg is a value like 440... There is another problem that arises in GuiUtils. However, I suspect that it is an SC bug... Sometimes the "run" button fails to succesfully spawn. In the example below on a 150MHz 8500, I get about a 10 - 20 percent failure rate. IF you uncomment the two lines towards the bottom, it does not appear to fail at all... RJK ( SoundManager.reset; ParameterWindow.play( "SoundWIndow", [ ['slider', "switch thresh", 300,0.1,30000,0,'exponential'], ['slider', "pitch1", 220, 20, 3000, 0, 'exponential'], ['slider', "volume1", 0.1, 0, 0.4], ['slider', "pitch2", 330, 20, 3000, 0, 'exponential'], ['slider', "volume2", 0.1, 0, 0.4] ], { arg thresh, pitch1, vol1, pitch2, vol2, sp, c, synth; var s1,s2, d1, d2, diff, difftrig, deriv, switch,notswitch,out1, out2; s1 = FSinOsc.ar(pitch1, vol1); s2 = FSinOsc.ar(pitch2, vol2); diff = s1-s2; difftrig = (0.0 < diff); difftrig = max(0,difftrig - Delay1.ar(difftrig)); d1 = Slope.ar(s1); d2 = Slope.ar(s2); deriv = abs(Slope.ar(diff)); difftrig = difftrig * (thresh>deriv)*(d1>=0)*(d2>=0); switch = 0.5 * ToggleFF.ar(difftrig); notswitch = 0.5 + neg(switch); out1 = (s1*switch) + (s1*notswitch); out2 = (s2*notswitch) + (s2*switch); // out1 = s1+s2; //out2 = s2+s1; [out1,out2]; } ); ) ------------------------------ Date: Sun, 20 Dec 1998 13:03:41 -0600 From: James McCartney <---@---.---> Subject: Re: SC 2.0d29 freeze >useSoundInput = 1 It looks like the prefs file didn't take. If it did that should have read : useSoundInput = 0 I noticed that Eudora adds an underscore in the file name where a space should be. Put the prefs file I sent you into the Preferences folder in the System Folder and make sure it is named "SuperCollider Prefs" with no underscore. You should also install OMS. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 20 Dec 1998 13:11:11 -0600 From: James McCartney <---@---.---> Subject: Re: minor SC and/or GuiUtils bugs Could you please explain what this code is trying to accomplish? There seems to be some unecessary operations going on, but it is so convoluted I can't tell what is intended. At 12:17 PM -0600 12/20/98, Ronald J. Kuivila wrote: > { arg thresh, pitch1, vol1, pitch2, vol2, sp, c, synth; > var s1,s2, d1, d2, diff, difftrig, deriv, switch,notswitch,out1, >out2; > s1 = FSinOsc.ar(pitch1, vol1); > s2 = FSinOsc.ar(pitch2, vol2); > diff = s1-s2; > difftrig = (0.0 < diff); > difftrig = max(0,difftrig - Delay1.ar(difftrig)); > d1 = Slope.ar(s1); > d2 = Slope.ar(s2); > deriv = abs(Slope.ar(diff)); > difftrig = difftrig * (thresh>deriv)*(d1>=0)*(d2>=0); > switch = 0.5 * ToggleFF.ar(difftrig); > notswitch = 0.5 + neg(switch); > out1 = (s1*switch) + (s1*notswitch); > out2 = (s2*notswitch) + (s2*switch); > // out1 = s1+s2; > //out2 = s2+s1; > [out1,out2]; > } > ); >) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 20 Dec 1998 13:43:24 -0600 From: James McCartney <---@---.---> Subject: Re: minor SC and/or GuiUtils bugs At 12:17 PM -0600 12/20/98, Ronald J. Kuivila wrote: >Hi James: > >Here is a bug: >60.midicps.cpsmidi.frac.post; >1 This is not really an error. It is just a result of rounding upon print out. The value returned by frac is actually very close but not quite 1.0. For example: (1.0 - 60.midicps.cpsmidi.frac).postln; 1.71745e-10 --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Sun, 20 Dec 1998 20:39:05 +0000 From: the hafler trio <---@---.---> Subject: Re: SC 2.0d29 freeze > >I noticed that Eudora adds an underscore in the file name where a space >should be. Put the prefs file I sent you into the Preferences folder >in the System Folder and make sure it is named "SuperCollider Prefs" >with no underscore. tried again. freeze. have reinstalled the program, too. > >You should also install OMS. it *is* installed...that's why I thought the message so strange.... andrew mckenzie ------------------------------ Date: Sun, 20 Dec 1998 18:45:59 EST From: BT011010@aol.com Subject: Re: Re: SC 2.0d29 freeze Hey guys.....I can't get any code to run on SC28 or 29: could someone tell me what these error messages are and how to correctly excute this or ANY program.....sorry for the lame question>>>> // These Unit Generators are instantiated by math operations on UGens UnaryOpUGen : UGen { var Subject: Re: Re: SC 2.0d29 freeze At 5:45 PM -0600 12/20/98, BT011010@aol.com wrote: >Hey guys.....I can't get any code to run on SC28 or 29: could someone tell me >what these error messages are and how to correctly excute this or ANY >program.....sorry for the lame question>>>> Everything in the Common folder are class definitions that are compiled upon startup. You do not execute those directly. Run things in the Examples folder. Read the READ-ME file for a start.. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 20 Dec 1998 23:02:17 -0600 From: antiorp@tezcat.com (=cw4t7abs) Subject: ReReSC20d29fr.!z >At 5:45 PM -0600 12/20/98, BT011010@aol.com wrote: >>Hey guys..... !kk + kk! Dr kk! + !kk wh!ch+evr 0+1 = pr!.fr.frz >I can't get any code to run on SC28 or 29: could someone tell me >>what these error messages are and how to correctly excute this or ANY >>program.....sorry for the lame question>>>> > >Everything in the Common folder are class definitions that are >compiled upon startup. You do not execute those directly. > >Run things in the Examples folder. Read the READ-ME file for a start.. james mccartney = dzkvrz t3k z|u|po|r|t = amuz|!|ng++ ltrntv - The surest way to corrupt 1 human is to instruct !t to hold in higher regard those who = think alike than those who = think differently. t3|k| zupo|r|t kmp|l|et \\ zoSSajet! = Common folder. do not execute directly. -nietzche. compiled upon startup. pla!+g!ar+!zm zavz t!me + zhouz !n!t+ja.t!v. Dr pla!+g!ar+!zm zhouz t!me + zavez !n!t+ja.t!v wh!ch+evr 0+1 = pr!.fr.frz error messages > Common folder ------------------------------ Date: Sun, 20 Dec 1998 23:43:56 -0500 From: "Chris Sattinger" <---@---.---> Subject: Re: SC 2.0d29 freeze >>SC 2.0d29 freezes on startup, getting as far as "compiling classes...". >>then nothing. cannot drop into macsbug, either. >> >>g3/250 powerbook, 192MB RAM, 8.5.1 !! I just tried today to install SC2d29 on my pitifully slow powerbook1400. Same thing ! locked up while compiling classes. I put the prefs file with the sound input = 0 in and then it could compile and run audio, but of course none in. Setting sound input=1 went back to locking up after compile. Also, playing back audio from SC on my powerbook has this jerking pulses of sound, not continual. I was having the same problem playing real audio, but most audio programs have worked fine. Is there any buffering or memory setting to try ? \ - - - - - - - - - \ \ \ \ \ - - - - - - - / / / / \ \ \ \ \ \ \ - - - - - / / / / / / | | | | | \ \ \ \ - - - / / / / | | | | | | | | | | | | | | \ - / | | | | | | | | | http://crucial-systems.com | | | | | | / / / / - - - \ \ \ \ | | | | | | / / / / / / / - - - - - \ \ \ \ \ \ \ / / / / / / - - - - - - - \ \ \ \ \ / / / / - - - - - - - - - \ \ \ - - - - - - - - - - ------------------------------ Date: Mon, 21 Dec 1998 08:33:22 +0100 From: Junger Joerg <---@---.---> Subject: System Freeze Hi, I'm running SC 2.029 on a G3 Powerbook 233/no backside cache/96 Mb, and I encountered sometimes a freeze in that the synth engine is running fine, but there is no way to get the computer accept any input. Which means, I have to reset it. This occurs when I'm running patches that use nearly all CPU power. Joerg ------------------------------ Date: Mon, 21 Dec 1998 08:35:44 +0100 From: Junger Joerg <---@---.---> Subject: File I/O Hi James, is there a possbility to save files with a contents other than audio, so that I could save something like a scorefile? Regards Joerg ------------------------------ Date: Mon, 21 Dec 1998 10:08:52 +0100 From: "Iannis Zannos" <---@---.---> Subject: Default arg for round message >From: James McCartney <---@---.---> >Date: Sun, 20 Dec 1998 8:43 PM >> >>Here is a bug: >>60.midicps.cpsmidi.frac.post; >>1 > >This is not really an error. It is just a result of rounding upon >print out. The value returned by frac is actually very close but >not quite 1.0. For example: By the way: Apparently the round message does not provide a default argument. Trying to round without providing the unit to round with may cause problems or crash. Suggest providing 1 as default rounding unit. round { arg unit = 1; ... }. Iannis Zannos SIM ------------------------------ Date: Mon, 21 Dec 1998 07:02:52 -0600 From: James McCartney <---@---.---> Subject: Re: System Freeze At 1:33 AM -0600 12/21/98, Junger Joerg wrote: >Hi, > >I'm running SC 2.029 on a G3 Powerbook 233/no backside cache/96 Mb, and I >encountered sometimes a freeze in that the synth engine is running fine, but >there is no way to get the computer accept any input. Which means, I have to >reset it. This occurs when I'm running patches that use nearly all CPU >power. Yes. This is unavoidable. If the interrupt level uses most of the CPU the user interface gets locked out. There's nothing that can be done about this on the Mac. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 21 Dec 1998 07:02:23 -0600 From: James McCartney <---@---.---> Subject: Re: File I/O At 1:35 AM -0600 12/21/98, Junger Joerg wrote: >Hi James, > >is there a possbility to save files with a contents other than audio, so >that I could save something like a scorefile? Yes. See the File class. I have not provided a complete Stream IO library as in Smalltalk, which I hope to do at some point. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 21 Dec 1998 12:28:56 -0500 From: "Chris Sattinger" <---@---.---> Subject: Re: Strange obscure GUI bugs ? or ...? >At 3:19 AM -0600 12/19/98, Chris Sattinger wrote: > >> 17.do({ arg i; >> pitch(i) = RangeView.new(w, Rect.newBy (30 + (i*20), 86, 16, 153 ), "", >>90.rand + 10, 90.rand + 10, 10, 100,1, 'linear') >> .rangeColor_(rgb(176,176,176)); >> }); > >You don't declare pitch anywhere. Actually I didn't post the whole example, sorry for the confusion. pitch was declared, but of course this is the wrong way to access it. > >Elements of arrays are assigned by sending the 'put' message to >the array. > >myArray.put(index, value); > >To access the elements of the array you send the 'at' message. > >myArray.at(index); Thank you ! That clears that up, but for what I was doing I now realize that pitch = Array.fill(17, { arg i; RangeView.new etc. etc. }); is the ticket. Well I'm getting there bit by bit. thank you for your help James ! > > > --- james mccartney james@audiosynth.com c c c c c c c c c c c c c cccccccccccccccccccccccc r r r r r r r r r r r r r rrrrrrrrrrrrrrrrrrrrrrrr u u u u u u u u u u u u u uuuuuuuuuuuuuuuuuuuuuu c c c c c c c c c c c c c cccccccccccccccccccccc i i i i i i i i i i i i i iiiiiiiiiiiiiiiiiiiiii a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaa a l l l l l l l l l l l l l llllllllllllllllllll l _________________________________________ :\\_______ http://crucial-systems.com __________________________________________ :\\_______ ------------------------------ Date: Tue, 22 Dec 1998 00:15:05 +0000 From: "David Cottle" <---@---.---> Subject: adsr control for pitch Hi, I've enjoyed so far the flexibility of SC. I'm trying to reproduce some simple examples taken from an analog text. If I understand correctly I can't use EnvGen or Env.new to control pitch. How would I create a time variant control of pitch which has multiple levels and times, similar to an envelope generator? ------------------------------ Date: Tue, 22 Dec 1998 02:20:09 -0600 From: James McCartney <---@---.---> Subject: Re: adsr control for pitch At 6:15 PM -0600 12/21/98, David Cottle wrote: >Hi, > >I've enjoyed so far the flexibility of SC. I'm trying to reproduce some >simple examples taken from an analog text. If I understand correctly I >can't use EnvGen or Env.new to control pitch. How would I create a time >variant control of pitch which has multiple levels and times, similar to an >envelope generator? Yes you can use EnvGen to control pitch. ( var env; env = Env.new([60,60,64,64,67,67,72,72],[1,0.2,1,0.2,1,0.2,1],'sine'); { SinOsc.ar(EnvGen.kr(env).midicps, 0, 0.2) }.play; ) // OR: ( var env; env = Env.new([60,60,64,64,67,67,72,72].midicps,[1,0.2,1,0.2,1,0.2,1],'sine'); { SinOsc.ar(EnvGen.kr(env), 0, 0.2) }.play; ) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Tue, 22 Dec 1998 10:12:31 +0000 From: "David Cottle" <---@---.---> Subject: Re: adsr control for pitch Hi, >Yes you can use EnvGen to control pitch. Thanks. I was doing it this way but getting errors, but it must have been my syntax. ------------------------------ Date: Tue, 22 Dec 1998 14:01:45 -0500 (EST) From: "Ronald J. Kuivila" <---@---.---> Subject: Re: minor SC and/or GuiUtils bugs Hi James, The code is in aconvoluted test state to track down the start up problem. The actual idea is that it switches two sound sources between two speakers whenever their levels cross and their derivatives are within a threshold. I just left it in that bizarre fashion to show that the code is returning the same values in both the cases where it reliably starts and where ti does not reliably start. RJK ------------------------------ Date: Tue, 22 Dec 1998 14:05:16 -0500 (EST) From: "Ronald J. Kuivila" <---@---.---> Subject: Re: minor SC and/or GuiUtils bugs I don't understand. 440 is "A", shouldn't cpsmidi return 69.00? RJK On Sun, 20 Dec 1998, James McCartney wrote: > At 12:17 PM -0600 12/20/98, Ronald J. Kuivila wrote: > > >Hi James: > > > > > >Here is a bug: > > >60.midicps.cpsmidi.frac.post; > > >1 > > > This is not really an error. It is just a result of rounding upon > > print out. The value returned by frac is actually very close but > > not quite 1.0. For example: > > > (1.0 - 60.midicps.cpsmidi.frac).postln; > > 1.71745e-10 > > > > --- james mccartney james@audiosynth.com > http://www.audiosynth.com > > If you have a PowerMac check out SuperCollider2, a real time synth > program: > > < > > > > > ------------------------------ Date: Tue, 22 Dec 1998 14:34:52 -0600 From: James McCartney <---@---.---> Subject: Re: minor SC and/or GuiUtils bugs At 1:05 PM -0600 12/22/98, Ronald J. Kuivila wrote: >I don't understand. 440 is "A", shouldn't cpsmidi return 69.00? > >RJK Floating point math is not exact. the formula for cps midi is : log2(freq * 0.0022727272727) * 12. + 69.; 0.0022727272727 == 1./440. and saves a division operation --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 22 Dec 1998 19:10:08 -0500 From: "Chris Sattinger" <---@---.---> Subject: Re: SC 2.0d29 freeze >>>hafler trio >>>SC 2.0d29 freezes on startup, getting as far as "compiling classes...". >>>then nothing. cannot drop into macsbug, either. >>> >>>g3/250 powerbook, 192MB RAM, 8.5.1 > > >chris sattinger > >I just tried today to install SC2d29 on my pitifully slow powerbook1400. >Same thing ! locked up while compiling classes. I put the prefs file with >the >sound input = 0 >in and >then it could compile and run audio, but of course none in. Setting sound >input=1 >went back to locking up after compile. > >Also, playing back audio from SC on my powerbook has this jerking pulses of >sound, not continual. I was having the same problem playing real audio, but >most audio programs have worked fine. Is there any buffering or memory >setting >to try ? I am still unable to run audio in on my powerbook, and the audio comes in fits and spurts. Any response from anyone highly appreciated. c c c c c c c c c c c c c cccccccccccccccccccccccc r r r r r r r r r r r r r rrrrrrrrrrrrrrrrrrrrrrrr u u u u u u u u u u u u u uuuuuuuuuuuuuuuuuuuuuu c c c c c c c c c c c c c cccccccccccccccccccccc i i i i i i i i i i i i i iiiiiiiiiiiiiiiiiiiiii a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaa a l l l l l l l l l l l l l llllllllllllllllllll l _________________________________________ :\\_______ http://crucial-systems.com __________________________________________ :\\_______ ------------------------------ Date: Tue, 22 Dec 1998 18:58:30 -0600 From: antiorp@tezcat.com (=cw4t7abs) Subject: Re: 29fr!sz >c c c c c c c c c c c c c cccccccccccccccccccccccc > >r r r r r r r r r r r r r rrrrrrrrrrrrrrrrrrrrrrrr > u u u u u u u u u u u u u uuuuuuuuuuuuuuuuuuuuuu > > c c c c c c c c c c c c c cccccccccccccccccccccc > > i i i i i i i i i i i i i iiiiiiiiiiiiiiiiiiiiii >a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaaaaaa a > >l l l l l l l l l l l l l llllllllllllllllllll l > >_________________________________________ :\\_______ > http://crucial-systems.com > >__________________________________________ :\\_______ http://m9ndfukc.com/cgi-bin/00-.cgi/?http://crucial-systems.com >I am still unable to run audio in on my powerbook, and the audio comes >in fits and spurts. Any response from anyone highly appreciated. r r r r r r r r r 0.9173583984375 c 14.246826171875 5.6890869140625 c 2.0745849609375 14.1326904296875 c 17.9345703125 7.6019287109375 c 4.1094970703125 4.317626953125 c 11.0931396484375 1.64306640625 c 17.17041015625 6.031494140625 c 0.43701171875 7.8216552734375 c 6.5313720703125 0.4986572265625 c 3.604736328125 2.4444580078125 c 1.4666748046875 11.0357666015625 c 1.982421875 1.724853515625 c 10.0830078125 15.9393310546875 c 16.7608642578125 18.79638671875 c 14.580078125 c 8.2110595703125 c 10.120849609375 c 18.4912109375 c 3.8177490234375 c 1.4910888671875 c 3.3990478515625 c 4.2730712890625 c 10.0604248046875 c 11.580810546875 c 14.129638671875 c 1.69189453125 c 6.77734375 c 12.9248046875 c 3.824462890625 c 12.73681640625 c 14.375 c 19.4256591796875 c 18.37158203125 c 5.462646484375 c 10.7269287109375 c 8.97705078125 c 12.92236328125 c ||||||||||| humanzukc++ ||||||||||| humanzukc++ r r r r r r r r r r r r r rrrrrrrrrrrrrrrrrr rrrrrr a9ff: r: command not found ||||||||||| humanzukc++ u u u u u u u u u u u u u uuuuuuuuuuuuuuuuu uuuuu a9ff: u: command not found ||||||||||| humanzukc++ ||||||||||| humanzukc++ c c c c c c c c c c c c c ccccccccccccccccc ccccc a9ff: c: command not found ||||||||||| humanzukc++ ||||||||||| humanzukc++ i i i i i i i i i i i i i iiiiiiiiiiiiiiiii iiiii a9ff: i: command not found ||||||||||| humanzukc++ a a a a a a a a a a a a a aaaaaaaaaaaaaaaaaa aaaa a a9ff: a: command not found ||||||||||| humanzukc++ ||||||||||| humanzukc++ l l l l l l l l l l l l l llllllllllllllllll ll l a9ff: l: command not found ||||||||||| humanzukc++ ||||||||||| humanzukc++ _________________________________________ :\ \_______ a9ff: _________________________________________: command not found ||||||||||| humanzukc++ http://humanzukc++.com a9ff: http://humanzukc++.com: No such file or directory ||||||||||| humanzukc++ ||||||||||| humanzukc++ __________________________________________ : \\_______ a9ff: __________________________________________: command not found ||||||||||| humanzukc++ ------------------------------ Date: Fri, 25 Dec 1998 14:40:49 -0400 From: kbabb@escape.com (Kenneth N Babb) Subject: 'Ah' Vowel Filter Instr - Work In Progress - any comments appreciated ( //Five Bandpass Fiters in Parallel //Stage 4 // Based on Karpen Filter Instrument, Dodge-Jerse 2nd ed. pg 197-198 Synth.scope({ var z, source, f1, f2, f3, f4, f5; var senv, f1env, f2env, f3env; z = OverlapTexture.ar({ senv = EnvGen.kr(Env.sine(7, 1)); source = Pulse.ar(170+20.0.rand,0.1, 6.1) * senv; //f1env = ?; //f2env = ?; //f3env = ?; f1 = BPF.ar(source, 80, 0.05) * EnvGen.kr(Env.sine(2 + 5.0.rand, 1)); f2 = BPF.ar(source, 730, 0.05) * EnvGen.kr(Env.sine(7 + 5.0.rand, 1)); f3 = BPF.ar(source, 1090, 0.05) * EnvGen.kr(Env.sine(5, 1)); f4 = BPF.ar(source, XLine.kr(1500, 2500, senv * 0.5), 0.05) * EnvGen.kr(Env.sine(5, 0.5)); f5 = BPF.ar(source, XLine.kr(1700, 3500, senv * 0.5), 0.05) * EnvGen.kr(Env.sine(5, 0.1)); Pan2.ar( Mix.ar([f1, f2 , f3, f4, f5]), 1.0.rand2) }, 5, 4, 5, 2); Normalizer.ar(z, 0.7, 0.1) }) ) ********************************************************************** ( //Five Bandpass Fiters in Parallel //Stage 3 // Based on Karpen Filter Instrument, Dodge-Jerse 2nd ed. pg 197-198 Synth.scope({ var z, source, f1, f2, f3, f4, f5; var senv, f1env, f2env, f3env; z = OverlapTexture.ar({ senv = EnvGen.kr(Env.sine(7, 1)); source = Pulse.ar(70+20.0.rand,0.1, 6.1) * senv; //f1env = ?; //f2env = ?; //f3env = ?; f1 = BPF.ar(source, 100, 0.05) * EnvGen.kr(Env.sine(2 + 5.0.rand, 1)); f2 = BPF.ar(source, 730, 0.05) * EnvGen.kr(Env.sine(7 + 5.0.rand, 1)); f3 = BPF.ar(source, 1090, 0.05) * EnvGen.kr(Env.sine(5, 1)); f4 = BPF.ar(source, XLine.kr(1500, 2500, senv * 0.5), 0.05) * EnvGen.kr(Env.sine(5, 0.5)); f5 = BPF.ar(source, XLine.kr(1700, 3500, senv * 0.5), 0.05) * EnvGen.kr(Env.sine(5, 0.1)); Pan2.ar( Mix.ar([f1, f2 , f3, f4, f5]), 1.0.rand2) }, 5, 4, 5, 2); (z) }) ) ------------------------------ Date: Sat, 26 Dec 1998 00:44:08 -0400 From: kbabb@escape.com (Kenneth N Babb) Subject: 'Ah' Vowel Filter Instr - Revised - Work In Progress - any comments appreciated ( //Five Bandpass Fiters in Parallel //Stage 5a // Based on Karpen Filter Instrument, Dodge-Jerse 2nd ed. pg 197-198 Synth.scope({ var z, source, f1, f2, f3, f4, f5, mix, n; var senv, f1env, f2env, f3env; z = OverlapTexture.ar({ senv = EnvGen.kr(Env.sine(3.0+4.0.rand, 0.3+0.5.rand)); source = Pulse.ar(170+20.0.rand,0.1, 6.1) * senv; //f1env = ?; //f2env = ?; //f3env = ?; f1 = BPF.ar(source, 80, 0.05) * EnvGen.kr(Env.sine(2 + 5.0.rand, 1)); f2 = BPF.ar(source, 730, 0.05) * EnvGen.kr(Env.sine(7 + 5.0.rand, 1)); f3 = BPF.ar(source, 1090, 0.05) * EnvGen.kr(Env.sine(5, 1)); f4 = BPF.ar(source, XLine.kr(1500, 2500, senv * 0.5), 0.05) * EnvGen.kr(Env.sine(5, 0.5)); f5 = BPF.ar(source, XLine.kr(1700, 3500, senv * 0.5), 0.05) * EnvGen.kr(Env.sine(5, 0.1)); n = 5; Mix.ar(Pan2.ar([f1, f2 , f3, f4, f5], Array.fill(n,{1.0.rand2}))) }, 7, 6, 5, 2); Normalizer.ar(z, 0.5, 0.1) }) ) ------------------------------ Date: Sat, 26 Dec 1998 00:47:23 -0600 From: antiorp@tezcat.com (=cw4t7abs) Subject: Re: 'zkrzt' knznnt Filter InIn str - - Work Progress Revised - comments !appreciated >//Five.k Bandpass Fiters in Parallel >//Stage aLpha6o >// Based on data http://www.m9ndfukc.org/data/m9ndfukc_propaganda.620.gif ------------------------------ Date: Sat, 26 Dec 1998 16:47:23 -0500 (EST) From: "Ronald J. Kuivila" <---@---.---> Subject: Re: minor SC and/or GuiUtils bugs Hi again James and Zannos, Using Guiutils, there are cases where a parameterwindow will not reliably start executing. The little start button gets X'ed in, but the number of active unit generators does not increase. So, it appears that the Tspawn in SoundManager is getting a trig message, but that the code is not actually being spawned.... I don't think the actual content of the DSP code is relevant, so I would be curious to know if anyone else gets similar symptoms using GUIutils. RJK ------------------------------ Date: Mon, 28 Dec 1998 22:02:37 +0000 From: Wolfgang Suppan <---@---.---> Subject: 2 SC-questions Hi James, (-1-) I have tried to write a functions, that calculate the difference (delta) between a new value and the stored (the old) or default(=0) value, -but it doesn't work. ///////////////////////////example1 (var fy,z; fy = { arg Val=0; var delta; {????????????????? delta} }; z = fy.value(5); z.value.postln; //should print 5 (5 - 0) z = fy.value(50); z.value.postln; //should print 45 (50 - 5) z = fy.value(150); z.value.postln; //should print 100 (150 - 50 ) /////////////////////////// By the way, would you recommend to learn C or Smalltalk to get more familiar with the SC-programming structure? (I have some experience in LISP) - ------- (-2-) Is it possible to modify this example-programm from the Synth.help file (with a stepwise changing of pitches) into a continuously glissando in different speeds? ///////////////////////////example2 ( { arg synth; var freqCtl; freqCtl = ControlIn.kr(800, 0); synth.repeat(0,{[0.125,0.5,1.3].choose}, // -> speed {freqCtl.source = 700.rand + 500}); //->random envelope points of the glissando SinOsc.ar(freqCtl, 0, 0.2); }.play ) ////////////////////////////// I thought about using Spawn and XLine. But it stops playing after the first glissando. Thank you for your assistance. Wolfgang ------------------------------ Date: Mon, 28 Dec 1998 16:36:37 -0800 (PST) From: "B. Battey" <---@---.---> Subject: Setting Random Seed I hope I'm not being redundant with any recent questions; I just joined the list today... How can I set the randSeed for SuperCollider sessions? I want to give a fixed seed that will impact all random functions operating in SuperCollider, including those called from within the UGENs - -- in particular, the time and pitch randomness in the pitch shifter. Rationale: I am setting up feedback processes that are highly sensitive to initial conditions. To refine these to get the results I need, I need to be able to provide a consistent random seed. Thanks, - -=Bret Battey ------------------------------ Date: Mon, 28 Dec 1998 22:10:30 -0600 From: James McCartney <---@---.---> Subject: Re: 2 SC-questions At 4:02 PM -0600 12/28/98, Wolfgang Suppan wrote: >Hi James, > > >(-1-) > > >I have tried to write a functions, that calculate the >difference (delta) between a new value and the stored >(the old) or default(=0) value, -but it doesn't work. > >///////////////////////////example1 > >(var fy,z; > >fy = { arg Val=0; > var delta; > > {????????????????? > delta} > }; > >z = fy.value(5); >z.value.postln; //should print 5 (5 - 0) >z = fy.value(50); >z.value.postln; //should print 45 (50 - 5) >z = fy.value(150); >z.value.postln; //should print 100 (150 - 50 >) ( var fy, z, val = 0; fy = { arg newval; var delta; delta = newval - val; val = newval; delta }; z = fy.value(5); z.postln; // 'value' is not needed here. z = fy.value(50); z.postln; z = fy.value(150); z.postln; ) If you want to be able to create multiple independant updateable values you need a nested closure: ( var newThing, a, b, z; newThing = { var val = 0; // each call to newThing creates a new context // return a function that accesses the 'val' in this context { arg newval; var delta; delta = newval - val; val = newval; delta } }; a = newThing.value; b = newThing.value; z = a.value(5); z.postln; // posts 5 z = b.value(7); z.postln; // posts 7 z = a.value(50); z.postln; // posts 45 (50 - 5) z = b.value(70); z.postln; // posts 63 (70 - 7) ) >/////////////////////////// > > > >By the way, would you recommend to learn C or Smalltalk to get more >familiar >with the SC-programming structure? (I have some experience in LISP) > >------- > > >(-2-) > > >Is it possible to modify this example-programm from the Synth.help file >(with a stepwise changing of pitches) into a continuously glissando >in different speeds? > > >///////////////////////////example2 >( >{ arg synth; > var freqCtl; > > freqCtl = ControlIn.kr(800, 0); > > synth.repeat(0,{[0.125,0.5,1.3].choose}, // -> speed > > {freqCtl.source = 700.rand + 500}); //->random envelope points of >the glissando > > SinOsc.ar(freqCtl, 0, 0.2); >}.play >) >////////////////////////////// > >I thought about using Spawn and XLine. But it stops playing >after the first glissando. I intend to add a message to Line and XLine to allow this. Since Synth tasks are a relatively recent addition, all the messages to support more event based things are not there yet. EnvGen can be triggered to do this but it is a bit complex. I will look at working up an example for that. One thing you can do is modulate the ControlIn lag time: ( { arg synth; var lagCtl, freqCtl; lagCtl = ControlIn.kr(0.1, 0); freqCtl = ControlIn.kr(800, lagCtl); synth.sched(0, { arg syn, now, task; var dur; dur = #[0.125, 0.5, 1.3].choose; lagCtl.source = dur; freqCtl.source = 700.rand + 500; syn.sched(dur, task); // reschedule task }); SinOsc.ar(freqCtl, 0, 0.2); }.play ) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Mon, 28 Dec 1998 22:16:26 -0600 From: James McCartney <---@---.---> Subject: Re: Setting Random Seed At 6:36 PM -0600 12/28/98, B. Battey wrote: >I hope I'm not being redundant with any recent questions; I just joined >the list today... > >How can I set the randSeed for SuperCollider sessions? > >I want to give a fixed seed that will impact all random functions >operating in SuperCollider, including those called from within the UGENs >-- in particular, the time and pitch randomness in the pitch shifter. > >Rationale: I am setting up feedback processes that are highly sensitive to >initial conditions. To refine these to get the results I need, I need to >be able to provide a consistent random seed. > >Thanks, >-=Bret Battey thisProcess.randSeed = 12345; // some integer seed This will not affect the noise generators such as WhiteNoise which use a random seed that is 32 x 32 bit words long. There is no means to reseed those. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 29 Dec 1998 11:34:02 +0100 From: Junger Joerg <---@---.---> Subject: Synth class question Hi list, I'm still trying to understand, how SC works. I must admit, my experiences in the world of OO reduce to some everyday blabla one can find in basic introduction books, so please be patient with me. I'm trying to find out about the Synth class and its properties. According to an earlier posting, there is only one top-level synth. What exactly does this mean? I can create instances of the synth class by calling the constructor new with a function, that returns a graph of unit generators, but I can only call the play method on one of this instances? How does schedule relate to this? The spawn ugen creates new instances of a synth, but on which level? Another question I have is, is there a possibility to send something like a stop message to a synth object? I was thinking, on how a very simple synth consisting of e.g. a sine oscillator could be terminated for example by a click on a stop button. Thank you in advance for any help! Joerg ------------------------------ Date: Tue, 29 Dec 1998 08:09:14 -0600 From: James McCartney <---@---.---> Subject: Re: Synth class question At 4:34 AM -0600 12/29/98, Junger Joerg wrote: >Hi list, > >I'm still trying to understand, how SC works. I must admit, my experiences >in the world of OO reduce to some everyday blabla one can find in basic >introduction books, so please be patient with me. > >I'm trying to find out about the Synth class and its properties. According >to an earlier posting, there is only one top-level synth. What exactly does >this mean? I can create instances of the synth class by calling the >constructor new with a function, that returns a graph of unit generators, >but I can only call the play method on one of this instances? How does >schedule relate to this? The spawn ugen creates new instances of a synth, >but on which level? You create one Synth directly which you play. Other synths are created for you by Spawn to run the spawned voices. The synths form a tree. The top-level synth is the one you created and played. A spawn creates children of the synth from which they were spawned. > >Another question I have is, is there a possibility to send something like a >stop message to a synth object? I was thinking, on how a very simple synth >consisting of e.g. a sine oscillator could be terminated for example by a >click on a stop button. A Synth terminates when its signal terminates. This is caused by multiplying the signal times a function with a finite duration such as an EnvGen, or Line. Synths spawned by Spawn must have finite durations in order that the voices get deallocated. A stop button could send the 'release' or 'steal' message to an EnvGen which would terminate the voice. The Pause unit generator can also be used to stop and start a process. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 29 Dec 1998 15:51:21 +0100 From: Junger Joerg <---@---.---> Subject: AW: Synth class question Hi James, thank you for the info so far. I must admit, that I still have some questions.... Do I get it right, when I asume that in the program I write, it makes no sense to call the new constructor for the Synth class several times with different synthesizer functions, as I am only allowed to send the play message to one of this synth objects (I tried this, but didn't succeed to apply the play method to two variables that I assgned a new synth object)? Regards Joerg > -----Ursprüngliche Nachricht----- > Von: James McCartney [SMTP:asynth@io.com] > Gesendet am: Dienstag, 29. Dezember 1998 15:09 > An: sc-users@lists.io.com > Betreff: Re: Synth class question > > At 4:34 AM -0600 12/29/98, Junger Joerg wrote: > >Hi list, > > > >I'm still trying to understand, how SC works. I must admit, my > experiences > >in the world of OO reduce to some everyday blabla one can find in basic > >introduction books, so please be patient with me. > > > >I'm trying to find out about the Synth class and its properties. > According > >to an earlier posting, there is only one top-level synth. What exactly > does > >this mean? I can create instances of the synth class by calling the > >constructor new with a function, that returns a graph of unit generators, > >but I can only call the play method on one of this instances? How does > >schedule relate to this? The spawn ugen creates new instances of a synth, > >but on which level? > > You create one Synth directly which you play. Other synths are created > for you by Spawn to run the spawned voices. The synths form a tree. > The top-level synth is the one you created and played. A spawn creates > children of the synth from which they were spawned. > > [Junger Joerg] usefull stuff deleted > --- james mccartney james@audiosynth.com > http://www.audiosynth.com > If you have a PowerMac check out SuperCollider2, a real time synth > program: > > > > ------------------------------ End of sc-users-digest V1 #22 *****************************