lucianoiam / castello

A small CLAP/VST reverb plugin based on Csound reverbsc
GNU General Public License v3.0
22 stars 1 forks source link

Empty UI after building from source code in VST2 and VST3 crash #1

Closed Tolsi closed 2 years ago

Tolsi commented 2 years ago

Hi!

After assembly on Mac OS X 12.1 (with M1), the x64 VST2 plugin works in the Ableton Live 11, but it has an empty interface window (just white). x64 VST3 plugin crash the Ableton Live 11, crash log lines:

dpf_factory::create_instance => 0x16c461518 {dpf_tuid_class} {v3_component} 0x30f6aca88
dpf_component::unref                   => 0x6000037ec510 | refcount is zero, deleting everything now!

My build log:

> git clone git@github.com:lucianoiam/castello.git
...
> cd castello/
> git submodule update --init
...
Submodule path 'hiphop': checked out 'ffe8aef646b6241a0e509e6fb4de0cb1181e576d'
> arch -x86_64 make
Подмодуль «dpf» (https://github.com/DISTRHO/DPF) зарегистрирован по пути «hiphop/dpf»
Клонирование в «/Users/tolsi/Documents/code/castello/hiphop/dpf»…
Подмодуль «dgl/src/pugl-upstream» (https://github.com/DISTRHO/pugl.git) зарегистрирован по пути «hiphop/dpf/dgl/src/pugl-upstream»
Клонирование в «/Users/tolsi/Documents/code/castello/hiphop/dpf/dgl/src/pugl-upstream»…
Предыдущая позиция HEAD была a5952348 Fix MSVC build
Переключено на новую ветку «develop»
hiphop : hiphop
DPF    : hiphop/dpf @ develop
Build  : build
Target : bin
Compiling src/CastelloReverbPlugin.cpp
src/CastelloReverbPlugin.cpp:92:27: warning: 'kParameterIsAutomable' is deprecated [-Wdeprecated-declarations]
        parameter.hints = kParameterIsAutomable;
                          ^~~~~~~~~~~~~~~~~~~~~
                          kParameterIsAutomatable
hiphop/dpf/distrho/DistrhoPlugin.hpp:95:1: note: 'kParameterIsAutomable' has been explicitly marked deprecated here
DISTRHO_DEPRECATED_BY("kParameterIsAutomatable")
^
hiphop/dpf/distrho/src/DistrhoDefines.h:85:54: note: expanded from macro 'DISTRHO_DEPRECATED_BY'
# define DISTRHO_DEPRECATED_BY(other) __attribute__((deprecated("", other)))
                                                     ^
1 warning generated.
Compiling src/dsp/base.c
Compiling src/dsp/revsc.c
Compiling DistrhoPluginMain.cpp (LV2)
Creating LV2 plugin library for CastelloReverb
Compiling src/CastelloReverbUI.cpp
In file included from src/CastelloReverbUI.cpp:19:
In file included from hiphop/src/WebHostUI.hpp:31:
In file included from hiphop/src/macos/MacWebHostUI.hpp:22:
In file included from hiphop/src/AbstractWebHostUI.hpp:26:
In file included from hiphop/dpf/distrho/DistrhoUI.hpp:35:
hiphop/dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling hiphop/src/AbstractWebHostUI.cpp
In file included from hiphop/src/AbstractWebHostUI.cpp:19:
In file included from hiphop/src/AbstractWebHostUI.hpp:26:
In file included from hiphop/dpf/distrho/DistrhoUI.hpp:35:
hiphop/dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling hiphop/src/AbstractWebView.cpp
Compiling hiphop/src/JsValue.cpp
Compiling hiphop/src/macos/MacPath.mm
Compiling hiphop/src/macos/MacWebHostUI.mm
In file included from hiphop/src/macos/MacWebHostUI.mm:21:
In file included from hiphop/src/macos/MacWebHostUI.hpp:22:
In file included from hiphop/src/AbstractWebHostUI.hpp:26:
In file included from hiphop/dpf/distrho/DistrhoUI.hpp:35:
hiphop/dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling hiphop/src/macos/CocoaWebView.mm
Compiling DistrhoUI_macOS.mm (CastelloReverb)
Compiling DistrhoUIMain.cpp (LV2)
In file included from hiphop/dpf/distrho/DistrhoUIMain.cpp:17:
In file included from hiphop/dpf/distrho/src/DistrhoUI.cpp:54:
In file included from hiphop/dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from hiphop/dpf/distrho/src/../DistrhoUI.hpp:35:
hiphop/dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating LV2 plugin UI for CastelloReverb
Compiling DistrhoPluginMain.cpp (VST2)
In file included from hiphop/dpf/distrho/DistrhoPluginMain.cpp:29:
In file included from hiphop/dpf/distrho/src/DistrhoPluginVST2.cpp:32:
In file included from hiphop/dpf/distrho/src/DistrhoUIInternal.hpp:20:
In file included from hiphop/dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from hiphop/dpf/distrho/src/../DistrhoUI.hpp:35:
hiphop/dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling DistrhoUIMain.cpp (VST2)
In file included from hiphop/dpf/distrho/DistrhoUIMain.cpp:17:
In file included from hiphop/dpf/distrho/src/DistrhoUI.cpp:54:
In file included from hiphop/dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from hiphop/dpf/distrho/src/../DistrhoUI.hpp:35:
hiphop/dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating VST2 plugin for CastelloReverb
Compiling DistrhoPluginMain.cpp (VST3)
Compiling DistrhoUIMain.cpp (VST3)
In file included from hiphop/dpf/distrho/DistrhoUIMain.cpp:17:
In file included from hiphop/dpf/distrho/src/DistrhoUI.cpp:54:
In file included from hiphop/dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from hiphop/dpf/distrho/src/../DistrhoUI.hpp:35:
hiphop/dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating VST3 plugin for CastelloReverb
Copying web UI files
/Library/Developer/CommandLineTools/usr/bin/make -C hiphop/dpf/utils/lv2-ttl-generator
cc lv2_ttl_generator.c -Wall -Wextra -pipe -MD -MP -fPIC -DPIC -DNDEBUG -O3 -ffast-math -fdata-sections -ffunction-sections -mtune=generic -msse -msse2 -mfpmath=sse -fvisibility=hidden -std=gnu99  -o ../lv2_ttl_generator -fdata-sections -ffunction-sections -Wl,-dead_strip -Wl,-dead_strip_dylibs -Wl,-x
Generate ttl data for 'CastelloReverb_dsp', basename: 'CastelloReverb_dsp'
Writing manifest.ttl... done!
Writing CastelloReverb_dsp.ttl... done!
Writing CastelloReverb_ui.ttl... done!

What can I fix?

ps I am very inspired by the ability to develop VSTs with JS UI, hopefully, in the future, this will become generally accepted! :)

lucianoiam commented 2 years ago

Hi, thanks for the report. This plugin depends on this library which is actually a wrapper around DPF that adds plugin-environment-friendly web views and JS bridge for a subset of the DPF API. The underlying native plugin formats support (including VST3) comes from DPF and last time I checked VST3 was work in progress, don't expect it to work yet.

I would start by testing if any of DPF's own VST3 examples work for you. If they do work then it is worth revisiting the web wrapper (haven't touched it for a while). If not, please file an issue on DPF's GitHub based on one of its examples.

