Jump to content

ergonomics and matrices on big controllers


machinate
 Share

Recommended Posts

Hello people!

I'm in the process of designing a large (77x40 cm) controller to fit inside an old keyboard case, making it super-portable.

Basically it's a button matrix, 16x8 big arcade style ones, 32 encoders, a crossfader and some shift buttons.

Basically I have two areas of concern: Ergonomics and the circuitry involved

1: Ergonomics

A bit about me: I work exclusively in Ableton Live4, although I've started rewiring to reason on occasion. I am looking for a controller layout that lets me move about a bit whilst playing, making the whole thing a bit more physical than your average uc33 or what have you.

I've printed out a 1:1 copy of the layout done in frontpaneldesigner, to check out the feel of it all.

Standing in front of it it all looks very fine, but I obviously can't do a test gig with a 2x5 paper controller  ;)

here's a link to a crummy screengrab of the fpd file:

http://server5.uploadit.org/files/Machinate-big_ass_midi_controller3.JPG

So I was wondering if any of you experienced lot are using big-ish controllers for live performance, and could share some words of wisdom on the subject? Should I do it the other way around, ie knobs above the buttons? And any advice on where to stick my shift buttons would be most excellent

2: Circuits

The original plan was to do 64 buttons and 32 encoders with the midibox64e, and use one of these for the remaining buttons:

http://www.x-keys.com/custom/xkmatrix.php

But reading up on recent development led me to believe that I would be able to do my desired 16*7 button matrix AND 32 encoders with one core unit. Am I way off base here? As I see it, I can just copy the 8*8  example shown here, and alter the code accordingly, although that might be easier to say than do  ;)

It wouldn't be a disaster, if I had to do two cores, since I don't plan on installing an lcd, and the shift buttons would only control part of the layout, but if I can avoid it using the appropriate matrix, i'd be very pleased.

*Any* advice on these two things would be very much appreciated!

Cheers

Andreas/

Machinate

Link to comment
Share on other sites

Hello, I am sorry I do not have time to review your entire message, as I am on a lunch break. But---

The DIN board runs with 4 IC's to run 16 encoders.

Using two din boards with 8 IC's give your 32 encoders.

MB64 supports 2 DINS with 8 IC's at a max of 32 encoders and no buttons.

But the MIDIO128 project will support 4 DINS.

Hope that helps. I will try to look over the rest later.

-Sephult

Link to comment
Share on other sites

You should be able to do everything you want with one core if you can do the MIOS programming required to modify existing projects.

You could use a switch matrix style input for your buttons.  That will tie up both DIN and DOUT but it doesn't seem you need DOUT.  You will need to be able to do some MIOS programming to take chunks of the Switch Matrix project and graft it into the MB64 project.  The same is true, but probably to a lesser extent, of grafting MIDIO128 into MB64 to increase the number of DINs to 128.  

In summary, MIDIO128 is probably the easier way to get 128 inputs with one core.  Switch Matrix will give you 128 or more inputs with less hardware and fewer wires but with more of a programming challenge.  Look in the Midification forum for more information on Switch Matrix if you are interested.

Link to comment
Share on other sites

Thanks for the swift reply guys!

You could use a switch matrix style input for your buttons.  That will tie up both DIN and DOUT but it doesn't seem you need DOUT.  You will need to be able to do some MIOS programming to take chunks of the Switch Matrix project and graft it into the MB64 project.  The same is true, but probably to a lesser extent, of grafting MIDIO128 into MB64 to increase the number of DINs to 128.  

Jimhenry, I'm sorry, but I don't follow? wouldn't an 8by16 button matrix only tie up one Doutx4 chip - 8 pins and 16 pins on the dinx4? like here:

http://www.ucapps.de/mbhp/mbhp_scan_matrix1.pdf -times two, of course.

Also, wouldn't the 32 encoders only take up two dinx4s? - again, I'm referencing the .gifs on ucapps, they're so concrete  :)

http://www.ucapps.de/mbhp/mbhp_midibox64e_full.gif

I'm very confused right now, but I reckon I'm learning as I go along  ;)

In summary, MIDIO128 is probably the easier way to get 128 inputs with one core.  Switch Matrix will give you 128 or more inputs with less hardware and fewer wires but with more of a programming challenge.

Yeah, but the thing is, I *do* need more. It might be a lot easier to take the midi0128 AND the 64E and stick both projects in the same box, they will work more or less "out-of-the-box", but it would mean a *lot* more soldering and wiring. I just really dig the elegance of the scanning matrix...

 Look in the Midification forum for more information on Switch Matrix if you are interested.

Already been there, and I see you're quite the nameity on the button matrix  :) I really appreciate it, guys. I'll throw my view in there as well. Being able to do 128 buttons and 32 encoders on one core would be awesome. I hope I figure it out!

Cheers!

Andreas

Link to comment
Share on other sites

Jimhenry, I'm sorry, but I don't follow? wouldn't an 8by16 button matrix only tie up one Doutx4 chip - 8 pins and 16 pins on the dinx4? like here:

http://www.ucapps.de/mbhp/mbhp_scan_matrix1.pdf -times two, of course.  

Sorry about the confusion. You probably don't need rock bottom latency. I am thinking of Thorsten's ultrafast switch matrix software that I am (should be) working on. It does things in a special way and I think it is incompatible with using the balance of the DOUT for other things. Thorsten's first switch matrix example used the normal DOUT routines and what is not needed for the matrix is available to do other things.
Link to comment
Share on other sites

It is possible to do what you are stating, but yes some MIOS program is most likely needed.

I have not tested out the support for more than 1 module yet, since I am still developing my ideas. My own personal midibox is an orignal MBplus :) Still rockin' though. And my only other MIOS controlled box was for a 8 button controlled forklift :)

Still holding out for the motherload Design!

I myself have not yet looked at the switching matrix concept, along with the fact that the .pdf link and forum are acting strange right now. I guess the server is being serviced. However I am interested. Well I will see if I can find any more info that could help you and I'll post in a day or so.

-S

Link to comment
Share on other sites

Sorry about the confusion. You probably don't need rock bottom latency. I am thinking of Thorsten's ultrafast switch matrix software that I am (should be) working on. It does things in a special way and I think it is incompatible with using the balance of the DOUT for other things. Thorsten's first switch matrix example used the normal DOUT routines and what is not needed for the matrix is available to do other things.

Thorstens first example did a complete scan in 8oµs, right? that's fast enough for my fingers ;) And I'd only need the dout for the matrix, LEDrings are not my cup o' tea, so using a newer design that hogs the entire dout section isn't a problem, either. A 512 matrix would be cool for doing big trigger installations as well!

Link to comment
Share on other sites

Thorstens first example did a complete scan in 8oµs, right?
No, that's the second version. Normally there is a scan of DIN and DOUT every millisecond. The first example used the standard scans and on the first millisecond you set the DOUT and on the next millisecond you read the DIN and set the next DOUT.  If you are using 8 DOUTs latency can get up to about 8 milliseconds.  When you go beyond 8 DOUTs, latency for keyboard input could get to be a problem, especially since the latency will be variable.  Even good players would sound like me. ;)
Link to comment
Share on other sites

If you don't need a keyboard, you do not have to do it superfast i guess and then extending the first matrix to 16x8 or 8x16 will give you the matrix you want and you still can use the rotary encoders I think. If you cannot program two cores would also do the trick, both with an 8x8 matrix and rotary encoders

Link to comment
Share on other sites

I also like to use a matrix to create enough inputs for an organ console and just started building. Therefore I will need to superfast version, but not until I build in the keyboards. I'm using normal keyboards with midi for that now. I will have ready within two weeks I think two rows of 16 pushbuttons, for which the input can be varied between 4 values and creating a 4x32 matrix (part of 16x32) in this way. I also can use a 8x16 matrix first until the superfast matrix is ready, the latter I suggested to program myself if JimHenry is to busy. So with any luck and if I have enough time an superfast 16x32 or a slow 16x8 will be ready within a few weeks.

I'm not sure though that the superfast will have the ability of AIN, although I think I read somewhere that it does. I als don't know what te 32 encoders use, but a bigger matrix will hopefully available soon.

Link to comment
Share on other sites

No, that's the second version. Normally there is a scan of DIN and DOUT every millisecond. The first example used the standard scans and on the first millisecond you set the DOUT and on the next millisecond you read the DIN and set the next DOUT.  If you are using 8 DOUTs latency can get up to about 8 milliseconds.  When you go beyond 8 DOUTs, latency for keyboard input could get to be a problem, especially since the latency will be variable.  Even good players would sound like me. ;)

Well, my system can be realized with one din and two douts (8x16), which would be up to 2ms of latency, right? hmm. still inaudible.

I'm ordering a big shipment of pcbs and all of that, I might just order the parts to do a midi128 and a 64E, my case is certainly big enough  ;)...  If the sooperfast matrix code is ready soon, I'll do one of those, if not I'm going two-core. I just liked the elegance of the matrix, and my case wouldn't get as cluttered with cables!

Link to comment
Share on other sites

I don't know if encoders are matrix compatible. Maybe with extra programming. Otherwise you will need at least two cores I think, one for encoders, one for buttons. The buttons can be done with MIDIO128 (need more pcb's and more wiring but can be made right away) or a 16x8 matrix, if it is ready soon enough, or if you can program one. You could also use a 'slow' matrix (maybe even 8x8 and less buttons for a while) until the sooperfast is ready. It won't change your wiring and updating MIOS can easily done via MIDI :-)

Link to comment
Share on other sites

  • 2 weeks later...

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