Going to be slowly working on this but will try and keep all my question to this thread. Luckily there is an existing mapping to work from so I will mostly be editing that. I plan to ge something similar, but not exactly the same, as the official Traktor mapping which seems a lot more suited for the Basic mode which the unit has been mapped in and is expected to use outside of Serato.
us.novationmusic.com/sites/defa … orgsg2.pdf
The first question is a basic one on xml manipulation. The existing mapping has been made to use only two decks whereas the overlap and Traktor mapping are designed for four decks. The current Shift button should be a deck toggle and as it’s latching, not momentary, in action really is not suitable for Shift.
The Twitch uses a different Channel for each Deck, so Deck A is on Ch.8, Deck B Ch.9 etc. Hopefully this makes search and replace a bit easier, but I have no idea how to search for a string and then once that string has been found modify a different line within that class/object.
I run Ubuntu and the little bits of xml and json manipulation I’ve done in the past have been done with Sublime, which seems pretty capable (if you have the know-how.)
So this is one example of a class that would need to be changed:
So I want to search the value for “0x9A” and if found (like in the above) change the value to be “[Channel4]” making sure not to edit anything outside of the class/object the value was found in.
The second question which is instantly obvious before even starting is to get the correct Shift button working. I would imagine there are loads of examples of controllers that use this exact method so I would be happy to be just pointed at a working example.
Unlike the deck toggle buttons the Shift buttons do not actually change the output from the controller in Basic mode. Rather they just output a Note On message on note 0x00. I believe each Shift button transmits on the Channel for the associated deck it is nearby but I would treat them both as being the same.
If possible I was thinking it would be most simple to have the Shift buttons take the incoming MIDI message and change the value by subtracting five from the channel number (as default is uses channel 8 - 12, subtracting 5 would give us the same controls transposed to channels 3 - 7.) Is this possible? Or does each control made while Shift is held have to be done through scripting itself?