From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #56 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, August 27 1999 Volume 01 : Number 056 ---------------------------------------------------------------------- Date: Mon, 23 Aug 1999 10:17:57 -0600 From: James McCartney <---@---.---> Subject: Re: Strange scheduling bug? Actually there was a second bug here as well. Rescheduling from Synth.newSynth is not usually what you want to do, because the new event's Synth will end when its envelope ends. You usually want to schedule in the parent synth's time base. Only if you want some voice-internal process going on would you schedule in the newSynth's time base. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Tue, 24 Aug 1999 11:24:01 -0600 From: "David Cottle" <---@---.---> Subject: Print error (rand) Hi, I imagine you already know about this, but a print command will print the correct number of pages, but from the current window displayed on the screen. If your display is on the last page of a four page file it will print the last page and then three blank pages. Did I ask before about seeding a random number? Is it possible outside of Thread? This would be a handy function. ------------------------------ Date: Tue, 24 Aug 1999 22:55:29 +0200 From: Alberto de Campo <---@---.---> Subject: fftScope tweaking Hi all, here's one for all you teachers out there: I got tired of explaining that fftScope displays the spectrum and its mirror image because that's what IFFT requires to convert it back to a signal... ("But I only use it to look at the spectrum!"). So I tweaked fftScope to display the spectrum just once: - ------------------------------ ( // as a function: var fftScope2; fftScope2 = { arg ugenGraphFunc, name, bounds, fftsize = 4096; // changing fftsize default to 1024 will // display every data point in the SignalWindow. var wind, fftWindow, cosineTable; var muteHalfSpectrum, fftAmp; fftWindow = Signal.hanningWindow(fftsize); // make a signal analysis window cosineTable = Signal.fftCosTable(fftsize); // make cosine table required for FFT Synth.play({ arg synth; var scopeData, view, ugenGraph, fft; ugenGraph = ugenGraphFunc.value(synth); name = name ? "scope"; bounds = bounds ? Rect.new(40,60,600,475); // make a rectangular window for the first half // of symmetrical spectrum, i.e. mute its mirror image: muteHalfSpectrum = LFPulse.ar(Synth.sampleRate /fftsize); if (ugenGraph.isKindOf(Array), { // create data for signal widgets : scopeData = Array.fill(ugenGraph.size, { Signal.newClear(fftsize/2) }); // window needed for half fftsize only. // make window wind = SignalWindow.new(name, bounds, scopeData, Synth.sampleRate); // wrap outputs with Scope ugens ugenGraph = ugenGraph.collect({ arg ugen, i; view = wind.at(i+1); view.minval = -150; view.maxval = 0; // Scope requires that the SignalView has an additional signal for // double buffering. view.scopeSignal = Signal.newClear(fftsize/2); // detto. fft = FFT.ar(fftsize, 0, cosineTable, fftWindow, nil, ugen, 0.0); fftAmp = (fft/fftsize).magnitudeApx.max(1e-10).ampdb; // calculate amp first, fftAmp = (fftAmp * muteHalfSpectrum); // mute its upper mirror image, fftAmp = fftAmp + // sum up the lower half and DelayN.ar(fftAmp, fftsize/2/Synth.sampleRate); // a staggered copy of it. // This is for smoothness of // visual display only. Scope.ar(view, fftAmp); // display fftAmp. ugen }); },{ // create data for signal widget : scopeData = Signal.newClear(fftsize/2); // make window wind = SignalWindow.new(name, bounds, scopeData, Synth.sampleRate); view = wind.at(1); view.minval = -150; view.maxval = 0; // Scope requires that the SignalView has an additional signal for // double buffering. view.scopeSignal = Signal.newClear(fftsize/2); fft = FFT.ar(fftsize, 0, cosineTable, fftWindow, nil, ugenGraph, 0.0); fftAmp = (fft/fftsize).magnitudeApx.max(1e-10).ampdb; fftAmp = (fftAmp * muteHalfSpectrum); fftAmp = fftAmp + DelayN.ar(fftAmp, fftsize/2/Synth.sampleRate); // wrap output with Scope ugen Scope.ar(view, fftAmp); ugenGraph }); }); wind.close; }; fftScope2.value( { AudioIn.ar(1) }, 4096, fftsize: 4096 ); // at fftsize = 4096 this is around 14/7 % CPU load, 18 Ugens // for one channel: 1 LFPulse.ar, 1 multiply, 1 DelayN, 1 add. ) fftScope2.value({ var in; in = AudioIn.ar(1); Array.fill( 4, { in } ) }, fftsize: 4096); // around 56/28 % CPU load, 66 Ugens (at fftsize = 4096) ) // 4 channels: 1 LFPulse.ar, 4 multiply, 4 DelayN, 4 add. fftScope2.value({ var in; in = AudioIn.ar(1); Array.fill( 4, { in } ) }, fftsize: 1024); // with 1024, it is a lot cheaper! fftScope2.value( { AudioIn.ar(1) }, "LargeWindow", Rect.newBy(0, 40, 1024, 700), fftsize: 4096 ); Synth.fftScope({ AudioIn.ar(1) }); // compare with this: around 12/6 % CPU load, 14 UGens Synth.fftScope({ var in; in = AudioIn.ar(1); Array.fill( 4, { in } ) }); // around 54/25 % CPU load, 53 Ugens - ---------------------------------------------------- Some possible things to do: 1. Make two staggered ffts, window them with muteHalfSpectrum and sum them to double temporal resolution. (Now, it is just repeating the same spectrum twice with the delayline.) But this will be quite CPU-expensive. 2. Factor things out into separate methods to avoid code repetitions: fttScope { ... if (ugenGraph.isKindOf(Array), { // prepare for multiple Channels ... ugenGraph = ugenGraph.collect({ arg ugen, i; ... makeOneChannelFFTScope(...); }); }, { // if single channel: makeOneChannelFFTScope(...); } ... ugenGraph ) // private method: makeOneChannelFFTScope { ... } // then you could use the same method in dualScope: dualScope { // prepare window ... if (ugenGraph.isKindOf(Array), { // prepare for multiple Channels ... ugenGraph = ugenGraph.collect({ arg ugen, i; ... makeOneChannelScope(...); makeOneChannelFFTScope(...); }); }, { // if single channel: makeOneChannelScope(...); makeOneChannelFFTScope(...); } ... ugenGraph // return ugenGraph to Synth.play ) This avoids having to paste the same code to several places, and having to maintain those copies too. Here is a version you can paste right into Synth.sc: - ----------------------------------------------------- *fftScope2 { arg ugenGraphFunc, name, bounds, fftsize=4096; var wind, fftWindow, cosineTable; var muteHalfSpectrum, fftAmp; fftWindow = Signal.hanningWindow(fftsize); // make a signal analysis window cosineTable = Signal.fftCosTable(fftsize); // make cosine table required for FFT this.play({ arg synth; var scopeData, view, ugenGraph, fft; ugenGraph = ugenGraphFunc.value(synth); name = name ? "scope"; bounds = bounds ? Rect.new(40,60,600,475); muteHalfSpectrum = LFPulse.ar(this.sampleRate /fftsize); if (ugenGraph.isKindOf(Array), { // create data for signal widgets : scopeData = Array.fill(ugenGraph.size, { Signal.newClear(fftsize/2) }); // window needed for half fftsize only. // make window wind = SignalWindow.new(name, bounds, scopeData, this.sampleRate); // wrap outputs with Scope ugens ugenGraph = ugenGraph.collect({ arg ugen, i; view = wind.at(i+1); view.minval = -150; view.maxval = 0; // Scope requires that the SignalView has an additional signal for // double buffering. view.scopeSignal = Signal.newClear(fftsize/2); // detto. fft = FFT.ar(fftsize, 0, cosineTable, fftWindow, nil, ugen, 0.0); fftAmp = (fft/fftsize).magnitudeApx.max(1e-10).ampdb; // calculate spectrum amp first, fftAmp = (fftAmp * muteHalfSpectrum); // mute its upper mirror image, fftAmp = fftAmp + // sum up the lower half and DelayN.ar(fftAmp, fftsize/2/this.sampleRate); // a staggered copy of it. // This is for smoothness of // visual display only. Scope.ar(view, fftAmp); // display fftAmp. ugen }); },{ // create data for signal widget : scopeData = Signal.newClear(fftsize/2); // make window wind = SignalWindow.new(name, bounds, scopeData, this.sampleRate); view = wind.at(1); view.minval = -150; view.maxval = 0; // Scope requires that the SignalView has an additional signal for // double buffering. view.scopeSignal = Signal.newClear(fftsize/2); fft = FFT.ar(fftsize, 0, cosineTable, fftWindow, nil, ugenGraph, 0.0); fftAmp = (fft/fftsize).magnitudeApx.max(1e-10).ampdb; fftAmp = (fftAmp * muteHalfSpectrum); fftAmp = fftAmp + DelayN.ar(fftAmp, fftsize/2/this.sampleRate); // wrap output with Scope ugen Scope.ar(view, fftAmp); ugenGraph }); }); wind.close; } - ------------------------ Check if it works: Synth.fftScope2({ AudioIn.ar(1) }); It seems there must be a more elegant and efficient way to do this, so if you have suggestions, please let me know. Best, Alberto ------------------------------ Date: Tue, 24 Aug 1999 22:13:47 -0600 From: James McCartney <---@---.---> Subject: Re: Print error (rand) At 11:24 AM -0600 8/24/99, David Cottle wrote: >Did I ask before about seeding a random number? Is it possible outside of >Thread? This would be a handy function. You are always inside a Thread. The current thread is thisThread. thisThread.randSeed = 537999; Array.fill(10, { 1000.rand }).postln; thisThread.randSeed = 537999; Array.fill(10, { 1000.rand }).postln; [ 210, 198, 907, 312, 240, 823, 956, 538, 787, 843 ] [ 210, 198, 907, 312, 240, 823, 956, 538, 787, 843 ] --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: < ------------------------------ Date: Tue, 24 Aug 1999 22:45:38 -0600 From: "David Cottle" <---@---.---> Subject: Re: Print error (rand) Hi, >>Did I ask before about seeding a random number? Is it possible outside of >>Thread? This would be a handy function. > > You are always inside a Thread. The current thread is thisThread. > > > thisThread.randSeed = 537999; > Array.fill(10, { 1000.rand }).postln; Thanks. ------------------------------ Date: Tue, 24 Aug 1999 23:37:20 -0600 From: "David Cottle" <---@---.---> Subject: Re: Print error (rand) Hi, I've been working on a CD version of some patches that allows the user to choose between some "tracks." It works really well, but now I think it would be a nice feature to allow the user to select a seed. I'm trying to do it with a view. I've tried this: rs = NumericalView.new( w, Rect.newBy( 25, 31, 64, 20 ), "NumericalView", 1, 0, 1e+10, 1, 'exponential'); rseed = rs.poll; thisThread.randSeed = rseed; and it complained that it wanted an integer so I ran it through a function that returns an integer: rseed = rs.poll.floor; and it still complained. Or is there a better way for user input? I'm using a pause.kr to turn the functions on and off. Am I right to assume that the process doesn't start until the checkbox is hit and a person could enter a random seed before choosing a seed? ------------------------------ Date: Wed, 25 Aug 1999 00:58:41 -0600 From: James McCartney <---@---.---> Subject: Re: Print error (rand) At 11:37 PM -0600 8/24/99, David Cottle wrote: >Hi, > >I've been working on a CD version of some patches that allows the user to >choose between some "tracks." It works really well, but now I think it would >be a nice feature to allow the user to select a seed. I'm trying to do it >with a view. I've tried this: > > rs = NumericalView.new( w, Rect.newBy( 25, 31, 64, 20 ), "NumericalView", >1, 0, 1e+10, 1, 'exponential'); > >rseed = rs.poll; polling is for unit generators. You should really use 'value' here. >thisThread.randSeed = rseed; > >and it complained that it wanted an integer so I ran it through a function >that returns an integer: > >rseed = rs.poll.floor; floor does not return an integer. It makes a Float into an integer valued Float. asInteger converts a Float to an Integer. >I'm using a pause.kr to turn the functions on and off. Am I right to assume >that the process doesn't start until the checkbox is hit and a person could >enter a random seed before choosing a seed? No a Paused process is just paused. It starts when the Pause starts. Any values you generate in the Pause function are generated when the Pause starts. From an artistic standpoint, I find seeding random number generators to be going back to the idea of the strict artistic control that Cage wanted to get away from. The only way I would use a seed is to remember a randSeed value to use it again later in order to regenerate random material, rather than to ever supply my own initial seed value. But then that's just me.. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Wed, 25 Aug 1999 09:28:50 +0200 From: Ioannis Zannos <---@---.---> Subject: Re: OSC Martin Robinson wrote: > > I know OpenSound Control isn't documented yet but is it usable? > > I'm experimenting with a remote performance system. I 'just' need two > machines runnings SuperCollider [with individual licenses :) ] to > communicate via TCP/IP. I could do this through Max with the otudp object I > suppose, but it would be neater to avoid Max. > Similar situation here, tho the communication needs are different: Garth Paine brought a Very Nervous System (VNS) for video tracking which works on MAX - so we would like to pass the data from the VNS to SC. The data rate is one frame per 30 ms where one frame consists of anything between ca 3 and 256 integers. This is rather intensive to do via MIDI, so OSC seems to be the choice. James said he would do OSC till ICMC1999 in October, so maybe it is now almost round the corner. Best, Iannis Zannos SIM ------------------------------ Date: Wed, 25 Aug 1999 09:44:47 +0200 From: Ioannis Zannos <---@---.---> Subject: Pause/Plug/Impulse fallout? [Re: Strange scheduling bug?] James McCartney wrote: > > I liked 'wait' so I incorporated it into the Routine class. > It is defined as follows: Gee, thanks very much. Defining time structures in Routine is handy. - --------------- Here a different question: Although all UGens below are .ar, the Impulse/Trig1 does not seem to work continuously with Pause/Plug. What I get is three spikes followed by a short pause ("fallout") then three spikes again etc. Maybe this has to do with the Synth block size? Any comment? Iannis Zannos - --------------- // A. Strange situation. // Not all Impulses are caught???? ( { Pause.ar({ Plug.ar(0.5) }, Trig1.ar(Impulse.ar(100), 0.0005)) }.scope(0.1) ) ( { Pause.ar({ FSinOsc.ar(400, 0.2) }, Trig1.ar(Impulse.ar(100), 0.0005)) }.scope(0.1) ) ( { Pause.ar({ FSinOsc.ar(400, 0.2) }, Trig1.ar(Impulse.ar(100), 0.0001)) }.scope(0.1) ) ================================================ // B. Normal situation. (// OK { var trig; trig = Trig1.ar(Impulse.ar(50), 0.01); [ Pause.ar({ FSinOsc.ar(400, 0.2) }, trig), Pause.ar({ FSinOsc.ar(800, 0.2) }, trig) ] }.scope(0.1) ) ------------------------------ Date: Wed, 25 Aug 1999 03:25:05 -0600 From: James McCartney <---@---.---> Subject: Re: Pause/Plug/Impulse fallout? [Re: Strange scheduling bug?] At 1:44 AM -0600 8/25/99, Ioannis Zannos wrote: >Although all UGens below are .ar, the Impulse/Trig1 does >not seem to work continuously with Pause/Plug. Pause only reads the control input at control rate. This is because a Synth can't be paused at other than control rate boundaries. It uses one control period to fade in and one to fade out in order to prevent clicks. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Wed, 25 Aug 1999 07:59:24 -0600 From: "David Cottle" <---@---.---> Subject: AI Hi, > polling is for unit generators. You should really use 'value' here. Got it. > floor does not return an integer. It makes a Float into an integer valued > Float. asInteger converts a Float to an Integer. Shoot! I knew that was in there somewhere. I never look hard enough. > No a Paused process is just paused. It starts when the Pause starts. > Any values you generate in the Pause function are generated when the > Pause starts. Short of reading it from a file, how would I get the seed to the synth before it starts? Scheduling? >From an artistic standpoint, I find seeding random number generators [...] > But then that's just me.. No, I agree, and that's exactly why I'm putting together this demo. Too many of our composers are obsessed with control. My point is that an AI system allows you both: complete freedom of choice (even more "free" than a live performer because it does not operate with human bias) *and* complete control. I was just going over the lecture in my head and after making the point that every performance is different I could hear someone say "but then you will never hear the same thing twice, what if you liked it?" Hence the random seed. The old Iron Horse argument. Is the machine better? In this case it is more precise than a human will ever be (using a random seed for exact reproduction down to the sample), and more free. (I also need it for the class‹for controlled experiments.) And I can choose anything along that continuum. I can have a performance be exactly the same except one note, or I can have everything change every time. I don't mean to sound presumptuous (telling you what your own program is capable of), or insolent (referring to SC and New Age in the same email) but here are a few practical uses: Video games: using SC instead of audio files would be more efficient in terms of space but also more interesting. No more annoying tunes that play over and over the same way Tape and live performer: SC could be the tape portion of a tape and performer piece with the option of variations during playback, interaction between the AI (performer plays four notes, the AI scrambles them and plays them back, the performer then has to improvise on that version . .) Interactive performance: the user buys the CD and molds the performance, with random seeds and instrument choices. Not only art music, but pop. So many works these days are all electronic except the vocal anyway. SC could be the orchestra that accompanies the voice, with variations and solos. New Age: Last night a student brought a new age tape to class which she used to fall asleep to, but she gets tired of the same thing. I asked if she would be interested in a CD that played something different every night. The concept is so foreign that the class laughed. (Next message) ------------------------------ Date: Wed, 25 Aug 1999 08:19:42 -0600 From: "David Cottle" <---@---.---> Subject: Help me find a term for AI . . . Which brings me to a question I've been scratching my head over for a while now; a tidy term for living music. That is, music that changes each time you play it. I've gone through most of my books and none of the terms seem to catch the sense I want. I read recently that the term concrete, despite what I had learned, didn't originally mean manipulating live sounds (concrete sounds), but rather referred to the fact that each performance is set in stone, because it was realized on tape. As opposed to music that was written and interpreted by a live performer. In a sense any recording, even of live performers, is "concrete." So I've been looking for a term that is the opposite of concrete in that sense: fluid? genetic? organic? chaotic? aleatoric (implies human choice)? ecological? When neophytes ask what kind of music I compose I'm usually at a loss for words. The best analog I've come up with is that most traditional compositions are like paintings of fish that you admire in a museum, while what we do is like watching an aquarium filled with fish. This seems to disarm the composers who are obsessed with control over every element of style. I need a term that. Any suggestions? ------------------------------ Date: Wed, 25 Aug 1999 15:58:59 -0700 (PDT) From: Richard Karpen <---@---.---> Subject: report amplitudes I'm writing SC output to disk and would like to know if there's a particularly best way to have the amplitudes reported on an ongoing basis. It's very handy to know exactly when sample values exceed the 16-bit range, for example. Advice would be appreciated. Thanks. Richard Karpen =============================================================== Richard Karpen Professor, Music Composition and Computer Music Director, Center for Advanced Research Technology in the Arts and Humanities (CARTAH) Box 353680 University of Washington Seattle, WA 98195 Phone: (206) 543-7130 FAX: (206) 685-9499 email: karpen@u.washington.edu www: http://faculty.washington.edu/karpen =============================================================== ------------------------------ Date: Thu, 26 Aug 1999 10:05:34 +0200 From: Ioannis Zannos <---@---.---> Subject: Re: Help me find a term for AI David Cottle wrote: > > . . . > > Which brings me to a question I've been scratching my head over for a while > now; a tidy term for living music. That is, music that changes each time you > play it. I've gone through most of my books and none of the terms seem to > catch the sense I want. > > I read recently that the term concrete, despite what I had learned, didn't > originally mean manipulating live sounds (concrete sounds), but rather > referred to the fact that each performance is set in stone, because it was > realized on tape. As opposed to music that was written and interpreted by a > live performer. In a sense any recording, even of live performers, is > "concrete." So I've been looking for a term that is the opposite of concrete > in that sense: fluid? genetic? organic? chaotic? aleatoric (implies human > choice)? ecological? > > When neophytes ask what kind of music I compose I'm usually at a loss for > words. The best analog I've come up with is that most traditional > compositions are like paintings of fish that you admire in a museum, while > what we do is like watching an aquarium filled with fish. This seems to > disarm the composers who are obsessed with control over every element of > style. I need a term that. > > Any suggestions? ecological is good because of its associations both to environment and to the idea of feedback, of being part of a dynamic system. Mark Leman, a musicologist at the University of Ghent, Belgium, has been proposing an ecological model for systematic musicology. The problem with ecological is it is popular in too many fields, and has some strong political/ideological connotations. > now; a tidy term for living music. That is, music that changes each time you > play it. I've gone through most of my books and none of the terms seem to > catch the sense I want. Music that changes each time you play it is the normal thing in most cultures and historical periods - to differing extents. Perfect [mechanical] reproduction has only become possible recently, and it can be argued that it has affected our concepts about music performance. A culture that orients itself towards perfect reproduction as compositional ideal, and that conditions music students to think of a piece music as something static is thus fundamentally suspect, or has an impoverished concept of music. It was thus very interesting to read about your classroom experiences with SC. In the above sense, your "living music" is just "music", as opposed to "preserved corpse of music". The point lies, I think, elsewhere, namely in the role that the computer plays in a new type of music that is capable of changing "by itself", that is, without intentional intervention by the listener. Adaptive music? (maybe too weak a term.). Organic is also nice - organism as dynamic system. Best, Iannis Zannos SIM ------------------------------ Date: Thu, 26 Aug 1999 11:11:07 +0200 From: Ioannis Zannos <---@---.---> Subject: Re: AI David Cottle wrote: ... > I don't mean to sound presumptuous (telling you what your own program is > capable of), or insolent (referring to SC and New Age in the same email) but > here are a few practical uses: > Video games: using SC instead of audio files would be more efficient in > terms of space but also more interesting. No more annoying tunes that play > over and over the same way > Tape and live performer: SC could be the tape portion of a tape and > performer piece with the option of variations during playback, interaction > between the AI (performer plays four notes, the AI scrambles them and plays > them back, the performer then has to improvise on that version . .) > Interactive performance: the user buys the CD and molds the performance, > with random seeds and instrument choices. Not only art music, but pop. So > many works these days are all electronic except the vocal anyway. SC could > be the orchestra that accompanies the voice, with variations and solos. > New Age: Last night a student brought a new age tape to class which she used > to fall asleep to, but she gets tired of the same thing. I asked if she > would be interested in a CD that played something different every night. The > concept is so foreign that the class laughed. Foreign? who's asleep? To add to your list: Interactive installations. I.Zannos SIM ------------------------------ Date: Thu, 26 Aug 1999 11:13:28 +0200 From: Ioannis Zannos <---@---.---> Subject: Re: Help me find a term for AI > in that sense: fluid? genetic? organic? chaotic? aleatoric (implies human > choice)? ecological? > Autonomous music? IZ ------------------------------ Date: Thu, 26 Aug 1999 07:50:30 -0400 From: David Crandall <---@---.---> Subject: Re: Help me find a term for AI To me, "fluid music" has such a nice sound I'd be surprised it's not already in use. I'm afraid "Music that changes each time you play it" still refers to what happens when I'm too badly out of practice... But "fluid music" would cover that. There were, e.g., the preSocratics philosophers who, when one said "you can't step in the same river twice," the other said, "you can't even step in the same river *once*..." dc ------------------------------ Date: Thu, 26 Aug 1999 11:23:20 -0600 From: "David Cottle" <---@---.---> Subject: Re: Help me find a term for AI Hi, > Music that changes each time you play it is the normal thing [...] > music. It was thus very interesting to > read about your classroom experiences with SC. Good point. I find it fascinating that western classical musicians' entire lives are dedicated to realizing exactly what is written, the same way every time. > To me, "fluid music" has such a nice sound I'd be surprised it's not > already in use. And it is the other end of the spectrum for concrete. I like "living music", but it sounds too New Age. When ever I work with CA or AI music I get the sense that I'm not working on a composition, but a genus of compositions out of which many valid variations may grow. Its like setting an ecosystem in motion and then coming back in 100 years. That's the whole point (being surprised by the outcome). (As H. Brun would say, "my next piece, which I have not yet learned to like.") ------------------------------ Date: Thu, 26 Aug 1999 13:11:01 -0600 From: James McCartney <---@---.---> Subject: version 2.2.1 available I was finally able to track down two very hard to find crashing bugs. This version should be the most solid since a long time. === Version 2.2.1 is now available via ftp: BinHex : ftp://www.audiosynth.com/pub/updates/SC2.2.1.sea.hqx MacBinary (smaller) : ftp://www.audiosynth.com/pub/updates/SC2.2.1.sea.bin SCPlay is now distributed in a separate file : BinHex : ftp://www.audiosynth.com/pub/updates/SCPlay2.2.1.sea.hqx MacBinary (smaller) : ftp://www.audiosynth.com/pub/updates/SCPlay2.2.1.sea.bin === Changes in Version 2.2.1 The pseudo variable thisSynth replaces Synth.newSynth as the way to get the current Synth. Synth.newSynth now prints a note to change your code. A wait method was added to Routine. A serious bug was fixed that trashed memory when an error occured upon starting a UGen. A serious bug was fixed that trashed memory when an error occured in Synth.new followed by a recompile of the library. An error in the class library in version 2.2 was fixed that broke generating GUI code. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 26 Aug 1999 15:42:37 -0600 From: James McCartney <---@---.---> Subject: BOUNCE sc-users@lists.io.com: Non-member submission from [Henry Vega ] >From sc-users-owner Thu Aug 26 15:08:01 1999 Received: from sphinx.host4u.net (sphinx.host4u.net [209.150.128.45]) by lists.io.com (8.9.3/8.9.1a) with ESMTP id PAA19718 for ; Thu, 26 Aug 1999 15:08:00 -0500 Received: from localhost (onds@localhost) by sphinx.host4u.net (8.8.5/8.8.5) with SMTP id PAA26268 for ; Thu, 26 Aug 1999 15:07:23 -0500 Date: Thu, 26 Aug 1999 15:07:23 -0500 (CDT) From: Henry Vega <---@---.---> X-Sender: onds@sphinx.host4u.net To: sc-users@lists.io.com Subject: Re: Help me find a term for AI In-Reply-To: <199908261720.MAA17267@jaka.ece.uiuc.edu> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Hi everyone, Ive followed the thread ont his topic for music that is changing at every performance while keeping the "composers" parameters. I believe you want to call it Mobile music, relating it to the Mobiles by Alexander Calder. The only composers of acoustic music that I can remember without my books are Haubenstock-Ramati and some Earl Brown, really unless your doing something soo Avant Guarde that I might not understand your aesthetics, this should be what your looking for, plus you get to follow the long tradition of having your music described after a visual arts term (sarcasm). But please let me know if Im far from what your asking, I think this works very well. lots of luck Vega HENRY VEGA On Thu, 26 Aug 1999, David Cottle wrote: > Hi, > > > Music that changes each time you play it is the normal thing > [...] > > music. It was thus very interesting to > > read about your classroom experiences with SC. > > Good point. I find it fascinating that western classical musicians' entire > lives are dedicated to realizing exactly what is written, the same way every > time. > > > To me, "fluid music" has such a nice sound I'd be surprised it's not > > already in use. > > And it is the other end of the spectrum for concrete. > > I like "living music", but it sounds too New Age. When ever I work with CA > or AI music I get the sense that I'm not working on a composition, but a > genus of compositions out of which many valid variations may grow. Its like > setting an ecosystem in motion and then coming back in 100 years. That's the > whole point (being surprised by the outcome). (As H. Brun would say, "my > next piece, which I have not yet learned to like.") > --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 26 Aug 1999 15:43:16 -0600 From: James McCartney <---@---.---> Subject: BOUNCE sc-users@lists.io.com: Non-member submission from [bizarro ] >From sc-users-owner Wed Aug 25 10:31:03 1999 Received: from alastair.tir.com (alastair.tir.com [216.40.128.69]) by lists.io.com (8.9.3/8.9.1a) with ESMTP id KAA26369 for ; Wed, 25 Aug 1999 10:31:03 -0500 Received: from tir.com (port40.flint03o.tir.com [205.218.86.106]) by alastair.tir.com (8.9.1/8.9.1) with ESMTP id LAA06084 for ; Wed, 25 Aug 1999 11:30:02 -0400 (EDT) Message-ID: <37C40C68.CAA1E963@tir.com> Date: Wed, 25 Aug 1999 11:31:54 -0400 From: bizarro <---@---.---> Reply-To: web@metalbox.com Organization: metalbox X-Mailer: Mozilla 4.6 (Macintosh; I; PPC) X-Accept-Language: en MIME-Version: 1.0 To: sc-users@lists.io.com Subject: Re: Help me find a term for AI References: <199908251417.JAA11114@jaka.ece.uiuc.edu> Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit David Cottle wrote: > Which brings me to a question I've been scratching my head over for a while > now; a tidy term for living music. That is, music that changes each time you > play it. I've gone through most of my books and none of the terms seem to > catch the sense I want. > > > Any suggestions? Hasn't Brian Eno been using the term "Generative Music" for the past 5+ years ? I know that he did released some sort of floppy-disk album that never repeats itself. I believe Eno has been a poster child for Koan software or somesuch. I played w/ the demo and was none too impressed. Michael - -- http://www.metalbox.com --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Thu, 26 Aug 1999 15:50:19 -0600 From: James McCartney <---@---.---> Subject: Re: report amplitudes At 4:58 PM -0600 8/25/99, Richard Karpen wrote: >I'm writing SC output to disk and would like to know if there's a >particularly best way to have the amplitudes reported on an ongoing >basis. It's very handy to know exactly when sample values exceed >the 16-bit range, for example. > >Advice would be appreciated. > >Thanks. > >Richard Karpen SC does not report max amplitudes when writing. It would be a good feature to add.. Just as an aside, in the case of a live performance being written to disk, the Limiter UGen might be helpful. Since it uses an overlap add limiting method, it has no effect on in range signals. --- james mccartney james@audiosynth.com http://www.audiosynth.com If you have a PowerMac check out SuperCollider2, a real time synth program: ------------------------------ Date: Fri, 27 Aug 1999 08:51:47 +0200 From: Ioannis Zannos <---@---.---> Subject: Re: Help me find a term for AI > > To me, "fluid music" has such a nice sound I'd be surprised it's not > > already in use. Yes it's a nice term - my vote goes for it. Note that there is a term "fluid architecture". Thus fluid music that fits in very well as a pendant. IZ David Cottle wrote: > > Hi, > > > Music that changes each time you play it is the normal thing > [...] > > music. It was thus very interesting to > > read about your classroom experiences with SC. > > Good point. I find it fascinating that western classical musicians' entire > lives are dedicated to realizing exactly what is written, the same way every > time. > > > To me, "fluid music" has such a nice sound I'd be surprised it's not > > already in use. > > And it is the other end of the spectrum for concrete. > > I like "living music", but it sounds too New Age. When ever I work with CA > or AI music I get the sense that I'm not working on a composition, but a > genus of compositions out of which many valid variations may grow. Its like > setting an ecosystem in motion and then coming back in 100 years. That's the > whole point (being surprised by the outcome). (As H. Brun would say, "my > next piece, which I have not yet learned to like.") ------------------------------ End of sc-users-digest V1 #56 *****************************