I’ve been playing with using words to control the articulation of a physical modelling synthesiser based on the elegant Karplus-Strong algorithm.
The idea is to be able to make instrumental sounds by typing onomatopoeic words. (extra explanation added in the comments)
Here’s my first ever go at playing with it:
For a fuller, more readable experience you’re better off looking at the higher quality avi than the above flash transcoding.
Sounds a bit nicer now… This time with a smaller font and an exciting slither of my desktop visible. Sorry about that, see it a bit bigger over here
An early sketch of a system of vocables for describing manipulations of a sine wave.
The text is a bit small there, it’s better in the original avi version.
Vowels give pitch, and consonants give movements between pitches.
I’m not sure where I’m going with this. It’s nice to describe a sound in this way but to use it in music the sound has to change over time otherwise it gets repetitive and therefore boring in many situations. I think I either have to develop ways of manipulating these strings programmatically, or ways of manipulating how they are interpreted. Both approaches would involve livecoding of course…
A new project:
The idea is to use festival speech synth to turn what people type into rhythms, giving them a simple multi-user interface for playing words together.
Please play with it! All feedback very much appreciated. It’ll run until 14th April, after which I’ll release the sourcecode under the GPL for download, plus if anyone’s interested, a DVD containing the audio from the two weeks.
Relatedly, I was excited to find out about Canntaireachd, which is to bagpipes what bols are to tabla. I’m looking forward to getting my own articulatory synthesis working…
[update] This project is now finished, but I wrote a report on it.
Rohan Drape has made a nice tutorial to getting his “Hsc” Haskell bindings to SuperCollider installed and integrated with emacs. It’s available here (link updated). This is exactly what I needed, I’m hoping to get started with some simple physical model synthesis this coming week.
Higher quality AVI available at slub.org
Not really a review, just a strong recommendation… Graham Hutton’s Programming in Haskell is published mid January 2007, but Cambridge University Press are shipping already — I got mine just before Christmas and wish I had it earlier… It is by far the best introduction to Haskell I’ve seen, at least for someone new to functional programming such as myself. The chapters on parsing and and IO are a good mark of the book, together clearly yet stealthily introducing monadic programming in an easily digestible form. Well this book has plenty of other aspects I could praise, but like I say this isn’t a review, just go read and enjoy it yourself.
It’s great to read a really clear, concise text book, I could almost feel my brain re-organising itself while I read it. The experience reminded me of reading K & R after some months of confused C hacking, feeling everything clicking into place. That would be over ten years ago now, gah…
I’ve returned to this subject, having many good ideas to explore from recent discussions with Tim Blackwell. We thought rendering some whole songs would work nicely. I didn’t fancy playing with my Java code again so wrote some Haskell, which I’m rather pleased with. The source is available (feedback welcome!). It does the the mapping using seeks on the output file, allowing impressive memory efficiency via Haskell’s lazy evaluation.
Some examples of some indie synth pop, disco, minimal techno (*3) and industrial gabba below, click on the images for the full versions but beware, they are rather large, around 5M each. Mouseover for the original track names.
Another experiment with haskell, rather hastily screencasted for your pleasure:
It’s using haskell’s Parsec module to parse the syntax, and sending the sound events to supercollider for rendering.
This is a work in progress, but GPLd source available is on request, as is an AVI version if you don’t have flash. All feedback much appreciated.