# djipco/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.).

Repository: https://github.com/djipco/webmidi
Canonical: https://ross.abutalabs.com/products/webmidi
Language: JavaScript
License: Apache-2.0
License Family: permissive
Topics: web-midi-api, web-midi, midi, webmidi, jazz-plugin, sysex, midi-messages, node, browser
Last push: 2026-08-13T22:15:00+00:00

## Health v2 (maintenance only)
Score: 82/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 97, release rhythm 53, longevity 100
- inputs: {"age_days": 3976, "days_push": 20, "days_rel": 155, "gap_med": 171, "n_releases_24m": 4}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 1710, forks 127 (observed 2026-08-28T04:05:25.712548+00:00)

## What it is
WEBMIDI.js is a JavaScript library that simplifies interaction with the Web MIDI API in browsers and Node.js. It provides user-friendly functions for sending MIDI messages (like playNote, sendPitchBend) and event listeners for receiving MIDI input (like noteon, pitchbend, controlchange).

## Use cases
- send midi notes from a web page to a synthesizer
- listen for noteon events from a midi keyboard in the browser
- control midi instruments with pitch bend and control change messages
- build a web-based midi sequencer or drum machine
- handle sysex messages from midi hardware
- connect a midi controller to a node.js application
- react to program change messages from midi devices

## When to choose
- you want a friendly, high-level API over the raw Web MIDI API
- you are building a browser-based music app or instrument controller
- you need cross-environment support (browser and Node.js)
- you want simple event-driven handling of inbound MIDI messages

## When to avoid
- you need low-level, direct control of the Web MIDI API without abstraction
- you are working outside JavaScript or in an environment without Web MIDI/Jazz plugin support
- you need audio synthesis or DSP rather than MIDI messaging

## Facets
- artifact type: library
- maturity: stable
- function: audio-processing
- domain: web-development, audio, browser-extensions
- platform: browser, cross-platform
- tags: web-midi, midi-instruments, music-technology, event-listeners, sysex, midi, event-handling, audio, nodejs

## Member repositories
- djipco/webmidi (main) score 82

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:05:25.712548+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-30T03:35:08.457131+00:00, confidence not recorded.
  - readme: https://github.com/djipco/webmidi (fetched 2026-08-28T04:05:25.712548+00:00, sha f16c465acb82)
- Data as of 2026-08-30T08:39:29.467469+00:00.
