Hacker News new | past | comments | ask | show | jobs | submit login
Overtone (imagine27.com)
487 points by wglb on Oct 8, 2011 | hide | past | favorite | 73 comments



This is what Hollywood thinks most coding is like in the world. One shot, no bugs and pure creation. All in a highly customized and beautifully responsive editing environment.

Seriously though, thanks for posting this. I think music coders deserve special attention because they mix creativity and logic together so well.


It's also what Hollywood thinks music is like: pure improvisation. In the real world, both require an amazing amount of rehearsal and frustrating lack of progress on your own time before the 'performance'.

I always thought the best moment of 8-mile was when Bunny stops talking and sits down with a pen and a paper in his bedroom. It's fairly explicit that that's the point he starts on the road to being a successful musician.


[deleted]


I'd be happy to get some code review feedback for the Overtone codebase: http://github.com/overtone/overtone

Pull requests would be even nicer...


http://www.youtube.com/watch?v=P7bdECd3pQ0

Coded by hand over the course of 6 months using Csound.


BT is truly an artist.


I'm not really sure what you would use this for. I'm a musician and I can't possibly find any use for this. It would take forever to write a song in this and then you would have to mess with the timings just to make it not sound like a programmed piece of music and give it some feel.


Actually, one of the initial motivations for creating Overtone was to experiment with automating "feel". I was getting into electronic music, and it seemed to me that many of the painful aspects of EQing and adjusting instruments and timing so they don't interfere with each other could be automated. We haven't really gotten to this point yet, but I tend to believe that this is yet another area in life where people will argue forever that software will never compete with humans, up until the point where many of the top tracks are being generated by software. It also opens the door to all kinds of interesting things, like live composition of multiple instruments, or meta-composing, where you modify parameters along axis like tension, emotion, drive, and vibe, rather than figuring out how to modulate to the next key. For now I agree with you though, most of what I create in Overtone still has a robotic feel. Hopefully that won't be the case for long. We'd love to have more musicians joining the discussion though, so if you have ideas join the mailing list.


I am a musician but I can see how this is useful given much practice and a creative, well practiced ear. One can, and people have, make music out of much less inspiring media. I agree that the piano and sine sounds utilized leave much to be desired. I can, rather, see this driving well crafted, masses of sound that can be later arranged by in logic or protools. You don't have to sound like a machine ( though you are certainly free to, and there is nothing wrong with it.) It might require hacking, but that is usually required for anything new, music included.


> I'm not really sure what you would use this for.

"Live coding" means you go to a nightclub, hook your laptop up to the sound system and a big projector, and start programming, while everybody is watching you program and listening to the sounds your program is making.


Almost like... a synth.


Implying that this isn't a synth?


Mm, I didn't mean to come off as a dick. Overtone is cool as hell, and is worthy of a lot of respect.

My point was, there's a reason why musicians often use "a box with a bigass row of large physical keys" to do this sort of thing.

That said, a synth costs thousands of dollars; so I love the idea of Overtone making live music more accessible to "dabblers" like me.

( Unfortunately, a MacBook also costs thousands of dollars, and I've given up hoping people still care about Windows. =) )


You could say the same of every new instrument ever. Why use a piano when a harpsichord is so much simpler to build? (Louder, mostly, but that's not my point. And pianos were much more expensive than any previous instrument when they were new.) Why build a harpsichord if you have stringed instruments? Why put strings on an instrument...why not just bang on that stick.

New instruments provide new means of expression not previously available. That alone is reason enough to keep experimenting and building new instruments, even if most of them never go anywhere or see anything resembling widespread adoption. They expand the palette of possibilities.

If you find a full keyboard strapped to a synthesizer more conducive to what you want to express today, that's fine. There are still guitars, and drums, and harpsichords, and pianos, and analog synthesizers. This doesn't close off those options to anyone, it only opens new doors.

Cost, or being "better" than some other option in some dimension, is not the reason for something like this. New means of expression is the reason, and it is reason enough.


Erm... The piano allowed dynamic volume; a serious improvement over the harpsichord.

I hate to pick at your example, 'cause I agree with you in spirit. Your harpsichord/piano example was just... Well, exactly my point. The piano was a major improvement over the harpsi; I hope the same will be said of Overtone. That's all.


I don't think live coding makes live music more accessible to dabblers. Making live music that people enjoy listening to only takes a few dozen to a few hundred hours of instruction and practice, with either voice or instruments, and beyond the obvious a capella modalities, there's the harmonica, the borrowed friend's guitar, the recorder, the pan pipes, and so on, which together mean you can make pretty excellent music without spending much or any money. And it'll take you quite a lot of practice to outgrow a US$100 synth from Radio Shack. (Or wherever you buy them these days.)

By contrast, I have the impression that livecoding requires a great deal more knowledge to do in an entertaining way, and it can go wrong in many more ways.


Ha! A $100 synth from RadioShack is precisely what I use. It even has "RadioShack" engraved into it.

Honestly I was just trying to find some good things to say about Overtone, since creativity is always a great thing and should be encouraged.

Maybe a combination of the two ideas: Overtone functions being invoked by pressing keys on a synth, with pressure/speed of the keypress being passed as function args. (But then I suppose Overtone would be "just another synth generator"... I don't know.)


The possibilities of algorithmic music are different from the possibilities of direct human performance.


I'm also a musician, but ...

The process looks more like that of jazz to me - finding/inventing structure & theme, reconceptualising both, collaboratively developing derived forms and then riffing on those for performance.

Unlike songwriting, that's a musical process that's always come naturally to me and I use almost exactly the same mindset when I'm on form as a developer too. I don't know if this a common experience.


From the traditional perspective of composing/songwriting or performance using acoustic instruments, this would probably seem useless. But there is a whole world of folks obsessed with coding music and instruments, check out Chuck, CSound, Max/MSP or Supercollider (which this uses as it's audio backend).

I like to think of projects like this as experimentation in technology-as-art. Even if the sound itself isn't what I would use to write songs, I still find it very satisfying to watch someone write out Lisp/Clojure code and hear organized sound come back. And I'm sure that is amplified by a million for the person who actually created this themselves!


Generative / algorithmic music is its own world. I'm a musician too and I can't imagine being very expressive (and musical) with this compared to my shakuhachi or doumbek. I have a hard time imagining how this could be used in live improvisation vs something like Ableton. But this type of music is really its own thing, and I don't presume to understand it.

Something that I found interesting, a video game approach to music: http://kotaku.com/5847212/compose-your-own-musical-villages-...


Ok, I just saw the link someone posted to "This Binary Universe." I stand corrected: you can make some pretty amazing music this way. :)

http://www.youtube.com/watch?v=ve8WaGmyhfI


Thia isn't overtone, but here's some very impressive livecoding in scheme/impromptu (http://impromptu.moso.com.au/), building up to a wonderful piano improvisation which has a very natural feel: http://vimeo.com/2433947


The author of Impromptu is now working on Extempore, which unlike Impromptu, is opensource, and runs on other operating systems other than OS X.

https://github.com/digego/extempore


Interesting how his command line glows and shows CRT-like distortions. Is that actually how it looks, or is that post-processing applied to the video?


I'm guessing he had emacs open in a "Cathode":http://www.secretgeometry.com/apps/cathode/ session. The extra warping at the end of the video can be achieved by fiddling with the "distress" parameters in Cathode's preferences.


Is there a linux alternative to that? I want it incredibly badly.


The apple2 screensaver that comes with xscreensaver can be used as a terminal emulator. You can also get a chintzy version by fullscreening xterm or gnome-terminal with the vt220 TrueType font and green-on-black, but that doesn't give you CRT distortions, or for that matter even correct-looking reverse video.


the apple2 screensaver is a thing of beauty.


Sadly it's just post-processign FX. However, a terminal that looked like that would be totally badass.


The glow fits very well with the flymake (i guess) flashing.

In theory a ~compiz composite plugin for this purpose wouldnt be hard to create, if it doesn't already exists. And Qt seems capable of glowing to.. time to patch Konsole.


If on OSX, you may be interested in this:

http://www.secretgeometry.com/apps/cathode/


Not sure if I would really use it aside from a novelty, but I may need to buy this simply to support such a great/fun idea.


I actually asked him some time ago and he said (much to my disappointment) that he did it in post-processing.


I think it's a little of column A and a little of column B.


This is great. Thank you. If you're interested in this stuff, also take a look at ChucK, a project out of Princeton's CS & Music departments. I've been extremely happy with its results when generating backgrounds for videos, for instance.

http://chuck.cs.princeton.edu


Do you have any audio examples? The only examples I could see were actual code. (I'm on my phone so I'll double-check later in case I missed an obvious link on the ChucK site).


From what I can tell ChucK is no longer supported and has stopped working in OSX Lion.


Not quite true, I know the developers and they're working on Lion support, as well as some major updates to the vm.


That's great news!



If you like Impromptu, take a look at Extempore by the same author. Unlike Impromptu, Extempore is open source, and runs on Linux and Windows too.

https://github.com/digego/extempore


here's the project website: http://overtone.github.com/


They also publish their dotemacs which is lovely to use (theme, autocomplete, some lambda beautification)

https://github.com/overtone/live-coding-emacs


This really interests me, being a musician as well. The idea of coding music (and not just programming a synth or whatever) has never occurred to me before and I really fancy spending an evening or two with this to see what happens.

My only dislike with increasingly virtual instruments, however, is that I don't really get the same sort of involvement out of using them. I can bang out some fairly decent beats with my PadKontrol but it makes me long for my old, battered drum kit, and the band practices where I'd lay down a beat and just let myself get lost in it all as the guitarists and bassist improvised over it.

What you gain in technology (and all the amazing things you can do with it) you lose in that sense of physicality.


A big part of Sam Aaron's research is into integrating interfaces like the monome into live coding languages.


Sounds (and looks) interesting.

BTW After watching it I've finally submitted my first Ask HN:

What are your music prototyping solutions?

http://news.ycombinator.com/item?id=3089259


I was lucky enough to see Sam Aaron rehearse his ClojureConj course at skillsmatter last week. The room was full of musicians who know Clojure. Personally, I think overtone has potential. It's already usable as an alternative synth design tool (beats the hell out of visual design). As for taking on Cubase... There are all sorts of features it doesn't have (like a usable UI), but as sam says... pull requests are welcome. :)


This is very cool. I remember there was another clojure music library that came out several months ago. It was very cool, but nowhere near as cool and extensible as this.

EDIT: this was the library I was thinking of http://mad.emotionull.com/


I’m seeing educational value in this, musical output as a way of teaching programming to beginners, especially to auditory learners (or to the blind, for that matter). Is there anything out there like this that’s specifically intended as an educational tool?


I'm so glad that somebody built a better front-end for SuperCollider. It's badly in need of a better guide and tutorial for new users, and this seems like an excellent way to go about it.


Is SuperCollider really that complicated? I've seen some incredible things built with it by musicians who have learnt to code specifically for it.


It's not necessarily that SC is complicated, but it is a custom language that has to be learned to use a single application. Also, many musical ideas and projects extend beyond what sclang can do, or you want to use external libs, etc. By using Clojure you get all of the power of sclang and more, because you also get lisp macros, while also getting access to the whole java ecosystem of libs. We've got a gui library for Overtone in the works, and it will be a good example of this in action.


I would say yes, SC really is that complicated. sclang borrows from a bunch of different programming philosophies, so you have declarative stuff alongside imperative stuff, plus it is flexible to the extreme, with various 'equivalent' syntax constructs to achieve the same thing, and innumerable 'shortcuts'. Meaning that it's very easy to write obscure, hard to read code. Plus, it's not just a matter of knowing sclang - the whole sever graph architecture needs to be understood to really 'know' SC. I think there are probably very few people that really understand all of it.


Overtone looks fantastic, and I've been meaning to really look into it for a while now. It seems to be an active project with a lot of momentum. I was writing something similar in Clojure, but more directly musically focused rather than on sound synths, before I found overtone. I tried installing it once a while ago, but had trouble getting SuperCollider to install and work with overtone.

Are there any overtone-related gatherings in the bay area?


Hey mcav, you should definitely head over to the Overtone mailing list on google groups: http://groups.google.com/group/overtone. We should be able to sort out your SC install <-> Overtone troubles easily :-)


Somehow this resonates with me as a game developer, and actually Naughty Dog's use of Lisp (common lisp) got me into learning it, but slowly has been moved to lua (but can see the difficulties in using lua as live coding language)

pretty cool, and also started using emacs since then....


Max/MSP is this times a million. check it out if you haven't heard of it. cycling74.com it does the exact same things but with more options, complexity, and a more usable interface. It also has visual fx.


Max is very cool - however the biggest issue for me is its lack of support for abstractions. This typically results in an insanely complicated visual program for everything except for the most trivial examples.

One of the core goals for Overtone is to provide the means for musicians to share their ideas through a programming-language-like notation. This means readability and understandability are at least, if not more important, to expressiveness with the language.

Overtone should be easy to grok, not appear to be some cryptic puzzle.


Signal flow approaches like Max/MSP and PureData are awesome and have their own strengths and weaknesses - but certainly they have no more or less 'options' or capacity for complexity than any similarly mature text-based DSP system like SuperCollider or ChucK.


Hey Erik ;)

Strictly Max/MSP/Jitter is a much more encompassing environment than SuperCollider and ChucK, which focus on audio. The advantage of Max is that it combines a great control language with audio programming, a great video matrix library and a dataflow OpenGL API. Generally there are many more 3rd party contributions to Max/MSP than any of the other media programming frameworks with the exception of perhaps vvvv (which is video centric).

That said, the nice thing about all of these environments is that they heavily integrate OSC messaging, which allows you to mix and match anything together. People often combine openFrameworks/Cinder and SuperCollider for instance.


I suppose Jitter is a big honking extra option, yeah. :-) I read the original comment as suggesting that SuperCollider was somehow lacking in flexibility compared to Max/MSP, which isn't true. They're all excellent tools with different approaches.


Max/MSP and Clojure are not either/or http://www.cassiel.com/2011/08/01/clojure-in-maxmsp/


If you like this, check out nyquist. Lisp for audio programming: http://www.cs.cmu.edu/~music/nyquist/


But that's not "realtime" like SuperCollider right?


As a musician & coder, i have always been intrigued by this idea.. it does seem like a tricky process to "play" live - but still - could be pretty fun


I have a hell of an upvote waiting for the person who ports this to the Audio Data API


It was amazing to watch him write the flawless LISP code.

The project itself is interesting, but very niche.


For the purpose of the video, it was probably transcribed from existing code.


I practiced writing that code for about a day before I could write it flawlessly in one take. I guess, in a similar fashion to how a musician will practice using an instrument before going on stage.


And in a similar fashion, after a musician/coder practices enough, improvisation will come naturally. Thanks again for putting this together.


That only holds for some kinds of playing. How is your experience with improvisation? Can you manage quick changes? Or does it always tend to be a slow buildup of rythms harmonics and melodies?


Improvisation requires plenty of practice - http://www.amazon.com/Improvisation-Its-Nature-Practice-Musi...


Apparently my question is not clear. I'm asking this as a musician who does a lot of improvisation. The question is wether livecode improvisation is comparable.

The most enjoyable thing in improvisation, are sudden changes that can emerge in a good session. You typically have less than a second to react to such things. That is, less than a second to change rythm/feel, tempo, harmonics, volume, etc. More often than not all at the same time. Playing like that makes you feel part of the organism from which the music emerges, rather than a thinking actor in a rehearsed play. A feeling that I only find in dancing and other things I do with my wife.

I would really like to get into this livecoding stuff, and have tried ChuCK and SuperCollider. Clearly I never practiced enough to improvise in the live, but I'm wondering if it is at all possible in the sense I described above.




Consider applying for YC's W25 batch! Applications are open till Nov 12.

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

Search: