Pattern Play Mode
Initialization
Pattern Play Loop
The pattern play loop looks like this:
 Read any input from the switches
 
 If the function has changed, stop and exit
 
 If we are in master sync mode, handle tap tempo
 
 Start a new chain if the chain key was just pressed
 
 Finalize chain mode once chain is released
 
 Display Somthing…
 If we are in the middle of chain mode, then display the current chain and add patterns/tracks OR
 
If up/down is pressed handle pitch shift OR
 
Display the current data
 
 
 Or Handle Playback
 If the pitch shift keys are released, stop blinking the leds
 
 If they changed the pattern/track build a chain one pattern long to the new pattern/track
 
 Display the current (and next if applicable) track
 
 
 If we are playing and have midi or din sync handle the sync through clock ticks and play the note with 
do_tempo 
 
 if we get a Midi Song Select message, set it to the current pattern/track
 
 if we get a stop message (midi, dyn, r/s) then stop
 
 if we get a go message then start playing
 
 toggle slide if slide button pressed
 
 toggle accent if accent button pressed
 
 toggle rest if rest button pressed
 
 CodeRefactoring:  This function seems rather smelly (large method, lots of complex conditionals).  From a maintainability and readability standpoint it would be nice to do the "Replace conditional with function" and "Decompose Function" on this monster function to turn it into a bunch of small pieces.