Forum Rule: Always post complete source code & details to reproduce any issue!
Results 1 to 7 of 7

Thread: MIDI Hammond Drawbars project

  1. #1

    MIDI Hammond Drawbars project

    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-m...bars-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

  2. #2
    Senior Member
    Join Date
    Oct 2015
    Location
    Roma (IT, EU)
    Posts
    339
    Hi Glenn, welcome aboard!

    Quote Originally Posted by glenn.szymanski View Post
    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.

  3. #3
    Member garubi's Avatar
    Join Date
    Sep 2016
    Location
    Modena, Italy, EU
    Posts
    43
    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 ;-)

  4. #4
    Junior Member
    Join Date
    Feb 2020
    Posts
    19
    Quote Originally Posted by glenn.szymanski View Post
    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.

  5. #5
    Senior Member
    Join Date
    Jul 2020
    Posts
    327
    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.

  6. #6
    Junior Member
    Join Date
    Feb 2020
    Posts
    19
    There are detents, so the drawbars don't REST on two buss bars. So in another (sorry, duplicate question, but I forgot I'd written it, doh!) post, it was suggested to use a debounce, so as to ignore sudden fluctuations. That post is here:

    https://forum.pjrc.com/threads/59628...166#post248166

    I'm not sure if a debounce will cut it, and also not sure how to do one....

  7. #7
    Senior Member
    Join Date
    Jul 2020
    Posts
    327
    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.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •