🎻 Event-driven multi-standard MIDI state-tracking library. Working with MIDI should be simple, while faithful and professional.
Made with ❤️ by Lightingale Community. Repository available on Codeberg, GitHub and GitLab.
- Free, libre and open-source, under GNU LGPL v3.0.
- Behaves like a real MIDI module, doing most of the heavy-lifting for you.
- Developed with Firefox and an open Web in mind.
- Supports 8 ports, 128 channels, 512-voice polyphony maximum. More than you'll ever need.
- Built-in support of several standards, multiple plug-in cards, and tons of devices.
- Tells when MIDI programming errors are spotted, reducing chances of faulty programming.
- Available in JS (browser and Deno).
- No modification required to run in Tor Browser, Bromite and LibreWolf.
- Wide support of bank mapping and bitmaps via
midi-db
.
Octavia offers support to a wide range of targets, most of them being either GM-compliant or having strong historical importance. Read the support page for more information.
To have a general idea of how MIDI is implemented, refer to the MIDI Implementation Chart and Supported SysEx instructions.
We're now hosting a new place to handle development talks! If you don't have a GitHub account, or just prefer to report bugs or give suggestions in a more casual way, feel free to chat with us with links below!
- Fediverse (Mastodon): @lightingale@fosstodon.org
- Telegram channel: @ltgc_t
- Telegram group chat: Click to join
Please read CREDITS.md.
Please read the documentation.
Please check out the /examples/
directory.
You can help with Octavia's development, by doing any of the following, or more...
- Test Octavia, whether under production environment or not.
- Write anything utilizing Octavia's API.
- Report any bugs you find.
- Submit feature requests.
- Participate in programming (read the docs for further info).
- Reward the developers some donation.
- Spread the word about Octavia.