Building a knobby programmer for my Oberheim Matrix 1000 Synthesizer Module
I’ve been doing some preliminary research by
-
buying an Oberheim Matrix 1000 from eBay for $200
-
pouring over it’s MIDI specification and owners manual and obtaining
manual to an Oberheim Matrix 6
- buying a Behringer BCR 2000, hacking it’s SYSEX dumps with a HEX editor,
learning what it’s like to have knobby control over the Matrix 1000
parameters and taking notes
I have a few more steps to go towards completion of my project which I call:
Chaos Matrix 1000
-
introduce myself to the MIDIBOX community
-
inquire advice from more experienced people in the forums
-
order the necessary electronic components for prototyping
-
*develop application, make adjustments to MIDIOS
-
**determine the necessary components and design a front panel layout
-
fabrication of aluminum panel and silkscreening
(*notes: I have experience with c, c++, c#/java, perl)
(**notes: I see no reason to take the time and energy to put something like
this together, just to slop it up with ugly components and giving no thought to
the quality of the enclosure. I would like for the enclosure to resemble something
that Oberheim might have produce in 1978-1984. A cross between an OB-X panel
and an Xpander panel)
At this point, I have a few questions about which HUI to base my project from
and whether if they have the required functionality I’ve been able to determine
at this point.
Questions:
- Considering the number of faders, rotary encoders, momentary buttons and
switches I need to cover all the parameters for the synthesizer. I’m sure
either the MIDIBOX64 or the MIDOBOX64E would suffice as a base point, but
I’m sure there are differences between the two that would make one much
better than the other. Which HUI would you suggest I focus on?
- Most the other applications used with the MIDIBOX64 and MIDIBOX64E are for
MIDI fader/volume control. My requirements would obviously be a lot different.
Here is a list specific functionality I would need.
-a button that would toggle between 2 values (SYSEX strings)
and a set of LEDs that indicates the state of the button
-a button that would rotate between 3 or more values (SYSEX strings)
and a set of LEDs that indicates the state of the button
-an endless rotary encoder transmitting 7 bit signed values
(for -63 to +63 parameter values)
-an endless rotary encoder transmitting 6 bit signed values
(for -31 to +31 parameter values)
-a set of buttons would need to sum up their bit values for the
same byte
-a button that would transmit a SYSEX string based on the value of another
encoder (save current patch buffer to a memory location)
-a button that would transmit a SYSEX string after waiting on user
input for another value. This may require the use of a numeric
keypad. This may also be optional.
-a button that would transmit a number of individual SYSEX strings
(patch initialization, zeroing out all the modulation matrix slots etc)
-I might also require that some knobs/buttons/switches have dual use.
the need to page different functionality for them by holding
down another button would be useful.
-I would also need to ability to adjust the update interval of the rotary encoders. When turning the encoder, I wouldn’t want to send SYSEX
data no faster than 10hz.
These are all the required functionality I can think of right now. I’m
sure there will be more to come.
- Considering the list above, some changes to the software will be necessary.
How much of thie required functionality is allready there - only requiring
the configuration changes? How much work would it be to make the necessary
changes?
I hope I’m not asking too much. Thanks in advance for your replies.
-patrick manderson