A recent question involving SysEx reminded us of some interesting discoveries we made during the process of writing the Java app we use to analyze performances.
The first two are well known but the rest may not be. In no particular order but numbered to make them easier to refer to:
1. The 'current performance' is the one in the edit buffer.
2. There is ALWAYS a 'current performance' in the edit buffer. When the instrument is turned on it either loads either the first preset performance or a Live Set performance the user configured. On the Utility->System screen the 'Power On Mode' parameter determines which of these is loaded.
3. Every part has a 'Part Switch' - see the top left, first line of the table on p.237 of the Data List. That switch isn't exposed in the UI but you can use SysEx to modify it.
4. EVERY performance ALWAYS has 16 parts. But if the 'Part Switch' is OFF the part is NOT active in the performance and you won't see it in the UI. This is the hardest one to convince people of but even the 'init' performances have 16 parts. Use SysEx with an address of '04 04 01 0d' and you WILL get a part dump. The part you get MAY not always be the same one (see #5, 6, 7)
5. Deleting a part merely sets the 'Part Switch' to OFF. It does NOT actually remove the part from the performance. So if you delete a part when save the performance that part (now inactive) is saved as well. But it will NOT be loaded the next time the performance is loaded.
6. Loading a performance does NOT load data for parts whose 'Part Switch' is OFF.
7. The corollary of #4 is that the data in the edit buffer for any given part will be the data for whatever performance last used that part slot since the power was turned on.
Load 'Init Normal (AWM2) and the UI shows just one part. But send the command 'f0 43 10 7f 1c 0d 11 00 01 00 01 f7' and you will suddenly see a part 2. The '11' for address 1 ('1p') means part 2. The part 2 you get will depend on what the part 2 was for the last performance loaded that had a part 2.