From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #289 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 Sunday, May 13 2001 Volume 01 : Number 289 ---------------------------------------------------------------------- Date: Fri, 11 May 2001 12:09:56 -0500 From: James McCartney <---@---.---> Subject: Re: pattern shifting on 5/6/01 4:48 AM, Jem Finer at jemfiner@waitrose.com wrote: > Hello, > > I'm wondering what the 'elegant' way to do this is : > > Patterns where, given a list of notes, one plays the first 3 a certain number > of times, then increments the starting index by a number - in this case 1. Pslide : ListPattern { // 'repeats' is the number of segments. // 'len' is the length of each segment. // 'step' is how far to step the start of each segment from previous. // 'start' is what index to start at. // indexing wraps around if goes past beginning or end. // step can be negative. var <>len, <>step; *new { arg list, repeats = 1, len = 3, step = 1, start = 0; ^super.new(list, repeats).len_(len).step_(step) } asStream { ^Routine({ arg inval; var pos, item; pos = start; repeats.do({ len.do({ arg j; item = list.wrapAt(pos + j); inval = item.embedInStream(inval); }); pos = pos + step; }); }); } } p = Pslide([1,2,3,4,5,6,7,8], 5, 3, 1); s = p.asStream; 16.do({ s.next.postln }); 1 2 3 2 3 4 3 4 5 4 5 6 5 6 7 nil - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Fri, 11 May 2001 12:13:40 -0500 From: James McCartney <---@---.---> Subject: Re: pattern shifting on 5/11/01 12:09 PM, James McCartney at asynth@io.com wrote: > var <>len, <>step; > *new { arg list, repeats = 1, len = 3, step = 1, start = 0; > ^super.new(list, repeats).len_(len).step_(step) > } Sorry, try again: Pslide : ListPattern { // 'repeats' is the number of segments. // 'len' is the length of each segment. // 'step' is how far to step the start of each segment from previous. // 'start' is what index to start at. // indexing wraps around if goes past beginning or end. // step can be negative. var <>len, <>step, <>start; *new { arg list, repeats = 1, len = 3, step = 1, start = 0; ^super.new(list, repeats).len_(len).step_(step).start_(start) } asStream { ^Routine({ arg inval; var pos, item; pos = start; repeats.do({ len.do({ arg j; item = list.wrapAt(pos + j); inval = item.embedInStream(inval); }); pos = pos + step; }); }); } } - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Fri, 11 May 2001 14:03:46 -0400 (EDT) From: "Ronald J. Kuivila" <---@---.---> Subject: DiskIn problem inside a Spawn Hi James, Did you get a chance to take a look at the problem I sent? It seems odd that putting DiskIn into a non-root synth makes difficulty. RJK ------------------------------ Date: Fri, 11 May 2001 14:39:22 -0400 From: "crucial" <---@---.---> Subject: Re: DiskIn problem inside a Spawn My whole SndFile system runs disk ins inside of several nested spawns. no problems from that. the usual problem i have when the cpu starts jumping is.....disk full. too much work trying to jump around the hard drive finding open sectors. >Hi James, > > Did you get a chance to take a look at the problem I sent? >It seems odd that putting DiskIn into a non-root synth makes difficulty. > >RJK > > > > _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Fri, 11 May 2001 14:13:50 -0500 From: James McCartney <---@---.---> Subject: Re: DiskIn problem inside a Spawn on 5/11/01 1:03 PM, Ronald J. Kuivila at rkuivila@mail.wesleyan.edu wrote: > Hi James, > > Did you get a chance to take a look at the problem I sent? > It seems odd that putting DiskIn into a non-root synth makes difficulty. > > RJK > > I can't reproduce it so far, but have not tried it on the laptop yet. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Fri, 11 May 2001 17:38:11 -0500 (CDT) From: "Jeremiah T. Isaacs" <---@---.---> Subject: Pswitch How do you get a pswitch to only go a certain number of times? Basically trying to get spontaneous forms of premade Ppars. Chorus : Verse-chosen-by-mouse : Chorus : different-Verse-chose-by-mouse My code is using the mouse to cause a pswitch to choose between 2 patterns. mx = MouseX.new(30, 50, 'linear'); mz = { if (mx.value < 40, {0.value}, {1.value}) }; pattern = Pseq([ somepattern, Pswitch([ Ppar([somepbind, someotherpbind]), Ppar([anotherpb, yetanotherpb]) ], Pfunc({ mz.value }) ) ], 4); but it just goes from somepattern to the pswitch, then the pswitch keeps on going. i even tried adding a ,1 after the pfunc, and although it doesnt spit up an error, it doesnt do what i want. I tried Pswitch1, but it then switches between the patterns immediately upon mouse changes, and stops once either of the patterns is done. which i could figure out a way to make that work mebbe.. (if you want to see all of the code i can post it, but that is sort of like showing everyone bad drawings... ) thanks - j - -- I don't care how sick you say its gonna get my big ass bubble has not busted yet because i feel, i feel fine. i feel fine. BV3G ------------------------------ Date: Fri, 11 May 2001 18:17:27 -0500 From: James McCartney <---@---.---> Subject: Re: Pswitch on 5/11/01 5:38 PM, Jeremiah T. Isaacs at jti@io.com wrote: Pswitch keeps running until the pattern supplying the index returns nil. > Pfunc({ mz.value }) ) This pattern has to return nil. mz.value is never nil though. If you used Pfuncn you could run N times. Or used some other finite length pattern. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sat, 12 May 2001 01:05:11 -0400 From: christian adam hresko <---@---.---> Subject: possibility... just thinking of some other ideas for plugins. i'm not a big sequencer fan, but i do on occasion use MOTU DP. it would be nice if audio could be routed to an SC patch. i should have the MOTU SDK in about a week. so i was wondering if anyone was also interested in this as a possible 'project.' i'm not sure if this is even possible because it might require more 'poking' around at the innards of SC than what's already allowed. i really have no idea. (james?) so... i'm either gonna start working on a SuperCollider Universal Serial Bus Interface (yes, it's pronounced 'scuzbi' i think i get super geek points for that...) or an SC 'wrapper' of some sort that will work with DP 2.7 and up. (if this is possible...) off and gone, christian - -- "realize that being copied means being alike" ------------------------------ Date: Sat, 12 May 2001 14:06:51 +0200 From: Julian Rohrhuber <---@---.---> Subject: Re: understanding assignment >on 5/9/01 1:10 PM, Julian Rohrhuber at sa6a014@uni-hamburg.de wrote: > >> How to know when "=" (which is no message?) will copy the >> reciever and when it will just create a pointer to it? >> What kind of system is behind that? >> >> I have listed a number of examples to test it. > >Semantically, it never copies. >Assignment always assigns a reference to the value returned by the >expression on the right hand side, never a copy of it.. >(The implementation is a black box, and what optimizations it uses have no >effect on the semantics.) > now it seems clear. I must have forgotten that a number is an Object, too. So when we say a = 1.2 it is like saying: a = SimpleNumber.new(8); a.postln; //(by the way: this line makes SC quit instantly) >In SuperCollider, Floats, Integers, Colors, Chars, nil, true, false, inf, >and some others, are copied by value, other objects are by pointer. so that is why SimpleNumber seems to have no message that modifies its "content". if one could say SimpleNumber.set(8.98), the first example would work, wouldn't it? //thought experiment a = 1.2; b = a; [a, b].postln; a.set(0); [a, b].postln; but how to know? I mean, of course we can always try it out. some primitives may internally modify the object or as well return a new instance. ------------------------------ Date: Sat, 12 May 2001 16:01:51 +0000 From: Jem Finer <---@---.---> Subject: pattern shifting Thanks Alberto and James for the solutions to the shifting problem . . . very instructive . . . Jem ------------------------------ Date: Sun, 13 May 2001 02:02:25 +0200 (CEST) From: integer@www.god-emil.dk Subject: [ot] [!nt] \n2+0\ nato.0+55 \\ siggraph b r \ s / o - nn / \ ! o / 2:15-4:00 PM on Thursday in room 404. - http://helios.siggraph.org/s2001/ 1001 !nd!go buterfl!ez d!zpersz!ng geo me tr!k l+e n n n n n n pre.konssept!n meeTz ver!f1kat!n. - Netochka Nezvanova - parambulat!ng u!ldl! \ NO PETZ 2 ZTEP ON f3.MASCHIN3NKUNST @www.eusocial.com 17.hzV.tRL.478 e | | +---------- | | < \\----------------+ | n2t | > e ------------------------------ Date: Sat, 12 May 2001 20:57:33 -0700 From: Mic Berends <---@---.---> Subject: Re: possibility... huge interest is indicated from self. great idea and good luck! unfortunately i don't presently have the SC skills required to assist... :( christian adam hresko wrote: > > just thinking of some other ideas for plugins. > > i'm not a big sequencer fan, but i do on occasion use MOTU DP. it would > be nice if audio could be routed to an SC patch. i should have the MOTU > SDK in about a week. so i was wondering if anyone was also interested > in this as a possible 'project.' i'm not sure if this is even possible > because it might require more 'poking' around at the innards of SC than > what's already allowed. i really have no idea. (james?) > > so... i'm either gonna start working on a SuperCollider Universal > Serial Bus Interface (yes, it's pronounced 'scuzbi' i think i get super > geek points for that...) or an SC 'wrapper' of some sort that will work > with DP 2.7 and up. (if this is possible...) > > off and gone, > > christian > > -- > "realize that being copied means being alike" - -- _____________________________________________________________________ Mic Berends Email: mic@ifx.com Interactive Effects http://www.ifx.com ------------------------------ Date: Sat, 12 May 2001 23:47:23 -0500 From: James McCartney <---@---.---> Subject: Re: possibility... on 5/12/01 12:05 AM, christian adam hresko at godpup@ix.netcom.com wrote: > i'm not sure if this is even possible > because it might require more 'poking' around at the innards of SC than > what's already allowed. What API are you going to use to get the audio? - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sun, 13 May 2001 02:44:46 -0400 From: christian adam hresko <---@---.---> Subject: Re: possibility... James McCartney wrote: > on 5/12/01 12:05 AM, christian adam hresko at godpup@ix.netcom.com wrote: > > > i'm not sure if this is even possible > > because it might require more 'poking' around at the innards of SC than > > what's already allowed. > > What API are you going to use to get the audio? > well, i'm assuming that MOTU is going to send me an API go to along with the DP 2.7 build. other than that, i was just going to use CodeWarrior and the MacOS Toobox. i've yet to look through all my ADC mailings to see what APIs are available for this type of task. since i've never done this before, that's about the best answer i can give. cheers, christian - -- "realize that being copied means being alike" ------------------------------ Date: Sun, 13 May 2001 03:15:52 -0400 From: christian adam hresko <---@---.---> Subject: Re: possibility...API James McCartney wrote: > on 5/12/01 12:05 AM, christian adam hresko at godpup@ix.netcom.com wrote: > > > i'm not sure if this is even possible > > because it might require more 'poking' around at the innards of SC than > > what's already allowed. > > What API are you going to use to get the audio? > oh yeah, i guess i'm gonna have to use the soundmanager API. and i'm assuming there's an API for ASIO drivers. (haven't checked yet) i still have a lot of research to do. i could 'jump ahead' and use the new OS X I/O kit and have everything carbonized. my first task is getting the tools i need. secondly i'll go over (and over and over) lots of code. then i'll start making some UML diagrams so that i don't get completely lost. that's my plan of attack for the time being. if you have any suggestions, please let me know. cheers, christian - -- "realize that being copied means being alike" ------------------------------ Date: Sun, 13 May 2001 12:23:09 +0200 From: Julian Rohrhuber <---@---.---> Subject: Re: [sc] New Stuff For You All >I am looking for other people interested in sound file editing / collage who >wish to contribute. > nice work ! I'm not sure if I'm wrong, but this line doesn't run: Spec.initClass; Spec is not to be found (Forgot to include?) I'll have a look, maybe I can contribute. Do you have some examples of usage? ------------------------------ Date: Sun, 13 May 2001 10:41:41 -0800 From: ben <---@---.---> Subject: switching effects hi i am using Pfx to send my Pbinds through and i would like to be able to switch which effect Pfx is using on the fly. so far the only thing i've come up with is like this: // GUI made up of arrays of sliders,numberboxes, etc. comber = { arg in,effectVol,delayTime,decayTime; CombA.ar(in,0.5,delayTime.value,decayTime.value,0.25,effectVol) }; reverb = { arg in,effectVol,delayTime,decayTime; 3.do({ in = AllpassN.ar(in,0.05,delayTime.value,decayTime.value,effectVol) }); in }; effectsBank = [comber,reverb]; //Pbind definitions etc.... out = Ppar([ Pbindf(\effectVol,echoVolSliderArray.at(0).kr, \decayTime,echoDecaySliderArray.at(0).kr, \delayTime,echoDelaySliderArray.at(0).kr, Pfx(a,effectsBank.at(whichFXNumberArray.at(0).kr))), a, Pbindf(\effectVol,echoVolSliderArray.at(1).kr, \decayTime,echoDecaySliderArray.at(1).kr, \delayTime,echoDelaySliderArray.at(1).kr, Pfx(b,effectsBank.at(whichFXNumberArray.at(1).kr))), b ]).asSpawn; out i actually have several problems with this. Pfx reads the initial value of whichFXNumberArray.at(x) no problem - but changing the value while running does nothing (i also tried .value and .poll instead of .kr). there has got to be a way to change which effect Pfx is using in real time... i just dont know how. also - notice that the Ppar contains 'a' (a Pbind) as well as Pbindf(etc,Pfx(a,etc)) otherwise the direct (that is un-Pfxed) version of 'a' will not be heard - just the effected signal (an echo isnt an echo without its source). doing it the way i did is a cpu intensive solution - is there a better way? i have tried re-incorporating the direct signal within the fx send but no luck. thanks and i hope that makes sense! peace ben - -- ben milstein mintyfresh www.soundmangle.com - www.elmconceptions.com > From: James McCartney <---@---.---> > Reply-To: sc-users@lists.io.com > Date: Thu, 10 May 2001 00:32:47 -0500 > To: > Subject: SCd5.1 now available. > > on 4/29/01 5:35 PM, James McCartney at asynth@io.com wrote: > > > > SC3d5.1 MacBinary: > > SC3d5.1 BinHex: > > > Sound out is fixed. > > Problem with updating preferences when SC is not on the boot disk is fixed. > > > --- james mccartney james@audiosynth.com > SuperCollider - a real time synthesis programming language for the PowerMac. > > > > ------------------------------ End of sc-users-digest V1 #289 ******************************