View Issue Details

IDProjectCategoryView StatusLast Update
0009884ardourbugspublic2025-01-27 11:44
Reporterjohne53 Assigned To 
PriorityhighSeveritymajorReproducibilityalways
Status newResolutionopen 
PlatformAllOSProbably allOS VersionProbably all
Product VersionMixbus 10.x 
Summary0009884: Long-standing routing weirdness within Mixbus
DescriptionFWIW I've reproduced this on Windows and Mac but it'd already been reported on the Mixbus forum as affecting Mac and Linux. It concerns audio being audible (and distorted) despite the audio not being routed anywhere...
Steps To Reproduce1) Create a new (empty) session and un-assign all MixBus strips so they aren't routed to Master.
2) Add a stereo track with audio, but don't assign its outputs to any bus or to Master.
3) For any of the Mixbusses 1 thru 8, assign its output to be routed to the new channel's input.

Even though the channel's output isn't routed anywhere, hitting Play produces broken glitchy audio and the Master meters can be seen to move (despite nothing being routed to Master...)

OTOH if I route any Mixbus 9 thru 12 to the new track (rather than 1 thru 8) I don't hear or see the problem.
Additional InformationIt's unclear whether this is an issue in the Ardour/Mixbus code or in the Mixbus plugin but apparently, it's been a long-standing problem affecting Mac. But more recently, I and other Mixbus users can reproduce it on the other platforms.
TagsNo tags attached.

Activities

x42

2025-01-25 19:00

administrator   ~0029191

> 3) For any of the Mixbusses 1 thru 8, assign its output to be routed to the new channel's input.

This effectively creates a feedback loop.

The master/mixbus assigns are merely gain stages. in your case there is still a Track -> Mixbus -> Track loop. The result of that is undefined.

johne53

2025-01-25 19:13

reporter   ~0029192

But the track output was left unassigned Robin, so it shouldn't be feeding a signal to any Mixbus

x42

2025-01-25 19:57

administrator   ~0029193

Mixbus uses internal sends which are always active (like a mixing desk). Track outputs are not used in Mixbus at all.
If you disable a Mixbus send or Master-bus assign, that leaves the internal connection in tact, and just decreases the gain to [near] zero.
There is always some dither noise in Mixbus but it should not amplify as you describe..

I just tried your step-by-step recipe and cannot reproduce it here..

as 4th step I set the track to monitor Input (otherwise nothing would play) and I also disconnected it from any physical input (by default the track is connected to the soundcard's input as well)

In your case, is the stereo-track (step2) exclusively connected to a mixbus' output or does it also have a physical input connected to it? and if so, does the noise persist when you disconnect the physical input?

Could you add a scope or some analyzer to the master bus, and see what the actual signal is? maybe just "ACE Inline Scope" (comes with mixbus) if you don't have other analyzers around
mixbus-feedback.png (370,797 bytes)

johne53

2025-01-25 20:33

reporter   ~0029194

Okay Robin I'll try some experiments tomorrow but is this just a feature of Mixbus or would I see the same behavioue in Ardour?

johne53

2025-01-25 20:38

reporter   ~0029195

Oh, and to answer your question... the track input was exclusively connected to a Mixbus output (not via a physical connection and not javing any extra connection).

johne53

2025-01-26 08:06

reporter   ~0029196

Sorry... I meant to say that the connections are only as per your screenshot without "having" any extra connections.

Anyway, I added the ACE Inline Scope and each time I hear something I see a momentary signal on both channels (though predominantly the LHS). I've attached a screenshot for you. I'll try this with Ardour once I've had some breakfast! I could also upload the session somewhere if that'd help?

Something else occurred to me though... from what you're saying, it seems as if for every output which can route to an input, there'll be a permanent connection - except that when the connection isn't required it gets replaced by an attenuator. So why is this only happening when I route a Mixbus output to a channel input? You'd think it'd be happening all over the place!
Capture-18.png (10,317 bytes)   
Capture-18.png (10,317 bytes)   

johne53

2025-01-26 10:09

reporter   ~0029197

Okay... Ardour doesn't come with preset busses of course so I had to create a bus as well as a channel but I couldn't reproduce the problem with Ardour. My guess is that it might be an issue with the MB plugin.

I've created a small zip file containing an example of a non-working Mixbus session but it's 30MB which is quite small but too big to attach here. Let me know if you need me to upload it somewhere else.

x42

2025-01-26 13:11

administrator   ~0029198

Yeah, in Ardour you will need to make explicit port connections since there is no internal routing.
I suppose you can mimic it by using bus sends and set send-option: allow feedback.

An empty session with just routing as you describe should be a few kb at most, and just the .ardour session file should suffice.

johne53

2025-01-26 13:38

reporter   ~0029199

In that case I've attached my Mixbus session file with 1 x stereo track - but do keep in mind that the problem only tends to be evident if the track contains stereo audio (it won't happen at all if the track is empty...) I didn't try a mono clip on the stereo track but I did try a mono clip with a mono track. That did produce the problem but much less frequently.
JE-test-2.ardour (315,183 bytes)

johne53

2025-01-27 08:47

reporter   ~0029200

A bit more info... I realised that for both Ardour and Mixbus, right-clicking any channel's name (or bus name) shows a popup menu with an entry saying Protect Against Denormals. But for Mixbus (on Windows at least) it doesn't seem to be selectable. Could that be contributing to the problem?

johne53

2025-01-27 11:44

reporter   ~0029201

I found this code in 'libs/ardour/route.cc' which disables Ardour's denormalling because the Harrison plugin already implements its own:-

void
Route::set_denormal_protection (bool yn)
{
#ifdef MIXBUS
    if (Profile->get_mixbus()) {
        /* Mixbus include built-in dither/denormal protection */
        yn = false; // <--- !!!! DISABLES ARDOUR'S DENORMALLING !!!!
    }
#endif
    if (_denormal_protection != yn) {
        _denormal_protection = yn;
        denormal_protection_changed (); /* EMIT SIGNAL */
    }
}

As an experiment, I tried setting 'yn' to be permanently 'true' but all that did was to trigger an abort() somewhere, So this is all suggestive of an issue with Harrison's inbuilt dithering/denormalling. Maybe someone could ask Ben to take a look here?

Issue History

Date Modified Username Field Change
2025-01-25 15:21 johne53 New Issue
2025-01-25 19:00 x42 Note Added: 0029191
2025-01-25 19:13 johne53 Note Added: 0029192
2025-01-25 19:57 x42 Note Added: 0029193
2025-01-25 19:57 x42 File Added: mixbus-feedback.png
2025-01-25 20:33 johne53 Note Added: 0029194
2025-01-25 20:38 johne53 Note Added: 0029195
2025-01-26 08:06 johne53 Note Added: 0029196
2025-01-26 08:06 johne53 File Added: Capture-18.png
2025-01-26 10:09 johne53 Note Added: 0029197
2025-01-26 13:11 x42 Note Added: 0029198
2025-01-26 13:38 johne53 Note Added: 0029199
2025-01-26 13:38 johne53 File Added: JE-test-2.ardour
2025-01-27 08:47 johne53 Note Added: 0029200
2025-01-27 11:44 johne53 Note Added: 0029201