EQ, Looping, QoL, and Performance Improvements:
- Improved performance and reliability of the audio subsystem
- Sound cue end time is now more accurate as it's logic is now calculated per sample rather than every 50 ms
- Rewrote the audio mixer to be more efficient
- The audio thread now registers itself with the Windows MMCSS to help prevent audio dropouts
- MSC and OSC drivers now use a cancellation token to allow them to be disposed of quickly and correctly
- Improved performance of the waveform graph renderer by preventing un-needed re-renders
- Autosave can now be disabled
- Improved UI performance when many cues are playing
- Audio device querying is now done asynchronously, this should speed up project file loading
- Added placeholder text to the waveform graph for when the waveform is still loading
- Fixed bug where clicking on the waveform to play from a specific time behaved incorrectly when the Start Time of the cue is non-zero
- The waveform window now accepts the normal keyboard shortcuts
- Fixed a bug where pressing the open waveform window button wouldn't always re-activate an already open window
- Added main mixer audio metering + UI
- Optimised audio resampling implementation
- Improved audio processing performance using SIMD intrinsics
- Implemented per-cue parametric EQ
- Implemented proper support for audio cue looping (fixes #9)
- Fixed bug where the local system culture caused string -> double parsing to fail; most of the code now uses the invariant culture for number parsing (fixes #26)
- QPlayer now opens the WASAPI driver by default as it offers better performance
- Updated the splash screen
- Added warning popup when attempting to exit QPlayer while cues are playing
- Exiting the main QPlayer window can now be cancelled if there are unsaved changes
- Loading a new show file now correctly stops all the running cues from the last show file
- Switching to the Wave or DirectSound audio drivers now automatically increases the audio latency to a reasonable value if it's too small
- Fixed some bugs relating to race conditions around opening the correct audio device when loading a show file or creating a new one
- Prevented a few buttons from receiving focus so that they don't inadvertently eat GO commands
- Improved tab navigation of the cue stack fields
- Fixed bug where hidden combo boxes wouldn't close
- Other bugfixes and improvements
Full Changelog: 1.9.2...1.10.3