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

Reply via email to