MCPcopy Index your code
hub / github.com/djipco/webmidi

github.com/djipco/webmidi @v3.1.16

Chat with this repo
repository ↗ · DeepWiki ↗ · release v3.1.16 ↗ · + Follow
494 symbols 1,110 edges 66 files 264 documented · 53%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

WebMidi.js Logo

npm npm npm

Introduction

WEBMIDI.js makes it easy to interact with MIDI instruments directly from a web browser or from Node.js. It simplifies the control of physical or virtual MIDI instruments with user-friendly functions such as playNote(), sendPitchBend() or sendControlChange(). It also allows reacting to inbound MIDI messages by adding listeners for events such as "noteon", "pitchbend" or "programchange".

In short, the goal behind WEBMIDI.js is to get you started with your web-based MIDI project as quickly and efficiently as possible.

Getting Started

The official website site is the best place to get started. Over there, you will find, amongst others, two key resources:

To exchange with fellow users and myself, you can visit our Forum which is hosted on the GitHub Discussions platform:

If you want to stay up-to-date, here are your best sources:

Sponsors

WEBMIDI.js is a passion project but it still takes quite a bit of time, effort and money to develop and maintain. That's why I would like to sincerely thank 👏 these sponsors for their support:

    Anonymous Sponsor     Anonymous Sponsor   Anonymous Sponsor

If you use the library and find it useful, please 💜 sponsor the project.

Feature Request

If you would like to request a new feature, enhancement or API change, please first check that it is not already planned. Then, discuss it in the Enhancement Proposals section of the forum.

Citing this Software in Research

If you use this software for research or academic purposes, please cite the project in your references (or wherever appropriate). Here's an example of how to cite it (APA Style):

Côté, J. P. (2021). WebMidi.js v3.0.0 [Computer Software]. Retrieved from https://github.com/djipco/webmidi

Cheers!

-- Jean-Philippe

Extension points exported contracts — how you extend this code

MIDIOutput (Interface)
(no doc) [1 implementers]
typescript/webmidi.d.ts
Navigator (Interface)
(no doc)
typescript/webmidi.d.ts
MIDIOptions (Interface)
(no doc)
typescript/webmidi.d.ts
MIDIAccess (Interface)
(no doc)
typescript/webmidi.d.ts
MIDIPort (Interface)
(no doc)
typescript/webmidi.d.ts

Core symbols most depended-on inside this repo

on
called by 95
src/Input.js
addListener
called by 92
src/Input.js
enable
called by 46
src/WebMidi.js
send
called by 41
typescript/webmidi.d.ts
sanitizeChannels
called by 37
src/WebMidi.js
gt
called by 31
test/support/JZZ.js
vt
called by 31
test/support/JZZ.js
Mt
called by 24
test/support/JZZ.js

Shape

Method 229
Function 200
Class 44
Interface 21

Languages

TypeScript100%

Modules by API surface

test/support/JZZ.js91 symbols
src/Output.js62 symbols
typescript/webmidi.d.ts56 symbols
scripts/api-documentation/templates/helpers/ddata.js49 symbols
src/WebMidi.js38 symbols
src/OutputChannel.js38 symbols
src/Input.js26 symbols
src/Utilities.js21 symbols
src/InputChannel.js17 symbols
src/Enumerations.js15 symbols
src/Note.js14 symbols
scripts/api-documentation/templates/helpers/djip-helpers.js14 symbols

For agents

$ claude mcp add webmidi \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact