From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #93 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, March 9 2000 Volume 01 : Number 093 ---------------------------------------------------------------------- Date: Mon, 06 Mar 2000 18:19:37 -0600 From: James McCartney <---@---.---> Subject: Re: instance variables on 3/6/00 5:44 PM, finer@easynet.co.uk at finer@easynet.co.uk wrote: > I'm trying to make a new variable in the class MixerVoice (<>startPoint) but > am a bit stumped as to how too get at it from within an Instrument : > > > rec = Instrument.new(\record, etc . . . . > > > I know I can't say rec.startPoint > > nor can I say MixerVoice.startPoint. > > So how do I get at MixerVoice instance variables from within my Instrument ? > > Hope this makes sense ! Do you mean within an instance method of the class Instrument? or within the function that you pass to Instrument.new? Within a method you can just refer to variable by name. But within the function you pass to Instrument, there is no way because you have no access to the instance of Instrument that is calling the function. That function has no idea how it was called. The function is not "within" the Instrument class in any way. You would have to have Instrument instance pass itself into the function as an argument. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Tue, 7 Mar 2000 00:56:14 +0100 From: Joel Ryan <---@---.---> Subject: Re: Pan(Mix(Pan)).. I recognize the old OutputProxy story I should have remembered as this came up a year ago. I do understand the issue BUT... (briefly with out quoting the all code again ) since this expansion problem is caused by Mix.arFill(... Why does it NOT cause the array expansion problem for Decay/PlayBuf in this fragment (which WORKS inside a Mix.arFill...) Pan2.ar( Decay2.ar( ImpulseSequencer.ar(pat, trigger), 0.002, 1.200, PlayBuf.ar(signal, sound.sampleRate, 1.0,offset.value, 0, signal.size-2)), 1.0.rand2) but DOES cause Tspawn here to proliferate and thus blow up pan Pan2.ar( TSpawn.ar( { var env; env = Env.linen( 0.1, 0.2, 0.3,0.3,'welch');// , 0.4, PlayBuf.ar(signal,sound.sampleRate, 1.0, offset.value ,0, signal.size-2, EnvGen.ar(env)) }, 2, nil, ImpulseSequencer.ar(pat, trigger) ),1.0.rand2) l>on 3/6/00 9:10 AM, Joel Ryan at jr@xs4all.nl wrote: > >> James, >> I've had trouble with Pan in the following stripped down patch >> warped from one of your examples; > >The input you are passing to Pan is an array of 2 channels, not mono. >Thus Pan expands to an array of an array of channels. > >Pan(x) returns [OutputProxy, OutputProxy] >but >Pan([a, b]) returns [[OutputProxy, OutputProxy],[OutputProxy, OutputProxy]] > >An array of an array is not a legal output. > >--- james mccartney james@audiosynth.com >SuperCollider - a real time synthesis programming language for the PowerMac. > /////////////////////// Joel Ryan STEIM :: Ballett Frankfurt :: Institute of Sonology Achtergracht 19, 1017WL Amsterdam +31 (20) 624-3886 +31 (20) 626-4262 fax http://www.frankfurt-ballett.de/joel.html http://www.steim.nl /////////////////////////////////////////// ------------------------------ Date: Mon, 06 Mar 2000 19:19:50 -0600 From: James McCartney <---@---.---> Subject: Re: Pan(Mix(Pan)).. on 3/6/00 5:56 PM, Joel Ryan at jr@xs4all.nl wrote: > I recognize the old OutputProxy story > I should have remembered as this came up a year ago. > I do understand the issue BUT... (briefly with out quoting the all code again > ) > > since this expansion problem is caused by Mix.arFill(... > > Why does it NOT cause the array expansion problem for Decay/PlayBuf > in this fragment (which WORKS inside a Mix.arFill...) > > Pan2.ar( > Decay2.ar( > ImpulseSequencer.ar(pat, trigger), > 0.002, 1.200, > PlayBuf.ar(signal, sound.sampleRate, 1.0,offset.value, 0, > signal.size-2)), > 1.0.rand2) > The input argument to Pan here is mono. > > but DOES cause Tspawn here to proliferate and thus blow up pan > Pan2.ar( > TSpawn.ar( > { var env; > env = Env.linen( 0.1, 0.2, 0.3,0.3,'welch');// , 0.4, > PlayBuf.ar(signal,sound.sampleRate, 1.0, offset.value ,0, > signal.size-2, EnvGen.ar(env)) > }, > 2, nil, > > ImpulseSequencer.ar(pat, trigger) > ),1.0.rand2) The input argument to Pan here is stereo causing an array of arrays. You allocated 2 output channels to the TSpawn. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Tue, 07 Mar 2000 16:06:31 +0100 From: Roland Pfrengle <---@---.---> Subject: MIDI In port - --------------2F8B5189A569ED16C0A45E5D Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit Hi, thanks for the last help. Cannot find : how to set the MIDI input port? MIDIOut is clear. Thanks Roland - --------------2F8B5189A569ED16C0A45E5D Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Hi,

