VST Live song/part transition with Crossfade

Consolidated feature request / bug report for VST Live 1.1.52.673:

We use Cubase to mix live audio for live-streaming. We use Dante to virtually split audio from a 48-channel hardware mixer and feed it to Cubase. Everything is low latency until we get into some of the effects and plugins. But latency is not a concern as we use delays to sync with video and then pipe it out on an RMTP stream and no one knows or cares about the total latency.

The main drawback with Cubase is there is no way to save “scenes” with preset volume levels and parameters (EQ, compression, pan, effects send levels, etc.) for different parts of the event being livestreamed; and then be able to recall them with smooth crossfades (instead of audio muted – such as what happens when Cubase Snapshots are recalled). We do save “scenes” on the hardware mixer and would like to be able to do the same in Cubase.

If Cubase had a “scene” save/recall capability we might also consider using it for live (concert) mixing. In this case, very low latency is critical, but might be manageable with careful selection of plugins.

VST Live ostensibly could do what we are looking for. At least it has the notions of live performance and multiple songs. DMX, lyrics and cords and possibly other features are of interest as well.

With that introduction, here’s the issues with VST Live that are apparent so far in version 1.1.52.673:

  1. Audio Tracks need a Global option. This would make it possible to create the equivalent of a hardware mixer where the configuration (or patching) of mic inputs can be persistent and continuous across songs (of the whole project). This should translate into being able to set up the Mixer so it’s configuration is unchanging. Audio levels and parameters would be stored in the Songs (maybe Parts) as they currently are.

  2. Crossfade. When a Song (or Part) is selected, VST Live should crossfade from the current Song/Part to the levels and parameters in the selected Song/Part. There should be a way to specify the crossfade time. This only needs to be supported for Global tracks. It is not acceptable to have glitches on the Global audio channels during the Song/Scene change as its likely there is talking on one of the audio channels and transition music on other channels. Recall-Safe will be needed as well to prevent a channel from having anything change during a Song/Scene recall – essentially a totally manually controlled channel.

  3. Reordering Tracks in Mixer. Currently when I reorder tracks in the Tracks view, the order does not change in the Mixer. I think it should. Either that or I should be able to reorder Tracks in the Mixer.

  4. Linking Faders. There should be a way to link two or more Tracks. Its common to build a stereo signal from two mono sources, possibly with some different volume/EQ/FX settings on the different mono channels.

  5. Latency Calculation. Cubase displays the latency for each channel which makes it relatively easy to add latency to channels with lower latency in order to match the delay of long latency channels. Something similar is needed in VST Live.

  6. Separate the Song Rack from the Track channel strips in Mixer. Clicking on the “e” symbol of the Song channel strip makes channel strips for the tracks unfold to the right. But they unfold along with the Rack, so it takes up some extra room. If I have 48 mics that will take some room and the Song rack will consume space as well.

  7. Orange speaker icon. If the project is saved with this turned on (passing live audio) on a Track and then reopened, the icon is orange but live audio does not pass. The icon has to be turned off and then on again for live audio to pass. The same is true for copying a Track. The copy will have the orange icon on, but live audio does not pass until the icon is cycled.

  8. DMX Tracks need a Global option too. For the same reasons that connected audio hardware is not changing, connected DMX hardware is normally not changing from Song to Song.

You can do that with Stacks in the Global Part. Those channels will be global too then.

Yes, in the making.
Btw the next version features a Preference for “Stack/Stack Input Fade In/Out” so to avoid clicks when switching Parts with Stacks. It would obviously not be applicable to “Global Stacks”, just wanted to mention it.

We have many requests for x-fading Songs, though.

Also in the making and probably available with the next version.

I guess its more about linking ports (create a stereo port from 2 mono sources)? You mention tracks a lot when you talk about (live) input options, so I guess it’s more about channels than tracks. Channel Groups are planned (as well as Port Groups), but it may take a while as we progress thru the endless wishlist. You may create a Group Channel for two mono channels and hide the mono channels as desired, it will not eat any significant CPU.

Latency compensation (track playback only) is also in the making.

Good idea, we already considered something like that. It would be more generic, you’d get a new “submixer” view for any selected channel.

Will check. That would be a bug.

Good point - but that is again less about tracks but more about DMX input->channel->output. For audio, you can realize this with (global) Stacks, we may need something similar for DMX. Likewise, we also consider Input Channels (global), which could provide what you ask for for any kind of media (audio, MIDI, DMX and possibly even video).

Thanks for your suggestions. We are listening and try our best.

Just tested it (admittedly, with the upcoming version, but we didn’t change anything in that area afaik).

  • new project
  • add audio track
  • assign input/output
  • monitor on - sound
  • save
  • load: sound.
    Note the “Edit/Preferences/Studio/Save Track Monitor Enabled” option is required for it to work.
    Better?

This works!
Thanks!

Made a local stack, assigned an audio input (upper right corner of the stack), the audio meter on the stack moves. The stack appears in the mixer, audio routes through to output. Same steps with Global Stack results in no meter movement. The global stack does not appear in the mixer. Can’t find a way to make it appear and thus cannot route it.

“Channel” is probably a better word than Track. I use the word track as that’s what I’m used to in Cubase and VST-Live Tracks seemed to be the closest to what I want to use to route in live audio. If I want to record or playback those tracks, I typically do that on another networked computer anyway.

When I first looked at Stacks they seemed pretty heavy in CPU usage, although that seems to be better now. That said, there is some kind of overlap / redundancy / confusion between the racks in the stacks view and the racks in the mixer view (of a stack).

As for linking, yes, sending multiple mono stack channels to a group can work. In most cases, two mono channels are being combined to stereo with common level, EQ, etc. I have one case of 4 mono channels that need to be reduced to a stereo pair with different panning, levels and EQ. The group approach can work for that.

So, I’m not looking for (automatic) latency compensation. I’m looking for a calculation of individual channel latency through all the FX units. I may be using some long-latency FX and I want to be able to manually add latency to the lower latency channels so they are all time aligned. Again, in the livestream use-case, total latency is not a concern, but differential latency is.

You are welcome and you are doing an amazingly good job of listening and guiding the development process. I look forward to being able to use VST-Live in an actual “live” setting in the near future.

We fixed a lot in the Glpobal Part area, so give it another try with the next version coming very soon.

Basically, they consume close to no CPU at all by themselves, but plugins do. There was a bug however that kept Stacks busy after they should have sounded off, especially when applying “Preload”; all of this has been fixed meanwhile.

But we are :slight_smile:

When we can show you the track’s latency, we may as well just compensate for it (optionally). Working on it.

Fast forward to Version 1.2.3.749. Global Stacks are working much better in many regards since I last evaluated this in March.

Is there a way to set the volume level in a global stack for one song and then set it to a different level in a second song, such that when I toggle between songs, the volume level changes accordingly? So basically the stack is global across the songs, but the volume parameter is captured with the local song.

And if we can figure out how to do that, my next question is can we get a crossfade to happen between those two volume levels when changing songs?

Good point, will check how it can be done.

@bob_k @musicullum ,

isn’t there the option for volume levels in Actions&Shortcuts/GlobalStack for do this job?
Képernyőkép 2023-07-21 115521

That’s correct, it can be done this way. Then you need a MIDI track to send those levels.

Sorry, but I’m not using any MIDI tracks, and I don’t want to use any MIDI tracks. So far, my application is live audio, I’m looking for something similar to scene save/recall on big iron mixers.

Oh and by the way, I believe there is a similar need for DMX channels. They are essentially global and I’d want to be able to set different DMX values for different songs and I’d want crossfade.

@bob_k I’m an user “only” who payed my copy, so not speaking from developer side. I personally had and has lot’s of idea regarding the application and were writing postst and answers from last autumn and have lot’s of for future also, but don’t want to flood users forum with them.

Currently you can store different actions and you can recall them using MIDI tracks, also there dedicated vMIDI ports to feed-back them. If you wouldn’t use MIDI track, then don’t use, but currently that is the way to store and recall different type of DATAs. Just apply 1pc of volume data in the beginning of your song and u’re done.

I have lot’s of dream about DMX channel handling, additionally ordered expensive lights to build a “self-running” setup with VSTLive, that can be transported more flexible then my program on GrandMA2. Your lights going to be automated with your songs, right? As @musicullum mentioned in another topic, some solution for multiple use of the “same-song” is under developent (that was a gap, a missing piece of puzzle what would happen in-between two songs). As soon it’s ready, all of us can stream off-song values (to DMX, to video, etc…) in idle time…

Have to admint, the idea of “Crossfade-values” when stepping to new song can be handy I absolutely agree :slight_smile:

It was just a suggestion how to get it to work until we come up with another solution.

Sure no problem. I’m still evaluating. My “goal” it to have the equivalent of Cubase with the addition of scenes and crossfades for livestream audio mixing. I have a big (annual) event later in the year and if VST Live is ready, capable and stable I’d love to use it. I have smaller events all year long and would love to use it for them as well, but I can limp along with Cubase. The conversion from Cubase to VST Live will take some effort as our template has over 50 live audio channels each with eq, compression, pitch correction, reverbs, etc., etc., etc.

Beyond this, there are obviously other possibilities, for example DMX. But those possibilities are not a make or break decision items - for me anyway.

Is there any update on the ability to crossfade volume on a global stack when transitioning from one Song to another or Part to Part? As of VST-Live 1.3.2.778 when I set a level on a global stack and then change songs, the level stays the same. Basically just one global volume level for all songs and parts.

Checking in with VST-Live 1.3.15.796, there does not seem to be any development on the ability to crossfade volume on a global stack when transitioning from one Song to another or Part to Part. I started this request in January 2023 hoping to be able to have such a feature and thus be able to use VST-Live for a major production later this year. Time is running out in terms of having sufficient time to verify stability, not to mention setting up a complex environment and training people. Perhaps it will be ready by mid-year 2024?

For that, you need to create separate Stacks. A global Stack is global, singular, and static. “Local” Stacks provide input fades, automatic sustain (keep active until output signal has dropped so to not cutoff echoes etc), and additional sustain as set in preferences.
Furthermore, you can program global Stack volumes with MIDI tracks, using Actions and built-in Virtual MIDI ports.

Song fades are planned but rather complex and will take a while to implement. Yes, it takes longer, but our focus is and remains on stability, and most asked for features which can be implemented in a reasonable amount of time first.

Please, describe how to do this :pray:

Exactly. Create a MIDI track, even if you don’t use MIDI tracks otherwise, so just for this purpose. Set its output to Virtual MIDI 3 (or any other of the 8 available), double click to create a MIDI event and move it to the top. Edit/MIDI List Editor and create a MIDI message of your choice, say Controller #1.
Then in „Devices/Actions and Shortcuts“ in the Global Stack Category add a „Volume“ action for Stack 1 and set its MIDI input to Virtual MIDI 3, and status to controller and data1 to 1 (both to and from), data2 from 0 to 127.

1 Like