Midi

We have had an excellent week nutting things out and have made a big step forward with the software, so much so that I've been able to start writing music for the first track of the album which as I mentioned last week will be an interpretation of Bridget Riley's 1962 painting "Blaze 1". 

Ok over to Greg for a software update:

"Last post I mentioned that I took the color values from the image and converted them to white noise. Since then I've modified my program to generate actual notes by mapping color values to note frequencies. For example, here are notes with associated frequency values:

enum class NoteFrequency(val frequency: Double, val wavelength: Double) {

    C0(16.35, 2109.89),
    Cs0_Db0(17.32, 1991.47),
    D0(18.35, 1879.69),
    Ds0_Eb0(19.45, 1774.20),
    E0(20.60, 1674.62),
    F0(21.83, 1580.63),
    Fs0_Gb0(3.12, 1491.91),
    G0(24.50, 1408.18),
    Gs0_Ab0(25.96, 1329.14),
    A0(27.50, 1254.55),
    // ...
    As8_Bb8(7458.62, 4.63),
    B8(7902.13, 4.37);
}

I can choose notes from this list to form a scale, for example, C major:

enum class CScale(val noteFrequency: NoteFrequency) {
    C0(NoteFrequency.C0),
    D0(NoteFrequency.D0),
    E0(NoteFrequency.E0),
    F0(NoteFrequency.F0),
    G0(NoteFrequency.G0),
    A0(NoteFrequency.A0),
    // ..
    A8(NoteFrequency.A8),
    B8(NoteFrequency.B8);

}

Finally, I can find notes in this scale based on the color values from the image:

    fun findNote(frequency : Double, values : List<NoteFrequency>) : NoteFrequency {
        val notes = values.takeWhile({ it.frequency < frequency })
        if (notes.size > 0) {
            return notes.last()
        } else {
            return NoteFrequency.C0
        }
    }

These notes are then converted to midi and sent to Madeleine."

And back to me!  Incidentally the midi track looks like this:

I ran the midi track through our Dave Smith Mopho synthesizer, this is what I came up:

I totally love it, and and it's given me a ton to work with.