On 2/17/22 12:20 PM, Ted Felix wrote:
This feels to me like a bug.
The more I played with it (and the more I've become familiar with RG's
interface, at which I'm still a beginner) the more I thought so, too.
In Step Recording mode, Matrix should take over the keyboard and
route the note to the selected Segment's device/channel (Instrument). It
shouldn't go through the usual main window routing. Of course, this
could get confusing when a user forgets to turn off Step Recording. Or
what if you have both a Notation and a Matrix editor open and both in
Step Record?
I think it should take over regardless of whether Step Recording is on
or off, and have a possibly radical suggestion about Notation vs Matrix
conflicts. See below for both.
How does Notation behave in step record? Same problem?
Yes, same problem. I tested in both 21.12 and the current Git code.
I'm going to jump in with both feet here and give my unasked-for
opinions, going way beyond the bug and into feature request territory
related to it. Just for the sake of discussion -- I'll file a formal
ticket if desired. BTW, in reference to our messages over in
rosegarden-devel, this was one of two issues that prompted my desire to
get into the codebase and see if there was anything I could do about them.
IMO, RG should have a single/global active
segment/track/device/channel/intrument/etc. If the user selects a track
or segment in the main interface, or a segment or staff in the notation
editor, or a segment in the matrix editor, or does something in one of
multiple open event list editors, I think any/all other open
windows/editors should update to match.
If that track's (i.e. that segment's track's) Track Parameters Device,
Channel, and Thru Routing are set appropriately, incoming Note On and
Note Off messages should have their channel number changed to that of
the track before being sent to the MIDI outputs. This should happen
regardless of whether Step Recording is on or off. I think the normal
workflow should be that RG settings control all MIDI output. But I admit
I don't fully understand Thru Routing's Auto vs When Armed, or the
use-case where someone would want incoming MIDI channels to be output
unmodified. Or the incredible can of worms which would be incoming MIDI
note channels controlling RG's active track/segment (global or otherwise).
I also don't fully understand segments vs tracks in regards to
instruments, etc. I think mostly in MIDI terms but understand that RG
is more general than that. Speaking purely MIDI, all segments in an RG
track use the same MIDI channel (as set in Track Parameters), right? But
different segments within a track can be different MIDI instruments?
I've tried to do this by setting Instrument Parameters to one
instrument, adding notes to a segment, changing to a different
instrument and adding notes to a different segment in the track, and it
didn't work. But I did use the Event Editor to achieve the same result
by inserting MIDI program change events -- it even works to have a
program change in the middle of a segment. But (another can of worms) a
track can have multiple segments overlapping in the same time period,
one vertically on top of the other in the main interface. What happens
if two segments have a program change at the exact same time, but to
different MIDI program (instrument) numbers?
Apologies for getting mired in this swamp (exacerbated by my own
misunderstandings about RG) but it all relates to the "global active
<something>" concept that I think the current bug logically leads to.
Single active what? Track? Segment? Instrument (MIDI or more general)?
BTW, regarding "all other open windows/editors should update to match",
it's awesome that when moving a segment horizontally in time in the main
interface the Notation and Matrix editors reflect the change, but it
seems that the Event List editors don't. :(
Finally, getting back to simpler issues, I was stuck back on RG 17.12
before this, and the improvements to the Matrix Editor (and everything
else in general) are huge. The lower bar in the ME showing the current
track and segment (and in the segment's color!!) is particularly useful.
That said, I find using the scrollwheel to change segments a bit clumsy,
even with the hotkey bindings. It's still a linear search through them.
I'd like to see a vertical column with abbreviated track/segment names
to the left of the piano keyboard for instant click-access to any
segment. Similar to the track names (with clefs) in the the Notation
Editor, although I don't see why a scrollwheel for selecting tracks is
needed there instead of clicking on them. Except that clicking in a
staff accomplishes that anyway. Of course clicking a note to select a
segment can't work in the ME because there's no way to know what segment
a grayed-out note belongs to, and there can also be multiple identical
notes from multiple segments on top of each other.
My congratulations to anyone who's read this far in an overly long post.
I realize implementing even a small percentage of the above suggestions
would be a huge amount of work, but if time, ability, and the learning
curve of ramping up with the RG codebase (and Qt in general) permits,
maybe I could contribute to some of it.
_______________________________________________
Rosegarden-user mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-user