Vember surge synth opensourced, builds and runs on Linux

I tried your build recipe but got a problem:

root@zynthian:/zynthian/zynthian-sw/plugins/surge# cmake --build build --config Release --target Surge-LV2-Packaged
-- Found Git: /usr/bin/git (found version "2.20.1") 
-- Setting up surge version
--   git hash is 0db9dbe3 and branch is main
--   buildhost is zynthian.fritz.box
--   buildarch is armv7l
-- Developer Local Build
-- Using SURGE_VERSION=1.7.main.0db9dbe3
-- Configuring /zynthian/zynthian-sw/plugins/surge/build/geninclude/version.cpp
[  0%] Built target git-info
[  0%] Built target surge-shared
Scanning dependencies of target surge-lv2-dll
[  0%] Building CXX object CMakeFiles/surge-lv2-dll.dir/geninclude/version.cpp.o
[  0%] Linking CXX shared library libsurge-lv2-dll.so
[100%] Built target surge-lv2-dll
Packaging up LV2 component
Unable to load  '/usr/share/Surge/paramdocumentation.xml'
Unable to parse
Error is:
Failed to open file at row=0 col=0
[100%] Built target Surge-LV2-Packaged

Do you have an idea what is missing?

[EDIT] I fixed it by

mkdir -p /usr/share/Surge
cp ./resources/data/paramdocumentation.xml /usr/share/Surge

before cmake --build build --config Release --target Surge-LV2-Packaged

But when running with jalv -s https://surge-synthesizer.github.io/lv2/surge I don’t get a UI :frowning:

Regards, Holger

That error is actually harmless at that point in the cycle, but I just pushed a change to suppress it anyway (https://github.com/surge-synthesizer/surge/commit/c09578e1debc780e8258dda579db1fe14bf1bb4a)

You do need to make sure to install all the assets in /usr/share/Surge or similar as mentioned on the README.

Ahd I don’t know what jalv -s does and when I run it I also don’t get a UI, I get a prompt. But

 jalv.gtk https://surge-synthesizer.github.io/lv2/surge

in an ssh -Y pi@raspberrypi.local session from my MBP with xquartz running gives me the attached.

Hope that helps!

2 Likes

@jofemodo, I try the last image but surge is not compiled, instead there is a file Surge.lv2 in zynthian plugin directory.

When searching in the log, there is only this for Surge :

Package ‘surge’ is not installed, so not removed
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Reading package lists…
Building dependency tree…
Reading state information…
libxcb-cursor-dev is already the newest version (0.1.1-4).
0 upgraded, 0 newly installed, 0 to remove and 1 not upgraded.
Cloning into ‘zynthian-surge.lv2’…
Checking out files: 93% (2266/2411)
Checking out files: 94% (2267/2411)
Checking out files: 95% (2291/2411)
Checking out files: 96% (2315/2411)
Checking out files: 97% (2339/2411)
Checking out files: 98% (2363/2411)
Checking out files: 99% (2387/2411)
Checking out files: 100% (2411/2411)
Checking out files: 100% (2411/2411), done.
Cloning into ‘mclk.lv2’…

I will look later to see if i understand

Ahhhh! jalv.gtk was the missing link! Thanks - will try this!

Regards, Holger

The last image doesn’t include the build recipe but the pre-built binary.
I’d no time for testing the build recipe yet …

Regards,

1 Like

I know that it used the prebuild, but in the image of yesterday surge works, and your and my additioin seems to break something :frowning:

:thinking:

6 Likes

Just FYI we released Surge 1.7.0 this morning on our website and it includes all the ARM changes discussed here. I’ve also let @falkTX know so he can update the kx repository accordingly. Thanks for your help all.

6 Likes

I’m confused,
Who does the sounds sample for whom?
:unamused: :face_with_monocle:

Could you clarify? Or did you mean this for another thread?

@wyleu is our sound sample antagonist, he’s mostly harmless.

9 Likes

Treat it as a form of thanks.

Thank you.

I like mostly harmless :smiley: !

5 Likes

Surge video :smiley:

https://youtu.be/mjgZVmhUC30

1 Like

Just installed Surge on my laptop. The presets sound amazing! Looking forward to a successful Zynthian port!

1 Like

I updated my Zynthian just now. One of the log messages said something to the effect of can't find package Surge. Does anyone know what that means?

1 Like

I have the same message when updating my newly built V4 kit.

Don’t worry about that. I will remove the message.

When are we likely to see Surge as an engine in the_standard_ build?

I think a problem is the lack of a conversion tool for the presets, or?

I took a look if I had a chance to write one in perl or python but I have some problems to match the values from the original data with one of the already converted (via jalv.gtk, I think) patches.

Regards, Holger

1 Like

Converting in perl or python is gonna kill you. Each of the 600 parameters has a different scale to map from patch value to linear [0,1] value which you need to put out, and then you also need the base 64 encoded patch which is what really drives the synth anyway.

I think the way to convert the patches is to script the LV2 C++ with python to instantiate a synth, open a patch, and save it with the LV2 save path. In theory lilv should let you do this but I’m not an expect. Then you just do a simple loop in C++ like this one

which has an “LV2 save” in there - whatever an LV2 save looks like.

I tried to figure out how to do this quickly but I just don’t know the LV2 APIs well enough. If you can give me a bit of C++ which given an LV2 object will give you the LV2 patch back it is easy for me to bind that in a loop for you though.

1 Like