Musewave

A MIDI player fit to my needs.

´╗┐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.