From: owner-sc-users-digest@lists.io.com (sc-users-digest) To: sc-users-digest@lists.io.com Subject: sc-users-digest V1 #135 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, June 25 2000 Volume 01 : Number 135 ---------------------------------------------------------------------- Date: Fri, 23 Jun 2000 07:59:45 -0500 From: Gary Morrison <---@---.---> Subject: "floor" and "ceil" Here's a question about the Unit-Generator help file. It says: floor .. next lower integer ceil .. next higher integer I can't recall in which language I've seen these same identifiers used in before, but in that language, they meant, not the next lower and next higher respectively, but the lowest and highest possible scalars. Is it indeed next lower and next higher, or is this a misprint? ------------------------------ Date: Sat, 24 Jun 2000 07:59:09 -0500 From: Gary Morrison <---@---.---> Subject: Re: A Little Off-Topic I'll check it out. Thanks for the tip. It's good to hear a familiar name on this list too. As I recall, Mr. Worrall has also been active on the tuning list. By the way, if any of the rest of you are interested in unusual musical tunings, such as just intonation, microtonal equal-temperaments, ethnic tunings of various cultures, nonoctave tunings, and so forth, there's a pretty-active list on the topic under E-groups (formerly known as one-list): tuning-subscribe@egroups.com to join the tuning group. It's been going on for probably 8 years or so now originally under the sponsorship of Mills College, and it's spurred other resources on the topic, including discographies, bibliographies, glossaries, various websites, and even a tape and CD of microtonal compositions contributed by list members, some of whom are pretty darned impressive performers and composers. David Worrall wrote: > You may find what you're looking for on my (recently moved), but old > Physics and Psychophysics of music website > http://www.avatar.com.au/courses/PPofM/INDEX.html > > The direct JND link is > http://www.avatar.com.au/courses/PPofM/psychohearing/psycho1.html ------------------------------ Date: Fri, 23 Jun 2000 19:59:41 -0500 From: Gary Morrison <---@---.---> Subject: Re: A Little Off-Topic Gary Morrison wrote: > The curve also varied with volume, and was very approximately a concave-up parabola on > a log-f (on X) and log-*f (on Y) scale. Hmmm... That "*" started out as a delta. Well, whatever... ------------------------------ Date: Sat, 24 Jun 2000 08:25:55 -0500 From: James McCartney <---@---.---> Subject: Re: "floor" and "ceil" on 6/23/00 7:59 AM, Gary Morrison at mr88cet@texas.net wrote: > Here's a question about the Unit-Generator help file. > > It says: > > floor .. next lower integer > ceil .. next higher integer This is correct and is the same as the definitions in the standard C library. - --- james mccartney james@audiosynth.com SuperCollider - a real time synthesis programming language for the PowerMac. ------------------------------ Date: Sat, 24 Jun 2000 14:39:17 -0400 From: Peter Scartabello <---@---.---> Subject: attachments James, I've tried twice to send an E-mail w/ attachment to the mailing list. I there a limit to posts as far as the size of the attachment. The file I sent was a signal flowchart(a GIF of 800k). Please let me know how I should send it. - -Peter Scartabello ------------------------------ Date: Sun, 25 Jun 2000 04:42:04 +0200 From: hairi <---@---.---> Subject: Re: Changing common classes James McCartney wrote: > > You should not write > to runningSynths or you could cause a memory leak. > I actually added only the getter method . Sorry , i didn't remember well . will have to check out .releaseAll > > > By the way : > > PulseDivider ignores the start argument. very sad . > > What do you mean? The Berlin 1977 with bass example uses the start argument > and it works. > > Right you are , that was a semantic bug in my head . As for the SC2.2.8 crashing with error 2 , any odd parse error in a library does it in my system. Hairi ------------------------------ Date: Sun, 25 Jun 2000 00:34:02 -0500 From: Gary Morrison <---@---.---> Subject: Continuous Display in a Box on Screen? - --------------3BF523C02A6F56D86E7F347A Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit I'm doodling around with modulation: ( Synth.dualScope ( { SinOsc.ar (MouseX.kr (220, 3520, 'exponential'), SinOsc.ar (MouseY.kr (220, 3520, 'exponential'), 0, 1), 0.1, 0) }, 0.01, fftsize: 1024 ) ) and several variations on this. I periodically find some X-Y positions of the mouse that have an interesting sound to them. It would be nice to know what those carrier and modulator frequencies are. Is there a way to do something of the nature of popping up a window with a spot in the window that continuously displays the real-time numerical value of something, in this case one such display for MouseX.kr and another for MouseY.kr? - --------------3BF523C02A6F56D86E7F347A Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit I'm doodling around with modulation:
(
   Synth.dualScope ( {
      SinOsc.ar (MouseX.kr (220, 3520, 'exponential'),
                 SinOsc.ar (MouseY.kr (220, 3520, 'exponential'), 0, 1),
                 0.1, 0)
      }, 0.01, fftsize: 1024
   )
)
and several variations on this.  I periodically find some X-Y positions of the mouse that have an interesting sound to them.  It would be nice to know what those carrier and modulator frequencies are.

