Get interesting music from SoundCloud with clojure

Music

I'm an avid music lover. I listen to a lot of different genres. I always look for something new and it usually takes a lot of time to find something interesting to listen to.

The appearence of SoundCloud made the task a bit easier. I can just subscribe to my favourite labels, magazines and artists music feeds and then listen through the aggregated feed from time to time.

The problem is I don't want to spend my time listening to everything from the feed. There are also podcasts and mixes in it I want to skip. It'd also be good to get just the most reposted and favorited tracks.

Clojure and Light Table

Clojure is the tool for the task. Even the low level of proficiency in it is enough to do something interesting. The core language is very simple. There isn't much to study. And while the community isn't too large it has some really smart people which build some high quality tools for the less smart people (me included).

Last but not least the entry barrier to Clojure is much lower now because you can use Light Table instead of Emacs. Emacs is rather cryptic for the beginners and takes a lot of time to learn. Ligh Table has more conventional UI still allowing the interactive programming approach.

Interactive programming is an important concept. It's an approach that let's you iterate very fast without resetting your program's state. I feel like this doesn't mean a lot until you try so give it five minutes and you'll be amazed.

Interactive Programming

The interactive programming is enabled by the right combination of a programming language and an editor.
I want to show how fun and productive it is with the practical example.

To go throught it you have to use Clojure and Light Table. Most of the tutorial is inside the comments to the code. Follow the instructions below to get to it.

  1. Download Light Table
    http://www.lighttable.com/
  2. Download or clone the tutorial
    https://github.com/Nek/blog-music-finder
  3. Open src/music_finder/core.clj with LightTable and follow the instructions from the file.

Postscript

I also make music. Check out my music tracks and sound experiments at https://soundcloud.com/nek.

If you are a programmer making music you'd probably should take a look at my older post (it's also a good example of interactive programming): Overtone + Pure Date = ♥.