Since I don’t have a touchscreen to test this with, I’m releasing the 01 version with mouse functionality, along with a few GUI functions to change the midi out port and the starting note number. At some point I’ll get a tablet and add the touchscreen functionality, or if someone has a tablet I can pass the source code on and they can test/implement that functionality.
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 and starting note values.
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 6), you should be able to double-click it and you’re off and running. I have only tested this on Windows and Linux, so if there are any Mac users out there, please let me know if there are any problems.
If you have any questions or comments, leave them in the section below.

I was attempting to run your JAR on Mac OS X 10.5.5 and got the following error-
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] Exception in thread “main”
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] java.lang.UnsupportedClassVersionError: Bad version number in .class file
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.lang.ClassLoader.defineClass1(Native Method)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.lang.ClassLoader.defineClass(ClassLoader.java:675)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.net.URLClassLoader.access$100(URLClassLoader.java:56)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.net.URLClassLoader$1.run(URLClassLoader.java:195)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.security.AccessController.doPrivileged(Native Method)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.lang.ClassLoader.loadClass(ClassLoader.java:316)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:280)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
1/7/09 4:10:08 PM [0x0-0x91091].com.apple.JarLauncher[9290] at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:374)
works on OS X 10.5.6, just make sure that Jave SE 6 (64bit) is your preferred java in the java preference pane.
One thing I noticed though, if you hold your mouse button down, you cannot arpeggiate notes that have already been triggered…in other words, you cannot start at A, go to D, then G and back to D without having to release and click again.
Thanks
Using mac os x.5, I get: The Java JAR file “harmonictable.jar” could not be launched.
Grant,
With 1.6 installed on my MacBook Pro, it would not run from the regular jar launcher (that is it wouldn’t launch by double clicking it through the finder) as the Mac installs 1.6 but still defaults to 1.5 (which is lame). This doesn’t work under 1.5
If I open up the console (terminal) and navigate to my download directory, I can type in the following command to run the app:
/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Commands/java -jar ./harmonictable.jar
This method works fine.
It seems to work fine with the following caveats:
(1) The real-time sequencer does not work (I can’t get any sound). I do get sound with the Java Sound Synthesizer though.
(2) I have no idea what this is supposed to do other than play notes, so I don’t know if I’m using it correctly.
Thanks!
To all Mac users, I’ll try to get this tested properly in your environment and see what I can do!
@Keith and vcon: This is probably a problem with your java version on the Mac…see the Posts from Michael and Patrick and see if they help – just make sure that Jave SE 6 (64bit) is your preferred java in the java preference pane.
@Patrick, you’ve pointed out a bug it looks like! I think its an intentional one, but I need to create two modes…one so that it will not arpeggiate notes and one so that it will, I’ll just make it an option on the setup screen. I did this so that chords would sound if I played them in little rings with the mouse, and would not duplicate notes when dragging.
@Michael Riecken – You might look at Patrick’s post to see if thats an easier way to start it. I use a lot of the Java 6 features, so its not compatible with java 5. I’ll see what I can do about the Real Time sequencer. All this does is play notes…so you ARE using it correctly.
Ok Mac people, I released a new version that should fix all the stuff you mentioned. You can find it here:
http://www.grantmuller.com/processing-harmonictable-02/
As usual let me know if there is something wrong
Pingback: GeometrÃa armónica | the dimeBag
Hello Grant,
tested V02 on mac os 10.4.11, routing the notes to a midi track in live, via the IAC driver. It works perfectly, had some fun drawing patterns with a graphic table.
I add a really small issue when I opened midi game of life at the same time, that I was using with its IAC driver. Probably a conflict, since I add to quit both apps to make one work properly.
You have designed a really beautiful piece of software… making c-thru’s device kind of even more desirable.
I was thinking : could you design a V03 with the ability to draw shape moves on the table, re-play the patterns, including some cellular automation ? (I’m a dreamer).
Thanx so much to share you work.
I think I might need to put an exception wrapper around opening midi ports (probably a conflict with the other program). I will look into that.
Those are REALLY great suggestions for stuff to add! I am going to release a version 03 next week with a chord mode feature and some performance fixes. The chord mode feature will let you play chord when you hit a key (probably allow the user to select from 9-18 chord shapes, minor, major, diminished, etc).
I will look at the pattern memory feature for version 04, along with the automata feature. Thanks for the suggestions!