Is there a way to do something of the nature of popping up a window with a spot in the window that continuously displays the real-time numerical value of something, in this case one such display for MouseX.kr and another for MouseY.kr? - --------------3BF523C02A6F56D86E7F347A-- ------------------------------ Date: Sun, 25 Jun 2000 03:18:43 -0500 From: Gary Morrison <---@---.---> Subject: Trying to Get my Semantic Bearings - --------------657198559047B39C434F0B8C Content-Type: text/plain; charset=us-ascii; x-mac-type="54455854"; x-mac-creator="4D4F5353" Content-Transfer-Encoding: 7bit I've been experimenting with various language constructs, and apparently I'm not clear on some aspects of the syntax, and to some degree the semantics, of the SuperCollider language. 1. SinOsc and sin are both called UGens on the UGen_Ref_Sheet, but they don't seem to have a lot in common syntactically. For example, o By the capital-letter convention SinOsc would appear to be a class and sin not. o I get a number when I send the postln message to sin, but not when I send postln to SinOsc. o I can Synth.plot a SinOsc, but not a sin. What common characteristic underlies all UGens? Does a UGen have a syntactic meaning in the SuperCollider language? 2. Is a function an object? Apparently we can send messages to a function (e.g., {sin(1)}.value). 3. Is the value of a function an object? Apparently we can send messgaes to them too (e.g., {sin(1)}.value.postln). 4. Is a method a function? 5. Is "Function" a class? (I notice that "{1}.postln" returns "a Function" with a capital F.) 6. When I do this: ( { var signal; signal = Impulse.ar(0.5, 1, 0); DelayN.ar (signal, 1, 0.2, 0.1, signal); }.play ) do objects of classes Impulse and DelayN get created so that "ar" messages can be sent to them, or am I sending those messages to those pre-existing classes (i.e., Impulse and DelayN) themselves? 7. If doing the above does in fact create instances of those classes, then considering that 1. the actions of that function (i.e., the function in the {} above) apparently are executed repeatedly, once for each sample of the output waveform, and 2. the actions of that function apparently include creating those objects, then do those objects get repeatedly created and destroyed each time an output audio sample is generated? If so, then how does the DelayN-class object maintain the state of the delay line between samples? 8. I was thinking that this: ( { var signal; signal = Impulse.ar(0.5, 1, 0); DelayN.ar (signal, 1, 0.2, 0.1, this.value); }.play ) would turn the above "slapback" into a regenerative echo. My logic being that "this" would refer to the object of class "DelayN," and that object would have a "value" method which would return the value in the delay line for the current time. It produces an error instead; what's wrong with my reasoning (or lack thereof!)? - --------------657198559047B39C434F0B8C Content-Type: text/html; charset=us-ascii Content-Transfer-Encoding: 7bit I've been experimenting with various language constructs, and apparently I'm not clear on some aspects of the syntax, and to some degree the semantics, of the SuperCollider language.

  1. SinOsc and sin are both called UGens on the UGen_Ref_Sheet, but they don't seem to have a lot in common syntactically.  For example,
    • By the capital-letter convention SinOsc would appear to be a class and sin not.
    • I get a number when I send the postln message to sin, but not when I send postln to SinOsc.
    • I can Synth.plot a SinOsc, but not a sin.
    What common characteristic underlies all UGens?  Does a UGen have a syntactic meaning in the SuperCollider language?
  2. Is a function an object?  Apparently we can send messages to a function (e.g., {sin(1)}.value).
  3. Is the value of a function an object?  Apparently we can send messgaes to them too (e.g., {sin(1)}.value.postln).
  4. Is a method a function?
  5. Is "Function" a class?  (I notice that "{1}.postln" returns "a Function" with a capital F.)
  6. When I do this:
    1. (
      {  var signal;
         signal = Impulse.ar(0.5, 1, 0);
         DelayN.ar (signal, 1, 0.2, 0.1, signal);
      }.play
      )
    do objects of classes Impulse and DelayN get created so that "ar" messages can be sent to them, or am I sending those messages to those pre-existing classes (i.e., Impulse and DelayN) themselves?
  7. If doing the above does in fact create instances of those classes, then considering that
    1. the actions of that function (i.e., the function in the {} above) apparently are executed repeatedly, once for each sample of the output waveform, and
    2. the actions of that function apparently include creating those objects, then
    do those objects get repeatedly created and destroyed each time an output audio sample is generated?  If so, then how does the DelayN-class object maintain the state of the delay line between samples?
  8. I was thinking that this:
    1. (
      {  var signal;
         signal = Impulse.ar(0.5, 1, 0);
         DelayN.ar (signal, 1, 0.2, 0.1, this.value);
      }.play
      )
    would turn the above "slapback" into a regenerative echo.  My logic being that "this" would refer to the object of class "DelayN," and that object would have a "value" method which would return the value in the delay line for the current time.  It produces an error instead;  what's wrong with my reasoning (or lack thereof!)?
- --------------657198559047B39C434F0B8C-- ------------------------------ Date: Sun, 25 Jun 2000 03:25:01 -0500 From: Gary Morrison <---@---.---> Subject: ^ Again A while back, the guru himself said: ^ means return a value from the enclosing method. Also, in the first "Audio 01 - Synth" tutorial, it says A function returns the value of its last expression. Am I correct in interpreting these two statements to mean that a function defaults to returning the value of its last expression, but if that function includes an expression preceded by a "^" character, then it returns that instead? ------------------------------ Date: Sun, 25 Jun 2000 17:52:35 +0200 From: Julian Rohrhuber <---@---.---> Subject: Re: Continuous Display in a Box on Screen? you could do it like this: ( var w; w = GUIWindow.new("panel", Rect.newBy(688, 547, 136, 121)); NumericalView.new( w, Rect.newBy(36, 35, 64, 20), "NumericalView", 0, - -1e+10, 1e+10, 0, 'linear'); NumericalView.new( w, Rect.newBy(37, 63, 64, 20), "NumericalView", 0, - -1e+10, 1e+10, 0, 'linear'); Synth.dualScope ( { arg synth; var freq, modf; freq = MouseX.kr (220, 3520, 'exponential'); modf = MouseY.kr (220, 3520, 'exponential'); synth.repeat(0, 0.05, { w.at(0).value = freq.poll; w.at(1).value = modf.poll }); SinOsc.ar (freq, SinOsc.ar (modf, 0, 1), 0.1, 0) }, 0.01, fftsize: 1024 ) ) Gary Morrison schrieb: > > I'm doodling around with modulation: > > ( > Synth.dualScope ( { > SinOsc.ar (MouseX.kr (220, 3520, 'exponential'), > SinOsc.ar (MouseY.kr (220, 3520, > 'exponential'), 0, 1), > 0.1, 0) > }, 0.01, fftsize: 1024 > ) > ) > > and several variations on this. I periodically find some X-Y > positions of the mouse that have an interesting sound to them. It > would be nice to know what those carrier and modulator frequencies > are. > > Is there a way to do something of the nature of popping up a window > with a spot in the window that continuously displays the real-time > numerical value of something, in this case one such display for > MouseX.kr and another for MouseY.kr? ------------------------------ Date: Sun, 25 Jun 2000 17:11:19 -0400 From: "crucial" <---@---.---> Subject: Re: ^ Again >A while back, the guru himself said: > > ^ means return a value from the enclosing method. > >Also, in the first "Audio 01 - Synth" tutorial, it says > > A function returns the value of its last expression. > >Am I correct in interpreting these two statements to mean that a function >defaults to returning the value of its last expression, but if that function >includes an expression preceded by a "^" character, then it returns that >instead? Only from a Method (in a Class definition). Additionally it should be noted that if a method does not return something using ^ then it will return the object itself. > > > _____(( http://crucial-systems.com _________________))_______ ------------------------------ End of sc-users-digest V1 #135 ******************************