From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #72 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 Thursday, November 11 1999 Volume 01 : Number 072 ---------------------------------------------------------------------- Date: Sat, 06 Nov 1999 19:37:40 -0800 From: Mark Polishook <---@---.---> Subject: Re: turning things off? > > > Anytime you have accumulating CPU usage it is because voices are not > being deallocated and that is always due to not putting an envelope > over your outputs. All outputs of a Spawn or TSpawn should be > multiplied by an envelope. > > ok...thanks...i probably should have known/figured this out.... i'll put an envelope on EVERYTHING. - -mp ------------------------------ Date: Sat, 6 Nov 1999 22:21:10 -0700 From: James McCartney <---@---.---> Subject: Re: limit functions for arrays. At 7:11 PM -0700 11/6/99, Mic Berends wrote: >i am trying to learn the language as fast as possible, but have been banging up against this for so long i'd like to see a result of some kind! i see a great division between filling signals/wavetables using functions and trying to do arithmetical ops and booleans/overDubs on same. i expect this >is because of my limited understanding of the SC model. > >arg x, i confuses me the most. Curly brackets {} define a function in SC. It is not a statement block like in C. This is a nameless function that is passed as a value. The arg declaration declares the function's arguments. For example: a = { arg x, y; [x, y].postln; }; // assign a function to 'a' a.value(1, 2); // evaluate function. posts [1, 2] Perhaps you'll understand better if you look at the implementation of Signal::waveFill : waveFill { arg function, start = 0.0, end = 1.0; var i = 0, step, size, val, x; // evaluate a function for every sample over the interval from // start to end. size = this.size; if (size <= 0, { ^this }); x = start; step = (end - start) / size; while ({ i < size }, { val = function.value(x, this.at(i), i); this.put(i, val); x = x + step; i = i + 1; }); ^this } waveFill takes a function as an argument as well as a start and end value. Then it iterates over the Signal and evaluates the function for each element. It passes three arguments to the function, first the value along the user provided interval [start, end) , second the original contents of the Signal at this index and third, the index. Since I only needed the first of these arguments I only declared one argument when I used it in my previous example. (Here I notice that this diverges from my docs which state that two args are passed. oops..) So the arg x; in the example is used to capture the first argument passed into the function. > >do we have the ability to do calcs using polar math (deg, rad, etc.) and (r, theta, phi, etc), so that i can use them in time functions and matrix slicing? or do i simply need to brush up on my trigonometric maths so that i understand how to derive these terms? i have a rather unique and spotty >grasp on the field, due i think in working with 3D graphics for so long without much explicit math training. Yes. There are Polar and Complex classes. Check them out. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 7 Nov 1999 00:29:56 -0500 (EST) From: Matthew Rogalsky <---@---.---> Subject: Re: query re: misconception > > > >Having read & understood the "misconception" clarification... etc. > I'm afraid you didn't understand it. It is not a boolean test. I used the wrong term -- forgive me if I am really dense on this point, but the "misconception" file shows how I can test a ugen and get back a one or a zero, and I assumed I could then go ahead and use that as the test value in an if-then. I am still confused on this point. > == is not a BinaryOpUGen. You must use an inequality. I'm curious why there is no == ? Doesn't this mean one has to test twice? As far as doing what I wanted to do, which was test Wacom pen pressure and ignore x and y coords until the pen is applied to the surface, Martin Robinson pointed out that I was trying to go about it the hard way: Gate does exactly the job. (thanks Martin) cheers mattr ------------------------------ Date: Sun, 07 Nov 1999 01:27:41 -0500 From: Mic Berends <---@---.---> Subject: Re: limit functions for arrays. James McCartney wrote: > > At 7:11 PM -0700 11/6/99, Mic Berends wrote: > > >i am trying to learn the language as fast as possible, but have been banging up against this for so long i'd like to see a result of some kind! i see a great division between filling signals/wavetables using functions and trying to do arithmetical ops and booleans/overDubs on same. i expect this > >is because of my limited understanding of the SC model. > > below was a different question than above, perhaps i wasn't clear. or perhaps you're trying to get me to do it m'own damn self. i try! please tell me how to b = a + b; // this implicitly overwrites, correct? with wrapping of the result to the [-1,1] range (& Osc playing/scoping). (both a and b are Signals inited and filled with values of limits [-1,1]) i tried s = Signal.newClear(1024).waveFill({ arg x; b.wrap(-1, 1) }).asWavetable but that didn't work of course. how to just copy b in the method function? (seems like there's going to be a lot of overhead making a new Signal each iteration, can't i wrap and overWrite the Signal array another way? preferably directly back into b.) my current code is: ( var a, b; // fill wavetables b = Signal.sineFill(1024, [1]); a = Signal.newClear(1024).waveFill({ arg x; (x*2)-1 }, 0, 1 ); // make a sawtooth wave 100000.do ({arg x; b = a + b; b.wrap(-1, 1); b.asWavetable; }); { Osc.ar(b, 200) }.scope ) 1. why doesn't it play/scope until the loop is finished? if i just use "do", it skips the loop. 2. Osc complains about no wavetable. > >arg x, i confuses me the most. > > Curly brackets {} define a function in SC. It is not a statement > block like in C. This is a nameless function that is passed > as a value. The arg declaration declares the function's arguments. ooooohhh. the args are like temp vars or are vars defined in the method? some functions seem to understand x implicitly as sample index time? is that only because x is def'd in the method as such? > Yes. There are Polar and Complex classes. Check them out. niiiice. okay, i go fun. annoying newbie! ;) M. - -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>v ^ Mic Berends : in the end, : Tomorrow Maximum v ^ MINDESIGN limited : there can be : Heaven Kissing EP v ^ http://www.mindesign.com/ : only one. : available now. v ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ------------------------------ Date: Sat, 6 Nov 1999 23:25:09 -0800 From: "Thomas Miley" <---@---.---> Subject: Adding values to a float array I'm trying to build up a FloatArray and check it with postln but never see anything beyond the 3rd element added/replaced. Is this just a limitation of postln? For example try: z = FloatArray[]; z.add(1.1).postln; z.add(2.2).postln; z.add(3.3).postln; z.add(4.4).postln; // shows FloatArray[ 1.1, 2.2, 4.4] Has it actually added it or just replaced it? Thanks ------------------------------ Date: Sun, 7 Nov 1999 01:38:29 -0700 From: James McCartney <---@---.---> Subject: Re: query re: misconception At 10:29 PM -0700 11/6/99, Matthew Rogalsky wrote: >> > >> >Having read & understood the "misconception" clarification... > >etc. > >> I'm afraid you didn't understand it. It is not a boolean test. > >I used the wrong term -- forgive me if I am really dense >on this point, but the "misconception" file shows how I can test a ugen >and get back a one or a zero, and I assumed I could then go ahead and use >that as the test value in an if-then. I am still confused on this point. Your function builds a ugen graph. It is not code to be executed to synthesize your sound. Try this: ( SinOsc.ar > 0.0 ).postln; The result is not a Boolean. The result is not a Signal. It is a BinaryOpUGen that, _once your Synth is sent the 'play' message_, will generate audio rate output. In class UGen I defined the 'if' message to do the multiply of the test signal for you for notational convenience. > >> == is not a BinaryOpUGen. You must use an inequality. >I'm curious why there is no == ? Doesn't this mean one has to test twice? Because == is needed to be an actual Boolean test and not a generator of a BinaryOpUGen. Also it is often bad programming style to use equality in tests of floating point numbers. You should test for crossing boundaries not absolute values. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 7 Nov 1999 01:54:34 -0700 From: James McCartney <---@---.---> Subject: Re: limit functions for arrays. At 11:27 PM -0700 11/6/99, Mic Berends wrote: > >b = a + b; // this implicitly overwrites, correct? a + b creates a new Signal object for the result and this is stored back into b. > >with wrapping of the result to the [-1,1] range (& Osc playing/scoping). huh? > >(both a and b are Signals inited and filled with values of limits [-1,1]) > >i tried > >s = Signal.newClear(1024).waveFill({ arg x; b.wrap(-1, 1) }).asWavetable b is a Signal. waveFill works sample by sample. So you are mismatching ideas here. I'm not sure what you are trying to do. You should usually provide start and end args to waveFill. > >but that didn't work of course. how to just copy b in the method function? s = Signal.newClear(1024).waveFill({ arg x, y, i; b.at(i) }).asWavetable; of course the easy way is to write: s = b.copy.asWavetable; > >(seems like there's going to be a lot of overhead making a new Signal each iteration, can't i wrap and overWrite the Signal array another way? preferably directly back into b.) Yes. You cannot do this in real time. Filling wavetables is a non real time thing. I think part of your problem is that you are thinking in C or BASIC and this is a higher level language. > >my current code is: > >( >var a, b; > >// fill wavetables >b = Signal.sineFill(1024, [1]); >a = Signal.newClear(1024).waveFill({ arg x; (x*2)-1 }, 0, 1 ); // make a sawtooth wave > >100000.do ({arg x; > >b = a + b; >b.wrap(-1, 1); >b.asWavetable; > >}); > >{ Osc.ar(b, 200) }.scope > >) > >1. why doesn't it play/scope until the loop is finished? Because that is the way you wrote it. The loop happens first and then you play. >if i just use "do", it skips the loop. The argument to 'do' is how many times to do it. >2. Osc complains about no wavetable. You are obviously confused, and I do not know how to unconfuse you. > >> >arg x, i confuses me the most. >> >> Curly brackets {} define a function in SC. It is not a statement >> block like in C. This is a nameless function that is passed >> as a value. The arg declaration declares the function's arguments. > >ooooohhh. the args are like temp vars or are vars defined in the method? >some functions seem to understand x implicitly as sample index time? >is that only because x is def'd in the method as such? Args and vars are separate things. Args are passed into the function. Vars are local values in the function. No functions understand anything implicitly. They are called with certain arguments by certain methods. Synth.new passes the synth object to the function. Spawn passes itself, an event count, the synth object to the function. etc.. You can call an argument anything you want. You can write: Signal.newClear(1024).waveFill({ arg do_the_watusi; ..... if you like.. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 7 Nov 1999 01:58:51 -0700 From: James McCartney <---@---.---> Subject: Re: Adding values to a float array At 12:25 AM -0700 11/7/99, Thomas Miley wrote: >I'm trying to build up a FloatArray and check it with postln but never see >anything beyond the 3rd element added/replaced. Is this just a limitation >of postln? > >For example try: > >z = FloatArray[]; >z.add(1.1).postln; >z.add(2.2).postln; >z.add(3.3).postln; >z.add(4.4).postln; // shows FloatArray[ 1.1, 2.2, 4.4] > >Has it actually added it or just replaced it? The above is improper usage of ArrayedCollection::add. See the ArrayedCollection.help file on add. you should write like: z = z.add(1.1); --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 07 Nov 1999 06:15:19 -0500 From: Mic Berends <---@---.---> Subject: Re: limit functions for arrays. James McCartney wrote: > > At 11:27 PM -0700 11/6/99, Mic Berends wrote: > > > >b = a + b; // this implicitly overwrites, correct? > > a + b creates a new Signal object for the result and this is stored back into b. yes, with a range of [-2,2]. > >with wrapping of the result to the [-1,1] range. > > huh? i mean to use wrap or fold with [-1,1] parameters on this [-2,2] data and store back into b. > >but that didn't work of course. how to just copy b in the method function? > > s = Signal.newClear(1024).waveFill({ arg x, y, i; b.at(i) }).asWavetable; > > of course the easy way is to write: > > s = b.copy.asWavetable; disco. this is what i looking for. > >(seems like there's going to be a lot of overhead making a new Signal each iteration, can't i wrap and overWrite the Signal array another way? preferably directly back into b.) > > Yes. You cannot do this in real time. Filling wavetables is a non real time thing. cannot do in real time? not by using double buffers or bucket brigade type coding? seems like an odd limitation for an audio DSP language. as Lawrence Ball mentioned he could do it on an Apple II with Mountain hardware back in '83. > I think part of your problem is that you are thinking in C or BASIC and this is a higher level > language. yes, very true, and not even C++ so there you go oops. and 6502 assembly. > >2. Osc complains about no wavetable. > > You are obviously confused, and I do not know how to unconfuse you. ROFL! i couldn't breathe for several minutes when i read this. :) a phrase to remember! > You can call an argument anything you want. You can write: > > Signal.newClear(1024).waveFill({ arg do_the_watusi; ..... > > if you like.. i will try it. - -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>v ^ Mic Berends : in the end, : Tomorrow Maximum v ^ MINDESIGN limited : there can be : Heaven Kissing EP v ^ http://www.mindesign.com/ : only one. : available now. v ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ------------------------------ Date: Sun, 7 Nov 1999 12:17:32 +0100 (MET) From: Andreas Pieper <---@---.---> Subject: Re: 1212 io, signalview On Sat, 6 Nov 1999, James McCartney wrote: > At 4:09 AM -0700 10/28/99, andreas pieper wrote: > >hi, > > > >is there a way to prevent sc from crashing with the korg 1212 board when i > >saturate the cpu (way) over 100%? using the mac sound hardware is much more > >forgiving in this respect. > > > > Yes there is a potential fix for this, but the consequence might be > glitching when very close to 100% CPU. Might not be good for live > performance. i ususally try to steer well below 100%, so the glitch consequence would be no problem. i would be happy to be able to use only 95% of my cpu but eliminate crashes altogether, be it live or un-live :) > > >another thing which keeps me scratching my head: whats the deal with the > >zoom parameter in SignalView? i just wanted to display a sample in a > >signalview, and with the given signal.size (and the signalview dimensions) > >i failed to calculate the right zoom value to display the whole sample. > > zoom is in number of samples per pixel. thank you, another day, a new brain, i figured it out already. maybe i can even add a "scaleToFit" convenience method to signalView. best, a - - Andreas Pieper mego@url.de ------------------------------ Date: Sun, 07 Nov 1999 11:14:25 -0500 From: Scott Wilson <---@---.---> Subject: Re: GUIUtils Yeah, it turns out that the methods streamContentsLimit and streamContents are not present in the current GUIUtils version of SequencableCollection.sc. I fixed that but then I got a different error about sending the message .name to an Array, so I more or less decided to leave it for an update. Scott >>ERROR: >>Message 'streamContentsLimit' not understood. > >Looks like some incompatibility with the new Streams >implementation of asString. > > > --- james mccartney james@audiosynth.com http://www.audiosynth.com >If you have a PowerMac check out SuperCollider2, a real time synth program: > > > > > > ------------------------------ Date: Sun, 7 Nov 1999 12:05:25 -0700 From: James McCartney <---@---.---> Subject: Re: limit functions for arrays. At 4:15 AM -0700 11/7/99, Mic Berends wrote: >cannot do in real time? not by using double buffers or bucket brigade type coding? seems like an odd limitation for an audio DSP language. as Lawrence Ball mentioned he could do it on an Apple II with Mountain hardware back in '83. > I'm saying that waveFill is very slow. You should use some incremental method of filling the wave table if possible. However I'm not sure if wave tables are even the best way to do what you are trying to do. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 7 Nov 1999 21:21:05 -0500 (EST) From: David Crandall <---@---.---> Subject: update info? I'd been off the list since before version 2.2.2, could someone please repost or email me the 'new features' messages for v2.2.2 and v2.2.3? Thanks, dc ------------------------------ Date: Sun, 7 Nov 1999 19:30:04 -0700 From: James McCartney <---@---.---> Subject: Re: update info? At 7:21 PM -0700 11/7/99, David Crandall wrote: >I'd been off the list since before version 2.2.2, could someone please >repost or email me the 'new features' messages for v2.2.2 and v2.2.3? They are listed in the release notes. You can also get all the archived list messages from the website. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 7 Nov 1999 22:48:28 -0700 From: James McCartney <---@---.---> Subject: Re: a bug in the dependancy mechanism At 2:05 AM -0700 11/3/99, Ron Kuivila wrote: >Hi James, > > The dependancy mechanism doesn't update all dependants when their number >exceeds >the number of places initially allocated in the addDependant. I can't reproduce this. Do you have an example? The following works: f = 456; 10.do({ arg x; f.addDependant(TestDependant.new) }); f.changed; with TestDependant defined as: TestDependant { update { arg thing; (thing.asString ++ " was changed.\n").post; } } > >The following appears to fix things: > > *changed { arg theChanger; ^ changed should not be a class method. Are you changing the dependancy list in your update function? If so then I can see why the 'copy' in your fix would fix that situation. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 8 Nov 1999 09:35:50 +0000 From: finer@easynet.co.uk Subject: File/SCPlay James, Thanks for your reply - >>Is there any way that the interpreter primitive could be implemented in >>SCPlay. > >It will not be, because then it would be basically the same as the >full version. > >>My file is over 200 Mb . oops. > >Can't you just make it a method of Main.sc ? I've pondered this but am not quite clear as to how to proceed . I'm looking for a way to make the File class work in SCPlay and retrieve values from time to time from the very large list - 200Mb. Jem ------------------------------ Date: Tue, 09 Nov 1999 03:45:01 -0500 From: Mic Berends <---@---.---> Subject: o say can you hear me? hello, James, did you get my last email about What i was Trying To Do with Lawrence Ball's Harmonic Mathematics along with his post to the IOTA list? it was sent to asynth@io.com... Cheers, Mic. - -- >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>v ^ Mic Berends : in the end, : Tomorrow Maximum v ^ MINDESIGN limited : there can be : Heaven Kissing EP v ^ http://www.mindesign.com/ : only one. : available now. v ^<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< ------------------------------ Date: Tue, 9 Nov 1999 03:46:26 -0700 From: James McCartney <---@---.---> Subject: Re: o say can you hear me? At 1:45 AM -0700 11/9/99, Mic Berends wrote: >hello, James, did you get my last email about What i was Trying To Do with Lawrence Ball's Harmonic Mathematics along with his post to the IOTA list? it was sent to asynth@io.com... Yes but it was a bit long for me to get into for now. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 09 Nov 1999 15:36:16 +0100 From: Julian Rohrhuber <---@---.---> Subject: Filetask trying to save/load arrayed data got me basically to this point. uncommenting the task produces an error ( var f, g, a, j; { arg synth; f = File("test","w"); f.write([[100, 234], 200, 300].asCompileString); f.close; g = File("test","r"); a = g.readAllString.compile.value; g.close; /* Task( { loop({ j = File("test","r"); a = j.readAllString.compile.value; j.close; f.write(a.scramble.asCompileString); f.close; 3.wait; }); }); */ Spawn.ar({ arg sp, i; PSinGrain.ar(a.wrapAt(i), 0.1, 0.5) }, 2, 1) }.play; ) best, Julian ------------------------------ Date: Tue, 9 Nov 1999 11:44:52 -0500 (EST) From: Landon Rose <---@---.---> Subject: DiskOut dropping buffers James- Given these settings: Prefs : hardware = apple sampleRate = 48000 clockSource = 0 bufMultiple = 4 useSoundInput = 1 defaultBlockSize = 128 (I set the bufMultiple to 4 and BlockSize to 128 figuring the bigger the better!) and using a VXPocket on a PB 2400 set to 48000 Digital input. I need to set the sample rate at 48k because my Sony TCD only records at that rate using the mic input. My external hard drive checks out ok though I am now going to try recording one channel and optimizing the disk. Same dropped buffers... I also recorded using the internal HD and the Apple line in. Analog or dig input results in dropped buffers either 5:40 min for 48k or around 6 min for 44.1k I get the Dropped buffers message about 5 and half minutes into recording using this patch: Synth.record( { AudioIn.ar([1,2],0.5) }, // ugen graph function (70 * 60), // make a duration in seconds for file "Soundtakes:Tower1", // path name 'AIFF', // header format '16 big endian signed' // sample format ) *WARNING: DiskOut dropped a buffer *WARNING: DiskOut dropped a buffer *WARNING: DiskOut dropped a buffer *WARNING: DiskOut dropped a buffer *WARNING: DiskOut dropped a buffer *WARNING: DiskOut dropped a buffer *WARNING: DiskOut dropped a buffer *WARNING: DiskOut dropped a buffer ) If I use the Apple sound chip at 44.1k, recording to the internal HD the Warning occurs at around 6 minutes. Questions: does BlockSize relate to sample rate? and what exactly is bufMultiple? What's going on? Thanks Landon ------------------------------ Date: Tue, 9 Nov 1999 11:39:23 -0700 From: James McCartney <---@---.---> Subject: Re: DiskOut dropping buffers At 9:44 AM -0700 11/9/99, Landon Rose wrote: >James- > Given these settings: > Prefs : > hardware = apple > sampleRate = 48000 > clockSource = 0 > bufMultiple = 4 > useSoundInput = 1 > defaultBlockSize = 128 > >(I set the bufMultiple to 4 and BlockSize to 128 figuring the bigger > the better!) The DiskOut buffer size is the important one here, not the BlockSize or bufMultiple. In fact sometimes larger bufMultiple can make things worse. In Synth.record the buffer size is set to 32768. You might try increasing it. I ran your patch as is for 20 minutes on a G3/300 without a dropped buffer, so you may have a slow disk drive. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 9 Nov 1999 11:39:45 -0700 From: James McCartney <---@---.---> Subject: Re: Filetask At 7:36 AM -0700 11/9/99, Julian Rohrhuber wrote: >trying to save/load arrayed data got me basically to this point. >uncommenting the task produces an error > a = j.readAllString.compile.value; You cannot run the compiler during synthesis. > f.write(a.scramble.asCompileString); > f.close; You do not open the file f in your Task. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 9 Nov 1999 14:18:07 -0500 (EST) From: Landon Rose <---@---.---> Subject: Re: DiskOut dropping buffers James- >In Synth.record the buffer size is set to 32768. I set the buffer size to 65536 and it doubled the recording time til I get a dropout buffer- about 11 minutes. plenty of time for now. must be a slow drive. Another question- I recorded using digital input at 48000 but left SoundFile sample rate at 44100 (and Synth rate at 44.1k too). In Audio Setup I chose 48k. The file is written as 44.1k. Through my cheap speakers the file plays fine as far as I can tell. SC has sample rate converter built in? Landon ------------------------------ Date: Tue, 09 Nov 1999 13:19:02 -0700 From: David Cottle <---@---.---> Subject: MOTU 2408 Hi, In one of our studios we are updating to a MOTU 2408 and that computer uses FreeMIDI. Will SC work with FreeMIDI? When I launch I get an error saying that the apple sound driver could not be found. I presume this is because we are using the MOTU extensions for sound. When I open the Monitors and Sound it says it is using PCI-324 (?) for sound out. Is this the conflict? And how do I work around it? ------------------------------ Date: Tue, 9 Nov 1999 16:31:26 -0700 From: James McCartney <---@---.---> Subject: Re: DiskOut dropping buffers At 12:18 PM -0700 11/9/99, Landon Rose wrote: >SC has sample rate converter built in? No. Your file will play back 10% off speed. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Wed, 10 Nov 1999 06:47:16 -0500 From: Andreas Merz <---@---.---> Subject: Authorization run out Hi James, my authorization runs out. Please sent my a new code. Andreas Merz WELTKLANG ELEKTRONIK MUSIK ------------------------------ Date: Wed, 10 Nov 1999 18:47:06 +0100 From: Julian Rohrhuber <---@---.---> Subject: Re: Filetask So is there a way to save and load an array / array of arrays during synthesis? I have tried around with the examples in File.help, but I found no other solution for this case. James McCartney wrote: > At 7:36 AM -0700 11/9/99, Julian Rohrhuber wrote: > >trying to save/load arrayed data got me basically to this point. > >uncommenting the task produces an error > > > a = j.readAllString.compile.value; > > You cannot run the compiler during synthesis. > > > f.write(a.scramble.asCompileString); > > f.close; > > You do not open the file f in your Task. > > --- james mccartney james@audiosynth.com http://www.audiosynth.com > If you have a PowerMac check out SuperCollider2, a real time synth program: > ------------------------------ Date: Wed, 10 Nov 1999 12:25:20 -0700 From: James McCartney <---@---.---> Subject: Re: Filetask At 10:47 AM -0700 11/10/99, Julian Rohrhuber wrote: >So is there a way to save and load an array / array of arrays during >synthesis? >I have tried around with the examples in File.help, but I found no other >solution for this case. > Actually it turns out I was wrong, that technically you can run the compiler during synthesis, however it is a very expensive operation so not recommended. Currently there is not a simple solution for reading an array of arrays in SC ascii syntax during synthesis. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Wed, 10 Nov 1999 21:15:47 +0000 From: finer@easynet.co.uk Subject: memory Is this correct - in 256Mb of Ram one can hold up to but not more than 128 Mb of soundfiles ? How much RAM does SC + operating system need on top of this - ie what's the minimum RAM requirement to run Mac os + SC + 128 Mb soundfiles ? cheers, Jem ------------------------------ Date: Wed, 10 Nov 1999 15:43:55 -0700 From: James McCartney <---@---.---> Subject: Re: memory At 2:15 PM -0700 11/10/99, finer@easynet.co.uk wrote: >Is this correct - in 256Mb of Ram one can hold up to but not more than 128 >Mb of soundfiles ? It depends on your sound files. Are they stored as 12 bit, 16 bit, 24 bit or 32 bit? In SC memory they get expanded to 32 bit per sample. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 11 Nov 1999 08:23:24 +0000 From: finer@easynet.co.uk Subject: Re: memory >At 2:15 PM -0700 11/10/99, finer@easynet.co.uk wrote: >>Is this correct - in 256Mb of Ram one can hold up to but not more than 128 >>Mb of soundfiles ? > >It depends on your sound files. Are they stored as 12 bit, 16 bit, >24 bit or 32 bit? In SC memory they get expanded to 32 bit per sample. Does this mean I can store them as 32bit without any loss of RAM. I mean if 16 gets converted to 32 is not 32 better to start with, quality wise. Sorry to be so thick but I never assumed I could even make soundfiles higher than 16 bit. I'll slightly rephrase the previous question : Stored as 16 bit, SD2 files - Is this correct - in 256Mb of Ram one can hold up to but not more than 128 Mb of soundfiles ? How much RAM does SC + operating system need on top of this - ie what's the minimum RAM requirement to run Mac os + SC + 128 Mb soundfiles ? Jem ------------------------------ Date: Thu, 11 Nov 1999 11:07:40 +0100 From: rkuivila@mail.wesleyan.edu (Ron Kuivila) Subject: Re: 1212 io, signalview, glitches vs. crashes >i ususally try to steer well below 100%, so the glitch consequence would >be no problem. i would be happy to be able to use only 95% of my cpu >but eliminate crashes altogether, be it live or un-live :) > I second this - a crash on stage is far, far worse than a glitch. Rebooting can take several minutes and may not get you back to where you were.... RJK ------------------------------ Date: Thu, 11 Nov 99 09:53:06 -0000 From: Mark Trayle <---@---.---> Subject: Re: 1212 io, signalview, glitches vs. crashes >>i ususally try to steer well below 100%, so the glitch consequence would >>be no problem. i would be happy to be able to use only 95% of my cpu >>but eliminate crashes altogether, be it live or un-live :) >> >I second this - a crash on stage is far, far worse than a glitch. >Rebooting can take several minutes and may not get you back to where you >were.... Here here! Mark Trayle CalArts School of Music Composition and New Media Chair, Composition Program http://shoko.calarts.edu/~met tel: +1.661.255.1050 x2546 / fax: +1.661.255.0938 ------------------------------ Date: Thu, 11 Nov 1999 18:51:40 +0100 From: Julian Rohrhuber <---@---.---> Subject: Re: Filetask so of course I've tried different solutions including unfolding all the dimensions into 1-D. the point is I don't find a way to convert a Collection into a FloatArray and using File.putAll(...) I just couldn't find out how to get the collection back. how do *you* store your data during synthesis? in the fridge? all the best Julian James McCartney wrote: > At 10:47 AM -0700 11/10/99, Julian Rohrhuber wrote: > >So is there a way to save and load an array / array of arrays during > >synthesis? > >I have tried around with the examples in File.help, but I found no other > >solution for this case. > > > > Actually it turns out I was wrong, that technically you can > run the compiler during synthesis, however it is a very expensive > operation so not recommended. > > Currently there is not a simple solution for reading an array of > arrays in SC ascii syntax during synthesis. > > --- james mccartney james@audiosynth.com http://www.audiosynth.com > If you have a PowerMac check out SuperCollider2, a real time synth program: > ------------------------------ Date: Thu, 11 Nov 1999 14:57:12 -0700 From: James McCartney <---@---.---> Subject: Re: 1212 io, signalview, glitches vs. crashes At 2:53 AM -0700 11/11/99, Mark Trayle wrote: >>>i ususally try to steer well below 100%, so the glitch consequence would >>>be no problem. i would be happy to be able to use only 95% of my cpu >>>but eliminate crashes altogether, be it live or un-live :) >>> >>I second this - a crash on stage is far, far worse than a glitch. >>Rebooting can take several minutes and may not get you back to where you >>were.... > >Here here! It is not necessarily a crash it is a UI lockout. There is no guarantee that the fix will work either. You may still lock up, but also get glitching and lowered performance too. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 11 Nov 1999 22:20:24 +0100 From: andreas pieper <---@---.---> Subject: Re: 1212 io, signalview, glitches vs. crashes ok, so a locked mouse pointer and a 1212 card looping over a buffersize full of sound is not really something you have a direct cure for? i have to add that i am experiencing this problem quite rarely, all in all the supercollider/1212 combination is a very powerful and very usable system. best, a - --On Don, 11. Nov 1999 14:57 Uhr -0700 James McCartney wrote: > At 2:53 AM -0700 11/11/99, Mark Trayle wrote: >>>> i ususally try to steer well below 100%, so the glitch consequence >>>> would be no problem. i would be happy to be able to use only 95% of my >>>> cpu but eliminate crashes altogether, be it live or un-live :) >>>> >>> I second this - a crash on stage is far, far worse than a glitch. >>> Rebooting can take several minutes and may not get you back to where you >>> were.... >> >> Here here! > > It is not necessarily a crash it is a UI lockout. > There is no guarantee that the fix will work either. > You may still lock up, but also get glitching and lowered performance too. > > > --- james mccartney james@audiosynth.com > http://www.audiosynth.com If you have a PowerMac check out > SuperCollider2, a real time synth program: > > > > andreas pieper mego@url.de pgp fingerprint A7B1 721D 65E6 1A2D BA28 4112 28B2 C3B8 ------------------------------ Date: Thu, 11 Nov 1999 15:54:04 -0700 From: James McCartney <---@---.---> Subject: Re: 1212 io, signalview, glitches vs. crashes At 2:20 PM -0700 11/11/99, andreas pieper wrote: >ok, so a locked mouse pointer and a 1212 card looping over a buffersize >full of sound is not really something you have a direct cure for? Once we are running in a separate thread in MacOSX there is a better way to fix it. However the sound architecture on MacOSX is still not clear. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 12 Nov 1999 09:11:08 +1100 From: Garth Paine <---@---.---> Subject: DIGI 001 HI James, Do we have a final answer on weather the DIGI 001 interface will work with SC2? Cheers, Garth Listen to some of the tracks from my latest CD at http://www.activatedspace.com.au See my MAP1 installation http://www.activatedspace.com.au/Map1/map1.html (RealVideo) ,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,. Activated Space . Composer, Sound Designer, Installation Artist .. Interactives Designer, Exhibition Consultant ........ph. 61 3 95720133 .,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,.,. ------------------------------ Date: Thu, 11 Nov 1999 16:46:31 -0700 From: James McCartney <---@---.---> Subject: Re: DIGI 001 At 3:11 PM -0700 11/11/99, Garth Paine wrote: >HI James, > >Do we have a final answer on weather the DIGI 001 interface will work with SC2? Yes we did. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 11 Nov 1999 18:14:03 -0500 (EST) From: John F Duesenberry <---@---.---> Subject: Re: DIGI 001 does that mean "Yes, we have an answer," or "Yes, it does work w/ Digi001?" On Thu, 11 Nov 1999, James McCartney wrote: > At 3:11 PM -0700 11/11/99, Garth Paine wrote: > >HI James, > > > >Do we have a final answer on weather the DIGI 001 interface will work with SC2? > > Yes we did. > > > --- james mccartney james@audiosynth.com http://www.audiosynth.com > If you have a PowerMac check out SuperCollider2, a real time synth program: > > > > > ------------------------------ End of sc-users-digest V1 #72 *****************************