midi-player-js

    2.0.16 • Public • Published

    ♬ 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/

    Install

    npm i midi-player-js

    DownloadsWeekly Downloads

    337

    Version

    2.0.16

    License

    MIT

    Unpacked Size

    5.44 MB

    Total Files

    457

    Last publish

    Collaborators

    • grimmdude