You are here

Test [xbuses2]

Commit 3171791:
I'm working on a new song without incident.
It seems that the indirect loop suppressor fixes the bugs that were coming up.

Let's see if anyone else is willing to do some testing so that we have more guarantees.

I'll keep working with this branch to detect any incidents.

Related:
Since we're working on sending, I'm going to suggest a new request.

Sending signals from the output of an output bus to the input of an input bus still fails (at least in pipewire) if there are no intermediaries (Carla external etc.).
The first commit of the xaudio-bus-aux branch seemed to fix this.

It's useful for many things, mainly for exporting the song without having to resort to external recorders.

I'm not really asking you to fix it, just to take a look at it. Maybe there was always a small bug there that prevented it and with all this it comes to light and can be solved.
If this is not the case and we still don't know the cause, it's not worth fixing.

As always, I leave it to you to consider.

Forums: 
rncbc's picture

thanks

it would be very interesting if you do all your tests, on both branches, [xbuses2](https://github.com/rncbc/qtractor/tree/xbuses2) and [xaudio-bus-aux](https://github.com/rncbc/qtractor/tree/xaudio-busaux), independently of course, starting from the same baseline, a new scratch session or one that is untouched by any of these experimental builds (remember to do backups and name or testing sessions wisely ;))

btw. the deeper cyclic/loop detection and avoidance is now also in effect in xaudio-bus-aux.

Sending signals from the output of an output bus to the input of an input bus still fails (at least in pipewire) if there are no intermediaries (Carla external etc.). The first commit of the xaudio-bus-aux branch seemed to fix this.

that's strange,... both branches do nothing in this regard, at least directly; are you really saying that xaudio-bus-aux fixed it in an earlier commit (and now it doesn't anymore)? or am I misunderstanding the whole story?

seeya

__ test-xbuses2_ab3bcd5 __

1_ AUXsend Audio:
They never lose the signal.
"Master Default" only once loses the plugins>fader>vumeter chain when creating a new send.
Setting the send to none and assigning it again fixes the issue.
I have not been able to reproduce the error any more times.

2_ AUXsend Midi: No issues.

3_ Rename/Delete Audio/Midi Buses: No issues.

4_ Direct connection between buses without AUXsend: Not possible

__ test-xaudio-bus-aux_1773e51 __

1_ AUXsend Audio: No issues.

2_ AUXsend Midi: No issues.

3_ Rename/Delete Audio/Midi Buses: May cause you to have to reactivate the AUXsend in audio.

4_ Direct connection between buses without AUXsend:
Only sometimes possible.
Only from the Master Default bus.
BusInExport suffers from the plugins>fader>vumeter chain loss incident
___

CONCLUSIONS:
Generally speaking, both work.
Errors are unpredictable.
Even though all the tests are positive, it does not guarantee that it cannot fail on another occasion.

"that's strange,... both branches do nothing in this regard, at least directly; are you really saying that xaudio-bus-aux fixed it in an earlier commit (and now it doesn't anymore)? or am I misunderstanding the whole story?"

__ [xaudio-bus-aux] commit 7de6ac9 Sep 15, 2024 __

Sending signal from Master to Export.

The signal is not displayed on the VU meter.

However, the "TRACK Export" is
receiving a signal.

I have tested with more buses and
only the "Master Default Bus" is able to
send a signal.

I don't know if there is a previous commit
that was squashed, because I remember being
able to send signal from any bus, without
the plugins>fader>vu meter disabled issue.
___

I continue testing the current commits of the [xbuses2] and [xaudio-bus-aux] branches.

File attachments: 
rncbc's picture

is this the commit where it's seen working (in the BusDirectoBus.gif) ? it's still there alright--it was not squashed--so you can reset to it temporarily (git reset --soft 7de6ac9) rebuild and confirm...

i've tried to replicate it with this commit exactly and the "Export out"->"Master in" doesn't work, as ever before; the same with all main, develop, xbuses2 and xaudio-bus-aux heads.

so, can you still reproduce it?

A_____
"is this the commit where it's seen working (in the BusDirectoBus.gif) ?"
Yes, as indicated in the gif: [xaudio-bus-aux] commit 7de6ac9 Sep 15, 2024

B_____
However, I think there was an earlier commit that was squashed where direct bus forwarding worked fine. I think, I'm not sure.

C_____
"so, can you still reproduce it?"
As I indicate in:

__ test-xaudio-bus-aux_1773e51 __
4_ Direct connection between buses without AUXsend:
Only sometimes possible.
Only from the Master Default bus.
BusInExport suffers from the plugins>fader>vumeter chain loss incident

___

Anyway, that's a minor thing. I see that the behavior is not clear.
We can ignore the direct sending between buses.

rncbc's picture

many thanks for the testing and comparison

re. 4 Direct connection between buses without AUXsend results are not actually important and completely orthogonal to the issue at hand, as as they're related exclusively to external loops, on connecting output->input jack-ports directly of the same jack-client (qtractor).

cheers

rncbc's picture

hi, sorry to bother you again,

something come out in the mean time re. alleged old/new session compatibility to xbuses2 branch which wasn't quite right...

good news are: new commit 6ed844f tries to fix said allegation; bad news are that it might invalidate (hopefully not) some of your findings and testings :S

it would be awesome if you take the plunge again, granted it's now into xbuses2 alone and see if you find any inconsistencies...

nb. opening sessions that were saved under the previous xbuses2 head are granted to mess up the perceptual (UI) and procedural (DSP) order of the audio output buses, so it is here recommended for you to redo all the testings from scratch, if possible.

wholly thanks again for all the patience you had; no hard feelings, quite the contrary ;)

cheers

I think we have a candidate.
I haven't been able to get her to fail.
I'm attaching a test project.

:)

File attachments: 
rncbc's picture

great! thanks

so, it's official then :)

if no blockers appear until then, maybe today the xbuses2 solution will merge into develop and main.

thanks a lot. cheers

UPDATE: it's live now, in develop and main: qtractor >= 1.2.0.17git.be3b40

If before Qtractor was the DAW that made normal tasks intuitive, and allowed to do the complex ones.
Now Qtractor is the DAW that makes any task intuitive, whether simple or complex.

Thanks

Thanks both of you for everything done here. I haven't been testing as I quickly realized I wasn't following and knew I'd just end up adding noise. That said, I've studied the test_xbuses2_6ed844f.qtz session. I'll start converting one of my sessions over to use the new workflow which I believe is based on the following:

  1. Routing from bus A to bus B should always be done via an AUX Send and never by connecting the outputs of bus A to the inputs of bus B.
  2. The Master Audio bus will always sit left-most in the Mixer, first in the list of Audio buses in the Buses panel, and exist in Duplex mode.

I think I'm starting to understand how cool this is going to be as it gets me out of the business of creating and connecting inputs! Nice.

Hi, @windowsrefund :

1_
Exactly, fast and powerful. In 2 clicks and 2 seconds you get something much more functional than in 60 clicks and 60 seconds.

2_
Actually, if you want, the most appropriate thing would be to rename the "Default Master" to "Default Group" and create a master at the end (which is its most logical place).
This way you guarantee that if you create new tracks they will end up in the Default Group without having to configure anything.
Also, if you create more groups, the tracks without a group will rest in the Default Group.

Before this new flow, there would never have been a reason to have renamed the "Default Master" as "Ignore". Because it always made sense for there to be a "Default Group".

Reaching this conclusion is not intuitive, it has cost me a lot, and that was for me the real conceptual error. Calling Master something that really isn't. Master Default is not a Master, it is a Group that assumes Master functions to simplify the simplest workflows.

But of course, documentation would have been needed to explain what a Group is, what an Auxiliary Bus is and what a Master Bus is and how to take advantage of these concepts with Qtractor to create powerful workflows...
I'm working on it :), in less than a week the How to should be finished.

The current flow is much more flexible and allows you to improvise more without having to think too much :).

Number 2 makes perfect sense. I've done a similar thing with a "SCRATCH" bus which hosts a bunch of typical plugins (synths) I use. By enabling only 1 plugin at a time, I have a constant "audition" track. The benefit here is I'd end up with a similar work flow which wouldn't need to be chased after manually each and every time a new track is added. Brilliant!

Hi again,

So I just spent a bit of time playing around with this idea and am either doing something wrong or some issue is lurking. I've modified the test_xbuses2_6ed844f.qtz provided by G3N-es by just stripping away some non-essential bits in order to focus on signal flow.

