Home

Awesome

Shuttertone

Shuttertone is an open-source generative music application that uses colour data from images to generate multi-layered sequences of music that are output as a realtime stream of MIDI note messages.

You can download the application from: https://github.com/liamlacey/Shuttertone/releases. <br> It's available for macOS (version 10.7 and above) and Windows (version 10). <br>

This application was originally built for Music Hackday London 2014.

Shuttertone has been programmed using the JUCE cross-platform C++ library, and includes an Xcode project for building on macOS and a Visual Studio 2019 project for building on Windows. JUCE also easily allows you to create a makefile to build for Linux.

How to use

The application doesn't output any audio itself; it only outputs MIDI data, so you need to have a Digital Audio Workstation application or MIDI software (e.g. Ableton Live, Logic Pro, Cubase).

The application outputs notes on four channels, each designed for a different layer of music:

The application will work best if you apply relevant instruments to the corresponding channels/tracks in your DAW. For the pad track, Shuttertone may output chords/multiple notes, so it may not work if you chose an instrument that generates chords based on a single MIDI note. For the drum track, it uses the following four MIDI notes:

The above download link includes a demo Ableton Live 9 project to get you started.

Future plans

There are many things on my to-do list for this application:

Technical details

The application works in the following way: <br>

  1. Each pixel of the chosen image is analysed in terms of its red, green, blue, brightness, perceived brightness, saturation, and hue values. <br>
  2. The image is split into four horizontal strips, and the average value of each of the above types of data is worked out, as well as an average of each value for the entire image. <br>
  3. A number of these average values are then mapped to a set of musical parameters (see below). Each of the four sections of the image relates to one of the four layers of the generated sequence, with the global values mapped to global sequence parameters. <br>
  4. These musical parameter values are used to create a particular sequence of notes. The sequence of notes does not change until you load a different image into the application. <br>
  5. This will then play a repeating 4 bar piece of music. <br>

Here is the currently mapping of data:

In regards to the sections of the image and their mappings to the layers of music, the top horizontal section is for the melody, the middle-top section for the pads, the middle bottom section for the bass, and the bottom section for the drums.

License

Shuttertone is licensed under the GPLv3. LICENSE.txt for details.

The following libraries are included in the source code: