A few questions about Linux workflow with Jack and ZynAddSubFX

Thanks to the developers, I’m having a ball learning some sound design and arrangement. I’m wondering how I’m going to keep this organized once I get something coming together into a complete song though.

Let’s say I have a MIDI track sending output to ZynAddSubFX. Zyn is loaded with a patch I like, and it’s routed to system playback so I can hear everything.

  1. Routing Zyn to system playback seems to avoid any DSP chains on the track where I entered the MIDI notes in Renoise. That sort of makes sense - you can’t really do DSP on MIDI. So how should I route Zyn so that I can monkey around with its output from within Renoise?

  2. For instrument plugins that support DSSI, like Hexter, is there any way to change parameters of the synth on the fly? It seems like in Windows, everyone with cash to burn is using NI Massive, and they get a lot of variety out of heavily automating it. Anything similar we can do here?

Thanks for any help. Love the forums.

Hi. I haven’t yet worked with external synths, but I just tested with zyn - it is quite straightforward.

What I’ve done: start jack, start renoise, start zyn. In the renoise preferences select at least 2 input channels (I guess you’ll need 2 more for each external Prog you want to use). Put a Linein Device on the Track you wish to have zyn in. Connect zyn audio out with the renoise audio inputs via jack. Now select an empty instrument in renoise, go to the midi tab (next to sampler and plugin), in the lower half which controls outputs select the zyn midi input, correct channel for zyn etc. This created a soft “midi instrument” controlling zyn in the instrument list - and zyn output will enter renoise in the channel with the linein device. I don’t know if you have to manually connect renoise midi in jack to zyn or it’s done auto. Now I already could keyjazz zyn from renoise.

But external progs is not as cool as plugin synths. You’d also have to manage launching the extra progs (session manager?), the settings for your sounds etc I guess. Plugins are way better integrated. Automating Plugins, also dssi’s, uses an instrument automation device, and you can also automate midi controls with a midi automation device (for external zyn for example). Hexter ist probably a bad example, as it’s more a programmed fm synth than one with knobs 2 tweak, but with i.e. xsynth and whysynth it works quite well.

Yeah, i wish there was a dssi or vst version of zyn… :confused:

I think there is a dssi version, but I had no luck getting the version from ubuntu 14.04 repos to work in renoise. I also think I read it features no GUI, so you could only access patches made with the standalone version anyways? Also maybe LV2 is in progress, and I think renoise plans to try to support LV2? Bristol dssi/lv2/vst would be nice, too.

Btw: anyone got same problem with whysynth making a plop and no more sound until plugin reload if async gran oscillators with gaussian window above a certain length are triggered? Patch “DragonPurr” makes it blow up instantly most of the time, although it sometimes (seldom) works.

Linux VST’s are a bit rare, and I think that’s because you can’t release binaries of GPL software build with steinberg’s VST SDK, because of license issues. Damn. Some free VSTs I found are nice are tal Noisemaker, a good warm subtractive synth, a freaky thing called “tunefish” is also worth trying, it’s a VST version of a additive synth engine designed to make demoscene intro music with little processing power and code - sounds chippy, but more refined. I couldn’t yet get into how “capsaicin” works, but what I managed to vibrate sounds interesting.

I’m running into the same general scope of issues. I’m not sure if I’ve hit the same issue with WhySynth but have certainly lost sound a few times. I’ll let you know if I find I can reproduce that particular issue.

There seems to be a desire among developers of the Linux sound infrastructure to keep things modular, but plugging those modules together manually every time is a lot of work. Take https://www.youtube.com/watch?v=d15TvXXd_3Y for example: Dr. Luke talks about using 128 or more tracks in his DAW in order to write a pop song. Now I’m not Dr. Luke, but even as I’m approaching 10 softsynths at a time I don’t want to be dragging my mouse around in a “session handler” to wire up all of my instruments every time I start up my track.

I’m going to do some investigation and see if there’s anything out there that does what I need. Carla and Non Session Manager both seem to be in the ballpark. Carla doesn’t seem to want to restore a2j settings though, and Non complains and throws up a dialog with a wall of text on it if I try to start up a program with command line options - necessary in a lot of cases to reload settings.

There has got to be a better way. How are all the Linux users out there approaching these issues?

Another thing I’m curious about: say I’m running an LV2 softsynth in a Jack host. For a concrete example, OBXD (http://obxd.wordpress.com/) can make some rad sounds and can be hosted out of Carla (http://kxstudio.sourceforge.net/Applications:Carla). What’s the best routing to use so that when I hit a key on my USB MIDI keyboard, OBXD plays sound both out of my speakers and through Renoise at the same time? The last bit is important so that I can have effects chains saved into my song and automated that will apply to the sound generated by OBXD.

Huh, I don’t understand what and how you wish to achieve? I guess how you do it depends on that, so say, you either want to use renoise as a pure sequencable fx host, but do the main buzz via other jack programs, or you wish to use renoise as a main application/daw for sequencing etc and just have to use an external plugin host to be able to use plugins renoise won’t support internally?

Well, with jack you can route quasi at will. Apps like qjackcontrol simplify that a lot. integrating external things with renoise also works via the jack system. You can route midi inputs into renoise, config outputs to the external software (synth, plugin host). Then you can add virtual inputs to renoise (preferences->audio->in device, choose 2 channels per stereo device you want to route into renoise), and put them into fx chains with a “#line input” device, choosing input channels. In Jack you’ll see the number of virtual inputs set up in renoise, and you can route i.e. carla outputs into those channels - the audio will enter renoise via the line inputs. If you’re using renoise as the main daw I’d not connect the other hosts directly to the soundcard outputs but do routing in renoise internally. For example you have a track with midi data/instrument to the host set up, and line input from the host. then you could mix direct output in renoise, and maybe effected in a send channel that outputs 100% wet. But you could also use renoise as kind of sequencable effects processor, and go through another daw or directly to the output as far as other applications are concerned. You could connect Carla directly to outputs (or your main daw), and at the same time to the renoise inputs for effects, and keep renoise output 100% wet. You can route jack outputs to multiple inputs btw, and could also reconnect renoise outputs to another program. Jack routing is very powerful in that regard, you can wire up devices and applications virtually in any way you like.

By the way, if you use renoise as main daw, external hosts are interesting for progs and plugins renoise won’t support (standalone progs like zynadd, lv2), or to get handling of multiple inputs/outputs of plugins. But it’ll come with side effects. I rather fixed myself to using plugins in renoise.

Thanks for the tip on obxd, sounds cool, I’ve found a linux native vst of it via distrho by the way, that can be used directly as plugin in renoise. But it’s got a little flickery knobs interface sometimes as far as I can see, and and much cpu with many voices online!


Thanks, #line input seems to be just what I’m looking for.

It looks like #line input is actually solving two of my problems: I can get the processed output out with the rest of my sound just like I’d like it without having extra connections cluttering up the Carla layout and clogging up the CPU.

I’m pretty set on using Renoise as my main DAW if at all possible. OBXD and ZynAddSubFX are the main barriers to keeping everything completely inside the Renoise box, although maybe there are other LV2 plugins out there that I’ll want to use eventually.

Hmm, what kind of side effects? This is exactly the type of use case I’d like to sort out. I’m willing to contribute to some open source projects to get the whole thing working the way it needs to be.

Yeah, I haven’t looked closely at the source but it’d be cool if there are optimizations waiting to be applied.

I was also about to reply back asking for help with ALSA versus JACK MIDI and getting multiple devices out but this thread came to the rescue: jack and midi sudo modprobe snd-virmidi enable=1,1,1,1,1 and now a2jmidid has a bunch of inputs that can be selected as instruments renoise, and outputs that can be wired up to LV2 synths in Carla. Awesome!

Nice to hear you’ve sorted it out to your liking.

The “side effects” of external hosts/programs are in terms of integration into renoise and your projekt. First you’ll need some kind of solution to manage presets, starting up programs, and connecting jack ports for each project you have. With internal plugins states are happily saved with the project file. Automation is the second limitation, to sequence parameter changes in renoise you’ll need to use midi controls, and have the host set up to respond to the midi data. Internal plugins have direct access to parameters.

Hm, obxd sounds real cool, though I like tal noisemaker better in terms of tweakability. Sometimes I wish obxd had polyphonic unison, sounds so fat with the random spread control an panning. Or the tal plugin had some sort of detuned voice doubling. It seems to work fine as native vst, apart from gui glitches. Good solution to reduce cpu load is choosing only 2-4 voices, load is reducing linearly with the number of voices allocated. I’m a bit of a hobby coder, too, and have the obxd sources - haven’t looked closer yet, but I think simulating analog warmness comes with a price, like massive oversampling and lots of tweaky filters.

Btw: anyone got same problem with whysynth making a plop and no more sound until plugin reload if async gran oscillators with gaussian window above a certain length are triggered? Patch “DragonPurr” makes it blow up instantly most of the time, although it sometimes (seldom) works.

Yep - I have the same problem - see: https://forum.renoise.com/t/dssi-whysynth-does-not-play-with-async-granular-oscillator-patches/42050

As I’m at it, have you guys tipps on session management tools for external programs? I’m beginning to get fond of alsa modular synth, and want some kind of process that starts up the right instances of it, connecting in jack and loading the right patches, whenever I load up a tune using it in renoise. Maybe as zynadd was mentioned here, you already know a good sollution, saving me from some dull research on that topic…

incredulitor, you know there is a VST version of obxd and a DSSI version of zynaddsubfx? There are also LADSPA and DSSI versions of the Calf plugins too, all available here if you can’t use the kxstudio repo for some reason through a package manager -https://launchpad.net/~kxstudio-debian/+archive/ubuntu/plugins

(click on view package details on the right at the top and then expand what you want to look at, download the deb you want and extract it as if it were a zip or whatever).

The zynaddsubfx DSSI doesn’t have a gui so you have to use the patches as they are which is a bit annoying but better than nothing. The new beta version of Carla includes an LV2 version of zynaddsubfx so if we ever get LV2 support in Renoise then we’ll be able to use it inside properly, along with the Carla rack which is also LV2 now.

OopslFly, you can use Non-Session-Manager, it’s about the best there is. You can click Add, type ‘jackpatch’ and it will save all your connection. Renoise doesn’t seem to have proper support for it (as in it doesn’t save/open the actual renoise project you were using) but you can load up the project manually easily enough.