voxglitch - development blog

Quick question. I have my modules compiling with the version 2 API. What’s my next step? I think that I saw some preview download for Rack 2, but now I can’t seem to find it. Should I download the newest build and test all of my modules?

yes, but its a lot easier (imho) if you build rack. Then every now and then pull down the new rack source, build it, build your plugins against it, then test them in that build. Super easy.

3 Likes

I’ll try! Where can I find the most recent version of rack for windows?

This thread

1 Like

Make sure to follow VCV’s build instructions exactly. install the required dependencies, don’t forget the extra steps for getting and making deps. The VCV instructions are accurate and simple, but it’s easy to accidently skip a step.

I would suggest building rack, making sure it runs, then build the Fundamental plugins and make sure they load. then clone and build yours.

2 Likes

OK, I’m almost there! I was able to build Rack 2 from source and run it. And I was able to build the Fundamental modules. But the Fundamental modules aren’t showing up in Rack 2.

I cloned the Fundamental modules into /c/code/rack2/Fundamental. The instructions weren’t very clear about where this repo should be cloned.

Then I issued:

$ make dist
rm -rf dist
mkdir -p dist/"Fundamental"
cp plugin.dll dist/"Fundamental"/
strip -s dist/"Fundamental"/plugin.dll
cp -r --parents LICENSE-GPLv3.txt LICENSE.md res plugin.json dist/"F

What I think went wrong is that it installed the dist folder within my Fundamental folder. So now I have:

/c/code/rack2/Fundamental
/c/code/rack2/Fundamental/dist
/c/code/rack2/Fundamental/dist/Fundamental
/c/code/rack2/Fundamental/dist/Fundamental/plugin.dll

I know it’s something easy, but could someone point out where I’m supposed to place the Fundamental modules, and where I’m supposed to execute make, make dist, or make install?

" * Build Rack from source and build plugins in the plugins/ folder. (Recommended for advanced developers.)"

cd rack/plugins
git clone --branch=v2 https://github.com/VCVRack/Fundamental.git
cd rack/plugins/fundamental/
git submodule update --init --recursive
make dep
make dist

Ok, I’ll give that a shot. :slight_smile:

Yeah, I clone into rack/plugins/Fundamental.

Perfect! Thanks @Jens.Peter.Nielsen and @Squinky. That did the trick.

Next step - Build my own modules and test them. :slight_smile:

1 Like

And that is in the instructions. But you have to read very carefully, or you will miss it.

1 Like

Just for everyone’s record, that’s totally true and I missed it:

Pro tip #1: make plugins in the root of the Rack source repository.

Pro tip #2: CMD="make dist" make plugins in the root of the Rack source code repository.

2 Likes

Ok! I got my modules to show up in Rack 2. Next step, test them one-by-one. I’m optimistic!

3 Likes

All of my modules appear to be working in Rack #2. Do I just set the version and submit it like normal?

Recently on discord

Ah, OK! I’ll just sit tight then. Thanks Paul.

have you pushed your v2 code so others can try it out?

Ah, good point! I had not, but I did just now. You can grab the latest build here:

The changes are on the master branch.

@clone45

Hi Bret - I tried building your master branch (which is now the v2 branch right?) with latest Rack beta (219bbaf1) but I got 2 build errors:

In file included from src/GlitchSequencer.cpp:12:
src/GlitchSequencer/CellularAutomatonDisplay.hpp:165:43: error: no member named
      'zoom' in namespace 'rack::settings'
    double zoom = std::pow(2.f, settings::zoom);
                                ~~~~~~~~~~^
1 error generated.
make: *** [build/src/GlitchSequencer.cpp.o] Error 1
make: *** Waiting for unfinished jobs....
In file included from src/DigitalSequencer.cpp:27:
src/DigitalSequencer/VoltageSequencerDisplay.hpp:192:43: error: no member named
      'zoom' in namespace 'rack::settings'
    double zoom = std::pow(2.f, settings::zoom);
                                ~~~~~~~~~~^
In file included from src/DigitalSequencer.cpp:28:
src/DigitalSequencer/GateSequencerDisplay.hpp:121:43: error: no member named
      'zoom' in namespace 'rack::settings'
    double zoom = std::pow(2.f, settings::zoom);
                                ~~~~~~~~~~^
2 errors generated.

I know some other developers (like Ben Stoermelder for example) have mentioned this issue with zoom being removed from rack settings.