Age | Commit message (Collapse) | Author |
|
(This should really be a new option...)
Also strip the marker bytes of sysex messages before sending to
Fluidsynth. Someone didn't read the docs before coding.
|
|
|
|
|
|
Also retrieve active voices from the audio processing callback.
(the values are still messed up sometimes...)
|
|
why do I keep doing this
|
|
whoops.
another opportunity to inject my crappy code into fluidsynth though.
|
|
Fluidsynth sometimes screw up the number of currently sounding voices.
|
|
insert bad pun here
|
|
SD-20/SC-8850/SC-8820 explicitly require such delay (50ms).
This is not a requirement for SD-80/SD-90.
To add the delay, append a single double digit hexadecimal number denoting
the time to wait in milliseconds to the reset message.
|
|
Guys, don't code at 1am.
|
|
Also fixed random pauses after seeking.
This should address everything left over by 64fd118e.
|
|
|
|
This should help fixing issues such as "welp my player freezes when I
switch tracks" etc.
Don't worry. Event-based playback is here to stay. TODOs:
- Maybe switch to an implementation based on condition variables?
Current implementation is just a mess and unnecessarily wastes
CPU time. Also that will allow several new interfaces to be added
(such as player.interrupt)
- Fix seeking. Seeking is still weird if there's a long gap between
events.
|
|
Hopefully this will make the source code less horrendous and actually
readable.
The command used was:
```
astyle --suffix=none --style=allman --attach-extern-c --attach-closing-while --indent-switches --indent-after-parens --pad-oper --pad-header --unpad-paren --align-pointer=name --recursive './*.cpp,*.hpp'
```
|
|
Add API for getting raw pitch bend values.
Fix non-compliant RPN handling.
The visualization renderer is still at the "proof-of-concept" stage.
It's not very usable (yet).
|
|
Visualization renderer should no longer depend on the fluidsynth library.
Reworked the "wait voice" option: now it only takes effect if an
automatic track switch happens.
Actually process events while waiting for async operation to finish.
|
|
|
|
Complete reconstruction of the settings infrastructure.
All options are now registered using a revamped option API.
Legacy configuration files are no longer compatible. Please make a
backup.
|
|
"main.seek" callbacks are now invoked after the player has done seeking,
fixing incorrect channel info in simple visualization after seeking.
Use QT_STRINGIFY.
|
|
Do not crash if preset selection dialog is closed with no preset selected.
More translatable strings in qmpChannelEditor.
|
|
Address compiler warnings in QDialSkualptureStyle.
Introduced build BUILD_PORTABLE, replacing QMP_BUILD_MODE in the QMake project.
The QMake project is now fully covered by the CMake project and officially
deprecated.
|
|
Linux build no longer searches working directory for plugins. Instead
it should search the plugin folder in the executable directory.
Documentation update.
|
|
You can now specify control initial values for each individual channels.
Added build instructions for the folks out there rocking a more superior
operating system.
|
|
Device initalization file dialog doesn't work correctly on Windows.
Make hiding console an option on Windows.
For some dumb reason preset selection dialog refuses to work if no
soundfont is selected.
|
|
Simple visualization no longer have notes stuck after seeking.
System exclusive messages longer than 256 bytes are now sent correctly.
|
|
qmpPluginAPI::registerEventHandler now accepts an optional argument
that determines whether the handler is called prior to or after an
event is sent.
|
|
|
|
Old code for default output device completely removed.
|
|
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.
|
|
(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.
|
|
Replace hardcoded initial CC values with values from device property API.
|
|
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.
|
|
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.
|
|
Removed all references to ICallback in official plugins.
New flag field in SEvent.
Further type usage corrections.
|
|
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.
callback_t now uses std::function, deprecating ICallback.
Not recommended for daily usage, or even testing: the code refactor
is still a work in progress.
|
|
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.
Temporary fix for switching all channels of an external synth to mono
mode unintentionally.
And the most important one of them all: simple visualization!
I'm ditching the 0.8.6 cycle because there was no clear goal for that
release now (as the OPL3 emulation is now delayed indefinitely).
In contrast, the 0.8.7 release has a pretty good-looking feature set
mainly focused on improving support for external synthesizers:
- Per-device initialization profile.
- Instrument mapping files.
- And a simple visualization ~~for showing off your external synthesizers~~.
As always no ETA is set, nor will I promise the implementaion of all
the features listed above.
|
|
|
|
Removed High DPI handling code. Good luck to Windows users out there.
Skulpture style: dials are no longer blurred if scaled.
|
|
Further ensure CC#8 is initialized correctly.
Minor string table update.
|
|
Moved to mxe for Windows build.
Fixed default value for CC#8.
|
|
Also the visualization should now sync better.
|
|
Fixed playlist dialog behaving oddly.
|
|
Details in the changelog.
|
|
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.
|
|
Fixed the default output device option.
Seeking now restores CC values correctly.
|
|
|
|
Enforces single fluidsynth instance.
Documentation update.
Minor changes to make lite version work.
|
|
|
|
|
|
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.
|