From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #368 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, October 14 2001 Volume 01 : Number 368 ---------------------------------------------------------------------- Date: Fri, 12 Oct 2001 08:09:30 -0600 From: Michael Theodore <---@---.---> Subject: Re: No midi file i/o?? was Re: Newbie MIDI questions felix wrote: > on 10/12/01 12:24 AM, Michael Theodore at michael.theodore@colorado.edu > wrote: > > > Thanks to David and Felix for your replies, > > > > I would agree that MIDI is "crap" > > w. respect to describing timbre, but it's incredibly > > useful if, like me, you create pieces > > for humans to play. > > My main problem with is that it makes the implicit assumption that music is > made up of discrete events that have starts and stops. Its > keyboard-centric. On-off keyboard notes is without question the paradigm. However, it's easily subverted. I often use note-ons to trigger the onset of sustained, ambient sounds of cows burping, for instance. > > >It's also useful if you have an > > enormous amount of events that you would like to precisely > > specify. I can play things in much faster than I can type the endless > > score array. > > > SC developement is generally driven by need, desire, ability, time. Since > it isn't something james needed, it isn't offered as a basic feature. Look > in the archives, someone had a go at this and some success. > Is there a good way to search the archives by keyword, short of downloading the whole mess and picking through each one? Looking at the website I see 100s of individual files going back to 1999..... > > > Csound, > > Common Music, etc all have this capacity, and > > if you ask me (of course you didn't), it's hard > > to see a convincing reason why sc shouldn't as > > well. > > SC didn't need the crutch of sending its data to something else to render > audio :) So it never got around to writing the midi format. > Too bad for those of us that would like to use it to create notated music for humans to perform.... In any case, thank you for the information. - -M ------------------------------ Date: Fri, 12 Oct 2001 11:08:14 -0400 From: felix <---@---.---> Subject: Re: No midi file i/o?? was Re: Newbie MIDI questions on 10/12/01 10:09 AM, Michael Theodore at michael.theodore@colorado.edu wrote: > > > felix wrote: >> My main problem with is that it makes the implicit assumption that music is >> made up of discrete events that have starts and stops. Its >> keyboard-centric. > > On-off keyboard notes is without question the paradigm. However, it's > easily subverted. I often use note-ons to trigger the onset of sustained, > ambient > sounds of cows burping, for instance. cows have a finite amount of gas, so that's easily modelled by an event paradigm. > > Is there a good way to search the archives by keyword, short of downloading > the whole mess and picking through each one? Looking at the website > I see 100s of individual files going back to 1999..... agreed. i think its lists.io's job. > > Too bad for those of us that would like to use it to create notated music > for humans to perform.... In any case, thank you for the information. someone was working on precisely that: getting it into Finale or something. they'll probably pipe up in a day or so. > > -M > > > ------------------------------ Date: Fri, 12 Oct 2001 08:29:27 -0700 (PDT) From: michael whyte <---@---.---> Subject: Re: No midi file i/o?? was Re: Newbie MIDI questions > > Is there a good way to search the archives by keyword, short of downloading > > the whole mess and picking through each one? Looking at the website > > I see 100s of individual files going back to 1999..... download the whole mess and search the whole folder with BBedit. much easier than manual picking. __________________________________________________ Do You Yahoo!? Make a great connection at Yahoo! Personals. http://personals.yahoo.com ------------------------------ Date: Fri, 12 Oct 2001 11:14:15 -0600 From: Michael Theodore <---@---.---> Subject: Re: No midi file i/o?? was Re: Newbie MIDI questions felix wrote: > on 10/12/01 10:09 AM, Michael Theodore at michael.theodore@colorado.edu > wrote: > > > > > > > felix wrote: > > >> My main problem with is that it makes the implicit assumption that music is > >> made up of discrete events that have starts and stops. Its > >> keyboard-centric. > > > > On-off keyboard notes is without question the paradigm. However, it's > > easily subverted. I often use note-ons to trigger the onset of sustained, > > ambient > > sounds of cows burping, for instance. > > cows have a finite amount of gas, so that's easily modelled by an event > paradigm. > Dude, these were infinite cows... > > > > > Is there a good way to search the archives by keyword, short of downloading > > the whole mess and picking through each one? Looking at the website > > I see 100s of individual files going back to 1999..... > > agreed. i think its lists.io's job. > After mgetting and greping, I managed to find several references (though, yes, it would be nice if lists.io made searching easy, and would probably cut down on bone-headed questions like most of mine). Several people apparently have indicated an interest in this, though from what I can tell nobody has fully coded it up. The code below (originally posted by Hairi last year) opens midifiles and returns the events in an array. It doesn't write midi files, however. > > > > > Too bad for those of us that would like to use it to create notated music > > for humans to perform.... In any case, thank you for the information. > > someone was working on precisely that: getting it into Finale or something. > they'll probably pipe up in a day or so. > Yeah, opening midi files in Finale is trivial once you have a file to open... M - ------------------------------------------------------------------------------------------------------ Date: Fri, 29 Sep 2000 12:48:28 +0200 From: Hairi <---@---.---> Subject: Re: midifile This is a multi-part message in MIME format. - - --------------06D22C7D51909D8BBFF506EE Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit I managed to have my SWARK play back standard ( format 0 ) midi files . For poly playback , Voicer.ar is the best . It allows easy creation of a samplers/synths . How delicious , i used a busy 4-hand piano version of Route66 for testing , and some Rachmaninoff . Midi files are free on the web , you don't even have to be able to spell the name of the composer . I have written , ( in rough style ) a class , which opens midi files and returns it's events in an Array . Is this of any common use ? Here it comes . Remember as with all my programming , don't mind the horrible style . Make it better and send it back to me if you want . Hairi - - --------------06D22C7D51909D8BBFF506EE Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="53436A6D"; name="MidiFiles.sc" Content-Transfer-Encoding: 7bit Content-Description: Unknown Document Content-Disposition: inline; filename="MidiFiles.sc" MidiFile : Test { classvar <>returnArray ; *getFile { arg path ; var midifile , dataArray , chunkLength ,rawArray , pointer , filePath , trackArray , converter , metaEventsDictionary , len , runningStatus , deltaFunction , postMidi , deltaTime , notesPointer , timesArray , notesArray , veloxArray , channelsArray , absTimesArray , absTime = 0 , deltaAkku = 0 ; midifile = File(path,"r"); rawArray = midifile.readAllInt8; midifile.close; //postMidi.value ; converter = { arg raw ; if ( raw < 0 , { 256 + raw } , { raw }) }; dataArray = Array.fill( rawArray.size , { arg i ; converter.value(rawArray.at(i)) }); metaEventsDictionary = IdentityDictionary [ '0' -> { // " meta Event Sequence Number ".postln ; // trackArray.at(pointer + 1 ).do({ arg i ; // trackArray.at(i+2).post ; " " .post ;}); // "".postln; pointer = pointer + trackArray.at( pointer + 1 ) + 2 ; }, '1' -> { // " meta Event Text ".post ; len = trackArray.at(pointer + 1 ); // for ( pointer + 2 , pointer + 2 + len , { arg i ; trackArray.at(i).asAscii.post ; }); // "".postln; pointer = pointer + len + 2 ; }, '3' -> { // " meta Event Seq/Trk Name ".post ; len = trackArray.at(pointer + 1 ); // for ( pointer + 2 , pointer + 2 + len , { arg i ; trackArray.at(i).asAscii.post ; }); // "".postln; pointer = pointer + len + 2 ; }, '4' -> { // " meta Event Instrument Name ".post ; len = trackArray.at(pointer + 1 ); // for ( pointer + 2 , pointer + 2 + len , { arg i ; trackArray.at(i).asAscii.post ; }); // "".postln; pointer = pointer + len + 2 ; }, '6' -> { // " meta Event Marker ".post ; len = trackArray.at(pointer + 1 ); // for ( pointer + 2 , pointer + 2 + len , { arg i ; trackArray.at(i).asAscii.post ; }); // "".postln; pointer = pointer + len + 2 ; }, '32' -> { // " meta Event Channel prefix ".post ; // trackArray.at(pointer + 1 ).do({ arg i ; // trackArray.at(i+2).post ; " " .post ;}); // "".postln; pointer = pointer + trackArray.at(pointer + 1 ) + 2 ; }, '88' -> { // " meta Event TimeSignature ".post ; // trackArray.at(pointer + 1 ).do({ arg i ; // trackArray.at(i+2).post ; " " .post ;}); // "".postln; pointer = pointer + trackArray.at(pointer + 1 ) + 2 ; }, '89' -> { // " meta Event KeySignature ".post ; // trackArray.at(pointer + 1 ).do({ arg i ; // trackArray.at(i+2).post ; " " .post ;}); // "".postln; pointer = pointer + trackArray.at(pointer + 1 ) + 2 ; }, '84' -> { // " meta Event SMPTE offset ".post ; // trackArray.at(pointer + 1 ).do({ arg i ; // trackArray.at(i+2).post ; " " .post ;}); // "".postln; pointer = pointer + trackArray.at(pointer + 1 ) + 2 ; }, '47' -> { // " meta Event End of Track ".postln ; pointer = pointer + trackArray.at(pointer + 1 ) + 3 ; }, '81' -> { // " meta Event SetTempo ".post ; // trackArray.at(pointer + 1 ).do({ arg i ; // trackArray.at(i+2).post ; " " .post ;}); // "".postln; pointer = pointer + trackArray.at(pointer + 1 ) + 2 ; } ] ; //("file size : " ++ dataArray.size.asString).postln; //4.do( { arg i ; dataArray.at(i).asAscii.post }); //"".postln; //" format : ".post; //((dataArray.at(8)*256) + dataArray.at(9)).postln; //" ntrks : " .post; //((dataArray.at(10)*256) + dataArray.at(11)).postln; //" div : " .post; //((dataArray.at(11)*256) + dataArray.at(12)).postln; chunkLength = dataArray.at(7)+(dataArray.at(6) * 256 ) + (dataArray.at(5) * 256 * 256 ) + (dataArray.at(4) * 256 * 256 * 256 ) ; pointer = 8 + chunkLength ; //4.do( { arg i ; dataArray.at(i+pointer).asAscii.post }); //"".postln; chunkLength = dataArray.at(7+pointer)+(dataArray.at(6+pointer) * 256 ) + (dataArray.at(5+pointer) * 256 * 256 ) + (dataArray.at(4+pointer) * 256 * 256 * 256 ); //("Track Chunk length : "++ chunkLength.asString).postln; trackArray = dataArray.copyRange( pointer+8 , pointer+8+chunkLength ); pointer = pointer+ 8 + chunkLength ; if ( pointer != dataArray.size , { "There is more ".postln; }); //trackArray.do({ arg item ; item.postln; }); deltaFunction = { deltaTime = 0 ; while( { trackArray.at(pointer) > 128 } , { deltaTime = deltaTime * 128 ; deltaTime = deltaTime + ((trackArray.at(pointer) - 128 )*128); pointer = pointer + 1 ; }); deltaTime = deltaTime + trackArray.at(pointer) ; absTime = absTime + deltaTime ; pointer = pointer + 1 ; }; pointer = 0 ; timesArray = []; notesArray = []; veloxArray = []; channelsArray = []; while ( { pointer < trackArray.size } , { deltaFunction.value ; //trackArray.at(pointer).post; //"===>".post; if ( trackArray.at(pointer ) == 255 , { pointer = pointer + 1 ; //(" t " ++ absTime.asString).post; metaEventsDictionary.at( trackArray.at( pointer).asSymbol ).value ; deltaAkku = deltaAkku + deltaTime ; }, { if ( trackArray.at(pointer) > 143 and: { trackArray.at(pointer) < 160 } , { runningStatus = trackArray.at(pointer) ; timesArray = timesArray.add( deltaTime + deltaAkku ); deltaAkku = 0 ; notesArray = notesArray.add( trackArray.at(pointer+1) ); veloxArray = veloxArray.add( trackArray.at(pointer+2) ); channelsArray = channelsArray.add( runningStatus - 143 ); // (" t " ++ absTime.asString).post; // (" note on channel " ++ (runningStatus - 143).asString ++" "++ trackArray.at(pointer+1).asString ++ " velox " ++ trackArray.at(pointer+2).asString).postln; pointer = pointer + 3 ; },{ if ( trackArray.at(pointer) > 127 and: { trackArray.at(pointer) < 144 } , { runningStatus = trackArray.at(pointer) ; timesArray = timesArray.add( deltaTime + deltaAkku ); deltaAkku = 0 ; notesArray = notesArray.add( trackArray.at(pointer+1) ); veloxArray = veloxArray.add( trackArray.at(pointer+2) ); channelsArray = channelsArray.add( runningStatus - 127 ); // (" t " ++ absTime.asString).post; // (" note off channel " ++ (runningStatus - 127).asString ++" "++ trackArray.at(pointer+1).asString ++ " velox " ++ trackArray.at(pointer+2).asString).postln; pointer = pointer + 3 ; }, { // here trap other midi events ( controllers , program chng ) // controllers if ( trackArray.at(pointer) > 175 and: { trackArray.at(pointer) < 192 } , { runningStatus = trackArray.at(pointer) ; // (" t " ++ absTime.asString).post; // (" controller " ++(runningStatus-175).asString ++ " " ++ trackArray.at(pointer +1 ).asString ++ " " ++ trackArray.at(pointer + 2 ).asString).postln; deltaAkku = deltaAkku + deltaTime ; pointer = pointer + 3 ; }, { // pitch bend if ( trackArray.at(pointer) > 223 and: { trackArray.at(pointer) < 240 } , { runningStatus = trackArray.at(pointer) ; deltaAkku = deltaAkku + deltaTime ; pointer = pointer + 3 ; }, { // program if ( trackArray.at(pointer) > 191 and: { trackArray.at(pointer) < 208 } , { runningStatus = trackArray.at(pointer) ; deltaAkku = deltaAkku + deltaTime ; pointer = pointer + 2 ; }, { if( runningStatus > 143 and: { runningStatus < 160 } , { timesArray = timesArray.add( deltaTime + deltaAkku ); deltaAkku = 0 ; notesArray = notesArray.add( trackArray.at(pointer) ); veloxArray = veloxArray.add( trackArray.at(pointer+1) ); channelsArray = channelsArray.add( runningStatus - 143 ); // (" t " ++ absTime.asString).post; // (" rs note on channel " ++(runningStatus-143).asString ++" "++ trackArray.at(pointer).asString ++ " velox " ++ trackArray.at(pointer+1).asString).postln; pointer = pointer + 2 ; } , { if( runningStatus > 127 and: { runningStatus < 144 } , { timesArray = timesArray.add( deltaTime + deltaAkku ); deltaAkku = 0 ; notesArray = notesArray.add( trackArray.at(pointer) ); veloxArray = veloxArray.add( trackArray.at(pointer+1) ); channelsArray = channelsArray.add( runningStatus - 127 ); // (" t " ++ absTime.asString).post; // (" rs note off channel " ++(runningStatus-127).asString ++" "++ trackArray.at(pointer).asString ++ " velox " ++ trackArray.at(pointer+1).asString).postln; pointer = pointer + 2 ; },{ if( runningStatus > 175 and: { runningStatus < 192 } , { deltaAkku = deltaAkku + deltaTime ; // (" t " ++ absTime.asString).post; // (" rs controller " ++(runningStatus-175).asString++" " ++ trackArray.at(pointer ).asString ++ " " ++ trackArray.at(pointer + 1 ).asString).postln; pointer = pointer + 2 ; }, { if( runningStatus > 223 and: { runningStatus < 240 } , { deltaAkku = deltaAkku + deltaTime ; // (" t " ++ absTime.asString).post; // (" rs pitchb " ++(runningStatus-223).asString++" " ++ trackArray.at(pointer ).asString ++ " " ++ trackArray.at(pointer + 1 ).asString).postln; pointer = pointer + 2 ; }, { if( runningStatus > 191 and: { runningStatus < 208 } , { deltaAkku = deltaAkku + deltaTime ; // (" t " ++ absTime.asString).post; // (" rs prog " ++(runningStatus-191).asString++" " ++ trackArray.at(pointer).asString ).postln; pointer = pointer + 1 ; }); }); }); });}); }); }); }); }) }); }); }); absTime = 0 ; absTimesArray = Array.fill( timesArray.size , { arg i ; absTime = absTime + timesArray.at(i) ; absTime }); returnArray = Array.fill( timesArray.size , { arg i ; [ timesArray.at(i), channelsArray.at(i) ,notesArray.at(i) , veloxArray.at(i) , absTimesArray.at(i)]}) ^returnArray } } ------------------------------ Date: Fri, 12 Oct 2001 11:51:27 -0700 (PDT) From: Chris Brown <---@---.---> Subject: Re: OSC fails under 9.1 sekhar -- were you synthesizing sound while sending and receiving OSC messages? i would be curious to see what code you were successful in running, because my pieces that have intensive two-way messaging while playing would not work at all under OS9.1 or 9.2 -- i was using SC 2.2.11 though, not 2.2.10... it would be tragic (for me at least) if "improvements" in MacOS make OSC communication while synthesizing impossible. OSC under SC is the best environment i've ever had for doing network music pieces -- last tuesday in berlin a quartet of G3 powerbooks running OS 9.0.4 did a 30 minute set in which each player was synthesizing their own part while "hosting" synthesis generated by another partner on the network -- partners could change at any player's request, and acoustic triggers sent sound events described as lists of fundamental pitches and harmonics across the net that bounced around the ensemble -- each player's mouse data that affected synthesis was updating every quarter second to the partner's screen, allowing shared control of synthesis parameters. it was an enthralling way to make a new kind of ensemble music -- i hope it's not just another temporary moment that disappears into the quicksand of technology "progress" cb *************************************************** 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 **************************************************** On Thu, 11 Oct 2001, James McCartney wrote: > on 10/11/01 10:52 PM, cramakrishnan@acm.org at cramakrishnan@acm.org wrote: > > > Chris Brown writes: > > > >> thanks for your report -- we're you receiving messages properly in > >> SC2 or only generating them ? > > [...] > >> but it would help to know if you we're receiving messages properly > >> in SC... > > > > I was using OSC in SC 2.2.10 on MacOS 9.2 today and was able to both > > send and receive messages. It worked fine *as long as I was talking to > > another machine*. > > > > When I try to use the loopback address to talk OSC to myself I have > > problems. I can do this if I use Squeak to send the OSC messages, but > > if I use SuperCollider to send the OSC messages, I get Open Transport > > errors. > > > > - sekhar > > There are apparently some changes in Apple's OTSndUData call such that in > certain circumstances it is not async callable at interrupt level. This was > not the case in previous versions of MacOS. I have not determined yet what > these circumstances are or whether they can be circumvented. > > > --- james mccartney james@audiosynth.com > SuperCollider - a real time synthesis programming language for the PowerMac. > > > > ------------------------------ Date: Sat, 13 Oct 2001 00:45:04 -0400 From: christian adam hresko <---@---.---> Subject: Re: No midi file i/o?? was Re: Newbie MIDI questions felix wrote: > > someone was working on precisely that: getting it into Finale or something. > they'll probably pipe up in a day or so. > > that was david cottle i belive. judging from his posts, he seems to use MIDI quite a bit. maybe he's the person to ask... frantz, ch. function [a, b] = sc(goob) goob = [goob ; goob]; plot(goob(:)); a = length(goob); b = goob; ------------------------------ Date: Sat, 13 Oct 2001 21:26:05 +0200 From: Jesper El=?ISO-8859-1?B?6Q==?=n <---@---.---> Subject: Re: No midi file i/o?? was Re: Newbie MIDI questions I've been using OMS and the IAC driver to send midistuff from SC to Logic (without the audiodriver) and then saving the MIDIfile from logic. Jesper - -- Jesper Elén Österväg 24 621 45 Visby Sweden phones: privat: +46-498-271565 VITC: +46-498-249900 also fax. +46-498-249907 Tonis: +46-498-284848 +46-498-284810 also fax. email: j.elen@telia.com jesper.elen@centreforcomposers.org ------------------------------ Date: Sun, 14 Oct 2001 08:47:54 -0400 From: "jr@xs4all.nl" <---@---.---> Subject: RE: Re: OSC fails under 9.1 Chris, I dont know about 2 way OSC but we have been running a heavy SC2.1.11 synthesis load under both 9.1 and 9.2 with a moderate load of incomming OSC messages generated by 4 or 5 iPaq's linked via wireless etherlan to a second MAC acting as a communications moderator via a MAX patch. SuperCollider was the most robuts link in this chain. The only serious problems alwyas came when the MAX machine made a major change in network parmeters. joel Original Message: - ----------------- From: Chris Brown cbmus@mills.edu Date: Fri, 12 Oct 2001 11:51:27 -0700 (PDT) To: sc-users@lists.io.com Subject: Re: OSC fails under 9.1 sekhar -- were you synthesizing sound while sending and receiving OSC messages? i would be curious to see what code you were successful in running, because my pieces that have intensive two-way messaging while playing would not work at all under OS9.1 or 9.2 -- i was using SC 2.2.11 though, not 2.2.10... it would be tragic (for me at least) if "improvements" in MacOS make OSC communication while synthesizing impossible. OSC under SC is the best environment i've ever had for doing network music pieces -- last tuesday in berlin a quartet of G3 powerbooks running OS 9.0.4 did a 30 minute set in which each player was synthesizing their own part while "hosting" synthesis generated by another partner on the network -- partners could change at any player's request, and acoustic triggers sent sound events described as lists of fundamental pitches and harmonics across the net that bounced around the ensemble -- each player's mouse data that affected synthesis was updating every quarter second to the partner's screen, allowing shared control of synthesis parameters. it was an enthralling way to make a new kind of ensemble music -- i hope it's not just another temporary moment that disappears into the quicksand of technology "progress" cb *************************************************** 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 **************************************************** On Thu, 11 Oct 2001, James McCartney wrote: > on 10/11/01 10:52 PM, cramakrishnan@acm.org at cramakrishnan@acm.org wrote: > > > Chris Brown writes: > > > >> thanks for your report -- we're you receiving messages properly in > >> SC2 or only generating them ? > > [...] > >> but it would help to know if you we're receiving messages properly > >> in SC... > > > > I was using OSC in SC 2.2.10 on MacOS 9.2 today and was able to both > > send and receive messages. It worked fine *as long as I was talking to > > another machine*. > > > > When I try to use the loopback address to talk OSC to myself I have > > problems. I can do this if I use Squeak to send the OSC messages, but > > if I use SuperCollider to send the OSC messages, I get Open Transport > > errors. > > > > - sekhar > > There are apparently some changes in Apple's OTSndUData call such that in > certain circumstances it is not async callable at interrupt level. This was > not the case in previous versions of MacOS. I have not determined yet what > these circumstances are or whether they can be circumvented. > > > --- james mccartney james@audiosynth.com > SuperCollider - a real time synthesis programming language for the PowerMac. > > > > - -------------------------------------------------------------------- mail2web - Check your email from the web at http://mail2web.com/ . ------------------------------ Date: Sun, 14 Oct 2001 16:34:27 +0100 From: Arie van Schutterhoef <---@---.---> Subject: RE: Re: OSC fails under 9.1 >I dont know about 2 way OSC but we have been running a heavy SC2.1.11 >synthesis load under both 9.1 and 9.2 with a moderate load of incomming >OSC messages generated by 4 or 5 iPaq's linked via wireless etherlan to a >second MAC acting as a communications moderator via a MAX patch. >in berlin a quartet of G3 powerbooks running OS 9.0.4 did a 30 minute set >> There are apparently some changes in Apple's OTSndUData call such that in >> certain circumstances it is not async callable at interrupt level. This was >> not the case in previous versions of MacOS. - -Relating to these matters - concerning Apple Share and Open Transport -several problems have been mentioned at: http://www.macwindows.com/MacOS9.html#100501 >SuperCollider was the most robuts link in this chain. The only serious >problems alwyas came when the MAX machine made a major change - -Relating to those matters: see Bob Ostertag's interview on Cycling 74: http://www.cycling74.com/community/bobostertag.html "That's the recurring nightmare of every Max owner. It's doesn't work, it's taken you twelve hours to do it, and you're standing out on stage with a banjo. Since I've started using Max I've been in several situations where my system has crashed during the concert, or the concert has started late, because the system is much more complex. That drives me completely berserk. George Lewis, for exampleŠ it doesn't bother him! His attitude is that this is computer music, it's experimentalŠ this stuff crashes! That's part of the idiom. You reboot, and you go on." AvS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................................................................. ^ Arie van Schutterhoef | arsche@xs4all.nl ^_±±±±±±±±±±±±±±±±±±±±±±±__""""""""""""""""""""""""""""""""" | ` |Schreck Ensemble http://www.xs4all.nl/~schreck/ | ` |# -laboratory for live electro-acoustic music- # | ` |Tel: 00-31-71-5612287 Fax: 00-31-70-3859268 | *========================================================++ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .................................................................. ------------------------------ End of sc-users-digest V1 #368 ******************************