From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #80 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 Friday, February 4 2000 Volume 01 : Number 080 ---------------------------------------------------------------------- Date: Mon, 24 Jan 2000 09:17:52 -0500 (EST) From: John F Duesenberry <---@---.---> Subject: Re: C++ CodeWarrior normally comes with a **huge** amount of documentation online, although the installation of the doc is optional. Maybe you didn't get a full installation. Anyway, your professor sounds like a complete jerk, so I'd drop the course if I were you. There used to be some fairly good books about programming on the Mac in C++, some of which included scaled-down versions of CodeWarrior or Think C. If these are still available, you could probably get them thru MacTech (a magazine for mac programming geeks. I don't have their URL handy.) Good luck. On Sun, 23 Jan 2000, christian.adam.hresko. wrote: > okay, this isn't exactly a SuperCollider question, but i suppose it's > somewhat related. i'm taking a second level c++ course (the first level > used to be c / c++ but they recently changed it to c++) and was > wondering if there were any free c++ compilers for the mac. (ANSI) > codewarrior is loaded on my machine, but the help files give absolutely > no reference on how to compile or 'build' a project. (i know, i know, i > know... it's a copy of IDE 2.1 and maybe i'm just overlooking a plethora > of help files that tell in detail how to link, compile, and run a > project) and the fact that my background is in c, so i'm already 6 > months behind the rest of the class. (my professor believes one can > learn, retain, and solve relatively challenging c++ problems after a few > days of studying. i tend to disagree... did i mention we're using this > god awful deitel and deitel book??) yes, this is a sad plea for help if > anyone has any suggestions. (other than dropping the class which i > refuse to do because i really REALLY want to learn c++ since this is a > career goal) thanks for listening. > > cheers, > > christian > > still getting used to the cout<< cin>> as opposed to printf and scanf... > > -- > " kid for a day. " > ------------------------------ Date: Mon, 24 Jan 2000 08:38:01 -0700 From: David Cottle <---@---.---> Subject: CombN clarification Hi, A student and I were looking at one of your patches and I couldn't explain why the variable out is used as the input and is also included as the add argument. What am I missing? This is from the example of dynamic instrument patches. Is that the "dry" signal? CombN.ar(out, 0.2, 0.2, 1, 0.7, out); ------------------------------ Date: Mon, 24 Jan 2000 11:14:47 -0500 (EST) From: Andrew Brouse <---@---.---> Subject: Re: C++ On Sun, 23 Jan 2000, christian.adam.hresko. wrote: > [..snip] (my professor believes one can > learn, retain, and solve relatively challenging c++ problems after a few > days of studying. i tend to disagree... [..snip] My humble 2 cents: If you must learn C++, take a course in a _real_ object oriented language (Lisp, Scheme, Smalltalk, Objective C, Java) first and then see if you still want to learn C++. Andrew Brouse Music Technology McGill University Montreal, Quebec, Canada ------------------------------ Date: Mon, 24 Jan 2000 11:26:52 -0500 From: Mark Ballora <---@---.---> Subject: Re: CombN clarification David Cottle wrote: >Hi, > >A student and I were looking at one of your patches and I couldn't explain >why the variable out is used as the input and is also included as the add >argument. What am I missing? > >This is from the example of dynamic instrument patches. Is that the "dry" >signal? > > CombN.ar(out, 0.2, 0.2, 1, 0.7, out); From Delays.help: ( { z = Decay.ar(Dust.ar(1,0.5), 0.3, WhiteNoise.ar); DelayN.ar(z, 0.2, 0.2, 1, z); // input is mixed with delay via the add input }.play ) As I understood it from this example, the add argument serves a different function in a filter or delay than it does for an oscillator, where it's an offset. In a filter/delay, it functions as an extra input, allowing a feedback loop to be implemented. Am I correct in this? ------------------------------ Date: Mon, 24 Jan 2000 11:44:57 -0700 From: James McCartney <---@---.---> Subject: Re: CombN clarification At 8:38 AM -0700 1/24/00, David Cottle wrote: >Hi, > >A student and I were looking at one of your patches and I couldn't explain >why the variable out is used as the input and is also included as the add >argument. What am I missing? > >This is from the example of dynamic instrument patches. Is that the "dry" >signal? > > CombN.ar(out, 0.2, 0.2, 1, 0.7, out); This adds the original to the delayed sound. Otherwise the whole sound is delayed by the length of the Comb. A Comb delay has no output until the delay time. An Allpass delay has immediate output because it has a feedforward path. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 24 Jan 2000 19:03:15 +0100 From: Julian Rohrhuber <---@---.---> Subject: Re: event questions so this is my workaround solution for the problem. I guess I feel a bit uneasy about the wrapAt though ... (14) ( var pindia, deg, pat; pindia = { arg degreepattern; var stream; stream = degreepattern.asStream; Routine.new({ var lastval, nextval; nextval = 0; while({ lastval = nextval; nextval = stream.next; nextval.notNil }, { if(nextval.value >= lastval.value, { (Event.protoEvent.at(\aroh)).wrapAt(nextval.asInteger).yield }); //that >= is kind of questionable if(nextval.value < lastval.value, { (Event.protoEvent.at(\avaroh)).wrapAt(nextval.asInteger).yield }); }); nil.yield; }); }; deg = pindia.value(Pseq([0, 1, 2, 3, 4, 5, 6, 14, 6, 5, 4, 3, 2, 1, 0], 3)); pat = Pbind(\aroh, #[0, 3, 4, 5, 10, 11], \avaroh, #[0, 1, 5, 7, 8, 11]); Pbindf(\degree, deg, pat).play; ) so then I tried to at least fix the >= . but after three system crashes I realize those must be dangerous things there... ( var pindia, deg, pat; pindia = { arg degreepattern; var stream; stream = degreepattern.asStream; Routine.new({ var lastval, nextval; nextval = 0; lastval = 0; while({ if(nextval.value == lastval.value, { }, { lastval = nextval }); nextval = stream.next; nextval.notNil }, { if(nextval.value > lastval.value, { (Event.protoEvent.at(\aroh)).wrapAt(nextval.asInteger).yield }); if(nextval.value < lastval.value, { (Event.protoEvent.at(\avaroh)).wrapAt(nextval.asInteger).yield }); }); nil.yield; }); }; deg = pindia.value(Pseq([0, 1, 2, 3, 6, 6, 3, 2, 1, 0], 2)); pat = Pbind(\aroh, #[0, 3, 4, 5, 10, 11], \avaroh, #[0, 1, 5, 7, 8, 11]); Pbindf(\degree, deg, pat).play; ) James McCartney wrote: > > Oh well the problem here is that 'loop' is an infinite loop. > You have to yield something from the loop, otherwise it never leaves. > > Pfset's first argument should be a function creates an Event. > It only gets evaluated once. > The contents of that event then get merged into events from the > second argument. > Look at the source to Pfset to see what it is doing. > ------------------------------ Date: Mon, 24 Jan 2000 11:18:56 -0700 From: David Cottle <---@---.---> Subject: Re: CombN clarification Hi, >> This is from the example of dynamic instrument patches. Is that the "dry" >> signal? >> >> CombN.ar(out, 0.2, 0.2, 1, 0.7, out); > > This adds the original to the delayed sound. Otherwise the whole > sound is delayed by the length of the Comb. > A Comb delay has no output until the delay time. > An Allpass delay has immediate output because it has a feedforward path. So this would be analogous to the "dry" signal on a rack mounted reverb module? (i.e. you can have only reverb or you can mix the dry signal back in). ------------------------------ Date: Mon, 24 Jan 2000 12:35:20 -0700 From: James McCartney <---@---.---> Subject: Re: CombN clarification At 9:26 AM -0700 1/24/00, Mark Ballora wrote: >As I understood it from this example, the add argument serves a different >function in a filter or delay than it does for an oscillator, where it's an >offset. In a filter/delay, it functions as an extra input, allowing a >feedback loop to be implemented. > >Am I correct in this? no. It simply adds that signal to the output, just like every other add input. Comb looks like this: (feedback coef) (mul) (add) | | | v | | +-----------( * )<-----------+ | | | | | | v | v v (in)--->( + )---->| delay line |-----+---->( * )--->( + )--->(out) So by puttin the same signal in the 'in' and the 'add' inputs, you get immediate sound plus the delayed sound. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 24 Jan 2000 15:30:22 -0500 From: Mark Ballora <---@---.---> Subject: Re: CombN clarification >At 9:26 AM -0700 1/24/00, Mark Ballora wrote: >>Am I correct in this? > >no. It simply adds that signal to the output, just like every other add >input. Ah, I see. Thank you! ------------------------------ Date: Wed, 26 Jan 2000 12:24:00 -0700 From: Jim Coker <---@---.---> Subject: Re: C++ Andrew Brouse wrote: > > On Sun, 23 Jan 2000, christian.adam.hresko. wrote: > > > [..snip] (my professor believes one can > > learn, retain, and solve relatively challenging c++ problems after a few > > days of studying. i tend to disagree... [..snip] > > My humble 2 cents: If you must learn C++, take a course in a _real_ > object oriented language (Lisp, Scheme, Smalltalk, Objective C, Java) > first and then see if you still want to learn C++. > > Andrew Brouse > Music Technology > McGill University > Montreal, Quebec, Canada I agree, C++ is one of the worst languages around. Anyway, MPW is avaiable free from developer.apple.com, It comes w/ C/C++ compilers and linkers. Not as integrated as something like CodeWarrior, but works just fine. You can also get a free java compiler there too (The MRJ SDK). I've been using both to do Java/C/OMS midi programming. Jim ------------------------------ Date: Thu, 27 Jan 2000 15:05:47 +0100 From: Hans Tutschku <---@---.---> Subject: amplitude of grain Salut les SuperCollideristes, I would like to use the amplitude of a grain to change the pitch of the next grain. If I take the amplitude of the AudioIn, it works perfectly. But how to do for the grainStream itself? I understand that I can't do it for the actual grain, because at definition time the grain itself does not yet exist. Should I pass via a delayline? The following code works for the AudioIn. (You have to give another sound filename). The commented line in the "amp"-function was my try to get the amplitude of the grainStream. Where is my error???? Thanks, Hans ********* ( var amp; var filename, mouseX, mouseY; var sound; var signal; var rate, offset, positionincrement, blendTime, grainDur, grainStream, myInstrument; var actual_amplitude; filename = "G3-Daten01:SC2.2.4:Sounds:bulg-einefrau"; sound = SoundFile.new; actual_amplitude = 0; positionincrement = 0.1; myInstrument = { if (sound.read(filename), { signal = sound.data.at(0); mouseX = MouseX.kr(0, sound.numFrames / 2); mouseY = MouseY.kr(0.01, 1, 'exponential'); grainStream = Spawn.ar({ arg spawn, i, synth; offset = mouseX.poll; grainDur = mouseY.poll; spawn.nextTime = (grainDur / 8) + 0.01.rand; blendTime = 0.005; rate = 1.0 ** 1.1.bilinrand; Pan2.ar( EnvGen.ar( Env.linen(blendTime, grainDur - blendTime, blendTime, 0.3 + 0.1.linrand), PlayBuf.ar(signal, sound.sampleRate, rate + actual_amplitude.value, offset, 0, signal.size-2) ), 0.8.bilinrand ) }, 2, nil, nil ); },{ (filename ++ " not found.\n").post }); }; amp = { actual_amplitude = Amplitude.kr(AudioIn.ar(1),0.01,0.01,1.0,0); //actual_amplitude = Amplitude.kr(myInstrument.value,0.01,0.01,1.0,0); }; Synth.play({ amp.value; myInstrument.value; }); ) Hans Tutschku - --------------------------- http://www.multimania.com/hanstutschku ------------------------------ Date: Fri, 28 Jan 2000 12:19:36 -0800 (PST) From: Chad Kirby <---@---.---> Subject: signal buffer from a long soundfile Hello, I cannot figure out how to get a Signal Buffer (suitable for use as the first argument to PlayBuf) from the middle of a long sound file ( one that is too long to be read by SoundFile.read). In other words, say I have a 10 minute sound file and only 64MB of RAM. I want to fill a Signal Buffer with 4 seconds of sound starting 6 minutes into the file. I have managed to do this using the following method: filename = "Macintosh HD:blah.aiff"; sound = SoundFile.new; sound.readHeader( filename ); signal = Synth.collect( { DiskIn.ar(sound, false, 60 * 6 * sound.sampleRate) }, 4 ); Using Synth.collect, however, is limiting. I can't grab the buffer from within a Spawn, for example. What is a better method of achieving this same end? thanks! Chad Kirby ckirby@u.washington.edu ________ A bore is a fellow talking who can change the subject back to his topic of conversation faster than you can change it back to yours. Laurence J. Peter ------------------------------ Date: Fri, 28 Jan 2000 18:37:02 -0700 From: James McCartney <---@---.---> Subject: heads up for ASIO Next week or so, I will release a version that supports ASIO at long last. It is basically working now. I am listening to an 8 channel version of "soup" right now off of the MOTU 2408 at 64 samples per buffer. There is still more testing to do. Some of the drivers are actin funny, but I don't know why. 'scuse me while I fix these bugs.. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 28 Jan 2000 18:46:16 -0700 From: James McCartney <---@---.---> Subject: Re: signal buffer from a long soundfile At 1:19 PM -0700 1/28/00, Chad Kirby wrote: >Hello, > >I cannot figure out how to get a Signal Buffer (suitable for use as the >first argument to PlayBuf) from the middle of a long sound file ( one that >is too long to be read by SoundFile.read). In other words, say I have a 10 >minute sound file and only 64MB of RAM. I want to fill a Signal Buffer >with 4 seconds of sound starting 6 minutes into the file. > >I have managed to do this using the following method: > >filename = "Macintosh HD:blah.aiff"; >sound = SoundFile.new; >sound.readHeader( filename ); >signal = Synth.collect( { > DiskIn.ar(sound, false, 60 * 6 * sound.sampleRate) > }, 4 ); > >Using Synth.collect, however, is limiting. I can't grab the buffer from >within a Spawn, for example. What is a better method of achieving this >same end? thanks! You'd have to DiskIn into a RecordBuf. Eventually I intend to make SoundFile reads be asynchronous. Then you would initiate a read inside of a Task and the task will suspend until the read is complete. Once it is complete then you could use it. There is no synchronous way to do it in real time. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 28 Jan 2000 19:09:31 -0700 From: James McCartney <---@---.---> Subject: Re: amplitude of grain At 7:05 AM -0700 1/27/00, Hans Tutschku wrote: >Salut les SuperCollideristes, > >I would like to use the amplitude of a grain to change the pitch >of the next grain. > >If I take the amplitude of the AudioIn, it works perfectly. But how >to do for the grainStream itself? > >I understand that I can't do it for the actual grain, because at >definition time the grain itself >does not yet exist. Should I pass via a delayline? > >The following code works for the AudioIn. (You have to give another >sound filename). >The commented line in the "amp"-function was my try to get the >amplitude of the grainStream. Where is my error???? > >Thanks, Hans Well I don't really understand. You're creating the grains so you know what their amplitude envelope is. Why do you need to use Amplitude? Why not just store the amplitude? One problem in your commented line is that by doing myInstrument.value you are creating a whole new instance of your Spawn patch. This is a whole separate patch, not a reference to the original patch. It will still run like that though, even though I don't think it is doing exactly what you want. The reason you get the runtime error is that you are compounding multichannel expansion. The input to Amplitude is an array and that causes Amplitude to be an array. Then you plug that into the original patch causing that to be an array and then you try to Pan the array, creating an array of arrays. If you change one line to mix the channels down before doing the Amplitude then you don't wind up creating arrays of arrays : actual_amplitude = Amplitude.kr(Mix.ar(myInstrument.value),0.01,0.01,1.0,0); - --- The .value here is not needed: rate + actual_amplitude.value, offset, 0, signal.size-2) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Sun, 30 Jan 2000 04:35:35 -0500 From: "christian.adam.hresko." <---@---.---> Subject: 1212 SuperColliders... okay, i purchased a korg 1212I/O card because the price was just too low to pass up. anyway, i read about the needing to reboot issue if a program crashes while using the 1212 in order for the card to be 'recognized' once again. i also read that you may need to completely unplug your machine in order for the card to reset itself although a 'memo' from korg stated that this is not the case. well, a program crashed which was using the 1212 and my computer would not recognize the 1212. i rebooted (a couple of times) and couldn't figure out why the card was not showing up. so i shut everything down, unplugged the power cord to the cpu, waited a minute, and rebooted. surprise... the 1212 was back in action. this has only happened once, but this is a rather awkward and tedious task to initialize the card after a crash. has anyone else experienced this problem while using the 1212? (i'm running OS 8.6) cheers, christian : btw, thanks for all the info regarding c++ i've decided to take an intro class while sitting in on the advanced course. i do agree that java is probably a better place to start, but there's some latency issues which makes c++ a more efficient language in my opinion... (isn't SuperCollider written in c++ ?) - -- " kid for a day. " ------------------------------ Date: Sun, 30 Jan 2000 03:47:30 -0700 From: James McCartney <---@---.---> Subject: Re: 1212 At 2:35 AM -0700 1/30/00, christian.adam.hresko. wrote: >SuperColliders... > >okay, i purchased a korg 1212I/O card because the price was just too low >to pass up. anyway, i read about the needing to reboot issue if a >program crashes while using the 1212 in order for the card to be >'recognized' once again. i also read that you may need to completely >unplug your machine in order for the card to reset itself although a >'memo' from korg stated that this is not the case. well, a program >crashed which was using the 1212 and my computer would not recognize the >1212. i rebooted (a couple of times) and couldn't figure out why the >card was not showing up. so i shut everything down, unplugged the power >cord to the cpu, waited a minute, and rebooted. surprise... the 1212 >was back in action. this has only happened once, but this is a rather >awkward and tedious task to initialize the card after a crash. Yes for the 1212 rebooting is not enough. You have to shut down so that the card gets no power. Unplugging from the wall is going a little overboard though. yes it is awkward and tedious. >has >anyone else experienced this problem while using the 1212? (i'm running >OS 8.6) Yes. It is a misfeature of the card. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 30 Jan 2000 03:50:36 -0700 From: James McCartney <---@---.---> Subject: Re: 1212 At 2:35 AM -0700 1/30/00, christian.adam.hresko. wrote: >issues which makes c++ a more efficient language in my opinion... (isn't >SuperCollider written in c++ ?) Yes, however, quite a bit of it is plain C. Knowing C++ will come in handy for SC in the future.. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 30 Jan 2000 18:05:05 +0100 (CET) From: Arie van Schutterhoef <---@---.---> Subject: Re: custom UGens? >Knowing C++ will come in handy for SC in the future.. - -Are you referring to a future possibily of writing custom UGens in C++? AvS <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Arie van Schutterhoef artistic director Schreck Ensemble # -laboratory for live electro-acoustic music- # The Netherlands e-mail:arsche@stad.dsl.nl http://www.xs4all.nl/~schreck/ Tel: 00-31-71-5612287 Fax: 00-31-70-3859268 <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> ------------------------------ Date: Sun, 30 Jan 2000 17:05:36 -0500 From: "christian.adam.hresko." <---@---.---> Subject: Re: custom UGens? Arie van Schutterhoef wrote: > >Knowing C++ will come in handy for SC in the future.. > -Are you referring to a future possibily of writing > custom UGens in C++? > > AvS > > <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> > > Arie van Schutterhoef > artistic director > Schreck Ensemble # -laboratory for live electro-acoustic music- # > > The Netherlands > e-mail:arsche@stad.dsl.nl > http://www.xs4all.nl/~schreck/ > Tel: 00-31-71-5612287 Fax: 00-31-70-3859268 > > <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> i think james mentioned or hinted a bit back that the user (being us) will be able to write our own ugens in c++ and 'port' them into SC. i'm so GLAD that i invested my money in SC as opposed to max / msp. (good programs, just a lot of corporate wank. although miller seems like a nice guy... i wish i had a machine to try PD on) anyway, the dot operator finally makes sense because i had no idea what a dot operator was before my c++ class. i know it's not 'required' to know a language to learn SC (since SC is it's own language) but it definitely helps. btw, what types of (electronic) music do people on the list listen to? (yeah, i know this should be saved for an offlist thread or something... i just noticed that stephen travis pope was on a compilation CD with farmers manual who are one of my favorite groups along with the entire MEGO gang / label) i wonder if korg ever thought about a toggle switch to turn the 1212 on and off. would make things a lot easier although i'm sure it's a lot more complicated than this. snowed in again, christian - -- " kid for a day. " ------------------------------ Date: Mon, 31 Jan 2000 17:31:16 +0100 From: Hans Tutschku <---@---.---> Subject: gui examples Hi James, I don't get the keyDownAction working in the gui examples. ERROR: Message 'keyDownAction_' not understood. RECEIVER: Instance of ButtonView { (063CA3F0, gc=02, fmt=00, flg=00, set=05) instance variables [5] window : instance of GUIWindow (063333F8, size=0, set=05) model : nil settings : nil label : "Get Key Presses" action : nil } ARGS: Instance of Array { (0608B938, gc=02, fmt=01, flg=00, set=00) indexed slots [1] 0 : instance of Function (06093BB0, size=0, set=01) } CALL STACK: Object::doesNotUnderstand arg this = arg selector = 'keyDownAction_' arg args = [*1] < FunctionDef in Method Interpreter::functionCompileContext > var w = var dict = var k = nil Interpreter::interpret arg this = arg string = " // key down actions // keys..." Interpreter::interpretCmdLine arg this = Process::interpretCmdLine arg this = Hans Tutschku - --------------------------- http://www.multimania.com/hanstutschku ------------------------------ Date: Mon, 31 Jan 2000 17:59:13 +0100 From: Hans Tutschku <---@---.---> Subject: gui examples II >Hi James, > >I don't get the keyDownAction working in the gui examples. actually it is not working after one loadet the GUIUtils-lib. Without your example works. Hans ------------------------------ Date: Mon, 31 Jan 2000 17:17:28 -0700 From: James McCartney <---@---.---> Subject: version 2.2.5 available === Version 2.2.5 is now available via ftp: BinHex : ftp://www.audiosynth.com/pub/updates/SC2.2.5.sea.hqx MacBinary (smaller) : ftp://www.audiosynth.com/pub/updates/SC2.2.5.sea.bin SCPlay is distributed in a separate file : BinHex : ftp://www.audiosynth.com/pub/updates/SCPlay2.2.5.sea.hqx MacBinary (smaller) : ftp://www.audiosynth.com/pub/updates/SCPlay2.2.5.sea.bin === Changes in Version 2.2.5 Steinberg's ASIO is now the interface to audio hardware. Obtain ASIO drivers for your sound card from the card manufacturer's website or from Steinberg. Here are some sites for drivers: Korg, Digidesign, Apple : ftp://ftp.steinberg.net/steinberg-software/product_updates/macintosh/asio/ MOTU : http://www.motu.com/downloads/mas/pci324_asio2b.sit.hqx Sonorus : http://www.sonorus.com/STUDIO18.sit Echo : http://www.echoaudio.com/pages/Install%20Echo%20Card.hqx Some settings cannot be made from within SC and must be made from software provided by the sound card manufacturer. The MOTU PCI-324's buffer size is an example. If you have ASIO set for any kind of external clocking then it is up to you to set the sample rate to match what the external gear is running, otherwise the pitch/speed will be transposed. Live scrolling for text windows. A diamond mark appears in a text window's title when its contents have been edited. Bugs in Post Here Always were fixed. Fixed file length calculation bug when reading RawArrays. Wacom tablet driver is now closed when exiting SC. The Finder memory requirements for SC were increased. It was getting cramped. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 31 Jan 2000 22:13:37 -0500 From: "christian.adam.hresko." <---@---.---> Subject: Re: version 2.2.5 available i haven't gone through the entire tutorial yet (obviously...) and was wondering if it mentioned how to use SCPlay? i'm guessing SCPlay is a way to 'distribute' compositions (or whatever you'd like to call them...) made with SuperCollider without having to own SuperCollider. (like max / msp externals??) cheers, christian - -- " kid for a day. " ------------------------------ Date: Mon, 31 Jan 2000 21:32:10 -0700 From: James McCartney <---@---.---> Subject: Re: version 2.2.5 available At 8:13 PM -0700 1/31/00, christian.adam.hresko. wrote: >i haven't gone through the entire tutorial yet (obviously...) and was wondering >if it mentioned how to use SCPlay? You need to incorporate your program into the class library, usually via Main::run. You choose "Compress Library" from the Lang menu which will create a .lib file. You put this compressed library in the SCPlay folder. SCPlay loads Default.lib on startup. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 1 Feb 2000 00:00:49 -0500 (EST) From: tristan jehan <---@---.---> Subject: Serial in SC I might have miss something, but I'm trying to read serial data into SC... Is there an object for that? An example? Is MIDI the only way? Thanks for the help. Tristan Hyperinstruments MIT Media Laboratory (617) 253 2041 ------------------------------ Date: Mon, 21 Feb 2000 17:22:41 +0100 From: rkuivila@mail.wesleyan.edu (Ron Kuivila) Subject: on error... Hi James, Is there any way to force some kind of action when synthesis ends due to a program error (for example, to update GUI items). RJK ------------------------------ Date: Tue, 1 Feb 2000 09:39:48 -0800 (PST) From: "Alex L. Potts" <---@---.---> Subject: Re: version 2.2.5 available james, 1,000 thank you's for the ASIO. all 8 inputs and outputs working fine on our 2408 so far. best, alex ------------------------------ Date: Tue, 01 Feb 2000 10:05:29 -0800 From: Stephen Travis Pope <---@---.---> Subject: Re: version 2.2.5 available I'm new to ASIO -- what happens if your hardware is not supported (as in OpCode USB DACs)? James McCartney wrote: > > Changes in Version 2.2.5 > > Steinberg's ASIO is now the interface to audio hardware. - -- stp Stephen Travis Pope http://www.create.ucsb.edu/~stp ------------------------------ Date: Tue, 1 Feb 2000 12:55:56 -0700 From: James McCartney <---@---.---> Subject: Re: version 2.2.5 available At 11:05 AM -0700 2/1/00, Stephen Travis Pope wrote: >I'm new to ASIO -- what happens if your hardware is not supported (as in >OpCode USB DACs)? Well it wasn't supported before either, but I would think you should be able to use their sound manager driver and choose Apple Sound Manager in the Audio Setup dialog. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 1 Feb 2000 15:41:39 -0700 From: James McCartney <---@---.---> Subject: Re: on error... At 9:22 AM -0700 2/21/00, Ron Kuivila wrote: >Hi James, > > Is there any way to force some kind of action when synthesis ends due to >a program error (for example, to update GUI items). No. Why? If you have an error in the program then it should be fixed. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 1 Feb 2000 15:46:30 -0700 From: James McCartney <---@---.---> Subject: Re: Serial in SC At 10:00 PM -0700 1/31/00, tristan jehan wrote: >I might have miss something, but I'm trying to read serial data into SC... >Is there an object for that? An example? Is MIDI the only way? There is no serial port support in SC. There will be UDP support of some sort soon with OSC. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 1 Feb 00 15:05:36 -0800 From: Mark Trayle <---@---.---> Subject: Re: Serial in SC >There will be UDP support of some sort soon with OSC. Yeah! Mark Trayle / CalArts School of Music / Composition and New Media Program http://shoko.calarts.edu/~met tel: +1.661.255.1050 x2546 / fax: +1.661.255.0938 ------------------------------ Date: Wed, 02 Feb 2000 11:26:49 +0000 From: Colby Leider <---@---.---> Subject: sampling rate Is it not currently possible to change the sampling rate in software, other than changing the Synth classvar sampleRate and recompiling? I see the method sampleRate_ which attempts to dynamically access that classvar, but it calls the (nonexistent?) method isPlaying. Commenting that conditional part out of the code, it still doesn't seem to work. Am I missing something? Thanks, Colby ------------------------------ Date: Thu, 3 Feb 2000 12:45:24 -0500 (EST) From: "Ronald J. Kuivila" <---@---.---> Subject: Re: on error... Hi James, The problem is if you have GUI items triggering processes. Program failure (which could be due to a different program) leaves them thinking they are running a sound when they are not. It means you have to kill all GUI windows and reexecute the start up code. IF they were sent an update, they could reset their state. This can save time, lower frustration, and make recovery in the middle of a concert a lot more graceful. RJK On Tue, 1 Feb 2000, James McCartney wrote: > At 9:22 AM -0700 2/21/00, Ron Kuivila wrote: > >Hi James, > > > > Is there any way to force some kind of action when synthesis ends due to > >a program error (for example, to update GUI items). > > No. Why? If you have an error in the program then it should be fixed. > > > --- james mccartney james@audiosynth.com http://www.audiosynth.com > If you have a PowerMac check out SuperCollider2, a real time synth program: > > > > > > ------------------------------ Date: Thu, 3 Feb 2000 12:01:09 -0700 From: James McCartney <---@---.---> Subject: Re: on error... At 10:45 AM -0700 2/3/00, Ronald J. Kuivila wrote: >Hi James, > > The problem is if you have GUI items triggering processes. Program >failure (which could be due to a different program) leaves them thinking >they are running a sound when they are not. It means you have to kill all >GUI windows and reexecute the start up code. IF they were sent an update, >they could reset their state. This can save time, lower frustration, and >make recovery in the middle of a concert a lot more graceful. Debug your prgram before you go to a concert. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 4 Feb 2000 04:56:23 -0500 (EST) From: "Ronald J. Kuivila" <---@---.---> Subject: Re: on error... jeezopeezo, I think that qualifies as a non-helpful answer.... Since when does it make sense to assume user code is bug-free? Here is a related issue: is there a way for a user program to stop synthesis? For an installation I am working on, I would like to use Synth.collect to gather up impulse responses. (This seems a lot simpler than recording them into files in real time mode.) You cannot run Synth.collect while synthesis is running. But the only way I can see to stop synthesis (without a user typing cmd-period) is to force an error.... RJK On Thu, 3 Feb 2000, James McCartney wrote: > At 10:45 AM -0700 2/3/00, Ronald J. Kuivila wrote: > >Hi James, > > > > The problem is if you have GUI items triggering processes. Program > >failure (which could be due to a different program) leaves them thinking > >they are running a sound when they are not. It means you have to kill all > >GUI windows and reexecute the start up code. IF they were sent an update, > >they could reset their state. This can save time, lower frustration, and > >make recovery in the middle of a concert a lot more graceful. > > Debug your prgram before you go to a concert. > > > --- james mccartney james@audiosynth.com http://www.audiosynth.com > If you have a PowerMac check out SuperCollider2, a real time synth program: > > > > > > ------------------------------ Date: Fri, 4 Feb 2000 10:36:42 -0500 From: Mark Ballora <---@---.---> Subject: Re: on error... >Here is a related issue: is there a way for a user program to stop >synthesis? > >For an installation I am working on, I would like to use Synth.collect >to gather up impulse responses. (This seems a lot simpler than >recording them into files in real time mode.) You cannot run >Synth.collect while synthesis is running. But the only way I can see >to stop synthesis (without a user typing cmd-period) is to force an >error.... > >RJK > Synth.stop will stop synthesis. Mark ------------------------------ Date: Fri, 04 Feb 2000 16:46:55 +0000 From: Martin Robinson <---@---.---> Subject: Re: version 2.2.5 available For info: Emagic AudioWerk8 cards seem to work fine under ASIO in SC (though the buffer size in 2048!). I've been running two cards (i.e. 16 outputs) in one machine and the only problem is that only the inputs on one card work, but I presume that this is to do with Emagic's ASIO driver. This breathes a little life back into the AW8 since they should be pretty cheap by now, we've got 5 here that have sat unused for 18 months. All I need now is an extra 2 PCI slots. Martin >>>>>>Martin Robinson :: (Ex)tractor :: && ________ >>><<<_sonicArts.at(middlesexUniversity.london.uk); ______ <><><>__this.liveElectronics.interFaces.diffusion ____ ________________________________________________________________ >><<>>___t.+44 [0] 7970 405 903 // f.+44 [0] 7970 702 976 __ >><><>____e. _ ------------------------------ Date: Fri, 04 Feb 2000 11:39:32 -0800 From: Alberto de Campo <---@---.---> Subject: Re: on error... "Ronald J. Kuivila" wrote: > jeezopeezo, I think that qualifies as a non-helpful answer.... > Since when does it make sense to assume user code is bug-free? ... >> Debug your prgram before you go to a concert. ... Sorry, I am with James on this one. IMHO, you *can* test all the stuff in your patch that you plan to use live, and make sure all of it works together. If something still happens then, ok; either you haven't thought of everything, or the program itself really has a bug, and you found it at an awkward time. > > Here is a related issue: is there a way for a user program to stop > synthesis? > > For an installation I am working on, I would like to use Synth.collect > to gather up impulse responses. (This seems a lot simpler than > recording them into files in real time mode.) You cannot run > Synth.collect while synthesis is running. But the only way I can see > to stop synthesis (without a user typing cmd-period) is to force an > error.... You can record into signal buffers live, and make switches for rec. on/off and the routing for which one to record into. I made a patch like that for a live sampling and granulation piece that I do not have at hand, but it was not that tricky to do. best regards, Alberto ------------------------------ End of sc-users-digest V1 #80 *****************************