lucianoiam commented 2 years ago

Also regarding the VST2 it is probably related to M1... unfortunately I don't have access to such kind of computer.

Tolsi commented 2 years ago

Got it about VST3... but I want VST2 anyway. I build it for x86, not ARM, there shouldn't be any difference between M1 and Intel CPU. Most of my old VSTs work great on M1.
I tried to build hiphop and its examples, there's UI only in d_astone, d_jitdrum and d_webgain works with white windows. All VST3 plugins crash the same way. Ok, how can I debug it or make something useful to solve this (UI work)?

Its build log:

> arch -x86_64 make
hiphop : ../..
DPF    : ../../dpf @ develop
Build  : ../../build/jitdrum/1/2
Target : ../../bin
Compiling JitDrumExamplePlugin.cpp
Compiling ../../src/WasmHostPlugin.cpp
Compiling ../../src/WasmEngine.cpp
Compiling ../../src/macos/MacPath.mm
Compiling JitDrumExampleUI.cpp
In file included from JitDrumExampleUI.cpp:19:
In file included from ./JitDrumExampleUI.hpp:22:
In file included from ../../src/WebHostUI.hpp:31:
In file included from ../../src/macos/MacWebHostUI.hpp:22:
In file included from ../../src/AbstractWebHostUI.hpp:26:
In file included from ../../dpf/distrho/DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling ../../src/AbstractWebHostUI.cpp
In file included from ../../src/AbstractWebHostUI.cpp:19:
In file included from ../../src/AbstractWebHostUI.hpp:26:
In file included from ../../dpf/distrho/DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling ../../src/AbstractWebView.cpp
Compiling ../../src/JsValue.cpp
Compiling ../../src/macos/MacWebHostUI.mm
In file included from ../../src/macos/MacWebHostUI.mm:21:
In file included from ../../src/macos/MacWebHostUI.hpp:22:
In file included from ../../src/AbstractWebHostUI.hpp:26:
In file included from ../../dpf/distrho/DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling ../../src/macos/CocoaWebView.mm
Compiling DistrhoUI_macOS.mm (d_jitdrum)
Compiling DistrhoPluginMain.cpp (JACK)
In file included from ../../dpf/distrho/DistrhoPluginMain.cpp:22:
In file included from ../../dpf/distrho/src/DistrhoPluginJACK.cpp:20:
In file included from ../../dpf/distrho/src/DistrhoUIInternal.hpp:20:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling DistrhoUIMain.cpp (JACK)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating JACK standalone for d_jitdrum
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Compiling DistrhoPluginMain.cpp (LV2)
Creating LV2 plugin library for d_jitdrum
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Compiling DistrhoUIMain.cpp (LV2)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating LV2 plugin UI for d_jitdrum
Compiling DistrhoPluginMain.cpp (VST2)
In file included from ../../dpf/distrho/DistrhoPluginMain.cpp:29:
In file included from ../../dpf/distrho/src/DistrhoPluginVST2.cpp:32:
In file included from ../../dpf/distrho/src/DistrhoUIInternal.hpp:20:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling DistrhoUIMain.cpp (VST2)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating VST2 plugin for d_jitdrum
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Compiling DistrhoPluginMain.cpp (VST3)
Compiling DistrhoUIMain.cpp (VST3)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating VST3 plugin for d_jitdrum
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Copying WebAssembly DSP binary
Copying web UI files
Generate ttl data for 'd_jitdrum_dsp', basename: 'd_jitdrum_dsp'
Writing manifest.ttl... done!
Writing d_jitdrum_dsp.ttl... done!
Writing d_jitdrum_ui.ttl... done!
hiphop : ../..
DPF    : ../../dpf @ develop
Build  : ../../build/webgain/1/2
Target : ../../bin
Compiling WebGainExamplePlugin.cpp
WebGainExamplePlugin.cpp:39:23: warning: 'kParameterIsAutomable' is deprecated [-Wdeprecated-declarations]
    parameter.hints = kParameterIsAutomable;
                      ^~~~~~~~~~~~~~~~~~~~~
                      kParameterIsAutomatable
../../dpf/distrho/DistrhoPlugin.hpp:95:1: note: 'kParameterIsAutomable' has been explicitly marked deprecated here
DISTRHO_DEPRECATED_BY("kParameterIsAutomatable")
^
../../dpf/distrho/src/DistrhoDefines.h:85:54: note: expanded from macro 'DISTRHO_DEPRECATED_BY'
# define DISTRHO_DEPRECATED_BY(other) __attribute__((deprecated("", other)))
                                                     ^
