From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #34 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, April 4 1999 Volume 01 : Number 034 ---------------------------------------------------------------------- Date: Sun, 28 Mar 1999 11:38:44 -0500 From: rkuivila@mail.wesleyan.edu Subject: Re: SC2 buffer delay?, Active SuperCollider Sites? >I have received an NDA from Steinberg for ASIO, but am still waiting >on the SDK. This will allow me to support the MOTU 2408 card which >can have 64 sample buffers. It remains to be seen how much performance >degradation there is going to such small buffers. Three cheers for the NDA! The performance degradation would be due to the increased audio interrupt rate? Incidentally, are there any performance issues related to the buffer size of the root synth vs. the hardware buffer size? RJK ------------------------------ Date: Sun, 28 Mar 1999 11:10:44 -0600 From: James McCartney <---@---.---> Subject: Re: SC2 buffer delay?, Active SuperCollider Sites? At 10:38 AM -0600 3/28/99, rkuivila@mail.wesleyan.edu wrote: >>I have received an NDA from Steinberg for ASIO, but am still waiting >>on the SDK. This will allow me to support the MOTU 2408 card which >>can have 64 sample buffers. It remains to be seen how much performance >>degradation there is going to such small buffers. > >Three cheers for the NDA! > >The performance degradation would be due to the increased audio interrupt rate? >Incidentally, are there any performance issues related to the buffer size >of the root synth vs. the hardware buffer size? > >RJK Increased interrupt rate, increased frequency and smaller run length of buffer float->int conversion code. Anytime you have to run some code more often over smaller vectors of data the performance will degrade. You get more overhead from function calls, register loading and unloading. The best performance can be had if the root synth block size is an even subdivision of the hardware buffer size. If possible it is best that all synths have the same block size. I will add an option in the future to turn off the sample accurate scheduling and variable block sizes which will improve performance a bit. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sun, 28 Mar 1999 11:13:18 -0600 From: James McCartney <---@---.---> Subject: Re: Parenthesis matching glitch At 4:38 PM -0600 3/27/99, David Cottle wrote: >Hi, > >Has anyone else experienced this glitch: Now and again SC loses track of >parentheses. It doesn't match correctly even though the code is correct. >At that time when I double click on the left side of a left parenthesis: This is fixed in the next version. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Mon, 29 Mar 1999 11:26:49 -0700 From: "David Cottle" <---@---.---> Subject: Re: Parenthesis matching glitch Hi, >>Has anyone else experienced this glitch: Now and again SC loses track of >>parentheses. It doesn't match correctly even though the code is correct. >>At that time when I double click on the left side of a left parenthesis: > > This is fixed in the next version. I'm working with 2.0d29, which I think is the most recent on the site. Is there a more recent version and I'm not looking in the right place, or do you have an idea when the next will be available? ------------------------------ Date: Mon, 29 Mar 1999 12:52:53 -0600 From: James McCartney <---@---.---> Subject: Re: Parenthesis matching glitch At 12:26 PM -0600 3/29/99, David Cottle wrote: >Hi, > >>>Has anyone else experienced this glitch: Now and again SC loses track of >>>parentheses. It doesn't match correctly even though the code is correct. >>>At that time when I double click on the left side of a left parenthesis: >> >> This is fixed in the next version. > >I'm working with 2.0d29, which I think is the most recent on the site. Is >there a more recent version and I'm not looking in the right place, or do >you have an idea when the next will be available? quite soon. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 30 Mar 1999 15:21:06 +0100 From: finer@easynet.co.uk Subject: woomph Hello, In the following code ; (// split filter - below cut filter cutoff freq is modulated // this is added to input sound, high pass filtered above cut ({ var input,lpf,hpf,cut; cut = MouseX.kr(25,10000); input = AudioIn.ar([1,2]); lpf = LPF.ar(input,FSinOsc.ar(MouseY.kr(0.1,10),cut/2,cut/2)); hpf = HPF.ar(input,cut); lpf + hpf }).scope ) As the mouse is moved toward the top of the screen, ie modulation of lpf slows down, there is a woomph and then the patch ceases to work. What goes on and how can one avoid it ? Thanks, Jem ------------------------------ Date: Tue, 30 Mar 1999 08:44:57 -0600 From: James McCartney <---@---.---> Subject: Re: woomph At 8:21 AM -0600 3/30/99, finer@easynet.co.uk wrote: > lpf = LPF.ar(input,FSinOsc.ar(MouseY.kr(0.1,10),cut/2,cut/2)); >As the mouse is moved toward the top of the screen, ie modulation of lpf >slows down, there is a woomph and then the patch ceases to work. > >What goes on and how can one avoid it ? Use SinOsc. FSinOsc should not be frequency modulated since it is a filter on the brink of instability. Transients can make it blow up. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 30 Mar 1999 08:47:43 -0600 From: James McCartney <---@---.---> Subject: Re: woomph Oh, also FSinOsc.ar should not be used below about 40 Hz. As the frequency gets lower the filter coefficient loses precision reaching 2.0. At that point the filter goes unstable. FSinOsc.kr can be used down to about 40/blockSize Hz. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 30 Mar 1999 12:27:01 -0700 From: "David Cottle" <---@---.---> Subject: SC in Electro-Acoustic Music courses Hi, I just got back from SEAMUS and there was a discussion group for teaching techniques. They made a case for returning to the analog logic of patch chord and knobs to teach the basics. When they asked for our input I mentioned our experience with SC and there was considerable interest. I've been working on some lessons that go along with Pogue's book. I would be happy to have anyone interested take a look and offer feedback. http://www.byu.edu/music/labs/ems/287/ - -- ><><><><><><><><><><><> David Cottle composition, notation, contra lime@uiuc.edu ------------------------------ Date: Tue, 30 Mar 1999 13:34:58 -0600 From: James McCartney <---@---.---> Subject: version 2.1 available Version 2.1 is now available via ftp: BinHex 2,935K : ftp://www.audiosynth.com/pub/updates/SC2.1.sea.hqx MacBinary 2,153K : ftp://www.audiosynth.com/pub/updates/SC2.1.sea.bin Changes in Version 2.1 Digidesign cards are supported. AMIII support has been tested by me and Digidesign has verified that their other cards work as well. Digidesign has been very helpful in supporting this and I want to thank them for that. Klank has been changed so that the impulse response amplitude for a particular frequency is independant of the ring time. Before, longer ring times would give smaller amplitudes. Now, the impulse response amplitude of a particular frequency is the same as the amplitude of the impulse. This means that for most moderate duration ring times Klank is much louder than before. Excitation sources in existing patches should be reduced in amplitude by a factor of from 10 to 1000 or more depending on what the ring time was in the patch. The reason for this change is to allow more predictable control of Klank impulse responses. For example now it is possible to have a frequency have an impulse response envelope like that of the Decay2 unit generator by putting two resonances at that frequency with amplitudes inverted w/r to each other and with differing ring times. At the attack they will cancel completely but then the longer ringing resonator will dominate. An OldKlank UGen is provided for compatibility in this version but may be removed in the future. Co-routines are supported via the Routine class. Routines are functions that can return in the middle and then resume where they left off when called again. The old Pattern library was scrapped and is in the process of being rewritten. There are new examples, but docs are still underway. A new class Infinitum whose single instance is written as inf has been added. It is used for specifying an infinite number of repeats of a loop in a co-routine. A new control structure, the 'loop' method, has been added to class Function. This is an infinite loop - something you only want to do in a co-routine where you yield to the caller inside the loop. The old Pyrite way of writing one word alpha Symbols with a preceeding backslash can be used. \something is equivalent to 'something' The 'new' message when sent to a literal classname can be elided. MyClass(..args..) is equivalent to MyClass.new(..args..) There is a hierarchical Lib menu and a new Library class that lets you add your own commands, wavetables, sound files to it. See the Main.sc file to see how it is set up. Most error dumps now pop up a new window instead of dumping into your file. ControlIn can now take a UGen as a source argument. ControlIn can be sent messages to initiate linear and exponential curves, or timed gates. Synth has an fftScope method that displays a real time log magnitude spectrum of a sound. There are menu commands for OMS Studio Setup and OMS MIDI Setup. Wavetables can now be built by writing, e.g.: Wavetable.sineFill(512, [1, 0.5, 0.3, 0.2]); instead of what you used to have to write (which still works): Signal.newClear(512).sineFill([1, 0.5, 0.3, 0.2]).normalize.asWavetable; The names of a number of method arguments were changed to reflect the documentation so that keyword arguments can be written. The order of arguments to the 'degreeToKey' method were changed to support playing chords in Patterns. The scale is no longer the receiver, but is the first argument. The scale degree is the receiver. The receiver can also be a SequenceableCollection which is interpreted as a chord of scale degrees. New unit generators: LFTri - triangle wave oscillator PanAz - azimuth panner for up to 16 equally spaced speakers Shaper - wave shaping by a transfer function. Index - index into a discrete table with a signal. WrapIndex - index into a table with wrapped indexing. DegreeToKey - convert continuous values into pitches from a scale. GrayNoise - noise generation by flipping random bits in a word. GetTempo, SetTempo - not really new, but now with help files. Bugs fixed : You can now set the group of a radio button. The GUI has been fixed so that a button action can now call Synth.play without freezing the GUI. The GC was made properly incremental for large objects by doing partial scans. PlayBuf offset is now correct. Formant now plays in the correct octave! --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Tue, 30 Mar 1999 15:20:30 -0500 From: Dennis Miller <---@---.---> Subject: Re: version 2.1 available Hi James. I wonder if I have a password appropriate for use with the new version. Can you tell me what I might need to check it out? Thanks much, D. ------------------------------ Date: 30 Mar 99 22:15:58 +0200 From: Per Grunditz <---@---.---> Subject: Re: version 2.1 available Reply to: Re: version 2.1 available My serialnumber does not seem to work, do I need a new one? Per Grunditz ------------------------------ Date: Tue, 30 Mar 1999 15:17:36 -0600 From: James McCartney <---@---.---> Subject: Re: version 2.1 available At 2:15 PM -0600 3/30/99, Per Grunditz wrote: > Reply to: Re: version 2.1 available >My serialnumber does not seem to work, do I need a new one? >Per Grunditz The same serial number should work unless yours has expired. I have moved to demand driven updating of serial numbers, because when I was being pro-active about replacing them ahead of time a certain percentage of folks ignored,lost,or deleted the message until it did expire, then I had to send it again. Another fraction of people's email addresses had changed. At some point I may provide a challenge/response version which will not require serial number updates, but which will be require the authorized hard drive be attached while running SC. SC itself need not be on that 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, 30 Mar 1999 17:27:47 -0500 From: Dennis Miller <---@---.---> Subject: Re: version 2.1 available Hi James. However, if I recall correctly, you had me grab a copy off the server that didn't require a password since it was to time out in October. So how should I proceed? d. ------------------------------ Date: Wed, 31 Mar 1999 11:37:09 +0200 (MET DST) From: Hans Tutschku <---@---.---> Subject: password Hi James, I don't know if my mails to "support" get lost. I'm sending it now to the list - sorry for that. Please send me a new password as my old one has expired. Also the password for Ircam is not valid any more. Thanks, Hans - --------------------------- Hans Tutschku http://www.multimania.com/hanstutschku ------------------------------ Date: Wed, 31 Mar 1999 08:26:38 -0600 From: James McCartney <---@---.---> Subject: Re: password At 3:37 AM -0600 3/31/99, Hans Tutschku wrote: >Hi James, > >I don't know if my mails to "support" get lost. I'm sending it now to the >list - sorry for that. >Please send me a new password as my old one has expired. >Also the password for Ircam is not valid any more. I responded to you yesterday. Did you not receive it? Please no more serial number requests to the list. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Wed, 31 Mar 1999 17:43:07 +0200 (MET DST) From: Hans Tutschku <---@---.---> Subject: Re: password >At 3:37 AM -0600 3/31/99, Hans Tutschku wrote: >>Hi James, >> >>I don't know if my mails to "support" get lost. I'm sending it now to the >>list - sorry for that. >>Please send me a new password as my old one has expired. >>Also the password for Ircam is not valid any more. > >I responded to you yesterday. Did you not receive it? >Please no more serial number requests to the list. > > I'm sorry, but I didn't get any mail containing a password. Hans - --------------------------- Hans Tutschku http://www.multimania.com/hanstutschku ------------------------------ Date: Wed, 31 Mar 1999 10:56:36 -0600 From: James McCartney <---@---.---> Subject: doing additive synthesis backwards Theoretically you can use any waveform as a basis for additive synthesis. I've always had this idea that it would be cool if you could use sawtooth waves since those are the fastest to generate. Unfortunately the non bandlimited nature and discontinuous waveform leads to many artifacts. Here is an attempt to create a sine wave from a sum of sawtooths. ( { var f, s; f = 100; s = LFSaw.ar(f * 1, 1); s = LFSaw.ar(f * 2, -1/2, s); s = LFSaw.ar(f * 3, -1/3, s); s = LFSaw.ar(f * 5, -1/5, s); s = LFSaw.ar(f * 6, 1/6, s); s = LFSaw.ar(f * 7, -1/7, s); s = LFSaw.ar(f * 10, 1/10, s); s = LFSaw.ar(f * 11, -1/11, s); s = LFSaw.ar(f * 13, -1/13, s); s = LFSaw.ar(f * 14, 1/14, s); s = LFSaw.ar(f * 15, 1/15, s); s = LFSaw.ar(f * 17, -1/17, s); s = LFSaw.ar(f * 19, -1/19, s); s = LFSaw.ar(f * 21, 1/21, s); s = LFSaw.ar(f * 22, 1/22, s); s = LFSaw.ar(f * 23, -1/23, s); s = LFSaw.ar(f * 26, 1/26, s); s = LFSaw.ar(f * 29, -1/29, s); s = LFSaw.ar(f * 30, -1/30, s); s = LFSaw.ar(f * 31, -1/31, s); s = LFSaw.ar(f * 33, 1/33, s); s = LFSaw.ar(f * 34, 1/34, s); s = LFSaw.ar(f * 35, 1/35, s); s = LFSaw.ar(f * 37, -1/37, s); s = LFSaw.ar(f * 38, 1/38, s); s = LFSaw.ar(f * 39, 1/39, s); s = LFSaw.ar(f * 41, -1/41, s); s = LFSaw.ar(f * 42, -1/42, s); s = LFSaw.ar(f * 43, -1/43, s); s = LFSaw.ar(f * 46, 1/46, s); s = LFSaw.ar(f * 47, -1/47, s); s = LFSaw.ar(f * 51, 1/51, s); s = LFSaw.ar(f * 53, -1/53, s); s = LFSaw.ar(f * 55, 1/55, s); s = LFSaw.ar(f * 57, 1/57, s); s = LFSaw.ar(f * 58, 1/58, s); s = LFSaw.ar(f * 59, -1/59, s); s = LFSaw.ar(f * 61, -1/61, s); s = LFSaw.ar(f * 62, 1/62, s); s = LFSaw.ar(f * 65, 1/65, s); s = LFSaw.ar(f * 66, -1/66, s); s = LFSaw.ar(f * 67, -1/67, s); s = LFSaw.ar(f * 69, 1/69, s); s = LFSaw.ar(f * 70, -1/70, s); s = LFSaw.ar(f * 71, -1/71, s); s = LFSaw.ar(f * 73, -1/73, s); s = LFSaw.ar(f * 74, 1/74, s); s = LFSaw.ar(f * 77, 1/77, s); s = LFSaw.ar(f * 78, -1/78, s); s = LFSaw.ar(f * 79, -1/79, s); s = LFSaw.ar(f * 82, 1/82, s); s = LFSaw.ar(f * 83, -1/83, s); s = LFSaw.ar(f * 85, 1/85, s); s = LFSaw.ar(f * 86, 1/86, s); s = LFSaw.ar(f * 87, 1/87, s); s = LFSaw.ar(f * 89, -1/89, s); s = LFSaw.ar(f * 91, 1/91, s); s = LFSaw.ar(f * 93, 1/93, s); s = LFSaw.ar(f * 94, 1/94, s); s = LFSaw.ar(f * 95, 1/95, s); s = LFSaw.ar(f * 97, -1/97, s); s = LFSaw.ar(f * 101, -1/101, s); s = LFSaw.ar(f * 102, -1/102, s); s = LFSaw.ar(f * 103, -1/103, s); s = LFSaw.ar(f * 105, -1/105, s); s = LFSaw.ar(f * 106, 1/106, s); s = LFSaw.ar(f * 107, -1/107, s); s = LFSaw.ar(f * 109, -1/109, s); s = LFSaw.ar(f * 110, -1/110, s); s = LFSaw.ar(f * 111, 1/111, s); s = LFSaw.ar(f * 113, -1/113, s); s = LFSaw.ar(f * 114, -1/114, s); s = LFSaw.ar(f * 115, 1/115, s); s = LFSaw.ar(f * 118, 1/118, s); s = LFSaw.ar(f * 119, 1/119, s); s = LFSaw.ar(f * 122, 1/122, s); s = LFSaw.ar(f * 123, 1/123, s); s = LFSaw.ar(f * 127, -1/127, s); }.plot; ) Here's what I used to generate the code above: ( z = 128; // this will hold current harmonic sine amplitudes a = DoubleArray.fill(z, { arg i; 1.0/(i+1) }); for(2, z, { arg i; // for each harmonic add a sawtooth whose fundamental // cancels that harmonic. var jmax, amp; amp = a.at(i-1).neg; // amplitude of the sawtooth. if ((amp * i).abs > 0.1, { ("s = LFSaw.ar(f * "++i++", "++(amp*i)++"/"++i++", s);").postln; }); // add new sawtooth's overtone amplitudes to array jmax = z div: i; jmax.do({ arg j; var index; index = i - 1 + (j * i); a.put(index, (amp / (j+1)) + a.at(index)); }); }); ) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Wed, 31 Mar 1999 11:41:43 -0600 From: James McCartney <---@---.---> Subject: Re: doing additive synthesis backwards Using triangle waves is much more successful and requires fewer terms since triangle wave harmonics fall off at 12dB per octave instead of 6dB/oct for sawtooths. After 32 partials you're down 60dB. And since triangle waves only have odd harmonics there are fewer of them needing to be added together. The resulting wave is essentially a line segment approximation of the waveform. ( // sine wave from a sum of triangles. { var f, s, t; f = 100; s = LFTri.ar(f * 1, 1); s = LFTri.ar(f * 3, 1/9, s); s = LFTri.ar(f * 5, -1/25, s); s = LFTri.ar(f * 7, 1/49, s); s = LFTri.ar(f * 11, 1/121, s); s = LFTri.ar(f * 13, -1/169, s); s = LFTri.ar(f * 15, -1/225, s); s = LFTri.ar(f * 17, -1/289, s); s = LFTri.ar(f * 19, 1/361, s); s = LFTri.ar(f * 21, 1/441, s); s = LFTri.ar(f * 23, 1/529, s); s = LFTri.ar(f * 29, -1/841, s); s = LFTri.ar(f * 31, 1/961, s); }.plot; ) ( z = 32; a = DoubleArray.fill(z, { arg i; if (i.odd, { 0.0 },{ 1.0/(i+1).squared * if ((i div: 2).odd, { -1 },{ 1 }); }); }); // this will hold current harmonic sine amplitudes for(2, z, { arg i; // for each harmonic add a triangle wave whose fundamental // cancels that harmonic. var jmax, amp; amp = a.at(i-1).neg; // amplitude of the triangle wave. if ((amp * i.squared).abs > 0.1, { ("s = LFTri.ar(f * "++i++", " ++(amp*i.squared)++"/"++i.squared++", s);").postln; }); // add new triangle's overtone amplitudes to array jmax = z div: i; forBy(0, jmax-1, 2, { arg j; var index; index = i - 1 + (j * i); a.put(index, (amp / (j+1).squared) * if ((j div: 2).odd, { -1 },{ 1 }) + a.at(index) ); }); }); ) --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Wed, 31 Mar 1999 12:57:06 -0800 From: Mark Polishook <---@---.---> Subject: patterns James, Some pattern questions: (1) Does Event.protoEvent basically just set up alot of default variables? (2) What does the ~ character do? - for example as seen in *protoEvent in the Environment.sc file. (3) In your 1st pattern example, as listed below, how can I specify a scale other than the default major scale. (4) the protoEvent var declaration is needed here...or no? - ---your example--- ( // a simple pattern example var pattern, ugenFunc, envelope, table, protoEvent; envelope = Env.adsr(0.005, 0.1, 0.5, 0.8) ; table = Wavetable.sineFill(512, 1.0/[1, 2, 3, 4]); ugenFunc = `{ COsc.ar(table, ~freq, 1, EnvGen.kr(envelope, 1, 0, ~amp)) }; pattern = Pbind( // bind names to value patterns \ugenFunc, ugenFunc, \dur, 0.125, \degree, Pseq(#[0, 2, 4, 7, 6, 5, 4, 2], inf); ); pattern.play( // play the pattern Event.protoEvent, // make a prototype event 2 // two channels ); ) ------------------------------ Date: Wed, 31 Mar 1999 18:48:45 -0600 From: James McCartney <---@---.---> Subject: Re: patterns At 2:57 PM -0600 3/31/99, Mark Polishook wrote: Well as I mentioned in the release notes, the docs for Patterns are not there yet and the Pattern lib is still under construction. So these answers may just raise more questions until the docs are there. >James, > >Some pattern questions: > >(1) Does Event.protoEvent basically just set up alot of default >variables? Event.protoEvent creates an instance of Event which has a lot of defaults for certain Symbols in the dictionary. An Environment is a dictionary binding symbols to values. Event is a subclass of Environment. Environments provide a nestable namespace of variables. > >(2) What does the ~ character do? - for example as seen in *protoEvent >in the Environment.sc file. When you make an Environment the current one, then you can access the values bound to its Symbols by using the ~ character. ~something is just a syntactic convenience for the equivalent expression: currentEnvironment.at('something') An Environment is made current by sending one of the methods: make, push, or use. >(3) In your 1st pattern example, as listed below, how can I specify a >scale other than the default major scale. change the pattern like this: pattern = Pset(\scale, #[0, 2, 3, 5, 7, 8, 10], Pbind( // bind names to value patterns \ugenFunc, ugenFunc, \dur, 0.125, \degree, Pseq(#[0, 2, 4, 7, 6, 5, 4, 2], inf) ) ); > >(4) the protoEvent var declaration is needed here...or no? No it is unecessary here. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Thu, 01 Apr 1999 07:59:17 -0700 From: "David Cottle" <---@---.---> Subject: Errata Hi, In an earlier post I mentioned I have some lessons to go along with a text by Pogue. The text is by Pellman; "An Introduction to the Creation of Electroacoustic Music." - -- ><><><><><><><><><><><> David Cottle composition, notation, contra lime@uiuc.edu ------------------------------ Date: Thu, 01 Apr 1999 09:04:00 -0800 From: Mark Polishook <---@---.---> Subject: patterns/ thank you James, Thanks for you answers to my pattern questions. The examples are very intriguing and thus I couldn't resist jumping in with a few questions :) - -mark ------------------------------ Date: Thu, 01 Apr 1999 10:17:59 -0700 From: "David Cottle" <---@---.---> Subject: 2.1 compatibility Hi, Are there any problems moving back and forth between 2.0 and 2.1? The lab still has 2.0 and I work on course materials with 2.1 now. - -- ><><><><><><><><><><><> David Cottle composition, notation, contra lime@uiuc.edu ------------------------------ Date: Thu, 1 Apr 1999 18:38:59 -0600 From: James McCartney <---@---.---> Subject: Re: password At 9:43 AM -0600 3/31/99, Hans Tutschku wrote: >I'm sorry, but I didn't get any mail containing a password. >Hans > This is what I got back today: >Subject: Nondeliverable mail >------Transcript of session follows ------- >Hans.Tutschku@ircam.fr >451 ... Go away ! (see http://www.prism.uvsq.fr/~pda/kit-jussieu/rejet) Apparently IRCAM or someone else in France has black-listed my ISP. Pretty funny since my ISP was the one that was started by Steve Jackson games, the company illegally raided by the US secret service because they were making a Cyberpunk role playing game - hence a threat. Concern about this incident ultimately led to the formation of the Electronic Frontier Foundation (EFF) who have been responsible for securing many of the rights we have on the net. see: http://www.io.com/io/history.html So until someone on your end fixes it, I cannot send you email directly. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 1 Apr 1999 19:27:02 -0600 From: antiorp@tezcat.com Subject: Re: password > >Apparently IRCAM or someone else in France has black-listed my ISP. >Pretty funny d!sz chaptr !nvlvz errorz !n dedukt!onz 4rom 1 knouledge basz IRCAM black-lists every !sp >since my ISP was the one that was started by Steve Jackson >games, the company illegally raided by the US secret service because >they were making a Cyberpunk role playing game - hence a threat. paradocsez !n mater!al !mpl!kat!onz >Concern about this incident ultimately led to the formation of the >Electronic Frontier Foundation (EFF) who have been responsible for securing >many of the rights we have on the net. >see: http://www.io.com/io/history.html tabular methd 4 kalkulat!ng truth valuez "oh it's a threat" d!sz chaptr !nvlvz errorz !n dedukt!onz 4rom 1 knouledge basz ------------------------------ Date: Fri, 02 Apr 1999 22:24:32 +0000 From: Thomas Miley <---@---.---> Subject: version 2.1 AMIII problems > > > >Digidesign cards are supported. AMIII support has been tested by me > >and Digidesign has verified that their other cards work as well. Hi James, I downloaded version 2.1 yesterday and found that I can no longer get sound out of my AMIII card. In Monitors & Sound I set the sound output to Digidesign, then start up SC2.1. When choosing the Audio Setup the Digidesign option is ghosted out and I get: IODriverInit: (-192) • ERROR: SndGetInfo siHardwareFormat error: -50 • ERROR: SndGetInfo siHardwareFormat error: -50... input and output buffers not the same size?? 1056 4096 set to: 1056 1056 When trying to run an example, no sound comes out and it prints: wr 64 26 3520 4096 I can only run with internal Mac sound now (must be defaulted to internal to hear anything) - any suggestions? Thanks TM p.s. Mac OS version 7.5.5 DAE version 3.0 ------------------------------ Date: Sat, 3 Apr 1999 03:12:34 -0600 From: James McCartney <---@---.---> Subject: Re: version 2.1 AMIII problems At 4:24 PM -0600 4/2/99, Thomas Miley wrote: >p.s. Mac OS version 7.5.5 > DAE version 3.0 Go to Digidesign's site and download more recent drivers. I am using the following: DAE 3.4 DigiSystem Init 3.4.1 Digidesign Sound Drivers 1.4.2 ftp://ftp.digidesign.com/pub/support/digi/mac/dae-dsi/DaeDsi_3.41.sea.bin ftp://ftp.digidesign.com/pub/support/digi/mac/SndDrv/SoundDrivers142.sea.hqx --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sat, 03 Apr 1999 09:33:53 -0500 From: Ken Mistove <---@---.---> Subject: Re: version 2.1 AMIII problems James, Is simultaneous I/O possible with the new Digidesign support? I can't achieve it using SC 2.1, OS 8.5.1, Digi Init 3.4.1 and Sound Drivers 1.4.2 using an AMIII. In fact, I'm having trouble getting sound into SC from the AMIII. Sound out works flawlessly. I've tried everything I could think of. I don't see (or missed) anything in the docs (I know they are not completed). Is there something I may be overlooking? I remember that in versions of SC previous to 2.1, this was not possible using just the Sound Drivers and SoundManager. Is there a "magic" setup for use with SC 2.1? Thanks, Ken ------------------------------ Date: Sat, 3 Apr 1999 09:47:35 -0500 From: rkuivila@mail.wesleyan.edu Subject: mostly on 2.1 Hi James, 1. Where is thisProcess in the source code? Is it a global variable? 2. If SoundManager.doRecording is set to 'false', GUIUtils should be able to run in demo mode. 3. Is the 'loop' message actually implemented in this release? It does not appear with command-Y. 4. Also, I see 'FSMakeFSSpec -43' on start-up, which looks like an error message (I have not any problems running things). (This is running on G3 series powerbook.) Here is the whole printout on start-up: SuperCollider 2.1, copyright (c) 1998 James McCartney for more info, see http://www.audiosynth.com Worldscript Aware Styled Text Engine copyright (c) 1993-1996 Marco Piovanelli MacZoop framework copyright (c) 1996 Graham Cox FSMakeFSSpec -43 Prefs : hardware = apple sampleRate = 44100 clockSource = 0 bufMultiple = 1 useSoundInput = 1 defaultBlockSize = 64 * OMS not present. MIDI functions will be off. compiling class library.. NumPrimitives = 386 pass 1 done Method Table Size 626300 bytes Number of Method Selectors 1045 Number of Classes 638 Number of Symbols 2874 Byte Code Size 33419 compiled 86 files in 1.13 seconds compile done 5. I would like to use SC in sound installation projects that may need to run indefinitely. Would it be possible to make something similar to MaxPlay where SC compiles but refuses to interpret? (That is, it would simply execute Main.startUp.) RJK ------------------------------ Date: Sat, 3 Apr 1999 09:18:02 -0600 From: James McCartney <---@---.---> Subject: Re: mostly on 2.1 At 8:47 AM -0600 4/3/99, rkuivila@mail.wesleyan.edu wrote: >Hi James, > >1. Where is thisProcess in the source code? Is it a global variable? It is a pseudo variable. There are a few of these: thisProcess, thisMethod, thisFunctionDef, thisFunction >2. If SoundManager.doRecording is set to 'false', GUIUtils should be able >to run in demo mode. OK > >3. Is the 'loop' message actually implemented in this release? It does >not appear with command-Y. It is built into the compiler. Technically it should have a method entry in class Function, but it doesn't. However it does compile fine. > >4. Also, I see 'FSMakeFSSpec -43' on start-up, which looks like an error >message (I have not any problems running things). (This is running on G3 >series powerbook.) You have no preferences file. >5. I would like to use SC in sound installation projects that may need to >run indefinitely. Would it be possible to make something similar to >MaxPlay where SC compiles but refuses to interpret? (That is, it would >simply execute Main.startUp.) Yes this is possible.. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sat, 3 Apr 1999 16:38:00 -0600 From: James McCartney <---@---.---> Subject: Re: 2.1 compatibility At 11:17 AM -0600 4/1/99, David Cottle wrote: >Hi, > >Are there any problems moving back and forth between 2.0 and 2.1? The lab >still has 2.0 and I work on course materials with 2.1 now. There should not be much of anyhing other than what is mentioned in the release notes. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sat, 3 Apr 1999 16:38:14 -0600 From: James McCartney <---@---.---> Subject: Re: version 2.1 AMIII problems At 8:33 AM -0600 4/3/99, Ken Mistove wrote: >Is there something I may be overlooking? I remember that in versions of >SC previous to 2.1, this was not possible using just the Sound Drivers >and SoundManager. Is there a "magic" setup for use with SC 2.1? This is my error. I am uploading a new version. See next message. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Sat, 3 Apr 1999 16:38:25 -0600 From: James McCartney <---@---.---> Subject: bugfix version 2.1.1 available Version 2.1.1 is now available via ftp: BinHex 2,805K : ftp://www.audiosynth.com/pub/updates/SC2.1.1.sea.hqx MacBinary 2,104K : ftp://www.audiosynth.com/pub/updates/SC2.1.1.sea.bin Changes in Version 2.1.1 Digidesign sound input was fixed. A bug where mousing a slider at the moment when synthesis ended caused a crash, was fixed. GUIUtils now detects when it is running in demo mode and disables recording to prevent an error. The 'loop' method was added to class Function to handle the general case where the Function is not a literal Function. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Sat, 03 Apr 1999 19:30:18 -0500 From: Ken Mistove <---@---.---> Subject: Re: bugfix version 2.1.1 available James, Excellent!!! It works perfectly! Thanks, Ken James McCartney wrote: > Changes in Version 2.1.1 > > Digidesign sound input was fixed. ------------------------------ Date: Sat, 3 Apr 1999 20:30:31 -0500 (EST) From: Erik Matthew Gottesman <---@---.---> Subject: Re: bugfix version 2.1.1 available signature { do if endMessage then "erik_m_gottesman".post; end; while workingOnRevolution end.do; } ------------------------------ Date: Mon, 5 Apr 1999 01:49:41 +0100 From: Arie van Schutterhoef <---@---.---> Subject: Re:version 2.1.1 question Hello James, Version 2.1.1 is very good also with the support for the different cards. But when I run the "granulate-input" patch, sometimes I get this: Integer 0 ERROR: Primitive 'none' failed. Wrong type. RECEIVER: nil CALL STACK: Object : primitiveFailed arg this = nil Object : basicAt arg this = nil arg index = 0 var bufL = nil var bufR = nil var maxCycleTime = 1 var input = nil var recycle = nil var threshhold = 0.050000 var inputAmp = nil var chanSelect = nil var dummy = nil var granulated = nil var maxPitchShift = 4 var maxPitchDisp = 1 var maxTimeDisp = 0.500000 var maxOverlap = 8 var maxDur = 0.200000 var delayLineLength = nil var pitchSlider = nil var pitchDispSlider = nil var timeDispSlider = nil var durSlider = nil var overlapSlider = nil var ampSlider = nil Interpreter : interpret arg this = arg string = "( var bufL, bufR, maxCycleTi..." Interpreter : interpretCmdLine arg this = Process : interpretCmdLine arg this = Which I found very intriguing, but which is also something I would like to avoid. Maybe you can tell me what it is? Thanks Arie van Schutterhoef <<<<<<<<<<<<<<<<<<<<<<<<<-////||\\\\->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> 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, 04 Apr 1999 18:43:21 -0800 From: "Mark Ullrich" <---@---.---> Subject: Orc & Score in different files Please help! 1) Why doesn't this run? 2) Where do I declare variables that will be used in the "orch" and "sco" files? My "orch" and "sco" files are saved in the SC folder and appear just as they would appear in a normal OrchScore (enclosed within array brackets). ( Synth.play( { var orc, sco; orc = thisProcess.interpreter.executeFile("orch"); sco = thisProcess.interpreter.executeFile("sco"); OrcScore.ar(orc, score, numChannels: 2, mul: 0.25) } ) ERROR: EnvGen: env not of class Env. ERROR: internal error: Synth ended already. ) Get your FREE Email at http://mailcity.lycos.com Get your PERSONALIZED START PAGE at http://personal.lycos.com ------------------------------ Date: Sun, 4 Apr 1999 22:36:43 -0600 From: James McCartney <---@---.---> Subject: Re: Orc & Score in different files At 8:43 PM -0600 4/4/99, Mark Ullrich wrote: >Please help! > >1) Why doesn't this run? > >2) Where do I declare variables that will be used in the "orch" and "sco" files? > >My "orch" and "sco" files are saved in the SC folder and appear just as they would appear in a normal OrchScore (enclosed within array brackets). > >( >Synth.play( >{ > >var orc, sco; > >orc = thisProcess.interpreter.executeFile("orch"); >sco = thisProcess.interpreter.executeFile("sco"); > >OrcScore.ar(orc, score, numChannels: 2, mul: 0.25) >} >) > ERROR: EnvGen: env not of class Env. > ERROR: internal error: Synth ended already. >) There's nothing apparently wrong with what you are doing. It is complaining about the envelope. You are not passing the correct value for an envelope. I can't say what your problem is because it is in your orc or score file. I assume the declaration of "sco" but use of "score" is just a typo. --- 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 #34 *****************************