From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #323 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 Monday, July 16 2001 Volume 01 : Number 323 ---------------------------------------------------------------------- Date: Sat, 14 Jul 2001 15:40:26 +0200 From: Julian Rohrhuber <---@---.---> Subject: Re: tips > >this is basically a way to snoop around SC without doing a bunch of >command Ys and command Js. (or command H in some cases...) Iannis Zannos just published his class browser generator, which is really beautiful. http://swiki.hfbk.uni-hamburg.de:8080/MusicTechnology/307 ------------------------------ Date: Sat, 14 Jul 2001 19:12:44 +0200 From: heiko goelzer <---@---.---> Subject: [ot] sc keyword generator hi sc-users! it's just about time to enter your new serial number and you somehow didn't get it? then you should definitly check out my sc serial key generator. you may understand that i can't post the plain code to this list. a scplay compressed library is to big to post to the list as well. but you can find it on my site. place the Default.lib in your scplay folder, and launch scplay. you'll find the generator in the lib-menu. all the best heiko http://www.student.uni-oldenburg.de/heiko.goelzer/download/ ------------------------------ Date: Sat, 14 Jul 2001 23:46:04 -0400 From: felix@crucial-systems.com Subject: BUG string != sc2.2.10 \"a\" == \"a\" true \"a\" != \"a\" true this method is missing from String: != { arg aString; ^this.compare(aString) != 0 } ( object defines != as !== unless otherwise implemented) also: a=b a**2 = ab a**2 - b**2 = ab - b**2 (a-b)(a+b)=(a-b)b a+b=b 2a=a 2=1 _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Sat, 14 Jul 2001 23:32:53 -0500 From: James McCartney <---@---.---> Subject: Re: BUG string != on 7/14/01 10:46 PM, felix@crucial-systems.com at felix@crucial-systems.com wrote: > (a-b)(a+b)=(a-b)b divide by zero... > a+b=b - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sun, 15 Jul 2001 13:53:44 +0100 From: "fabrice mogini" <---@---.---> Subject: Real-time sequencer/patterns This probably a question for James I am working on a real-time sequencer for live control over patterns inside a Pbind. I use some windows to add values to an array. When the array is ready, I use it as a pattern that I can use from a Pswitch. Something really strange happens using this patch with my computer... _The first time I run it (and create a new pattern), the Pswitch is unable to call the new pattern and play it (but the new pattern was succesfully created and printed at the bottom of the page). _The second time I run it, the Pswitch calls the new pattern that I had created the last time I ran the code... The pattern I create at this stage can only be switched on, the next time I will run the code and use the Pswitch. Why? Is it a bug with my computer or (probably) with the code? ///////////////////////////////////////////////////////////////////// ( Synth.play({ var w, v, selectpattern, indexdur, patlist,entervalues, newpattern, sendfirstvalue, sendothervalues, confirmpattern, pat; v = GUIWindow.new("switch patterns", Rect.newBy(300,70,180, 50)); selectpattern = NumericalView.new(v, Rect.newBy(3, 20, 20, 20), "selectpattern",0, -1e+10, 1e+10, 0, 'linear'); indexdur = Pfunc({ selectpattern.value.asInteger }); w = GUIWindow.new("live programming", Rect.newBy(12, 60, 250, 184)); entervalues = NumericalView.new( w, Rect.newBy(13, 11, 56, 26), "entervalues", 0, -1e+10, 1e+10, 0, 'linear'); sendfirstvalue = ButtonView.new( w, Rect.newBy(14, 63, 128, 20), "sendfirstvalue", 0, 0, 1, 0, 'linear'); sendothervalues = ButtonView.new( w, Rect.newBy(14, 87, 128, 20), "sendothervalues", 0, 0, 1, 0, 'linear'); confirmpattern = ButtonView.new( w, Rect.newBy(14, 111, 128, 20), "confirmpattern", 0, 0, 1, 0, 'linear'); patlist = [ Pseq([0.2,0.4],1),p]; newpattern = [0]; sendfirstvalue.action_({arg i; newpattern = newpattern.put(0,entervalues.value); }); sendothervalues.action_({ newpattern = newpattern.add(entervalues.value); pat = newpattern; }); p = Pn(Plazy({ Pseq(pat,1)}),1); confirmpattern.action_({ pat.post; newpattern = [0]; }); Pbind( \dur, Pswitch(patlist, indexdur), \note, Pseq([1],inf), \ugenFunc, { arg freq, dur;SinOsc.ar(freq, 0, EnvGen.kr(Env.linen(0,dur,0.05),0.5));}; ).asSpawn(channels: 2); });) //////////////////////////////////////////////////////////////////////////// Note: _I will try to use List in the future to get reed of the useless code and Buttons (.add only instead of .put in the beginning). _I have tried to add new patterns to the array of existing patterns (patlist) so we can have many new patterns but it does not work yet...Do you know why? patlist = [ Pseq([0.2,0.4],1)]; // instead of patlist = [ Pseq([0.2,0.4],1),p]; newpattern = [0]; sendfirstvalue.action_({arg i; newpattern = newpattern.put(0,entervalues.value); }); sendothervalues.action_({ newpattern = newpattern.add(entervalues.value); pat = newpattern; }); p = Pn(Plazy({ Pseq(pat,1)}),1); confirmpattern.action_({ pat.post; newpattern = [0]; }); _Can you use a different kind of Window view that would accept numerical and strings(letters) data in the same time (to write some code live directly)? Cheers Fabrice Mogini ------------------------------ Date: Sun, 15 Jul 2001 08:50:24 -0500 From: James McCartney <---@---.---> Subject: Re: Real-time sequencer/patterns on 7/15/01 7:53 AM, fabrice mogini at fabrice.mogini@virgin.net wrote: > patlist = [ Pseq([0.2,0.4],1),p]; When referencing variable p, you are not putting the variable p into the array, you are putting the value that p has at that moment into the array. If you change the value of p after you build this array it will have no effect, because the array is already built. It does not 'remember' that the value was originally got from variable p. If you want to change the array, you need to use patlist.put(1, newvalue) The reason you see the change the second time you run it is that p is a global variable so when you build the list again it contains what was put in previously. In fact when you first build the list, p has not been assigned anything so it is nil. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sun, 15 Jul 2001 22:21:14 +0100 From: "fabrice mogini" <---@---.---> Subject: Re: Real-time sequencer/patterns Of course! it is even more illogical from me when I realise that I have used .Put somewhere else in the code anyway, so I should have a better idea of when it is crucial to use it again. Thank you Fabrice - ---------- >From: James McCartney <---@---.---> >To: >Subject: Re: Real-time sequencer/patterns >Date: Sun, Jul 15, 2001, 2:50 pm > > on 7/15/01 7:53 AM, fabrice mogini at fabrice.mogini@virgin.net wrote: > >> patlist = [ Pseq([0.2,0.4],1),p]; > > When referencing variable p, you are not putting the variable p into the > array, you are putting the value that p has at that moment into the array. > If you change the value of p after you build this array it will have no > effect, because the array is already built. It does not 'remember' that the > value was originally got from variable p. > > If you want to change the array, you need to use patlist.put(1, newvalue) > > The reason you see the change the second time you run it is that p is a > global variable so when you build the list again it contains what was put in > previously. > > In fact when you first build the list, p has not been assigned anything so > it is nil. > > --- james mccartney james@audiosynth.com > SuperCollider - a real time synthesis programming language for the PowerMac. > > > ------------------------------ Date: Sun, 15 Jul 2001 18:20:31 -0700 (PDT) From: Chris Brown <---@---.---> Subject: OSC bug w/ nested arrays? I've been building a network piece with a star network, in which one machine "the hub" keeps track of a list of other players who login (and out) with it. I wanted to pass this list from hub to players using a nested array of name, ip pairs. But nested arrays crash the receiver, according to my code below. Any thoughts why? // "hub" machine code, receives logins, responds with list of players ( var nodes, hubPort, loginPort, hubIP="1.2.3.0", loginIP="1.2.3.1"; OSCPort.closeAll; hubPort = OSCOutPort(57125, hubIP); loginPort = OSCOutPort(57125, loginIP); nodes = OSCNode.tree([ [\login, { arg node, name, ip; var newPort; name.postln; ip.postln; loginPort.send("/netPlayers",[ [1,2],[3,4] ]); // THIS CRASHES PLAYER MACHINE !! // loginPort.send("/netPlayers",[1,2,3,4]); // THIS DOES NOT CRASH }], [\netPlayers,{ arg node, playerList; // receive Array of Player,IP addr lists playerList.postln; // print the list }] ]); // open an input port OSCInPort(57125, nodes); ) // player machine code, sends login message with own ip, prints out returned list ( var nodes, hubPort, loginPort, hubIP="1.2.3.0", loginIP="1.2.3.1"; OSCPort.closeAll; hubPort = OSCOutPort(57125, hubIP); nodes = OSCNode.tree([ [\netPlayers,{ arg node, playerList; // receive Array of Player,IP addr lists playerList.postln; // print the list }] ]); // open an input port OSCInPort(57125, nodes); hubPort.send("/login","player1",loginIP); // login machine executes this line ) *************************************************** Chris Brown Assoc. Prof. of Music and Co-Director, Center for Contemporary Music (CCM) Mills College, Oakland, CA 94613 email: cbmus@mills.edu, phone: 510-430-2330; fax 510-430-3314 **************************************************** ------------------------------ Date: Sun, 15 Jul 2001 23:02:22 -0700 From: "tomonori yamasaki" <---@---.---> Subject: OT -mac expo NY meeting... christian, jo5_h, r and others who attend Mac world expo NY. are we meeting at Expo? it'll be fun to check out the new G4 or whatever they have, and say "hey there's no mic in! useless!" hehe. tomonori yamasaki ------------------------------ Date: Mon, 16 Jul 2001 00:12:13 -0800 From: Jeremy Zuckerman <---@---.---> Subject: isolating FFT bands I'm trying to write an instrument that isolates and affords control over specified FFT bands. I figure one would probably do this upon resynthesis. Has anyone done this? Any ideas? Thanks. jeremy ------------------------------ Date: Mon, 16 Jul 2001 00:31:45 -0700 From: "tomonori yamasaki" <---@---.---> Subject: Re: isolating FFT bands I too wonder how you "touch" the fft array -output of FFT is outputPloxy at S rate (when you do .a2sr), not usual array so we can't do fft.put(32, blah). or we can only do unary/binary operation + BinShift for fft? Can we stop the synth by .repeat and do array manipulation? or do we have to make our custom "non-realtime fft/ifft" routine to do, say, scramble the bands (like the vocoder in Nord, push "random" button and the bands amplitude goes to different bands output...) Plus, how can we use SROsc? the real/imag input for this is not usual real/imag, it's realBuffer and imagBuffer... what are they? - ---------- >From: Jeremy Zuckerman <---@---.---> >To: >Subject: isolating FFT bands >Date: Mon, Jul 16, 2001, 1:12 AM > > I'm trying to write an instrument that isolates and affords control over > specified FFT bands. I figure one would probably do this upon resynthesis. > Has anyone done this? Any ideas? Thanks. > jeremy ------------------------------ Date: Mon, 16 Jul 2001 03:58:09 -0400 From: christian adam hresko <---@---.---> Subject: Re: OT -mac expo NY meeting... tomonori yamasaki wrote: > christian, jo5_h, r and others who attend Mac world expo NY. are we meeting > at Expo? it'll be fun to check out the new G4 or whatever they have, and say > "hey there's no mic in! useless!" hehe. > > tomonori yamasaki so who's going to this, and for how long? i'm not sure which 'package' to choose (although i'm not spending 1000 bucks...) or how long i'll be there. (i forgot it was this week...) i can take a bus (or maybe drive since NYC isn't that far away) and meet somewhere. where are people staying? i need a place to crash, but i'd be willing to split the cost of a hotel or something. oh yeah, did you know steve jobs wanted to name the macintosh the 'bicycle' when it was first developed? (luckily that name got rejected...) cheers, christian ------------------------------ Date: Mon, 16 Jul 2001 09:02:31 +0000 From: Jem Finer <---@---.---> Subject: No audio in - time for action on 16/7/01 6:02, tomonori yamasaki at tyamasa@haywire.csuhayward.edu wrote: > christian, jo5_h, r and others who attend Mac world expo NY. are we meeting > at Expo? it'll be fun to check out the new G4 or whatever they have, and say > "hey there's no mic in! useless!" hehe. > > tomonori yamasaki > Seriously though this is a bit annoying . . . no it's actually fucking stupid. Having sponged out on super firewire interface only to find it eats more cpu than a million ugens I want my computers to have a line in - so I don't waste cpu on some wonderful yet greedy interface. Are there enough audio in addicts in the world to persuade apple to reintroduce them in the next batch of G4 laptops . . . I'm writing to my friends at apple . . . maybe its worth bombarding them, petition, street riots . . . Jem ------------------------------ Date: Mon, 16 Jul 2001 07:18:52 -0500 From: James McCartney <---@---.---> Subject: Re: OSC bug w/ nested arrays? on 7/15/01 8:20 PM, Chris Brown at cbmus@mills.edu wrote: > But nested arrays crash the receiver, > according to my code below. I'll have a look. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 16 Jul 2001 07:21:31 -0500 From: James McCartney <---@---.---> Subject: Re: isolating FFT bands on 7/16/01 3:12 AM, Jeremy Zuckerman at jzsc@dynamicimpulse.com wrote: > I'm trying to write an instrument that isolates and affords control over > specified FFT bands. I figure one would probably do this upon resynthesis. > Has anyone done this? Any ideas? Thanks. > jeremy > The efficient way to do this is to write an SC3 phase vocoder plugin. Doing bin manipulation in SC code is very slow. There is source code provided with SC3 for many such manipulators. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 16 Jul 2001 07:22:56 -0500 From: James McCartney <---@---.---> Subject: Re: isolating FFT bands on 7/16/01 2:31 AM, tomonori yamasaki at tyamasa@haywire.csuhayward.edu wrote: > scramble the > bands This ugen is provided in SC3 with source code. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 16 Jul 2001 12:46:42 -0400 From: christian adam hresko <---@---.---> Subject: Re: isolating FFT bands James McCartney wrote: > on 7/16/01 3:12 AM, Jeremy Zuckerman at jzsc@dynamicimpulse.com wrote: > > > I'm trying to write an instrument that isolates and affords control over > > specified FFT bands. I figure one would probably do this upon resynthesis. > > Has anyone done this? Any ideas? Thanks. > > jeremy > > > > The efficient way to do this is to write an SC3 phase vocoder plugin. > Doing bin manipulation in SC code is very slow. > There is source code provided with SC3 for many such manipulators. > i guess i'll have a go at this. (i'm trying to do this spectral delay thing...) the thing i still don't get (particularly with primitives...) is how the C++ plugin 'interacts' with SC. for example, say your plugin has variables x, y, and z. how are these accessed by SC, and how are they represented in the SC class? and if your plugin has various methods, how are these methods associated with SC? (do they need to 'share' the same name within the plugin and SC or what?) sorry if these seem like trivial and/or obvious questions. cheers, christian ------------------------------ End of sc-users-digest V1 #323 ******************************