Live programming environments

There was a reddit link to the following a very interesting website about live programming music in scheme. That page has a very interesting video showing someone 'programming' in scheme by dragging and dropping rectangles. It is interesting how scheme's parenthesis are replaced by a pseudo 3d surface, with depth of the layers signifying nested parens. The wiki link on that page also has a few interesting screenshots. Following links on that page eventually leads to fluxus which has lots of examples of live music, animation, etc. The tutorial videos there are also very interesting.

LtU has many discussions on FRP and live programming, but any one know of any papers published about this work? Is this just a variation of FrTime or CELLS or is their technique different?

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

About fluxus

The graphics in fluxus are largely imperative in nature, and resembles a game engine in terms of interface. I've added a functional reactive layer on top, which is based on FrTime, but it's far from finished. The scheme bricks idea was originally designed as a possible way to present functional reactive programming - but as I wanted to use if for the make art gig, I initially applied it to the sound engine in fluxus instead. I'll be looking into improving it and applying it to frp and graphics sooner or later.

As for papers and such, I'm not in academia, but most bits and pieces are around the pawfal wiki.

Thank's for the background

What do you think about using Clojure, since it probably has better access to music, video and graphics libraries?

Not sure that's justified

If I recall correctly, fluxus is in MzScheme which has a C FFI. There's no shortage of C libraries for doing video, sound, and graphics. Clojure has a Java FFI which I don't believe has a significant advantage over C in the multimedia libraries department.

Yup

Speed is a big part of it too. Fluxus contains a Scheme binding to a C++ library which is a game engine I've written myself. The limiting factor in a well written fluxus script is getting data to the gpu, so it would not be noticeably faster if it was written entirely in C++. This was quite a revelation to me, but I'm not sure if the same would be possible with the java vm overhead.

Clojure does interest me a lot as a language though - I like the mix of pragmatism (nice first class containers) and purity of the lisp syntax.