Grant Muller

Processing HarmonicTable 02

Mac users pointed out some problems with 01, so I fixed the following:

  • When dragging notes, the note would only sound once until the mouse was released.
  • The software would not start up automatically on many Macs unless the java version was set to 6
  • Unreported: Notes would only sustain as long as the mouse button was held. May be seen as a feature, see below for fix.

I fixed the dragging problem, and recompiled the software in Java 5 so that it will work in either 5 or 6, so Mac users should be able to start up without issue. I added a Release Notes toggle button on the setup screen, so you can sustain notes after the mouse is released. If you want notes to sustain only as long as the mouse is held, you can turn this Release Notes on.


There are two tabs at the top, one for the main table screen, and one for setup. The basic setup options at this time are midi ports, starting note values, and a toggle for releasing notes.

This was built using the Processing libraries, along with the ControlP5 library and Ruin & Wesen’s rwmidi library for midi functionality.

This is an executable jar, meaning if you have java installed on your machine (version 5 or above), you should be able to double-click it and you’re off and running. I have only tested this on Windows and Linux, some testing has been completed in Mac, but more needs to be done, so any Mac users out there send me your feedback.

Harmonic Table 02

If you have any questions or comments, leave them in the section below.


  1. Works great here. Like being able to arpeggiate a melody holding down the mouse button now ๐Ÿ™‚

    Can this be routed as an input for Logic, Live, etc?

    1. Thanks for the good news!

      You can route the midi output to anything on your machine using a virtual midi connector. I use Maple on my PC, which you can download here. I think on Mac’s there is something called Soundflower, or you have to create an Inter Application Connection, but I’m not sure on Apples. Basically you just need some software that allows you to route midi between programs (which is invaluable for using processing to control all kinds of things).

  2. Fantastic!

    Great job, I am a Processing beginner and was trying to get exactly this underway but my knowledge is nowhere near suffice to even draw a proper hexagon and then I discover that you’ve already got it all implemented. Sort of makes me lose all will to learn. Heck I can’t even get your code to play nice in Processing, I just don’t know how to fit it all together…

    Anyway, I’ll keep hacking at it, trying to achieve something every day.

    My ultimate goal for the harmonic table in processing was to implement computer keyboard playing function. I also want to add some alternative note layouts such as the Wicki/Hayden one which I hear is easier to play conventional songs on.
    At the very least you should consider adding keyboard input to this:

    Keep it up!

    1. Thanks! Sorry about the software not working in processing, my own process is to sketch my ideas first in processing, then move to Eclipse to implement other libraries. I’m a software developer by trade so its easier for me to work with the tools I use everyday.

      I just took the “Hexagon” class that I made and re-imported into Processing, so you can see how to use it very simply. I’ll post it today for everyone that’s interested…Then I’ll leave it up to you to draw a map with it ๐Ÿ™‚ Keep hacking at it, you’ll learn more and more everyday.

      I’ll look into translating the keyboard to the harmonic table, though I will probably use more than one layout for the notes. For instance the thummer layout moves in 5ths & 6tsh (F, C, F, C), I would prefer solid 5ths vertically (F, C, G, D)… but it’s trivial to build in several modes.

      1. Sorry, my mistake on the thummer layout, looks like it does move in true 5ths up the layout of the keyboard…it just does it at an angle. Whoops!

  3. Thanks so much Glen, really looking forward to seeing some form of keyboard playability now, indeed it translates to the Thummer layout as well, could be switchable in the settings maybe?

    Will let you know how I get on with the Processing sketching!

    I will send along the links to your Harmonic Table to they love this stuff over there.

    1. Haha, no worries on the name…I’ve had worse. Let me know if you need any help on the processing learning curve. I had a hard time at first, but you’ll have breakthroughs. I’m going to start a little column here I think about coding for music, and I’ll post one of the breakthrough’s I had today regarding the representation of scales and modes in midi…very useful. I’ll let you know how the keyboard layout changes go.

      Thanks for the mention on CDM as well, I’m a regular commenter there, but would never think of posting my own stuff…we’ll see if my little tool here makes it past Peter Kirn ๐Ÿ™‚

  4. Your harmonic table is truly beautiful… if only I could USE it ๐Ÿ™‚

    I have a touch screen that I’m dying to try it out on, but I can’t seem to get it to make any sound or generate any MIDI. BTW I’m one of those unfortunates that is still running a PC. Not sure if the .jar was Mac-specific.

    Ulitmately I’d like to incorporate this into a live performance rig.

    1. I think you might just have a setup problem. Is it working with a mouse? If it works with the mouse and not the touchscreen, then I need to look into that, let me know if that’s the case.

      I do all my work on a PC so I know it works there. Remember that the HarmonicTable isn’t capable of making any sound, it just outputs MIDI. On the options page you should be able to tell it which midi device to use, including the internal Windows MIDI system (The default). Make sure the volume is turned up for the ‘SW Synth’ on the volume page (click the speaker in the bottom right hand corner).

      Let me know if you’re still having problems with it, I’ll get on messenger and help you out with it

Leave a Reply to gmuller Cancel reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.