Video does not say that much, read the text, and look at the pictures!
I have a proposition for a new type of controller for playing and recording chords. It’s based on isomorphic input and the usual keyboard. And no it’s not an accordion.
Why do I think me and the world needs this? Because recording and editing chords on the computer is tedious and boring. Even when applying all the tricks I know in Ableton Live I still lack a way to fast and easy add a walking chord or a strum like one. And if I program one and then transpose it I would have to redo it for every single clone if I want to change a little something. Not to mention the human feel that you get while playing something rather then programming it.
This became apparent to me while learning to play the bass, I could reuse the same pattern if I knew the base note. This kicked ars, but basses are hard to strum on, and even harder to make into MIDI data. So I found the isomorphic input method appealing, but the cheapest keyboard was still expensive. So I was thinking about making one cheaper, and that would not be done unless there where significally less buttons.
So I came up with this idea:
Using a one octave keyboard to choose the root-note, and then a isomorphic keyboard that is velocity sensitive. That way I would only need 12 velocity sensitive buttons and 12 keys for the note-selection.
This is a map over the isomorphic layout I choose:
So a major chord would be:
and minor:
To test this idea I wrote a little program based using a KORG padKONTROL as velocity editing and a rockband keytar as MIDI-input device. This was way faster and cheaper then starting to solder something together, and I get to get a feeling for it before trying to fix hardware problems like, how should it look, should it be strapped or more like a piano, is 12 buttons correct?
void handleMIDIMessageFromMidiDevice( int status, int data1,int data2) { /* printf("handleMIDIMessageFromMidiDevice: "); printf("status %d | ",status); printf("data1 %d | ",data1); printf("data2 %d \n",data2); */ if(status == 144) //NoteOn { if((data1-12) < 25) //If it's from the padKontrol, let's play { printf("MyData %d \n",data1-12); sendShortToHost(status,(data1-12)+RootNoot,data2); } else{ //it's from the keyboard, save rootnote RootNoot = data1; } } else if(status == 128)//NoteOff { if((data1-12) < 25) { sendShortToHost(status,(data1-12)+RootNoot,data2); } } }
One thing I found out is that the minor chord could be optimized if I move it to here:
this was an easy fix and as used in the video.
Next steps could possibly be to make dedicated hardware, should it be drum-type buttons to mash on or should it be something else, should I strap it on like a keytar or should it be stationary like a piano. is it more comfortable to play the keyboard with left hand or should that be right hand. So many questions.