jpcima / ADLplug

FM Chip Synthesizer — OPL & OPN — VST/LV2/Standalone
Boost Software License 1.0
425 stars 22 forks source link

Percussion mode #43

Open sneakernets opened 5 years ago

sneakernets commented 5 years ago

It would be beneficial to have a percussion "mode" on Part 10 to use the entire drum kit on the keyboard instead of having to select individual percussion instruments. If it is possible, it's not at all obvious how to enable it...

jpcima commented 5 years ago

Yeah I would like to rethink this in more intuitive ways if possible. Percussions are inintuitive and quirky and I get the question often.

How it works now On the screen keyboard, it plays the current percussive instrument only, AND only if it's the channel 10. However the MIDI keys will play the entire drumset on the same bank as the instrument selected. On external virtual keyboard, it will probably work like you expect.

I can certainly add percussion mode for the screen keyboard as well. I reciprocated the playing model of OPL3 Bank Editor without thinking too much of it.

farvardin commented 5 years ago

The percussion mode doesn't work on other parts besides channel 10. For using as single instrument, it would certainly be easier to allow to set a percussion to any channel...

jpcima commented 5 years ago

It's possible that libADLMIDI has now an option to switch channels as melodic/percussive by means of sysex MIDI. That was part of GS of XG standard, or maybe both. I should recheck about this.

That will need me also to take care of program update logic, and also synchronization will have some complication, because melodic and percussion slots don't select by same MIDI protocol.

jpcima commented 5 years ago

I brought a few enhancements to the percussion UI.

farvardin commented 5 years ago

I've tested it, and I think it's much clearer this way, thank you!

jpcima commented 5 years ago

Thanks for feedback, this will be part of the coming release, which I decide to make 1.0.0 If tests go well, hopefully a release will be prepared in the next week.