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: 

I thought it was a good solution to reset the AuxSend target when it was moved or copied.
However, in practice (once I had the time to use it a lot) it is annoying.
I'm trying to solve that annoyance.

My approach then was:
If manually resetting the AuxSend from its form fixed the errors, maybe resetting them as an automatic routine from the code would work.

I've done it and it works. I've tested it with the case:
https://www.rncbc.org/drupal/comment/10888#comment-10888

This is what I finally did.

For "Copy":
qtractorPlugin.cpp | line 2186

			if (pAudioAuxSendPlugin) {
			//g Reset
				pAudioAuxSendPlugin->setAudioBusName(QString());
				pAudioAuxSendPlugin->freezeConfigs();
			//g Restart
				pNewPlugin->setConfigs(pPlugin->configs());
				pNewPlugin->setConfigTypes(pPlugin->configTypes());
			}

For "Move":
qtractorPluginCommand.cpp | line 421

				//g Reset
					pAudioAuxSendPlugin->setAudioBusName(QString());
				//g Restart
				pAudioAuxSendPlugin->setAudioBusName(m_sAuxSendBusName);

Interestingly, Qtractor is able to detect if AuxSend is moved or copied to its destination, and it resets it successfully. I don't know what part of the code does that.

But I didn't realize that it also needs to be able to detect loops, as happens in qtractorPluginForm.cpp, and reset it in those cases as well.

I'm stuck there and I'm unable to continue.
In principle, if we manage to detect loops, everything should work without errors and the behavior would be more appropriate and consistent with the rest of the plugins.

The behavior would be:

1 Reset to ensure there is no conflict
2 Check for loops
2 If there are no loops Restart

File attachments: 

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.

Pages

Add new comment