Hacker News new | past | comments | ask | show | jobs | submit login
Music As Data - Music programming with Clojure (emotionull.com)
91 points by ique on March 12, 2011 | hide | past | favorite | 18 comments



Do not forget about impromptu:

http://vimeo.com/2433947 - Keith Jarrett Style

http://vimeo.com/2434054 - Part

http://vimeo.com/2579694 - Coding up an orchestra

http://impromptu.moso.com.au/

It's the only livecoding platform i know that doesn't sound all electronicy.


The Keith Jarrett style was amazing - I really felt the analogy between playing a live instrument and changing the code in real-time, and it sounded very good.

I had visions of a large symphony hall with people dressed very sharply watching a master 'player' create and manipulate this piece in real-time... I think there may be a possibility. Interesting thought anyway.


Don't forget about the other the excellent live music programming environment written in Clojure - Overtone http://project-overtone.org/


I started building something similar a while back called music compojure. Anyone who is interested in algorithmic composition in Clojure may wish to look at the notation I came up with for comparison (see the examples directory on github). Though not perfect, it's very flexible and I'm quite pleased with some of the ideas in it. The code is perhaps maybe nearly useful. It produces midi files.

https://github.com/mhowlett/music-compojure


Thx for the post! Feel free to ask anything you like!


Can you add a 3D graphics library as well so we can have an awesome (modern) replacement of http://www.pawfal.org/fluxus/ ? :P


This is your lucky day! It's built on top of processing so you have access to awesome visual effects!


I'm a bit confused about how to install and run it (I'm pretty new to Clojure). Can you flesh out steps like "compile core.clj"?

I tried lein compile but that failed. I did lein jar instead. Then I did lein repl (didn't have a lein swank task), which downloaded some processing stuff and then gave me a reply. I tried running (start main), but it said it couldn't resolve the symbol start. Do I need to do something to include the jar?


you actually need to download and make jars of the minim libraries (https://github.com/ddf/Minim and http://code.compartmental.net/2009/11/02/building-minim-with... will help) and then add those jars to the lib folder.

then run: "lein repl"

once in the repl: (compile 'music-as-data.core) (ns music-as-data.core)

and then you're good to go!


Wicked! I may try to embed your work inside my JRuby/Mirah/Java VST bridge [1] when I'll have more time.

Would be amazing to reuse your syntax inside a VST plugin, to write arpeggiators, drum patterns or other similar things.

Thanks for sharing!

[1] https://github.com/thbar/opaz-plugdk


a bit ago i started a javascript osc environment [1] for fun. a copy of touchosc, but in the browser and you can edit your controls live.

i didn't have any intentions to share it, but this seems to be an appropriate venue. it's not nearly as cool as anything else in the thread :). pretty proof of concept, but maybe will get some ideas going. the relevance is that it's easy to execute arbitrary code [2] to control any program that supports osc/midi.

[1] https://github.com/catshirt/backbone-osc

[2] https://github.com/catshirt/backbone-osc/blob/master/static/...


Sounds crazy!


I love the compact notation for pitch and transforms. Question: there are two other aspects of music that would be wonderful to encode in your approach: note duration and loudness.

Do you have ideas on how to achieve this while continuuing the readability of your syntax?


Yeap! there is already a :duration and a :volume element. You can map transformations on them


Reminds me of AMPLE - a forth based system from 1984, which was notably used by Vince Clarke of Erasure.

( http://www.colinfraser.com/m5000/m5000.htm )

Take a look at the AMPLE nucleus programmers guide - this thing was incredibly powerful and would be good even now with decent synthesis hardware.


That 's cool! Music notes as variables and code at the same time. Genious!


Front page unreadable on a netbook screen in Chrome, clipped at the bottom and not scrolling.


Awesome! We are one step closer to the digital reproduction of "real" music, where you once might need a pianist with real skill, now you just need a musician that understands how to create such sound! A digital Richter so to speak....




Consider applying for YC's Spring batch! Applications are open till Feb 11.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: