From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #331 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 23 2001 Volume 01 : Number 331 ---------------------------------------------------------------------- Date: Sun, 22 Jul 2001 10:03:02 -0600 From: "David Cottle" <---@---.---> Subject: Re: Modulation > Attached is a class I made to show students > different modulation techniques. Very cool. How about a master volume control? Maybe I'll add it myself, but since you know the code already. - -- ><><><><><><><><><><><> David Cottle, computer music, contra, cottle@cerlsoundgroup.org "If you make it fool proof, fools will use it." -Programmer ------------------------------ Date: Sun, 22 Jul 2001 11:14:30 -0500 From: chris clepper <---@---.---> Subject: Re: Why are Macs better for music? >Why are Macs better for music? they might not be. but here are a couple of reasons you could (maybe) use in your argument: - - software. software. software. i.e you need the macOS for our beloved SC and that's reason enough. also Nato! - - the Mac has a pretty standardized set of hardward features, unlike getting say a Dell built with god knows what parts. if software works with a mac it works with a mac, and weird hardware issues are sort of rare. take a peek at the pd-list for some real hardware configuration nightmares. - - the mac is still built for people who are buying their first computer. i've done some tutrotials on have to use a mac for newbie and people learn the mac quick. - - OSX. seriously. i'm running jMax on it, and will have pd working soon. it's slow now, but it is BSD and open source. oh and it's the future :) i've had to make this argument before and it's really difficult to convince M$ users, especially on a price/performance level. easiest way is to sit someone down at a mac running some cool software and give a quick demo. if you do get stuck with a PC you only have one level-headed option: install linux. 'peace love and penguins' isn't that the new IBM ad? best of luck cgc ------------------------------ Date: Sun, 22 Jul 2001 14:15:55 -0400 From: christian adam hresko <---@---.---> Subject: Re: SC linked list James McCartney wrote: > LinkedList[123, 456, 789] > > has this structure: > > LinkedList > head tail > / \ > / \ > / \ > v v > Node Node Node > nil <- prev <- prev <- prev > next -> next -> next -> nil > obj obj obj > | | | > v v v > 123 456 789 > > > okay, this is what i have. (i suppose this is what everyone has...) my ascii art never looks quite as good as yours. thanks. cheers, christian ------------------------------ Date: Sun, 22 Jul 2001 18:00:24 -0400 From: "crucial" <---@---.---> Subject: Re: Pitch i'm seeing hasFreq as 1 or 0, with possibly some slippiness in the Scope display but if it is fractional: hasFreq.round(1.0) or: hasFreq > 0.9 // if you want to pass judgement >Thanks Christian, >what I actually want to do is to store either the pitch value >or 0 in the array >e.g. > > #f, p = Pitch.kr(x,440,60,500); > x = K2A.ar(p*f); this will slam the freq down to 0 every time there is no detectable note. you might do: Latch.kr( freq, hasFreq) which would lock you until the analysis is again trustworthy which is what i think james would have done to the whole output, but it limits our possiblities for nasty noises. > >but I have to be able to catch hasFreq as either 0 or 1 in this case, >value.floor won't do this since p is an OutPutProxy. (I guess I could >just test for 440. No big deal) > >paul > > >Paul Lansky wrote: > > > >> Apparently the hasFreq value of Pitch sometimes returns a > >> fractional value as the following apparently demonstrates > >> > >> z = Synth.collect({arg synth; > >> x = FSinOsc.ar(400); > >> #f, p = Pitch.kr(x,440,70,500); > >> x = K2A.ar(p.value.floor); > >> },1); > >> 3000.do({arg i; z.at(i).postln;}) > >> > >> What is the significance of the fraction and > >> how do I force it to be either 0 or 1? > >> thanks > >> > >> paul lansky > > > >i'm not sure where the fractions are coming from, but here's a 'patch' > >to produce only 0's and 1's: > > > > > >z = Synth.collect({arg synth; > > x = FSinOsc.ar(400); > > #f, p = Pitch.kr(x,440,70,500); > > x = K2A.ar(p.value.floor); > >},1); > >3000.do({arg i; z.at(i).asInteger.postln;}) > > > > > > > >cheers, > > > >christian > > > > _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Sun, 22 Jul 2001 18:14:50 -0400 From: "crucial" <---@---.---> Subject: Spawn and Env in sc3 in sc3 Env and TEnv (triggered) are separate classes, so I would assume that a Spawn triggers all enclosed EnvGens ( and their Envs ). that clears up a lot of confusion. ( ie, which envGens get triggered, which don't) as someone mentioned a while ago, they wanted a function to be called onRelease of the envelope. that could happen onRelease of the spawn, and would be useful for many things I think. there could also be a class of Spawn that does not trigger EnvGens _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Sun, 22 Jul 2001 18:15:44 -0500 From: James McCartney <---@---.---> Subject: Re: Pitch on 7/21/01 7:10 PM, Paul Lansky at paul@silvertone.Princeton.EDU wrote: > > Apparently the hasFreq value of Pitch sometimes returns a > fractional value as the following apparently demonstrates > > z = Synth.collect({arg synth; > x = FSinOsc.ar(400); > #f, p = Pitch.kr(x,440,70,500); > x = K2A.ar(p.value.floor); > },1); > 3000.do({arg i; z.at(i).postln;}) > > What is the significance of the fraction and > how do I force it to be either 0 or 1? > thanks > hasFreq can only be zero or one. The fractions you see are the linear interpolation caused by K2A. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 01:07:33 -0400 From: Lee Azzarello <---@---.---> Subject: Re: Why are Macs better for music? on 7/22/01 4:17 AM, christian adam hresko at godpup@ix.netcom.com wrote: > given enough time, SuperCollider could be ported to a PC (windows). and i'm > guessing most if not all of the capabilities would remain. the 'argument' is > macs are no longer built for music. according to steve jobs, apples are built > for the 'ultimate buying experience.' Add to that the fact that it's *vastly* more difficult to get Linux properly configured on a Apple hardware than PC hardware and the 'ultimate buying experience' seems a lot less ultimate. I use MacOS 9 for three reasons. I've been using it all my life and I know how, it's not made by Microsoft, and the mouse refresh rate is higher than on Windows. It's funny, because the mouse refresh thing is probably the my biggest problem with Windows. Anybody else notice this? - -------------------- - -l[e^2] *old { ^this.shouldNotImplement(thisMethod) } http://eds.org/~lee ------------------------------ Date: Mon, 23 Jul 2001 01:35:46 -0400 From: Lee Azzarello <---@---.---> Subject: Mattel Power Glove Yup, you heard me right, the Mattel Power Glove. Me and a friend are starting a 5 piece band that performs live versions of old 8-bit Nintendo game theme songs. He has an original Power Glove. I'm looking for any resources I can find on how to hook this sucker up to a computer to use it as a control interface. I have tracked down three names of devices that convert the nintendo controller port to a macintosh ADB or Serial port. There is the GoldBrick, PGSI, and Menelli Box. Unfortunately most of this information is very old. So if any one has advice on how I can get the data out of the glove and into one of my Macintoshes, I'd be forever grateful. Also, I have some basic soldering skills, and I'm not opposed to making a converter box myself if I could find some plans... I'm hitting the MAX/MSP list too. - -------------------- - -l[e^2] *old { ^this.shouldNotImplement(thisMethod) } http://eds.org/~lee ------------------------------ Date: Mon, 23 Jul 2001 09:24:44 +0200 From: "sfogar@inwind.it"<---@---.---> Subject: Ri:Mattel Power Glove Please keep me informed too, I own one of these beauties but never succeded in connecting it to my Mac (or Pc) ... But I think that the only chance is to build a box to connect it to a serial interface (Menelli Box ?). Cheers Alessandro Fogar > Yup, you heard me right, the Mattel Power Glove. Me and a friend are > starting a 5 piece band that performs live versions of old 8-bit Nintendo > game theme songs. He has an original Power Glove. I'm looking for any > resources I can find on how to hook this sucker up to a computer to use it > as a control interface. > > I have tracked down three names of devices that convert the nintendo > controller port to a macintosh ADB or Serial port. There is the GoldBrick, > PGSI, and Menelli Box. Unfortunately most of this information is very old. > So if any one has advice on how I can get the data out of the glove and into > one of my Macintoshes, I'd be forever grateful. Also, I have some basic > soldering skills, and I'm not opposed to making a converter box myself if I > could find some plans... > > I'm hitting the MAX/MSP list too. > > -------------------- > -l[e^2] > *old { ^this.shouldNotImplement(thisMethod) } > > http://eds.org/~lee > > ------------------------------ Date: Mon, 23 Jul 2001 01:08:22 -0700 From: "tomonori yamasaki" <---@---.---> Subject: Re: Ri:Mattel Power Glove try MIDI. versatile. anyway. check this page: http://rich12345.tripod.com/OPHP/powerglove.html - ---------- >From: "sfogar@inwind.it"<---@---.---> >To: sc-users@lists.io.com >Subject: Ri:Mattel Power Glove >Date: Mon, Jul 23, 2001, 12:24 AM > > Please keep me informed too, I own one of these beauties but never succeded > in connecting it to my Mac (or Pc) ... > > But I think that the only chance is to build a box to connect it to a > serial interface (Menelli Box ?). > > Cheers > > Alessandro Fogar > >> Yup, you heard me right, the Mattel Power Glove. Me and a friend are >> starting a 5 piece band that performs live versions of old 8-bit Nintendo >> game theme songs. He has an original Power Glove. I'm looking for any >> resources I can find on how to hook this sucker up to a computer to use it >> as a control interface. >> >> I have tracked down three names of devices that convert the nintendo >> controller port to a macintosh ADB or Serial port. There is the GoldBrick, >> PGSI, and Menelli Box. Unfortunately most of this information is very old. >> So if any one has advice on how I can get the data out of the glove and into >> one of my Macintoshes, I'd be forever grateful. Also, I have some basic >> soldering skills, and I'm not opposed to making a converter box myself if I >> could find some plans... >> >> I'm hitting the MAX/MSP list too. >> >> -------------------- >> -l[e^2] >> *old { ^this.shouldNotImplement(thisMethod) } >> >> http://eds.org/~lee >> >> > ------------------------------ Date: Mon, 23 Jul 2001 10:39:18 +0200 From: Maurizio Giri <---@---.---> Subject: Re: version 2 bugs >I am going to release a version 2 bug fix soon. >If you have a pet bug, make it known. > The definition of the task method in Synth.sc is: task { arg start, func, stackSize = 512, seed = -1; var task; task = Task(func, this, stackSize, seed); this.sched(start.value, { task.next }); } while it should be: task { arg start, func, stackSize = 512, seed = -1; var task; task = Task(func, this, start, stackSize, seed); this.sched(start.value, { task.next }); } Maurizio ------------------------------ Date: Mon, 23 Jul 2001 01:56:25 -0700 From: "tomonori yamasaki" <---@---.---> Subject: Re: SC2 bugs/requests when you close a file, the dialog's short cut is not so standard: right now: "Don't save" <- command+"." << I lost some patches because of this. "Save" <- enter which should be: "Don't save" <- command+"D" << this is not a standard but many software do have this. "cancel" <- command+"." "save" <- enter what do you guys think? ------------------------------ Date: Mon, 23 Jul 2001 11:00:03 +0200 (CEST) From: Giorgio Robino <---@---.---> Subject: Re: Patches Hello James, > I recently lent some of my old early 70s space music LPs to a > friend. > While getting them out, I listened to them again for the first > time in > years. This and the previous patch are along those lines - back > when > everything was done with two vcs3s and a mellotron.. thank-you for you patches-gifts, everytime beatiful! These are for me a stimulus for modify and re-put in to the list (as soon I will produce proposable modifications). I also invite all SC user to propose the personal patches :) Giorgio - --- Giorgio Robino http://www.giorgiorobino.com , mailto:giorgio.robino@giorgiorobino.com - --- DEEP LISTENINGS "ascolti profondi, the new music magazine" (rivista trimestrale di cultura musicale), vendita per solo per corrispondenza. Rivolgersi a Gianluigi Gasparetti, mailto:deeplist@tin.it - --- SUPERCOLLIDER is an Object Oriented Programming Environment for real-time audio and video processing. It is one of the finest and most versatile environments for signal processing and especially for creating music applications of all kinds, such as complete compositions, interactive performances, installations etc. It runs on Macintosh Power PC computers. The author of SuperCollider is James McCartney. He maintains a site at: http://www.audiosynth.com ------------------------------ Date: Sun, 22 Jul 2001 21:58:35 +0100 From: Andy Wilson <---@---.---> Subject: Re: Why are Macs better for music? I don't believe the mac is any better as a music machine. There are lots of reasons you might prefer a mac - familiarity, simplicity, elegance of UI, etc., but for price, availability of software and a hundred other reasons you might be better off with intel machines running linux. Personally I bought a mac purely and simply because I wanted to run supercollider and it turned out that the rumours of a forthcoming port to linux were 'exaggerated'. Has anyone tried the carrilon pc's (http://213.219.49.126/) ? Too expensive for a school, but nice sounding audio machines...... On 22/7/01 7:06 am, "David Cottle" wrote: > Hi, > > Don't laugh, I'm serious. I'm trying to talk a local music school into > putting Macs in their labs. I've only been able to argue that the best music > software is written for mac, that every professional I know uses them, and > that as far as I understand they are built for music. But I don't know the > technical details. So help me out. Why are Macs better for music? - -- { andy wilson << managing director << LShift << www.lshift.net } { www.andyw.com && www.faust-pages.com && www.directorxml.com } ------------------------------ Date: Mon, 23 Jul 2001 12:11:43 +0100 From: Ioannis Zannos <---@---.---> Subject: Re: version 2 bugs James McCartney wrote: > > on 7/21/01 8:37 AM, David Cottle at cottle@cerlsoundgroup.org wrote: > > > that will display which line number the cursor is currently on. (Or what > > would be really cool, but difficult to implement; shaded line numbers at the > > left of each line.) > > sorry. open the file in BBEdit. That brings me on to a secondary wish: Would be great if text files created/written by SC had as creator BBedit (r*ch) rather than CodeWarrior, as BBedit Lite is the more common text editor tool. Or not? Iannis Z. ------------------------------ Date: Mon, 23 Jul 2001 08:34:36 -0500 From: James McCartney <---@---.---> Subject: Re: version 2 bugs on 7/23/01 3:39 AM, Maurizio Giri at m.giri@agora.stm.it wrote: >> I am going to release a version 2 bug fix soon. >> If you have a pet bug, make it known. >> > > The definition of the task method in Synth.sc is: > > task { arg start, func, stackSize = 512, seed = -1; > var task; > task = Task(func, this, stackSize, seed); > this.sched(start.value, { task.next }); > } > > while it should be: > > task { arg start, func, stackSize = 512, seed = -1; > var task; > task = Task(func, this, start, stackSize, seed); > this.sched(start.value, { task.next }); > } > > > > Maurizio > Actually it should just be : task { arg start, func, stackSize = 512, seed = -1; Task(func, this, start, stackSize, seed); } - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 07:46:23 -0600 From: David Cottle <---@---.---> Subject: Re: SC2 bugs/requests > when you close a file, the dialog's short cut is not so standard: > > right now: > "Don't save" <- command+"." << I lost some patches because of this. > "Save" <- enter > > which should be: > "Don't save" <- command+"D" << this is not a standard but many software do > have this. > "cancel" <- command+"." > "save" <- enter > > what do you guys think? I concur. I've lost some work because I hit cancel and the page closed without saving. - -- ><><><><><><><><><><><> David Cottle, computer music, contra, cottle@cerlsoundgroup.org "But what will never be overcome are the diminishing returns inherent in mechanical reproduction. When the music ceases to be fresh for us in this sense, it ceases to be alive, and we can say in the most real sense that it ceases to be music." -Roger Sessions ------------------------------ Date: Mon, 23 Jul 2001 15:49:04 +0100 From: Ioannis Zannos <---@---.---> Subject: Re: version 2 bugs RawArray::collect Perhaps RawArray::collect should be different than Collection:collect, which goes: collect { arg function; var i, res; res = this.species.new(this.size); this.do({ arg elem, i; res.add(function.value(elem, i)) }) ^res; } For RawArray, it might be better to collect in Array. collect { arg function; var i, res; res = ArrayedCollection.new(this.size); this.do({ arg elem, i; res.add(function.value(elem, i)) }) ^res; } This is because in many useful situations you may want to collect some other type than the RawArray as a result of the collect's function operation. I ran into this when writing my Class Doc code, in SC 3, as for example: Class.instVarNames.collect({ arg n; n.asString }) This works in SC2 coincidentally, because Class.instVarNames is an Array, but not in SC3, where it is a SymbolArray. Other similar situations may also be cumbersome in SC2. Facit: It all depends on your concept of what method 'collect' is. My idea is, for Collection, Set, SequenceableCollection, etc. the species bound collect is right, because these do not type-bind their elements, but for RawArray it it should be more generic, because RawArray type binds its elements. IZ ------------------------------ Date: Mon, 23 Jul 2001 08:53:52 -0500 From: James McCartney <---@---.---> Subject: Re: SC2 bugs/requests on 7/23/01 3:56 AM, tomonori yamasaki at tyamasa@haywire.csuhayward.edu wrote: > when you close a file, the dialog's short cut is not so standard: Since I don't supply a filter proc what you get is Apple's standard behaviour. I will supply a filter proc to do what you want though. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 16:03:01 +0200 From: Fredrik Olofsson <---@---.---> Subject: missing issues of sc-digest at ftp://ftp.io.com/pub/mailing-lists/sc-users-digest/ v01.n192 <-error v01.n262 <-error v01.n270 v01.n271 v01.n272 v01.n273 can anyone please upload these? /fredrik ------------------------------ Date: Mon, 23 Jul 2001 16:18:23 +0100 From: Ioannis Zannos <---@---.---> Subject: Re: version 2 bugs Sorry, I meant: collect { arg function; var i, res; res = Array.new(this.size); this.do({ arg elem, i; res.add(function.value(elem, i)) }) ^res; } ArrayedCollection does like .add , I think. It stays empty. Ioannis Zannos wrote: > > RawArray::collect > > Perhaps RawArray::collect should be different > than Collection:collect, which goes: > > collect { arg function; > var i, res; > res = this.species.new(this.size); > this.do({ arg elem, i; res.add(function.value(elem, i)) }) > ^res; > } > > For RawArray, it might be better to collect in Array. > > collect { arg function; > var i, res; > res = ArrayedCollection.new(this.size); > this.do({ arg elem, i; res.add(function.value(elem, i)) }) > ^res; > } > > This is because in many useful situations you may > want to collect some other type than the RawArray > as a result of the collect's function operation. > > I ran into this when writing my Class Doc code, > in SC 3, as for example: > > Class.instVarNames.collect({ arg n; n.asString }) > > This works in SC2 coincidentally, because > Class.instVarNames is an Array, but not in SC3, > where it is a SymbolArray. Other similar situations > may also be cumbersome in SC2. > > Facit: It all depends on your concept of what method 'collect' > is. My idea is, for Collection, Set, SequenceableCollection, > etc. the species bound collect is right, because these > do not type-bind their elements, but for RawArray > it it should be more generic, because RawArray type > binds its elements. > > IZ ------------------------------ Date: Mon, 23 Jul 2001 09:53:19 -0500 From: James McCartney <---@---.---> Subject: Re: missing issues of sc-digest OK I will try and replace these. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 08:07:43 -0700 (PDT) From: Chad Kirby <---@---.---> Subject: Re: SC2 bugs/requests On Mon, 23 Jul 2001 at 01:56, tomonori yamasaki wrote: > when you close a file, the dialog's short cut is not so standard: > > which should be: > "Don't save" <- command+"D" << this is not a standard but many software do > have this. > "cancel" <- command+"." > "save" <- enter > > what do you guys think? I agree. Don't save s/b cmd+d || d Cancel s/b cmd+. || esc Save s/b return || enter Chad Kirby // Technical Coordinator for Digital Arts // CARTAH ckirby@u.washington.edu // 206.295.3592 ________ Forgive me my nonsense as I also forgive the nonsense of those who think they talk sense. Robert Frost (1874-1963) ------------------------------ Date: Mon, 23 Jul 2001 10:26:53 -0500 From: James McCartney <---@---.---> Subject: Re: version 2 bugs on 7/23/01 10:18 AM, Ioannis Zannos at iani@sim.spk-berlin.de wrote: > collect { arg function; > var i, res; > res = Array.new(this.size); > this.do({ arg elem, i; res.add(function.value(elem, i)) }) > ^res; > } then you'd break String operations that used collect as a filter. perhaps some different solution. Add class as an optional parameter to collect, default will act as now. make a separate collectArray method. make a separate collectInto method with the class as a parameter. I think maybe the third one is best. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 18:58:29 +0200 From: Jesper El=?ISO-8859-1?B?6Q==?=n <---@---.---> Subject: Re: version 2 bugs Hi! James, is it to much work to get BPEnvView implemented? Jesper ------------------------------ Date: Mon, 23 Jul 2001 13:03:15 -0400 From: rkuivila@mail.wesleyan.edu (Ron Kuivila) Subject: Re: SC2 requests Hi James, How about a simple FIFO for event oriented MIDI input? (It might filter out system commands and only give key up/down, control, pressure, channel pressure, patch and bend info.) As in: list = MIDI.popReceivedCommands; RJK ------------------------------ Date: Mon, 23 Jul 2001 13:07:34 -0400 From: rkuivila@mail.wesleyan.edu (Ron Kuivila) Subject: Re: version 2 bugs Hear, hear! Perhaps 'collectAs' would be more idiomatic, echoing asList, asString, etc. While you are at it, could we have a collect method for Integer? As in: x = 6.collect({ arg i ; i }); x.post; [0,1,2,3,4,5] RJK >then you'd break String operations that used collect as a filter. >perhaps some different solution. > Add class as an optional parameter to collect, default will act as now. > make a separate collectArray method. > make a separate collectInto method with the class as a parameter. > >I think maybe the third one is best. > >--- james mccartney james@audiosynth.com >SuperCollider - a real time synthesis programming language for the PowerMac. > ------------------------------ Date: Mon, 23 Jul 2001 12:17:28 -0500 From: James McCartney <---@---.---> Subject: Re: SC2 requests on 7/23/01 12:03 PM, Ron Kuivila at rkuivila@mail.wesleyan.edu wrote: > Hi James, > > How about a simple FIFO for event oriented MIDI input? (It might filter > out system commands and only give key up/down, control, pressure, > channel pressure, patch and bend info.) > > As in: > > list = MIDI.popReceivedCommands; > > > RJK > > I'm fixing bugs, not adding features. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 12:21:22 -0500 From: James McCartney <---@---.---> Subject: Re: version 2 bugs on 7/23/01 12:07 PM, Ron Kuivila at rkuivila@mail.wesleyan.edu wrote: > Hear, hear! > Perhaps 'collectAs' would be more idiomatic, echoing asList, asString, etc. > While you are at it, could we have a collect method for Integer? As in: > > x = 6.collect({ arg i ; i }); > x.post; Interval(0, 5).collect({ arg i; i.squared }).postln - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 22:07:08 -0700 From: nicolocollinsi <---@---.---> Subject: breakbeat5 Hi all, and thanks james for the multi tempo solution. I've cleaned up all my automatic breakbeat cutting code and based it on a spawn, rather than the sched of the previously released version 3. I've called this BreakBeat5, since I like odd prime numbers. I've added a new help file, with a UI that lets you try out changing all the parameters to the algorithm. BB5 should follow tempo changes in the enclosing synth, and has extra parameters into the algorithm, like a choice of random or linear offsetting, multi repeat level, blah blah blah. Hope this gives some people some fun! You can get a ZIP with the 2 classes and 2 help files from http://www.axp.mdx.ac.uk/~nicholas15 (or just go via audiosynth.com and Nick Collins link) I guess one thing I should get round to doing is cheerful versions that doesn't use the auxilliary SoundFiles class. Mono with Pan ugen and n channel file versions. But the current version allows you to swap the source breakbeat/whatever audio on the fly...and is very convenient when running more than one BreakBeat5 object at once in synced tempo. The other thing is to do a version (call it BB7) that runs on the AudioIn, repeating where appropriate. I'm sure I'll ask help from the list later when I get stuck, or if someone implements it faster than me, hooray. I'd appreciate any comments or grumbles, Cheers Nick Collins ------------------------------ Date: Mon, 23 Jul 2001 17:24:28 -0400 From: "crucial" <---@---.---> Subject: Re: Ri:Mattel Power Glove yes, my friend has a power glove taken apart. we apply it to his face and he makes contortions. he's going to come over and we hook it to SC. we already did some recordings torturing small toys. >try MIDI. versatile. > >anyway. check this page: >http://rich12345.tripod.com/OPHP/powerglove.html _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Mon, 23 Jul 2001 17:22:41 -0400 From: "crucial" <---@---.---> Subject: Re: Why are Macs better for music? From a programmers perspective, the APIs for windows and microsoft stuff in general is really offensive horrible and just invites bugs. anytime anything goes wrong you either have to completely reinstall the system, or download some damn service pack that puts more inscrutable bandaids to change the old bandaids. (even a problem with access / office 95vs98 compatibility resulted in unavoidable forced reinstalling. the entire OS was rendered inoperable.) for real time programming, w98 is a horrible pain to write code for. nt2k has even worse latency, and more garbage. its like trying to build a nice little hut on top of a huge stinking garbage heap. things tend to topple over. not that mac has always been perfect. osx under the hood is looking very very good. expect more stable applications and more sharing/ cross porting between the unices. _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Mon, 23 Jul 2001 17:25:52 -0400 From: "crucial" <---@---.---> Subject: Re: SC2 bugs/requests i actually like this, though its non-standard. it lets you quickly make yes/no decisions. its probably worse because i try to do it in other apps now. >on 7/23/01 3:56 AM, tomonori yamasaki at tyamasa@haywire.csuhayward.edu >wrote: > >> when you close a file, the dialog's short cut is not so standard: > >Since I don't supply a filter proc what you get is Apple's standard >behaviour. >I will supply a filter proc to do what you want though. > >--- james mccartney james@audiosynth.com >SuperCollider - a real time synthesis programming language for the PowerMac. > > > > > _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Mon, 23 Jul 2001 18:14:29 EDT From: JoJoBuBu@aol.com Subject: Re: Mattel Power Glove >Yup, you heard me right, the Mattel Power Glove. Me >and a friend are >starting a 5 piece band that performs live versions of >old 8-bit Nintendo >game theme songs. He has an original Power Glove. I'm >looking for any >resources I can find on how to hook this sucker up to >a computer to use it >as a control interface. Unfortunately I cant be any help with getting it to work with OS. I would however suggest contacting some people in the emulation community. There is a GIGANTIC community of people that do emulation and I'm sure some of them could lead you in the right direction for creating or purchasing a converter for this device Theres tons of sites with info, but my personal favorite is www.emuhq.com Look around for some of the nintendo emulator authors I would be surprised if they couldn't help. Now a question out of curiosity. What are you doing with the old music? Theres a community of people that remake this type of old music as well, although theres some controversy with copyright. I've never seen people do live remakes of it though... Andy ------------------------------ Date: Mon, 23 Jul 2001 21:19:46 -0400 From: christian adam hresko <---@---.---> Subject: Re: breakbeat5 nicolocollinsi wrote: > Hi all, > and thanks james for the multi tempo solution. > > I've cleaned up all my automatic breakbeat cutting code and based it on > a spawn, rather than the sched of the previously released version 3. > I've called this BreakBeat5, since I like odd prime numbers. I've added > other than 2, what are the even prime numbers? cheers, christian ------------------------------ Date: Mon, 23 Jul 2001 21:37:39 -0400 From: "bsom@bsom.org" <---@---.---> Subject: RE: Re: breakbeat5 other than 2, what are the even prime numbers? ',',' I was going to say something about that myself, but I didn't want to look like a jerk. :-) //bsom - -------------------------------------------------------------------- Mail2Web - Check your email from the web at http://www.mail2web.com/ . ------------------------------ Date: Tue, 24 Jul 2001 11:50:45 +1100 From: newton armstrong <---@---.---> Subject: Re: Mattel Power Glove There's this other not-yet-released but nonetheless intersting-looking glove: http://www.essentialreality.com/products.html. Is anybody else thinking about a USB Input Sprocket plug-in for SC3? ------------------------------ Date: Mon, 23 Jul 2001 21:13:28 -0500 From: James McCartney <---@---.---> Subject: Re: breakbeat5 on 7/23/01 8:37 PM, bsom@bsom.org at bsom@bsom.org wrote: > > > other than 2, what are the even prime numbers? > > ',',' I was going to say something about that myself, but I didn't want to > look like a jerk. :-) > > //bsom Bleen is certainly not odd, but I don't know if it has been determined whether it is prime. > "The Nobel Prize in mathematics has been awarded to a California professor who > has discovered a new number.  The number is 'bleen'--which he claims belongs > between six and seven" -- George Carlin. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 22:29:20 -0400 (EDT) From: Paul Lansky <---@---.---> Subject: atIdentityHash is there something like this method that will work on an array which contains various sized elements? eg a=[123,[45,6,2],66,1,[00,3]]; a.atIdentityHash(66).postln returns 2 but a=[123,[45,6,2],66,1,[00,3]]; a.atIdentityHash([00,3]).postln returns -1; And worse, when the key is not found the returned value is sometimes apparently random??? a=[123,[45,6,2],66,1,[00,3]]; a.atIdentityHash(345).postln returns weird numbers. thanks paul lansky p.s. apologies if this appears twice, I sent it from the wrong machine at first ------------------------------ Date: Mon, 23 Jul 2001 21:38:45 -0500 From: James McCartney <---@---.---> Subject: Re: atIdentityHash on 7/23/01 9:29 PM, Paul Lansky at paul@silvertone.Princeton.EDU wrote: > is there something like this method that will work on an array > which contains various sized elements? eg > > a=[123,[45,6,2],66,1,[00,3]]; > a.atIdentityHash(66).postln atIdentityHash is only meant to be used internally by the Set class. You have to have stored the values at their hashed positions in order to get them out this way. If you want a hash table then you should be using Set or Dictionary, not Array. atIdentityHash generates a hash value for the object and uses that as the index. If you have not put that object at the index of its hash then it will just get whatever *is* at that position. You should not be using it. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Mon, 23 Jul 2001 23:05:30 -0400 (EDT) From: Paul Lansky <---@---.---> Subject: Re: atIdentityHash Thanks James, but I'm just grepping around for an easy way to find the location of an element in an array. detect() and indexOf() also fail in the case of arrays whose elements may themselves be arrays. paul > >on 7/23/01 9:29 PM, Paul Lansky at paul@silvertone.Princeton.EDU wrote: > >> is there something like this method that will work on an array >> which contains various sized elements? eg >> >> a=[123,[45,6,2],66,1,[00,3]]; >> a.atIdentityHash(66).postln > >atIdentityHash is only meant to be used internally by the Set class. >You have to have stored the values at their hashed positions in order to get >them out this way. > >If you want a hash table then you should be using Set or Dictionary, not >Array. > >atIdentityHash generates a hash value for the object and uses that as the >index. If you have not put that object at the index of its hash then it will >just get whatever *is* at that position. >You should not be using it. > >--- james mccartney james@audiosynth.com >SuperCollider - a real time synthesis programming language for the PowerMac. > > > ------------------------------ Date: Mon, 23 Jul 2001 23:21:52 -0400 From: christian adam hresko <---@---.---> Subject: Re: Mattel Power Glove newton armstrong wrote: > There's this other not-yet-released but nonetheless intersting-looking > glove: http://www.essentialreality.com/products.html. > Is anybody else thinking about a USB Input Sprocket plug-in for SC3? this has been on my to do list. (i have a very large to do list, which is now approaching a 'procrastination' list...) i wanted to write a USB input plugin for SC. it would most likely be a primitive. i haven't wrapped my head around primitive plugins just yet. any clues as to how the wacom tablet 'code' is incorporated into SC? (i..e. can the tablet interface be separated from the SC VM and supplied as a plugin?) #define pi 4.0 * atan(1.0) christian ------------------------------ Date: Mon, 23 Jul 2001 22:24:22 -0500 From: James McCartney <---@---.---> Subject: Re: atIdentityHash on 7/23/01 10:05 PM, Paul Lansky at paul@silvertone.Princeton.EDU wrote: > Thanks James, but I'm just grepping around for an easy way to find the > location > of an element in an array. detect() and indexOf() also fail in the case of > arrays whose elements may themselves be arrays. Yes there is a bug which you can fix as follows : In SequenceableCollection, add the following method: indexOfEqual { arg item; this.do({ arg elem, i; if ( item == elem, { ^i }) }); ^nil } and replace the three methods performBinaryOpOnSimpleNumber, performBinaryOpOnComplex, performBinaryOpOnInfinitum, with these four methods: performBinaryOpOnSomething { arg aSelector, something; if (aSelector === '==', { ^false }); if (aSelector === '!=', { ^true }); ^this.collect({ arg item; something.perform(aSelector, item) }) } performBinaryOpOnSimpleNumber { arg aSelector, aNumber; ^this.performBinaryOpOnSomething(aSelector, aNumber) } performBinaryOpOnComplex { arg aSelector, aNumber; ^this.performBinaryOpOnSomething(aSelector, aNumber) } performBinaryOpOnInfinitum { arg aSelector, aNumber; ^this.performBinaryOpOnSomething(aSelector, aNumber) } Then you can do this: to find the index of an element : [123,[45,6,2],66,1,[00,3]].indexOfEqual(66).postln; [123,[45,6,2],66,1,[00,3]].indexOfEqual([00,3]).postln; [123,[45,6,2],66,1,[00,3]].indexOfEqual(789).postln; to know if an element is present : [123,[45,6,2],66,1,[00,3]].includes(66).postln; [123,[45,6,2],66,1,[00,3]].includes(99).postln; [123,[45,6,2],66,1,[00,3]].includes([45,6,2]).postln; [123,[45,6,2],66,1,[00,3]].includes([45,8,2]).postln; - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ End of sc-users-digest V1 #331 ******************************