Processing

GOLSequencer, HarmonicTable, and MidiReference on GitHub

With just a little trepidation I have checked in the code for all of my free software goodies into GitHub. I was getting several requests to provide access to the source for several of my old projects, so rather than emailing code around on a case by case basis, I have simply checked everything in to GitHub for posterity. Who knows, maybe someone will jump in there and fix all the bugs.…

RWMidi and Pitch Bend: Another Adventure in Social Coding

In my previous post, I discovered that the RWMidi library was available via GitHub, leaving it open to the possibility of forking and making my sync and pulse resolution changes public. Proving that Jung and Sting were on to something, while making these changes I received an e-mail from a user struggling with RWMidi: I’m trying to send a simple Pitch Bend message and it’s proving impossible! I was already in the code, so I poked around.…

RWMidi, GMS, and GOL Sequencer: Adventures in Social Coding

Many moons ago, I created a little tool called the [GOL Sequencer Bank][1]. You can read more about it [here][2], and [here][3]. In order to create the tool, I used [RWMidi][4], a Java/Processing library created by Manuel Odendahl of [Ruin&Wesen][5]. While creating the sequencer bank, I discovered that the RWMidi library had no support for MIDI Sync messages, preventing me from syncing the sequencer with a master, like Ableton Live. This simply would not do.…

Harmonic Table 0.5: Midi Input & Lit Keys

While I thought the GOL Sequencer Bank would get the bulk of my attention this Winter, it turns out I’m getting far more requests to update to the Harmonic Table controller. Among them were Midi Input capabilities, buttons lighting up, and some bug fixes here and there. All that completed, I give you Harmonic Table 0.5. Here is the breakdown: Midi Input – This feature allows you to accept midi note on and off events and display them as key presses on the main screen.…

Converting 24PPQ Midi Sync in Java/Processing

I would be the first person to say that for the most part, MIDI is perfectly acceptable as an interface between musical devices, and has survived for as long as it has because of how dead simple it is. MIDI is still plenty fast, and in terms of interoperability, has yet to be bested. However MIDI does have its shortcomings, and while helping John Keston over at AudioCookbook with his Gestural Music Sequencer, I ran in to a big one.…

Harmonic Table 0.3

Bit slow these days with work and other stuff to get around to some of the changes I’m been meaning to make to these projects, but here is a quick 0.3 stab. I had more changes planned for this release, along with some stuff for playing back patterns and keyboard playback support, but for now I only had time to make a few changes: Chord Mode – Chord mode allows the user to hold down a key on the keyboard and play a chord when a note is clicked.…

Game of Life Sequencer Bank Beta

I finished up a bunch of changes to the Game of Life Sequencer Bank. Here is a brief overview: UI Overhaul - Rather than trying to stuff all the sequencers into 1 window, I gave them each their own tab. So now you have 6 tabs across the top with an independent screen for each sequencer. This allowed me to create a 32 x 32 grid rather than just a 16 x 16.…

Java MidiReference 1.0

Several months ago I started working on a series of classes to make my life easier when programming for music. I’d started several projects and realized that trying to refer back and forth between MIDI Numbers and Notation by hand was tedious, so I created a library of functions to do it all for me. I finally got around to formalizing this into one library, and released it here. I’ve put this into action already with the Game Of Life Sequencer Bank and HarmonicTable projects, and its really made it easy to pull scales, chords, drum maps, you name it quickly from a preset library…

Game of Life Sequencer Bank Alpha

I wrapped up the Game of Life Sequencer Bank Alpha release (which I’ll probably start calling GOL SeqBank because it’s easier to type). Documentation, downloads, etc can all be found here: Game of Life Sequencer Bank Hopefully it doesn’t break on anyone. I’ve been using it to generate all kinds of random noise successfully for at least a few days now.…

Game of Life Sequencer Bank Demo

Some time ago, Wesen of Ruin&Wesen created a screencast of a sequencer based on the game of life concept. I followed the screencast, and thought there was a lot you could do with something like this. I thought of several features, making it a step sequencer, a drum sequencer, perhaps enabling multiple scales. I had some free time (we took a vacation), so I worked on it on the plane and early in the morning while my wife slept in, and came up with the Game of Life Sequencer Bank, a bank of 6 GOL sequencers each capable of individual operation and synced via MIDI.…

Drawing a Hexagon in Processing / Java

As part of my little HarmonicTable project I spent a lot of time figuring out how to draw a proper hexagon. It seems I wasn’t alone in this endeavor, as I’ve received a few comments and e-mails about how exactly to do this. At the request of others I’ve moved the Hexagon class back into Processing, and written a dead simple PDE sketch to show you how to use it.…

Processing Harmonic Table 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.…

Processing Harmonic Table 01

UPDATE: This is no longer the latest version, I fixed some bugs for Mac users and reposted. To get the latest version click here. 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.…

Processing Harmonic Table: Part 2

Since the last post I’ve had to make far more changes than I expected. If you looked at the previous examples, there was using a loop to create the hex buttons, making translations to relative to other translations on the screen. In the process I completely lost track of the absolute position of the button, which basically made it impossible to detect the location of the mouse on the screen in order to tell which button I was pressing.…

Processing Harmonic Table: Part 1

Earlier this year while reading Harmonic Experience by W. A. Mathieu, I was introduced to the concept of lattices to represent tones, chords and keys. These lattices can be used to represent the basics of music composition in a visual way that makes more sense than standard scales on staffs. Here is an example: The lattice is effectively several staffs of music stacked on top of each other, so that the note can be displayed horizontally and vertically.…

Java Midi Reference Class

Lately I have been doing some work with Processing to create visuals from music. One of the concepts I’m working with is live visuals based on video feeds from cameras that are tracking the show, or band, or whatever. This alone would be enormously boring, so to heighten the experience, I thought of using the audio output of the show to control features of the video feeds, like playback speed, positions, color and hue, etc.…