1 warning generated.
Compiling WebGainExampleUI.cpp
In file included from WebGainExampleUI.cpp:19:
In file included from ./WebGainExampleUI.hpp:22:
In file included from ../../src/WebHostUI.hpp:31:
In file included from ../../src/macos/MacWebHostUI.hpp:22:
In file included from ../../src/AbstractWebHostUI.hpp:26:
In file included from ../../dpf/distrho/DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling ../../src/AbstractWebHostUI.cpp
In file included from ../../src/AbstractWebHostUI.cpp:19:
In file included from ../../src/AbstractWebHostUI.hpp:26:
In file included from ../../dpf/distrho/DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling ../../src/AbstractWebView.cpp
Compiling ../../src/JsValue.cpp
Compiling ../../src/macos/MacPath.mm
Compiling ../../src/macos/MacWebHostUI.mm
In file included from ../../src/macos/MacWebHostUI.mm:21:
In file included from ../../src/macos/MacWebHostUI.hpp:22:
In file included from ../../src/AbstractWebHostUI.hpp:26:
In file included from ../../dpf/distrho/DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling ../../src/macos/CocoaWebView.mm
Compiling DistrhoUI_macOS.mm (d_webgain)
Compiling DistrhoPluginMain.cpp (JACK)
In file included from ../../dpf/distrho/DistrhoPluginMain.cpp:22:
In file included from ../../dpf/distrho/src/DistrhoPluginJACK.cpp:20:
In file included from ../../dpf/distrho/src/DistrhoUIInternal.hpp:20:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling DistrhoUIMain.cpp (JACK)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating JACK standalone for d_webgain
Compiling DistrhoPluginMain.cpp (LV2)
Creating LV2 plugin library for d_webgain
Compiling DistrhoUIMain.cpp (LV2)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating LV2 plugin UI for d_webgain
Compiling DistrhoPluginMain.cpp (VST2)
In file included from ../../dpf/distrho/DistrhoPluginMain.cpp:29:
In file included from ../../dpf/distrho/src/DistrhoPluginVST2.cpp:32:
In file included from ../../dpf/distrho/src/DistrhoUIInternal.hpp:20:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Compiling DistrhoUIMain.cpp (VST2)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating VST2 plugin for d_webgain
Compiling DistrhoPluginMain.cpp (VST3)
Compiling DistrhoUIMain.cpp (VST3)
In file included from ../../dpf/distrho/DistrhoUIMain.cpp:17:
In file included from ../../dpf/distrho/src/DistrhoUI.cpp:54:
In file included from ../../dpf/distrho/src/DistrhoUIPrivateData.hpp:20:
In file included from ../../dpf/distrho/src/../DistrhoUI.hpp:35:
../../dpf/distrho/extra/ExternalWindow.hpp:475:19: warning: 'vfork' is deprecated: Use posix_spawn or fork [-Wdeprecated-declarations]
            pid = vfork();
                  ^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/unistd.h:604:1: note: 'vfork' has been explicitly marked deprecated here
__deprecated_msg("Use posix_spawn or fork")
^
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX.sdk/usr/include/sys/cdefs.h:208:48: note: expanded from macro '__deprecated_msg'
        #define __deprecated_msg(_msg) __attribute__((__deprecated__(_msg)))
                                                      ^
1 warning generated.
Creating VST3 plugin for d_webgain
Copying web UI files
Generate ttl data for 'd_webgain_dsp', basename: 'd_webgain_dsp'
Writing manifest.ttl... done!
Writing d_webgain_dsp.ttl... done!
Writing d_webgain_ui.ttl... done!
Generate ttl data for 'd_jitdrum_dsp', basename: 'd_jitdrum_dsp'
Writing manifest.ttl... done!
Writing d_jitdrum_dsp.ttl... done!
Writing d_jitdrum_ui.ttl... done!
hiphop : ../..
DPF    : ../../dpf @ develop
Build  : ../../build/astone/1/2
Target : ../../bin
Compiling AsToneExamplePlugin.cpp
Compiling ../../src/WasmHostPlugin.cpp
Compiling ../../src/WasmEngine.cpp
Compiling ../../src/macos/MacPath.mm
Compiling AsToneExampleUI.cpp
Compiling Blendish.cpp
Blendish.cpp:105:12: warning: suggest braces around initialization of subobject [-Wmissing-braces]
        {{ 0.447, 0.447, 0.447, 1.0 }},
           ^~~~~~~~~~~~~~~~~~~~~~~~
           {                       }
Blendish.cpp:108:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.098,0.098,0.098,1 }}, // color_outline
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:109:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.098,0.098,0.098,1 }}, // color_item
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:110:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.6,0.6,0.6,1 }}, // color_inner
               ^~~~~~~~~~~~~
               {            }
Blendish.cpp:111:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.392,0.392,0.392,1 }}, // color_inner_selected
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:112:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT, // color_text
            ^~~~~~~~~~~~~~
./Blendish/blendish.h:1189:28: note: expanded from macro 'BND_COLOR_TEXT'
#define BND_COLOR_TEXT {{{ 0,0,0,1 }}}
                           ^~~~~~~
Blendish.cpp:113:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT_SELECTED, // color_text_selected
            ^~~~~~~~~~~~~~~~~~~~~~~
./Blendish/blendish.h:1191:37: note: expanded from macro 'BND_COLOR_TEXT_SELECTED'
#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}}
                                    ^~~~~~~
Blendish.cpp:119:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.098,0.098,0.098,1 }}, // color_outline
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:120:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.098,0.098,0.098,1 }}, // color_item
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:121:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.6,0.6,0.6,1 }}, // color_inner
               ^~~~~~~~~~~~~
               {            }
Blendish.cpp:122:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.392,0.392,0.392,1 }}, // color_inner_selected
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:123:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT, // color_text
            ^~~~~~~~~~~~~~
./Blendish/blendish.h:1189:28: note: expanded from macro 'BND_COLOR_TEXT'
#define BND_COLOR_TEXT {{{ 0,0,0,1 }}}
                           ^~~~~~~
