Casey Ransberger | 2 May 2011 01:56
Picon

Re: Parsing Expression Grammars, part 4 (Left-recursion considered harmful)

I see what you did there;)

On Sun, May 1, 2011 at 8:22 AM, Dale Schumacher <dale.schumacher-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:
Parsing Expression Grammars, part 4 (http://bit.ly/iVXPEJ) addresses
the issue of left-recursive grammars, often used for left-associative
arithmetic operators.  Accumulating a value via iteration is proposed
as an appropriate solution for recursive-descent parsers like PEGs.

_______________________________________________
fonc mailing list
fonc-uVco7kAcSAQ@public.gmane.org
http://vpri.org/mailman/listinfo/fonc



--
Casey Ransberger
<div>
<p>I see what you did there;)<br><br></p>
<div class="gmail_quote">On Sun, May 1, 2011 at 8:22 AM, Dale Schumacher <span dir="ltr">&lt;<a href="mailto:dale.schumacher@...">dale.schumacher@...</a>&gt;</span> wrote:<br><blockquote class="gmail_quote">
Parsing Expression Grammars, part 4 (<a href="http://bit.ly/iVXPEJ" target="_blank">http://bit.ly/iVXPEJ</a>) addresses<br>
the issue of left-recursive grammars, often used for left-associative<br>
arithmetic operators. &nbsp;Accumulating a value via iteration is proposed<br>
as an appropriate solution for recursive-descent parsers like PEGs.<br><br>
_______________________________________________<br>
fonc mailing list<br><a href="mailto:fonc@...">fonc@...</a><br><a href="http://vpri.org/mailman/listinfo/fonc" target="_blank">http://vpri.org/mailman/listinfo/fonc</a><br>
</blockquote>
</div>
<br><br clear="all"><br>-- <br>Casey Ransberger<br>
</div>
Casey Ransberger | 4 May 2011 22:23
Picon

Subverting Pleistocene Automation

If an explanation for the difficulty involved in marketing applications which do not directly connect with human universals -- for example, software which teaches children calculus -- how might one test that hypothesis? One way I know that's been tried, and would seem to corroborate the hypothesis, is disguising non-universals in universal packages, but only when the disguise is so good that the consumer can (at the very least) suspend disbelief long enough to enjoy the experience and develop a meaningful relationship with the non-universal material. Obvious edutainment doesn't work, I don't think, because even kids can tell that you're hustling them if the experience isn't so engaging that they forget to care.

I wonder about the approach in disguising e.g. educational material as e.g. a game. I remember in second grade we had a computer class, but they just made us sit in front of the Apple ][ machines doing boring arithmetic problems and keyboarding lessons. I have a vague recollection of briefly doing something reminiscent of Logo there that excited me, but I really didn't get to do what I wanted to do (figure out how the Legend of Zelda worked so I could ape it with my own creation, I was art-child) until I was able to secure a computer for my own use, and it had a BASIC. Sadly, no one told me that the Apples there had a BASIC built in, because I would have eaten it up. The teachers would boot them past the BASIC prompt for us to a launcher application :/ and they even taught us to do that ourselves: they just never explained what the BASIC prompt was, and in the second grade, I didn't figure it out.

It made me distrustful of "edutainment" at a pretty early age, because I could sense that I was being deceived, and they weren't really teaching me about the computer like I wanted them to. So computer class was a terrible drag and everyone hated it, until our salvation arrived on a floppy disk: we got a game called Oregon Trail that had enough ostensible "educational value" that we were permitted to play it, and the game actually wasn't lame. We were all instantly hooked, so much so that right away rules were placed on how much we were allowed to play it, as the staff were worried that we weren't spending enough time solving the arithmetic problems. In other classes, no one wanted to talk about anything other than what happened when people tried to go to Oregon from Missouri, so if I remember they took it away from us for awhile.

When I was younger, I hated math, and I wonder now if the forced arithmetic in computer class was part of why; it was almost painful to sit in front of the machine from Star Trek and do things I could do just as well with a pencil and some paper. I sure as hell enjoy math _now that I'm free to do whatever I want with it_.

Another early godsend in my life was SimCity. It was unlike anything we'd ever seen. The game never ended, there was no obvious goal other than keeping a healthy city, the experience just powerfully engaged the creative drive, and it sated a certain curiosity about the world. Even though the models involved in the simulation were exceedingly simple, I believe that the experience of playing out different solutions to various problems in the game gave me a very different set of perspectives on subjects like economics and urban development from what my parents had. At the very least, it got me *interested* when I was still really young. I still play this game from time to time, I just build more complicated stuff now! I can't say that about many games. I've outgrown most of them.

I wonder how well this approach, and similar approaches which connect with universals other than "humans like to play games," have played out for others in the past. Can this also work with adults? If you have to "automate the Pleistocene" in order to sell an album, does having the ability to sneak a protest song through behind the pop single often justify the effort of the dodge?

--
Casey Ransberger
<div>
<p>If an explanation for the difficulty involved in marketing applications which do not directly connect with human universals -- for example, software which teaches children calculus -- how might one test that hypothesis? One way I know that's been tried, and would seem to corroborate the hypothesis, is disguising non-universals in universal packages, but only when the disguise is so good that the consumer can (at the very least) suspend disbelief long enough to enjoy the experience and develop a meaningful relationship with the non-universal material. Obvious edutainment doesn't work, I don't think, because even kids can tell that you're hustling them if the experience isn't so engaging that they forget to care.<br clear="all"><br></p>
<div>I wonder about the approach in disguising e.g. educational material as e.g. a game. I remember in second grade we had a computer class, but they just made us sit in front of the Apple ][ machines doing boring arithmetic problems and keyboarding lessons. I have a vague recollection of briefly doing something reminiscent of Logo there that excited me, but I really didn't get to do what I wanted to do (figure out how the Legend of Zelda worked so I could ape it with my own creation, I was art-child) until I was able to secure a computer for my own use, and it had a BASIC. Sadly, no one told me that the Apples there had a BASIC built in, because I would have eaten it up. The teachers would boot them past the BASIC prompt for us to a launcher application :/ and they even taught us to do that ourselves: they just never explained what the BASIC prompt was, and in the second grade, I didn't figure it out.</div>
<div><br></div>
<div>It made me distrustful of "edutainment" at a pretty early age, because I could sense that I was being deceived, and they weren't really teaching me about the computer like I wanted them to. So computer class was a terrible drag and everyone hated it, until our salvation arrived on a floppy disk: we got a game called Oregon Trail that had enough ostensible "educational value" that we were permitted to play it, and the game actually wasn't lame. We were all instantly hooked, so much so that right away rules were placed on how much we were allowed to play it, as the staff were worried that we weren't spending enough time solving the arithmetic problems. In other classes, no one wanted to talk about anything other than what happened when people tried to go to Oregon from Missouri, so if I remember they took it away from us for awhile.</div>
<div><br></div>
<div>When I was younger, I hated math, and I wonder now if the forced arithmetic in computer class was part of why; it was almost painful to sit in front of the machine from Star Trek and do things I could do just as well with a pencil and some paper. I sure as hell enjoy math _now that I'm free to do whatever I want with it_.</div>
<div><br></div>
<div>Another early godsend in my life was SimCity. It was unlike anything we'd ever seen. The game never ended, there was no obvious goal other than keeping a healthy city, the experience just powerfully engaged the creative drive, and it sated a certain curiosity about the world. Even though the models involved in the simulation were exceedingly simple, I believe that the experience of playing out different solutions to various problems in the game gave me a very different set of perspectives on subjects like economics and urban development from what my parents had. At the very least, it got me *interested* when I was still really young. I still play this game from time to time, I just build more complicated stuff now! I can't say that about many games. I've outgrown most of them.</div>
<div><br></div>
<div>I wonder how well this approach, and similar approaches which connect with universals other than "humans like to play games," have played out for others in the past. Can this also work with adults? If you have to "automate the Pleistocene" in order to sell an album, does having the ability to sneak a protest song through behind the pop single often justify the effort of the dodge?</div>
<div>
<br>-- <br>Casey Ransberger<br>
</div>
</div>
Chris Warburton | 7 May 2011 15:32

Re: Re: t-shirt attempt

Hi Michael,

From a quick read of your idea, the first thing that struck me was the 
similarity to partial application/currying in the derivative direction, which 
has already been mentioned by Ian.

If I understand correctly then there's the potential for ambiguities to arise 
if we differentiate WRT 2 different objects, and we're calling the same method 
on both. Whilst I see the usefulness for the technique, I can forsee this 
being a problem. I think a useful addition to offset this could be ML-style 
pattern-matched arguments, so that in an ambiguous case the environment could 
choose whichever receiver is matches the arguments most specifically.

As for the other direction, I've personally been thinking about a similar 
method of automatically abstracting functions. Rather than injecting new 
arguments, we generate a separate, more generic function from which we can 
reconstruct the original function by specifying the arguments. This is similar 
to how the antiderivative of f(x) describes the shape of f(x), but requires 
normalising with a constant to completely reconstruct f(x). For example we 
could turn:

def foo(a, b):
    a.bar('hello')
    b.baz('world')

into the following:

def abstracted(ob1, ob2, meth1, meth2, arg1, arg2):
    ob1.meth1(arg1)
    ob2.meth2(arg2)

def foo(a,b):
    abstract(a, b, bar, baz, 'hello', 'world')

Here the "abstracted" function can be seen as the antiderivative of the "foo" 
function. We then redefine foo as a derivative of "abstracted". Of course the 
"shape" of foo (2 arguments, calling a different method on each with different 
arguments) is a very common occurance, and our "abstracted" function abstracts 
over all of these.

My motivation for thinking about this is experimenting with static analysis 
and automatic program generation. With enough abstraction, the specifics of 
any program can be decomposed into arguments for such generic functions, which 
gives us a very abstract place to perform source-to-source translation, tree-
rewriting, etc. It may even be possible to turn the implicit sequencing of 
operations (such as ob1.meth1 followed by ob2.meth2 above) into explicitly 
sequenced operations, like those in monads and arrows. I've been playing with 
this in OMeta, naturally ;)

I think the parallels with your notion of more-implied = derivative and more-
explicit = antiderivative is interesting, and would value people's thoughts.

Thanks,
Chris Warburton

Michael FIG | 7 May 2011 15:26
Favicon

Re: Re: t-shirt attempt

I just wanted to say thanks for the note, Chris.

I'll reply publically when I have a chance to digest it!

--

-- 
Michael FIG <michael@...> //\
   http://michael.fig.org/    \//

Josh McDonald | 17 May 2011 05:21

Beats

Thought you guys would get a kick out of this YAML->WAV sequencer written in Ruby:


https://github.com/jstrait/beats

--
"Therefore, send not to know For whom the bell tolls. It tolls for thee."

Josh 'G-Funk' McDonald
   -  josh-qLxGLmCJ/CsmKS9rIwRwymGXanvQGlWp@public.gmane.org
   -  http://twitter.com/sophistifunk
   -  http://flex.joshmcdonald.info/

<div>
<p>Thought you guys would get a kick out of this YAML-&gt;WAV sequencer written in Ruby:</p>
<div><br></div>
<div>
<a href="https://github.com/jstrait/beats">https://github.com/jstrait/beats</a><br clear="all"><br>-- <br>"Therefore, send not to know For whom the bell tolls. It tolls for thee."<br><br>Josh 'G-Funk' McDonald<br>&nbsp;&nbsp; -&nbsp; <a href="mailto:josh <at> joshmcdonald.info">josh@...</a><br>&nbsp;&nbsp; -&nbsp; <a href="http://twitter.com/sophistifunk">http://twitter.com/sophistifunk</a><br>&nbsp;&nbsp; -&nbsp; <a href="http://flex.joshmcdonald.info/">http://flex.joshmcdonald.info/</a><br><br>
</div>
</div>
Ian Piumarta | 17 May 2011 06:22

