jpcima / ADLplug

FM Chip Synthesizer — OPL & OPN — VST/LV2/Standalone

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Percussion mode

sneakernets opened this issue · comments

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...

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.

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...

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.

I brought a few enhancements to the percussion UI.

  • a drum channel is now only able to select percussion instruments, the same for melodics
  • the virtual keyboard is able to play on the whole drum set
  • it's indicated on the virtual keyboard which key is the current selected drum

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

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.