A 30 year old 24-Channel Analog Mixer goes MIDI

Status
Not open for further replies.

Dinera

Member
Hi to the community,

My band and I want to record our new album. After some hours with virtual fader and knobs I thought about a "big" MIDI controller.
I'm obsessed of this idea! I've started to plan my project and want to share it here with you (and hopefully I get some inspiration ;) ).

1. The Mixer
On Ebay I've searched for a cheap broken mixer and found a nice 24-channel mixer out of the 80s.
photo_2019-03-06_18-38-59-e1552487081358.jpg
Specifications:
- 24 channels
-- each has 8 rotary potentiometer + 1 fader + 1 button
- 2 effect channels
-- each has 1 fader + 2 rotary potentiometer, the other 1 fader + 1 rotary potentiometer
- 2 master channel
-- each has 3 rotary potentiometer + 1 fader
- 1 Monitoring channel
-- 3 rotary potentiometer + 1 button + 1 fader
all in all
- 29 fader (4.7kOhm)
- 204 knobs (rotary potentiometer/ 10kOhm and 50kOhm / 24 of them have 6 legs which include 2 potentiometer)
- 25 buttons (not real switches, only push button switches)

2. The Plan
I want to use a Teensy 3.6. On any analog pin (23 pins, the SMD pins are not touched) should be a 74HC4051 multiplexer. With this configuration it will be possible to route 184 analog devices. All in all I need 256 analog inputs.
To get some mute or solo buttons I will remove 2 lines of rotary potentiometers and substitute them with toggle switches. If I do it in this way I need 181 analog inputs and minimum 48 digital ones. If I use 3 position toggle switches (on-off-on) I will use 96 digital inputs.
Finally, I need 181 analog inputs and 96 digital inputs.

That are quite a lot of inputs and I have to multiplex. For the multiplexing I need 34 multiplexer (23 for analog and 12 for digital). The 74HC4051 will be the multiplexer for this project.
To have enough power and minimize the latency I will use the Teensy 3.6.

3. The Questions
Does the Teensy 3.6 handle 277 multiplexed inputs or will be better to use 2 micro controller connected via SPI to get a low latency?
Do I need an external power supply?
I calculated with 10kOhm potentiometers and 180 Inputs. R=U/I; I = U/R; I=3,3V/10000VA; I=0,059A;
Is this calculation correct?


Thanks for reading and ideas are welcome! :)

Dinera

PS: I will give you updates like circuit diagram, pcb design, problems, current state, etc.
 
There are 2 main issues when trying to measure a huge number of analog signals by with muxes.

1: Speed: The ADC takes time to measure, and you have to allow a settling time for the signal to stabilize. If you can make a measurement every 50 us (a pretty realistic goal with Teensy 3.6 and mux chips), you'll get 20000 readings per second. If you're sweeping through 277 of them, at that speed you'll read them all only 72 times per second. Maybe that's good enough?

2: Quality: Running so many analog signals to so many chips, with so many ground wires (possibly forming ground loops), and so many digital mux control signals rapidly switching is a recipe for lots of noisy signals. Lower impedance helps (those 50K pots might not work so well). Waiting for generous settling time helps. Good quality construction and careful attempt to star-pattern grounding helps. But it's always tough to get the sort of quality you'd see with keeping the signal local and transmitting digital data over the distance. If you do get noisy data, you can always try to clean it up in software, but that tends to slow things even more.

While not technically an issue with Teensy or mux circuits, before you go too much further, you might do a little testing on the pots. Normal pots are linear taper, meaning you will measure half the resistance from the center to each side while the knob or slider is in the center position. The resistance changes linearly as you turn... just what you'd expect. Sometimes analog audio gear is made with "audio taper" pots, which are meant to give a sort-of logarithmic or exponential change in resistance. If the pot is directly attenuating an audio signal, you'd want that non-linear response. Most of those pots are actually 2 or 3 sort-of linear segments. If you have these sorts of pots, reading their position will involve coming up with an equation to model the taper. If the change is very slight towards one end, that equation will probably amplify any noise problems.

Hopefully this hasn't discouraged you from doing this project, and hopefully it'll help you anticipate the challenges.
 
Hey Paul,

Thanks for your reply!

1. I don't know if its fast enough. But it is not an e-drum where it need very low response time. It should be for mixing and mastering, not for "real time" usage on stage or something else. So I guess it will be fast enough. How do you calculate the 20000 readings per second?
2. I've checked the pots after disassembling. Only two (what I measured) in each channel are non linear pots. So I will replace them with buttons. Also the 50K pots work fine. And I have to "clean" the signal anyway. If they value is flapping it will block the transmission for other values of pots. The length of wire is also make me headache. I want to place the circuit in the middle of the mixer to keep the wire as short as possible but the length will be about minimal 50cm (19.68in) and maximum 70cm (27.56in).

Tomorrow I will draw a circuit diagram followed by a pcb (but not tomorrow ;) ) to discuss further details.
 
How do you calculate the 20000 readings per second?

Based on 50 us per measurement, where 50 us is a number I just made up. :)

But seriously, analogRead() usually takes 10 to 20 us depending on settings, and you'll need some time for settling of the signals, so 50 us is kind of a conservative estimate.

The actual speed in practice can depend on a lot of factors, especially your programming skill and level of effort.
 
...actual speed in practice can depend on a lot of factors, especially your programming skill and level of effort.
E.g. you can use the settling time to do any required filtering before reading rather than just adding delay.

Consider that nearly all the signals will be dormant and many would be infrequently accessed and tweaked slowly then set, rather than used as a performance modulation source.

Scanning the EQ section less frequently than the faders or even tracking recently altered signals for higher frequency scanning could dramatically improve perceived performance.

If the hardware is well built you can always improve your firmware as you're expertise grows. You might convert to an interrupt-driven version once you've aquired the skills.

Also consider the audio tapers on some pots may be appropriate if they are only used for the same function ... ganged pots for cross-fade may be less useful.

For more specific advice...
What's the make and model?
Can you post a picture of the guts?

If you're doing this to learn, great. But I doubt you'll be mixing your current album with it and the risk of failure may be very high.
 
Hi again,

E.g. you can use the settling time to do any required filtering before reading rather than just adding delay.

I'm not able to program this at the moment. In order to the mutiplexer and the behaviour of the output, I've no idea to realize it. I will search for it ;)

Consider that nearly all the signals will be dormant and many would be infrequently accessed and tweaked slowly then set, rather than used as a performance modulation source.
Scanning the EQ section less frequently than the faders or even tracking recently altered signals for higher frequency scanning could dramatically improve perceived performance.
If the hardware is well built you can always improve your firmware as you're expertise grows.

The midi controller will not process any analog audio signal by it self! It will not used as an audio interface. Every pot will checked by the Teensy for the values of the resistor. This value will be converted to a midi signal to control the surface of the DAW (in my case Ardour5).

You might convert to an interrupt-driven version once you've aquired the skills.

I talked to a friend and he said the same. I should use a micro controller like an ATtiny25 (https://www.microchip.com/wwwproducts/en/ATtiny25) for at least 6 pots and let the Teensy check the micro controllers. The controller communication is the hardest part I guess.
Maybe I will do this in a further version and build it modularly.

For more specific advice...
What's the make and model?
Can you post a picture of the guts?

It's a "Dynacord MIC 24/2".
All pots are disassembled. I will not use it for audio processing (answerd in the other quote) so I do not need the old guts. By the way only 6 channels were not broken bevore disassembling ;) .
There is a LED bar which is originally used for output meter. It will be nice if I can use is as a display, but I've no Idea what it can tell me. :D

Any way I made a PCB.
If searched the Internet for a manufacturer of PCBs. And I found Seeedstudio.com (https://www.seeedstudio.com/fusion_pcb.html). 10 pieces for 4,90$ sounds good to me.
Conclusion I have to make a PCB that fits for the one with the Teensy and the others.

https://dinera.de/wp-content/uploads/2019/03/MidiController_v2.pdf

Every input pin will connected to a pot or a switch. The connection cable will be a shielded cable.


Dose this work also with the manufacturer? It will be my first PCB. I never did it before. Thanks!

Edit: Here are my gerber files: https://dinera.de/wp-content/uploads/2019/03/GerberMidi.tar.gz
 
Last edited:
I am watching with interest!
A very cool project :)

I am currently trying to build something quite similar from scratch (slightly less knobs and buttons! - 33 analog/46 digital). Am pretty confident in being able to physically build the device, but am probably biting off more than I can chew code wise and was worried about similar latency/noise issues.....

(Paul has just reassured me a bit about the latency though, it sounds like this will not be too awful)
 
In the last months I was playing around with analog and figured out is not that what I expected. I tryied many things like shielded wires, low/high pass filter and even very short wires. In all setups is a flapping of values and if there are 260 knobs polling is not the best solution. ;)
The plan is changing the analog potentiometers into digital knobs (rotary encoder). I made a new prototype with 3 encoders last week and it works very well.
I'm also scared of high latencies and read a lot of tutorials and dokumentations about micro controller (e.g. ATtiny13A, ATtiny2313, etc.).
The next goal is to setup a µC with rotary encoders and a SPI bus which sends the data to the Teensy and the Teensy process the data into midi values.
If I have a concrete vision of the complete projetct I will post it here.

At the moment it is difficult to say how and when it will be done. (At the start I've expected I can complete the whole project in one month :D )
I must learn much more about electronics and µCs.
 
Status
Not open for further replies.
Back
Top