Also from Andrew Faraday

Where else can you find me?

Monday, 27 May 2013

What's new in Text to Music?

My very first blog post, a long time before the rest, was on the subject of my favourite side-project, Text-to-Music and what I'd done with it. Well, that was over a year ago now and I've started showing it off at conferences since then. Turns out developers love to tweet and see/hear the result.

Well, since then I've tried to develop it past a system which can only read tweets, after all, it's a pretty re-usable algorithm. Also highly hackable, as it's easy to plug in other sources of text, and to take substitute the existing Pure Data patch for another sound generator (provided it can read a TCP port).

For those of you who don't know, Text-to-Music is a ruby patch which reads a string of text, character by character and then sends a message to pure data to sonify it with these rules:

  • Letters are notes one semitone apart, alphabetically.
  • Upper-case letters are one octave above their lower-case counterparts 
  • Numbers are three semitones apart (describing a diminished scale)
Punctuation is a selection of special cases which follow no particular rules.

For over a year now, the repo has included scripts to get text sources from:
  • Manually typing them in
  • Text files
  • RSS feeds
  • Tweets
I have prototyped a system for creating and queueing messages for Text-to-Music from within Ruby on Rails, a plugin I named acts_as_singable, however there were problems in getting this into production. Not the least of these is that I don't know anyone who could use a real-time sonification of something from a rails website in real-time. 

Anyway, for any developers reading this I can announce a potentially quite useful feature (which is a first for TTM). Yesterday I added two new scripts to sonify GitHub commits. 

This means that for open repositories, you can review the last twenty commit messages as a sound. Which is fun, but not very useful. If you need to review these, you might find it easier to do so at your own pace rather than waiting for the typewriter effect to take place. 

However, you can also monitor a github repository in real time, and hear commits as they come in. This is potentially quite helpful because you can hear a colleagues commit and ignore it, keeping your eyes on your work while being aware of the traffic on your repo. 

I've also learned, after using TTM quite a bit, that you can learn to recognise certain words which are used a lot, so you could get an idea of what part of the project is being worked on and the kinds of things being fixed. Merge messages which tell you the conflicting file paths have a lot of forward slashes, which are easy to recognise. So you could tell when conflicted merges are happening. 

It's still a 'nice concept' idea, in reality, but it's creeping closer to becoming a helpful aural notification system. If you're using Mac or Linux feel free to try it out, get the code from and let me know what you think on twitter: @MarmiteJunction 


  1. @MarmiteJunction doesn't exist on twitter.

    Anyway I love to play with Text-to-Music thanks!

  2. Thanks for letting me know, just so you know, @MarmiteJunction is correct and on twitter, but I've mis-spelled the URL behind that link. Correcting now.