Skip to content

Association of Track Name to Channels Incomplete #31

@JeffRocchio

Description

@JeffRocchio

I have an observation, which I am here submitting as an enhancement request; which you may, of course, elect to ignore.

Background: I am working on a Python script to take in a MIDI file, inspect it, accept some user input via a terminal, and then produce a new output MIDI file that has a Count-In sequence pre-pended onto the beginning of it. I am doing this to help me, and a few others, make use of MIDI files for learning and practising how to play songs. MIDI files are particularly useful for this due to the ability to control the played audio of each score's part independently. I.e., 'mute all parts except the one I am playing.' 'Mute my part so I can practice playing along with the group.' Etc.

Need: In the MIDI players used for this purpose it is important to be able to see the score's part name much more so than the channel number. In the software I am using to produce the original MIDI files this is done by using Tracks, and the 'Track-Name' meta message, to contain the score's part name - e.g., "Melody," "Harmony," etc.

Observation: For me, Drumstick MIDI File Player Multiplatform is actually pretty much OK about this. The "MIDI Channels" window lists all the in-use channels and shows both the Track Name and the General MIDI Patch name associated with each channel. Many MIDI players completely ignore the Track Name, so I'm happy with Drumstick MIDI File Player Multiplatform for this. However, Drumstick MIDI File Player Multiplatform only picks-up and displays the Track Name for the first channel it encounters in a given track. So, depending on how the MIDI file was created the "MIDI Channels" display may have several channel rows with blank Track Name attributes. See screenshot attached below.

Request: For every channel listed, display the Track Name that channel is associated to. Note: It is, of course, possible that a given channel could appear in two different tracks. I am not experienced enough to know if such a situation is common or not; or if there any conventions around this. For my part I'd say set a rule to just pickup the Track Name of the first Track any given channel appears in.

For my specific use case ideally there'd be a view that is Track oriented vs Channel oriented. That is, a view that lists all tracks, and then indented a bit under each track show the channels in use in that Track, along with the instrument patch for that channel.

More Notes: I am using the Musescore sheet music application to produce my source MIDI files. Musescore has an annoying feature of 'playing' the backing chords on the sheet music. It puts the backing chords into a separate channel, but in the same track as the score's part the chords are a part of. All that makes sense and, if they are going to do that I'd say this was a good way to structure the MIDI file for those. However, in all MIDI players this just adds complexity and confusion for most folks as it is hard to see what's going on. Unfortunately, even when I mute the backing chords within Musescore prior to MIDI export Musescore still puts the extra channel in, and all the notes - it just writes them all with velocity=0. So, I can't seem to get rid of them. Once I get this working for Musescore produced MIDI files I will be using it for MIDI files created from other sources as well - and no doubt I'll be in for further complications once I get to that point.

Example: Below is a list of docs that represents an example of this observation & request.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions