Page 1 of 1

Midi ports.

Posted: Wed Apr 10, 2019 7:32 am
by alex stone
Tim, any chance of increasing the maximum midi port count? Maybe 300?

I've got a big orchestral template and some extra instruments running outside Muse3, and i'm short of a few ports to add the rest of the instruments.


Re: Midi ports.

Posted: Wed Apr 10, 2019 9:58 pm
by spamatica
Hi Alex and all, quick resurface, sorry for being mostly out of touch...

Check the file muse/globaldefs.h
There is a line:
const int MIDI_PORTS = 200;

I haven't tried it but it if I'm not mistaken it's as easy as editing a different number and recompiling.

Re: Midi ports.

Posted: Wed Apr 10, 2019 10:19 pm
by Tim E. Real
That should be correct.
All other places in the code refer to that number, so it should be safe to change.

Should we make it permanent?
Maybe, but if we decide to, there is no going back to 200 afterwards, as it would break any songs created afterward that use port 200-300.

I've had a plan for a while now, and Robert has seen some of the changes I made to MusE devices and ports, trying
to move some of the port stuff into devices, in the midi config dialog.
The plan is to eliminate ports. Yes eliminate them altogether.
Instead, we will have ONLY MusE midi devices. Each device will gain a 'device number' which can be used to replace
the port numbers and allow the user to prioritize the devices much like we do now with ports.
The advantages are: No more fixed 200 or 300 ports. Only the required number of devices. Create as many or as few
of them as you wish. Unlimited!
There are of course several problems, chiefly that ports allow us a sometimes helpful level of indirection
that allows one to quickly move a device to another port, but the new device number should help there.
Also there are various controllers and so on which stay with a port even if the device changes, which is handy.
I'm looking at ways to ensure that kind of behavior is kept.


Re: Midi ports.

Posted: Thu Apr 11, 2019 7:17 am
by alex stone
Robert,Tim, thanks. I changed the number of ports, and it worked. I now have enough to complete the template. And i can change it again if i need more.

As to your idea, i think it's excellent. If the user can create ports as required, then you solve a problem across various workflows for muse users. From someone setting up a simple band that might use 6 or 8 ports, to the eccentrics like me who will use a lot more.
So where would the user create the ports? In the ports window, or when they create a new track? If it's when they create a new track, then a popup window with current devices and synths and a "add new midi/audio port" option, and the user selects which one they want?
You could do away with the ports window as it is now entirely, and have a simple matrix that shows which ports are alive. Or keep the ports/devices window, and put any ability to create/destroy ports/devices in there, instead of using per track option. Simply add an option at the top somewhere.
"Create new device." or something like that.

A very interesting idea that would scale to suit individual users needs. I can't see a problem with that.

An addition to this.

When we create inputs for tracks we get them all, plus any inputs not activated. So when we assign inputs to tracks, usually some sort of keyboard or control surface, we have to sort through the list, hovering the mouse over tiny buttons for selecting midi channels.

As an addition to your idea, would it possible to only show inputs that are active, selected by the user, in the drop down menu for selecting inputs per track. Most of us will choose a global option for inputs, but there are those users that will want to individually select inputs per track. As part of your build only the devices you want idea, the same applies to active inputs as it does to active outputs for user workflow, imho.

Great to see this stuff being thought about.


Re: Midi ports.

Posted: Thu Apr 11, 2019 7:59 am
by alex stone
I'm thinking further on this, and maybe a longer term idea for you to consider.

The process of creating a track is a fairly lengthy one when creating a lot of tracks. Which track type to use, which synth to push midi to, which input and output, and selecting each input for each track. These are all individual steps, separate from each other, when they all head to the same end. Creating a track.

An alternative would be to put all these options in a generic track, with a new header encapsulating all those selections.

The user creates a new track, and a popup appears with options.

What sort of track. If midi, then further options are limited to the options available for midi. If Audio, then options for audio. If instrument, then a list of synths, etc. This includes input and output selection for external ports as well. So if the user opts for a midi track, then a drop down box listing midi options appears, and if the user is creating a midi track to use with an instrument track, then the list of currently loaded instruments, plus live midi output port/devices appears as a list.

Same is a true for an audio track. The popup window only contains audio options, and the user builds the track all in one window. So instead of building separate audio inputs, audio outputs, and an audio track, 3 new tracks, the user simply creates an audio track, and routes audio input and output from within the audio track header, creating just one visible track.

The track header changes to one that always includes the basics, being record/muted/solo and a gain indicator with a slider. The user right clicks on the header and all the other options appear. This is not a new idea, it's normal in most sequencers, but I would recommend a look at how Reaper is designed as something to think about. There is a native linux version of Reaper on their website in the downloads section if you don't already have it.
It's a simple and highly effective way of quickly building up and managing lots of tracks, and does away with the....."separateness". Worth a look in my humble opinion.

I would add one final option. A folder track. We had a discussion a little while ago about track templates, and the possiblity of saving a group of tracks as a single track template. A folder track would help not only with this, but with live project track workflow as well. Muse works on a single midi channel oer track basis, as we know. If we can encapsulate an instrument track, 16 midi tracks, and maybe an audio track within the one "container" then save it as a track template, it would go a long way toward managing big projects in particular, but also useful for smaller projects. Put all your drum tracks in a folder, etc.
Enable the folder to close completely, leaving just a single track in the track list, add two shortcuts to expand and contract the folder, and it's possible the user can stay within the one window, without scrolling, and have an "always visible" entire project overview. If the user wants to record two tracks in separate folders at the same time, he or she simply opens the two folders.

I can't help think this might make things easier in the code as well, but i'm not a coder so this is a guess, not based on knowledge.

I've rambled enough, at least for the moment.