Jump to content

MidiBox DAW Controller


totoRaymond
 Share

Recommended Posts

Hi!

First, let me introduce myself. I'm Thomas, sound engineer, I'm working mostly in audio post but have a small home studio where i record small bands.

It's been a long time since i started thinking about making a midibox NG, but other projects kept me busy (I built a few preamps for my home studio as well as other audio gears)

But now, i finally have time and hopefully make it a reality.

I will try to keep this thread updated with my progress and experiments.


So first, i'll expose what i'm aiming for:

 

My goal is to build myself a Midi controller that is basically a Mackie Control with a few more features to control Nuendo.

I really want it to be as ergonomic as possible, and today, no controller on the market would fit my needs completely. (maybe Nuage systems, but that's a bit expensive)

Midi-wise, i will use 3 ports as Mackie Control and one as a Generic midi. (feature that you can set as you wish in Nuendo)

I want:
    -25 faders: 24 using MAckie Control and MC expanders + one using Generic Midi to control selected channel in DAW
    
    -Each fader will have 4 buttons, an encoder with led ring and an oled display on top (just as any MCU)

    -transport buttons
    
    -various array of buttons with MC features as well as window management, automation features, some edit functions...

    -a Jog wheel

    -a surround panner

    -one bank of encoders to control selected channel EQ

    -another bank of encoders to control Selected channel Dynamics

    -Control-room commands.


I think that's it for wanted features. Now for things i will need:

As i understand i'll need:

    -2 STM32F4 Core module (1 main and 1 for MF_NG modules)

    -4 MF_NG modules

    -a bunch of DIO matrices for buttons and LEDs.

    -and probably an AINSER8 module.


I already own a STM32F4disco and i made my own version of the core module. I went through the tutorials, and i've been playing a bit with a beaboarded Din / Dout.


Joined is a block diagram of the way i think My different modules will fit together. Hopefully i got this right...


I still have alot to do / learn, but feeling really excited about it right now!

And i'd like to thank Thorsten and everybody involved in the midibox project for all they have accomplished. This is great!

Cheers,

Thomas

Block diagram.pdf

Link to comment
Share on other sites

Hi!

I'm aware of Zam's Project, but as I understand it, it's more of a way to automate existing analog desk.

I just need to control a DAW with MIDI events, not planning to get any analog signal involved.

But i want more than faders. In fact, being able to access selected channel EQ / Dyn / surround Pan is the most important thing to me. Or else, i would just buy of the shelf Controller like Qcon / MCU / Behringer...

But none of them offers me the ergonomics i want. Something very close to Avid Dcommand actually.

 

Cheers,

Thomas

Link to comment
Share on other sites

8 minutes ago, totoRaymond said:

I'm aware of Zam's Project, but as I understand it, it's more of a way to automate existing analog desk.

It's the same, I'm not sure but there's no audio signal passing thru his faders, there's surely VCA for that purpose, the part that you don't need. But you will need faders, motor control etc...

Best!

Link to comment
Share on other sites

Couple thoughts:

great idea, i think it's quite feasible and will be worth the effort. will take longer and depending on your needs also not be cheaper than a commercial solution.

all the buttons/pots/encoders in the world are no issue to connect obviously. i have some nice rotary encoders with fancy LED ringgs around them available if you want haha.

one of the biggest issue i see with my limited knowledge is the DAW implementation. Does Nuendo allow to control the CURRENTLY SELECTED eq/dyn with a fixed CC or NRPN adress? or how are you thinking to realize the dynamic mapping? also sending out matching dynamic data from your DAW for your OLEDs, not sure if mackie control protocol supplies all this conveniently?

oh also for that amount of OLEDs and input stuff you might need a couple more MCUs/core boards down the line i think?

i though about doing something somewhat similar for ableton at some point, couple dynamically mappable input knobs with parameter name OLEDs. its easy there, if you use max4life, which i guess nuendo lacks..

 

maybe an alternative idea would be to buy an off-the-shelf controller for the basic motor faders and just build something smaller for all your custom shortcuts etc?

Edited by weasel
Link to comment
Share on other sites

10 hours ago, Antichambre said:

It's the same, I'm not sure but there's no audio signal passing thru his faders, there's surely VCA for that purpose, the part that you don't need. But you will need faders, motor control etc...

Best!

Oh allriight i'll look deeper into it then. thanks for the tip!

9 hours ago, weasel said:

Couple thoughts:

great idea, i think it's quite feasible and will be worth the effort. will take longer and depending on your needs also not be cheaper than a commercial solution.

all the buttons/pots/encoders in the world are no issue to connect obviously. i have some nice rotary encoders with fancy LED ringgs around them available if you want haha.

one of the biggest issue i see with my limited knowledge is the DAW implementation. Does Nuendo allow to control the CURRENTLY SELECTED eq/dyn with a fixed CC or NRPN adress? or how are you thinking to realize the dynamic mapping? also sending out matching dynamic data from your DAW for your OLEDs, not sure if mackie control protocol supplies all this conveniently?

oh also for that amount of OLEDs and input stuff you might need a couple more MCUs/core boards down the line i think?

i though about doing something somewhat similar for ableton at some point, couple dynamically mappable input knobs with parameter name OLEDs. its easy there, if you use max4life, which i guess nuendo lacks..

 

maybe an alternative idea would be to buy an off-the-shelf controller for the basic motor faders and just build something smaller for all your custom shortcuts etc?

DAW implementation is not really an issue, they have what they called "generic remote" which gives you the ability to control most of Nuendo functions with any CC, SysEx or any MIDI event. Including "selected channel" parameters.

Right now, i'm using this function with TouchOSC, but an iPad is not as good as a dedicated encoder / switch / joystick.

Mackie Control protocol at least gives you track name feedback, and I could derive other information from incoming MIDI events i guess.

 

As for buying, an off-the-shelf controller and add missing functions, i thought about it for sure, but it wouldn't be as ergonomic, which is a big concern to me. Plus, if i make my own solution, i would be able to scale it to my future needs, repair it, make it evolve with time. Which is not really possible with off-the-shelf solutions.

 

Next step will be to make the channel encoders boards, with channel switches daughter board.

         8 switchable encoders plus 4*8 switches = 56 Switches.

         8*11 LED Rings plus 4*8 Buttons LEDs = 120 LEDs

I figured i need 1 8*8 buttons matrix and 1 8*16 LED matrix. Is that correct? (maybe to 8*8 LED Matrices is better?)

 

Thanks everyone for your help!

Cheers,

 

Thomas

 

Edited by totoRaymond
Link to comment
Share on other sites

Hi! and sorry for double post...

 

I have a question :

Is it possible to get use the same DOUT Matrix for LED rings AND general purpose LEDs (like switch status)?

Say i have an 8*16 Matrix and only want 11 LEDs for my rings, I could make use of those 5 left columns...

After half a day searching it seems impossible, but i can't be sure...

If not possible, then i might change my plan a little bit. :rolleyes:

 

Thanks!

 

Thomas

Edited by totoRaymond
Link to comment
Share on other sites

  • 4 months later...

Hi everyone!

it's been a while but i made some progress recently!

I've received my first PCB along with some switches, and it works quite well (see below)

More switches will be coming in the near future, but for financial reasons, i only ordered one color.

I also ordered a few samples Oled screens from aliexpress. Unfortunately the first ones were I2C only, so i didn't manage to use them. ordered some new with SPI capability, but i don't expect them before christmas.

Near future will be to assemble and try a MF_NG module and make a PCB for the second section of my controller (monitoring).

 

But right now, i've been having troubles setting up banks. Any help would be appreciated.

I'm trying to configure independant banks of encoders/switches.

for example, Encoders 1 to 12 would be assigned to banks 1 to 8

                    Encoders 13 and 14 would be assigned to banks 9 to 12

I made a test and it kind of works, but if i select bank 9-12, encoders 1 to 12 wond send anything because, they aren't defined in this bank. And accordingly, i bank 1-8 is selected, encoders 13 and 14 won't send anything either

I hope I made myself clear, it's quite difficult to express this kind of thing in a foreign language...

Is it possible in the first place?

Attached is a .ngc of my trials with switches instead of encoders.

 

Thanks for your help,

 

Thomas

 

 

First PCB.jpg

TestBanks.ngc

Link to comment
Share on other sites

Ok, I think I found a solution to my problem.

I used the

meta=SetBankOfHwId:xxx

 parameter instead of

meta=SetBank 

But it didn't work at first because for my test i was using switches with ids in range of 1001 to 1064 (Connected to a DIN_MATRIX with button_emu_id_offset=1001 parameter)

And hw_id is limited to 1:255 range...

Right now it seems to work as intended, but i need to do some more testings.

 

Cheers,

 

Thomas

Link to comment
Share on other sites

  • 1 month later...

Hi everyone!

 

I finally received some ssd1306 oled screens last weeks and started to play with it.

So far, eveything is fine, i've been able to adress up to 8 screens without problems.

But for my project i intend to use 38 oled screens, so i would need a string of shift registers for CS pin.

On this page: http://www.ucapps.de/midibox_ng_manual_lcd.html it says that you need to connect those shift register to J28.

But... on the STM332F4 core module, i can't find J28. I guess the info didn't get updated from LPC17 core.

 

So which connector should i use for these shift register? I was thinking about J19 or J16?

 

Thank you very much for your help.

 

Thomas

Edited by totoRaymond
Link to comment
Share on other sites

Hi Andy,

 

Thank you very much,

for the moment, my aim is to roll my own pcbs, so i can keep things tidy in a quite small enclosure.

But first, i'll try to breadboard something in the next few days. (unfortunately a miswiring seems to have killed my STM32F4-DISCO right now)

 

Cheers,

Thomas

Link to comment
Share on other sites

Hi,

as i was writing this post, things finally got to work! I'll still put my troubleshooting here for future reference, with corrections in red. Please anyone, correct me if i'm wrong

I've been playing with my screens on a breadboard. I wired a 74HC595 to adress screens 9 to 16 as in this schematic:

fetch.php?media=dispdriver:header_j1-j2.

I assumed QA has to be wired to screen 9 CS pin, QB to screen 10 etc. !!! as in Dout modules, outputs of 74HC595 seems to be  "reversed" ie: QH is screen 9 and QA is screen 16.

So far, it's not been working as intended. Both screens display the same text as if they are enabled all the time.

I put some leds in parallel with CS pins, to see if they blinked and they did NOT blink when changing display. (as it should in normal operation).

So i wired my analog scope to monitor SCLK, RCLK and SER signals, and figured that there was no SCLK on pin 4 of J10B.

Finally i found a "solution" (more of a workaround really) by complete luck. I just changed the number of oled declared in the bootloader from 16 to 64 and TADA! now i can monitor an SCLK signal and screesn are working as intended.

I tried to go back to 16 lcd , and it doesn't work anymore.

Tried 32 screens... it works!

15 screens ? doesn't work...

17 screens? it works.

It seems to me there's a bug with J10B port not initializing correctly when the number of oled screens declared is <17.

Is it a known bug?

Maybe someone else can check if they have the same behavior?

I know very little about programming, but i would be happy to help solve this issue.

Unfortunately, I only own an analog scope, so monitoring those signals, is not very easy. (I can only see flashes of signals happening).

 

Cheers,

 

Thomas

 

Edited by totoRaymond
Link to comment
Share on other sites

  • 7 months later...

Hi Everyone!

 

It's been a while since my last update, but the project keeps going on. Although a bit slowly since the family got a new member.

I now have almost every pcbs tested and working as intended! I just need to buy a few more switches a make a case for all that stuff!

20200818_094511.resized.thumb.jpg.12e6a9

 

I'm still having trouble with motorfaders though... they work but make a big rattling noise when moving slowly...

 

Cheers!

 

Thomas

Link to comment
Share on other sites

  • 4 weeks later...

HI!

It's time for a quick update!

I'm in the process of building the console frame right now. Mostly because 90% of the pcb assemblies are done and because i need a way to wire everything together without becoming too messy (I fried 2 stm32 Discovery so far due to bad wiring).

So I assembled a model today and it came out great!

20200914_165514.resized.thumb.jpg.3f6de120200914_165442.resized.thumb.jpg.6f209b

 

I'm really pleased with the dimensions and the sloping of the frame right now, but some dimensions are too tight to fit everything together, so i'll have to redo everything (thankfully it's made out of scrap wood).

To give an idea of the finished console, the bottom will hold 24 faders on the left plus a master section (transport, jog, switches, surround panner) on the right.

the middle will be 24 encoders plus Oleds, and a few switches.

and the top will be a 19" 4U Rack on the left, a 15" Touchscreen on the centre, and 12 Encoders plus monitoring controls on the right.

 

Cheers,

Thomas

  • Like 1
Link to comment
Share on other sites

On 20 agosto 2020 at 0:03 PM, totoRaymond said:

Hi Everyone!

 

It's been a while since my last update, but the project keeps going on. Although a bit slowly since the family got a new member.

I now have almost every pcbs tested and working as intended! I just need to buy a few more switches a make a case for all that stuff!

20200818_094511.resized.thumb.jpg.12e6a9

 

I'm still having trouble with motorfaders though... they work but make a big rattling noise when moving slowly...

 

Cheers!

 

Thomas

 

Hi , it include also some option (patch) to "drive" virtual instruments ?

cheers

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.

Guest
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.

Loading...
 Share

×
×
  • Create New...