Vember surge synth opensourced, builds and runs on Linux

It’s already an engine in all nightly builds. I would like to have a good preset collection …

Regards,

Doh! I hadn’t appreciated it is a LV2 synth! Found it now. I now have it working from RC3. What a lot of parameters!!! I observe that only 2 of the 4 currently available patches play without xruns. Both the short ones seem okay but both of the long decay (string like) presets xrun very often on a Raspberry Pi 4 running RC3 with official Raspberry Pi PSU with no other layers populated and no additional effects. (Other engines run fine on the same machine.) This is disappointing as it means Surge may not be of much use in its current form on the Zynthian. I hope there might be some optimisation that might allow it to run better. It looks and sounds like an impressive beast but we can’t accept clicks and splats all over our performance - my loudspeakers do not thank me for all that transient high energy output!

1 Like

Hey, I’d be curious to try it nevertheless. Where could I activate it in the webconf?
Edit: Nvm, found that there is a “search for new plugins” option in the lv2-page!

I’m using still the pi3-version and it doesn’t generate a single tone :frowning:

Hi @zynthianers!

I just added 2 new preset banks from the Surge Factory Presets, contributed by @spurkopf.

For enjoying the new presets:

  • Update your zynthian
  • Click “Search for New Plugins & Presets” from “webconf->Software->LV2 Plugins”
  • Restart your zynthian

Yes, i know, the process of adding new LV2 presets should be improved … :wink:

Enjoy … and thanks a lot, @spurkopf!!

P.S: I’m awaiting for more converted presets …

8 Likes

I just tried the same with Pi4 and official power supply, the xruns are a shame since the string-like patches especially sound great! Is there any experience with optimisation from other engines?
I guess for now I have to be happy that with the newly added Pi4 power Obdx runs amazingly well. :slightly_smiling_face:

See if you can edit the patches to use less voices, that was the only optimisation I used with obxd.

Hi @zynthianers!

I just added more preset banks for Surge, so we have until now:

  • 001-Factory_Brass
  • 002-Factory_Chords
  • 003-Factory_FX
  • 004-Factory_Keyboards
  • 005_Factory_Lead

Nice. This is getting better. There are pretty good presets …
But we want more, we need more! :grin:

Simply update and test … but remember the procedure for refreshing LV2 cache after the update:

  • click weconf’s LV2 panel: “Search for new Presets & Plugins”
  • restart UI & webconf OR simply reboot

Thanks @spurkopf!

5 Likes

Wow, impressive!

I’m having a strange issue with browsing through the list of Surge presets. Sometimes (happens fairly frequently), the I get an exclammation mark on the UI and the engine crashes. No more sound from the engine on any preset. Only way to recover from this is remove the layer and re-add the Surge Synth Layer:

UI Log shows this:

Nov 06 11:57:43 zynthian startx[5858]: ERROR:zynthian_engine.proc_cmd: Can’t exec engine command: preset file:///zynthian/zynthian-data/presets/lv2/Surge_004-Factory_Keyboards/KY_Artifical_01.ttl => End Of File (EOF). Exception style platform.
Nov 06 11:57:43 zynthian startx[5858]: <pexpect.pty_spawn.spawn object at 0xb3e351f0>
Nov 06 11:57:43 zynthian startx[5858]: command: /usr/local/bin/jalv
Nov 06 11:57:43 zynthian startx[5858]: args: [’/usr/local/bin/jalv’, ‘-n’, ‘Surge-00’, ‘https://surge-synthesizer.github.io/lv2/surge’]
Nov 06 11:57:43 zynthian startx[5858]: buffer (last 100 chars): b’’
Nov 06 11:57:43 zynthian startx[5858]: before (last 100 chars): b’preset file:///zynthian/zynthian-data/presets/lv2/Surge_004-Factory_Keyboards/KY_Artifical_01.ttl\r\n’
Nov 06 11:57:43 zynthian startx[5858]: after: <class ‘pexpect.exceptions.EOF’>
Nov 06 11:57:43 zynthian startx[5858]: match: None
Nov 06 11:57:43 zynthian startx[5858]: match_index: None
Nov 06 11:57:43 zynthian startx[5858]: exitstatus: None
Nov 06 11:57:43 zynthian startx[5858]: flag_eof: True
Nov 06 11:57:43 zynthian startx[5858]: pid: 5979
Nov 06 11:57:43 zynthian startx[5858]: child_fd: 39
Nov 06 11:57:43 zynthian startx[5858]: closed: False
Nov 06 11:57:43 zynthian startx[5858]: timeout: 20
Nov 06 11:57:43 zynthian startx[5858]: delimiter: <class ‘pexpect.exceptions.EOF’>
Nov 06 11:57:43 zynthian startx[5858]: logfile: None
Nov 06 11:57:43 zynthian startx[5858]: logfile_read: None
Nov 06 11:57:43 zynthian startx[5858]: logfile_send: None
Nov 06 11:57:43 zynthian startx[5858]: maxread: 2000
Nov 06 11:57:43 zynthian startx[5858]: ignorecase: False
Nov 06 11:57:43 zynthian startx[5858]: searchwindowsize: None
Nov 06 11:57:43 zynthian startx[5858]: delaybeforesend: 0
Nov 06 11:57:43 zynthian startx[5858]: delayafterclose: 0.1
Nov 06 11:57:43 zynthian startx[5858]: delayafterterminate: 0.1
Nov 06 11:57:43 zynthian startx[5858]: searcher: searcher_re:
Nov 06 11:57:43 zynthian startx[5858]: 0: re.compile(b’\n> ')

The preset/ttl file shows no indication of having issues, and moreover it plays fine when I restart the engine next time.

1 Like

I’ve experimented this issue too. I think the Surge binary we are using is not 100% stable …
We should update it …

Regards,

3 Likes

Not all Surge patches are created equal. I have found Roger Linn (MPE) on the windows VST work best with MPE. Do you have any tips for mere mortals as to how to add these patches to Zynthian?

Yes I know it probably wont work as Zythnian doesn’t support MPE yet … but we have to start somewhere :>

I can’t add anything to the mpe topic, but the Roger Linn presets will be included in the next preset batch.

I can’t get past ‘i’m fine, my name is surge and how can I help you?’

1 Like

Speaking of DSP power, I recall a guy giving a video talk on using the GPU on the Broadcom chip, I have to wonder if one of the 2 video output’s GPU on the Pi 4 could be repurposed. (The innards of the Broadcom stuff is the undocumented part of the open source Pi)

1 Like

I have been looking (rather cursoryly) at this recently. The Raspberry Pi has vector maths processors (Quad Processor Units or QPUs) which allow processing of several values simultaneously. I can see this might allow some audio processing to be offloaded, e.g. mixing but I don’t know what overhead there is to transfering data to and from the QPUs. This orphaned project describes many of the details and provides a way to inteface with the QPUs from C++ code. Video processing will often write direct to the video output avoiding the need to transfer data back to the main processor. Also video refresh rates are much slower than audio (30fps cf 44100fps) which means that such overhead may be more impactful for audio processing. I would love to see some use of the QPUs, even if it is for graphics so that the main CPU cores can be utilised more effectively for the important audio processing. (Who needs pictures?)

1 Like

Advertisers . . . ?

Heard of radio advertising?

1 Like

not without massively rapidly delivered disclaimers …

At least we used to be able to hide them away in the smallest font we could get out of a caption generator. Which was often one of their primary selling features … :smiley:

1 Like

New Surge version, seems like a pretty significant upgrade, specially interesting is this part on the 1.8 changelog

Infrastructure, Bugfixess and Code Quality

  • build-linux now works with ARM

They also added filters from OB-XD, Odin and others

4 Likes

Although it was “tested with RPI4/arm64
Still has 2 big negatives:

  • Minimum of 4 GB of RAM
  • VST3-compatible host application required