Jump to content

Rotary encoders, bank selecting & menu control in MB64


AdamM
 Share

Recommended Posts

Hi All,

This is my first post here, so excuse any dumb questions. I'm planning a MB64 with 9 faders, 10 rotary pots & 32 illuminated pushbuttons. The idea being to have a DAW control surface with 8 channel pans & volumes, a master pan & volume, switches to arm/mute/solo etc tracks. I would like to also have 2 encoders. One for menu control, replacing the left/right/exec buttons, the other for bank increment/decrement/snapshot. The intention being to be able to switch through banks of 8 tracks in my DAW software by rotating the bank select encoder.

Having done a good amount of searching I feel I know a little, but still have a long winded but relatively simple question:

In midibox64_sfb_table.txt I can see this:

FF 02 11 | Decrement BankStick Bank with overflow

..

FF 02 13 | Increment BankStick Bank with overflow

and in main.asm I can see this:

; Datawheel for menu navigation/data entry connected or not?

; A datawheel can replace the left/right buttons!

; if -1: datawheel not connected

; if >= 0: encoder number assigned to datawheel function

; don't forget to check the pins of the datawheel in MIOS_ENC_PIN_TABLE (-> mios_tables.inc or setup_*.asm)

; it has to be connected to pin 4 and 5 by default

#define DEFAULT_ENC_DATAWHEEL  -1

;

; DIN pin numbers of menu buttons

#if DEFAULT_ENC_DATAWHEEL == -1

  #define DEFAULT_DIN_MENU_EXEC 7 ; menu exec button assigned to DIN pin #7

  #define DEFAULT_DIN_MENU_RIGHT 6 ; menu right button assigned to DIN pin #6

  #define DEFAULT_DIN_MENU_LEFT 5 ; menu left button assigned to DIN pin #5

  #define DEFAULT_DIN_MENU_SNAPSHOT 4 ; menu snapshot button assigned to DIN pin #4

#else

  #define DEFAULT_DIN_MENU_EXEC 7 ; menu exec button assigned to DIN pin #7

  #define DEFAULT_DIN_MENU_SNAPSHOT 6 ; menu snapshot button assigned to DIN pin #4

  #define DEFAULT_DIN_MENU_RIGHT 5 ; NOT USED - overlayed by datawheel

  #define DEFAULT_DIN_MENU_LEFT 4 ; NOT USED - overlayed by datawheel

#endif

in mios_tables.inc, there is an encoders section with examples such as:

ENC_ENTRY  1,  2,  MIOS_ENC_MODE_DETENTED        ; detented encoder at pin 2 and 3 of SR 1

So now we get to my dumb questions:

For my 2 encoders do I need to simply:

a) Define the relevant encoders in mios_tables.inc

b) Enable the datawheel in main.asm (to make the menu encoder work)

c) connect the encoders to the specified DIN inputs - the menu encoder A & B outputs to the L & R button DIN's and the bank select encoder A & B outputs to the bank incr/decr DIN's

d) connect the encoder push switches to the exec & snapshot DIN's

e) assign the relevant special functions to the bank inc/dec DIN's (this is the one I'm unsure of, as the DIN's aren't inc/dec pulses but are now encoder quadrature outputs)

f) re-build & program etc...

??

Will MIOS intercept the quadrature pulses from the pairs of inputs & pass L/R and Inc/Dec pulses to the MB64 application, or have I missed something? Do I need to include any extra inc files when I build? Is what I'm describing possible in MB64?

Many thanks in advance & thanks for a great project - endless possibilities!!

Adam

Link to comment
Share on other sites

Welcome aboard AdamM.

Firstly, if you're controlling tracks on a DAW, you might consider the MidiBox LC application. The app also does Mackie Control Universal, which is supported by pretty much every DAW. (well, all the major ones...)

This is a bi-directional interface, and has banks-of-8 capability.

Normally you would use a pair of pushbuttons to switch banks, but you could quite easily change this to use an encoder instead.

Link to comment
Share on other sites

Thanks for replying. I know all about the LC & have considered it but for various reasons opted for the MB64. My perception was that it is a more versatile system without requiring major code writing effort to re-configure. If the LC can be as easily re-configured, then I've overlooked a possibility

The system I'm building is based around a PC, in a 4U case & I don't have the front panel space for a 2x40 display as used by the LC. Also, the cost & availability of motorfaders puts me off. On a related note, can pot behaviour in LC be configured like it can in MB64? So that non-motorised faders can be used effectively.

Back to my MB64 question - I can see how a pair of pushbuttons can be used for bank up/down selection, just need to know if my assumptions on using encoders were correct or not. If I'm right, I'm good to go (& can relatively easily change to LC if I want). If I'm wrong, I'd like to know of course.

Thanks once again.

Link to comment
Share on other sites

So now we get to my dumb questions:

That's how I like questions to look! You've clearly done your research!

For my 2 encoders do I need to simply:

...

Will MIOS intercept the quadrature pulses from the pairs of inputs & pass L/R and Inc/Dec pulses to the MB64 application, or have I missed something? Do I need to include any extra inc files when I build? Is what I'm describing possible in MB64?

Yes it's possible, you got it right in your a...f.

No extra inc files required, the encoder driver is part of MIOS and support is intergrated into the MB64e so you need not be concerned with quadrature

Full marks. For bonus credit, attach pics of your midibox at the end of semester ;D

Link to comment
Share on other sites

Thanks for the answer. Its good to know my brain is working properly (at least as far as understanding midibox design is concerned anyway!)

...the encoder driver is part of MIOS and support is intergrated into the MB64e...

I assume it's the same for MB64 (no 'e') too?

Don't hold your breath waiting for pics - its taken me nearly 6 months just to find the time to figure out exactly what I'm going to build. So far I have a semi butchered 4U case, some bits of old PC & the main PC electronics. I'll let you know how I get on...

Link to comment
Share on other sites

If it takes me 3 days to reply to each post, is that slow enough?

;D

If MB64 can only support a single encoder (for menu control) then that's not a major problem, as I have a neat circuit for changing an encoder A & B output into a pair of up/down signals (uses a 74HC74 dual D-type)...in which case I'd only need to enable the menu encoder.

One more question - can I still enable the DOUT led's to indicate which bank is selected, even though I won't be using the 16 bank select DIN's?

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