Commit Graph

1644 Commits

Author SHA1 Message Date
Robbert van der Helm e6ec8819cb [yabridgectl] Use relative paths in verbose output
This should make the output look much less cluttered since most of the
output would consist of the same path prefix being repeated over and
over again.

The plugin location now also always ends with a trailing slash for
consistency's sake. I don't think Rust's Path has a way to normalize the
paths without also resolving symlinks.
2021-02-26 14:35:47 +01:00
Robbert van der Helm 9483c11ee0 [yabridgectl] Reword not yet installed status
The red `not installed` was causing some confusion.
2021-02-26 14:11:46 +01:00
Robbert van der Helm 2cf5f2dfb9 Fix missing timestamps since yabridge 3.0.0 2021-02-24 21:07:01 +01:00
Robbert van der Helm a6ac958bfb Add a note on Spitfire plugins and Wine prefixes
I was pretty sure something like this was already in there, apparently
not.
2021-02-19 11:33:48 +01:00
Robbert van der Helm 7f0d6c80ab Reword changelog 2021-02-15 21:24:29 +01:00
Robbert van der Helm dc7c988623 Fix segfault in REAPER due to new vendor extension
This `effVendorSpecific` call would pass a non-zero non-pointer value to
the pointer argument, which would then of course result in segfaults.
2021-02-15 21:15:22 +01:00
Robbert van der Helm 39da1b1e1c Add missing whitespace in VST2 debug logs 2021-02-15 20:51:45 +01:00
Robbert van der Helm c29bc59059 Hack around a regression in Wine 6.2
This would otherwise prevent building with Wine 6.2.
2021-02-15 12:13:42 +01:00
Robbert van der Helm 8c2594f902 Bump to version 3.0.0 3.0.0 2021-02-14 14:36:01 +01:00
Robbert van der Helm 18c00ddde7 Remove mentions of CMake
I don't think we'll be able to use a non-forked version of the VST3 SDK
any time soon.
2021-02-14 14:35:33 +01:00
Robbert van der Helm 16b00bacde Update screenshot with VST3-only plugins
Since, well, we can handle VST3 plugins now! This also subtly shows off
the ability for VST3 plugins to use context data such as the track's
name.
2021-02-14 14:33:09 +01:00
Robbert van der Helm db6bab03f6 Remove mentions of VST3 support being experimental 2021-02-14 14:08:52 +01:00
Robbert van der Helm 260aba393c Fix alignment in initialization message 2021-02-14 13:50:55 +01:00
Robbert van der Helm f07503b9b6 Print the matched config file section
To make it more obvious where settings are being set from.
2021-02-14 13:50:53 +01:00
Robbert van der Helm 546882a281 Bundle yabridgectl with yabridge in next release
Setting up VST3 plugins without yabridgectl is a lot of work and quite
error prone, so it seems like a good idea to now modify the CI build
artifacts to merge the yabridgectl binary in with the regular archives.

Those also resolves #67.
2021-02-14 13:20:54 +01:00
Robbert van der Helm 2469c207de Update the list of tested DAWs 2021-02-14 13:12:25 +01:00
Robbert van der Helm 1090b8a6c0 Rewrite parts of the changelog 2021-02-14 12:06:26 +01:00
Robbert van der Helm 4f33d2b30b Mention VST3 compatibility list in the changelog 2021-02-14 11:32:13 +01:00
Robbert van der Helm 6165e46ec8 Mention that VST3 modules might not be unloaded
In certain hosts.
2021-02-14 11:28:45 +01:00
Robbert van der Helm 9f756b4881 Rewrite architecture document ToC 2021-02-14 00:54:29 +01:00
Robbert van der Helm c9fbd0627f Rewrite the architecture document for VST3 support
This now also goes more in depth on the more interesting parts of
yabridge's implementation while skimming over lesser useful technical
bits.
2021-02-14 00:48:15 +01:00
Robbert van der Helm 44cb2ffbaf Update the Qtractor entry
This patch fixes object leaks, and it should make VST3 plugins that
previously wouldn't work run properly in Qtractor.
2021-02-13 20:42:54 +01:00
Robbert van der Helm 78a28a679b Prevent nuking socket base dir if not temporary
If `yabridge-host.exe` were somehow to be run with a socket base
directory that's not inside of `$XDG_RUNTIME_DIR`/`/tmp`, then we'll now
warn instead of removing that directory. This should not be necessary,
but in case someone wants to write a wrapper around
`yabridge-host.exe.so` us using a custom `$WINELOADER` then this could
save a lot of headaches.
2021-02-13 18:09:36 +01:00
Robbert van der Helm 2ea3f52632 Fix double timestamps in Wine STDERR logger 2021-02-13 17:42:30 +01:00
Robbert van der Helm 0ef15fc911 Add human readable name for effGetTailSize opcode 2021-02-13 17:34:51 +01:00
Robbert van der Helm e57c642cfe Also log IBStream metadata keys 2021-02-13 17:29:35 +01:00
Robbert van der Helm 907925d660 Log process context contents in IInfoListener::setChannelContextInfos 2021-02-13 16:40:24 +01:00
Robbert van der Helm 4f8eaaaa75 Refactor plugin factories into Vst3*Proxy format
Now every proxy object that's directly created by the host or plugin
shares the same structure.
2021-02-13 15:42:05 +01:00
Robbert van der Helm 4e4ed3a6b4 Don't serialize input output info for IComponent::getRoutingInfo
Yes, input output info.
2021-02-12 19:24:33 +01:00
Robbert van der Helm 67091bc13c Don't serialize input info for IComponent::getBusInfo 2021-02-12 19:12:49 +01:00
Robbert van der Helm e62bd603f9 Don't serialize input arrangement for IAudioProcessor::getBusArrangement 2021-02-12 19:08:51 +01:00
Robbert van der Helm d887a2905c Add comment about updated size in CheckSizeConstraintResponse 2021-02-12 19:03:48 +01:00
Robbert van der Helm 2020acfec1 Don't serialize input info for IEditController::getParameterInfo 2021-02-12 19:02:27 +01:00
Robbert van der Helm 5978247a0b Don't serialize input size for IPlugView::GetSize 2021-02-12 18:58:33 +01:00
Robbert van der Helm 3e24610d81 Remove todo about moving find_vst_host
Given the other functions in this file that mostly deal with locating
files and modifying the environment it makes sense to also have this
here.
2021-02-12 18:43:31 +01:00
Robbert van der Helm 0642e5d08e Remove todo about STDIO capture and Wine output
This seems to actually work in some cases, but in the instances where it
does not then there would also not be a way around it.
2021-02-12 18:36:16 +01:00
Robbert van der Helm a1bb522ea0 Move piping stream lines to the log to common 2021-02-12 18:35:07 +01:00
Robbert van der Helm dd0eb02970 Disable loading 32-bit VST3 plugins
There is some sort of memory corruption going on and these plugins
usually segfault on the audio thread. I'm clueless as to what could be
causing this (I wouldn't be surprised if this is caused by an
interaction between the VST3 SDK and Wine's Windows.h implementation),
but it's probably best to disable loading 32-bit VST3 plugins completely
until this has been fixed.
2021-02-11 13:55:44 +01:00
Robbert van der Helm cc5480a224 Fix loading 32-bit VST3 plugins
This is why GHC warns on shadowing by default. Probably.
2021-02-10 21:03:07 +01:00
Robbert van der Helm 433d35109a Mention mounting options for NI .iso files
Some Kontakt and Reaktor installation .iso files contain hidden
directories and won't install unless you unhide these first.
2021-02-10 19:24:28 +01:00
Robbert van der Helm 3fbffa532d Move Win32 event handling to one place
Or technically, two, since the group bridge also does the same loop. We
no longer need special handling for VST2 and VST3 plugins, so we can
simplify things a bit here.
2021-02-09 23:45:33 +01:00
Robbert van der Helm a91fad2217 Clean up interface checks in VST3 plugin factory
Even though the interface ID is passed as an FIDString and there is a
function to compare FIDStrings obviously doesn't mean that you're
supposed to use them! Duh.
2021-02-09 23:40:55 +01:00
Robbert van der Helm 10b01b5140 Update comments on the VST3 info caches 2021-02-09 23:19:17 +01:00
Robbert van der Helm 2d62347393 Update old comments 2021-02-09 23:19:13 +01:00
Robbert van der Helm c1b23b90a2 [yabridgectl] Expand libyabridge* auto detection
There are no yabridge packages for Debian and Fedora based distros, but
we'll now also search through the paths used there.
2021-02-06 21:09:30 +01:00
Robbert van der Helm 391206eea8 Work around incorrect wchar_t text serialization
`std::char_traits<wchar_t>::length()` would return the wrong length for
a wide string under Wine, and thus also for `String128`. This would
cause parts of the strings to get cut off. As a workaround we'll just
serialize the entire container including all null bytes at the end.
2021-02-02 15:43:53 +01:00
Robbert van der Helm 81d401f06a Add mutexes for the VST3 data caches
Since the restart will always be called from another thread, and when a
plugin asks for a restart during initialization this can quickly lead to
issues.
2021-01-30 23:26:57 +01:00
Robbert van der Helm 27370ab54b Remove debug prints 2021-01-30 23:11:25 +01:00
Robbert van der Helm b5dd806b2d Cache VST3 parameter information
This is in some cases needed to get decent performance in REAPER, as
REAPER seems to query this information (which cannot change without the
plugin requesting a restart) four times per second.
2021-01-30 22:24:05 +01:00
Robbert van der Helm 8bba5d8773 Mention that REAPER's bridges should be disabled
This can absolutely destroy performance when using VST3 plugins. REAPER
also does something similar with bus information from the audio
thread (for which we had to build in a caching layer), but with these
plugin bridges a VST3 plugin will quickly use ten times as much CPU time
as it should be using.
2021-01-30 19:49:05 +01:00