asb2m10 / dexed

DX7 FM multi plaform/multi format plugin
GNU General Public License v3.0
2.8k stars 241 forks source link

FreeBSD #322

Closed probonopd closed 2 years ago

probonopd commented 2 years ago

I would like to build dexed on FreeBSD both standalone and as a plugin for DAWs. Please add instructions on how to build dexed on FreeBSD.

FreeBSD has a juce-6.0.8_4 package that includes /usr/local/bin/Projucer. So I assume this can be used to build dexed?

Getting

FreeBSD% Projucer --resave Dexed.jucer

Re-saving file: /usr/home/user/dexed/Dexed.jucer
Error when saving: At least one of your JUCE module paths is invalid!
Please ensure each module path points to the correct JUCE modules folder.

Unfortunately it does not say which JUCE module path is invalid. I don't even know what a JUCE module path is or where it is set.

When I run Projucer with no arguments, the GUI talks about Linux but not about FreeBSD. Yet I am running it on FreeBSD. What gives?

haenkel commented 2 years ago

Does the cmake build option work with bsd the way it is now? Just wondering if further additions would be needed.

probonopd commented 2 years ago
# FreeBSD 13.0-RELEASE-p4
git clone https://github.com/asb2m10/dexed/
cd dexed
git submodule update --init --recursive
cmake .

Getting

  In file included from                                                                          
  /tmp/dexed/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.cpp:46:                           

  /tmp/dexed/libs/JUCE/modules/juce_gui_basics/juce_gui_basics.h:322:12:                         
  fatal error: 'X11/Xlib.h' file not found                                                       

    #include <X11/Xlib.h>                                                                        
             ^~~~~~~~~~~~       

despite having /usr/local/include/X11/Xlib.h.

haenkel commented 2 years ago

Ok not good but good to know :)

But it's not Dexed quite yet, still Juce missing the libx11-dev package. On Linuxes it looks for it in /usr/include/X11. The fact that yours is in /usr/local/include/X11 is probably not the answer (but who knows).

Just to rule things out, have you managed to build other plugins that use the juce lib yet? Surge-XT for example, should be the same dependency-wise and has been reported to compile on freeBSD.

https://github.com/surge-synthesizer/surge https://www.freshports.org/audio/surge-synthesizer-xt-lv2/

probonopd commented 2 years ago

As a workaround, sudo ln -s /usr/local/include/X11 /usr/include/ lets me build until this point:

[ 61%] Building CXX object Source/CMakeFiles/Dexed.dir/__/libs/JUCE/modules/juce_core/juce_core.cpp.o                                                                                             
In file included from /tmp/dexed/libs/JUCE/modules/juce_core/juce_core.cpp:45:
/usr/include/sys/timeb.h:44:2: error: "this file includes <sys/timeb.h> which is deprecated" [-Werror,-W#warnings]
#warning "this file includes <sys/timeb.h> which is deprecated"
 ^
[ 62%] Building CXX object Source/CMakeFiles/Dexed.dir/__/libs/JUCE/modules/juce_audio_devices/juce_audio_devices.cpp.o                                                                           
[ 63%] Building CXX object Source/CMakeFiles/Dexed.dir/__/libs/JUCE/modules/juce_events/juce_events.cpp.o                                                                                         
1 error generated.

Maybe we should use FreeBSD's JUCE from /usr/local/include/JUCE-6.0.8/ instead?

I have not tried to build other plugins that use the juce lib yet.

haenkel commented 2 years ago

Oh that one is because "warnings are errors" is turned on and it's too early for that. You could try commenting out -Werror in CMakeLists.txt https://github.com/asb2m10/dexed/blob/master/CMakeLists.txt#L55

probonopd commented 2 years ago

Only 2% missing now, getting

To build JUCE VST3 plug-ins on BSD you must use an external BSD-compatible VST3 SDK with JUCE_CUSTOM_VST3_SDK=1

How to do this?

FreeBSD has the following package:

vst3sdk-3.7.1.b.50.1_1         VST3 SDK (VST3 audio plugins Software Development Kit)

It resides in /usr/local/include/vst3sdk/.

[ 98%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp.o                                                     
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp:26:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:42:
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/juce_VST3Headers.h:27:3: error: To build JUCE VST3 plug-ins on BSD you must use an external BSD-compatible VST3 SDK with JUCE_CUSTOM_VST3_SDK=1
 #error To build JUCE VST3 plug-ins on BSD you must use an external BSD-compatible VST3 SDK with JUCE_CUSTOM_VST3_SDK=1
  ^
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp:26:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:42:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/juce_VST3Headers.h:110:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/base/source/baseiids.cpp:38:
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:222:17: error: expected ';' after top level declarator
int32 PLUGIN_API atomicAdd (int32& value, int32 amount);
                ^
                ;                                                                                
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:2: error: 'virtual' can only appear on non-static member functions
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:28: error: expected ';' at end of declaration list
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
                                  ^
                                  ;                                                              
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:375:2: error: 'virtual' can only appear on non-static member functions
        virtual uint32 PLUGIN_API addRef () = 0;
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:375:17: error: duplicate member 'PLUGIN_API'
        virtual uint32 PLUGIN_API addRef () = 0;
                       ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:18: note: previous declaration is here
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
                        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:375:27: error: expected ';' at end of declaration list
        virtual uint32 PLUGIN_API addRef () = 0;
                                 ^
                                 ;                                                               
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:379:2: error: 'virtual' can only appear on non-static member functions
        virtual uint32 PLUGIN_API release () = 0;
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:379:17: error: duplicate member 'PLUGIN_API'
        virtual uint32 PLUGIN_API release () = 0;
                       ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:18: note: previous declaration is here
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
                        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:379:27: error: expected ';' at end of declaration list
        virtual uint32 PLUGIN_API release () = 0;
                                 ^
                                 ;                                                               
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:493:26: error: no member named 'queryInterface' in 'Steinberg::FUnknown'
        if (unknown && unknown->queryInterface (getTUID<I> (), (void**)&this->ptr) != kResultOk)
                       ~~~~~~~  ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:502:26: error: no member named 'queryInterface' in 'Steinberg::FUnknown'
        if (unknown && unknown->queryInterface (getTUID<I> (), (void**)&newPtr) == kResultOk)
                       ~~~~~~~  ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:544:7: error: no member named 'release' in 'Steinberg::FUnknown'
                        u->release ();
                        ~  ^
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp:26:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:42:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/juce_VST3Headers.h:110:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/base/source/baseiids.cpp:39:
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:35:2: error: 'virtual' can only appear on non-static member functions
        virtual void PLUGIN_API setText (const char8* text) = 0;    
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:35:15: error: field has incomplete type 'void'
        virtual void PLUGIN_API setText (const char8* text) = 0;    
                     ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:35:25: error: expected ';' at end of declaration list
        virtual void PLUGIN_API setText (const char8* text) = 0;    
                               ^
                               ;                                                                 
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:54:2: error: 'virtual' can only appear on non-static member functions
        virtual void PLUGIN_API setText8 (const char8* text) = 0;    
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:54:15: error: field has incomplete type 'void'
        virtual void PLUGIN_API setText8 (const char8* text) = 0;    
                     ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:54:25: error: expected ';' at end of declaration list
        virtual void PLUGIN_API setText8 (const char8* text) = 0;    
                               ^
                               ;                                                                 
fatal error: too many errors emitted, stopping now [-ferror-limit=]                              
20 errors generated.
make[2]: *** [Source/CMakeFiles/Dexed_VST3.dir/build.make:202: Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp.o] Fehler 1
make[1]: *** [CMakeFiles/Makefile2:463: Source/CMakeFiles/Dexed_VST3.dir/all] Fehler 2
make: *** [Makefile:136: all] Fehler 2
haenkel commented 2 years ago

I'm a bit guessing around right now but adding something like this:

if(CMAKE_SYSTEM_NAME MATCHES "BSD")
  target_compile_definitions(${BaseTargetName} PUBLIC
    JUCE_CUSTOM_VST3_SDK=1
endif()

somewhere here: https://github.com/asb2m10/dexed/blob/master/Source/CMakeLists.txt#L61 is what i would try, but it is probably not enough.

To see if at least the standalone works for now you can do:

cmake -Bbuild
cmake --build build --target Dexed_Standalone
haenkel commented 2 years ago

similar issue here: https://github.com/surge-synthesizer/surge/issues/5996

probonopd commented 2 years ago

Yes! Standalone works! Even with my MIDI keyboard. So happy!

probonopd commented 2 years ago

With

if(CMAKE_SYSTEM_NAME MATCHES "BSD")
target_compile_definitions(${BaseTargetName} PUBLIC
    JUCE_CUSTOM_VST3_SDK=1
)
endif()

getting

[ 87%] Built target Dexed_Standalone
Consolidate compiler generated dependencies of target Dexed_VST3
[ 88%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_AAX.cpp.o                                                      
[ 89%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_1.cpp.o                                                   
[ 90%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_2.cpp.o                                                   
[ 91%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_3.cpp.o                                                   
[ 92%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_4.cpp.o                                                   
[ 94%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_RTAS_utils.cpp.o                                               
[ 95%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_Standalone.cpp.o                                               
[ 96%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_Unity.cpp.o                                                    
[ 97%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp.o                                                     
[ 98%] Building CXX object Source/CMakeFiles/Dexed_VST3.dir/__/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp.o                                                     
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp:26:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:42:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/juce_VST3Headers.h:110:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/base/source/baseiids.cpp:38:
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:222:17: error: expected ';' after top level declarator
int32 PLUGIN_API atomicAdd (int32& value, int32 amount);
                ^
                ;                                                                                
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:2: error: 'virtual' can only appear on non-static member functions
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:28: error: expected ';' at end of declaration list
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
                                  ^
                                  ;                                                              
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:375:2: error: 'virtual' can only appear on non-static member functions
        virtual uint32 PLUGIN_API addRef () = 0;
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:375:17: error: duplicate member 'PLUGIN_API'
        virtual uint32 PLUGIN_API addRef () = 0;
                       ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:18: note: previous declaration is here
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
                        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:375:27: error: expected ';' at end of declaration list
        virtual uint32 PLUGIN_API addRef () = 0;
                                 ^
                                 ;                                                               
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:379:2: error: 'virtual' can only appear on non-static member functions
        virtual uint32 PLUGIN_API release () = 0;
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:379:17: error: duplicate member 'PLUGIN_API'
        virtual uint32 PLUGIN_API release () = 0;
                       ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:370:18: note: previous declaration is here
        virtual tresult PLUGIN_API queryInterface (const TUID _iid, void** obj) = 0;
                        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:379:27: error: expected ';' at end of declaration list
        virtual uint32 PLUGIN_API release () = 0;
                                 ^
                                 ;                                                               
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:493:26: error: no member named 'queryInterface' in 'Steinberg::FUnknown'
        if (unknown && unknown->queryInterface (getTUID<I> (), (void**)&this->ptr) != kResultOk)
                       ~~~~~~~  ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:502:26: error: no member named 'queryInterface' in 'Steinberg::FUnknown'
        if (unknown && unknown->queryInterface (getTUID<I> (), (void**)&newPtr) == kResultOk)
                       ~~~~~~~  ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/funknown.h:544:7: error: no member named 'release' in 'Steinberg::FUnknown'
                        u->release ();
                        ~  ^
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST3.cpp:26:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_plugin_client/VST3/juce_VST3_Wrapper.cpp:42:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/juce_VST3Headers.h:110:
In file included from /tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/base/source/baseiids.cpp:39:
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:35:2: error: 'virtual' can only appear on non-static member functions
        virtual void PLUGIN_API setText (const char8* text) = 0;    
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:35:15: error: field has incomplete type 'void'
        virtual void PLUGIN_API setText (const char8* text) = 0;    
                     ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:35:25: error: expected ';' at end of declaration list
        virtual void PLUGIN_API setText (const char8* text) = 0;    
                               ^
                               ;                                                                 
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:54:2: error: 'virtual' can only appear on non-static member functions
        virtual void PLUGIN_API setText8 (const char8* text) = 0;    
        ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:54:15: error: field has incomplete type 'void'
        virtual void PLUGIN_API setText8 (const char8* text) = 0;    
                     ^
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:54:25: error: expected ';' at end of declaration list
        virtual void PLUGIN_API setText8 (const char8* text) = 0;    
                               ^
                               ;                                                                 
/tmp/dexed/libs/JUCE/modules/juce_audio_processors/format_types/VST3_SDK/pluginterfaces/base/istringresult.h:56:2: error: 'virtual' can only appear on non-static member functions
        virtual void PLUGIN_API setText16 (const char16* text) = 0;
        ^
fatal error: too many errors emitted, stopping now [-ferror-limit=]                              
20 errors generated.
probonopd commented 2 years ago

Maybe @yurivict (the maintainer of the vst3sdk FreeBSD port) knows what needs to be done here?

haenkel commented 2 years ago

Again just guessing around: you are maybe still using the same SDK as before and have to do something like export VST3_SDK_DIR="/path/to/sdk" first before the build steps. (not sure about the exact syntax, but something like that)

probonopd commented 2 years ago
FreeBSD% export VST3_SDK_DIR=/usr/local/include/vst3sdk 
FreeBSD% cmake .
FreeBSD% make

does not seem to do it. Maybe we need something in CMake like

set(VST3_SDK_DIR "/usr/local/include/vst3sdk" CACHE PATH "VST3 SDK directory") - but where...?

if(CMAKE_SYSTEM_NAME MATCHES "BSD")
set(VST3_SDK_DIR "/usr/local/include/vst3sdk" CACHE PATH "VST3 SDK directory")
target_compile_definitions(${BaseTargetName} PUBLIC
    JUCE_CUSTOM_VST3_SDK=1
)
endif()

does not seem to do the trick.

haenkel commented 2 years ago
if(CMAKE_SYSTEM_NAME MATCHES "BSD")
  target_compile_definitions(${BaseTargetName} PUBLIC
    JUCE_CUSTOM_VST3_SDK=1)
endif()

if(DEFINED ENV{VST3_SDK_DIR})
  file(TO_CMAKE_PATH "$ENV{VST3_SDK_DIR}" JUCE_VST3_DIR)
  juce_set_vst3_sdk_path(${JUCE_VST3_DIR})
  message(STATUS "VST3 SDK path is $ENV{VST3_SDK_DIR}")
endif()

then

export VST3_SDK_DIR="/path/to/VST3_SDK"
cmake -Bbuild
cmake --build build --target Dexed_VST3

maybe need to wipe the build folder first

EDIT: I am also getting lots of errors on linux when using a slightly older version of the vst3_sdk which maybe another hint.

yurivict commented 2 years ago

I'll make an effort to port dexed and will report result when available.

probonopd commented 2 years ago

Noticed that having three instances of Dexed open takes relatively much CPU even when not playing, is this normal?

  PID USERNAME    THR PRI NICE   SIZE    RES STATE    C   TIME    WCPU COMMAND
 8342 user          5  22    0    85M    45M select   0  12:36  38,58% Dexed
 8397 user          5  20    0    82M    43M select   0   4:32  33,90% Dexed
 8352 user          5  22    0    84M    45M select   0  12:04  33,42% Dexed
yurivict commented 2 years ago

Blocker: https://github.com/asb2m10/dexed/issues/340

yurivict commented 2 years ago

The FreeBSD port has been added: https://cgit.freebsd.org/ports/commit/?id=4d1970829bb31e69ff383ee30d819df841999045

probonopd commented 2 years ago

Thank you very, very much @yurivict.

yurivict commented 2 years ago

@probonopd You are very welcome! :-)

probonopd commented 2 years ago

Built. So just to clarify, it is impossible to build the vst3 on FreeBSD?

yurivict commented 2 years ago

Built. So just to clarify, it is impossible to build the vst3 on FreeBSD?

I am not sure. Need to investigate. There's a port for VST3 - audio/vst3sdk. Need to see if it can work.

yurivict commented 2 years ago

@probonopd I added the VST3 option to the port.

I didn't yet have a chance to try and see if it works.

probonopd commented 2 years ago

Thanks @yurivict, this is great.

Tried using audio/carla (which should be able to load VST3 plugins) but it does not seem to find Dexed. When I click on the "Refresh" button and let it scan for all types of plugins, it says Have 28 Internal, 243 LADSPA, 0 DSSI, 31 LV2, 0 VST2 and 0 VST3 plugins, plus 0 Sound Kits. Can you reproduce the issue?

yurivict commented 2 years ago

Carla doesn't support VST3 on FreeBSD yet due to some JUCE incompatibility.

More information is here: https://github.com/falkTX/Carla/issues/1607

yurivict commented 2 years ago

FYI: qtractor now supports VST3 plugins on FreeBSD. The Dexed plugin now works in qtractor.