Nick,
it is a Dr. Boehm CnT/L. These organs were sold as a kit until about 1982.
This one was made in 1978.
I have stripped out all of the old analogue circuitry while keeping the
drawbars, push buttons and turning knobs, and using the circuit boards of a
MIDIbox64 project I built my own MIDI controller.
The two manuals and pedal were already converted to digital via a genuine
Boehm MIDI controller, but the drawbars, pushbuttons etc. were not.
I have finished the hardware part of the controller, now I am busy getting the
programming to work.
There are several things that make the whole business rather complicated:
I am planning to mimic the behaviour of the old single finger chord drum
accompaniment and recreate the rhythm section. And I want to switch between
GM compatible SF2 sounds and B4II organ. All of these have their own features
that have to be made to work with the drawbars and switches. And there is an
LED panel as well, that should display the function of the buttons and
drawbars when operated or give other useful hints.
I have finished programming the MIDI box64 controller part although at the
moment it does not much apart from sending a SYSTEM EXCLUSIVE message when
pulling drawbars / pressing switches, and I want to use keykit for tracking
these messages and converting them into MIDI messages for the applications
that I use. I think that using an external "host" application for preparing
all of the MIDI stuff is easier to use because it offers more memory and is
quicker to program. There is more to come as soon as I have things working
together as expected (more "convenience functions").
I have used the SYS EX command now with an "arbitrary" ID that I hope no other
component (hardware, software) is recognizing apart from keykit - but only
because I will tell keykit to recognize it...
It seems to me that NRP controller will produce too much overhead for simply
switching a sound on and off. I know that normally a PRESET CHANGE would do
that, but such a command cannot toggle sounds, like stops of a church organ,
but only switch between them.
Regards,
Crypto.
Am Saturday 27 September 2008 15:33:25 schrieb Nick Copeland:
That sounds like a nice project. What kind of organ
was it and what did you
use as the MIDI controller?
You could use SYSEX for these kind of messages however SYSEX is a bit
painful with regards to having a recognised SYSEX ID - officially you
should request one from the MIDI Manufacturers association which can be a
bit of a pain in the butt if you are working on a free, open source
application since you have to pay for this 'pleasure'. If you do choose to
use SYSEX then you keyboard will probably only ever interoperate with your
own interpreter since nothing else would respond to you SYSEX. That may be
what you want however to use it as a general controller then you probably
don't want this restriction.
You may want to look into using NRP controls but that does have gory stuff
attached to it: firstly you would have to select the Non Registered
Parameter you want to change then give the data values you want to set it
to. Changing from one controller to another does require extra messaging
however once you have selected a control you are left with just data entry.
The data entry can be 7 or 14 bit and you actually leave it up to other end
to decide how to handle - it puts a bit more onus on your interpreter code
to recognise when you have a 7 or 14 bit value. The actual amount of data
you need to send may also be quite large but if the only reciever is going
to be your interpreter then you will have flexibilty in the translations
from NRP to whatever paramter you want to send onwards.
Perhaps you actually just want to have a look at what you want these
controls to do. Depending on how many you have and what you want to control
then you might find the GM default MIDI mappings are all you need, giving
you things like ADRS parameters, filter parameters, FX parameters, etc. The
truth is that the GM spec is a bit restrictive but that depends on what you
want to achieve. Also, if you get GM to work and the code is well written
then you can extend it from there to drive different synths with non-GM
mappings.
Regards,
NIck.