Skip to content

JavaScript library to play MIDI files in Edge, Firefox, Safari, and Chrome.

License

Notifications You must be signed in to change notification settings

hacklily/hackmidi

Repository files navigation

Hackmidi

A JavaScript library to play MIDI files in Edge, Firefox, Safari, and Chrome.

A fork of midihackery. Powered by libtimidity. Used in Hacklily.

Installation

npm install hackmidi --save

Usage

import {playerFromMIDIBuffer} from "hackmidi";

fetch("Chop-28-4.mid")
  .then(response => response.arrayBuffer())
  .then(buffer => playerFromMIDIBuffer(buffer, "samples/"))
  .then(player => {
    player.addChangeListener((timeInSeconds, isPlaying) => {
      console.log(timeInSeconds, isPlaying);  // (0, false)
    });

    player.play();

    // ...
    
    player.pause();

    // ...
    
    player.seek(20.5 /* seconds */);
  });

Demo

See https://www.hacklily.org/hackmidi/.

About

JavaScript library to play MIDI files in Edge, Firefox, Safari, and Chrome.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published