-
Notifications
You must be signed in to change notification settings - Fork 26
Closed
Description
Currently in device descs with pages, there are three ways of handling them:
- every page is a separate file
// single page in desc
MKtlDesc.at('keith-mcmillen-qunexus_port1_AB').openFile
MKtlDesc.at('keith-mcmillen-qunexus_port2')
MKtlDesc.at('keith-mcmillen-qunexus_port3') - pages are on top, all elements change with page
MKtlDesc.at('novation-launchcontrol').openFile
MKtlDesc.at('novation-launchcontrol-xl').openFile
m.elAt(\pg) // -> [ 'kn', 'bt', 'nav' ] - some elements are always on, some change with pages:
MKtlDesc.at('behringer-bcr2000').openFile
MKtlDesc.at('behringer-bcf2000').openFile
pr[row][column]
tr[page][column]
knUp[page][column]
bt[row][column]
kn[row][column] // resp sl[row][column]
// similar for the nanokontrol
MKtlDesc.at('korg-nanokontrol').openFile
tr [rew, fwd, etc]
sl [page][column]
kn [page][column]
bt [page][row][column]
// event trickier, because separate pages for sliders+buttons and knobs+knobhats:
MKtlDesc.at('faderfox-uc4').openFile
kn [knpage][column]
pbt [knpage][column][on/off] // pushbuttons on knobs
sl [slpage][column]
bt [slpage][column][on/off] // buttons below sliders
SUGGESTION:
Always put pages on top, so one can put a page into addNamed,
and access the elements of that page directly, as they are now in front:
m.elAt(\pg0).do { |grp| m.addNamed(grp.name, grp) };
So for BCF/BCR, the hierarchy to make this work is :
pr[row][column]
bt[row][column]
page [
tr [column]
knUp [column]
]
kn[row][column] // resp sl[row][column]
MKtlDesc.at('korg-nanokontrol').openFile
tr [rew, fwd, etc]
page [
sl [column]
kn [column]
bt [row][column]
]
MKtlDesc.at('faderfox-uc4').openFile
xfader
knPage [
kn [column]
pbt [column][on/off] // pushbuttons on knobs
]
slPage [
sl [column]
bt [column][on/off] // buttons below sliders
]
Opinions please!