Open derkrasseleo opened 1 year ago
You need to install juce and vst3 sdk
Download the VST SDK (http://www.steinberg.net/en/company/developers.html) copy vstsdk2.4/pluginterfaces to VST_SDK/VST3_SDK/ copy VST_SDK/VST3_SDK to MXTune/
Download Juce (https://github.com/juce-framework/JUCE 5.4.7)
run Projucer File->Open MXTune/JUCE/mx_tune.jucer File->Global Paths modify "Path to JUCE" and "JUCE Modules" File->Save All
├── JUCE │ ├── Builds │ ├── JuceLibraryCode │ └── Source ├── VST3_SDK │ ├── base │ ├── bin │ ├── cmake │ ├── pluginterfaces │ ├── public.sdk │ ├── tools │ ├── vst3_doc │ └── vstgui4
I still get this error
In File, included from /home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/juce_audio_plugin_client_VST2.cpp:27,
von /home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/include_juce_audio_plugin_client_VST2.cpp:9:
/home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp:104:10: fatal error: pluginterfaces/vst2.x/aeffect.h: File or Folder not found
104 | #include "pluginterfaces/vst2.x/aeffect.h"
need vstsdk2.4
Thank you, the JUCE error is gone now, but that means you can't really build a fully open source version of this plugin, right? And where can you normally get the vst_sdk?
Would it be possible to only make an LV2 on linux? If you tell what I have to change in Projucer/Makefile, I can test it for you
Yes But you can turn off vst2.x and only compile vst3.x
vst_sdk2.4, vst3_sdk are provided by Steinberg, but vst_sdk2.4 download access has been closed
JUCE doesn't support LV2
But you can turn off vst2.x and only compile vst3.x
Is turning it off in Projcuer (Plugin formats) enough?
JUCE doesn't support LV2
I think support was added in v7.0, but as you use 5.x, it's probably not possible to compile LV2s.
And also, if you have the time, could you take a look at these compile errors?
In File, included from /home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/modules/juce_gui_basics/juce_gui_basics.cpp:314:
/home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp: In element function »void juce::LinuxComponentPeer::updateBorderSize()«:
/home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp:2839:50: Fehler: Aggregat »std::array<long unsigned int, 4> sizes« has incomplete type and cannot be defined
2839 | std::array<unsigned long, 4> sizes;
| ^~~~~
/home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp: In element funcion »void juce::Displays::findDisplays(float)«:
/home/leo/Dokumente/git/MXTune/JUCE/JuceLibraryCode/modules/juce_gui_basics/native/juce_linux_X11_Windowing.cpp:3655:45: Fehler: Aggregat »std::array<long int, 4> position« has incomplete type and cannot be defined
3655 | std::array<long, 4> position;
| ^~~~~~~~
I updated the juce version
I did not encounter this error
Seems to Linux specific, did you build for Linux or Windows? It's wierd, no matter what plugin type I select (VST, VST3, LV2) I get different compile errors every time :(
I am now trying to build only VST3 with juce 5.4.7, do you have any idea why ld can't find my libraries? I've checked /usr/lib/ and the're all there..
/usr/bin/ld: cannot find -lrubberband: File or folder not found
/usr/bin/ld: cannot find -lSoundTouch: File or folder not found
/usr/bin/ld: cannot find -laubio: File or folder not found
/usr/bin/ld: cannot find -lfftw3f: File or folder not found
/usr/bin/ld: cannot find -lsamplerate: File or folder not found
collect2: Error: ld returned 1 as End-Status
make[2]: *** [CMakeFiles/mx_tune.dir/build.make:625: /home/leo/Dokumente/git/MXTune/cmake-build-cmake/output/libmx_tune.so] Error 1
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/mx_tune.dir/all] Fehler 2
make: *** [Makefile:91: all] Error 2
SoundTouch:
./bootstrap
./configure --enable-static --disable-shared
make CXXFLAGS="-DSOUNDTOUCH_PREVENT_CLICK_AT_RATE_CROSSOVER=1 -fvisibility=hidden -fdata-sections -ffunction-sections -fPIC" LDFLAGS="-fPIC"
sudo make install
Other ubuntu : sudo apt install libfftw3-dev libaubio-dev librubberband-dev libsamplerate0-dev
mxtune use static library
./bootstrap
./configure --enable-static --disable-shared
make CXXFLAGS="-DSOUNDTOUCH_PREVENT_CLICK_AT_RATE_CROSSOVER=1 -fvisibility=hidden -fdata-sections -ffunction-sections -fPIC" LDFLAGS="-fPIC"
sudo make install
Download waf (https://waf.io/)
./waf configure --enable-fftw3f --disable-tests --notests --disable-examples --disable-wavread --disable-wavwrite CFLAGS='-fvisibility=hidden -fdata-sections -ffunction-sections'
./waf build --disable-tests --notests --disable-examples
sudo ./waf install --disable-tests --notests --disable-examples
``
### build libsamplerate
./configure CFLAGS=-fPIC LDFLAGS=-fPIC make -j4 sudo make install
### build rubberband
make -f otherbuilds/Makefile.linux sudo cp -rf rubberband /usr/local/include/ sudo cp -rf lib/* /usr/local/lib/
https://codeberg.org/soundtouch/soundtouch https://github.com/aubio/aubio https://github.com/libsndfile/libsamplerate https://breakfastquay.com/rubberband/
Methods for linking dynamic libraries: Remove -Wl,-Bstatic from the cmakelist.txt file
Do I need to build the dependencies on my own if I already have them in /usr/lib/ ?
It also says in the README, that you have to modify the VST SDK, but I can't find the lines you mentioned, could you take a look if they're still there and if not, update the README? Generally, the README and build instructions are very bad and unclear
Do I need to build the dependencies on my own if I already have them in /usr/lib/ ?
Not needed if it's a static library but ,soundtouch is required
It also says in the README, that you have to modify the VST SDK, but I can't find the lines you mentioned, could you take a look if they're still there and if not, update the README? Generally, the README and build instructions are very bad and unclear
These need to be modified on windows only
I did:
pacman -S --asdeps --needed make cmake autoconf libtool fftw libsamplerate juce vst3sdk soundtouch aubio python-aubio
Removed -Wl,-Bstatic from CMakeLists.txt
copied vstsdk2.4/pluginterfaces/ to MXTune/VST_SDK/VST3_SDK
mkdir build-cmake
cd build-cmake
cmake .. -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -G "Unix Makefiles"
make -j4
and got:
make[1]: *** [CMakeFiles/Makefile2:83: CMakeFiles/mx_tune.dir/all] Error 2
make: *** [Makefile:91: all] Error 2
What errors are you actually getting? If you look at the output of the make command, you should see the traceback..
That was the whole error message. Before it there were a lot of warnings, but no errors.
That was the whole error message. Before it there were a lot of warnings, but no errors.
Update the cmakelists.txt file
CMake Error at CMakeLists.txt:216 (add_library):
Cannot find source file:
/home/james/MXTune/JUCE/JuceLibraryCode/include_juce_audio_plugin_client_Unity.cpp
I think I'll just wait for the next release.
Unfortunately, I still can't get this to build, running the build_linux.sh
throws this error.
File "/home/leo/Documents/git/MXTune/third_party/build/aubio-0.4.9/waflib/Context.py", line 5, in <module>
import os,re,imp,sys
ModuleNotFoundError: No module named 'imp'
Could be a problem of python 3.12 deprecating the imp
package. Here's the issue: https://github.com/aubio/aubio/issues/394
Also, to get an aur package on arch, it would require to get a build without the vst2 sdk which is not possible right?
I tried modifying the build script to build with the git version of aubio and my local waf
install:
wget -c https://github.com/aubio/aubio/archive/refs/heads/master.tar.gz
tar xvf master.tar.gz -C build
pushd build/aubio-master/
waf configure --enable-fftw3f --disable-tests --notests --disable-examples --disable-wavread --disable-wavwrite CFLAGS="-fvisibility=hidden -fdata-sections -ffunction-sections"
waf build --disable-tests --notests --disable-examples
sudo waf install --disable-tests --notests --disable-examples
popd
Now I get this error: No function 'CFLAGS=-fvisibility=hidden -fdata-sections -ffunction-sections' defined in /home/leo/Documents/git/MXTune/third_party/build/aubio-master/wscript
I cloned the repository and tried the commands for linux but I can't get it to build. When running
cmake .. -DCMAKE_CXX_COMPILER=g++ -DCMAKE_C_COMPILER=gcc -G "Unix Makefiles"
I just get this error: