Harmonic pitch colour generator for Cubase (based on Malinowski's method)

Hi all!

I realise this won’t be for everyone, since it requires using the terminal and only works on macOS, but I thought I’d share it in case it’s useful to someone.

For my own work in Cubase I wanted a way to generate pitch colour palettes based on Stephen Malinowski’s Harmonic Coloring method. The idea is that the twelve pitch classes are mapped to colours by their position on the Circle of Fifths, rather than chromatically. Pitches that are harmonically close (like the tonic and its fifth) end up with adjacent colours, which makes it much easier to visually track tonal centre and modulation when working with Cubase’s pitch colouring feature.

To that end I wrote a small command-line tool called mixtuur. You give it a tonic and a scale or mode, and it prints a table of all twelve pitches with their corresponding HSV colour values, harmonic degree, and (optionally) harmonic function labels. Supported scales include all the standard diatonic modes, harmonic minor, melodic minor, the major pentatonic, and a full chromatic palette.

The colours themselves need to be entered manually in Cubase via PitchSetup...Pitch Colors, which is a bit tedious. Unfortunately there’s no preset support for this yet (this has been discussed in Pitch --> Color add "Save Presets." and still hasn’t been added), so you’d need to re-enter them each time you switch key or mode. That said, if you mostly work in a single tonality and mode, the setup cost is a one-time thing and it’s quite practical.

Quick demo:

…aaand the tool itself:

Source code: GitHub - coignard/mixtuur: Harmonic pitch colour generator for Cubase · GitHub

Any feedback is welcome, though as with my other projects I can’t promise a quick response. You can also reach me at contact@renecoignard.com.

MfG

René Coignard

2 Likes

They might get stored in the UserPreferences.xml file.
There are two sections.

         <member name="pitchColors">
            <string name="SetName" value="Pitch Colors" wide="true"/>
            <list name="Set" type="list">
               <item>
                  <string name="Name" value="C" wide="true"/>
                  <int name="Color" value="4293211702"/>
               </item>

and directly underneath

            <list name="DefSet" type="list">
               <item>
                  <string name="Name" value="C" wide="true"/>
                  <int name="Color" value="4293211702"/>
               </item>

The numbers seem to be 4 byte decimals. I guess this doesn’t make things easier unless you program an editor that changes the values directly in this file.

1 Like

Wow, I should have figured that out myself from the start :–) Either way, it wasn’t too tricky, XML plus ARGB integers is straightforward enough, so I’ve added a cubase module to the project. One can now export the generated palette directly into Cubase’s preferences without touching anything manually, just pass --push on the command line. Thank you!

René Coignard

2 Likes