Blendish.cpp:124:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT_SELECTED, // color_text_selected
            ^~~~~~~~~~~~~~~~~~~~~~~
./Blendish/blendish.h:1191:37: note: expanded from macro 'BND_COLOR_TEXT_SELECTED'
#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}}
                                    ^~~~~~~
Blendish.cpp:154:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0,0,0,1 }}, // color_outline
               ^~~~~~~
               {      }
Blendish.cpp:155:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 1,1,1,1 }}, // color_item
               ^~~~~~~
               {      }
Blendish.cpp:156:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.275,0.275,0.275,1 }}, // color_inner
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:157:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.275,0.275,0.275,1 }}, // color_inner_selected
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:158:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT, // color_text
            ^~~~~~~~~~~~~~
./Blendish/blendish.h:1189:28: note: expanded from macro 'BND_COLOR_TEXT'
#define BND_COLOR_TEXT {{{ 0,0,0,1 }}}
                           ^~~~~~~
Blendish.cpp:159:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT_SELECTED, // color_text_selected
            ^~~~~~~~~~~~~~~~~~~~~~~
./Blendish/blendish.h:1191:37: note: expanded from macro 'BND_COLOR_TEXT_SELECTED'
#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}}
                                    ^~~~~~~
Blendish.cpp:165:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0,0,0,1 }}, // color_outline
               ^~~~~~~
               {      }
Blendish.cpp:166:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 1,1,1,1 }}, // color_item
               ^~~~~~~
               {      }
Blendish.cpp:167:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.275,0.275,0.275,1 }}, // color_inner
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:168:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.275,0.275,0.275,1 }}, // color_inner_selected
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:169:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT_SELECTED, // color_text
            ^~~~~~~~~~~~~~~~~~~~~~~
./Blendish/blendish.h:1191:37: note: expanded from macro 'BND_COLOR_TEXT_SELECTED'
#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}}
                                    ^~~~~~~
Blendish.cpp:170:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.8,0.8,0.8,1 }}, // color_text_selected
               ^~~~~~~~~~~~~
               {            }
Blendish.cpp:176:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.098,0.098,0.098,1 }}, // color_outline
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:177:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.353, 0.353, 0.353,1 }}, // color_item
               ^~~~~~~~~~~~~~~~~~~~~
               {                    }
Blendish.cpp:178:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.706, 0.706, 0.706,1 }}, // color_inner
               ^~~~~~~~~~~~~~~~~~~~~
               {                    }
Blendish.cpp:179:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.6, 0.6, 0.6,1 }}, // color_inner_selected
               ^~~~~~~~~~~~~~~
               {              }
Blendish.cpp:180:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT, // color_text
            ^~~~~~~~~~~~~~
./Blendish/blendish.h:1189:28: note: expanded from macro 'BND_COLOR_TEXT'
#define BND_COLOR_TEXT {{{ 0,0,0,1 }}}
                           ^~~~~~~
Blendish.cpp:181:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT_SELECTED, // color_text_selected
            ^~~~~~~~~~~~~~~~~~~~~~~
./Blendish/blendish.h:1191:37: note: expanded from macro 'BND_COLOR_TEXT_SELECTED'
#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}}
                                    ^~~~~~~
Blendish.cpp:222:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0,0,0,1 }}, // color_outline
               ^~~~~~~
               {      }
Blendish.cpp:223:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.392,0.392,0.392,1 }}, // color_item
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:224:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.098, 0.098, 0.098, 0.902 }}, // color_inner
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
               {                         }
Blendish.cpp:225:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.176, 0.176, 0.176, 0.902 }}, // color_inner_selected
               ^~~~~~~~~~~~~~~~~~~~~~~~~~
               {                         }
Blendish.cpp:226:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.627, 0.627, 0.627, 1 }}, // color_text
               ^~~~~~~~~~~~~~~~~~~~~~
               {                     }
Blendish.cpp:227:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT_SELECTED, // color_text_selected
            ^~~~~~~~~~~~~~~~~~~~~~~
./Blendish/blendish.h:1191:37: note: expanded from macro 'BND_COLOR_TEXT_SELECTED'
#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}}
                                    ^~~~~~~
Blendish.cpp:233:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0,0,0,1 }}, // color_outline
               ^~~~~~~
               {      }
Blendish.cpp:234:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.675,0.675,0.675,0.502 }}, // color_item
               ^~~~~~~~~~~~~~~~~~~~~~~
               {                      }
Blendish.cpp:235:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0,0,0,0 }}, // color_inner
               ^~~~~~~
               {      }
Blendish.cpp:236:16: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            {{ 0.337,0.502,0.761,1 }}, // color_inner_selected
               ^~~~~~~~~~~~~~~~~~~
               {                  }
Blendish.cpp:237:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT_SELECTED, // color_text
            ^~~~~~~~~~~~~~~~~~~~~~~
./Blendish/blendish.h:1191:37: note: expanded from macro 'BND_COLOR_TEXT_SELECTED'
#define BND_COLOR_TEXT_SELECTED {{{ 1,1,1,1 }}}
                                    ^~~~~~~
Blendish.cpp:238:13: warning: suggest braces around initialization of subobject [-Wmissing-braces]
            BND_COLOR_TEXT, // color_text_selected
            ^~~~~~~~~~~~~~
./Blendish/blendish.h:1189:28: note: expanded from macro 'BND_COLOR_TEXT'
#define BND_COLOR_TEXT {{{ 0,0,0,1 }}}
                           ^~~~~~~
