Convergence (Tool idea)

Convergence: Bringing the instrument and track closer together

Split from this topic because I realized my idea could pretty much be done in a tool.
https://forum.renoise.com/t/quick-replace-instrument-number-or-better-yet/46040

The idea is inspited by other tools, such as Convert Instrument Number and Capture Track from Instrument,
but I am only interested in setting the selected/focus track and instrument, not remapping instrument numbers.

I’ve been wondering about the best approach, and think it should work like this:

Link track and instrument by assigning similar names.
Because, names are very descriptive, and your eyes scan over them constantly,

But what does linking mean?
To me, when a track and instrument are linked, switching either one would select any similarly-named track or instrument, and renaming could update both as well.
The actual picking up of the instrument could be fully automatic (akin to auto-capture), or manual via some shortcut.

Still, the idea is far from complete.
I’m trying to wrap my head around how wildcards/pattern matching could work.I would want some degree of freedom when defining the name, because those plugins can have god-awful long names and I’d like to keep track names relatively short.

Otherwise, you could easily end up having tracks that that would look like this:
00: VST: Bazille(x6… 01: VST: Bazille(x6…02: VST: Bazille(x6…

Would be much better to have something like this
00: Epidemic Bass 01: Piano Pad 02: Sequential

In short, some kind of pattern matching,

Also, you might have noticed how instrument names can change as a result of loading a preset?
Internally, Renoise does a check for whether the instrument has a name which is formatted in a specific way - this could either be a pain, or used creatively.

As usual the rabbit hole deepens…

Interesting. Firstly I’m trying to understand the purpose/need of this system. I guess it is to make a visually clearer connection between tracks and instruments? (position 3 in instrument list is always track number 3). Is there something else to it as well?

I think that it would be a good idea to have all tracks/instruments named “1. Name”, “2. Name” in that case, including the number. Otherwise the visual benefit would be limited and the connection less obvious?

One problem is, what happens when you move a track out of position. This is tricky imo. In instrument list it could perhaps be handled by observables.

EDIT: When pasting onto a track it should also automatically remap instrument numbers. This should be possible, (remembering how extensively one of ledgers scripts changed instrument values in ‘realtime’ on update). This is one more reason to name the tracks/instruments as I suggested, as a clear indication if the track is “locked to instrument” or not.

EDIT 2: “Lock track to instrument” - changing selected_instrument_index and remapping anything pasted/entered. Interesting concept. Would we really need it to work the other way around, or wouldn’t this be sufficient workflow wise? Anything not being locked would act freely as normal. No real need to take positions into account. Pros: A simple and straight-forward tool. Cons: The instruments are still free (only tracks can be guiding). No visual benefit. Perhaps going off topic, considering you didn’t want to remap anything :slight_smile:

Firstly I’m trying to understand the purpose/need of this system

It’s simply a different approach to auto-capture, just like your Capture Track From Instrument tool.

Like I mentioned, a link is establishing by assigning a similar name to both track and instrument.

The capturing would not forced upon you, and would only work in linked tracks.

I think that it would be a good idea to have all tracks/instruments named “1. Name”, “2. Name” in that case, including the number. Otherwise the visual benefit would be limited and the connection less obvious?

I would leave the actual name up to the user, so if you want numbers - sure, add numbers. But this shouldn’t happen automatically.

There are a couple of opportunities by staying with the default instrument names. Imagine a track that automatically gets renamed as you change presets in a VST? That’s how Renoise works.

Now, if this change was propagated into a linked track name, that would be awesome - possibly even changing name on-the-fly, via program changes.

By switching to a custom naming scheme, we would loose this ability as Renoise only renames instruments that match a certain pattern.

Of course, if you’d absolutely want to rename an instrument to something ‘fixed’, the tool shouldn’t prevent you from doing this.

And if you had multiple instruments with the same name, then the tool could offer to cycle through them.

Perhaps going off topic, considering you didn’t want to remap anything :slight_smile:

Perhaps :slight_smile: It certainly would be nice to have, but initially capturing has top priority.

OK! Sorry for derailing earlier, but considering it’s a creative idea some brainstorming might be ok.

Thinking from the API perspective:

I think you’d have to keep track of what instrument/tracks are linked either via song comments or a name delimiter in that case. At least if you want to maintain ability to have free tracks and instruments alongside locked ones.

If you want a mandatory locked 1:1 relationship, on the other hand, I can see some native stuff needing to be handled with care. Deleting/moving/inserting tracks or instruments specifically.

considering it’s a creative idea some brainstorming might be ok.

Yes, it’s encouraged :slight_smile: Sometimes tools are made to do all sorts of things, and other times they are more specific.

In this case, we’re talking “semi-automatic configurableauto-capture”, which is pretty specific.

Because, all these tools can really complement each other. I saw your idea about changing instr. numbers, for example. If I was to do some kind of remapping too in this tool, those two ideas could clash.

Same with my Noodletrap tool, it only does input. It would perhaps be symmetric to do output too (write phrases to patterns), but honestly, this functionality doesn’t really belong there.

Anyway, I think I have a pretty clear idea and just need to prototype it.