Jump to content

Recommended Posts

Posted

hello,

i've been working on a midibox lately with the following features:

8 encoders (two rows of 4)

8 switches (two more rows of 4)

4 extra switches (misc functions)

the layout looks like this (O for encoder, X for switch)

X    O O O O

X    O O O O

X    X X X X

X    X X X X

these are all situated under a 4x40 lcd (right now i have two 2x40's for testing purposes).

how it works:

the application lets you assign names to each general purpose encoder and switch so you can see on the lcd what function you are controlling.  for example, you could assign "osc1pitch" or "cutoff" to a knob.  then the name of each control shows on the lcd in 4 rows of 4 controls.  you get up to 9 characters per control.  this setup of 16 control names can then be saved into a "patch" you can name, and you can freely move between patches to control your various instruments.  the channel that controls the entire patch is also saved.  the initial setup of a patch can be a little tedious, but you only have to do it once per control and it's all saved to the bankstick.

each encoder saves settings for cc# and whether you want to send absolute or relative midi data.  each switch saves settings for cc# and whether you want a toggle or momentary control.  also, the two values sent by switches are freely assignable.  to round things out i've added a midi learn function you can activate when setting the cc# for each control (not really tested yet).

patch management is pretty easy.  you can rename a patch once it's created and insert/delete between patches.  there's no alphabetical order or any kind of sorting.  if you want one patch between two others, simply press "insert" while the first patch is active.

this is my first c application (before this i programmed in vb) besides the basic stuff they taught me in school.  i received a lot of help from nils and stryd (thanks).  i will release the code shortly but before i do that, i'd like to get it into a completed box so it's a lot easier to test.

my idea for the layout of this box is that it could host other kinds of applications, with the generic layout and lcd space.  so i wrote this program with it in mind that i will add more programs later on (i.e. it'll format the bankstick when you add new software without overwriting your previous patches).

btw this thing will fit into a PT-8.

Posted

Sweet!

One thing that would be cool here is the ability to send/rec'v patches via sysex. That way, say I make a patch for CoolVSTi, and some other guy uses CoolVSTi, then he can download my patch from the net and upload it to the midibox, and his controller is all configured for the softsynth :)

Posted

Yay, definitely needs a "check for updates" feature in the app you're going to write to manage the patches and likesuchas ;D

Posted

stryd_one this is actually something on my list of things to do.  i'd like to make a simple GUI patch editor so you don't have to mess with naming on the lcd if you don't want to.

i have to learn how to use sysex anyway because the midibox i want to build next will use it.  i'll have to also learn python for liveapi so i think the gui patch editor should be written in python.  i just bought a python book and it says i can write cross-platform applications, so perhaps it's a good language to use for the patch editor and a good way to start out with it. :)

Posted

TK wrote a sysex handler framework that's on SVN if it helps.

Python does seem to be widely used, you might be on the right track there :) Cross-platform good.

Posted

I second Python for cross-platform apps. The problem is, though, that there's no definite MIDI-library for Python. There is a lot of stuff which works, but I have yet to find a cross-platform MIDI-lib which is also maintained. It might make sense to abstract the MIDI stuff in case you end up having to change libs in the future. Java seems a good option for cross-platform stuff (MIDI included) these days, but it's nowhere near as fun to program as Python is.

In any case, this is a good place to start for Python MIDI and music stuff: http://wiki.python.org/moin/PythonInMusic

Posted

thanks for the link.

i think the application would simply output a text file that can be uploaded via midiox.  it's probably easiest and python could still be used.

this is on hold though until i work my way through using liveapi and build my live controller.  have you worked with liveapi at all?

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...