KaixoCode / CMBNEX

CMBNEX Is a 4 oscillator VST3 synth with a unique tuneable 2 dimensional waveshaper and 3 combiners that use several algorithms to combine incoming signals. All parameters have 4 slots for internal modulation from several modulation sources like envelopes, LFOs, and macros.
47 stars 2 forks source link

Add information on how to build the plugin #1

Open ycollet opened 3 months ago

ycollet commented 3 months ago

I am trying to build CMBNEX on Fedora. I downloaded vst3sdk but it looks like the version of vst3sdk is important to build the plugin. Add some information on how to build the plugin:

KaixoCode commented 3 months ago

First of all, this project was not really meant to be built by anyone, it's public so I can host the VST3 download and the manual here.

The folder structure should be like

I am pretty sure VST SDK version does not matter, just download the latest from here https://www.steinberg.net/developers/ and put the contents of the zip file in VST_SDK.

Also, I am not sure if it'll even build on Linux. Let me know how it goes

ycollet commented 3 months ago

OK, thanks for these information, I will keep you informed :)

ycollet commented 3 months ago

The setup:

mkdir CMBNEX
cd CMBNEX/
mkdir VST_SDK
cd VST_SDK/
git clone https://github.com/steinbergmedia/vst3sdk
cd vst3sdk/
git checkout v3.7.11_build_10
git submodule update --init --recursive
cd ../..
git clone https://github.com/KaixoCode/CMBNEX
cd CMBNEX/
mkdir build
cd build/
cmake -DCMAKE_CXX_FLAGS=RELEASE ..

The first error I met:

CMake Error at /home/collette/tmp/CMBNEX/VST_SDK/vst3sdk/cmake/modules/SMTG_AddSMTGLibrary.cmake:224 (message):
  [SMTG] PROJECT_VERSION is not defined for target: "CMBNEX".  To fix this,
  set the VERSION option of the most recent call of the cmake project()
  command e.g.  project(myPlugin VERSION 1.0.0)

In CMakeLists.txt, I added:

project(${PRJ_NAME} VERSION 1.0.0)

And then some problems related to vst3 sdk pop up:

[ 49%] Building CXX object CMakeFiles/CMBNEX.dir/source/Components/Label.cpp.o
Dans le fichier inclus depuis /home/collette/tmp/CMBNEX/CMBNEX/source/Components/Label.cpp:1:
/home/collette/tmp/CMBNEX/CMBNEX/include/Components/Label.hpp:13:13: erreur: « String » ne nomme pas un type; vouliez-vous utiliser « Settings » ?
   13 |             String value = ""; // Text
      |             ^~~~~~
      |             Settings
/home/collette/tmp/CMBNEX/CMBNEX/source/Components/Label.cpp: Dans la fonction membre « virtual void Kaixo::Label::draw(VSTGUI::CDrawContext*) »:
/home/collette/tmp/CMBNEX/CMBNEX/source/Components/Label.cpp:11:53: erreur: « struct Kaixo::Label::Settings » n'a pas de membre nommé « value »
   11 |         auto _w = pContext->getStringWidth(settings.value);
      |                                                     ^~~~~
/home/collette/tmp/CMBNEX/CMBNEX/source/Components/Label.cpp:19:39: erreur: « struct Kaixo::Label::Settings » n'a pas de membre nommé « value »
   19 |         pContext->drawString(settings.value, _s, true);
      |                                       ^~~~~