Sebastian Moors wrote:
> Gabriel M. Beddingfield wrote:
>> I think that the problem is that a GM-ordered kit "feels" like it's sort
>> of randomly organized... partly because it was designed with a keyboard
>> controller in mind. On the other hand, people like Hydrogen's interface
>> for editing drums because you can put "like" instruments near each other.
>>
>>
>> PROPOSAL:
>>
>> 1. Support the GM System Enable/Disable SysEx message to
>> enable/disable GM Mode.[1]
>>
>> 2. Provide a GUI button and/or status indicator to show
>> if we are in GM Mode.
>>
>> 3. In the drumkit XML file, provide an optional element after
>> <info>: <is_gm_kit>. It should be a boolean ("true", "false").
>> If true, then the <gm_instrument> tags are ignored (see below).
>> The default is false if missing or degenerate.
>>
>> 4. In the drumkit XML file, under instrument add an optional
>> element: <gm_instrument>. The element should contain an
>> integer that corresponds to the MIDI note number in the
>> GM Drum spec.[2] The default is -1 (None) if it is missing,
>> unless the kit is a GM kit. In that case, the default
>> will be <id> + 35.[4]
>>
>> 5. In the instrument editor, provide a field with the GM drum
>> sound name. It should display the _name_ (not the integer).
>> If set to "None" it should flash red and yellow and be very
>> annoying so that the user will set it and get it to stop
>> flashing. User can only assign the GM Note _once_. So if
>> it is already assigned, alert the user and make sure he
>> really wants to.
>>
>> 6. If Hydrogen is put into GM mode, it will change the MIDI
>> channel to 10 and listen only to that channel. If the
>> user overrides the channel number while in GM Mode, this
>> will be allowed and respected.
>>
>> 7. While in GM Mode, notes that come in will be mapped to
>> the correct instrument in the current drum kit. If the
>> note does not have an instrument assigned to it, then
>> the note will be dropped.[3] If <is_gm_kit> is true, then
>> the instrument offset will be assigned note_number - 35.[4]
>>
>> 8. If the drum kit, for whatever reason, has more than one
>> instrument that shares the same GM note... Hydrogen will
>> always select the last instrument (in the document order)
>> to play.
>>
>> 9. When GM Mode is turned off, Hydrogen will revert to its
>> standard behavior (instrument_offset = note_number - 35).[4]
>> It will also restore the channel setting to its previous
>> state.
>>
>> Comments? Perhaps we should extend the scheme to also allow *any*
>> note number assignment within a kit? That sounds like too much
>> flexibility though... probably leading to really confusing drum kits.
>>
> I would recommend both. We could implement a new "midi-in" property
> which controls the note value
> an instrument responds to. That would remove the dependency between the
> view (order of instruments) and the
> midi-notes. This would please everyone who uses hydrogen in a live
> setup. An important point: The GM mapping makes sense
> for instruments only.. User-defined drumset contain often things like
> samples or other non-drum objects. We should provide a handy solution
> for them
> as well, so defining the note number by hand makes sense here.
These are great ideas--I really like the idea of having a separate MIDI
note property, as that does make it possible to list similar instruments
near each other (I like having my kit in a particular order, and the GM
ordering is very much *not* it). Since my drum brain sends the GM
specified notes unless I spend a lot of time fiddling with it, I can't
have the ordering I want, and I end up with a lot of blank entries so
that the instruments line up.
> Downpoint: It is unclear what happens when a user moves an instrument in
> his list, for example from instrument id 1 to 3. At the moment this
> would alter
> the note it responds to. With a fixed mapping, this could be not the
> thing we want. But in the first time, people will wonder why it works no
> more :)
I agree that the default UI behavior shouldn't be changed--it will
really puzzle people. There could be a boolean property (which I think
is what Gabriel was proposing) that enables the MIDI note property for
the kit. That would make both cases work pretty easily--people who want
the GM MIDI map can get it by clicking a single checkbox, and everybody
who wants to change notes by reordering can do that as long as the
checkbox is unchecked.
> The second step would be the GM-Mapping, as described above. In
> combination, both features add some more complexity. We should take care
> for sane default settings so that people aren't confused a lot.
> - Sebastian
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
Hydrogen-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/hydrogen-devel