Updated Hybrid System Template

Hi, all

Not a performance this time, but some of you might find this useful. I’ve finished setting up the latest version of my VCV template for use with my hybrid system. Some of the goals I had with this new configuration were to really nail the clocking and latency compensation issues when combining hardware and software, have a go-to set of utilities for the modular hardware, tweak some of my MIDI controller mapping, and just generally try to make it faster and easier to get rolling when starting a new patch. This is used for both studio work as well as live jams and streams. For those who don’t care, feel free to move on to some of the cool patch videos, for the rest of you… this might be a little long. Apologies in advance.

This whole template and system revolves around three core components- MindMeld modules for the mixing core of the software and hardware components, an Expert Sleepers ES-9 audio interface, and an ALM Busy Circuits Pamela’s New Workout for clocking everything (and other things, of course). I’m going to skip some of the details related to some of the MM config- it’s pretty standard for lots of us, complete with FX routing and such (thanks for the inspiration, Omri Cohen!). The notable thing here is that this is using two instances of Stoermelder MIDI-CAT to allow two different presets of a BCR2000 controller to control 16 channels and all of the aux sends of the MM using two different presets on the controller. This is done using two different presets in the BCR to essentially switch between two “layers”, 1-8 and 9-16. This uses two different MIDI channels on the BCR and a bit of tweaky configuration to make it work. And it works quite well. The only minor thing that I’m missing here is a way to map the MM LPF to a CC. The response of LPF in the EQMaster isn’t what I’m looking for for my application, so I will likely add Vult Tangents on all of the inserts for this application. That worked great for the last stream I did, but it does add up to a ton of modules and cabling.

The top row of the template is mainly aimed at the utilities for the hardware rack. This is all pre-patched from the inputs on the ES-9 so as things are brought into VCV, I can see spectrum (in EQMaster), voltage and note in PolyProbe, waveforms in the two scopes, and a tuner for 9 channels. This is hugely helpful in quickly seeing what’s going on in the hardware. To make it a bit more manageable, there is a Count Modula Poly Mute to allow the switching on and off of the channels to the utility chain. The two scopes are there because they are both great scopes, but each has some strengths and some weaknesses. So they are both there. This is great for analysis and quickly spotting any weirdness or things that need to be adjusted in the hardware. Each of my main audio channels has a dedicated feed to the chain, plus one extra as a “probe” that I can patch into any random thing in the rack to look at specific points (this is the channel 14 connection and 9th Hot Tuna). There are two extra channels for bringing in VCV signals if I need to look at or align anything between software and hardware signals.

I should note that this is running on a Mac and as such, I am able to create Aggregate Audio Devices. In this case, the audio interface is an aggregate of a Focusrite Saffire Pro24, the ES-9, and Soundflower IO. I have tried Blackhole and, despite being more modern, it has not worked as well for me as Soundflower. This is what is populating the Audio-64 module, and it’s set up this way to be able to send audio directly to Logic or Ableton if I decide to (there is the Mac IAC driver to move MIDI between the applications already in place as well)

There is a small recording section with the VCV Rec module and the Nysthi Polyrec. This is obviously to quickly capture jams and multitrack recordings for later mixing. The only thing to really note here is the Mute buttons that are essentially working as recording arm buttons to interrupt the run gate from the Clocked module when I hit run on the hardware. A simple thing, but I like having it very obvious if I’m about to record a ton of .WAV files (and turn it off easily).

The last note is really about clocking and latency. After mucking around with lots and lots of different strategies for managing all of this, I ultimately wound up doing all of the clocking externally- the Pamela’s New Workout is the master clock for all of the hardware and in VCV, Impromptu Clocked is slaved to that. To be sure, there are some tradeoffs here, but this wound up working far and away the best for me for a few reasons. First, there is the weirdness of how clocking and resets are handled in different pieces of hardware. I’ve found that my system is much more stable and consistent when running everything from Pam using buffered mults and using the reset pulses from Pam. When running Clocked out of VCV as the master for hardware, I had to do some rather complex things to manage all of this and that wound up taking up precious ES-9 outputs. There’s also a very satisfying clicky button to start and stop things on the module :wink: . The second major reason to do this is latency compensation. When running Clocked as the master for the whole system, I needed to have a massive bank of signal delays to offset all of the internal VCV voices to align with the hardware. By moving the master clock to the hardware, I no longer need to do this. Because the clock signal has the same latency as the audio and modulation signals from the hardware, anything in VCV that is using that clock is already offset. I will need to add compensation for anything that isn’t tied to a clock, but that is fairly rare for what I do (if it’s not sequenced, it does not need to be tightly synced in my case). There are two Clocked modules here to manage the internal bits with dividing and multiplying clocks, adding swing, etc. because they are just great modules for what I do. I’v also added the RCM Seq Adapter to manage that annoying issue of sequencers skipping the first step (this is a great utility module for those who haven’t tried to use it).

That’s basically it. As I say, hopefully this gives others who are trying to set up a hybrid system some ideas for ways they might want to build up a template. mHappy to anser any questions anybody has, and of course, if there are any ideas on ways to improve this, I’m all ears to those as well.

Cheers

6 Likes

Awesome template and write up!

Just to let you know you can map the LPF and HPF in the MM track settings by clicking on the little filter LEDs on the front panel :sunglasses:

5 Likes

Perfect! I had no idea this was possible (I never actually noticed that indicator before)- this will absolutely be a great update to the template. There are times I like to bring in a track using a combination of a filter and a fader- even have a knob on the BCR reserved for this- and being able to map the filter in directly in huge. You guys always seem to have anticipated what I need to do before I do. Thanks, Steve and Marc!

It’s our pleasure :slight_smile:

You’d be forgiven for not knowing that as I’m not sure that particular feature has even made it to the manual yet - its due an update.

Settings in menus like that are generally not mappable - but we realised that the filters at least could be mapped by hooking it to those little ‘filter active’ LEDs

That should save you 16 instances of Tangents :slight_smile:

2 Likes

Indeed, the issue isn’t with the modules as much as the clutter. I had poked at different ways to try to do the mapping. I tried CV-MAP but it was not able to grab the function since it was in a contextual menu- your solution is a great one and it works well for how I’m going to use it. This will help me only add dedicated filters to the channels that I want that particular sound on.

1 Like

Great write up. Many thanks. This is a task I have yet to fully take on. I have the same on the hardware side (BCR2K, ES-9, PNW) so I wonder if you would be prepared to share the template file so that I may investigate your solutions in more depth. Cheers.

Great work and write-up!

I’ve been contemplating a few times to write a complete guide to latency free sequencing and audio in a hybrid system, but it’s a bit daunting when you realize all the different combinations and scenarios possible :slight_smile:

Brief note on clocking - If you master-clock from Rack, It is fairly simple to divide the clocking into two seperate “arms/lanes/departments”, where one (master) is clocking everything that goes to hardware, including clock, run signal and any sequences from Rack to hardware, and the other (slave) is clocking everything that only plays in Rack. Done by a master and slave clock, as you allude to:

Important to note, as I found out, that Pam’s wants a max. 5V signal for clock and run otherwise it’s unstable :slight_smile:

This uses 2 plugs (clock, run) on the ES-9, leaving 6 more for sequencing/other.

But yeah… as soon as you get into hybrid/cross-environment sequencing then you mostly won’t escape the need for latency compensation. Do we have a polyphonic signal-delay?

HI, Nik

Very happy you found this helpful. I’ve attached the file here if you want to take a look at it and modify it for your needs. Note that I have not yet mapped the LPFs in MM in this template yet based on Steve’s comments above (that’s a task for today). Also, there are some spare MIDI-CATs that are not yet mapped to anything. These are there for some of my other MIDI controllers that I use (or not) in individual patches for specific functions. I just like having them ready to go if I decide to use them. Obviously this doesn’t cover the modular hardware side of things, but I will mention that I’m feeding the PNW clock on ES-9 input #9, 10-13 are reserved for utilities and modulation, and #14 is that “probe” input that I mention.

DSL Template-2-21-With Mappings.vcv (127.5 KB)

3 Likes

Hi, Lars

Thanks for the thoughts. Indeed, latency is a bit of a deep thing to try to wade into and it can be a bit tricky to explore completely due to all of the nuances and details. I will say that what you are suggesting here with splitting the clock into internal and external lanes is basically where I wound up when I was using VCV as the clock master, so I think you are spot on there. I was originally delaying the individual signals on the MM inserts, but then I realized that I could just delay the clock and get (mostly) the same results with a lot fewer modules. Your example here looks very clean and I think this is going to help people who want to do the clocking internally.

Your comments about the 5V clock is a really important one for a couple of other reasons. The topic of voltage- too much or two little- is something to very much keep in mind with modular hardware. I like your solution here. Before the PNW arrived this week (it was lost in the US mail), I was experimenting with using the clock from my MiniBrute 2S. This worked- sort of- but I ran into two issues that I needed to sort. The first is the 5V issue, which is what the MB2S also puts out. Not a problem in an of itself, but what I had been doing was feeding the clock from the MB2S to everything else using a passive hardware mult. What was happening is that I was getting just enough of a voltage drop with everything connected that I was seeing some erratic behavior on some modules. I noticed the issue because I was able to look at the voltage in my template. Switching to a hardware buffered mult solved the issue, but this was an annoying thing to track down because not all modules had an issue, and those that did were intermittent since the voltage was apparently right on the edge of the detection threshold.

The second issue was managing reset pulses. This was just a flat out pain in the neck to sort. The module that seemed to have the most issues in my rig was by Befaco Muxlicer and getting that on the same page as my MB2S, Grids, and VCV. Hoops were jumped through, like using a separate Clocked to just sent a unique reset pulse and other things, but it was a mess. Happily, having everything in hardware has cleaned up those issues. So far, anyway- I’m sure the next module I add will throw this all into chaos :wink:

The thought has crossed my mind about doing a video on all of this as well, but I wanted to get a sense of it anybody would find it useful before digging into any of it. As you say, it’s a lot to cover, the details are fussy, and it’s not a “sexy” topic. And as to your question about polyphonic delay, I’m not aware of one- I’m also using that same AS Signal Delay module. Perfect for what it needs to do, but a poly version would be very handy. If anybody knows of something like this, please let us know.

1 Like

Yeah, as I wrote on the eurorack forum, IMHO there is definately a need for just a little more standardization of voltages and signals in eurorack, and I wish they would just take a cue from Rack in that department. Makes life so much more simple. But maybe it’s a case of “simply too late” although it seems it would be really simple for the main manufacturers to just stick their heads together.

I think a video would be great Ethan! It might not seem so sexy, but it’s an eternal issue in hybrid setups for so many people, so I think it would be welcomed. One video to cover all bases might be too ambitious, but maybe split it up into several videos by main scenario, such as:

  1. Clocking from software->hardware, hardware->software.
  2. Sequencing from software->hardware, hardware->software, both directions.
  3. Sound processing/effects and recording, from software->hardware, hardware->software, both directions.

It’s a tall order but if you can pull it off you’re a hero :slight_smile:

A simple poly signal-delay module sounds like it should be easy. Simple 2 or 3 hp module with a poly in, a delay-time knob and a poly out. Maybe something for @Squinky.Labs, @matt, @marc_boule, @synthi or @CountModula ?

2 Likes

Many many thanks. I will have a good look at it.

1 Like

Enjoy! If you come up with any interesting tweaks, please do share. This is pretty specific to my system and workflow so you’ll want to customize it to your own needs, but hopefully it’s a good start for you and your system.

1 Like

CVD is a basic poly delay. The TIME param is calibrated in seconds, so for example, eight-click TIME and set it to 0.003, leave the small knob on 1, set DRY/WET to full wet, and you have an exact 3 millisecond delay.

(Or exact if the time entered and the current sample rate work out to an even number of samples; otherwise it rounds down. So at 44.1khz, 3ms is 132.3 samples, and it will delay by 132 samples.)

1 Like

Nice, thanks. Will check it out to give it a test run in this configuration.