Re: Beats

Dear Josh,

Thanks for posting this!

> Thought you guys would get a kick out of this YAML->WAV sequencer written in Ruby:
> https://github.com/jstrait/beats

I think this is pretty cool.  (It puts us well on the way to archiving the entire output of Kraftkwerk as ASCII
files. ;-)  However...

Music is one area where direct manipulation clearly wins over the command line.  So...  I'm curious what you
(generically) think about what's missing from this representation, and how it might be added back, to
reach the expressiveness of (for example) a well-made MIDI track.  (The largest amount of time assembling
a nice-sounding MIDI track is not inputting the basic timing and pitch/instrument information but
rather in tweaking the velocities, expression, etc., to make it sound like humans are performing.)

I'm also curious what you (generically) think could/should be added to this to make a full-blown
sequencing language, capable of representing (e.g.) anything that can be programmed/manipulated
graphically in something like Ableton Live.  I've always had a slightly frustrating experience with
Ableton (and Garbage Band, etc.) feeling that the semantic content of an assembled track is a lot less than
the amount of manipulation required to achieve the final result: copy and paste is a (very) poor
substitute for subroutines!  On the other hand, I have no idea if a written representation could be much
more (or even anything like) as concise.  Maybe a combination of the two is needed?

FWIW, it's worth following the link to the author's other projects.  Degrafa, in particular, is very interesting.

