You are here

Master Default

I have edited templates in text mode and have successfully created templates with only one Masters Defaults bus in "non-duplex" modes.
Both audio and midi.
Everything has worked perfectly without any errors or crashes.
--- Post edited note ---
I didn't test enough.
In audio there seems to be no problems with just one input or output bus.
In midi it is essential to have an input and output, or Qtractor starts doing strange things.
I should have tested it thoroughly before publishing anything.
I will continue testing it in the coming days.
---
Obviously, the tracks were not assigned the missing bus, leaving the box empty. But they worked as expected.
If a new bus was created to replace the missing one, the track automatically adopted it.

This experiment has led me to the following conclusions:

1
The interface should allow changing the duplex property and moving the position of the "Master Default" bus, because there is no technical reason that prevents or advises against it.

2
It would be interesting to create a "No Bus" state (both in input and output) for the tracks and that it was selectable, as if it were another bus. Sometimes this configuration is useful. (It allows parallel AuxSends from the same track).

3
If the track has "No Bus" selected it should remain that way even if there is a bus that can take its place.

4
As long as there is more than one bus regardless of its mode, it should be able to be deleted.

5
If there is only 1 bus it cannot be deleted.

Not being able to move the Default Track gave me a lot of headaches until I found a configuration that justified a duplex bus at the top of the bus list.

Many others have encountered this problem and decided to name the master bus "Ignore" or "Disable", but it still took up a visual space in the mixer, which is annoying.

For my part I have already solved it.
Editing the template in text mode frees it from these limitations.

Rui, if you can review what I said and see some sense in it, it would be helpful for everyone, especially for those who are new.
If not, as I indicated, for whom it is useful: it can be solved from the text editor.

Thanks anyway whatever you decide :)

Forums: 

I didn't test enough.
In audio there seems to be no problems with just one input or output bus.
In midi it is essential to have an input and output, or Qtractor starts doing strange things.
I should have tested it thoroughly before publishing anything.
I will continue testing it in the coming days.

In the end I come to the conclusion that it is fine as it is.
There is nothing to change. It would end up creating more confusion.

Thanks for the patience

Could it be made that the new buses are created in the opposite direction to the current one?
I think that would solve all the problems.

I've been doing tests and I think there is no technical conflict in this, although I could be wrong.

"Master Default" would always be the last ones, and they would be identified by being the last ones.

In general, a Master should always be the last one (unless you want to add complementary tools that go outside the real audio flow you are working on, like a special BUS to create RENDERS etc...)

