atsushieno / augene-ng

MML + MIDI + Tracktion Engine XML manipulation tool for real production
GNU General Public License v3.0
9 stars 2 forks source link

loading sampler plugins can take too long time to fully reload #2

Closed atsushieno closed 2 years ago

atsushieno commented 3 years ago

(based on https://github.com/atsushieno/augene/issues/8)

On augene composition workflow, it has to load the entire tracktionedit file every time, and loading a song with sfz using sfizz can take quite long time. Even a single track with UI Standard Guitar along with a few effectors takes 3-4 seconds to load at augene-player. This cannot be waitable for even 10 tracks.

We would need certain shortcuts to avoid full reloading, like hot reloading audio plugin settings parts and compiling MIDI parts respectively. To achieve that however, the entire compilation tool should migrate from JVM augene-editor to C++ augene-player (which is not going to be just a player anymore then).

In the older .NET version it was simply an annoying idea, but now that augene-project is Kotlin MPP, it is possible that we would be able to build it for native. Current blocker is though google/ksp (used by kotracktive-project) that breaks at Kotlin Native builds (issue #5), so it is somewhat future task to achieve.

atsushieno commented 2 years ago

Hot reloading is now implemented in augene-player (using tracktion_engine API). We don't have to resort to augene-project native implementation. Hot Reload is incomplete by nature and only imports Clips and Automation Tracks, but now that we have a toggle switch that user can disable when there is any problem with it.