[New] Instrument can now be changed on a Synth Track

MusE is a DAW for Linux with both MIDI and Audio editing. https://muse-sequencer.github.io

Moderators: MattKingUSA, khz, spamatica

Post Reply
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

[New] Instrument can now be changed on a Synth Track

Post by Tim E. Real »

In github master now.

You know how with a synth track and synth device you cannot change the 'instrument'
because, well, the synth IS the instrument and is supposed to define all instrument parameters itself?

Not any more :)
For example you can now set 'GM2' or 'My cool instrument' on ANY synth track.

This will certainly help, until midnam support is added.
Might be a few areas to touch up still but so far it works fine. Tested OK saving/loading/changing instruments.

:!:
This feature is not as useless or dangerous as it sounds.
As far as I know, until this specific LV2 midnam extension came along, NO synth framework had support
for informing the host exactly which MIDI controllers are recognized, and note names if any.
Most do have program names. But usually they lack program groups.

Thus we could not know what controllers to make available in the midi controller graph view.
Does the plugin recognize pitch bend? Mod wheel? Volume? Pan? It's anybody's guess so we just throw those in by default.
The user must explicitly add the controller from an available list of 'commonly known names'.
Those other available (N)RPN controllers you see for a midi track driving a synth, under 'instrument defined'?
Those are NOT defined by the synth, they are faked by us, and they are simply mirrors of all the audio control porrts,
not actual midi controllers the synth is known to recognize.
DSSI had a feature where it could recommend how to map your midi controllers to audio control ports.
But not the same thing as defining what is actually recognized. Not what we wanted.

What to do until midnam support is done?
Allow our own Instruments to be used instead of the synth's defined instrument.
Thus you can use the Instrument Editor to make an instrument that exactly defines which
midi controllers and note names are to be displayed, and select it on this synth track.

You can even select another synth as the instrument for some synth, as well as our instruments.
It works! Granted, nobody's going to select a Hammond instrument for a DrumGizmo track for example,
but say, selecting a GM2 instrument for an LV2 soundfont loader? Sure.

It's perfectly safe. Consider our 'instruments' as simply 'overlays' which describe how to display and interpret the midi stuff.
Notice that all your graph data remains intact even if you severely mess with the instrument.
All the controller and note names for example simply revert to standard values.

Which brings me to a careful observation:
In the Instrument Editor, you can change an instrument's definitions and parameters, delete them, add them,
even completely obliterate them, and all the midi track data and controllers remain intact, just the names change.
All done live in real time with a press of Apply or OK.
An entire instrument can be swapped out and nothing will suffer, displayed names will simply change and adapt.

Thus, I believe MusE is in a very good position to support dynamic, live midnam instrument changes.
This would be necessary for example with an LV2 soundfont loader. Each different loaded soundfont has different
patches and note names and so on. We would be ready to alter the synth's instrument to redefine everything.

Bear with me, maybe a few more things to do here...
kybos
Established Member
Posts: 97
Joined: Wed Oct 23, 2019 5:50 am
Been thanked: 3 times

Re: [New] Instrument can now be changed on a Synth Track

Post by kybos »

A very nice feature, gives great flexibility.

A small detail:
I can change the instrument in the mixer strip easily to my self-defined one. Then, let's say I want to change it back to the "original". I could not find it at first, then I saw it at the end of the list, hidden in the submenu.
Would it be better to re-sort the list alphabetically? Or put the original at the top, if it really deserves a special position? For all cases: Still better to e.g. put an asterisk in front of it, to find it easily and mark it as something special? In fact, it's only a temporary entry and not part of the list.
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: [New] Instrument can now be changed on a Synth Track

Post by Tim E. Real »

Absolutely. My thoughts too.
Organize the list and use indicators, and use our header class to section it off.
And at the top is one section with one entry: The synth's own instrument.
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: [New] Instrument can now be changed on a Synth Track

Post by Tim E. Real »

BTW Don't like the 'More..." sub-menus concept ?
See Settings > Global Settings > GUI behaviour > Scrollable submenus.

I was shocked when Andrew added that. "What the... How the... did he do that?".
Because that feature can only be enabled with a stylesheet setting, there does not seem to be an API method for that.
So I had no clue you could do that. It seems such an important overall setting that they should put it in the API,
not with stylesheet voodoo, but then, I suppose it may depend on the style whether can be available or not.
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: [New] Instrument can now be changed on a Synth Track

Post by Tim E. Real »

Instrument popup menu is redesigned now.
Now includes the convenient 'Edit instrument...' action.
kybos
Established Member
Posts: 97
Joined: Wed Oct 23, 2019 5:50 am
Been thanked: 3 times

Re: [New] Instrument can now be changed on a Synth Track

Post by kybos »

Tim E. Real wrote:Instrument popup menu is redesigned now.
Now includes the convenient 'Edit instrument...' action.
Really nice, thanks.
kybos
Established Member
Posts: 97
Joined: Wed Oct 23, 2019 5:50 am
Been thanked: 3 times

Re: [New] Instrument can now be changed on a Synth Track

Post by kybos »

Tim E. Real wrote:BTW Don't like the 'More..." sub-menus concept ?
See Settings > Global Settings > GUI behaviour > Scrollable submenus.

I was shocked when Andrew added that. "What the... How the... did he do that?".
Because that feature can only be enabled with a stylesheet setting, there does not seem to be an API method for that.
So I had no clue you could do that. It seems such an important overall setting that they should put it in the API,
not with stylesheet voodoo, but then, I suppose it may depend on the style whether can be available or not.
Thanks for the hint.
But when I check this option, I get nothing scrollable. Just a full menu without the aggregation in submenus. When there are too many entries (e.g. amsynth patches), then the menu gets bigger than the screen and is truncated.
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: [New] Instrument can now be changed on a Synth Track

Post by Tim E. Real »

Hm. Weird. Works OK here.
Look closely for the up/down arrows.
One bad thing about it is that there's no scroll bar, just arrows.
kybos
Established Member
Posts: 97
Joined: Wed Oct 23, 2019 5:50 am
Been thanked: 3 times

Re: [New] Instrument can now be changed on a Synth Track

Post by kybos »

No arrows there.
However, I've just noticed that what I wrote above was not clear enough:
I get a huge menu in several columns over the whole screen, and when there are still too many entries, it gets off the screen on the right.
But never mind, I still like this option ;-).
Tim E. Real
Established Member
Posts: 660
Joined: Sat Sep 15, 2012 12:36 am
Has thanked: 36 times
Been thanked: 105 times

Re: [New] Instrument can now be changed on a Synth Track

Post by Tim E. Real »

Ah yes, the dreaded menu creep.
I did some really freaky stuff to make sure it could be scrolled left and right if too many columns.
It's so hackish.

For years now I have wanted to replace the popup menus with a different kind of popup like an actual list, like a list widget or something.
I looked at using 'cascading' menus. You know the type found in 'Start' menus, that many people don't like
so they have to put a button saying "Revert to classic menu", he he.

For example the popup routing menus would be more sophisticated, nicer looking, compact, and scrollable with a scrollbar.
Actually that's what I was aiming for with the advanced router. To be a popup. But you can see that it's a far more complicated thing.

Unfortunately the benefits of QMenu are just too good to resist. It's very convenient and a very special class.
It's hard to make something that replaces it and basically reinvents the wheel...
Post Reply