Musewave - A MIDI player
Website - Downloads - Changelog

Musewave is a MIDI player that attempts to fix many shortcomings I've experienced with contemporary programs. Utilising the powerful BASS audio library by un4seen, you can load any soundfont you want on the fly and even swap them out while the song is playing.

It targets .NET Framework 2.0 allowing it to run on virtually anything that understand .NET code, provided binaries for the BASS audio library are available.

Reply to this thread with bug reports or other discussion!
Currently accepting bugs for Musewave 1.4.0.

- File loading should not happen on the main thread.
- Restore config saving for export window.
- Position export window at the center relative to the main window on open (cli args).
- not a bug but add mini player

- Effects toggle does not persist when exporting (Fixed in upcoming 1.4.1)
- Opening a file from Explorer will attempt to load libraries from the current directory. (Fixed in upcoming 1.4.1)
this is the best program ever and i am curerntly listening to crunchy midi renditions of actual songs using it

(mirroring the shitty news post I made on the Musewave website)

At long last, Musewave 1.3 has finally landed.

It was my intention to do this years ago, as you can probably judge by the past news posts, but various things got in the way as well as my own dwindling interest in the project. Thus this release isn't really worthy of the fanfare it would've been worthy of years ago. In fact just about all of the code in this release has been sitting in my private git repository for about a year or two now. It'd be a waste to let it go completely unused, or only be present in random shoddy debug builds I hand to people in private, so here it is.

I'd say there were two roadblocks preventing this release from happening. One artificial, one actual.

The artificial one was mostly my own requirement for automatic updating and component retrieval. It was originally my plan for the download to just be the Musewave.exe, and then download native libraries as required. For example; if you were never planning on exporting songs as .mp3 files and never selected that option in the export window, the library required to do so wouldn't even be present in your Musewave program folder. Unfortunately, I did not have the time or interest required to adjust the codebase in order to implement this properly.

Which leads me onto the second roadblock, the actual one; the code. Musewave started as a program simply called Midi Player. A personal experiment and tool useful to myself for quickly checking out MIDI songs with various different soundfonts. This is still its primary function and it still performs this function well in my opinion. However because this project started out as an "experiment", the code is very, shall we say, "experimental". It's a pain in the ass to work with. There's a lot of bad practices, assumptions and hacks going on that are so deeply rooted in the way the program throws itself around that adding anything requires me to dance around these obstacles. You may wonder how such a small program would have such things going on but it mostly comes down to me either not caring about or not understanding the finer points of threading within Windows Forms/Win32 UI programming.

What I can say for sure is that this is the last entry in the Musewave 1.x series that will include new features. If I ever do regain interest in this project, expect a from-the-ground-up 2.0 release.

If you discover any issues in Musewave 1.3, please do not hesitate to let me know so I can attempt to fix them. You can either post in the forum topic on linked in the header, or contact me through the e-mail address listed on

Thank you for using and supporting Musewave!
Earlier the OP said that this project was on hiatus: this was a lie. Uploaded 1.4.0 about an hour ago! Planning a redesign of the website sometime in the future but I can't be bothered right now. As for Musewave itself, I'll probably stick to the once a year release cycle (though I missed 2023 by a couple days...).

1.4 is more of a refinement release. I cleaned up a lot of the source code and also fixed a couple outstanding things from 1.3 as well as some other UI things, unfortunately I haven't gotten around to redoing the main UI yet but we'll get there eventually. You can check further details in the changelog if you're interested.

This update also featured my latest flavour of autism; using DNS for update/information checks. By default it will try to run this check on startup, but you can turn it off through the setting described in the changelog.

Starting with 1.5, I'll probably start working on the 2.0 rewrite in tandem beginning with a core library, that 1.5 or a future 1.x version will depend on. I don't think it'll be too difficult given half the C# source code is already P/Invoke statements, it will probably make things easier even...

If you run into any bugs or have any ideas, be sure to post them!
this program has poisoned my brain and some of my 6kbps opus exports have made their way into my semi unironic rotation