Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

V1.0 tasks #230

Merged
merged 224 commits into from
Mar 23, 2023
Merged

V1.0 tasks #230

merged 224 commits into from
Mar 23, 2023

Conversation

firthm01
Copy link
Contributor

@firthm01 firthm01 commented Dec 29, 2022

Other work:

  • Also includes optimisations (reducing lock lengths, only running metering calcs when needed) and bus-width compatibility fixes.
  • Includes fixes for some render dialog controls re-enabling.
  • Includes fix for updated text in render dialog in recent versions of REAPER.

firthm01 and others added 30 commits November 2, 2022 12:41
Previously the serialiser created more object than necessary in barebones profile mode as the setImportance method would override not set with a value of 10, but the equality check did not do this. This fix also fixes the serialiser tests.
on linux, this depends on other static initialisers having been ran
(specifically the "text" constant in the XML parser), and they may end
up running in the wrong order

(the main change is in fonts.hpp; the rest is search/replace)
this was checked in the monitoring plugin, but not the scene plugin
this issues warnings about missing plist files, but works

according to the VST3 specs the .vst3 should actually be a directory
structure containing the library, but this works for now
this matches what the official JUCE cmake scripts do

without this, all plugins end up sharing one message thread, which might
be fine one some platforms, but on linux the VST wrapper assumes that
there is a message thread for each plugin, and this ultimately causes
callOnMessageThread callbacks to not get called unless the plugin window
is open

(specifically, it does something like using the run state of the
messaging thread to decide whether to register with the VST event loop
-- it's quite complicated and unclear)

note that plugins are dlopened with RTLD_LOCAL, which you might think
would stop this kind of sharing, but no -- the message thread is created
with SharedResourcePointer, which is a template class and so the static
variable lives in an inline function, which gets marked as "unique
global", which still get merged

it might be sensible to add this to the reaper_adm plugin and other
libraries we use -- they mostly use static initialisation for caching so
aren't affected by this, but it could cause issues when mixing plugins
of different versions for debugging, for example
the user VST path does not end with "/VST3", so merge that into the
prefix

perhaps it would be better to make the full install dir somewhere
centrally so that the VST3 part could be left out of the prefix on other
platforms?
firthm01 added 26 commits March 16, 2023 01:19
(tested in isolation but not in EPS code)
Uses the name string - this could be edited by the user in the plug-in selection window, but that breaks import due to TrackFX_AddByName not working either, so I don't think we need to try support that.
Means we can tidy up some code that used to call TrackFX_GetFXName
Quite a common use and prevents parsing state chunk repeatedly. Also made TrackFX_GetActualFXNameClean a more generic CleanFXName func.
Easier for testing parsing funcs
@firthm01 firthm01 marked this pull request as ready for review March 23, 2023 13:29
@firthm01 firthm01 merged commit c13b714 into main Mar 23, 2023
@firthm01 firthm01 deleted the v1.0-tasks branch March 23, 2023 18:55
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants