Jump to content



Recommended Posts

Lets get started...


Goal is a midicontroller for Ableton live, at the beginning as simple midicontroller, maybe later to transfair Labels via max4Live to the controller... it will not a midibox-ng script, it will be a own program based on the MIOS-platform.

Hardware first, i designed a 6xSSD1306 + 9 Encoder Board, that is scaleable --- i will use 8-10 off it, its documented here (incl gerbers): http://wiki.midibox.org/daw-encoder-display


i already have the Motorfaders and the ready soldered and flashed mf-ng boards, i will controll them with a stm32F4 board... which also handles the encoders and displays.

in order to drive the displays stable, i use latigid-ons display driver board.

- this is also the offical discuss topic for this project (which is linked in the wiki)


Edited by Phatline
Link to comment
Share on other sites

  • 4 weeks later...

pcb arrive, soldered 4 off them (12 channels) - the 4 others i make a nother time. (24ch in total)

the display drivers from Andy work great again!

the midibox code is working, the max for live patches too. (at least for this state i am happy to get automaticly the Channels names, and the Macronames!!! hell yeah!)



  • Like 1
Link to comment
Share on other sites

  • 2 weeks later...
  • 3 weeks later...
  • 1 month later...


i am working on the Frontpanels now,

For the Button Board i use Aluminium

Clear Acrylic for Screen-Encoder Section


Opal Acrylic for the Motorfader Section -

+++because, i plan to make RGB-LED-Boards so light up the Channelstrips in the same Color as they are in Ableton Colored... so i see groups, and have overview....

i want to mount them lower to the Encoders and make a Aluminiumplate to block the LED-Light from lightning into my eyes directly.

i too make traces into the Acrylic, so i have less Illumination from strip to strip:


Link to comment
Share on other sites

  • 3 months later...

This is brilliant, amazing work Phatline!

A few questions about the encoder/oled board: 

I`m trying to understand how everything is addressed. Do all encoders have a unique CC number which is mapped to individual controls in Ableton?

And what about the oleds, do they show feedback provided from the DAW (name and value of mapped parameter)?

Thank you and good luck with your project!


Link to comment
Share on other sites

The names are done with max4live... i program max4live since it was first released, so no problem to make it better over time, how it works now is:

you put one master max-patch in one channel (for example in the Master-channel)

this master patch do the communication with my Midibox via Sysex.

it collects all Track names, and Macro names, and sends it out via Sysex to my Midibox.

The sysex protocoll i have made by my myself, so this can be emproved off course...

The collect of Names is done once, when the set is loadet, or with a button press, all the names are transfaired via sysex one time,

so there is no miditraffic while "jaming", all switching between the Encoder/button Banks does not force any sysex or CC dump,

all CC and Names are stored inside the Controller (while this session)

The Value displayed on the OLED is taken from the CC-Value (not via sysex)


In order to collect all the names from the tracks and Macros, i have to put an slave-Plugin  in each Track off the Set, it collects the macro-names of the Live-rack wich it is placed in. And of course iot collects the Channel-Name.

All CCs have a unique Number/midichannel... via one USB-Midiport - the Midibox-USB off course have 4 Midi Ports, but i use only one for this task.

The Feedback is like on all other Midicontrollers, if you moove a Knob in Ableton, it transmit via normal CC to Midibox - in the Midibox the CCs value is then stored, and if the CC is in the actual shown CC-Bank the display will be updatet too (so you see the new value)

if the CC is in a other/non shown Bank, then it is stored only, and if you switch to its Bank later, you see the corrent CC-Value there.


no standalone MaxMSP patches are needet, because Max4Live can transmit sysex in the meantime!

The Name thing is the easyest thing, since it is automatic - in setup - just put in some plugins, and set the Channel number - done.

The CC-Assignment, is like on all other Midicontrollers, it has to be done by hand, so its a bit work because off the mass off CCs, but once it is done, you are fine.


When you load a new set, all Faders are jumping to the correct position, and the Displays are updatet.


At the moment i spare some money for the frontpanel, so no update up to now...



Link to comment
Share on other sites

Thank you for your detailed answer and merry Xmas BTW.

Since I use Cubase Max4Live is not an option for me, but I figured out a solution that might fit my demands. Though this might be OT I would like to explain it because it might be of interest for some people.

I want to build a small DAW controller for Cubase that addresses a channel strip plugin (for example Waves SSL G-Channel) of a selected track. In Cubase 12 it is possible to bind incoming CCs from an external controller to parameters of an inserted plugin of a selected track (in MIDI Remote: selected Track->Insert&Strip FX->Parameter). That's the easy part... But since I don't want to open the plugins UI I was searching for a way to display the values of the parameters. Let's f.e. take the SSL´s frequency knob of the LMF EQ band. I tried displaying the according CC values using Lemur with a customized function for the range of this specific parameter (20-250 Hz). Without going to deep into this it turned out that this does not work precisely because the range does not seem to be linear, so my endpoints (20 and 250 Hz) are correct but everything in between is slightly off. 

So I need to get the "real" values from the DAW. The. only (for me possible) way is to use the MCU (Mackie control) protocol which sends out the desired data. So in Cubase I have to create a Mackie Control as a remote device and catch the data with a MCU display in plugin mode starting at page 2 with "Values" enabled. The order of parameters I can luckily change within the plugins Remote Control Editor in Cubase.

This all works so far using a MCU template in Lemur. I still have a lot of work to do adjusting my future MBNG controller to this, but once I have everything running I will create a new thread and dive into details, don´t want to hijack this thread...

Link to comment
Share on other sites

dont know anything about MBNG-Script, nor with Cubase (except that i tryd it - and had the feel "its not my workflow, and i cant customize my workspace here")

I had those Mackie MCUs and wrote a MaxMSP (standalone) Groovebox for it, that was 2012 - so the knowledge is anywhere in my brain.... http://wiki.midibox.org/doku.php?id=triggermatrix&s[]=triggermatrix

about MCU since it uses sysex, sounds do-able, what that means in MBNG-Script - you will have to find out, if you ever come to a point where you see that MBNG-Script cant do what you want (i dont know) , you can call me to discuss for a more custom code.

Link to comment
Share on other sites

  • 1 month later...

Looks very nice and neat .I didnt know you are so busy with things . (Thank you for your support).

I was working a lot with max/msp and m4l too. Its a lot of fun , but it takes a lot of time as well :)  .

Enjoy and keep up this amazing work.


  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...