On Fri, 2010-06-18 at 08:46 -0700, Julie S wrote:
> Hello John and RG Dev Team:,
> 
> John wrote:
> > In other words, I get to assign key mappings to
> > non-percussion banks.
> > And then the key names show up in the matrix view.
> > 
> > Anybody know what the thinking was behind excluding
> > non-percussion banks
> > from key mapping?
> 

[cut]

> But I have couple comments and questions:
> * In Matrix view, RG assumes that the Instrument, Bank and Program are
> used to select a MIDI Device, its Channel, and the Bank and Program.
> When you switch to percussion view, how well does this currently
> switch to the key mapping you choose--specifically if you have more
> than one key mapping in your Device's BANK list?

> * In Percussion Matrix view, RG is suppose to use the Instrument, Bank
> and Program are used to select a MIDI Device, its Channel, and the
> Bank and Program, but it also uses this information to select the
> percussion map to display.

In my standard setup, I have 4 key mappings, 3 for keyswitching and 1
for a drumkit. 6 instruments in Map 0, Bank 0. Drumkit is in Map 0 Bank
0, with the percussion checkbox ticked.

Editing and playback all works as expected, except that for a
keyswitched instrument (ie keymapping assigned for non-percussion bank)
if I look at the track containing the notation (rather than the
keyswitch notes) in matrix view, I get a keyswitch layout instead of a
piano roll. Which makes sense since the keyswitch track shares an
instrument with the notation track.

Seems to me the only difference between matrix & percussion matrix is
that percussion matrix shows notes as diamonds, regardless of the length
of the notes.

> Unfortunately, I believe the currently implementation of the
> Percussion Matrix view to be faulty.  It displays a keymapping in the
> view even if the Instrument, Bank and Program do not have a key
> mapping assigned to them (The assignment is initiated via a left click
> on the keyboard symbols next to the program in a program for a
> percussion bank in he MIDI bank editor).

I'm not seeing that. If I open either matrix view for a non-keymapped
instrument, I get a piano roll.

Oh, hangon. If I un-keymap a percussion instrument, and then look at the
track in either matrix view, I get the keymap that was previously
assigned. But if I un-assign a non-percussion keymap, the matrix views
then show piano rolls. Reassigning the keymap works as expected.

So it seems the bug you're talking about only affects percussion banks,
not non-percussion banks.

> So if this bug were fixed, the percussion view would show a keyboard,
> as it does when no key mapping is present in the device.
> 
> Would a fix to this bug alter how your keyswitched patch performs?
>  Most likely, since the program you are using would need to be
> assigned to a keymapping.  So we would have to allow non-percussion
> banks to have their programs assigned to a key mapping as well.

That's what the patch I sent does. Unless I'm misunderstanding you?

The code in MatrixWidget::generatePitchRuler() assumes that anything
with a keymapping is a percussion instrument. Easy to fix and I just
did.

The bug you're talking about becomes clear there too. When a keymapping
is unassigned in the bank editor, the change doesn't make it through to
m_instrument->getKeyMapping(), for percussion tracks only. Works fine
for non-percussion tracks. Verified by stdout.

And ... here's your bug:

Instrument.cpp:625

    if (isPercussion()) { // if any key mapping is available, use it
        const KeyMappingList &kml = md->getKeyMappings();
        if (kml.begin() != kml.end()) {
            return &(*kml.begin());
        }
    }

Looks like it was sposed to be a feature ;-)

Sure enough, if I comment that out, the piano roll shows up in both
matrix views for a percussion track when the keymapping is un-assigned.
Back to a keymap when its reassigned.

bye
John



------------------------------------------------------------------------------
ThinkGeek and WIRED's GeekDad team up for the Ultimate 
GeekDad Father's Day Giveaway. ONE MASSIVE PRIZE to the 
lucky parental unit.  See the prize list and enter to win: 
http://p.sf.net/sfu/thinkgeek-promo
_______________________________________________
Rosegarden-devel mailing list
[email protected] - use the link below to unsubscribe
https://lists.sourceforge.net/lists/listinfo/rosegarden-devel

Reply via email to