Hello list, I work at the Topological Media Lab[1] in Montreal making responsive environments with pseudo-physical "computational materials". I'm also very interested in improvised electronic music and sometimes work on digital musical interfaces.
I work mainly with Max/MSP, but the shortcomings of that environment and its similarity to functional programming languages (strong affinity with "arrows" for instance) has lead me to Haskell as a possible tool for future use and perhaps even a "next gen" replacement for Max, its little sister Pd and other such realtime, dataflow oriented media environments. That is, however, a 10 year project that I may or may not embark on one day! I share some of Stephen Sinclair's goals, partly due to proximity (we're down the street from each other and I take classes with the IDMIL lab director), partly due to a coincidental obsession with program "expression" in the context of realtime interactive audio/music systems (though I lack the CS training). I joined the list long ago out of curiosity and never felt the need to unsubscribe due to the low traffic. I like to sift through posts occasionally just to see what people are up to. Morgan http://msutherl.net [1] http://topologicalmedialab.net On Fri, Feb 4, 2011 at 12:28 PM, Stephen Sinclair <[email protected]>wrote: > On Wed, Feb 2, 2011 at 6:11 PM, alex <[email protected]> wrote: > > So, why not hit reply and introduce yourself (even if you've posted > > already), and reveal your interest in haskell and/or art, whatever > > that may be. I'll do it too, but someone else go first :) > > My name is Steve and I'm a doctoral student at the Input Devices and > Music Interaction Laboratory at McGill University. Officially my work > centers around using force-feedback devices for audio interaction. > This involves a lot of physical modeling, robotics, DSP programming, > etc. However, I have a computer science background, not engineering, > so I constantly get 'distracted' by trying to find better ways to > express my programs :) > > Unofficially, I'm in love with programming language research and spend > more time than I should reading papers about type theory etc., but I > haven't really designed any language myself (to any significant > extent) because it seems that any time I come up with an idea, it's > either been proven uninteresting, or already implemented in Haskell or > some other language! > > Anyways, due to the field I work in, one subject area I find myself > obsessed with is the seeming conflicts of interest between functional > programming and real-time guarantees (for writing DSP programs, etc). > The former allows more powerful ways to express programs and > modularize logic, but seems to often require methods for abstracting > machine architecture such as garbage collection, which is not > compatible with time determinism. Avoiding GC seems to require the > use of more restrictive languages like in the case of FAUST, which is > basically a declarative DSP description language. I'd like to > eventually find just the right balance between time determinism and > general-purpose programming. > > My observation is that in several audio programs I've written, I > always end up using C because that's the only way I know to write an > audio loop that won't glitch, but then my central "mixing" routine > grows into an uncontrollable monster because I can't split it up > easily for various reasons. I'm hoping that getting into things like > llvm-synthesizer or FAUST might allow me to write functional mixing > routines that I can more easily split up into smaller functions. > However, I find FAUST not quite expressive enough for some of the > complex buffer juggling I've had to do in the past. > > Anyways, my current line of thought is that to solve this problem we > need something like the current line of eDSLs which compile to other > languages (Atom, Copilot, llvm-synthesizer, etc), but which can > additionally communicate seemlessly with a non-real-time portion of > the program written in full Haskell. Maybe something like this > exists? > > My dream would be to take a program written in a high-level language > which consists of a real-time and non-real-time portion, and be able > to compile it to a regular executable, and then take the same program > and compile it against a different back-end (using not much more than > a compiler switch) which would provide the real-time portion as a > binary for the DSP board I am using for robotics, and the > non-real-time portion as a host executable that would load it and > communicate with it. > > Steve > _______________________________________________ > haskell-art mailing list > [email protected] > http://lists.lurk.org/mailman/listinfo/haskell-art >
_______________________________________________ haskell-art mailing list [email protected] http://lists.lurk.org/mailman/listinfo/haskell-art
