Bugfix II: prevent leaked state from preceding connection attempt
Bugfix I: prevent empty bank file from being saved
To add some background information: we pick up the MXML library with the help of package-config. The legacy versions of MXML v1 .. v3 used to ship a file 'mxml.pc' while the new version ships a file 'mxml4.pc'. The Yoshimi build attempts to use the v4 first, and then falls back to the legacy case. The appropriate code variant is then compiled in and the Yoshimi executable is linked against that version of MXML. In many distributions, both library variants can be installed at the same time, but only...
MXML: implement version switch and new option handling
MXML: reorganise adaptation layer XMLtree::Node
MXML: introduce constants to level API differences.
MXML: Analyse situation and fix handling of text nodes
We could confirm that this problem is related to using Wayland. Further technical details are still actively investigated. For now, there is a simple workaround * open a terminal * start yoshimi by typing this commanline FLTK_BACKEND=x11 yoshimi
Hi Derek, first I'd like to thank you for providing this Report with a crash file. This allowed us to extract some helpful information as to where the crash happens. Your stacktrace indicates the following: - Yoshimi was running with UI - The Desktop runs under Wayland - the Crash happens when the UI toolkit (FLTK) draws a widget
Config: keep stored setting separate for enabling GUI / CLI
Config/fix: always store config uncompressed
Bugfix: possible loss of instrument-changed state
Bugfix: MIDI-Learn command re-coding on load broken
MXML: clean-up and documentation
MXML: reimplement version compatibility checks
MXML: switch core code -- further storage
MXML: switch core code -- UnifiedPresets
MXML: switch core code -- SynthEngine
MXML: switch core code -- Config
MXML: get rid of all stateful internals
MXML: implement simplified render and save
MXML: consolidate loading and parsing of existing XML
MXML: devise new scheme to handle metadata consistently
MXML: relocate all data access to XMLtree
MXML: reorder element and data access
MXML: reorder creation of root element
MXML: setup link between XMLtree and MXML
MXML: add a test setup to support analysis and refactoring
MXML: Start rework of XML handling code for MXML-4 compatibility
Framework: introduce a Logger interface -- delegating to Config
Config-LV2: use the same patch-state handling for LV2 and standalone
Config-LV2: keep instance config for LV2 apart from standalone instances
Rework UI start: root connection no longer necessary
Rework UI start: trigger bootstrap message directly
Instances and GuiConnect: Documentation
CMake: handle assertions properly; new option to activate diagnostics
Refactoring: Effects
Refactoring: Parameters
Refactoring: InterChange
Refactoring: SynthEngine
Refactoring: Config
Code clean-up and fixes
Sys/Insert-Effect-UI: allow to enable a slot directly by picking a type
EQ-Display: fix hysteresis in visible response curve
Instances: integrate LV2 with the InstanceManager
Instances: SplashScreen component
Instances: Testsuite sound generation now invoked through InstanceManager
Instances: change the instance registry to be keyed by ID
Instances: use primary config as baseline for new instances
Instances: introduce a dedicated post-boot refresh for the GUI
Instances: switch main to use the new InstanceManager
Instances: shutdown, error handling and booting of primary synth
Instances: handle request for new instance via command system
Instances: integrate handling of Synth-ID with the lifecycle
Instances: activate post-boot-hook via command system
Instances: draft a new message-handling duty cycle
Instances: integrate start-up and shut-down sequence into the InstanceManager
Instances: rework opening of IO/MusicClient
Instances: modernise MusicIO
Instances: move CmdOption parsing into the InstanceManager
Instances: draft how to handle instance start
Instances: use a central InstanceManager and registry
[guiconnect] - adapt the LV2 plugin to employ the new UI-start scheme
[guiconnect] - switch EQ graph to a LUT delivered by push-update
[guiconnect] - prepare for push-updates of EQ graph
[guiconnect] - remove UI state regarding effect number and type
[guiconnect] - provide additional effect control params via DTO
[guiconnect] - switch complete EffUI from direct-access to using DTO data
[guiconnect] - extend push-update to handle part-effects as well
[guiconnect] - identify situations where to trigger a push update
[guiconnect] - wire new connections for the Effect UI
[guiconnect] - optionally install a callback to be activated on-push
[guiconnect] - switch GUI start to bootstrap through GuiDataExchange
[guiconnect] - integrate the new communication hub
[guiconnect] - demonstrate bootstrap of new connection
[guiconnect] - reorganise to allow /bootstrapping/ into a connection
[guiconnect] - simple locking with a mutex
[guiconnect] - refactoring to prepare for synchronisation
[guiconnect] - basic protocol implementation complete (test running)
[guiconnect] - define notification message via CommandBlock system
[guiconnect] - implement registry of subscribers
[guiconnect] - Subscription and un-subscription
[guiconnect] - connect publish front-end to data storage
[guiconnect] - type based hash and hash_combine
[guiconnect] - implement circular data exchange buffer
[guiconnect] - decide upon core elements of the protocol implementation
[guiconnect] - decide where to handle the typed context
[guiconnect] - draft a communication interaction
[guiconnect] - simplistic test setup
[guiconnect] - Transfer of data into the GUI - setup for prototyping
resolve possible memory leaks using XMLwrapper by switching to unique_ptr
ensure defaults() before loading XML
C++17: can replace workaround with std::optional
Review: minor improvements to evelope handling
[midilearn] mark all the new parameters as learnable
[dev-doc] extend the development notes for "padthread"
[doc/UI] add explanatory mouse-over to relevant PadSynth parameters
[doc] update screenshots
[doc] complete PAD documentation with new functionality
[doc] collect info and rework section on PADSynth parameters