Musewave Changelog
==================

Version 1.4.0 - 2024-01-02
[+] Added fade in and fade out to export window.
[+] Added Log tab to crash window.
[+] Added DNS based update check.
[#]  It should be pretty unintrusive, unlike past implementations.
[#]  Just like back then it can be disabled by setting Musewave:CheckUpdateOnStartup to false.
[#]  The button will still be available for manual checks on the About dialogue.
[+] Added Windows Registry settings support.
[#]  If you're not on Windows or if Musewave.ini or MidiPlayer.ini exists in the same directory as Musewave.exe, file based settings will continue to be used.
[+] Added support for GZip compression of MIDI files.
[+] Added -Play argument to allow for playback without a UI.
[#]  You can specify soundfonts using the -SF argument: -SF "C:\Path\To\Soundfont.sf2".
[#]  You can specify speed using the -Speed argument: -Speed 1.5
[#]  You can specify volume using the -Volume argument: -Volume 0.8
[#]  Any unprefixed argument is treated as the target file to play.
[#]  The program stops playback either if you press CTRL+C or when the file ends.
[*] Improved stability of single instance check.
[*] Made startup threading less complicated.
[*] Gave the changelog window a makeover and merged it with the about dialog.
[*] Also display Environment tab in error box in non-debug builds.
[*] Improved playback of "Black" MIDIs.
[*] Restored Speed slider and wind down on Windows 98 and Me.
[*] Made exports run in a separate process.
[#]  This allows you to close the main window while exports are running and also improves stability in a somewhat superfluous manner.
[*] Improved wind down effect.
[*] Fixed changelog not showing after updates, if enabled.
[#]  Can be disabled in the configuration by setting Musewave:ShowChangelogAfterUpdate to false.
[*] Moved device selection drop down to the main window rather than a separate dialogue.
[*] Made some buttons that normally open URLs as HTTPS use HTTP on versions of Windows before Vista.
[*] Windows Vista and up now use a modern folder picker.
[*] Drag 'n dropping a folder onto the Midi or Soundfont selection panel will make it use that folder.
[*] Attempt to do wind down effect when an error occurs.
[*] Fixed loop forcing the playback device back to default.
[*] Fixed crash when loading invalid soundfont file.
[*] Cleaned up the way native libraries are loaded.
[*] Fall back to No Sound if the selected Output is busy.
[*] Some fixes for running on Wine and Mono on Linux but it's still not ideal and probably will never be for 1.x.
[*] Fixed export process failing for no reason with particular midi files.
[#]  onestop.mid bundled with Windows was a very convenient example of this.
[-] Removed live logging window flag.
[#]  Logging has been reworked entirely and will just write to the same file.
[-] Removed remnants of automatic updating and error submission.
[-] Removed buggy "fast mode" from export window.

Version 1.3.0 - 2022-12-17
[*] Rewrote audio backend.
[#]  This fixes audio playback in Windows 98/Me and adds proper support for running the program through Mono.
[*] Rewrote exporting backend.
[#]  You can now specify additional parameters for the exported file as well as metadata tags.
[#]  If you don't care for these extra steps, you can hold SHIFT while clicking Export to use your last settings and skip metadata.
[+] Added an unhandled error window with the ability to report the error and rewrote the logging system.
[#]  Reporting requires manual action and thus won't happen without user consent.
[+] Persist Volume, Speed, Reverb/Chorus and Repeat state in the configuration.
[+] Added drag 'n drop support for opening files.
[+] Made playing music "wind down" on close, the player window will also gradually fade out during this.
[+] Added support for non-lowercase file extensions (Windows normally ignores casing).
[+] Added support for the SFZ format.
[+] Added support for the ".midi", ".rmi" and ".kar" midi extensions.
[+] Added output device switching.
[+] Added support for running Musewave under .NET Core on Windows.
[+] Soundfonts from soundfonts directory will now be automatically loaded if it has the same path as the midi.
[+] Player window will now remember its position between sessions.
[*] Replaced Frequency slider with a Speed slider.
[*] Minimum and maximum playback frequency are now properly detected on Win9x platforms.
[*] Play/Pause button now remains visually pressed while playing.
[*] Repeat and Reverb/Chorus checkboxes are now buttons.
[*] Fixed system locale affecting numeric values in the configuration.
[*] Expanded support for arm64 on Windows.
[*] Fixed stray pixel on icon.
[*] Fixed various concurrent operations that were causing issues.
[*] Rewrote build date system, no longer embedded in the version number.
[*] About window text is no longer embedded in the image.
[*] Native libraries are now loaded from platform specific subdirectories.
[*] Only show "Open in Explorer" on Windows NT derived platforms due to limitations on others.
[*] Attempt to restart to resolve libraries on Linux.
[*] Fixed filename ordering in the sidebars.
[*] Put error logs and old log files in subdirectories rather than flooding the root.
[*] On Windows, Musewave will now use Windows Notepad as a debug log rather than its own window.
[*] Fixed right clicking on sliders to reset their values not properly updating their positions.
[*] Command line arguments are now case-insensitive.
[-] Removed settings window.

Version 1.2.7550.32028 - 2020-09-02
[*] Fixed export progress bar.

Version 1.2.7262.8755 - 2019-11-19
[*] Fixed null reference.

Version 1.2.7262.30 - 2019-11-19
[*] Changed name from Midi Player to Musewave!
[+] Added settings window.
[+] Added forum link to the about window.
[+] Added app.manifest for better compatibility for Windows Vista and up.
[+] Added signature checking to the updater.
[+] Added option to disable automatic update check on startup.
[+] Added check to prevent running with KernelEx on Windows 98 and Me.
[*] Backported changelog and about window from v2 project.
[*] Backported improved export infrastructure from v2 project.
[*] Fixed some compatibility issues.
[*] Changed changelog window behaviour.
[*] Rewrote configuration handler.
[*] Renamed MidiPlayer config section to Musewave.
[*] Fixed slow net code.
[*] Fixed threading issues with the export process.

Version 1.1.7249.3707 - 2019-11-06
[+] Made the program single instance and added IPC.
[+] You can now specify a file as an argument.
[*] Updated URLs (https://flash.moe/musewave/ -> https://musewave.flash.moe/).
[*] Attempted to fix update checker getting stuck.
[*] Fixed crash when setting a soundfont while no MIDI file is loaded.

Version 1.1.7073.28578 - 2019-05-14
[+] Backported exception logging code.
[+] Display build date in about window.
[*] Fixed anchoring of the Repeat checkbox.
[*] Updated about window.
[*] Backported new initialisation code, startups should be somewhat faster now.
[*] Backported export selection window.

Version 1.1.7050.39377 - 2019-04-21
[+] Added simple update check without any built in downloading.
[*] Moved manual update button from the main UI to the about window.
[*] Fixed crash upon start with blank config.
[-] Removed auto updater.

Version 1.0.x - 2018-06-16
[+] Added repeat button.
[+] Added new resource loader.
[*] Made sure all windows get the correct icon.
[*] Fixed typo on about window.
[*] Rewrote Changelog and Export selection windows to be designerless.
[-] Removed some more leftovers from the old file tree code.

Version 1.0.x - 2018-06-15
[*] Rewrote the file browser panels entire.
[#]  They now support a number of new actions, like pressing CTRL+C while a file is selected will give you its full path.
[#]  Folders are loaded on demand which will reduce load times and they can be reloaded individually.
[#]  On top of that there's also a new button which will open an Explorer window with the file or folder selected.
[+] Added processor architecture detection code (adding proper BASS libs soon, will also come with a new updater).
[+] Added position and duration text displays to the interface.
[+] Added checks to see if we're running on Windows before doing WinAPI calls.
[*] Use magic delegates everywhere.
[*] Rewrite Position and Length to use TimeSpan rather than position and length in bytes.
[*] Fixed small issue where labels in the file trees were editable.

Version 1.0.x - 2018-04-22
[*] Retarget to .NET Framework 2.0 from 4.0.
[+] Added native MP3 and OGG exporting support (requires external binaries, the program will tell you what to do).
[+] Added Reverb/Chorus toggle.
[*] Fixed two instances opening on startup update.
[*] Fixed updating on Windows XP.
[*] Make sure we're in the working directory of the Midi Player exe directory on startup.
[*] Fixed the UI thread being blocked by export operations (you can now also play a different midi while the export is going).
[*] Fixed anchoring of the Reverb/Chorus toggle.
[*] Exporting MIDIs is now instantaneous!

Version 1.0.x - 2018-03-17
[+] Added a button to manually show the changelog window in the about dialog.
[+] Changelog now shows up in a window, rather than notepad (or whatever is set to open .txt files).
[*] Changed update server domain.
[*] Thread safe text updating!
[-] Removed NewPlayer elements (cancelled main interface rework).
[-] Removed Index library dependency.

Version 1.0.x - 2017-10-22
[*] Fix typo.

Version 1.0.x - 2017-10-17
[+] You can now SHIFT+CLICK the refresh buttons to display the full path to either the midi or soundfont.
[*] Made the panel no longer hide selection after losing focus.

Version 1.0.x - 2017-10-08
[+] Handle Player related UI updates through event handlers.
[*] Fixed the last midi not being stored properly (and also an ObjectDisposed exception?).
[*] Reordered Info menu in new player ui.
[*] Bound play button events in new player ui.
[*] Moved update loop to Player class.
[*] Made MidiPlayer.NewPlayer always visible in the config.
[*] Restructured configuration file.
[-] Removed comment from Export window.

Version 1.0.x - 2017-10-07
[+] Completely rewrote audio backend.
[+] Show changelog after updates.
[+] New About window.
[*] Cleaned up some internals.
[-] Removed unused debug utils.

Version 1.0.x - 2017-10-03
[+] Created Changelog.
[*] Use SetMidi and SetSoundfont rather than manually assigning the variables.
[*] Fixed export only working while already playing a midi.
[*] Fixed the Export button still requesting a path when not Midi or Soundfont is selected and just doing nothing afterwards.
[-] Remove the dropped TXT file informing users about the bug.

Version 1.0.x - 2017-09-21
[+] Project started.