I am hearing the mix in my speakers but I don't see any signal in the mixer's Master strip.

mixer

connections

I also found another crash scenario which can be reproduced by selecting the Filter pulldown menu in the Connections dialog. In my case, I selected the menu and attempted to change from All to Qtractor. It happens regardless of whether the sequencer is playing.

Edit: I forgot to attach my modified .qtz file

rncbc's picture

hi, it seems that you messing up the session with different versions of the program, possibly one built on xbuses2 branch and another from an older main or develop head...

for full correctness, once you work under the xbuses2 branch you ought to not open and save a session again on an older build (ie. non xbuses2-aware) as there's a bunch of information that gets lost in between the sheets... :)

anyway, provided you're running the xbuses2 build, you can fix it by reassigning the aux-send in "Mix" to "Master" again, possibly resetting it to "(none)" first and then to "Master" again (see below the results).

btw. the xbuses2 branch has been merged into main (and develop) a few days ago and by this time it is outdated on a couple of fixes already.

hth. cheers

File attachments: 

Right, I'm just working from main. That said, I'll just whip together a brand new session as this one was cobbled together from the .qtz mentioned earlier in this thread.

Thanks

Yes, building a fresh session works entirely as expected. Very nice!

That said, I just discovered something. I have 3 audio buses: Default, MixDown, and Master

When I go to add the Aux Send on a bus, the MixDown string gets truncated.

aux send

Of course I figured "Oh we'll just shorten the string to Mix". Next time we pull down the same selection menu, Mix appears as expected but Master is truncated down to Ma..er

File attachments: 
rncbc's picture

that's easily fixable, stay tuned... ;)

otoh. looking at the latest screenshot it seems you're missing some button icons, or are my eyes to blame?

No, that's just the minimalist approach taken with my theme. :)

Now I feel dumb because I can't manage to hear an effects bus (delay in this case) in my mix.

Am I doing anything terrible here? The Calf Delay is just left at default settings but the Dry is turned all the way down as my goal here would be to mix the wet signal into the overall mix via an aux send.

File attachments: 

OK so on a whim, I removed the Aux Send on the Delay bus and created a new one with Master as a target. This works but it is not ideal since I'm in the habit of having a final bus where everything is sent before Master.

aux direct to master

File attachments: 

Hi @windowsrefund and @rncbc:

I'll get it back to you working but...
I've found that it's possible to collapse an auxiliary send if it's copied to a newly created bus.

However, reactivating it fixes it.
But we're already in such convoluted dynamics that I don't know if Rui can really foresee a solution for everything.
Maybe restart the plugin if it's moved or copied?
I don't know...

rncbc's picture

maybe the solution is just simple as this: moving or copying an aux-send must always reset target bus name to "(none)".

get it? :)

iirc. this was fixed to the current state of matters recently during the xaudio-bus-aux sprints, or sort of, but now I reckon that's probably a (serious) mistake. EDIT: it wasn't, sorry about that; but the writing is on the wall: copying/moving aux-sends must always reset to "(none)", nevertheless

what you think?

I think that's the solution. That would also avoid copying or moving sends to the same destination bus. That is, moving or copying a Master send to the Master bus for example.

As for the user experience, I think it's a perfectly understandable, predictable and even desirable behavior.

Because there will be times when you will copy it with the intention of "cloning" it, but most of the time it will be to edit it and you use the copy/move simply as a shortcut to avoid going to the drop-down menu. (l at least that's my case :) )

Yes. That would work fine.

rncbc's picture

implemented in qtractor >= 1.2.0.22git.2fe581

cheers

Cool. Does anyone have any feedback on the aux send snafu I posted above? I'll continue messing around later today to see if I can figure out what's going wrong. The good news is my existing sessions are still working. These use the "Insert routing" approach introduced by Carl Irwin.

I attached the working "AuxSendMix.g3n.qtz" above for you.
The error probably occurred when copying/moving an AUXsend.

File attachments: 

Yea, this works as expected. Thanks so much. Just curious though, was the Aux Send to Master left on the track as an oversight? Obviously everything works when I disable it.

BTW, this is such a good .qtz to provide alongside any documentation covering this new area of Qtractor's capabilities. In fact, given how difficult it is to write documentation around these topics and ideas, the more usable artifacts that can be presented alongside a given topic, the better.

Thanks again for that.

Add new comment