Also, in general, when you create a new bus it always tends to be lower in hierarchy than the previous one (it's not a strict rule, just a tendency).

It would still have some limitations, but there would be much fewer cases where they would manifest themselves. In fact, if you need a "BUS (DISABLE)" or a "BUS RENDER", the problem would not appear, because you would rename the "Master Default" and it would appear after the real Master that you would have created, right in its place (the auxiliary tools should be outside, or after, the real audio stream.

I also thought that it would not hurt to add a lock icon to the "Master Default" to make it clear that it has some properties locked.
Also, the "Duplex mode" should appear disabled, just like the delete button now appears disabled.

What do you think Rui?

File attachments: 
rncbc's picture

what exactly is/are the problem/s you're facing and suggesting to resolve?

just failing to (mis)understand what's the actual issue.

regards

As it is now, it generates configuration conflicts.

The Master, by definition and functionality, must be last so that the others can send data to it.

The "Default Master" can stop being semantically and create a new one to replace it.
Correct. But this is where the problem arises, because not only can it not be moved, it must necessarily be "Duplex".

EXAMPLE:

Let's imagine that I rename it as "MIX" to mix before the Master (which is highly recommended, by the way).

The "MIX" must not be "Duplex", but "Output".

Problem? Now I have a "MIX" input bus that I don't need, it takes up space and is confusing, because it appears in the connections.
Can you tell me... Well, use it as an input to record, what does it matter? Yes, it does, because it is confusing. Enough with the mess of plugis, sends etc etc to have inputs that are called incorrectly.

I continue, now I realize that I need a Reverb.

The Reverb must go before the "MIX". Yes or Yes because it is another element that must be mixed.
Again I can't. I must rename "MIX" as "REBERB" and create "MIX" again.
While mixing I realize that the mix requires a bit of strength and character.
A distortion or AMP BUS?
What a coincidence... It turns out that a distortion or AMP is subordinated to the reverb, yes or yes (First the effect, then the space). Start over.
And so on forever and ever.

It's not just that I always end up with two audio inputs that I don't need and that confuse. It's that every time I want to create a new BUS it becomes a nuisance. Because as I indicated in the previous entry, in audio: the buses that are created later are because they are less essential, and for the same reason that they are less essential they are more subordinate.

Summing up. As it is now, it forces you to work in the opposite way to how you should work. That's how it is. You will encounter this problem if you have to work with buses.

The solution that some have adopted is to name "Master Default" as (Ignore) and finally be able to work correctly.
I don't think it's a solution because there are still too many buses and too many inputs and outputs in the connections, which is not clean and is confusing.

The way to work is the Master at the end and subordinate buses from lowest to highest. There is no other way.

Therefore, reversing the order of creation would solve the problem, because it would be the logical way to work.
The MASTER at the end. In this way, you wouldn't have to rename anything, in fact, in most cases the user wouldn't even notice their limitations to move it or change its mode. Because it would be right where it should be, with the configuration that it should be.

It's not something that prevents you from working, but it is something annoying and confusing and frustrating when you start doing advanced things with Qtractor.
Over time, you accept it. I was not the first and I will not be the last. I am surprised that this has not been reported before.
Maybe it was reported and they did not know how to explain the problem properly, because it is complex to explain. Maybe it was not reported because we simply accept that it is a peculiarity of QTractor.

However, it is possible to solve it as I have indicated in the previous entry.

rncbc's picture

if this boils down to the trouble that you can only aux-send to buses that are below in the list? is it?

if yes, then I have bad news for you...

your suggestion maybe (not overly) simple to implement but I suspect some other (not so) complex sessions from some old folks will suddenly break or sound weird or not all...

just take an example: some guy/gal have this session with an inserted Aux-Send on the first Master Out bus (of course, this all only applies to audio buses)... all is working nice for years to date until your suggestion gets implemented... bang! it will just stop working as before, dang! sure you'll know why ;)

that to say that this particular ordering hindrance to audio output buses in qtractor, should be addressed in some other and hopefully definitive way, eg. something like an automatic topological sort of audio output buses, that applies only to internal processing exclusively (the UI will always see the same listing, as it is now displayed).

granted this is too internal ie. code stuff, so that it all remain to thank you (a lot) about your extensive explanation and proposed solution

but sorry, no cigar :)

cheers

bluebell's picture

These old folks do have some big Qtractor projects with Buses having AUX-Sends to Buses. If you extend the processing within one jack schedule then I am pretty confident that this extension won't break my existing projects.

Of course I'l test with my existing projects as soon as that branch has reached a mature state.

FYI: exporting a session to a file doesn't work with some of my projects anyway, so it can only get better.

"if this boils down to the trouble that you can only aux-send to buses that are below in the list? is it?"
No, not is it. It is correct. Is logical. And precisely for that reason, the Master must be the last one.

I think no one has as been able to explain, and that's why you don't know.
I'll send you a video in which it is reported up to minute 3.
https://youtu.be/pA-aLyHEqRg?feature=shared&t=170

There is no technical problem to solve, it's an conceptual and interface problem.
Conceptual:
The Master is the last step, that's why the final recording is called Master.
In Qtractor it is the first, and that is a mistake.

Interface:
The interface works so that the misconception is manifested.
However, if it worked so that the Master appeared in its correct place, last, there would be no error.

"just take an example..."
Therefore, the problem you mention would not occur.
With old sessions, the only thing that would happen is that the last bus would be unable to move and unable to change mode from the interface
(yes with an editor). All work correctly.

I'll send you a session template correctly configured with a text editor, so you can see that it's only a conceptual problem in qtractorBusForm.cpp.
It won't give any technical failure.

It's as easy to fix as... The "DEFAULT MASTER BUS" must always be the last one.
Therefore, you have to change qtractorBusForm.cpp so that it applies the restrictions to the last one and not to the First.

If I say this and I think it is something important, it is not because of me, it is because of Qtractor and the community.
Especially for those who are new.
As you can see in the template that I attached, I have already solved it for myself.

File attachments: 
rncbc's picture

you seem to have overlooked that the so called hindrance is deeply rooted in a deeply internal processing order.

aux-sends or even send/return inserts are not able to function properly if sourced from buses that are below or later in the processing order list. and that is a current qtractor dogma, so to speak.

the example given before still applies, nevertheless.

again, your solution is probably a good one and right for your exemplified scenarios but can't ever feel so comfortable it won't break some existing others (or make them SNAFU at best:))

cheers

bluebell's picture

In the video there are INSERTs used instead of AUX. You can have the same effect with duplex buses and using their input bus. You can connect anything to anything if you use duplex buses or INSERTs for the price of adding one jack buffer of latency. Keeping latencies equal for all tracks is key.

See https://sourceforge.net/p/qtractor/wiki/How%20To%20-%207%20Equal%20Latency%20for%20Tracks%20and%20Buses/

Chiming in to applaud any efforts to improve on this area of the workflow. Currently, I use the input bus method recommended by Carl in the video linked above. It's a bit tedious but I understand it and it works well. That said, it's important to understand the method is actually a work-around since buses don't mix down in the logical way one would expect. Also, we're still carrying around the "dead weight" of a bus we don't use (which is fine other than the fact it is taking up screen real estate).

Granted, given how long this plumbing has been in place, I'm sure the lift would be tremendous.

rncbc's picture

there's a new branch in town: xaudio-bus-aux

being one's attempt to cope with this whole mess...

some notes are due:

  • aux-sends are not restricted to target audio output buses that are listed below or after the sending one anymore;
  • ie. aux-sends to Master Out (audio) are now a valid working option;
  • aux-sends now work on most if not all acyclic scenarios;
  • though, it's not perfect, just one's best effort;
  • do not expect that it will work wrt.(audio) track exports.