thanks for the last help.

Cannot find :
how to set the MIDI input port?
MIDIOut is clear.

Thanks
Roland
  - --------------2F8B5189A569ED16C0A45E5D-- ------------------------------ Date: Tue, 07 Mar 2000 17:43:21 +0100 From: Julian Rohrhuber <---@---.---> Subject: asTSpawn trying to make an asTSpawn method for Pattern - but this doesn´t sound quite right. I had tried before replacing the outersynth.sched by Sequencer, but I only got system crashes. // new version of asTSpawn which supports \lag, \strum, and Pfx asTSpawn { arg protoEvent, channels=1, trig; var stream, outersynth, tspawn; stream = this.asEventStream(protoEvent); outersynth = thisSynth; ^TSpawn.ar({ arg spawn, i, innersynth; var out; out = TSpawn.ar(nil, channels); tspawn = out.source; stream.protoEvent.put(\inSpawn, tspawn); stream.protoEvent.put(\outersynth, outersynth); // schedule a task outersynth.sched(0, { arg outersynth, now, task; var event, freqs, lag, newSynth, inSpawn; newSynth = Synth.new({ arg innersynth; event = stream.next; if (event.isNil, { nil },{ event.use({ var freqs, strum; outersynth.sched(event.delta, task); // schedule the next event outersynth.tempo = ~tempo.value; freqs = ~freq; if ( freqs.isKindOf(Symbol), { nil; // rest },{ ~outersynth = outersynth; ~innersynth = innersynth; innersynth.channelOffset = ~chanOffset; if (freqs.isKindOf(SequenceableCollection), { strum = ~strum; if (strum == 0.0, { // mix chords innersynth.releaseTime = ~sustain; Mix.arFill(freqs.size, { arg i; ~freq = freqs.at(i); ~ugenFunc.valueEnvir; }); },{ // strum chords if (strum > 0.0, { Spawn.ar({ arg sp, i, strumsynth; strumsynth.releaseTime = ~sustain; ~freq = freqs.at(i); ~ugenFunc.valueEnvir; }, channels, strum, freqs.size); },{ // reverse order Spawn.ar({ arg sp, i, strumsynth; strumsynth.releaseTime = ~sustain; ~freq = freqs.at(freqs.size - 1 - i); ~ugenFunc.valueEnvir; }, channels, strum.abs, freqs.size); }); },{ }); },{ innersynth.releaseTime = ~sustain; ~ugenFunc.valueEnvir; // normal case }); }); }); // event.use }); }); // Synth.new if (newSynth.notNil, { inSpawn = event.at(\inSpawn); lag = event.at(\lag); if (lag <= 0.0, { inSpawn.triggerSynth(newSynth); },{ // schedule lagged event in the future inSpawn.synth.sched(lag, { inSpawn.triggerSynth(newSynth); }); }); }); }); out }, channels, nil, trig); } ------------------------------ Date: Tue, 07 Mar 2000 20:18:24 -0600 From: James McCartney <---@---.---> Subject: Re: asTSpawn on 3/7/00 10:43 AM, Julian Rohrhuber at sa6a014@rrz.uni-hamburg.de wrote: What is it supposed to do? The current asSpawn method is actually a TSpawn. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Wed, 08 Mar 2000 10:44:32 +0100 From: Roland Pfrengle <---@---.---> Subject: again MIDI In port - --------------9BB849D5ED00F782EEC39A60 Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit again my stupid question: how can I set the midi in port? Cannot find any note. Midi out is clear. Sorry and thank you for help Roland - --------------9BB849D5ED00F782EEC39A60 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit again my stupid question:

how can I set the midi in port?
Cannot find any note.
Midi out is clear.

Sorry and thank you for help

Roland
  - --------------9BB849D5ED00F782EEC39A60-- ------------------------------ Date: Wed, 08 Mar 2000 12:47:39 +0100 From: julian rohrhuber <---@---.---> Subject: Re: asTSpawn so how can I create a trigger input? the syntax I have in mind is like: p = Pbind(\degree, Pseq([1, 2,3], inf); { trig = ....some trigger p.asTSpawn(Event.protoEvent, 2, trig) }.play; James McCartney schrieb: > on 3/7/00 10:43 AM, Julian Rohrhuber at sa6a014@rrz.uni-hamburg.de wrote: > > What is it supposed to do? > The current asSpawn method is actually a TSpawn. > > --- james mccartney james@audiosynth.com > SuperCollider - a real time synthesis programming language for the PowerMac. > ------------------------------ Date: Wed, 08 Mar 2000 13:38:44 +0100 From: Hairi Vogel <---@---.---> Subject: Re: again MIDI In port - --------------6905E5DE862F0790B7C798B2 Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit Orlando Pfrengle wrote: > again my stupid question: > > how can I set the midi in port? > Cannot find any note. > Midi out is clear. > > Sorry and thank you for help > > Roland > type ExternalControlSource , select it and do command-h to read the ExternalControlSource help file current port assignement in OMS is visible in the startup window. hope that's what you look for hairi - --------------6905E5DE862F0790B7C798B2 Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit Orlando Pfrengle wrote:

again my stupid question:

how can I set the midi in port?
Cannot find any note.
Midi out is clear.

Sorry and thank you for help

Roland
 

type ExternalControlSource , select it and do command-h
to read the ExternalControlSource help file
current port assignement in OMS is visible in the startup window.
hope that's what you look for

hairi - --------------6905E5DE862F0790B7C798B2-- ------------------------------ Date: Wed, 08 Mar 2000 15:06:54 +0100 From: Roland Pfrengle <---@---.---> Subject: Re: again MIDI In port - --------------8786C029CC3A64E2019D297E Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit hairi wrote: >type ExternalControlSource , select it and do command-h to read the ExternalControlSource help file current port assignement in OMS is visible in the startup window. >hope that's what you look for Hi hairi thanks for your answer. But : I know these help-pages. The question is not how to set the midi in channel, but the midi in port : IAC,Modem or Printerport? Is there any correspondence to: MIDIOut(0).cotrol(1,4,value) or : MIDIOut.new(0)? I could not find anything among the SC dok.pages. Maybe someone likes to give me a short note. Thank you Orlando - --------------8786C029CC3A64E2019D297E Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit  
hairi wrote:

>type ExternalControlSource , select it and do command-h
to read the ExternalControlSource help file
current port assignement in OMS is visible in the startup window.
>hope that's what you look for
 
 
 

Hi hairi

thanks for your answer.
But : I know these help-pages.
The question is not how to set
the midi in channel, but the
midi in port : IAC,Modem or
Printerport? Is there any
correspondence to:
MIDIOut(0).cotrol(1,4,value)
or : MIDIOut.new(0)?
I could not find anything
among the SC dok.pages.

Maybe someone likes to give
me a short note.

Thank you

Orlando
 
  - --------------8786C029CC3A64E2019D297E-- ------------------------------ Date: Wed, 08 Mar 2000 14:42:30 +0000 From: Martin Robinson <---@---.---> Subject: TrigXFade Can I suggest the addition of '... extraArgs' to the TrigXFade class i.e. ^tspawn = TSpawn.ar({ arg spawn, i, synth ... extraArgs; and envgen * inputPatchFunc.value(spawn, i, synth, extraArgs); So that extra parameters can be passed to TrigXFade's inputPatchFunc? Then you can do: ( Synth.play({ var w, butt, out; w = GUIWindow.new("panel", Rect.newBy(128, 64, 183, 90)); butt = ButtonView.new( w, Rect.newBy(26, 24, 126, 38), "ButtonView", 0, 0, 1, 0, 'linear').focus; out = TrigXFade.ar({ arg spawn, i, synth, extraArgs; SinOsc.ar( (extraArgs.at(0) ? $a).ascii.midicps, 0, 0.5 ) }, 0, 0.1, 1); butt.keyDownAction_({ arg asc, keycode, modi; out.source.trigger(asc, keycode, modi) }); out }) ) or perhaps something more interesting! >>>>>>Martin Robinson :: (Ex)tractor :: && ________ >>><<<_sonicArts.at(middlesexUniversity.london.uk); ______ <><><>__this.liveElectronics.interFaces.diffusion ____ ________________________________________________________________ >><<>>___t.+44 [0] 7970 405 903 // f.+44 [0] 7970 702 976 __ >><><>____e. _ ------------------------------ Date: Wed, 08 Mar 2000 12:43:12 -0700 From: David Cottle <---@---.---> Subject: Pbind, dumb question Hi, If I understand correctly, if leave off certain parameters in a Pbind the default environment is used. For example: Pbind(\dur, 2).play will use a duration of 2, but an envelope, ugenFunc, etc. from the current default environment. Why can't I do a Pbind with no defaults? Pbind.play Shouldn't it play for 1 second, which is the default, using all other default values? There's no real reason I need to do this, I just want to include it in a text as an explanation of how Pbind uses defaults when not specified. ------------------------------ Date: Wed, 08 Mar 2000 15:52:11 -0600 From: James McCartney <---@---.---> Subject: Re: Pbind, dumb question on 3/8/00 1:43 PM, David Cottle at lime@uiuc.edu wrote: > Hi, > > If I understand correctly, if leave off certain parameters in a Pbind > the default environment is used. For example: > > Pbind(\dur, 2).play > > will use a duration of 2, but an envelope, ugenFunc, etc. from the current > default environment. Why can't I do a Pbind with no defaults? > > Pbind.play > > Shouldn't it play for 1 second, which is the default, using all other > default values? No because Pbind is a class, not an instance, Pbind(args) is a call to Pbind.new(args), but Pbind() with no args is illegal syntax. You have to write Pbind.new.play; - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Wed, 08 Mar 2000 15:53:08 -0600 From: James McCartney <---@---.---> Subject: Off to SEAMUS... I'm heading up to Denton,Tx for SEAMUS... - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Wed, 08 Mar 2000 15:36:01 -0700 From: David Cottle <---@---.---> Subject: Re: Pbind, dumb question Hi, > No because Pbind is a class, not an instance, Pbind(args) is a call to > Pbind.new(args), but Pbind() with no args is illegal syntax. > You have to write Pbind.new.play; Ok. ------------------------------ Date: Wed, 08 Mar 2000 17:01:00 -0600 From: James McCartney <---@---.---> Subject: Re: again MIDI In port You can't set an input port, currently. It listens to all ports. SC stores the most recent data for each controller and note on every channel. This is about 6.2K. If this were stored for all ports there would be over 120K just for this data on a system with a Studio 4. (My studio 4 creates about 20 ports). So there needs to be some sort of port remapping, which I have not decided how best to deal with. I could just not store the data, but then an ExtControlSource would not know what the most recent value of the controller was when it is created. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Thu, 09 Mar 2000 07:37:27 +0000 From: Martin Robinson <---@---.---> Subject: I want to Authorize! I know this is a boring authorize issue but I've got xx days left, I've got my new code (thanx james) but clicking the Authorize button takes me straight into SC, no chance to enter the code. Anyone else needed to authorize recently and got this behaviour? I'm on 8.6 with 2.2.7. Martin >>>>>>Martin Robinson :: (Ex)tractor :: && ________ >>><<<_sonicArts.at(middlesexUniversity.london.uk); ______ <><><>__this.liveElectronics.interFaces.diffusion ____ ________________________________________________________________ >><<>>___t.+44 [0] 7970 405 903 // f.+44 [0] 7970 702 976 __ >><><>____e. _ ------------------------------ End of sc-users-digest V1 #93 *****************************