Jump to content

LC: Access secondlayer-function with just one button?


rambinator
 Share

Recommended Posts

Hi! Just an idea...

would it be possible with the midibox-LC to have extra buttons in the design which access functions of the second layer

directly?

I mean a button that triggers the "LC Layer-button" and the corresponding input pin for the function at the same time.

There are buttons with two independent triggers but I guess that the Layer-button has to be triggered first, right?

What would be the minimum delay before the function butten could be triggered. Would it be possible to realize such a

delay with a simple capacitor or with an easy small circuit? Any ideas?

greetings,

rambinator

Link to comment
Share on other sites

My Idea is to have MORE BUTTONS  ;D

I have currently started to explore Ableton Live 5 which now supports mackie.

In Live the Scrub button is very usefull. It is firing clips. I want this button to my direct

tactile disposal. also "save" "undo" and "solo". But I dont want to sacrifice other buttons or

press two buttons at once (maybe I would get used to it and I'm just exagerating now).

So the main idea behind this is to have a workaround for the limitation of midibox which misses

six physical representations of functions plus the scrub button, due to the limited dins.

I hope I didn't get everything wrong now, I'm quite excited and maybe a little overacting now

that the faders are moving and the project is moving on

Link to comment
Share on other sites

MIOS                             Ableton Live

;; 1st shift register

ID_SELECT_CHN1, same

ID_SELECT_CHN2, same

ID_SELECT_CHN3, same

ID_SELECT_CHN4, same

ID_SELECT_CHN5, same

ID_SELECT_CHN6, same

ID_SELECT_CHN7, same

ID_SELECT_CHN8, same

;; 2nd shift register

ID_REC_RDY_CHN1, same

ID_REC_RDY_CHN2, same

ID_REC_RDY_CHN3, same

ID_REC_RDY_CHN4, same

ID_REC_RDY_CHN5, same

ID_REC_RDY_CHN6, same

ID_REC_RDY_CHN7, same

ID_REC_RDY_CHN8, same

;; 3rd shift register

ID_SOLO_CHN1, same

ID_SOLO_CHN2, same

ID_SOLO_CHN3, same

ID_SOLO_CHN4, same

ID_SOLO_CHN5, same

ID_SOLO_CHN6, same

ID_SOLO_CHN7, same

ID_SOLO_CHN8, same

;; 4th shift register

ID_MUTE_CHN1, same

ID_MUTE_CHN2, same

ID_MUTE_CHN3, same

ID_MUTE_CHN4, same

ID_MUTE_CHN5, same

ID_MUTE_CHN6, same

ID_MUTE_CHN7, same

ID_MUTE_CHN8, same

;; 5th shift register

ID_ASSIGN_TRACK,               I/O

ID_ASSIGN_SEND,           Sends

ID_ASSIGN_PAN_SURROUND, Pan

ID_ASSIGN_PLUG_IN,       Plugins

ID_ASSIGN_EQ,           Page left

ID_ASSIGN_INSTRUMENT, Page right

ID_BANK_LEFT,         Bank left

ID_BANK_RIGHT,       Bank right

;; 6th shift register

ID_BANK_CHANNEL_LEFT, Channel left

ID_BANK_CHANNEL_RIGHT, Channel right

ID_FLIP,                             Flip

ID_GLOBAL_VIEW,           Return

ID_SHIFT,                     Shift

ID_OPTION,               Option

ID_CONTROL,             Ctrl

ID_CMD_ALT,                   Alt

;; 7th shift register

ID_MARKER,                 Locator

ID_NUDGE,             Locator next

ID_CYCLE, loop

ID_DROP, punch in

ID_REPLACE, punch out

ID_CLICK, home

ID_REWIND, same

ID_FAST_FWD, same

;; 8th shift register

ID_STOP, same

ID_PLAY, same

ID_RECORD, same

ID_CURSOR_UP, same

ID_CURSOR_LEFT, same

ID_ZOOM,         zoom/fire

ID_CURSOR_RIGHT, same

ID_CURSOR_DOWN, same

;; 9th shift register

ID_VPOT_SELECT_CHN1, same

ID_VPOT_SELECT_CHN2, same

ID_VPOT_SELECT_CHN3, same

ID_VPOT_SELECT_CHN4, same

ID_VPOT_SELECT_CHN5, same

ID_VPOT_SELECT_CHN6, same

ID_VPOT_SELECT_CHN7, same

ID_VPOT_SELECT_CHN8, same

;; 10th shift register

ID_GLOBAL_TRACKS, F9

ID_GLOBAL_INPUTS, F10

ID_GLOBAL_AUDIO_TRCK, F11

ID_GLOBAL_AUDIO_INSTR, F12

ID_GLOBAL_AUX, F13

ID_GLOBAL_BUSSES, F14

ID_GLOBAL_OUTPUTS, F15

ID_GLOBAL_USER, F16

;; 11th shift register

ID_AUTOM_READ_OFF, SA

ID_AUTOM_WRITE, Clip/Chain

ID_AUTOM_TRIM, trim

ID_AUTOM_TOUCH, browser

ID_AUTOM_LATCH, detail

ID_UTIL_CANCEL, marker

ID_UTIL_ENTER, follow

ID_MBLC_HOLD_LAYER,

;; 12th shift register

ID_F1, same

ID_F2, same

ID_F3, same

ID_F4, same

ID_F5, same

ID_F6, same

ID_F7, same

ID_F8, same

;; 13th shift register

encoder

encoder

encoder

encoder

encoder

encoder

encoder

encoder

;; 14th shift register

encoder

encoder

encoder

encoder

encoder

encoder

encoder

;; 15th shift register

encoder

encoder

ID_UTIL_SAVE BTA

ID_UTIL_UNDO Draw

ID_SOLO End

ID_GROUP Redo

ID_SMPTE_BEATS same

ID_NAME_VALUE same

;; 16th shift register

ID_FADER_TOUCH_CHN1,

ID_FADER_TOUCH_CHN2,

ID_FADER_TOUCH_CHN3,

ID_FADER_TOUCH_CHN4,

ID_FADER_TOUCH_CHN5,

ID_FADER_TOUCH_CHN6,

ID_FADER_TOUCH_CHN7,

ID_FADER_TOUCH_CHN8,

The functions above I will assign to the dins which are available.

Now every pin is beeing used. It's not possible to connect more buttons.

the function:

ID_SCRUB, Fire Scene

is very important when using Live, it should be available with a one button click

like the scrub function on the original mackie control. with the button-setup above

it would only be accessible in the second layer. means I have to press two buttons:

ID_MBLC_HOLD_LAYER + ID_SCRUB

That wouldn't be handy in my oppinion. So my idea is to have an extra button, located

next to the datawheel, which triggers both dins at the same time.

Link to comment
Share on other sites

You don't need to switch to the second layer in order to use the function. Just write it into the first table, or write it into both.

This really depends on your hardware. Let's say, you are using the same buttons like me - in this configuration no button is free anymore, but you could replace a function which you are normaly not using.

Let's say, you don't need ID_CLICK so often. Then just  swap ID_CLICK with ID_SCRUB

Does this answer your question?

Best Regards, Thorsten.

Link to comment
Share on other sites

Well I knew that and thought about this allready. But I am just starting with ableton and the midiboxlc.

I have the skeleton of the box on a table and the DAW is quite far away, I'm just in the testing stage and

could not decide which button to swap for the scrub button because I don't know my workflow yet.

So I thought it would be a good idea to think about a concept which allows you to have more buttons.

BUT after writing the last posting this morning I rethought my idea and came to the conclusion that it might

not work anyway because I might have mistaken the layer-concept of the software.

I thought that "you are in the second" layer as long as you hold the special-button. Is this incorrect?

Does the specialbutton just switch through the layers like a book? in this case my concept would

be nonsense and it would explain why nobody understands it :)

p.s:

Let's say, you are using the same buttons like me - in this configuration no button is free anymore

but in the standard-configuration of your software it's

;; 15th shift register
	;;	button			LED
	db	ID_IGNORE,		ID_IGNORE		; (in my setup encoders are connected here)
	db	ID_IGNORE,		ID_IGNORE		; (in my setup encoders are connected here)
	db	ID_IGNORE,		ID_IGNORE		; (spare pin in my setup)
	db	ID_IGNORE,		ID_IGNORE		; (spare pin in my setup)
	db	ID_IGNORE,		ID_IGNORE		; (spare pin in my setup)
	db	ID_IGNORE,		ID_IGNORE		; (spare pin in my setup)
	db	ID_IGNORE,		ID_IGNORE		; (spare pin in my setup)
	db	ID_IGNORE,		ID_IGNORE		; (spare pin in my setup)

and in the midibox_lc_buttons.pdf document there are spare pins too.

Did you chance your design since then?

greetings

rambinator

Link to comment
Share on other sites

Yes, with layers you are switching between different button/LED assignments. It doesn't matter which functions are assigned, these are just IDs which are specified in the two tables (C version: three tables)

Hold means, that the alternative table is used so long the button is pressed. There are also alternative behaviours, like toggle (press once: Layer B, press again: Layer A) or switch (one button for Layer A, one for Layer B). You could also left out this feature, in this case you can only use the functions specified in the first table.

However, as you already noticed, there are some spare pins. Thats my own setup, I haven't changed it. I only tried to tell you, that my own box has less buttons than an original Logic Control, and since I made the additional button/LED functions reachable with a second layer, thats no issue for me.

In general you can assign the functions to the inputs/outputs like you want. So, just put your personal most important parameters into the first layer, and everything else into the second layer. I'm sure that you can live with this solution!

MIOS limits the number of maximum DINs to 128 - there is no (easy) way to add more digital inputs, and there is especially no way which will be supported from my side (it was hard enough to force people not to demand for more more MORE! buttons each time I made some extensions ;-)

Best Regards, Thorsten.

Link to comment
Share on other sites

allright... so I will stop demanding now. I will try to figure out if what I want to do will work.

How can I find out how long it would take to go to second layer when I push the layer button.

Can I calculate this somehow? If not I will experiment a little when I have finnished the rest.

Thanks for all your help and support.

Link to comment
Share on other sites

There shouldn't be a delay in best case, because all inputs are captured at the same moment. But since the inputs are asynchronous signals, it can happen that the transition on one input won't be notified at the same cycle like the transition on the other input. This leads to the fact that the worst case delay is not pretictable.

And you will notice another problem: let's assume you really want to combine a functional with a layer button.

When you are pressing such a combined button, the layer function must be executed before the Note On event

But when you are releasing the button, the Note Off event must be sent before the layer is switched back.

Third point: you would have to disable the debouncing feature in order to get this working, because it also adds a more or less unpretictable delay. Without this feature, you have to debounce each single button via hardware. Workaround: if the layers would be switched with an IO pin, debouncing could still be used. However, this requires some changes in the software...

Conclusion: there is no proper way to multiplex the layers via hardware, the only proper way is to re-write the software.

Best Regards, Thorsten.

P.S.: I guess that now I understand what you are planning to do. The reason why I haven't thought about such a solution is, that from designers point of view this is a usage mode which cannot work.

Link to comment
Share on other sites

allright... so I will stop demanding now. I will try to figure out if what I want to do will work.

I ran into a similar problem... having not enough buttons. I don't know Ableton but with Sequoia, I do it this way:

I have the possibility to connect 4 controllers to Sequoia, which I can configure however I want. So I go for 3x8 faders in LC-Mode and the 4th controller is a MIDIBox 128 in which I assign the additional functions directly to the master section. So functions which are under an other layer I want to have present by pressing only one button, I configure on this 4th controller. This is done with the "learn" function in Sequoia.

Greets, Roger

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