What is the Threnoscope?

The Threnoscope is a live coding system focusing on three key areas of music: spatial sound, timbre and texture, and tunings and scales. It has affordances that result in long durational notes that can move around in space, change timbre (through filtering, resonance frequencies and waveforms) and pitch according to implementation of numerous tunings and scales.

The Threnoscope was intitially intended to be a musical piece, but became an expressive system, an investigation into spatial sound, wave interferences and the relationship of harmonic ratios and tuning systems from the world's various musical systems.

Implementing the Scala tuning library standard, the Thrensocope has access over 5000 tuning systems and scales, and it contains an application for creating your own microtonal tunings and scales.

The Threnoscope in use

I, Thor Magnusson, have used the Threnoscope in various forms over the past years. Each performance has resulted in improvements of the system and collaborating with many fantastic musicians has enabled me to get expert feedback on the way the instrument works in a collaborative setting. Most often I have played with solo performers, but I also collaborate with my Emute Lab colleagues in the Brain Dead Ensemble, whose recordings can be listened to in the previous links.

The release

The Threnoscope has grown over the course of its development and it is now ready to be released to the world, even if it is not fully finished (software never is). I am hoping people will contribute to its development, so please download the source from Github and contribute their own features into the system.

Using the Threnoscope

I'm interested in observing how people make their own music with this system. I hope to hear a lot of that music, so please send me an email or a message on Twitter (@thormagnusson) when you have some music you'd like to share with me. Occasionally in the past, I have given some musicians access to the Threnoscope, and it has always been a great surprise and joy to hear the music they made with it.

Live coding in musical culture

Live coding is a novel improvisational practice. It derives from computer music practice, where people began writing algorithms in real-time, as musical scores, and interpreted by the computer. Live coding is perhaps the most honest way of making music with a computer, talking with it in its native language, rather than building new interfaces or simulating existing analogue technologies. Of course the live coding language is an interface on its own: a high level abstraction to be compiled into 0s and 1s, but it is the algorithmic thinking of live coders that aligns with the operations of the machine - or perhaps the other way around?

It is therefore important for the progression of computer music that we have many live coding systems, each one delivering a particular way of thinking about music and pattern generation. There are already many systems out there and I list my favourite ones here below. These are "micro-systems" or languages that have been built on a more complex system in order to make the musical creation simple and fast. These systems exist on a continuum of mid-to-high level of abstraction, but most live coders are not interested in working with low level code.

  • TidalCycles

    TidalCycles, or Tidal, is a popular live coding language that enables a particular way of thinking about musical patterns. It is built in Haskell and uses the SuperCollider audio server as sound engine.

  • ixi lang

    ixi lang is a super simple live coding language, one of the easiest musical instruments around. It has an expressive notational language with a very simple syntax, but good for rhythmic musical explorations. It's built on top of SuperCollider.

  • Gibber

    Gibber is a browser-based JavaScript live coding language. The Gibber environment is user friendly and people get up and running very quickly. Gibber has some very interesting ways of representing what is happening in the music.

  • Foxdot

    Foxdot is a Python-based live coding language that interfaces with the SuperCollider sound engine. The system and related software are very good for distributed live coding where multiple coders can work collaboratively on the same code.

  • Sonic Pi

    Sonic Pi is a fantastic system for learning how to program, exploring music and performing music live. It is used all around the world in educational settings as well as in live coding performances. It uses the Ruby programming language and interfaces with the SuperCollider server.

  • Extempore

    Extempore is probably the most versatile and powerful live coding programming language around. It uses the Scheme programming language, but also has its own Xt-lang programming language for lower level machine language code.

  • SuperCollider

    SuperCollider is the powerhouse of audio programming languages. It's not a bespoke live coding system, but it is often used as such and many people have built their own live coding systems on top of SuperCollider, for examply ixi lang.

  • Sema

    Sema is a Web Audio API browser-based live coding system for machine learning. Offering coders the potential to easily apply machine learning in their artistic practice, it also offers the potential to easily create bespoke live coding languages, thus diversifying the already rich flora of live coding systems.

Get in Touch

We are looking forward to hear from you. We are interested in what you do with the Threnoscope, so please get in touch using this form.