My Control Surface show and tell with huge thanks to PieterP!

Because of how geeked out I am with the successful results of my midi controller project, I felt compelled to share it here and thank PieterP for the indispensable help of his Control Surface library. This project uses 4 faders, 5 potentiometers, 2 buttons, utilizes an 8 input multiplexer, and runs off a Pro Micro.

I do voice over for a living and I'm often in the booth for long stretches, sometimes recording several different narrations, one after another. My entire recording rig is software-based using the UA Apollo system. Making small recording level or playback volume changes, and even muting mic channels, was always something that could only be accomplished with mouse clicks. And as someone who grew up recording on analog devices, I wanted to be able to make these adjustments with one turn of a knob or one button press instead of having to execute it with several mouse clicks, or worse, adjusting a fader or dial with a mouse. None of the pre-built midi controllers fit the bill in terms of device size or functionality so once I discovered I could DIY a control surface myself, I knew that was the answer. Now, not having any coding or industrial design experience definitely made for a sharp learning curve, but as someone who has done electronics DIY and previously used YouTube to figure out how to do things like fix my refrigerator, fix my washing machine, learn how to paddle surf, etc... I knew I could start there and learn by watching other examples, which eventually led me here and Pieter's Control Surface library, which is so incredibly easy to implement.

Using his examples as a jumping off point, I was able to turn a couple of my previously rendered (working) prototypes into a single device combining the functionality of both into one. I even taught myself just enough Fusion 360 to design a front panel model that I had 3D printed through Treatstock for just under $20, including postage. The result? A really great workflow streamlining device that does exactly what I need it to and allows me to make those recording console changes on the fly. I honestly could not be happier with the result.

That being said, I want to continue developing this device to make it even more functional and interesting. The things I'm currently thinking about include:

  • Possibly changing out the B10K potentiometers with rotary controllers. First, I need to figure out how to add several rotary controllers to the code.

  • Neopixel rings around the rotary controllers to indicate setting. The 3mm white front panel should be translucent enough to show the diffused LEDs behind it.

  • Possibly adding small mute buttons (maybe with capacitive touch) to the fader channels

  • Capacitive touch faders with LED indication.

  • Bankable memory settings.

  • Maybe ditching the faders altogether and go with all rotary controllers with LED indicators.

So, THANK YOU EVERYBODY!! and of course, if anyone has any thoughts or possible code ideas to share, that would be amazing. This forum has been more helpful than I could have imagined.





Great work @wordsushi! It looks very nice, both front and back.

Thank you, Pert! Today was the first full day I worked with it in the booth and it performed flawlessly over several sessions. It has been a real joy finding this library and this forum.

Congrats on the controller! I'm glad you found my library useful :slight_smile:

When using rotary encoders, it's best to use interrupt pins, otherwise, the library falls back to polling, which can be too slow if there are many other things going on in your loop. IIRC, the Pro Micro has 5 interrupt pins, so you might be able to use 5 encoders (if you use 1 interrupt pin for each one).