Regards,
Ian

> "Therefore, send not to know For whom the bell tolls. It tolls for thee."

Semper Donne, semper dolens.  :-)

Josh McDonald | 17 May 2011 07:49

Re: Beats

I agree that any serious composing needs a visual, direct manipulation UI. In fact I think most design and programming tasks could benefit from a metric boatload of research and progress in that area. Things like Jonathan Edwards's subtext, or (from what I can gather) what Lotus Improv was trying to be.


I see the Beats project (it's not mine, I just found it via the github blog) as basically a text mode, slightly more flexible version of a Tenori-on. It could help people who are familiar with the basic on-screen functionality of Tenori-on or its knockoffs grasp the ideas behind a text-based procedural programming language. But I don't think it would be very useful if it were more complicated, as you're likely to end up re-inventing the UI of a 90s MOD tracker, just with an additional edit-compile-play step.

I haven't tried to use any of the serious sequencers in anger, but I've often pondered their user-interfaces and been awestruck at just how terrible they appear to be. There has to be a way you can have a sensible superset of the core Tenori-on UI concept that would get 90% of the users 90% of what they need for non-professional composition. As a UI-focused sort of fellow, it's one of those things I'd love to try my hand at, given 12 months and somebody to do the sound programming for me :)

I'm not sure a subroutine is the correct metaphor for music, but there definitely needs to be a way for the user to break a composition up into other smaller compositions. And also to base new "sub-compositions" on existing structure, with the system smart enough to track and make use of this heritage sensibly. I think we as programmers are too focused on composition/aggregation and inheritance, and not enough on managed mutation.

Cheers,
-Josh

On 17 May 2011 14:22, Ian Piumarta <ian-uVco7kAcSAQ@public.gmane.org> wrote:
Dear Josh,

Thanks for posting this!

> Thought you guys would get a kick out of this YAML->WAV sequencer written in Ruby:
> https://github.com/jstrait/beats

I think this is pretty cool.  (It puts us well on the way to archiving the entire output of Kraftkwerk as ASCII files. ;-)  However...

Music is one area where direct manipulation clearly wins over the command line.  So...  I'm curious what you (generically) think about what's missing from this representation, and how it might be added back, to reach the expressiveness of (for example) a well-made MIDI track.  (The largest amount of time assembling a nice-sounding MIDI track is not inputting the basic timing and pitch/instrument information but rather in tweaking the velocities, expression, etc., to make it sound like humans are performing.)

