Audio mostly done

Clean up
Refactor into smaller methods
Add more comments
Improvements for lowering the delays between voices
Add mutex to prevent issues with Draw reentrancy
Fix bug in the ending section that would schedule for repeat voices that
had ended