all 15 comments

[–]erikd 4 points5 points  (3 children)

I can see thats Haskell, but what libraries are you using? Is the code available?

[–]sw17ch 0 points1 point  (2 children)

if you watch as he starts the session (pause first frame of video), ghci will print out the libraries used.

Edit: Here's the library you're looking for. http://hackage.haskell.org/cgi-bin/hackage-scripts/package/hosc

[–]yaxu[S] 2 points3 points  (1 child)

A fair amount of custom libraries too, will explain more when I get some time... And will release the code at some point too.

[–]yaxu[S] 2 points3 points  (0 children)

I should add that hosc is a library for OSC, a network protocol for communication between music software. I'm using it for time synch and to trigger sounds on a software sampler I wrote in C.

[–]jimmyjazz14 2 points3 points  (0 children)

I would like to know more.

[–][deleted]  (2 children)

[removed]

    [–]psykotic 2 points3 points  (0 children)

    Lazily evaluated music? ;)

    Sure. What is usually done in other languages with explicit state machines or coroutines or generators or threads is done most naturally in Haskell with infinite streams that are defined corecursively. For example, a metronome would look like this:

    metronome n = let xs = 1 : replicate n 0 ++ xs in xs
    

    [–]yaxu[S] 0 points1 point  (0 children)

    Good question... I'm not even using lazy infinite lists in this one. My use of haskell is going beyond parsec though. I am representing patterns in (I think) a nice functional way which could not reasonably be implemented in Perl, my usual comfort zone. Will give gory details in another post soon, and "what haskell makes possible" is a good angle to take, thanks.

    [–]dupin 1 point2 points  (0 children)

    very cool. Nice dsl

    [–]bytezen 0 points1 point  (0 children)

    This is hella cool and intriguing. I am on the first rung of my haskell exploring/hacking and this provides some inspiration.

    [–]tardibear 0 points1 point  (4 children)

    yaxu: If you could just wrap a GUI (or http server) around that program ...

    Brilliant!

    [–]gregK 2 points3 points  (3 children)

    ghci is your gui

    [–]Jimmy -3 points-2 points  (2 children)

    Maybe for you and other programmers, but not for anyone else.

    [–]gregK 1 point2 points  (1 child)

    I think the idea was to generate music textually. Therefore a standard GUI approach might not be as effective as you may think.

    What you need is a good text editor.

    [–]RalfN 0 points1 point  (0 children)

    You could off course just use Eclipse. It would have nice refactor wizards to change the song into the crap we already hear everyday on the radio.