== This file will no longer be updated since October 2019. == As we are now just pasting commit messages into this file. 2019-09-25 0.8.7 indev Use QStandardPaths. RIP Windows users. 2019-09-16 0.8.7 indev Use QCommandLineParser to parse arguments. New argument for loading plugins from given files. Use functor whenever possible in QObject::connect. A little bit of code cleanups. 2019-09-13 0.8.7 indev CMake. It's happening. Added a new build system based on CMake. Minor code cleanups. This probably breaks building with QMake on multiple platforms. And of course the new CMake support isn't tested thoroughly. But it's finally happening. 2019-09-10 0.8.7 indev We refactorin', eh? Hell yeah. (Almost) Completely rewritten qmpChannelsWindow, one of the oldest component, now with a dedicated data model. Removed dumb design (CMidiPlayer::getChstates). Now QMidiPlayer requires C++14 to build. More refactoring like this coming up soon. 2019-07-01 0.8.7 indev Actually send initialization sequence to external devices. Replace hardcoded initial CC values with values from device property API. 2019-06-30 0.8.7 indev Use splitter in preset selection dialog. Device initialization settings are no longer lost if QMidiPlayer starts with the device disconnected. 2019-06-17 0.8.7 indev Device initialization file implementation (part 1). Added UI for external device configuration. Instrument mapping portion of the device intialization file is now working. Fixed a few spots where return value of getChannelPreset() is ignored. Fixed layout of the preset selection dialog. 2019-06-16 0.8.7 indev Inital implementation of the device properties API. Added new interfaces to qmpMidiOutDevice. Implemented the new interfaces for qmpMidiOutFluid. Initial infra for device initialization file parsing. Move to the new interfaces for getting list of presets. Use DevIL instead of CxImage. External output devices are broken now but that is for another commit. 2019-05-26 0.8.7 indev New flag field in SEvent. Further type usage corrections. Removed all references to ICallback in official plugins. 2019-05-25 0.8.7 indev Massive code refactor en cours! Less complain from compilers: - use nullptr instead of NULL - use types for event fields - explicit type casting added Stop saving parameters of meta events in p1/p2 fields of SEvent. SEventCallBackData removed. Use SEvent instead. callback_t now uses std::function, deprecating ICallback. 2019-04-22 0.8.7 indev New development cycle! Partially reintroduce High DPI handling. Pressing enter when a preset is focused now opens the preset selection dialog. Close all functionality windows before shutting down. And the most important one of them all: new simple visualization! 2019-03-18 0.8.6 alpha Fixed initial preset selection in XG mode. 2019-03-13 0.8.6 alpha Set preset bank correctly in XG mode. Removed High DPI handling code. Good luck to Windows users out there. Skulpture style: dials are no longer blurred if scaled. 2019-01-25 0.8.6 alpha Fixed a crash caused by improper preset probing. Further ensure CC#8 is initialized correctly. Minor string table update. 2019-01-24 0.8.6 alpha Migrated to fluidsynth 2.x. Moved to mxe for Windows build. Fixed default value for CC#8. 2018-10-02 0.8.6 alpha Fixed layout with Qt 5.11. Minor code cleanups in qmpchannelswindow. Documentation update. 2018-06-18 0.8.6 alpha Precise playback (no more slowdown). Also the visualization should now sync better. 2018-03-19 0.8.6 alpha Unified meta event reading code. Fixed playlist dialog behaving oddly. 2018-02-07 0.8.6 alpha Forgot to unregister UI hooks. 2018-02-03 0.8.6 alpha Minor performance improvement to the 3D visualization. 2018-01-29 0.8.6 alpha Fixed FTBFS with Qt 5.6. 2017-10-18 0.8.6 alpha API changes: - Lots of renaming. - qmpVisualizationIntf no longer exists. Visualization is now just a normal functionality. - Added UI Hooks. Fixed a bunch of crashes and insanities in the visualization plugin. I think it's now time for 0.8.6 alpha. 2017-08-22 0.8.6 indev Windows type of functionality windows is now Qt::Dialog. Initialization fluidsynth asynchronously. Minor documentation update. 2017-08-10 0.8.6 indev Windows of several main functionalities are no longer QDialogs. Fixed unexpected behavior. Now visualization window can be closed by sending it a close signal. Trying a solution to address the problem that prevents plugins from being loaded correctly in Windows if the path contains Chinese characters. Not even tried to build in Windows though. 2017-06-22 0.8.6 indev Minor bug fixes. SMF reader finally takes chunk length into account. Do not prepend sysex header to F0h sysex. Let the readers do it. File readers code cleanups and refined error messages. 2017-06-21 0.8.6 indev Fixed FTBFS on Windows. Fixed the default output device option. Seeking now restores CC values correctly. 2017-06-21 0.8.6 indev Fixed a bunch of bugs and crashes in the RtMidi output device. 2017-06-21 0.8.6 indev Code refactoring: Complete rewrite of the MIDI mapper. The new architecture allows implementation of custom MIDI output devices. Enforces single fluidsynth instance. Deprecating the option. Documentation uptate. The lite version no longer have hardcoded soundfont path. More testing needed for this revision. 2017-06-16 0.8.6 indev Code refactoring: Tracks information are now preserved. CMidiReaderCollection no longer handles file info operations. Note on with zero velocity are no longer treated separately. Small fixes to several memory leaks. More code refactoring is going on. 2017-06-02 0.8.5 indev Accumulative changes from 2017-03: Don't crash if RtMidi initialization failed. Hopefully fixed crash when closing the visualization window on Windows. Documentation update. 2017-02-14 0.8.5 indev Scan for plugins in the executable directory instead of the working directory. 2017-02-13 0.8.5 indev Also use the new mechanism to handle the main Window. Explicit initialization of variable fixes #4 2). 2017-02-13 0.8.5 indev Fix pitch bend range handling. Allow registering a string option as file path. Provide an easier way to set path values in options. Revert to old geometry storage mechanism and improved it. Hope this one will work on Windows. Make the time slider less ugly. 2017-02-12 0.8.5 indev UI revolution cont'd. Powered by @BLumia. Expose new APIs to plugin developer. Use svg icons. 2017-02-12 0.8.5 indev New functionality API. Port built-in features to the new API. Start the revamp of the main Window. Credit of the new design goes to @BLumia. 2017-02-10 0.8.5 indev Road to standardize: use two parameters for pitchbend. Documentation. Minor bug fix. 2017-02-09 0.8.5 indev Fix building on Windows. Behavior changes: 1. DnD into the main window now causes the dropped file to play. 2. Switch back to w32usleep to increase bpm accuracy. 3. Scan for plugins in application folder (in Windows), not in the working directory. 2017-02-09 0.8.5 indev Add extra midi formats support via the file reader API. Fix note counting. 2017-02-08 0.8.5 indev Add API version verification. This breaks compatibility with old versions of plugins. Documentation. Add RIFF MIDI support to the SMF reader. 2017-02-07 0.8.5 indev First steps for the file reader API. API additions and changes. Fixed wrong button shown when started from file. 2017-02-07 0.8.3 alpha Fixed 2D visualization broken by commit 8a0d671. 2017-02-01 0.8.3 alpha Make packaging qmidiplayer less painful. Add mime info. Do not throw integers. Fix incorrect font paths in Arch Linux. 2017-01-15 0.8.3 alpha A little code refactoring. 2017-01-02 0.8.3 alpha Can show measure indicators now. Added new options to specify custom fonts. Added a new handler API. Minor rework on handler calling. 2016-12-27 0.8.3 alpha First official version with experimental support for the visualization plugin on Windows. Fixed several critical bugs causing the plugin to crash QMP. 2016-12-11 0.8.3 alpha Update the preset selection dialog to improve support for external MIDI devices. 2016-09-23 0.8.3 alpha Add a set of icons for dark themes and a option to change the icon theme. 2016-09-16 0.8.3 alpha Minor bug fix. Update documentation. 2016-09-15 0.8.3 alpha Add a new visualization mode. Fix minor behavioral bugs. 2016-09-15 0.8.2 alpha Fix FTBFS. Force Qt5 while building. 2016-06-05 0.8.2 alpha Make preset selection dialog non-modal. 2016-06-03 0.8.2 alpha Add the "restart fluidsynth" action. 2016-06-02 0.8.2 alpha Add option to change note colors. 2016-06-01 0.8.2 alpha Initial event modifier and event filter stub. 2016-05-31 0.8.2 alpha Update documentation. 2016-05-30 0.8.2 alpha Added an option to change font size used by the visualization. 2016-05-29 0.8.2 alpha Allow disabling soundfonts in the soundfont setting tab. 2016-05-28 0.8.2 alpha Add option to tweak the OSD. More info shown in the OSD. Bump version. We have stayed at 0.8.1 for a long time and the visualization plugin is almost fully functional now. 2016-05-27 0.8.1 alpha Compute coordinates of pitch-bent notes more precisely. Also load resources from system-wide folder. 2016-05-26 0.8.1 alpha Keyboard for 2D visualization. 2016-05-25 0.8.1 alpha Horizontal 2D visualization. 2016-05-24 0.8.1 alpha Add seeking with arrow buttons in visualization. Correct return result of API functions when text encoding is set to Unicode. Use QPointer to store pointer to dialogs to avoid crashes. (However crashes related to dbus are still not resolved.) 2016-05-23 0.8.1 alpha Add horizontal visualization mode. Add build date in version page. 2016-05-21 0.8.1 alpha Use QDirIterator instead, fixing plugin loading problems in Windows. Also scale UI elements. 2016-05-20 0.8.1 alpha Scale GUI correctly on a high DPI device. Fix building for Windows. RC-bugs still exist. 2016-05-19 0.8.1 alpha Added a sample plugin as a template. Implemented scanPlugin for Windows. 2016-05-18 0.8.1 alpha Finally finish the particle system integration. Add std::wstring version APIs to avoid wrong encoding. Update documentation. 2016-05-17 0.8.1 alpha Fix bugs in the particle system. Add particle look at option. 2016-05-16 0.8.1 alpha Finish the particle system. It should become a part of SMELT someday. 2016-05-15 0.8.1 alpha Initial stubs for the particle system. Use layouts in the effects window. 2016-05-14 0.8.1 alpha This _should_ fix building under arch linux. (Linking order problems and include problems). 2016-05-13 0.8.1 alpha Added enumerate integer options support. Workaroud for different fonts locations in arch linux. 2016-05-12 0.8.1 alpha Now channel labels are displayed correctly. Add an option to change the tint of the chequer board. Show unsigned integer options in hexadecimal format. Fixed a crash caused by attemting seeking when no file is being played. 2016-05-11 0.8.1 alpha Fixed a bug when piano is hidden but the option "arrange channels on a stair" is enabled. Fixed a crash caused by the visualization plugin. Add channel label display. However it's still buggy so it's currently disabled. 2016-05-09 0.8.1 alpha Add visualization documentation stub. 2016-05-07 0.8.1 alpha Added two new options. Fixed several crashes related to options without a description. Sanitise deinitialize order again. Fixed several memory leaks. 2016-05-06 0.8.1 alpha Use new SMELT rendering API for notes drawing. Deinitialize classes in a correct order to avoid crashes. Add background image option. Add FPS-related options. Use QLineEdit instead of QPlainTextEdit for strings. 2016-05-05 0.8.1 pre Use the new SMELT rendering API. 2016-05-04 0.8.1 pre Piano keyboard: first steps. 2016-05-03 0.8.0 beta Finish option proxying for all types. Add more options for the visualization plugin. Bump version to 0.8.0. Package the visualization plugin for debian. 2016-05-02 0.7.8 beta Finally finished the option proxying infrastructure... 2016-05-01 0.7.8 beta Give the visualization a clearer look... Now highlights playing notes. Avoid a crash in file reading. 2016-04-30 0.7.8 beta Fixed a bug in RPN handling. 2016-04-29 0.7.8 beta Update documentation. Added two missing option proxy function... 2016-04-28 0.7.8 beta List plugins in settings window. Plugins can be disabled now. 2016-04-27 0.7.8 beta Show file name in window title. Handle pitch bend in visualization. Handle mute and solo in the default visualization. A little plugin sdk documentation... Remove stupid things. 2016-04-26 0.7.8 beta Now the default visualization plugin works as expected. Avoid null pointers in the API implementation. 2016-04-25 0.7.8 alpha Plugin API now works correctly. Port part of the old visualization code to the new Plugin API. 2016-04-24 0.7.8 alpha More implementation of plugin support. Migrate channel activity indicator to the new callback system. Added a testing plugin. Plugins are now loaded correctly. However the plugin API is not working properly. 2016-04-23 0.7.8 alpha Basic stubs for plugin support. 2016-04-22 0.7.2 Remove visualization stub in settings window. Warn the user when an invalid file is loaded. Discard fluidsynth warnings. First stable version! 2016-04-21 0.7.2 beta Minor change to the main window. Added "click to copy" to the file information window. 2016-04-20 0.7.2 beta UI refinements: Use Qt layouts in most of the dialogs. Allow seeking with a single click on the slider. Remove file extension from the file name on main window. Use QLCDNumber to display current polyphone. Fixed two memory leaks. Minor improvement in MIDI reading process. Added a function to dump midi file content (for debugging). 2016-04-19 0.7.2 beta Fixed several bugs in command line parsing (on Windows). 2016-04-18 0.7.2 beta Use std::vector for the event list. Add panic action. Minor changes on the panic function. 2016-04-17 0.7.2 beta A little more documentation work... 2016-04-16 0.7.2 beta Don't do full initialization before pharsing arguments. Fixed load folder not working properly when a relative path is given. Documentation... 2016-04-15 0.7.2 beta A little documentation work... 2016-04-14 0.7.2 beta Also reset mapped midi devices. Translation work... 2016-04-13 0.7.2 beta Reset channel activity indicators properly. Windows version now has an icon. Fixed a null pointer reference. 2016-04-12 0.7.2 beta Partially fixed unicode file name issue on Windows. First steps to l10n. Move documentation online. Improved deployment on debian based system. 2016-04-11 0.7.1 beta Sanitise MIDI mapping functionality. 2016-04-10 0.7.1 beta Implement output mapping related options. Fixed several stupid mistakes and typos. 2016-04-09 0.7.1 beta Add the fuse mechanism to avoid black midi blocking the main thread. 2016-04-08 0.7.1 beta Add MIDI activity indicator. Substract time taken by sending midi data from sleep time. Fix no soundfont loaded after rendering a file. Modify default settings for Windows, solving the timing problem for me. 2016-04-07 0.7.1 beta MIDI mapper: first steps. 2016-04-06 0.7.0 beta Further works on project integration. Perhaps we need a version bump? 2016-04-06 0.7.0 beta Merge qmidiplayerlite. Hope this won't break the repo. 2016-04-05 0.7.0 beta Raise player thread priority in Windows. I've been so tired with the timing bug... Remove several printf's. 2016-03-23 0.7.0 beta Fix drag&drop behavior in Windows. Use winmm functions to ensure timing precision. 2016-03-19 0.7.0 beta Minor changes on w32usleep... Sync with the Windows build. 2016-02-28 0.7.0 beta RPN pitch bend range handling. Added an option to disable waiting for remaining voices before stopping. Documentation... 2016-02-28 0.7.0 beta Significant sleep precision improvments for Windows. Also save master volume in configuration file. 2016-01-31 0.7.0 beta Modify default settings in for Win32. Initial MIDI mapper stub. 2016-01-30 0.7.0 beta Add support for a single, persistent fluidsynth instance. (Experimental, may also break the original mode...) A little documentation work... 2016-01-26 0.6.2 beta Maintaince release. Use skulpture style dials. Use QThread::usleep() in Windows to improve sleep precision. 2016-01-16 0.6.2 beta Stupid RC bug fixes... Use correct home directory in Windows. 2016-01-15 0.6.2 beta Fix compatibility with MSVC. Support for MSVC is still experimental. Add files for building a debian package (highly experimental). 2016-01-14 0.6.2 beta Drag 'n' drop. Do not quit the program when trying to load a unsupported file. 2016-01-13 0.6.2 beta Hopefully this fixed several critical bugs... 2016-01-10 0.6.2 beta Minor behavior changes and bug fixes. 2016-01-06 0.6.2 beta Initial command line parameters handling. Minor bug fixes. 2016-01-04 0.6.1 alpha Avoid strange results in channel view. Fixed several crashes. 2016-01-03 0.6.1 alpha Initial works on documentation. Minor bug fixes. 2016-01-03 0.6.0 alpha Implemented most of the options. "Render to Wave" is now implemented. Finished saving & loading playlists. Fixed several leakage and bugs. 2016-01-02 0.5.1 Now sends SysEx(optional). Primitive settings implementation(some of the audio tab and the soundfont tab). 2016-01-01 0.5.0 Bug fixes. Minor code refactoring. Initial stubs for the settings window. 2015-12-31 0.5.0 Implemented effect parameter editor and file information window. Bump version. 2015-12-30 primitive version Implemented the channel parameter editor. 2015-12-29 primitive version Implemented the channel preset chooser. 2015-12-28 primitive version Partially implemented the channel window. Fixed a seeking bug. Minor cleanups. 2015-12-27 primitive version Implemented the play list. 2015-12-26 primitive version Implemented the stop button, fixed several bugs. 2015-12-25 primitive version Implemented the GUI based on the previous CLI version.