please test && tell. cheers

I continue testing
I attach a session already set up in case it helps.

The first impression is that creating new ones (even before turning them on) causes others to be disabled.
I continue collecting information.

File attachments: 
rncbc's picture

please do remind of the acyclic note above

you cannot aux-send to a bus that already has another aux-send to it(self): that's exactly what is a cyclic scenario, which is to avoid at all times: yes, it will lead to the proverbial undefined behavior (and it seems you already noticed it:))

however, latest xaudio-bus-aux branch head has this already coped, by not letting you select an aux-send bus that is targeting the audio output bus where an aux-send being currently edited is inserted.

ps.remember that this highly experimental branch (xaudio-bus-aux) is in flux... please do something like the following often:

git reset --hard origin/xaudio-bus-aux

instead of just a normal git pull...

I'm counting on all of you to assess this all new functionality, thanks

cheers

The previous version worked with errors.

Commit 5db050b:
1- Sends between Buses do not work.
2- If it works, it is as if the signal was sent directly to the output. Without going through Plugins>Fader>Volumeter
3- Direct sends from tracks>Bus work correctly.

Thanks for providing this .qtz but I'm really confused what we are trying to achieve here. Why is this GROUP bus sending to MASTER via an Aux Send? Maybe it was just a work-around to what you described when you said "Sends between Buses do not work"?

Yea, I think I just answered my own question and believe you added the Aux chain in order to demonstrate what does work despite it not being ideal. As a quick experiment, I changed MIX to Duplex and tried sending GROUP outputs to it. No signal seen on MIX.

Exactly. However, in the initial commit everything worked at first, then it started to fail.

rncbc's picture

hi,

the problem you're facing is probably related to reusing a session that has been previously saved in between squashed commits...

one way to fix the situation is about changing the target bus of each non-working aux-send in audio output buses to anything but "(none)" and then again to the original.

for example: change the Aux-send in the REVERB bus from "Master" to "MIX" and then to "Master" back again--from that moment on the REVERB -> Aux-send:Master signal route should start working again.

the other way is starting with a brand new or any older session that was saved before or not under the xaudio -bus-aux branch inception.

hth.

cheers

I recompiled and created the session from zero.
I get similar results.
it is as if the signal was sent directly to the output. Without going through Plugins>Fader>Volumeter

rncbc's picture

hi, got this mess fixed, yet again!

you may now switch the aux-sends to "(none)" and back again to the intended target one (eg. "Master") to make it work.

IMPORTANT: the xaudio-bus-aux branch has been squashed into one single commit (7de6ac9), so that you'll must go with this git reset --hard origin/xaudio-bus-aux; once again, sorry for any inconvenience.

thanks for all the feedback; keep on testing thoroughly, please ;)

cheers

It just... WORKS!!!

I found it super easy to add a bit of distortion to the mix.
Before, you had to think about how to do things. That's how you just do them.

Just one detail. When we rename a bus, its AUXsends are orphaned, instead of being renamed as well.
I think that also happens in the current version of Qtractor.

I will continue mixing with this branch to be able to detect possible bugs, but it has given me a very good impression. No apparent bugs.

File attachments: 
rncbc's picture

probably not a (big) issue, for the time being.

unless you'll happen to find some in your tests ;)...

cheers

ps. still working on a definitive solution that applies to the general issue (aux-sends not being updated correctly when an output bus gets renamed).

pps. commit f6701b6 might have it nailed in xaudio-bus-aux branch; also merged into main/develop as c16c0fe.

Both work correctly. THANKS!!!

If a Bus is deleted, the orphaned AUXsed continues to show the name of the deleted bus.
I don't know if this is correct behavior, because it shows that there was a bus before,
or if it would be better if it appeared as (none).

rncbc's picture

is done: in main/develop as commit 34e6ddd; also merged into the xaudio-bus-aux branch as new commit c890f64 (squashed; c16c0fe is no more) .

thanks

90f656e and c890f64 work fine.
There is a small bug that I never reported because it's silly.
If you create an Insert or an Auxsend, turn it on and then open properties with double click it appears visually turned off. It's just visual, it's on and it works.

On the other hand I'm still testing a real case without incidents.
I haven't reached the mix phase yet, but all the Auxsends loaded in a template (created in a normal version of Qtractor) work fine.

File attachments: 
rncbc's picture

in fact, the silly fact has been lurking there for ages,

it is not exclusive to aux-sends and inserts alone, is also applied to all and any plugins... not anymore,

please check out 8f0c893, currently at main/develop and xaudio-bus-aux branch heads!

br.

Active button: Solved
AUXsend General:
I have been able to record, mix and master a song without incident.
Regarding signal sending, I have only tested the audio AUXsends, the midis should not have any incidents.

Regarding automatic renaming AUXsends in case of change in the destination bus, midi and audio AUXsends do their job correctly.

It seems to have been achieved. It is a great advance.
Thanks!!!

Pages

Add new comment