Simple Bus Automation

Forums

Back to bus automation :).

A while back, I made this How-to: https://sourceforge.net/p/qtractor/wiki/How%20To%20-%2012%20Automate%20…

However, the procedure is complex... and it shouldn't be.

Really, all you need is a plugin capable of sending control messages.

I've been searching and searching, and something this "simple" doesn't exist on Linux. There are several free (non-libre) VST plugins for Windows. I tested ReaControlMidi (from the Reaper folks) for Windows with Wine and Yabridge.

And it's so intuitive that it could be considered a native way to automate things in Qtractor.

I'm sending "Control 14" messages. They have two advantages:
1. Being much more precise, they easily adapt to any target value and scale.
2. Since they're not CC, they don't conflict with the feedback of the sending MIDI track's faders.

And here's a request.
If we had a pseudo-plugin that allowed sending control messages, we could say that Qtractor provides a native way to automate Buses. It would be found in Inserts > MIDI > Add Send Controller:

1. It would include the same control values ​​as the receivers: Type, Control, Parameter.
2. It would include a MIDI output port to connect to Qtractor's control input.
3. It wouldn't receive control signals to avoid feedback issues.
4. If the output channel is the same as the track's, it would filter and block the CC balance and volume signals from the faders, and these controls would also appear grayed out in its menu. This would avoid the feedback loop problem.

I think it would be quite intuitive, as it's the normal way to automate from external MIDI controller consoles, only now the console would be internal. This would also turn Qtractor into a powerful MIDI console as well as a DAW, with applications for lighting, robotics, and more.

File attachments

After reading about this new feature I am asking myself if it may be possible to enhance automation in a much simpler (for the user) way.

Now:
Track -> Automation -> Select -> Controls or Plugin -> Parm

Enhanced:
Track -> Automation -> Select -> Track or Bus -> Controls or Plugins -> Parm
with "This Track" as first selection for "Track or Bus"

Is the internal processing logic the showstopper?

The new tool doesn't complicate your current workflow; it simply takes it (as is) and expands on it.

It's just a plugin that allows you to link any Qtractor (or external) element to your existing automation tool using MIDI messages.

It automates like any other plugin; nothing has changed or become more complex.

Permalink

CCs 7 and 10 should always be locked, and they should never appear in the menu. Otherwise, other MIDI tracks could be unintentionally automated.

I also think the default "type" should be Control 14, as it's the most appropriate for automation, and this will be the primary use of this new tool (although it may have other uses).

As for the receivers, I think they should be enabled by default in "Hook" mode, not disabled as is currently the case. This ensures that everything works the first time. I often didn't understand why CC reception wasn't working, and I simply forgot to enable the Hook.

I see you've already started; it's great!!! :).
Thanks

yes, WIP, branch [xmidi-control-plugin] ...

you may already alpha-test it, but let you know that it's going to be squashed every now and then, so be prepared to do a
git reset --hard origin/xmidi-control-plugin
every time you get any ref.conflicts...

cheers

UPDATE: [xmidi-control-plugin] is now considered stable and functional; hint: plugins menu > Inserts > MIDI > Add Controller..., enjoy!

:O!!!

It's capable of sending CC7 and CC10 messages without feedback or collapse. Amazing.

Potential Bugs:
1- It doesn't send control messages from the "Direct Access". Even if you move and modify the "Value" data, data is only sent if you act from the plugin control.

2- The receiver must be connected to the Hook. Curiously, once the Hook link is established, if the Hook is deactivated, the link persists. (This already happened in the original version of Qtractor).
Another interesting thing is that it occurs with all faders (plugins and native) except for the pan faders, which don't require a hook.

If this can be fixed, it would be helpful. Either it should take the link without the hook option, or have the hook option enabled by default.
---

I need to keep testing. But it looks very good.
Finally, automatable buses!!!

It works now :)

Also, thanks for adding the Bipolar option for balances and pans.

A small note:
I think the Invert option should be last, since it modifies the previous modes (I see it as a mode modifier, not a mode in itself).
I think it's the most logical approach... However, it's subjective and can also be considered a mode of its own, and the other modifiers of this one, or all of them, legitimate modes. These seem like less intuitive approaches to me, but they're valid from a logical point of view.

EDIT: unrelated to this topic or [xmidi-control-plugin] branch, but anyway...

when turned off on the receiver it switches to normal catch-up mode.

now, it just happens that it already is caught-up, when leaving "Hook" mode, so it probably stays that way as long the controller sender is connected...

True. It has nothing to do with the development branch.

But it's also true that the default "no hook" mode (i.e., averaging) doesn't work most of the time.
It simply doesn't work correctly.

So why not have the Hook box checked by default? It's the mode that always works.

At first, I often abandoned the CC controls options... because I thought they didn't work, and it was simply that I didn't have the hook enabled. I read the documentation, and it doesn't indicate that you have to enable the hook to make it work (however, it doesn't work without it, which shouldn't happen).

Many will come later and stumble over the same stone...

Wouldn't it be simpler if everything worked correctly in the default configuration?

Also, the averaging mode is cool, and can be useful for avoiding sudden changes (it's like a stroke stabilizer in drawing programs). However, you don't expect it to come with the stabilizer enabled right away.

It's optional; by default, it should always be hook... which, by the way, if it works :).

Sorry to insist, but I wanted to make sure I had explained myself well.

I'll leave it for your consideration, as always :).

In reply to by G3N-es

Permalink

Hook box checked by default?

ok, will make it so, maybe soon :)

cheers

UPDATE: done in v1.5.5.3git.5d5b16 [xmidi-control-plugin]

It works very well... and everyone has been waiting for something like this that would facilitate bus automation.
As soon as it is merged with master I will start preparing the documentation to update the wiki.


I've started writing the documentation, and that made me realize it would be helpful to include the port information in the tooltip and in the title of the pseudo-plugin properties.

In the properties, it appears:
MIDI Controller - Master Out

And it should be:
MIDI Controller (Control_2)

And maybe also in the plugin title, even if it's not legible from the mixer (that's what "Aliases" are for, everyone can shorten it as best works for them).

File attachments

in line to already existing insert/aux-send p-plugins: v1.5.5.3git.998e1e ...

for example, the suggested "MIDI Controller (Control_2)" title is now exposed as "Control 2 (MIDI)".

makes sense?

Include an "Auto-connect to Control" checkbox (equivalent to the one for audio buses).
It would appear disabled if Qtractor doesn't have dedicated MIDI control ports configured.
It would appear enabled by default if it does.

This would save a step and make the process more user-friendly for internal automation. When testing, more than once I thought something wasn't working and it was simply that I hadn't made the connection to the control.

For external automation, connections are made directly from the pseudoplugins, so the dedicated Control is not necessary.

Instead, add a checkbox in Options > MIDI > Control. Next to "Dedicated MIDI Control In/Out," add a checkbox to "Auto connect Control pseudo plugins to Dedicated MIDI Control In."

This second checkbox would only be enabled if the first one is enabled.

As I said, I think it would help, but I don't know if it's worth it.

Add new comment

The content of this field is kept private and will not be shown publicly.

Markdown

  • Parses markdown and converts it to HTML.
  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type='1 A I'> <li> <dl> <dt> <dd> <h2 id='jump-*'> <h3 id> <h4 id> <h5 id> <h6 id> <img src alt height width> <strike> <pre> <p> <br>
  • Lines and paragraphs break automatically.

Filtered HTML

  • Allowed HTML tags: <a href hreflang> <em> <strong> <cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <b> <i> <pre> <img src alt height width> <strike>
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.

Plain text

  • No HTML tags allowed.
  • Lines and paragraphs break automatically.
  • Web page addresses and email addresses turn into links automatically.
File attachments
Unlimited number of files can be uploaded to this field.
2 MB limit.
Allowed types: jpg jpeg gif png txt doc docx xls xlsx pdf ppt pps odt ods odp zip gz bz2 xz patch diff wav ogg flac ogv mp4 qtz.