Jump to content

DAW controller orientations and design


endernoumea
 Share

Recommended Posts

Hi everyone,

 

To briefly introduce myself:

I'm a 35yo guy living in New-Caledonia which is a small French island lost in the pacific. (So once and for all I do apologize for my English :poke:)

Because I'm far from everything I decided to create my own controller based on this awesome Midibox NG. I have some knowledge in electronic and computer code from my old days in school.

 

I started the design but I face some questions that need a little of your experience.

 

Here the general needs:

- I mostly use Reaper but also Nuendo/Cubase for some project and I want to use the Keyboard and mouse as few as I can.

- According the success of this midi controller project I plan to build a midi sequencer to attach on it for my Live rig.

Those needs make me think that I need something as flexible as possible with some storage for different configurations.

 

I tried to read as many post/forum as possible but I'm a little bit lost in all this information so if you have some builds to recommend for inspiration it will be more than appreciate.

 

Because it's my first Midibox project I want to start with something "simple" that I can extend by replacing or adding components. Once everything fits my ideal I will do a dedicate PCB and order a lasered surface but that's for later.

 

In the final stage I may have "A LOT" of led, buttons, encoders so I think about several different matrixes to manage them all.

 

I understand that with 1 DIO_MATRIX module I can handle 8x8(64) Digital IN or OUT. With 2 DIO_MATRIX modules I can handle 16x16(256).

 

Here is my first idea of what I could use at the end (I will start will 1 matrix of each and extend):

- 2 matrix for BUTTON (256 entries each) - With 4 DIO_MATRIX only?

- 2 matrix for LED (256 entries each) - Can I use 4 DIO_MATRIX as well for that?

- 1 matrix for ENCODER - Is that possible? I do not see "encoder matrix" in the CORE_LCP17 description.

(I may add encoder LED rings in the future if I feel comfortable enough with the concept)

 

In case you noticed that I do not mention POTS it's only because I want something "live" that can change on the fly so no pots or faders on my board. (I may think of motor fader if I'm rich enough in the future :rolleyes: )

 

What do you think about this first impression?

 

I am also a little bit confused with the implementation of the DIO_MATRIX. Is there any post describing how to attach several 16x16 matrixes on the core? (Are they just chained one after the other? In that case how do you declare each couple of 2 DIO_MATRIX and how do you separate the different matrixes? Is that on the soft side?)

 

Once I will have this information I will do a high level design to submit here for comments and advises. The low level design will be submitted here as well once all components have been validated by the community :smile:

 

I'm working on a picture of what I want to obtain at the end and will post it here once done.

 

Thank you in advance for your support and your patience with a newbie ^^

 

Ender

Link to comment
Share on other sites

  • Replies 64
  • Created
  • Last Reply

Top Posters In This Topic

hi Ender, wellcome.

 

don´t forget, you can add up to 64 small graphic lcds (like ssd1306) to one core module.

 

and yes you can chain several dio_matrix modules, i think up to 16. (just in case you haven´t seen it yet: , there you can inspect all the available modules and schematics. and here 

 

http://svnmios.midibox.org/listing.php?repname=svn.mios32&path=%2Ftrunk%2F&#

 

you can find all kind of software/firmware for all MIDIbox projects.

Edited by JEFinster
Link to comment
Share on other sites

Hi there,

 

I do have a question about what is possible or not with MIOS.

 

I plan to use 4 encoders per channel but i need to assign them more than 4 functions. (this is an expansion of the Mackie which only have 1 encoder per channel)

 

Here what I'd like to achieve :

 

vpots.jpg

This idea is :

1- I select one of the encoders line with the top line 4 buttons (VPOT-1 to 4)

2- I assign one of the underlines functions to the line of encoders.

 

Just to be clear, I only want a GO or NOT-GO for now... if you tell me that it is possible I'll go forward in my design. The "coding time"  will come later :smile:

 

Thank you,

Ender

 

* the first button label is wrong. You should read VPOT-1

Link to comment
Share on other sites

Awesome ! Thank you nILS :smile:

 

In that case I believe that I can show you what I am working on. Basicaly it's a Mackie control with 16 channels and some improvements that I need/like.

 

The encoders part will be made with 4 modules of  Fairlightiii led rings PCB. I will now do the high level design to understand how many DIN/DOUT I will need to complete them.

 

enderbox.jpg

 

rest is comming soon :smile:

Ender

 

*Edit : The link should work now.
 

Edited by endernoumea
Link to comment
Share on other sites

Hi Endernumea,

 

i've started a similar project for cubase 6/7. I'd like to have a transport- / plugin- / mixer remote controller.

advice: save money for motor faders. you will love them, i promise you :-)

suggestion for the v-pots: why not preparing specific scenarios for your pots? for example: when you have to modify your EQ parameters, you probably want your v- pots alligned similar to an analog mixer.

Link to comment
Share on other sites

Hi,
 

This idea is :
1- I select one of the encoders line with the top line 4 buttons (VPOT-1 to 4)
2- I assign one of the underlines functions to the line of encoders.
 
Just to be clear, I only want a GO or NOT-GO for now... if you tell me that it is possible I'll go forward in my design. The "coding time"  will come later :smile:

 

I'm currently working on the new "conditional event" feature, this could make it possible (but this is no 100% confirmation yet, that it will perfectly work - the concept still needs to be improved).

 

E.g. here I tried to switch between 4 different events assigned to the same encoder with a toggle button:

http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_ng_v1%2Fcfg%2Ftests%2Fconev_3.ngc

and this one is working! :)


But some other cases which should be covered by the new feature are not working yet, and I hope that I don't hit any limitation... therefore the usage could change.

 

Best Regards, Thorsten.

Link to comment
Share on other sites

Hi,

 

 

I'm currently working on the new "conditional event" feature, this could make it possible (but this is no 100% confirmation yet, that it will perfectly work - the concept still needs to be improved).

 

E.g. here I tried to switch between 4 different events assigned to the same encoder with a toggle button:

http://svnmios.midibox.org/filedetails.php?repname=svn.mios32&path=%2Ftrunk%2Fapps%2Fcontrollers%2Fmidibox_ng_v1%2Fcfg%2Ftests%2Fconev_3.ngc

and this one is working! :smile:

But some other cases which should be covered by the new feature are not working yet, and I hope that I don't hit any limitation... therefore the usage could change.

 

Best Regards, Thorsten.

 

Great ! This sounds like a terrific feature to be added. I will follow this topic with attention from now :)

 

See, I told you. :yes:

 

;)

Link to comment
Share on other sites

Hi Endernumea,

 

i've started a similar project for cubase 6/7. I'd like to have a transport- / plugin- / mixer remote controller.

advice: save money for motor faders. you will love them, i promise you :-)

suggestion for the v-pots: why not preparing specific scenarios for your pots? for example: when you have to modify your EQ parameters, you probably want your v- pots alligned similar to an analog mixer.

 

This is a really good idea that could be my workaround if the "conditional event" feature is too complicated or not achievable. I prefere the first concept that opens many possibilities but it definately worths spending some time thinking about your idea :smile:

 

Regards, Ender

Link to comment
Share on other sites

It works! :smile:

Released in v1.017 and documented here: http://www.ucapps.de/midibox_ng_manual_ngc.html

 

Best Regards, Thorsten.

 

Wow... christmass come very early this year :smile: You're the one TK !!!!

 

This new improvement opens so many possibilities that now I cannot find something on a board "from the box" that we cannot achieve with MB \o/

 

Now I can't wait to receive my orders and start working on my box :p

 

Best Regards,

Ender (very happy)

Link to comment
Share on other sites

If I summarizes the number of components for this project I get:

For the 64 encoders with led rings I will use 4 modules 8x2 LRE Fairlightiii PCB: http://www.midibox.o...id=fairlightiii

For the rest:
- 156 leds
- 172 buttons
- 2 encoders
- 16 touch sensitive motor faders


which gives a total of 192 digital inputs, 156 digital ouputs, 16 analogic inputs.

With only 1 module DOUTx4 I should be able to manage up to 256 leds like this: http://www.ucapps.de/mbhp/mbhp_doutx4_ledrings.pdf
With only 1 DIOMATRIX module I should be able to manage up to 256 digital inputs. Which is more than all my buttons, my 2 encoders and the 16 touch control faders.
With only 1 module AINSER64 I should be able to manage my 16 motor faders.

So the final order summary should be summary:
- 1 core LPC17
- 1 DOUTx4
- 1 DIO MATRIX
- 1 A1INSER64
- 2 MF_NG

Am i right ?

I was wondering ... should i use 2 modules DOUTX4 rather than one to get a better brightness for the led ?

Do i need some special module to connect all the LCD screen ?
 
Thank you in advance,
Ender
 

 

Link to comment
Share on other sites

With only 1 module AINSER64 I should be able to manage my 16 motor faders.

 

You don´t need those for the motorfaders. you connect the motorfaders to the MF_NG modules and those you connect via midi to the core. The LPC17 core has two native midi in/out ports and two additional ones you can build using this schematic.

The touch control inputs from the faders are also handled on the MF_NG module, so in the end, there are no direct connections necessary from the faders to the core or a DIN module.

 

 

With only 1 module DOUTx4 I should be able to manage up to 256 leds

 

I´m not 100% sure, but if you want to use those leds for your buttons (and not for led rings), then you can´t do it this way. if you want to map different led events (like solo, mute, etc) you have to connect them to individual pins on the DOUT modules. so 1 DOUT module = 32 output pins. maybe you can use a DIO_MATRIX module for that, but as i said, i´m not 100% sure. 

 

Also the input/output connections are limitied (256 inputs/outputs per core) and you are using some of those already for the 64 encoders/led rings. You definitely have to check that before you start to order. 

 

 

 

Do i need some special module to connect all the LCD screen ?

 

 

 For more than 6 lcd screens you have to use an additional DOUT module to provide the additional "Enable" lines for the screens. see here for more information. i think this has to be connected to j28 on the the core module.

 

Also i noticed in the mockup you made (nice one btw.) that you are want to use 16 lcds with 16x2 characters and a bigger one on the top left side. i think the lcds connected to the core have to be the same size.

 

 

Other than that, i have to say: very nice project so far. especially the idea with the encoder assignment feature (the conditional events) i like very much. i didn´t think about that possibility.

 

Carry on...

Edited by JEFinster
Link to comment
Share on other sites

 

You don´t need those for the motorfaders. you connect the motorfaders to the MF_NG modules and those you connect via midi to the core. The LPC17 core has two native midi in/out ports and two additional ones you can build using this schematic.

The touch control inputs from the faders are also handled on the MF_NG module, so in the end, there are no direct connections necessary from the faders to the core or a DIN module.

 

good news thank you :smile:

 

 

 For more than 6 lcd screens you have to use an additional DOUT module to provide the additional "Enable" lines for the screens. see here for more information. i think this has to be connected to j28 on the the core module.

 

Also i noticed in the mockup you made (nice one btw.) that you are want to use 16 lcds with 16x2 characters and a bigger one on the top left side. i think the lcds connected to the core have to be the same size.

 

According the price of these 16x2 screen (1euro each) I was already planning to replace the big screen by 2 little 16x2.

The link of these LCD is

 

 

I´m not 100% sure, but if you want to use those leds for your buttons (and not for led rings), then you can´t do it this way. if you want to map different led events (like solo, mute, etc) you have to connect them to individual pins on the DOUT modules. so 1 DOUT module = 32 output pins. maybe you can use a DIO_MATRIX module for that, but as i said, i´m not 100% sure. 

 

Well... use only one DOUTX4 for all those LED looks too good to be real :sad:

 

This takes me to your next comment :

 

Also the input/output connections are limitied (256 inputs/outputs per core) and you are using some of those already for the 64 encoders/led rings. You definitely have to check that before you start to order. 

 

My problem in that case is i'm not sure to know how to count since i'm not sure how many IN/OUT are used by PCBs of Fairlightiii for leds and encoders.

 

I'm gonna do some research about that.

 

thank you for your support

 

Ender

Link to comment
Share on other sites

My problem in that case is i'm not sure to know how to count since i'm not sure how many IN/OUT are used by PCBs of Fairlightiii for leds and encoders.

 

(i didn´t use the Fairilightiii pcbs yet, so bare with me if i give you any false information  :happy: )

 

Fairilightiii pcbs have 16 encoders each, that makes a total of 32 digital inputs. that means 4 pcbs need 128 digital inputs. you would have 128 digital inputs (128 buttons or 64 encoder) left. that´s 4 DINx4 modules.

 

for the 64 ledrings i think 16 ledrings use 1 DOUTx4 module, that means 4x16 led rings = 4 DOUTx4 modules, so you would have 128 digital outputs left for other leds. that´s 4 DOUTx4 modules.

 

 

If you need more inputs/outputs however, it is possible to use a second core module (e.g. only for the Fairlightiii pcbs) and connect it to the "mastercore" via midi.

 

 

 

 

 

EDIT:

 

i took the liberty to compile a preliminary shopping list for you (just an example):

 

1 Core LPC17

4 Fairilightiii PCBs - for 64 encoder and led rings

4 DINx4 - for 124 buttons and 2 additional encoders

5 DOUTx4 - for 128 status leds (mute,solo,....) and 1 additional doutx4 for the remaining lcd screens

2 MF_NG - for 16 motorfader

 

this is not a complete list, just a thought on which and how many modules you would need

Edited by JEFinster
Link to comment
Share on other sites

I do some calculation yesterday night and arrive at the same conclusions as you :smile:

 

I also started to read the .ngc file and I found that inside:

EVENT_LED_MATRIX : A LED matrix is a hardware option where multiple DOUT shift registers scan a network of LEDs. The corresponding EVENT_LED_MATRIX command allows to assign a MIDI event to control individual LEDs of the matrix, or to set a row in the LED matrix to a specified pattern:
  • MIDI events from key/cc=<value> upwards will turn on/off the LEDs of the matrix
  • if led_matrix_pattern is specified, MIDI events will set a whole LED row of a matrix with the incoming MIDI event value (for LED Rings, Meters, etc...)

This works as long as the LED_MATRIX hardware has been configured with led_emu_id_offset=0 (default). With led_emu_id_offset=1 (or greater) the LED matrix will react on individual MIDI events instead, specified with EVENT_LED events.

Does that means the first idea is applicable finally ?

 

 

 

Link to comment
Share on other sites

well, i also did some reading over the night, and it seems it might be possible for you to use a matrix for the buttons as well as for the leds after all. i studied the example scripts in the repository and i found this one . in there you can see how individual events are mapped to the buttons/leds in a matrix. 

there might be limitations though, e.g. the toggle mode is not supported for button events. but you have to decide if you would want that mode with your controller.

 

i guess, the next step would be to get a core, some din/dout/dio_matrix modules, some buttons, encoders and leds and do some testing (that´s actually the fun part  :happy:). 

Edited by John E. Finster
Link to comment
Share on other sites

i´d like to offer some advice on your controller design too. you said you are using mostly Reaper and also Cubase/Nuendo. i also used Cubase years ago ( i got the SL3 version with my soundcard). i finally switched to Reaper in the end.

 

since i tried implementing a midi controller in both daws, i´d like to share some insight i gained:

 

With Cubase/Nuendo it is very easy to implement a midi controller (at least it was with the old version, i can´t speak for the new Cubase 6 or 7 - where are they now? - ), since almost every function/knob/slider..... in the program can be mapped to a physical controller. but it can get very messy and combining multiple midi protocols (in your case the mackie mcu and the native cubase midi control) is tricky.

 

With Reaper, though you can assign midi events to almost every action/macro action there is, you can´t assign every knob/slider in the program. natively you can only assign Volume/Panorama/Mute/Solo/Arm/Select to a controller globally and Send/Track FX parameter on a per channel Basis. that means you can only control the sends/fx paramter for the channel that is currently selected. You can also assign Vst parameters directly without putting them into the track fx parameter, but then they won´t provide feedback !!! (this point is actually very importent). Here also combining multiple midi protocols can be tricky. the controller mockup you made may not be usable in Reaper the way you intended.

 

a tip: look (with both daws) into the preferences for control surfaces and make a list of what commercial controllers are natively supported. then look around the internet and try to get every piece of information you can find for those controllers and how they are implemented in the software. then you get a rough idea on what is already possible (e.g. for Reaper you will not find a controller with more then one fader row and one encoder row).

i don´t say this would be the end of the line, there are almost endless possibilities and workarounds when it comes to midi controllers. but it also important to know what kind of limitations one is faced with when using the controller with a daw. 

 

That´s just a general point on how to implement a controller into a software and why an extensive testing phase is always necessary before building/designing a controller.

Edited by John E. Finster
Link to comment
Share on other sites

wow i dont know where to start :w00t:

 

For the matrix i think i will go for it. I will maybe split the main led matrix in 2 smaller one in order to reduce the number of rows and so increase the brightness of the involved LED.

 

Since the shipment for new caledonia is 50EUR (and probably 1,5 month long) i will try to optimize my order and do it one shot.

 

I'm now on something like this:

- 1 core LPC17

- 4 Fairilightiii PCBs

- 3 DOUTx4 (2 for LED matrix and 1 for LCD screen)
- 1 DIO MATRIX
- 2 MF_NG

 

If my plan (I should say "our plan" now :wink: ) doesn't works, those modules will be needed anyway so they will not be wasted.

 

About the design of the board itself you are totally right. I also have to admit that some features I want to implement are not actuals needs for most of my projects. The fact is that I want this board the more complete/flexible as possible to handle futur programs or needs without having to solder again.

 

To tell you everything, I also plan (once this board is done... maybe in few years :hairy: ), to create a second board to complete this one in order to drive Ableton live (that's where the Vpots assigment idea come from).

 

As you said, I will now search about "natively supported" controllers to validate my choices in a more pragmatic way :geek:

 

Thank you very much again for your precious support !!!!

 

Ender

 

 

 

 

 

 

Link to comment
Share on other sites

TK wrote

 

Power consumption: ca. 720 mA (it's still possible to supply this construction from a USB hub with 1A PSU)

 

This is for four of the LRE8x2 boards, LPC 17, and an LCD without backlight. Add the motorized faders to the equation (not sure how much they would consume, do the search yourself) and you know what you want.

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