* Added base type for UI panels of MIDI input sources.
* Renamed BandMenu into BandMidiSource.
* Implemented the UI overhaul, skipping channels dialog functionality for now.
* Refactored for conventions and reordered type members.
Got rid of SetInstrument/ClearInstrument again.
* Decreased background opacity for UnavailableOverlay to improve readability.
* Localization
* Added text to InputMidiSource so players know what it does.
* Changed window MinSize to SetSize. Allows players to reduce window size if desired.
* Improved button looks by adding style classes.
* cleanup
* leftover cleanup
* Reverted fetching InstrumentSystem via IoCManager (crashes it, woops).
* added filter bar to file list
* refactored almost all system/manager interaction into instrument BUI
* text changed for instruments-component-menu-input-notice-label
* fixed InstrumentBoundUserInterface.Dispose not unsubscribing from everything
* minor cleanup
* finished configuration menu & cleanup
* Comments and fixes for InstrumentMidiSourceBase
* Fixed RA0051
* Removed unncecessary null check
* Added methods for accessing the selected track.
* Limited depth of search for instrument master to prevent deadlock.
* Cached system access
* Storing midis asynchronously
* Actual MIDI data now only loaded before playback.
* async removed from InstrumentBoundUserInterface.LoadStoredUserMidis
* Replaced GetComponent calls with TryGetComponent
* Localized MIDI playback track timer
* Searching for next track using raw index now
* Fixed CS0168
* XML comments, minor fixes and disabled MIDI library management while a track is playing.
* removed timers with simple watchdog and switched to MidiFileCollectionManager
* Missed one (timer)
* Changed access for MidiFileCollectionManager.UserMidiDirectory field to public.
* Added instrument config control for MIDI collection utilities.
* redesigned instrument config menu
* Removed rename function, updated adding implementation
* more redesigns
* fixed _isMidiFileDialogueWindowOpen not resetting correctly in certain cases.
* file scoped namespaces
* replaced EntityUid with Entity<InstrumentComponent>
* if spaces
* returning Tooltip instead of Control
* replaced SetEntity with public field
* readonly system fields
* InstrumentMenu MinSize
* xml comment for InstrumentMidiSourceBase
* small refactor
* more cleanup
* TryGetComponent to GetComponent on Open()
* more formatting issues
* switched to [Dependency] for systems
* playback improvements
* disable playback button if no file selected and playing
* activating shuffle now selects track if none is selected
* rearranged playback buttons
* channels overhauled
* Play/Stop label to Play only
* Removed all channel on/off
* Program now default channel name display selection
* improved RemoveButton.Disable behavior
* channels now toggable by clicking anywhere
* Shuffle no longer selects already selected track.
* Loop & Shuffle no longer both selectable at once
* minor improvements to channel item visuals
* minor channel toggle fixes
* xml docs & code cleanup
* `RefreshBandRequest` now sent automatically when band source becomes visible
* converted 5 items tuple to MidiChannelInfo record
* added markup support to instrument menu configuration header
* added note to midi channels config header explaining update behavior.
* added MidiLibraryManager together with tests.
* added error log when failing to add midi + minor formatting.
* additional error logging for midi library.
* fixed TestRemoveMidiFile failing due to new error logging.
* improved error logging.
* switched from string file names to ResPath
* renamed to MidiFileCollection and moved to Content.Client.Audio.Midi
* updated xml docs
* readded the Manager suffix that I totally didn't forget + some formatting.