Surge XT

I did a little stress test. I tried the Ambien jam on the Torso T-1. One line led to Vitalium, where there was a preset with bass. The second line then played in Surge XT. I switched presets through the native GUI. There will still be some that generate a lot of XRUN. I would say that there are about 1/3 of them. And at the same time I was wondering like you how it will move with Pi 5.

The strength of Surge XT is precisely in those presets, that’s why I also published the install.log to see what the installation added. I will be happy to help prepare a complete package for easy installation in Zynthian. Only you, the more experienced, have to guide me. At least from the beginning. Surge XT releases a new version once every six months, which is an interval that would not burden me with compilation.

3 Likes

Do we have an estimate of when the work @ToFF did will be merged into the oram branch?

ASAP :wink:
Have you tested the binary in your side? Testing would help …
Also, we need to know if the current preset collection can be used or we need to regenerate the preset library again.

Regards,

1 Like

@jofemodo Amazing, not tried the binary yet will test it later tonight and let you know how it goes.
1 tiny question once the binary is compiled should I move it to any specific folder for zynthian to recognise it ?

@jofemodo It’s been a couple of days now since I tested surgeXt and can confirm it works great! Unfortunately the presets are not loaded in the Zynthian UI but they work great when changing them from the VNC UI

4 Likes

So it seems we need to regenerate our LV2 preset collection for surgeXT. I nice work that must be done with love and care. I have the shell script i used last time and perhaps some volunteer could stepforward and catch the task :wink:

Indeed, we have the tracks from the first time we did;

Call for Surge's LV2-presets

Regards,

1 Like

An important point is regarding how parameters are managed by the LV2 generated. They jumped to JUCE 7, that support natively LV2, but they doesn’t use “control ports”, that currently is the only interface zynthian supports. Could you tell how many parameters are accessible in the zynthian UI?

Thanks!

1 Like

I’ve done a bit of research now.
Nothing is accessible through the Zynthian UI.

SURGE XT have 8 macros, and by default, they are blank.

By default, the macros are assigned to midi CC 41-48, which is often mapped by default to knobs or slider banks for a lot of midi controllers.

Midi CC can be assigned to any paramaters.

I will try to create some simple patch and test how the CC midi signals will pass.

From the log file, I calculated that there are 1274 factory presets and 4742 3rdparty presets available.

If I’m very fast and it takes me 15 seconds to manually process one preset, I’ll need over 25 hours of time. (and subsequently a stay in an madhouse).

I also created a tar.gz file with all the files from the /usr/share/surge-xt/ directory. It is 205MB in size, so I can’t put it on github so that it is available for anyone interested in contributing to the development of LV2 form of presets, usable for Zynthian.

Studying the manual, I found out that the Surge XT now has built-in OSC access as well. :slight_smile: I’m wondering if it could be used to generate presets.

1 Like

I love oram, MIDI CC in Chain options is a super cool feature. It was enough to select the right CC and the internal learning of Midi works in SURGE XT.

Example with filter and cut off mapped to CC midi

Anyone familiar with developer of jalv lv2 plugin host?
If it was possible to control the saving of the lv2 preset from the command line, it would help our problem, and not only with the Surge XT.

Something along the lines of (for already launched jalv with Surge XT):
jalv.gtk --save_lv2_preset "name of preset"

In combination with the OSC command for loading a specific preset (in the Surge XT standard), the generation of lv2 presets for Zynthian could be automated.

This already exists in the jalv’s command line interface. Simply type “help” to see the available commands.

Anyway, i think we should ask surge developers to generate the LV2 presets when building the program. It’s the right thing. Pianoteq developers added a CLI option for this.

Regards,

I know the boss is always right. I went through both the help and the man page and couldn’t find any similar option. It’s simple, if I can’t find it, I can’t use it.
That’s why I agree and the best thing to do is to ask the Surge developers to add an option to generate lv2 presets.

This is the help from zynthian’s jalv CLI:

