sorry about the title – this is about a little idea i might
like to implement for the D-110 panel:
when they designed the D-series (and the mks-50), Roland, in
their infinite wisdom, decided ‘Timbre’ was a good idea.
a Timbre memory is like a container with a few performance-related parameters,
and you call up the Tone (the ‘preset’) inside it.
so each of the 128 Timbres (from A-11 to A-88 and B-11 to B-88) have a Tone
assigned to them (user Tones are i01-i64). the default assignment might be,
say: (this isn’t code, just using it for display)
A-11[i01-myTone ]
A-12[i01-myTone ]
A-13[i01-myTone ]
A-14[i01-myTone ]
etc.
note that they can all ‘contain'(or ‘wrap’) the same Tone.
ie: you could use the same Tone more than once, at different
root pitch, pan, or volume, etc.
so what i want to do:
1/ i need to populate a table with the current Tone names,
as featured in internal memory (or from a specimen list, for
the sake of building the method)
-ie: ‘getToneNames’
2/ then i need a Timbre list, where the numbering is fixed
(A-11>B-88, ie: 0-127), with a ‘slot'(variable) where the
item currently corresponding to that entry will appear
-depending on what has been retrieved by (‘getToneNames’)
3/ i now want to do my list selection with a popup menu,
so that i can see all the names clearly at once, and see
the entire list.
> this is because this is a difficult and confusing part
of using this unit. it is more useful to see which ‘Timbres’
are used, and by what, because you cannot name Timbres, but
you can end up editing them accidentally, when they are used
elsewhere.
>this is why updating this ‘assignment list’ is necessary
any time a change is made ( so ‘getToneNames()’ could be
called by all modulators that change Tone assignment for
a Timbre.
mm, so i suppose this involves knowing where the bytes in the
main ‘all’ bulk dump are, and the addresses for the user Tone name bytes,
then Timbre memories, getting their Tone and ToneGroup values.
(Groups ‘a’ and ‘b’ are onboard factory presets that can be selected.
‘i’ is user memory, and ‘c’ is card memory, if present)
if i know i have ‘factory’ namelists to work with already, these can be
in one table… then have either a table or a macro(?) with indexed
entries that are variables…
unfortunately, what will make this a total nightmare to do, is the
fact that each 10character name is 10 parameter values, and these
must be assembled each into a string in order to be display, and
this, 64 times .. so that means finding the start point in the
bulk dump where Tone i01 parameters start, and then finding the
number of bytes until the next Tone, i02, and so on.