From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #179 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, October 5 2000 Volume 01 : Number 179 ---------------------------------------------------------------------- Date: Tue, 03 Oct 2000 08:03:42 +0000 From: Jem Finer <---@---.---> Subject: Re: MIDI time code on 1/10/00 23:46, Tomonori Yamasaki at tyamasa@haywire.csuhayward.edu wrote: > > play({ > k = MIDIOut.new(1); > t = Impulse.ar(96); > //s = PulseDivider.ar(t, 12); //8 per sec > //h = PulseDivider.ar(t, 48); //2 per sec > //l = PulseDivider.ar(t, 2); //half > //i = PulseDivider.ar(t, 84); //every 7 beat > //j = PulseDivider.ar(t, 36); //every 3 beat > TSpawn.ar({ > k.write(1, 1, 16rF0, 9); > nil}, > 1, nil, k); > > this is what I use. > > shouldn't the TSpawn trigger be t ? Jem Do you have a MIDIIn version ? ------------------------------ Date: Wed, 04 Oct 2000 20:01:07 +0200 From: Julian Rohrhuber <---@---.---> Subject: triggered EventStream does anyonne know why do those events do not get mixed in parallel ? ( var trig, pb, stream, event, func; func = { arg freq, sustain, amp; FSinOsc.ar(freq, Line.kr(amp, 0, sustain)) }; pb = Ppar([ Pbind(\freq, Pseq([300, 400], inf), \ugenFunc, func, \legato, 1, \dur, 0.1), Pbind(\freq, Pseq([350, 480], inf), \ugenFunc, func, \legato, 1, \dur, 0.1) ]); { trig = Impulse.kr(MouseX.kr(1, 5)); stream = pb.asEventStream(Event.protoEvent); TSpawn.ar({ var event; event = stream.next; //event.put(\delta, 0.4); event.use({ ~ugenFunc.valueEnvir }); }, 2, nil, trig) }.play; ) ------------------------------ Date: Wed, 4 Oct 00 12:06:42 -0000 From: Mark Trayle <---@---.---> Subject: wack-o tablets to you tablet users out there... any problems to report? everything working okay? considering a change from midi faders to tablet... thanks in advance, mark Mark Trayle :: CalArts School of Music Composition and New Media Faculty http://shoko.calarts.edu/~met tel: +1.661.255.1050 x2546 / fax: +1.661.255.0938 ------------------------------ Date: Wed, 04 Oct 2000 16:38:03 -0400 From: "crucial" <---@---.---> Subject: Re: wack-o tablets >to you tablet users out there... any problems to report? everything >working okay? >considering a change from midi faders to tablet... My Wacom Intuous 9 x 12 is working 100% fine with SC. strongly recommended. > >thanks in advance, >mark > > >Mark Trayle :: CalArts School of Music >Composition and New Media Faculty >http://shoko.calarts.edu/~met >tel: +1.661.255.1050 x2546 / fax: +1.661.255.0938 > > > _____(( http://crucial-systems.com _________________))_______ ------------------------------ Date: Wed, 4 Oct 2000 21:26:33 -0500 (CDT) From: "AUDIOSYNTH.COM" <---@---.---> Subject: Re: triggered EventStream On Wed, 4 Oct 2000, Julian Rohrhuber wrote: > does anyonne know why do those events do not get mixed in parallel ? By using the event stream directly instead of asSpawn, you are bypassing all of the scheduling functions of the pattern. You are getting events out of the stream one at a time and ignoring the time info as wel as the otherstuff that asSpawn takes care of. > > ( > var trig, pb, stream, event, func; > func = { arg freq, sustain, amp; FSinOsc.ar(freq, Line.kr(amp, 0, > sustain)) }; > pb = Ppar([ > Pbind(\freq, Pseq([300, 400], inf), \ugenFunc, func, \legato, 1, \dur, 0.1), > Pbind(\freq, Pseq([350, 480], inf), \ugenFunc, func, \legato, 1, \dur, 0.1) > ]); > { > trig = Impulse.kr(MouseX.kr(1, 5)); > stream = pb.asEventStream(Event.protoEvent); > TSpawn.ar({ > var event; > event = stream.next; > //event.put(\delta, 0.4); > event.use({ ~ugenFunc.valueEnvir }); > > }, 2, nil, trig) > }.play; > ) > ------------------------------ Date: Wed, 04 Oct 2000 22:36:44 -0400 From: christian adam hresko <---@---.---> Subject: recursive i'm trying to wrap my head around recursive functions, and i'm having a bit of difficulty. could someone (anyone...) please provide some useful links they might have? (or possibly a really REALLY simple example in C / C++ or SC with lots of commenting) thanks bunches. cheers, christian ------------------------------ Date: Thu, 5 Oct 2000 00:34:07 EDT From: JoJoBuBu@aol.com Subject: Re: recursive I can't think of a web page off hand although there are tons and tons .... and tons of pages that have C++ code. I am aware that they can be a little frustrating to dig through at times. Here is a good book for C++. I have read a few C++ or C books and this one was the easiest for me to understand. it is Programming and Problem Solving in C++. Second Edition Nell Dale - Chip Weems - Mark Headington And here, directly ripped from page 1016, is what they call a recursive function. Heres what the book says. #include using namespace std; int Power(int, int); int main() { int number; //number that is being raised to power int exponent; //power the number is being raised to cin >> number >> exponent; cout << Power(number, exponent); //Nonrecursive call return 0; } //********************************************************* int Power(/* in */ int x, //number that is being raised to power /* in */ int n, ) //power the number is being raised to //computes x to the n power by multiplying x times the result of //computing x to the n-1 power. //precondition: // x is assigned to the n - 1 power //precondition: // x is assigned && n>0 //postcondition: // function value == x raised to the power n //Note: // Large exponents may result in integer overflow { if (n==1) return x; //base case else return x * Power(x, n-1); //recursive call } Alright there it is. I am sure there are typos ... Hopefully this helps. Oh yes that book has a whole chapter on recursion and its not too hard to follow (at least for a book of code). Andreas Stefik ------------------------------ Date: Thu, 5 Oct 2000 00:42:01 EDT From: JoJoBuBu@aol.com Subject: A little OSC confusion I mailed the list a while back but haven't received a response so I thought I would try again with more code. I want a computer to be able to, if possible, be a sending and receiving machine. I start by making one machine receiving ( OSCPort.closeALL; OSCInPort(57123, nil); ) and one sending ( var hostname; hostname = "whatever IP I was using"; z = OSCOutPort(57123, hostname); ) Everything worked fine but if I do this I can only send or receive from one machine and not both. Can I do Both? How? I tried just switching things around and running the code to send and the code receive on both ... but to no avail. If not I assume I would have to use two machines at each location ... Hopefully someone has some info. Thanks a bunch. Andreas Stefik ------------------------------ Date: Wed, 04 Oct 2000 23:31:10 -0700 From: "Stephen T. Pope" <---@---.---> Subject: World's Record for SuperCollider? This is a multi-part message in MIME format. - --------------95EE01FCB88B4B7FE81DC099 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Hello all, Just as a matter of curiosity, what qualifies as a very large SC program/score? I've reached up to 58675 unit generators; the attached GIF image shows the header bar for a slightly smaller batch. Larger scores still freeze my system (I have 320 MB allocated to SC and virtual memory turned off). - -- stp Stephen Travis Pope http://www.create.ucsb.edu/~stp - --------------95EE01FCB88B4B7FE81DC099 Content-Type: image/gif; x-mac-type="47494666"; x-mac-creator="474B4F4E"; name="sc_header.gif" Content-Transfer-Encoding: base64 Content-Description: Unknown Document Content-Disposition: inline; filename="sc_header.gif" R0lGODlhXAEZAPcAMf//////zP//mf//Zv//M///AP/M///MzP/Mmf/MZv/MM//MAP+Z//+Z zP+Zmf+ZZv+ZM/+ZAP9m//9mzP9mmf9mZv9mM/9mAP8z//8zzP8zmf8zZv8zM/8zAP8A//8A zP8Amf8AZv8AM/8AAMz//8z/zMz/mcz/Zsz/M8z/AMzM/8zMzMzMmczMZszMM8zMAMyZ/8yZ zMyZmcyZZsyZM8yZAMxm/8xmzMxmmcxmZsxmM8xmAMwz/8wzzMwzmcwzZswzM8wzAMwA/8wA zMwAmcwAZswAM8wAAJn//5n/zJn/mZn/Zpn/M5n/AJnM/5nMzJnMmZnMZpnMM5nMAJmZ/5mZ zJmZmZmZZpmZM5mZAJlm/5lmzJlmmZlmZplmM5lmAJkz/5kzzJkzmZkzZpkzM5kzAJkA/5kA zJkAmZkAZpkAM5kAAGb//2b/zGb/mWb/Zmb/M2b/AGbM/2bMzGbMmWbMZmbMM2bMAGaZ/2aZ zGaZmWaZZmaZM2aZAGZm/2ZmzGZmmWZmZmZmM2ZmAGYz/2YzzGYzmWYzZmYzM2YzAGYA/2YA zGYAmWYAZmYAM2YAADP//zP/zDP/mTP/ZjP/MzP/ADPM/zPMzDPMmTPMZjPMMzPMADOZ/zOZ zDOZmTOZZjOZMzOZADNm/zNmzDNmmTNmZjNmMzNmADMz/zMzzDMzmTMzZjMzMzMzADMA/zMA zDMAmTMAZjMAMzMAAAD//wD/zAD/mQD/ZgD/MwD/AADM/wDMzADMmQDMZgDMMwDMAACZ/wCZ zACZmQCZZgCZMwCZAABm/wBmzABmmQBmZgBmMwBmAAAz/wAzzAAzmQAzZgAzMwAzAAAA/wAA zAAAmQAAZgAAM+4AAN0AALsAAKoAAIgAAHcAAFUAAEQAACIAABEAAADuAADdAAC7AACqAACI AAB3AABVAABEAAAiAAARAAAA7gAA3QAAuwAAqgAAiAAAdwAAVQAARAAAIgAAEe7u7t3d3bu7 u6qqqoiIiHd3d1VVVURERCIiIhEREQAAACwAAAAAXAEZAAAI/wDtCRxIsKDBgwgTKlzIsKHD hxAjSpxIsaLFixgzatzIsaPHjyBDihxJ0uOKkyhTqlzJsqXLlzBjypxJs6bNmzhz6tzJs6dP nv+CCh1KtKjRo0iTKl3KtKnTp1CjSp1KtarVq1it1tvKtavXr2DDih1LtqzZs2jTql3Ltq3b t3DjymX7b5XduXjz6t3Lt6/fv4ADc617N22+oPy6Hv6XmOzixlsfl5XMlfLYe0PxbWU19J7c oJ7rYf4ndmhgy2aDbiWa7zPp1a8XB2Ul2GtR2KZFZ946OmjrekbDEl5lOKg+Vqw8Lz6eXOxy 5MqNQ3cuvfnz5qX/5Vu81YoVe/pUx//d90/f1vD7yIr3ez10WfGqucddH993Pe+1u64f/Fq/ du4rBIXPCvlo5tVh/QhnF3Fo2ScUcNpB2N9XDqpW4YS2RfjghWMFJdB+sMmFjz/+bEWigdkB xmFqr8GHYVv0kWZffhS+CCKEH5LGT4Rh2eOhgoWdpVogO8pIGpHrkVhiiEgaWU+TXCnJ35NF QkjljYrNxkogB/6Tnms5RjbUbyF2JeVcQ1ZJXW71vUhXfxa6KRuPrIkpFJlndiiUebiVV5mW XAa1glj99IMihQumJahpiz5oIon8BbjhP5ImCSlslRqZKVmBBMUlfz/KteN2jMFG6oQg5jkf pbkJp52PLQ7/9SlcMVopoany3eligZfWo+pYVpA4633CctXpP58S5Y89XaHXYaIN/lMoPnFO iyVs1hqZbXbbBrWtWL3941499uyD3FyHIUdnrP6pKK2h15bpYj3y0Qqnk/KyC2Fr4vXjDysr COQWtRgSzFtnEO5jT7AJbgUrs6VBK+RsVgpFW7wWV0wxxhsb+c/FbnLVj3bhNdyuXLCGOu+U f2Ucr60rvxztlLVK6OjK9nAm6Fs39kuytDiWSa+X6knM4j/2cCdU0hwjrbSH9dbodJxTh5xv jXiNDPTVLPu1dNRY56qvvTSvKzTL+4H3z5Iw2qivashBnKS4RQdp1mH+hBch3nrj/9kr3/YB zqOvf6/d99B5z0g42xAGEt6S+ehjD5GQxaU3n/tGnWqvcQlOJli+3Uwa2G23xt1i/MaaD3i/ rQxdvb+CFYjC4TU2u9qNefp4PdSyMnkgs8oMnNFm5ay48YMv3hXyZDJvJufOO6zz56qGG5rW H0Ms12iD2qm4zVFyHlf0a4p+p1xz8jgn5EPlru+I5z/KeFg6Z7+ZxRBbv9WxRHcdsd00CqAA B0jAAhowP8M5oAIXyMAGOvCACXygBCdIwQpa8FkAvKAGN8jBDraMeB4MoQhHSML/rSIrKEyh ClfIwha68IUwjOFQFkTDGtrwhjjMoQ53yMMe1pAGA1jAAt4iMAACGHEBBBCiECNARCU68YlP bEUNhPgPJVYxEV/IQiIWUMUF1KAVQZEiFJVYgy+0Aor/+MITuzjGNiqxiUNkIhGNyMQgvnEA eDSiHpNIADjSoBU+DKQgB0nIQhrykIhMJCKBuMQi8vGNcrSjG9FYFC56ERxiZKMQywiOSVry iVn4xj/AkQUqetKNRJRjJJNYRycSsYiOPCIr7fhHRdrylrjMpS53SUhGDrGISHxjHOF4yjGy sYvf+IYp0ehJTYKyi84sphLxSE1qIrGVdySAI4PJSj8CkpfgDKchAwIAOw== - --------------95EE01FCB88B4B7FE81DC099-- ------------------------------ Date: Thu, 05 Oct 2000 02:52:12 -0400 From: christian adam hresko <---@---.---> Subject: Re: World's Record for SuperCollider? "Stephen T. Pope" wrote: > Hello all, > > Just as a matter of curiosity, what qualifies as a very large SC > program/score? I've reached up to 58675 unit generators; the attached > GIF image shows the header bar for a slightly smaller batch. Larger > scores still freeze my system (I have 320 MB allocated to SC and virtual > memory turned off). > > -- > > stp > Stephen Travis Pope i think it only counts if you include ALL the code so that everyone else can see exactly what you're doing. hehe... (how on earth are you getting 58675 unit generators without your machine crashing? i've got a G3 450 MHz with 384 Mb of RAM) cheers, christian ------------------------------ Date: Thu, 05 Oct 2000 12:35:21 +0200 From: heiko goelzer <---@---.---> Subject: Re: recursive christian adam hresko wrote: > i'm trying to wrap my head around recursive functions, and i'm having a > bit of difficulty. could someone (anyone...) please provide some useful > links they might have? (or possibly a really REALLY simple example in C > / C++ or SC with lots of commenting) > > thanks bunches. > > cheers, > > christian hallo! just 2 days ago i wrote this little thing to convert decimal to hex numbers. although there might be a much better way to do this in sc, it is at least recursive and straight from my mathematics book !! ( // dec to hex converter var dict, a =3455; // < 2147483647 // a is the starting dec number dict = IdentityDictionary[ 10.0 -> "A", 11.0 -> "B", 12.0 -> "C", 13.0 -> "D", 14.0 -> "E", 15.0 -> "F" ]; 8.do({ arg i; b = (a/(16**(7-i))).floor; // devide 'a' with a power of 16 and take the // next smaller integer, call it 'b' if(dict.at(b).notNil,{dict.at(b).post},{b.post});// post 'b' in one or the other way a = a-(b*(16**(7-i))); //redefine 'a' as 'the last a' minus a multiple of a power of 16 if(i.odd, {" ".post}); }); "\n".post; ) i hope this is helpful in some way. ------------------------------ End of sc-users-digest V1 #179 ******************************