> help
Commands:
  help              Display this help message
  controls          Print settable control values
  monitors          Print output control values
  presets           Print available presets
  preset URI        Set preset
  save preset [BANK_URI,] LABEL
                    Save preset (BANK_URI is optional)
  set INDEX VALUE   Set control value by port index
  set SYMBOL VALUE  Set control value by symbol
  SYMBOL = VALUE    Set control value by symbol

Anyway, we should ask surgeXT developers to generate LV2 presets on build.
Could you open a feature request in the surgeXT repository? After you do it, send the link and all zynthian users interested on this (all??) would push a little bit by reposting “+1” and things like this :wink:

Regards,

Regards,

2 Likes

yes, I tried this too, but it doesn’t respond to help at all…

Thanks @jofemodo and thanks for your patience.

OK, I’ll try to write a request to Surge developers.

Perhaps the “help” command is not implemented in “jalv.gtk”. I was using “jalv”. Anyway, the save preset command is :wink:

Regards,

1 Like

Thanks @ToFF for your binaries! I was able to install Surge-XT and it works. What I noticed on your GitHub page is, that the data folder with the presets, wavetables etc. is missing.
One problem I found, Surge-XT has 6 outputs, when added to a chain, the first output is routed to input a, the remaining 5 to input b, so the stereo distribution is very uneven. Most likely only the first two outputs would be needed.

(Edit - added screenshot)

I got stuck on how big the file is, so I quickly created an archive with preset factors. Unzip it to the /usr/share/surge-xt directory in Zynthian.

surge-factory-presets.zip 19 MB

Interesting… I’ll see how it is for me during the day. Now I have a clean oram installed and I’m trying some surprisingly new drum plugins.

1 Like

It was no problem for me, I copied the whole folder from my desktop computer.

Done :slight_smile:

1 Like

The first result is not very encouraging. I followed the recommended procedure and all the presets are generated into the main manifest in the directory /usr/lib/aarch64-linux-gnu/lv2/Surge XT.lv2

It looks like this.

@prefix lv2:   <http://lv2plug.in/ns/lv2core#> .
@prefix rdfs:  <http://www.w3.org/2000/01/rdf-schema#> .
@prefix pset:  <http://lv2plug.in/ns/ext/presets#> .
@prefix state: <http://lv2plug.in/ns/ext/state#> .
@prefix ui:    <http://lv2plug.in/ns/extensions/ui#> .
@prefix xsd:   <http://www.w3.org/2001/XMLSchema#> .

<https://surge-synthesizer.github.io/lv2/surge-xt>
	a lv2:Plugin ;
	lv2:binary <libSurge%20XT.so> ;
	rdfs:seeAlso <dsp.ttl> .

<https://surge-synthesizer.github.io/lv2/surge-xt:UI>
	a ui:X11UI ;
	lv2:binary <libSurge%20XT.so> ;
	rdfs:seeAlso <ui.ttl> .

<https://surge-synthesizer.github.io/lv2/surge-xt:preset1>
	a pset:Preset ;
	lv2:appliesTo <https://surge-synthesizer.github.io/lv2/surge-xt> ;
	rdfs:label "INIT OR DROPPED" ;
	state:state [ <https://surge-synthesizer.github.io/lv2/surge-xt:Program> "0"^^xsd:int ; ] .

<https://surge-synthesizer.github.io/lv2/surge-xt:preset2>
	a pset:Preset ;
	lv2:appliesTo <https://surge-synthesizer.github.io/lv2/surge-xt> ;
	rdfs:label "Basses / Attacky" ;
	state:state [ <https://surge-synthesizer.github.io/lv2/surge-xt:Program> "1"^^xsd:int ; ] .

<https://surge-synthesizer.github.io/lv2/surge-xt:preset3>
	a pset:Preset ;
	lv2:appliesTo <https://surge-synthesizer.github.io/lv2/surge-xt> ;
	rdfs:label "Basses / Bass 1" ;
	state:state [ <https://surge-synthesizer.github.io/lv2/surge-xt:Program> "2"^^xsd:int ; ] .

In the natural GUI, it looks like this when selecting a preset