ModalityTeam/Modality-toolkit

Should APC40 description have much flatter hierarchy?

adcxyz opened this issue · 1 comments

The current desc file for the APC40 has a very deep and somewhat confusing hierarchy of elements. It would make sense to replace this with (or add as alternative) a desc file with a very flat hierarchy, which makes access to elements shorter.

Opinions from APC40 users please!

// deep hierarchy as is
MKtlDesc.loadDescs("*apc40").first.postElements;
-> 
\bt,
	\clip, 
		\1, 
			1-8, on/off
	\clipS, 
		\1, 
			1-8, on/off
...

// example for very flat hierarchy: 
clip 
	1, 
		1..8
	.. 
	5, 
		1..8

stop 
	(1..8) ++ \all

trak
	sel 
		1..8
	activ 
		1..8
	solo 
		1..8
	rec 
		1..8
sl 
	(1..8) ++ \master

cue 

trCtl
	kn 
		1..8
	pan, sendA, sendB, sendC,

shift

bank
	left, right, up, down

tap

nudge 
	minus, plus

dvCtl
	kn
		1..8
	cltrk, onoff, left, right

detail
quant
ovdub
metro
play
stop 
rec
xfader

Hi Alberto.
I just sent you a flatter version by email. Take a look if its everything OK.
There's an issue regarding paging. I explain in the email but I'm copying here in case someone out there have an idea of what to do.

The problem is that there's nothing to send a message to change the pages from the controller. There's a row of pads that simply change the midi channels of the elements in the "device control" (a set of eight knobs and four buttons).
For instance if I 'trace' and press the second button in that row, this is what I get:
MKtl('apc40') midi, 'dvCtl_d_2_1' > 0, raw: 0,
msg: 'control', ccNum: 16, chan: 1, type: knob
MKtl('apc40') midi, 'dvCtl_d_2_2' > 0.0157, raw: 2,
msg: 'control', ccNum: 17, chan: 1, type: knob
MKtl('apc40') midi, 'dvCtl_d_2_3' > 0, raw: 0,
msg: 'control', ccNum: 18, chan: 1, type: knob
MKtl('apc40') midi, 'dvCtl_d_2_4' > 0.0236, raw: 3,
msg: 'control', ccNum: 19, chan: 1, type: knob
MKtl('apc40') midi, 'dvCtl_d_2_5' > 0.0157, raw: 2,
msg: 'control', ccNum: 20, chan: 1, type: knob
MKtl('apc40') midi, 'dvCtl_d_2_6' > 0.0236, raw: 3,
msg: 'control', ccNum: 21, chan: 1, type: knob
MKtl('apc40') midi, 'dvCtl_d_2_7' > 0, raw: 0,
msg: 'control', ccNum: 22, chan: 1, type: knob
MKtl('apc40') midi, 'dvCtl_d_2_8' > 0, raw: 0,
msg: 'control', ccNum: 23, chan: 1, type: knob