Skip to content

Releases: chirs241097/QMidiPlayer

0.8.9

Choose a tag to compare

@chirs241097 chirs241097 released this 11 Dec 08:57

QMidiPlayer 10 year anniversary release!

On December 25th 2015, the first few lines of code of QMidiPlayer were written. The code was terrible, but somehow worked, more or less.

These days with my free time limited, motivation diminished, and focus scattered, it is difficult to find time to care for a side project of this scale. QMidiPlayer has been de facto put into maintenance mode for a few years now. It still receives regularly irregular bug fixes and smaller quality-of-life improvements. But the ambitious plans I had for this project may never become a reality.

Why am I being sentimental in a release note? I have no clue! But there in fact are a few decently big changes this time. Also this is not a teaser for a Rust rewrite. I have enough Rust in my systems and I'd be overdosing if I get too much more of it.

Notable changes

This release is focused on bug fixes and general usability improvements.

  • Holding down Ctrl while selecting an output device will set it for all MIDI channels.
  • Double clicking the preset information in the channel editor will now bring up the preset selection dialog.
  • The preset list now scrolls to a patch close to the current patch number as you flip through different patch banks.
  • FluidSynth engine now automatically reloads once the soundfont list is modified.
  • Fixed various crashes / freezes that may randomly happen when switching tracks. This bug might be as old as the project itself.
  • Fixed random crashes when the program is being closed.
  • Fix the channels window showing wrong preset names under certain circumstances.
  • Dropped support for Qt 5.
  • The visualization plugin no longer depends on DevIL.

Obtaining this release

Full Changelog: 0.8.8.1...0.8.9

0.8.7-2

Choose a tag to compare

@chirs241097 chirs241097 released this 08 Nov 06:43

A stopgap release between 0.8.7 and 0.8.8.

Since development of 0.8.8 is basically stalled for a really long time... let's just fix some random bugs. Also added a bunch of stuff nobody will ever use.

New features and changes:

  • Visualization renderer. Basically a YouTube content generator.
  • Configuration file revisioning. Old configuration files are not compatible. All options will be reverted to their defaults. Create a backup of the old configuration file if you need to.
  • Changed how note velocity and measure indicator are presented in the MIDI visualization.
  • Next / Previous track selected by actual track being player rather than the highlighted track in the playlist window.
  • (new plugin by @BLumia) Show playback progress on taskbar icon.
  • "Wait for remaining voices" now also checks for output level.
  • A more sane way to control the 3D visualization viewport.

Bug fixes (the list is not necessarily complete):

  • 3D Visualization should no longer randomly revert its viewport, or crash with certain configurations.
  • Fixed desync between visualization and actual playback.
  • GS files with two percussion channels should now play correctly.
  • Long delays between events should no longer cause freezes if playback is interrupted during such delays.
  • Certain crash caused by external synthesizers.

Behind the scene stuff:

  • Settings infrastructure completely rewritten.
  • API adjustments.
  • Initial adaption to changes in Qt6. Don't even try to build it against Qt6 though.
  • MSYS2 CI by @BLumia.
  • Moving a few options around in the configuration file.
  • General housekeeping tasks.

0.8.7-1

Choose a tag to compare

@chirs241097 chirs241097 released this 15 Feb 10:52
  • Updated SMELT library, fixing visualization background image loading.
  • Added a debug info OSD for the visualization. You can toggle it by pressing B.

The Windows binary is re-uploaded on 2020-02-21 to fix an issue with the bundled fluidsynth library.

0.8.7: late celebration for the 5th birthday of QMidiPlayer

Choose a tag to compare

@chirs241097 chirs241097 released this 31 Jan 18:01

This is a major release. It contains dozens of new features and lots of refactored code. A (probably incomplete) list of changes is attached below.

  • New simple visualization plugin.
  • Per-device initialization profile and instrument mappings.
  • You can now select multiple MIDI devices and assign different priorities to them.
  • Removed the now useless 'Default Output Device' option.
  • Removed all uses of widgets inside QTableWidget.
  • Now built with CMake.
  • Now requires FluidSynth > 2.0.
  • Windows builds are now built with mingw using mxe.
  • MIDI mapper rewritten.
  • Bank selection and preset selection panels can now be resized.
  • Single fluidsynth instance is now always enabled, the option doesn't do anything now.
  • Fixed seeking not restoring CC correctly
  • Application should no longer freeze when playback ends.
  • SMF reader: respect chunk length values
  • Attempting to close the visualization window no longer causes crash the application
    or no response at all
  • Windows for built-in functionalities don't close when escape is pressed
  • Show message boxes at center of current monitor
  • Lots of plugin API changes
  • Performance improvements to the 3D visualization
  • Playback timing corrections
  • SysExc. with length >256 bytes are sent correctly
  • Visualization should now sync better
  • Dials are no longer blurred on a HiDPI display.

Initial port to fluidsynth 2.x

Pre-release

Choose a tag to compare

Also the first second mingw build.

Most Linux distros do not come with fluidsynth 2.x yet. Use 11bda15 instead.

0.8.3-2: Visualization Revolution

Choose a tag to compare

@chirs241097 chirs241097 released this 29 Dec 02:47

First public release with visualization support on all platforms.

Note: Visualization is unstable for Windows. Do not enable the visualization plugin if you decide to use QMidiPlayer in a daily manner.

0.7.2-5: First stable version!

Choose a tag to compare

@chirs241097 chirs241097 released this 22 Apr 13:37
Remove visualization stub.
Complain explicitly if an invalid file is loaded.
Remove fluidsynth warnings from stderr.