All Projects → grimmdude → Midiplayerjs

grimmdude / Midiplayerjs

Licence: mit
♬ Midi parser & player engine for browser or Node. As a parser converts MIDI events into JSON. Works well with single or multitrack MIDI files.

Programming Languages

javascript
184084 projects - #8 most used programming language
es6
455 projects

Projects that are alternatives of or similar to Midiplayerjs

Midiwriterjs
♬ A JavaScript library which provides an API for programmatically generating and creating expressive multi-track MIDI files and JSON objects.
Stars: ✭ 381 (+91.46%)
Mutual labels:  audio, midi, javascript-library
X32 Behringer
This GIT repo (C language) holds applications and utilities for the Behringer X32 and M32 mixing consoles. Additional details, documentation, implementation examples and apps can be found in my website:
Stars: ✭ 97 (-51.26%)
Mutual labels:  audio, midi
Audiokitsynthone
AudioKit Synth One: Open-Source iOS Synthesizer App
Stars: ✭ 1,258 (+532.16%)
Mutual labels:  audio, midi
Rust Jack
Decent jack bindings for rust
Stars: ✭ 128 (-35.68%)
Mutual labels:  audio, midi
Audiokit
Swift audio synthesis, processing, & analysis platform for iOS, macOS and tvOS
Stars: ✭ 8,827 (+4335.68%)
Mutual labels:  audio, midi
Web Audio Javascript Webassembly Sdk Interactive Audio
🌐 Superpowered Web Audio JavaScript and WebAssembly SDK for modern web browsers. Allows developers to implement low-latency interactive audio features into web sites and web apps with a friendly Javascript API. https://superpowered.com
Stars: ✭ 68 (-65.83%)
Mutual labels:  audio, javascript-library
Wad
Web Audio DAW. Use the Web Audio API for dynamic sound synthesis. It's like jQuery for your ears.
Stars: ✭ 1,540 (+673.87%)
Mutual labels:  audio, midi
Simpletones.js
The goal of simpleTones.js is to provide every JavaScript developer with a lightweight solution for creating custom sounds in their web applications. This documentation has been written in hopes that the least experienced developer can read, understand and go on to do great things. You can check out several examples at this link:
Stars: ✭ 45 (-77.39%)
Mutual labels:  audio, javascript-library
Green Audio Player
Audio Player javascript library
Stars: ✭ 151 (-24.12%)
Mutual labels:  audio, javascript-library
Ardour
Mirror of Ardour Source Code
Stars: ✭ 2,318 (+1064.82%)
Mutual labels:  audio, midi
Xrnx
The official Renoise Lua Scripting repository
Stars: ✭ 165 (-17.09%)
Mutual labels:  audio, midi
Low Latency Android Ios Linux Windows Tvos Macos Interactive Audio Platform
🇸Superpowered Audio, Networking and Cryptographics SDKs. High performance and cross platform on Android, iOS, macOS, tvOS, Linux, Windows and modern web browsers.
Stars: ✭ 1,121 (+463.32%)
Mutual labels:  audio, midi
Audiobench
Open source modular synthesizer
Stars: ✭ 63 (-68.34%)
Mutual labels:  audio, midi
Minibae
The platform-neutral Beatnik Audio Engine, Mini Edition (miniBAE) is an exceptionally mature, well-rounded, and reliable computer music and sound system specially customized for small-footprint and embedded applications.
Stars: ✭ 82 (-58.79%)
Mutual labels:  audio, midi
Musictheory
🎵 Music theory concepts in Go.
Stars: ✭ 53 (-73.37%)
Mutual labels:  audio, midi
Webmidikit
Simplest MIDI Swift library
Stars: ✭ 100 (-49.75%)
Mutual labels:  audio, midi
Omnimidi
A software MIDI synthesizer for professional use.
Stars: ✭ 181 (-9.05%)
Mutual labels:  audio, midi
Awesome Music
Awesome Music Projects
Stars: ✭ 925 (+364.82%)
Mutual labels:  audio, midi
Midi shield
Midi shield product 9595, available from SparkFun Electronics
Stars: ✭ 34 (-82.91%)
Mutual labels:  audio, midi
Fsynth
Web-based and pixels-based collaborative synthesizer
Stars: ✭ 146 (-26.63%)
Mutual labels:  audio, midi

♬ MidiPlayerJS

npm version Build Status

MidiPlayerJS is a JavaScript library which reads standard MIDI files and emits JSON events in real time. This player does not generate any audio, but by attaching a handler to the event emitter you can trigger any code you like which could play audio, control visualizations, feed into a MIDI interface, etc.

Demos

Getting Started

Using MidiWriterJS is pretty simple. Create a new player by instantiating MidiPlayer.Player with an event handler to be called for every MIDI event. Then you can load and play a MIDI file.

var MidiPlayer = require('midi-player-js');

// Initialize player and register event handler
var Player = new MidiPlayer.Player(function(event) {
	console.log(event);
});

// Load a MIDI file
Player.loadFile('./test.mid');
Player.play();

Player Events

There are a handful of events on the Player object which you can subscribe to using the Player.on() method. Some events pass data as the first argument of the callback as described below:

Player.on('fileLoaded', function() {
    // Do something when file is loaded
});

Player.on('playing', function(currentTick) {
    // Do something while player is playing
    // (this is repeatedly triggered within the play loop)
});

Player.on('midiEvent', function(event) {
    // Do something when a MIDI event is fired.
    // (this is the same as passing a function to MidiPlayer.Player() when instantiating.
});

Player.on('endOfFile', function() {
    // Do something when end of the file has been reached.
});

Note that because of a common practice called "running status" many MIDI files may use Note on events with 0 velocity in place of Note off events.

Full API Documentation

http://grimmdude.com/MidiPlayerJS/docs/

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].