Implemented ticksToNoteDuration mathematically
Refactored state to maintain duration instead of ticks
Handled note optimizations where dotting is better than changing durations
Added midi note numbers to parsing
Added function to determine valid octaves for a midi note
Removed note name and octave from note tokens in favor of midi note numbers
Renamed things
Octave change optimization
Support for rests