webmidi

Tame the Web MIDI API. Send and receive MIDI messages with ease. Control instruments with user-friendly functions (playNote, sendPitchBend, etc.). React to MIDI input with simple event listeners (noteon, pitchbend, controlchange, etc.).

APACHE-2.0 License

Downloads
11.7K
Stars
1.5K
Committers
32

Bot releases are visible (Hide)

webmidi - Release v3.1.11 Latest Release

Published by djipco 3 months ago

  • Update 'jzz' (optional dependency) to latest version (d7c89d1f9)
webmidi - Release v3.1.10

Published by djipco 3 months ago

  • Fix TypeScript definitions to properly reflect MessageEvent properties (see issue #427) (e34405c84)
webmidi - Release v3.1.9

Published by djipco 6 months ago

  • Fix WebMidi.supported not necessarily returning boolean (#417)
  • Various module updates for security fixes
webmidi - Release v3.1.8

Published by djipco 10 months ago

This is a maintenance release with a few fixes and clarifications.

  • Fix raw values not being properly sent in Output.channelAfterTouch() (#401) (19faf782b)
  • Clarify documentation for Output.clear() method (43b6285e1)
  • Fix documentation for sendAllNotesOff() (dd91df456)
  • Move to @julusian/midi module for testing (a9f4692e4)
webmidi - Release v3.1.7

Published by djipco 11 months ago

This version is a minor release that fixes an issue that appeared in Node.js v21+

webmidi - Release v3.1.6

Published by djipco over 1 year ago

Fixes minor bug when calling WebMidi.disable() (issue #361)

webmidi - Release v3.1.5

Published by djipco over 1 year ago

  • The playNote() method nows correctly sends noteoff messages when the notes are specified as an array. Thanks to @tobyhede for the fix!
webmidi - Release v3.1.4

Published by djipco over 1 year ago

OutputChannel.playNote() now properly sends a note off when the duration is specified via the Note object (issue #337).

webmidi - Release v3.1.3

Published by djipco over 1 year ago

This is a minor release that fixes a type issue with the new Utilities.getCcNumberByName() method. Thanks to @tobyhede for submitting PR #335.

webmidi - Release v3.1.2

Published by djipco almost 2 years ago

  • Add position (MSB/LSB) property to control change event payload (697b2c288)
webmidi - Release v3.1.1

Published by djipco almost 2 years ago

  • Add user-friendly description to control change event payload (fa29caf5e)
webmidi - Release v3.1.0

Published by djipco almost 2 years ago

This version updates the control change message infrastructure. It is now possible to listen to specific control change messages by using the form controlchange-volumecoarse.

There is now a Enumerations.CONTROL_CHANGE_MESSAGES array that contains more information than before about control change messages. Here's what the array looks like:

[
  {
    number: 0,
    name: "bankselectcoarse",
    description: "Bank Select (Coarse)",
    position: "msb"
  },
  {
    number: 1,
    name: "modulationwheelcoarse",
    description: "Modulation Wheel (Coarse)",
    position: "msb"
  },
  // etc.
]

Note that if your code references the Enumerations.MIDI_CONTROL_CHANGE_MESSAGES enum, you will get a deprecation warning in the console, but it will continue to work until version 4. From now on, you should use the Enumerations.CONTROL_CHANGE_MESSAGES array.

In some edge cases, it is possible that this version will demand an update to your code. Here are the potential problem areas:

  • If you are using the Utilities.getCcNameByNumber() method you may get different controller names than before for the following controllers: 16, 17, 18, 19, 39, 64, 66, 69, 72, 73, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 88, 91, 92, 93, 94, 95, 96, 97.

  • Controller names have been updated to reflect the current state of the MIDI specification. If you are listening to the general rpn or nrpn events, the subtype property of the event may have changed.

  • Some control change messages (98, 99, 100 and 101) were incorrectly identified (see issue #325). They are now properly labeled as:

    • 98: nonregisteredparameterfine
    • 99: nonregisteredparametercoarse
    • 100: registeredparameterfine
    • 101: registeredparametercoarse
webmidi - Release v3.0.25

Published by djipco almost 2 years ago

  • Add flavour property to WebMidi object (a9870ad3f)
webmidi - Release v3.0.24

Published by djipco almost 2 years ago

  • Update jzz module to fix Apple M1 support in Node.js (6414f5e2d & 04622d3ee)
  • Update djipevents (71ee5923e)
webmidi - Release v3.0.23

Published by djipco almost 2 years ago

This release fixes an issue with TypeScript projects that use "type": "module" and "moduleResolution": "nodenext" (thanks to Torgeir Hovden for catching and fixing the problem).

  • Update sponsors (504156567)
  • Merge pull request #319 from thovden/master (386decb46)
  • Fix typo (5be1ef675)
  • Specify "." export (363fde27e)
  • Support moduleResolution nodenext (db80ab9c7)
  • Merge pull request #314 from djipco/dependabot/npm_and_yarn/examples/electron/basic-example/got-and-electron-11.8.5 (f9e9945d2)
  • Merge pull request #313 from djipco/dependabot/npm_and_yarn/qs-6.5.3 (3ee427496)
  • Bump got and electron in /examples/electron/basic-example (5a9623edd)
  • Merge pull request #312 from djipco/dependabot/npm_and_yarn/decode-uri-component-0.2.2 (7710158cf)
  • Merge pull request #311 from djipco/dependabot/npm_and_yarn/examples/electron/basic-example/electron-19.1.8 (cbd595f7d)
  • Bump qs from 6.5.2 to 6.5.3 (55ef9e336)
  • Bump decode-uri-component from 0.2.0 to 0.2.2 (ed82ed332)
  • Bump electron from 19.0.11 to 19.1.8 in /examples/electron/basic-example (e9ff6cbd2)
  • Merge pull request #310 from djipco/dependabot/npm_and_yarn/simple-git-3.15.0 (183e9956d)
  • Bump simple-git from 3.5.0 to 3.15.0 (cc4200fa6)
webmidi - Release v3.0.22

Published by djipco almost 2 years ago

This is a minor release that now exports the EventEmitter and Listener objects in the TypeScript type declarations. It also includes a bunch of third-party security updates.

  • Export 'Listener' and 'EventEmitter' objects (see issue #301) (0d0491f50)
  • Merge pull request #307 from djipco/dependabot/npm_and_yarn/website/minimatch-and-serve-handler-3.1.2 (132cc094b)
  • Merge pull request #306 from djipco/dependabot/npm_and_yarn/examples/electron/basic-example/electron-19.0.11 (97f7f794c)
  • Bump minimatch and serve-handler in /website (45baffab1)
  • Bump electron from 19.0.6 to 19.0.11 in /examples/electron/basic-example (ffd9b88ac)
  • Merge pull request #305 from djipco/dependabot/npm_and_yarn/website/loader-utils-2.0.4 (61c24e0c5)
  • Bump loader-utils from 2.0.3 to 2.0.4 in /website (b48b656e3)
  • Merge pull request #304 from djipco/dependabot/npm_and_yarn/website/loader-utils-2.0.3 (360038898)
  • Bump loader-utils from 2.0.2 to 2.0.3 in /website (76014942f)
  • Merge pull request #298 from djipco/dependabot/npm_and_yarn/nanoid-and-mocha-3.3.3 (32c7f220e)
  • Bump nanoid and mocha (130758918)
  • Merge pull request #297 from djipco/dependabot/npm_and_yarn/parse-path-and-release-it-7.0.0 (6183b1154)
  • Merge pull request #296 from djipco/dependabot/npm_and_yarn/website/nth-check-and-svgr/webpack-2.0.1 (985f97aaf)
  • Bump parse-path and release-it (df63f3610)
  • Bump nth-check and @svgr/webpack in /website (4ba4fd83d)
  • Merge pull request #295 from djipco/dependabot/npm_and_yarn/vm2-3.9.11 (18d4187b7)
  • Bump vm2 from 3.9.9 to 3.9.11 (7d58e0f60)
  • Merge pull request #289 from disambiguator/fix-type (a33f3a106)
  • Merge remote-tracking branch 'origin/master' (235cfafad)
  • Merge pull request #285 from djipco/dependabot/npm_and_yarn/terser-4.8.1 (bef14e09b)
  • Bump terser from 4.6.10 to 4.8.1 (bb470bebb)
  • Merge pull request #284 from djipco/dependabot/npm_and_yarn/website/terser-5.14.2 (6903fcd71)
  • Bump terser from 5.10.0 to 5.14.2 in /website (2d02d0d2c)
  • Merge remote-tracking branch 'origin/master' (d15b17155)
  • Add examples for control change messages (df067a712)
  • Merge pull request #283 from djipco/dependabot/npm_and_yarn/moment-2.29.4 (19b45aef7)
  • Bump moment from 2.29.3 to 2.29.4 (dcfc0be62)
  • Fix error string for normalized value range (75eebd10a)
  • Merge remote-tracking branch 'origin/master' (055677846)
  • Merge pull request #279 from djipco/dependabot/npm_and_yarn/parse-url-6.0.2 (df31f60ed)
  • Bump parse-url from 6.0.0 to 6.0.2 (236d162f6)
  • Merge pull request #278 from DumbergerL/fix/broken-link-docs (617956344)
  • Add Electron starter template (40a75dce2)
  • Improve p5.js note querying example (893b678c7)
webmidi - Release 3.0.21

Published by djipco over 2 years ago

This release removes code triggering the 'unsafe-eval' context which fixes a problem when using WEBMIDI.js inside an Electron application. See issue #277 for details.

webmidi - Release 3.0.20

Published by djipco over 2 years ago

This release fixes a regression issue causing Node.js to fail to correctly identify the proper flavour of module to load (ESM vs CJS).

webmidi - Release v3.0.19

Published by djipco over 2 years ago

  • Remove tarball after GitHub release (cdca7fdbb)
  • Target specific version for GitHub release assets (ec2a551a0)
  • Update Docusaurus (79abef6fd)
  • Update manual installation instruction after implementation of new release mechanism (9772a8782)
webmidi - Release v3.0.18

Published by djipco over 2 years ago

  • Update version number before building (68ee85596)
Package Rankings
Top 1.82% on Npmjs.org
Badges
Extracted from project README
npm npm npm