Geneva Live Coding Exercise



I am always amazed of what you can do with samples once you chop them up, apply filters aso… This is fun! Here is a live coding exercise using my shorthand notation to find my path. I used some external piano samples and did especially explore the joy of resonance:


This is by far the best thing I’ve heard made with Sonic Pi. All that ambient stuff in the first half of the video was great.

Do you know if anyone has done tutorials on using shorthand. I can kind of decipher a bit of what you’re doing but would like an overview of every existing shorthand. Or is there somewhere where the shorthand is documented? I’d really like to get into this.


Hi @bagofdragonite,

thanks very much for your kind encouragement!

Sometimes I do use Emacs (via sonic-pi.el) to control Sonic Pi. This is mainly because I meanwhile have a bunch of files, sketches aso. Emacs has some good project management tools, which I thus can take advantage of. Further more it provides a search and some standard completion (of what you typed earlier) although the Sonic Pi editor also has a great completion function (actually it is better than what I currently have in Emacs because I did not bother to set up a somehow more sophisticated completion function such as a list of samples aso). That said: There is no further automation or completion going on.

Maybe the term ‘shorthand’ is a bit missleading but it is only a kind of notation I developed for myself to reconcile the idea of improvisational live coding (where you ideally invent while typing) and the ability to code some advanced (and somehow rehearsed) musical ideas. It is a practice tool I made up for myself. It helps to memorise complex code, which I then can explore, change or extend whithout the need to stick to my previous script. Also it is a huge help especially because it leaves room for interpretation (and many errors). That way after several times of practicing one script these ideas become somehow part of my Sonic Pi-vocabulary (well, at least that’s the aim :wink: ).

So here is a simple example:

# bd bar
# at 0 1 2 3
# s blips easea am 0.5
# s 4

is my personal notation and reminder for the following live loop

live_loop :bd, sync: :bar do
  at (ring 0,1,2,3) do
    sample blips, "easea", amp: 0.5
  sleep 4

In the future I will reduce the details (because I am sure I will be able to code without such help) but for now it is a good way to get going without having to compromise to much with my amibition for somehow interesting and nice sounding music (well, yes, that is entirely a matter of taste).


Really enjoying this. You, sir, are an inspiration.


What an amazing ride!