Skip to content
This repository has been archived by the owner on May 2, 2022. It is now read-only.

Determining support for General MIDI #20

Open
notator opened this issue Dec 7, 2015 · 0 comments
Open

Determining support for General MIDI #20

notator opened this issue Dec 7, 2015 · 0 comments

Comments

@notator
Copy link
Owner

notator commented Dec 7, 2015

I've added an optional boolean supportsGeneralMIDI attribute to WebMIDISynths.

If this attribute is defined, and is true, then

  1. both COMMAND.PATCH and CONTROL.BANK MUST be defined.
  2. GM patch names usefully decribe the sounds of patches in bank 0. (GM patch names are returned by WebMIDI.constants.generalMIDIPatchName(patchIndex). )
  3. when the channel index is 9, GM percussion names usefully describe the sounds of the corresponding notes. (GM percussion names are returned by WebMIDI.constants.generalMIDIPercussionName(noteIndex). )
  4. the synth MAY define the following function: boolean patchIsAvailable(patchIndex). On their own, conditions 1-3 do not guarantee that a particular patch can be set.
  5. the synth MAY define the function: void setSoundFont(soundFont). WebMIDISynths could support GM without using soundfonts, or using only a single soundfont that can't be changed.

This issue/solution applies only to software WebMIDIsynths, but it is closely related to WebMDIAPI issue 110.

See also [issue #13]

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant