endernoumea Posted January 29, 2013 Report Share Posted January 29, 2013 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 Quote Link to comment Share on other sites More sharing options...
John E. Finster Posted January 29, 2013 Report Share Posted January 29, 2013 (edited) 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 January 29, 2013 by JEFinster Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 1, 2013 Author Report Share Posted February 1, 2013 Thank you JEFinster ! Because of you I need to restart my project from scratch to integrate those nice little screens :smile: I think i got a precise idea of how works the matrix now. I 'll keep you in touch ! Ender Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 5, 2013 Author Report Share Posted February 5, 2013 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 : 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 Quote Link to comment Share on other sites More sharing options...
nILS Posted February 5, 2013 Report Share Posted February 5, 2013 Short: GO! Long: If that's not possible with the current NG firmware (I don't think it is), it's definitely something you can do with some additional programming or maybe TK will like the idea and do it :shifty: Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 5, 2013 Author Report Share Posted February 5, 2013 (edited) 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. rest is comming soon :smile: Ender *Edit : The link should work now. Edited February 5, 2013 by endernoumea Quote Link to comment Share on other sites More sharing options...
ilmenator Posted February 5, 2013 Report Share Posted February 5, 2013 [brokenrecord] off-site docu bad [/brokenrecord] Quote Link to comment Share on other sites More sharing options...
Nasrudin Posted February 5, 2013 Report Share Posted February 5, 2013 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. Quote Link to comment Share on other sites More sharing options...
TK. Posted February 5, 2013 Report Share Posted February 5, 2013 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. Quote Link to comment Share on other sites More sharing options...
nILS Posted February 5, 2013 Report Share Posted February 5, 2013 See, I told you. :yes: Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 5, 2013 Author Report Share Posted February 5, 2013 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: ;) Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 6, 2013 Author Report Share Posted February 6, 2013 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 Quote Link to comment Share on other sites More sharing options...
TK. Posted February 6, 2013 Report Share Posted February 6, 2013 It works! :) Released in v1.017 and documented here: http://www.ucapps.de/midibox_ng_manual_ngc.html Best Regards, Thorsten. Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 7, 2013 Author Report Share Posted February 7, 2013 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) Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 9, 2013 Author Report Share Posted February 9, 2013 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 Quote Link to comment Share on other sites More sharing options...
John E. Finster Posted February 9, 2013 Report Share Posted February 9, 2013 (edited) 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 February 9, 2013 by JEFinster Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 9, 2013 Author Report Share Posted February 9, 2013 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 Quote Link to comment Share on other sites More sharing options...
John E. Finster Posted February 9, 2013 Report Share Posted February 9, 2013 (edited) 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 February 9, 2013 by JEFinster Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 10, 2013 Author Report Share Posted February 10, 2013 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 ? Quote Link to comment Share on other sites More sharing options...
John E. Finster Posted February 10, 2013 Report Share Posted February 10, 2013 (edited) 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 February 10, 2013 by John E. Finster Quote Link to comment Share on other sites More sharing options...
John E. Finster Posted February 10, 2013 Report Share Posted February 10, 2013 (edited) 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 February 10, 2013 by John E. Finster Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 10, 2013 Author Report Share Posted February 10, 2013 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 Quote Link to comment Share on other sites More sharing options...
endernoumea Posted February 12, 2013 Author Report Share Posted February 12, 2013 I just realize that i've missed something that might be important ^^ What kind of PSU should i use for this ? it looks like too much for an USB right ? Quote Link to comment Share on other sites More sharing options...
ilmenator Posted February 12, 2013 Report Share Posted February 12, 2013 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. Quote Link to comment Share on other sites More sharing options...
John E. Finster Posted February 12, 2013 Report Share Posted February 12, 2013 the MF_NG module has to be driven with a power input of 9 to 12 volts. i believe a usb port delivers around 5 volts, so you probably need a seperate psu. any psu with 9 to 12 volts will do (like a laptop psu or one for an external drive). Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.