MIDI Hammond Drawbars project

Status
Not open for further replies.

glenn.szymanski

New member
I have a few different sets of drawbars from Hammond Organs (M-3 and M-142), I'd like to have 2 sets of 9 drawbars (18 total) and be able to send each set on its own midi channel.

There is a project on Hackaday that is similar, but it's only 1 set of 9 drawbars and uses a Teensy LC. Seems like the LC only has 13 analog inputs?

https://hackaday.io/project/162255-midi-drawbars-commander

This one also has 8 buttons, how is he able to have 9 drawbars + 8 buttons with only 13 inputs? A multiplexer?

In addition to my 18 drawbars, I'd possibly like to have maybe 2 sets of 5-6 buttons (total of 10-12) each set on it's own midi channel for vibrato and other functions. Would I still be able to use the LC or should I get something with more inputs?

thank you,
Glenn
 
Hi Glenn, welcome aboard!

There is a project on Hackaday that is similar, but it's only 1 set of 9 drawbars and uses a Teensy LC. Seems like the LC only has 13 analog inputs?

Indeed, 13 analog inputs:
https://www.pjrc.com/teensy/teensyLC.html

This one also has 8 buttons, how is he able to have 9 drawbars + 8 buttons with only 13 inputs? A multiplexer?

The buttons seem simple on/off (digital) pushbuttons, so you don't need analog inputs for those.
The little LC has many digital I/O pins along with the aforementioned analog pins, so you've got plenty for your pushbuttons.

Of course if you want to control all your 18 drawbars + buttons, yes you need a multiplexer along with the LC.

In addition to my 18 drawbars, I'd possibly like to have maybe 2 sets of 5-6 buttons (total of 10-12) each set on it's own midi channel for vibrato and other functions. Would I still be able to use the LC or should I get something with more inputs?

The LC could still suit you, with multiplexers; or you may want to check out the powerful Teensy 3.5/3.6:

https://www.pjrc.com/store/teensy35.html
https://www.pjrc.com/teensy/techspecs.html

Teensy 3.5, for example, has 27 analog pins, along with many digital pins. No need to multiplex.
 
Hi Glenn,
I'm Stefano, the author of the project you found on Hackaday. :)
You can find the thread about building it in this forum too: https://forum.pjrc.com/threads/37030-Drawbars-MIDI-Controller-planning-questions

First of all please note that my project is built around a set of 9 linear potentiometers that look like drawbars. They are not "classic" drawbars like yours.

The set I used is coming from a Wersi organ, and all the modern "hammond" clones now use linear potentiometer like that instead of "real" dreawbar because it's lot easier to work with them: you can treat them like any other potentiometer.

But please be aware that to interface your set of "real" drawbars it could be necessary to transform them.

I have to say that some years ago I built another project around a full set of "real" drawbars pulled from (I'm not sure) an M3 (pretty much like yours, I think).
At the time I converted them to behave pretty much like potentiometer using a series of resitors.
Unfortunately I haven't documented that project in English nor from a technical point of view, but maybe the pictures and some Google Translator can help to follow the old blog posts here, specifically this post

Even if that "transformation" worked pretty well, I was never really satisfied, the readout was always a little wobbly.
I'm now considering to redo the wiring of that drawbars set like a button matrix of 8x9 for each drawbars set. This could give a stronger readout of each drawbar position but for sure will require moltiplexing the digital inputs.

I found a lot of help in this forum, your are in the right place ;-)
 
I have a few different sets of drawbars from Hammond Organs (M-3 and M-142), I'd like to have 2 sets of 9 drawbars (18 total) and be able to send each set on its own midi channel.

Glenn

Don't know how this went for you, but I did a similar thing with a teensy and a single set of 9 hammond drawbars. But I'm getting crosstalk between the drawbars, and I'm wondering if there's a good way to cut down on that.

For those who don't know, each of the 9 drawbars makes contact with one of 9 bussbars. Which one depends on how far it is pulled out. So this is how I wired mine up, shown with just 3 busses for simplicity:
Code:
                                                                             --to ground
                                                                             |
buss1 ------------------------------------------------------------------------
                                                                             |--1K resistor
buss2 ------------------------------------------------------------------------
                                                                             |--1K resistor
buss3 ------------------------------------------------------------------------
             db1    db2   db3  db4   etc....                                 |
                                                                             --to voltage
this works great with one or two sliders, but when I get all 9 going, I'm getting spurious values sent to other drawbars. Hardly surprising, as I think about it, but wondering if there's an electronic solution. My code is good at ignoring deviations in midi value (I only need 9 unique values after all) but these fluctuations are much larger than that. Specifically, if I pull one slider to max, several other random sliders will typically send max or near-max values also, even if they are set much lower... (although grounded sliders tend to stay that way.)

Thoughts?

edit: to possibly add to the complexity, each drawbar briefly makes contact with 2 consecutive bussbars, as it moves.... this was to avoid dropouts in the tone, a design improvement made in the late 30s, I think.
 
If drawbars can short out neighbouring busses, then certain arrangements will short out lots or even all the busses together,
which means the problem is fundamental - you need to ensure there are detents so that each gets parked correctly touching
just one drawbar.
 
One way is to read regularly and ignore any value that is different from the last reading (upto some tolerance).

Only if the reading is stable for consecutive readings and the value has definitely changed from the last stable
reading do you report back a change to the internal value used in the code.
 
Status
Not open for further replies.
Back
Top