Using an abstract property was awkward for this as it is being consumed in the underlying constructor but could not be dynamically set in time from a derived class.
Move OsuGame-dependent music functionalities outside of MusicController