I'm also curious what you (generically) think could/should be added to this to make a full-blown sequencing language, capable of representing (e.g.) anything that can be programmed/manipulated graphically in something like Ableton Live.  I've always had a slightly frustrating experience with Ableton (and Garbage Band, etc.) feeling that the semantic content of an assembled track is a lot less than the amount of manipulation required to achieve the final result: copy and paste is a (very) poor substitute for subroutines!  On the other hand, I have no idea if a written representation could be much more (or even anything like) as concise.  Maybe a combination of the two is needed?

FWIW, it's worth following the link to the author's other projects.  Degrafa, in particular, is very interesting.

Regards,
Ian

> "Therefore, send not to know For whom the bell tolls. It tolls for thee."

Semper Donne, semper dolens.  :-)


_______________________________________________
fonc mailing list
fonc-uVco7kAcSAQ@public.gmane.org
http://vpri.org/mailman/listinfo/fonc



--
"Therefore, send not to know For whom the bell tolls. It tolls for thee."

Josh 'G-Funk' McDonald
   -  josh-qLxGLmCJ/CsmKS9rIwRwymGXanvQGlWp@public.gmane.org
   -  http://twitter.com/sophistifunk
   -  http://flex.joshmcdonald.info/

<div>
<p>I agree that any serious composing needs a visual, direct manipulation UI. In fact I think most design and programming tasks could benefit from a metric boatload of research and progress in that area. Things like&nbsp;Jonathan Edwards's subtext, or (from what I can gather) what Lotus Improv was trying to be.</p>
<div>
<br>
</div>
<div>I see the Beats project (it's not mine, I just found it via the github blog) as basically a text mode, slightly more flexible version of a Tenori-on. It could help people who are familiar with the basic on-screen functionality of Tenori-on or its knockoffs grasp the ideas behind a text-based procedural programming language. But I don't think it would be very useful if it were more complicated, as you're likely to end up re-inventing the UI of a 90s MOD tracker, just with an additional edit-compile-play step.<br><br>
</div>
<div>I haven't tried to use any of the serious sequencers in anger, but I've often pondered their user-interfaces and been awestruck at just how terrible they appear to be. There has to be a way you can have a sensible superset of the core Tenori-on UI concept that would get 90% of the users 90% of what they need for non-professional composition. As a UI-focused sort of fellow, it's one of those things I'd love to try my hand at, given 12 months and somebody to do the sound programming for me :)</div>
<div><br></div>
<div>I'm not sure a subroutine is the correct metaphor for music, but there definitely needs to be a way for the user to break a composition up into other smaller compositions. And also to base new "sub-compositions" on existing structure, with the system smart enough to track and make use of this heritage sensibly. I think we as programmers are too focused on composition/aggregation and inheritance, and not enough on managed mutation.</div>
<div><br></div>
<div>Cheers,</div>
<div>-Josh</div>
<div>
<br><div class="gmail_quote">On 17 May 2011 14:22, Ian Piumarta <span dir="ltr">&lt;<a href="mailto:ian@...">ian@...</a>&gt;</span> wrote:<br><blockquote class="gmail_quote">Dear Josh,<br><br>
Thanks for posting this!<br><div class="im">
<br>
&gt; Thought you guys would get a kick out of this YAML-&gt;WAV sequencer written in Ruby:<br>
&gt; <a href="https://github.com/jstrait/beats" target="_blank">https://github.com/jstrait/beats</a><br><br>
</div>I think this is pretty cool. &nbsp;(It puts us well on the way to archiving the entire output of Kraftkwerk as ASCII files. ;-) &nbsp;However...<br><br>
Music is one area where direct manipulation clearly wins over the command line. &nbsp;So... &nbsp;I'm curious what you (generically) think about what's missing from this representation, and how it might be added back, to reach the expressiveness of (for example) a well-made MIDI track. &nbsp;(The largest amount of time assembling a nice-sounding MIDI track is not inputting the basic timing and pitch/instrument information but rather in tweaking the velocities, expression, etc., to make it sound like humans are performing.)<br><br>
I'm also curious what you (generically) think could/should be added to this to make a full-blown sequencing language, capable of representing (e.g.) anything that can be programmed/manipulated graphically in something like Ableton Live. &nbsp;I've always had a slightly frustrating experience with Ableton (and Garbage Band, etc.) feeling that the semantic content of an assembled track is a lot less than the amount of manipulation required to achieve the final result: copy and paste is a (very) poor substitute for subroutines! &nbsp;On the other hand, I have no idea if a written representation could be much more (or even anything like) as concise. &nbsp;Maybe a combination of the two is needed?<br><br>
FWIW, it's worth following the link to the author's other projects. &nbsp;Degrafa, in particular, is very interesting.<br><br>
Regards,<br>
Ian<br><div class="im">
<br>
&gt; "Therefore, send not to know For whom the bell tolls. It tolls for thee."<br><br>
</div>Semper Donne, semper dolens. &nbsp;:-)<br><br><br>
_______________________________________________<br>
fonc mailing list<br><a href="mailto:fonc@...">fonc@...</a><br><a href="http://vpri.org/mailman/listinfo/fonc" target="_blank">http://vpri.org/mailman/listinfo/fonc</a><br>
</blockquote>
</div>
<br><br clear="all"><br>-- <br>"Therefore, send not to know For whom the bell tolls. It tolls for thee."<br><br>Josh 'G-Funk' McDonald<br>&nbsp;&nbsp; -&nbsp; <a href="mailto:josh <at> joshmcdonald.info">josh@...</a><br>
&nbsp;&nbsp; -&nbsp; <a href="http://twitter.com/sophistifunk">http://twitter.com/sophistifunk</a><br>&nbsp;&nbsp; -&nbsp; <a href="http://flex.joshmcdonald.info/">http://flex.joshmcdonald.info/</a><br><br>
</div>
</div>
Wesley Smith | 17 May 2011 08:21
Picon
Gravatar

