compile and install JuceOPLVSTi plugin
Posted: Tue Mar 15, 2016 1:36 am
Greetings,
By request, here are the instructions for building and installing Bruce Sutherland's JuceOPLVSTi plugin (http://bsutherland.github.io/JuceOPLVSTi/) on Linux. You will need a C/C++ development environment and an up-to-date installation of the Juce framework (https://www.juce.com/). This is not a tutorial on compiling C/C++ source code or using Juce and the Introjucer. If you need such tutorials, please consult Google to find and read the needed documentation. You will also need the VST SDK from Steinberg GmbH. I use version 2.4 of the SDK, other versions may require path changes not covered here.
I keep source code in $HOME/src, so I start by getting the code from git and downloading it there, after which I enter the new directory.
The next step runs the Juce Introjucer on the code's jucer file. I keep the Juce stuff in $HOME/src too, thus the file path used here. Use the correct path to your Introjucer.
The Introjucer will display a files tree with the JuceOPLVSTi label. Right-click that label and select Create Linux Makefile Target from the context menu. The Linux target will be added at the end of the files tree.
In the files tree click on the juce_audio_basics module. If necessary set its path and/or update all other Juce modules.
Click on the Linux Makefile label and set location of VST folder, e.g. /home/dave/SDKs/vstsdk2.4. Save, then quit the Introjucer, your work is done there.
At this point you can run the Makefile created by the Introjucer, but the run will fail with many errors, mostly regarding Bit32u. Make the following edit at line 82 in Source/config.h and line 12 in Source/DROMultiplexer.cpp. Change this :
to this :
Finally, open Source/hiopl.cpp and change this :
to this :
You should now be able to run the Makefile successfully. If so, the binary will be located at Builds/LinuxMakefile/build/JuceOPLVSTi.so. Installation is easy as copying the plugin to your preferred VST plugin directory.
I've notified Bruce that his work will compile on Linux. Hopefully falkTX will include it in his DISTRHO ports, or another of his projects. Meanwhile, perhaps these instructions will aid the impatient.
Built and tested on Fedora 21 x86_64, GCC 4.9.2, Planet CCRMA rt kernel 4.0.5. Tests performed in Bitwig 1.3.6 and Ardour4 (git sources). I haven't tested every feature yet, but the synth sounds good and behaves well (no crashes or hangs on exit).
Many thanks to Bruce Sutherland for creating JuceOPLVSTi. Great thanks also to falkTX for his crucial assistance when I hit the wall, which usually happens quickly when I venture into C++ and/or Juce programming. Of course, any errors and inaccuracies in these instructions are my responsibility, so please advise me if you have suggestions for their improvement.
Best,
dp
By request, here are the instructions for building and installing Bruce Sutherland's JuceOPLVSTi plugin (http://bsutherland.github.io/JuceOPLVSTi/) on Linux. You will need a C/C++ development environment and an up-to-date installation of the Juce framework (https://www.juce.com/). This is not a tutorial on compiling C/C++ source code or using Juce and the Introjucer. If you need such tutorials, please consult Google to find and read the needed documentation. You will also need the VST SDK from Steinberg GmbH. I use version 2.4 of the SDK, other versions may require path changes not covered here.
I keep source code in $HOME/src, so I start by getting the code from git and downloading it there, after which I enter the new directory.
Code: Select all
cd $HOME/src
git clone https://github.com/bsutherland/JuceOPLVSTi.git
cd JuceOPLVSTi
Code: Select all
../JUCE-master/extras/Introjucer/Builds/Linux/build/Introjucer JuceOPLVSTi.jucer
In the files tree click on the juce_audio_basics module. If necessary set its path and/or update all other Juce modules.
Click on the Linux Makefile label and set location of VST folder, e.g. /home/dave/SDKs/vstsdk2.4. Save, then quit the Introjucer, your work is done there.
At this point you can run the Makefile created by the Introjucer, but the run will fail with many errors, mostly regarding Bit32u. Make the following edit at line 82 in Source/config.h and line 12 in Source/DROMultiplexer.cpp. Change this :
Code: Select all
#if __APPLE__
Code: Select all
#if __APPLE__ || 1
Code: Select all
#include "Hiopl.h"
Code: Select all
#include "hiopl.h"
I've notified Bruce that his work will compile on Linux. Hopefully falkTX will include it in his DISTRHO ports, or another of his projects. Meanwhile, perhaps these instructions will aid the impatient.
Built and tested on Fedora 21 x86_64, GCC 4.9.2, Planet CCRMA rt kernel 4.0.5. Tests performed in Bitwig 1.3.6 and Ardour4 (git sources). I haven't tested every feature yet, but the synth sounds good and behaves well (no crashes or hangs on exit).
Many thanks to Bruce Sutherland for creating JuceOPLVSTi. Great thanks also to falkTX for his crucial assistance when I hit the wall, which usually happens quickly when I venture into C++ and/or Juce programming. Of course, any errors and inaccuracies in these instructions are my responsibility, so please advise me if you have suggestions for their improvement.
Best,
dp