refactored, created struct for midi channels, redesigned for scaling