43 warnings generated.
Compiling DistrhoUI_macOS.mm (d_astone)
Compiling DistrhoPluginMain.cpp (JACK)
Compiling DistrhoUIMain.cpp (JACK)
Creating JACK standalone for d_astone
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Application.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(EventHandlers.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Geometry.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Color.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(NanoVG.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Widget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WindowPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Window.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Resources.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ApplicationPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(OpenGL.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ImageBase.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Compiling DistrhoPluginMain.cpp (LV2)
Creating LV2 plugin library for d_astone
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Compiling DistrhoUIMain.cpp (LV2)
Creating LV2 plugin UI for d_astone
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Application.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(EventHandlers.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Geometry.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Color.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(NanoVG.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Widget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Window.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WindowPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Resources.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ApplicationPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(OpenGL.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ImageBase.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
Compiling DistrhoPluginMain.cpp (VST2)
Compiling DistrhoUIMain.cpp (VST2)
Creating VST2 plugin for d_astone
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Application.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(EventHandlers.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Geometry.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Color.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(NanoVG.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Widget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WindowPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Window.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Resources.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ApplicationPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(OpenGL.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ImageBase.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Compiling DistrhoPluginMain.cpp (VST3)
Compiling DistrhoUIMain.cpp (VST3)
Creating VST3 plugin for d_astone
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ApplicationPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Application.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(TopLevelWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(EventHandlers.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Geometry.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Color.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(NanoVG.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Widget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WindowPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Window.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidget.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(Resources.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(OpenGL.cpp.opengl.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(WidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(SubWidgetPrivateData.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../dpf/build/libdgl-opengl.a(ImageBase.cpp.o)) was built for newer macOS version (12.0) than being linked (10.13)
ld: warning: object file (../../lib/wasmer/lib/libwasmer.a(handlers.o)) was built for newer macOS version (10.15) than being linked (10.13)
Copying WebAssembly DSP binary
Generate ttl data for 'd_webgain_dsp', basename: 'd_webgain_dsp'
Writing manifest.ttl... done!
Writing d_webgain_dsp.ttl... done!
Writing d_webgain_ui.ttl... done!
Generate ttl data for 'd_jitdrum_dsp', basename: 'd_jitdrum_dsp'
Writing manifest.ttl... done!
Writing d_jitdrum_dsp.ttl... done!
Writing d_jitdrum_ui.ttl... done!
Generate ttl data for 'd_astone_dsp', basename: 'd_astone_dsp'
Writing manifest.ttl... done!
Writing d_astone_dsp.ttl... done!
Writing d_astone_ui.ttl... done!
Tolsi commented 2 years ago

The UI in 1.0.1 release you built doesn't work either - just a white window.

lucianoiam commented 2 years ago

I see. d_astone implements a native view using DPF's graphics library, d_jitdrum, d_webgain and castello implement a web view. So if the later three are failing it is definitely the web view part and not DPF...

It has to be some M1+Rosetta thing. Mac specific code can be found here

I would add some debug messages especially in CocoaWebView.mm , then a host can be started from the command line to read such messages for example /Applications/REAPER.app/Contents/MacOS/REAPER . Assuming the plugin DSP works and there are no crashes, I'd start by checking if the AppKit / WebKit stuff is initializing as expected. The web view is initialized in CocoaWebView::CocoaWebView(). I'd love to do this on my own but the issue is just not reproducible on x86. Ping me if you need further debugging tips.

Another interesting test is to add console.log() calls in the plugin's JS code, they are redirected to stdout. That will tell us if the WKWebView is running at all or not...

lucianoiam commented 2 years ago

What happens when running the plugin in a x86 host? so everything goes through Rosetta (both host and plugin).

Tolsi commented 2 years ago

What happens when running the plugin in a x86 host? so everything goes through Rosetta (both host and plugin).

This's how I do this. You can't use ARM plugins with an x86 host.

Will try to debug it tomorrow.

Tolsi commented 2 years ago

Well, I found a bug: the white screen appears when your custom VST2 path contains spaces - we need to escape them, the webview can't find the html

But after this it has random crashes: 30% VST2 can start the first time and works fine (or crash), 100% it will crash DAW if it will be added to a track the second time. The same way the rest hiphop examples plugins work (except d_astone, it works stable before and after the patch).

Crash traces looks like:

Process 94123 stopped
* thread #1, name = 'MainThread', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x102238384)
    frame #0: 0x00007ff800af20dc libobjc.A.dylib`dataSegmentsContain(objc_class*) + 57
libobjc.A.dylib`dataSegmentsContain:
->  0x7ff800af20dc <+57>: movw   %dx, 0x4(%rcx)
    0x7ff800af20e0 <+61>: addq   $0x8, %rsp
    0x7ff800af20e4 <+65>: popq   %rbx
    0x7ff800af20e5 <+66>: popq   %rbp
Target 0: (Live) stopped.
(lldb) thread backtrace all
* thread #1, name = 'MainThread', queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=2, address=0x102238384)
  * frame #0: 0x00007ff800af20dc libobjc.A.dylib`dataSegmentsContain(objc_class*) + 57
    frame #1: 0x00007ff800aea6da libobjc.A.dylib`lookUpImpOrForward + 774
    frame #2: 0x00007ff800ae9e1b libobjc.A.dylib`_objc_msgSend_uncached + 75
    frame #3: 0x00007ff800af041f libobjc.A.dylib`AutoreleasePoolPage::releaseUntil(objc_object**) + 167
    frame #4: 0x00007ff800aed3a0 libobjc.A.dylib`objc_autoreleasePoolPop + 161
    frame #5: 0x00007ff800cdd680 CoreFoundation`_CFAutoreleasePoolPop + 22
    frame #6: 0x00007ff801a7af58 Foundation`-[NSAutoreleasePool drain] + 133
    frame #7: 0x00007ff8036605db AppKit`-[NSApplication run] + 636
    frame #8: 0x000000010190ef3a Live`___lldb_unnamed_symbol62533$$Live + 826
    frame #9: 0x0000000206ba24fe dyld`start + 462
  thread #3
    frame #0: 0x00007ff800c1a17a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff800c520d8 libsystem_pthread.dylib`_pthread_wqthread + 426
    frame #2: 0x00007ff800c50ffb libsystem_pthread.dylib`start_wqthread + 15
  thread #4, name = 'NetIoThread'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x0000000101606698 Live`___lldb_unnamed_symbol49568$$Live + 40
    frame #2: 0x00000001018de50c Live`void ableton::utility::detail::CallbackTypes<ANetIoThread, void, TUserData>::CallMemberFunc<&(ANetIoThread::Main(TUserData))>(void*, TUserData) + 92
    frame #3: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #4: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #5, name = 'AudioCalc'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x0000000101606698 Live`___lldb_unnamed_symbol49568$$Live + 40
    frame #2: 0x0000000101bc2a8e Live`___lldb_unnamed_symbol81262$$Live + 350
    frame #3: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #4: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #6, name = 'AudioCalc'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x0000000101606698 Live`___lldb_unnamed_symbol49568$$Live + 40
    frame #2: 0x0000000101bc2a8e Live`___lldb_unnamed_symbol81262$$Live + 350
    frame #3: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #4: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #7, name = 'AudioCalc'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x0000000101606698 Live`___lldb_unnamed_symbol49568$$Live + 40
    frame #2: 0x0000000101bc2a8e Live`___lldb_unnamed_symbol81262$$Live + 350
    frame #3: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #4: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #8, name = 'AudioCalc'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x0000000101606698 Live`___lldb_unnamed_symbol49568$$Live + 40
    frame #2: 0x0000000101bc2a8e Live`___lldb_unnamed_symbol81262$$Live + 350
    frame #3: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #4: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #9, name = 'com.apple.audio.IOThread.client'
    frame #0: 0x00007ff800c18aba libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007ff800c18e2b libsystem_kernel.dylib`mach_msg + 59
    frame #2: 0x00007ff8027c295b CoreAudio`HALB_MachPort::SendSimpleMessageWithSimpleReply(unsigned int, unsigned int, int, int&, bool, unsigned int) + 111
    frame #3: 0x00007ff8026510ff CoreAudio`HALC_ProxyIOContext::IOWorkLoop() + 3937
    frame #4: 0x00007ff80264fbc1 CoreAudio`invocation function for block in HALC_ProxyIOContext::HALC_ProxyIOContext(unsigned int, unsigned int) + 63
    frame #5: 0x00007ff80281876c CoreAudio`HALB_IOThread::Entry(void*) + 72
    frame #6: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #7: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #10
    frame #0: 0x00007ff800c1a17a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff800c520d8 libsystem_pthread.dylib`_pthread_wqthread + 426
    frame #2: 0x00007ff800c50ffb libsystem_pthread.dylib`start_wqthread + 15
  thread #11, name = 'JUCE Timer'
    frame #0: 0x00007ff800c1b506 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007ff800c55a69 libsystem_pthread.dylib`_pthread_cond_wait + 1224
    frame #2: 0x000000016d15f4ce MaxPlugLib`juce::WaitableEvent::wait(int) const + 206
    frame #3: 0x000000016d1a4833 MaxPlugLib`juce::Timer::TimerThread::run() + 563
    frame #4: 0x000000016d16de5f MaxPlugLib`threadEntryProc + 527
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #12, name = 'FileThread'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x0000000101606698 Live`___lldb_unnamed_symbol49568$$Live + 40
    frame #2: 0x0000000102130de6 Live`___lldb_unnamed_symbol100268$$Live + 150
    frame #3: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #4: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #13, name = 'IPC Channel Reader'
    frame #0: 0x00007ff800c1f1ae libsystem_kernel.dylib`poll + 10
    frame #1: 0x0000000103786c3c Live`___lldb_unnamed_symbol210179$$Live + 284
    frame #2: 0x00000001018f688e Live`___lldb_unnamed_symbol62002$$Live + 1022
    frame #3: 0x00000001018f6e99 Live`___lldb_unnamed_symbol62007$$Live + 25
    frame #4: 0x00000001018f8860 Live`___lldb_unnamed_symbol62037$$Live + 448
    frame #5: 0x00000001018f81da Live`___lldb_unnamed_symbol62035$$Live + 122
    frame #6: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #7: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #8: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #9: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #14, name = 'AMCP Logging Spool'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x00007ff809b271c0 caulk`caulk::mach::semaphore::wait_or_error() + 16
    frame #2: 0x00007ff809b0e08a caulk`caulk::concurrent::details::worker_thread::run() + 36
    frame #3: 0x00007ff809b0dd4e caulk`void* caulk::thread_proxy<std::__1::tuple<caulk::thread::attributes, void (caulk::concurrent::details::worker_thread::*)(), std::__1::tuple<caulk::concurrent::details::worker_thread*> > >(void*) + 41
    frame #4: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #5: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #15
    frame #0: 0x00007ff800c18aba libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007ff800c18e2b libsystem_kernel.dylib`mach_msg + 59
    frame #2: 0x00007ff817be410a CoreMIDI`XServerMachPort::ReceiveMessage(int&, void*, int&) + 94
    frame #3: 0x00007ff817c14991 CoreMIDI`MIDIProcess::MIDIInPortThread::Run() + 105
    frame #4: 0x00007ff817bfb1a0 CoreMIDI`XThread::RunHelper(void*) + 10
    frame #5: 0x00007ff817bfc3f3 CoreMIDI`CAPThread::Entry(CAPThread*) + 77
    frame #6: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #7: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #16
    frame #0: 0x00007ff800c1d45e libsystem_kernel.dylib`kevent + 10
    frame #1: 0x00000001037a610f Live`___lldb_unnamed_symbol210712$$Live + 111
    frame #2: 0x0000000103783fc2 Live`___lldb_unnamed_symbol210117$$Live + 498
    frame #3: 0x00000001037a5aed Live`___lldb_unnamed_symbol210696$$Live + 13
    frame #4: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #5: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #17
    frame #0: 0x00007ff800c1f196 libsystem_kernel.dylib`__accept + 10
    frame #1: 0x000000016d190290 MaxPlugLib`juce::StreamingSocket::waitForNextConnection() const + 80
    frame #2: 0x000000016cd4e1e1 MaxPlugLib`tcpconnection_listenthread(_tcpconnection*) + 47
    frame #3: 0x000000016cb62dcc MaxPlugLib`systhread_threadproc + 91
    frame #4: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #5: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #18, name = 'com.apple.NSEventThread'
    frame #0: 0x00007ff800c18aba libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007ff800c18e2b libsystem_kernel.dylib`mach_msg + 59
    frame #2: 0x00007ff800d1bdf1 CoreFoundation`__CFRunLoopServiceMachPort + 319
    frame #3: 0x00007ff800d1a4af CoreFoundation`__CFRunLoopRun + 1329
    frame #4: 0x00007ff800d198a9 CoreFoundation`CFRunLoopRunSpecific + 567
    frame #5: 0x00007ff8037ddd98 AppKit`_NSEventThread + 132
    frame #6: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #7: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #19, name = 'AudioCalc'
    frame #0: 0x00007ff800c18af6 libsystem_kernel.dylib`semaphore_wait_trap + 10
    frame #1: 0x0000000101606698 Live`___lldb_unnamed_symbol49568$$Live + 40
    frame #2: 0x0000000101bc2a8e Live`___lldb_unnamed_symbol81262$$Live + 350
    frame #3: 0x000000010161771b Live`___lldb_unnamed_symbol50048$$Live + 187
    frame #4: 0x00000001016179ce Live`___lldb_unnamed_symbol50061$$Live + 62
    frame #5: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #6: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #20
    frame #0: 0x00007ff800c1a17a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff800c520d8 libsystem_pthread.dylib`_pthread_wqthread + 426
    frame #2: 0x00007ff800c50ffb libsystem_pthread.dylib`start_wqthread + 15
  thread #21, name = 'JavaScriptCore bmalloc scavenger'
    frame #0: 0x00007ff800c1b506 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007ff800c55a69 libsystem_pthread.dylib`_pthread_cond_wait + 1224
    frame #2: 0x00007ff800bb4f53 libc++.1.dylib`std::__1::condition_variable::__do_timed_wait(std::__1::unique_lock<std::__1::mutex>&, std::__1::chrono::time_point<std::__1::chrono::system_clock, std::__1::chrono::duration<long long, std::__1::ratio<1l, 1000000000l> > >) + 93
    frame #3: 0x00007ff81a7fa1e2 JavaScriptCore`bmalloc::Scavenger::threadRunLoop() + 882
    frame #4: 0x00007ff81a7f9b59 JavaScriptCore`bmalloc::Scavenger::threadEntryPoint(bmalloc::Scavenger*) + 9
    frame #5: 0x00007ff81a7fb207 JavaScriptCore`void* std::__1::__thread_proxy<std::__1::tuple<std::__1::unique_ptr<std::__1::__thread_struct, std::__1::default_delete<std::__1::__thread_struct> >, void (*)(bmalloc::Scavenger*), bmalloc::Scavenger*> >(void*) + 39
    frame #6: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #7: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #22, name = 'com.apple.coreanimation.render-server'
    frame #0: 0x00007ff800c18aba libsystem_kernel.dylib`mach_msg_trap + 10
    frame #1: 0x00007ff800c18e2b libsystem_kernel.dylib`mach_msg + 59
    frame #2: 0x00007ff808225616 QuartzCore`CA::Render::Server::server_thread(void*) + 493
    frame #3: 0x00007ff808225419 QuartzCore`thread_fun(void*) + 25
    frame #4: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #5: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #23
    frame #0: 0x00007ff800c1a17a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff800c520d8 libsystem_pthread.dylib`_pthread_wqthread + 426
    frame #2: 0x00007ff800c50ffb libsystem_pthread.dylib`start_wqthread + 15
  thread #24
    frame #0: 0x00007ff800c1a17a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff800c520d8 libsystem_pthread.dylib`_pthread_wqthread + 426
    frame #2: 0x00007ff800c50ffb libsystem_pthread.dylib`start_wqthread + 15
  thread #25, name = 'CVDisplayLink'
    frame #0: 0x00007ff800c1b506 libsystem_kernel.dylib`__psynch_cvwait + 10
    frame #1: 0x00007ff800c55a9f libsystem_pthread.dylib`_pthread_cond_wait + 1278
    frame #2: 0x00007ff8088e38f6 CoreVideo`CVDisplayLink::waitUntil(unsigned long long) + 366
    frame #3: 0x00007ff8088e2a6a CoreVideo`CVDisplayLink::runIOThread() + 534
    frame #4: 0x00007ff800c554f4 libsystem_pthread.dylib`_pthread_start + 125
    frame #5: 0x00007ff800c5100f libsystem_pthread.dylib`thread_start + 15
  thread #26
    frame #0: 0x00007ff800c1a17a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff800c520d8 libsystem_pthread.dylib`_pthread_wqthread + 426
    frame #2: 0x00007ff800c50ffb libsystem_pthread.dylib`start_wqthread + 15
  thread #27
    frame #0: 0x00007ff800c1a17a libsystem_kernel.dylib`__workq_kernreturn + 10
    frame #1: 0x00007ff800c520d8 libsystem_pthread.dylib`_pthread_wqthread + 426
    frame #2: 0x00007ff800c50ffb libsystem_pthread.dylib`start_wqthread + 15
lucianoiam commented 2 years ago

Well, I found a bug: the white screen appears when your custom VST2 path contains spaces - we need to escape them, the webview can't find the html

Oh wow cannot believe that was it, thanks! my local paths do not contain spaces so that makes total sense.

But after this it has random crashes: 30% VST2 can start the first time and works fine (or crash), 100% it will crash DAW if it will be added to a track the second time. The same way the rest hiphop examples plugins work (except d_astone, it works stable before and after the patch).

Probably related to memory management, left a comment in the PR.

Tolsi commented 2 years ago

Probably related to memory management

Yes, can we do something?

I am not an experienced JS/Obj-С/VST developer really and my capabilities in this are rather superficial. I want to write several VST2 sequencer plugins with a nice interface with minimal effort, I think your framework would suit me, I like its minimalism and the size of the final files, and the ease of assembly, but its current stability scares me. It looks like there are serious problems with different OSs/DAWs.

left a comment in the PR

What PR? I don't see anything new here

lucianoiam commented 2 years ago

It looks like there are serious problems with different OSs/DAWs.

Please create new GitHub issues for those and I'll have a look asap.

DPF has been around for quite some time and there are several plugins released with it, its VST2 support should be stable at this point. Cannot say the same for the webview wrapper which is rather new and untested; take stability with a grain of salt... The only other framework that deals with web views I am aware of is iPlug2. But it is also rather new as of 2021.

I haven't had time lately to continue working on this but the current feature set is complete and has some degree of testing on various DAWs on the three platforms. I have some plans for new features like http support, for allowing remote UIs...

Do you see the code review here ? removing [urlObj release] in CocoaWebView.mm @ 120 will probably fix the issue.

Tolsi commented 2 years ago

removing [urlObj release] in CocoaWebView.mm @ 120 will probably fix the issue.

Wow, yes! That fixes the crashes. Will update the PR.

Please create new GitHub issues for those and I'll have a look asap.

Well, these my problems on mac were only reason at the moment. I looked into the bugs list in the hiphop repository and saw something about crashes on windows. I have not tried this yet, but any crashes are bad. Live It is not clear whether this affects any created on hiphop plugins or just some use case. Live on Windows is one of the most popular DAW / OS combinations and I want to be calm about it.

Do you see the code review here ?

Nope, I can't see anything here. Maybe you should commit/publish your code review somehow? Didn't use it for a long time.

The only other framework that deals with web views I am aware of is iPlug2.

I will check, thanks! I'm also researching this thing on top of JUCE, it looks good but more complicated. All I need for a sequencer is to transmit midi notes by some events, I think any such framework should handle this. I think I'll start with yours and move on to another in the process if I suddenly need some functions or it doesn't suit me.

By the way, I wanted to know if I can compile a single universal ARM/x64 compatible binary plugin for Mac OS? If yes, then how? Looks like I can make like here, but I don't really understand what I need to do with Wasmer (it's x64 hardcoded)

lucianoiam commented 2 years ago

I agree crashes are a very bad thing, particularly in a plugin context because a faulty plugin can bring down the entire host if it does not implement isolation. So all issue reports are welcome and take priority over new features.

I really do not master GitHub and also it is becoming more convoluted over time. Not sure what happened to the code review, it should be accesible from the PR.

I started this project because could not find a multiplatform web view that is suitable for use in a plugin environment. Creating the web views was challenging but the result works and looks very promising for real plugins. I'd be happy if someone also ported the web views to JUCE or iPlug2. I picked DPF because it is a minimalistic framework that does not depend on any proprietary plugin SDKs. I personally like that and Hip-Hop builds on that philosophy.

I cannot think of a reason why the web view shouldn't compile on M1, it is just the Makefiles are not adapted to it and yes they contain hardcoded x64 stuff. If you need WebAssembly DSP support then the Makefile should download the right static library (see WASMER_PKG_FILE), if not just do not define HIPHOP_AS_DSP_PATH and the Makefile will not try to download Wasmer or link against it.

What happens when running make without arch -x86_64 ?

Tolsi commented 2 years ago

I personally like that and Hip-Hop builds on that philosophy.

That's nice, but it supports only VST2 and rare LV2. I might want to have more supported formats in future. I don't care about VST3 actually if VST2 works fine, but AU / AAX is pretty useful for macOS users.

I cannot think of a reason why the web view shouldn't compile on M1...

There is no reason here, just compilers are able to assemble one universal binary from separate x64 and ARM so that the user does not download the version for his platform. I'm not sure how it works now, I tried it and it stopped on the platform-specific Wasmer build. I need to see how Wasmer is used here, I'm not sure if I need it now.

What happens when running make without arch -x86_64 ?

It will just build the ARM64 version but I use Live host in x64 (for all my old plugins) and it won't work. Now it builds x64, but I would like to make a universal build.

Oh, it works without wasmer!

> export CFLAGS="-arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2"
export CXXFLAGS="-arch x86_64 -arch arm64 -DMAC_OS_X_VERSION_MAX_ALLOWED=MAC_OS_X_VERSION_10_12 -mmacosx-version-min=10.12 -mtune=generic -msse -msse2"
export LDFLAGS="-arch x86_64 -arch arm64 -mmacosx-version-min=10.12"
> rm -rf bin/
> make
hiphop : hiphop
DPF    : hiphop/dpf @ develop
Build  : build
Target : bin
Compiling src/CastelloReverbPlugin.cpp
...
> file bin/CastelloReverb.vst/Contents/MacOS/CastelloReverb
bin/CastelloReverb.vst/Contents/MacOS/CastelloReverb: Mach-O universal binary with 2 architectures: [x86_64:Mach-O 64-bit dynamically linked shared library x86_64] [arm64:Mach-O 64-bit dynamically linked shared library arm64]
bin/CastelloReverb.vst/Contents/MacOS/CastelloReverb (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64
bin/CastelloReverb.vst/Contents/MacOS/CastelloReverb (for architecture arm64):  Mach-O 64-bit dynamically linked shared library arm64
lucianoiam commented 2 years ago

Great, looks like the effort for getting universal binaries is low because M1 binaries can be already built. I didn't know that... Will revisit this soon, at this point it is expected many Mac developers already own a M1-based computer.

DPF has an AudioUnit branch but seems abandoned, I'd really like support for AU as well but requires a considerable effort. Unfortunately I don't have the time to contribute to DPF itself so I'm favoring new features on top of it.

Tolsi commented 2 years ago

thanks for this review! I will definitely check it out

lucianoiam commented 2 years ago

Hi @Tolsi FYI the hiphop project now creates macOS universal binaries by default and also supports VST3. The latter is only missing a pull request to be merged into DPF (#360). Meanwhile this fork is available https://github.com/lucianoiam/DPF/tree/develop.