Re: Beats

Released/designed at about the same time (and with better designed
interface IMHO) as the Tenori-on is the monome:
http://monome.org/

with lot's of UI/interation patterns like Press Café:
http://www.youtube.com/watch?v=kj7YScVp_a8

might have some better ideas in there about a good sequencer UI.

wes

Cedric Roux | 17 May 2011 09:11
Picon
Favicon

Re: Beats

----- "Josh McDonald" <josh@...> wrote:

> Thought you guys would get a kick out of this YAML->WAV sequencer
> written in Ruby:
> 
> 
> https://github.com/jstrait/beats

Hey, I made a little drum machine at some point of my life:
http://sed.free.fr/vdm

You write something like:

void main_rhythm(int argc, char **argv)
{
        tempo = (double)atoi(argv[1]);
        while(1) {
        * b * b * b c
        }
}

And you have a 3 times metronome after "compilation".

Polyrhythms supported, like in:

void main_rhythm(void)
{
  int i;

  tempo = 30;

  * c

  for (i=0; i<5; i++) {
  * ( b . b . b ) ( a . a )
  }

  * c
}

Sorry if OT.

Alan Kay | 17 May 2011 13:46
Picon
Favicon

Re: Beats

Ian, as an excellent musician, is making the big important point here ... that musical time is not about integer ratios.

It is often wrongly taught that way, but it is actually about "meaning", "pulse", "emphasis", and "phrasing".

Musical notation is not a program to be followed literally, but "hints to the player" from the composer, similar to the script of a play to an actor from the playwright.

To get from "hints" to something that sounds musical requires a fair amount of knowledge and taste -- again similar to the difference between the even monotone delivery of words from the printed page and the soarin g delivery done by skilled actors.

Many of these can be represented by heuristics, more parameters, plus a little more outside advice. For example, the score authoring system Sibelius has several performing "modes", and some of these are great improvements over the metronomic notation.

I'm guessing that something could be learned in Fonc by thinking about "interpreters that actually can interpret"

Cheers,

Alan

From: Cedric Roux <sed-GANU6spQydw@public.gmane.org>
To: Fundamentals of New Computing <fonc-uVco7kAcSAQ@public.gmane.org>
Sent: Tue, May 17, 2011 12:11:44 AM
Su bject: Re: [fonc] Beats

----- "Josh McDonald" <josh-qLxGLmCJ/CsmKS9rIwRwymGXanvQGlWp@public.gmane.org> wrote:

> Thought you guys would get a kick out of this YAML->WAV sequencer
> written in Ruby:
>
>
> https://github.com/jstrait/beats

Hey, I made a little drum machine at some point of my life:
http://sed.free.fr/vdm

You write something like:

void main_rhythm(int argc, char **argv)
{
        tempo = (double)atoi(argv[1]);
        while(1) {
        * b * b * b c
        }
}

And you have a 3 times metronome after "compilation".

Polyrhythms supported, like in:

void main_rhythm(void)
{
  int i;

  tempo = 30;

  * c

  for (i=0; i<5; i++) {
  * ( b . b . b ) ( a . a )
  }

  * c
}

Sorry if OT.

_______________________________________________
fonc mailing list
fonc-uVco7kAcSAQ@public.gmane.org
http://vpri.org/mailman/listinfo/fonc
<div><div>
<div>Ian, as an excellent musician, is making the big important point here ... that musical time is not about integer ratios.<br><br>It is often wrongly taught that way, but it is actually about "meaning", "pulse", "emphasis", and "phrasing".<br><br>Musical notation is not a program to be followed literally, but "hints to the player" from the composer, similar to the script of a play to an actor from the playwright.<br><br>To get from "hints" to something that sounds musical requires a fair amount of knowledge and taste -- again similar to the difference between the even monotone delivery of words from the printed page and the soarin
 g delivery done by skilled actors.<br><br>Many of these can be represented by heuristics, more parameters, plus a little more outside advice. For example, the score
 authoring system Sibelius has several performing "modes", and some of these are great improvements over the metronomic notation.<br><br>I'm guessing that something could be learned in Fonc by thinking about "interpreters that actually can interpret"<br><br>Cheers,<br><br>Alan<br>
</div>
<div>
<br><div>
<span>From:</span> Cedric Roux &lt;sed@...&gt;<br><span>To:</span> Fundamentals of New Computing &lt;fonc@...&gt;<br><span>Sent:</span> Tue, May 17, 2011 12:11:44 AM<br><span>Su
 bject:</span> Re: [fonc] Beats<br><br>
----- "Josh McDonald" &lt;<a ymailto="mailto:josh@..." href="mailto:josh@...">josh@...</a>&gt; wrote:<br><br>&gt; Thought you guys would get a kick out of this YAML-&gt;WAV sequencer<br>&gt; written in Ruby:<br>&gt; <br>&gt; <br>&gt; <a href="https://github.com/jstrait/beats" target="_blank">https://github.com/jstrait/beats</a><br><br>Hey, I made a little drum machine at some point of my life:<br><span><a target="_blank" href="http://sed.free.fr/vdm">http://sed.free.fr/vdm</a></span><br><br>You write something like:<br><br>void main_rhythm(int argc, char **argv)<br>{<br>&nbsp; &nbsp; &nbsp; &nbsp; tempo = (double)atoi(argv[1]);<br>&nbsp; &nbsp; &nbsp; &nbsp; while(1) {<br>&nbsp; &nbsp; &nbsp; &nbsp; * b * b * b c<br>&nbsp; &nbsp; &nbsp; &nbsp; }<br>}<br><br>And you have a 3 times metronome after "compilation".<br><br>Polyrhythms supported, like in:<br><br>void main_rhythm(void)<br>{<br>&nbsp; int i;<br><br>&nbsp;
 tempo = 30;<br><br>&nbsp; * c<br><br>&nbsp; for (i=0; i&lt;5; i++) {<br>&nbsp; * ( b . b . b ) ( a . a )<br>&nbsp; }<br><br>&nbsp; * c<br>}<br><br>Sorry if OT.<br><br>_______________________________________________<br>fonc mailing list<br><a ymailto="mailto:fonc@..." href="mailto:fonc@...">fonc@...</a><br><span><a target="_blank" href="http://vpri.org/mailman/listinfo/fonc">http://vpri.org/mailman/listinfo/fonc</a></span><br>
</div>
</div>

</div></div>

Gmane