An experiment on Web MIDI and polyrhythms written in Javascript.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
config
scripts
src
.gitignore
LICENSE
README.md
favicon.ico
image.png
index.html
package.json

README.md

Polyrhythmical

An experiment on Web MIDI and polyrhythms written in Javascript. Try the online demo.

Polyrhythmical

Demo

If you have a recent Chrome version you can try the online demo or watch a video recording of Polyrhytmical in action on YouTube:

Polyrhythmical video tour

Features

With Polyrhythmical you can create several step sequencers and generate patterns with different step lengths to achieve odd polyrhythms. Each sequencer can be attached to a different MIDI output and channel. You can control both external and internal MIDI capable devices. Here is a simple tutorial on how to create a virtual MIDI device on OSX.

Notes

This is an experiment written just for fun. Do not expect this to be a full-featured MIDI sequencer in your browser.

The goal of this project is to explore the current limitations of the Web MIDI API and to have fun with MIDI sequencing in the browser.

Unfortunately until Web Workers don't get access to the MIDI API, accurate timing will stay a dream.

Please note that Web MIDI API is currently only supported by Chrome and Opera.

Development

Requirements

  • a recent version of Chrome
  • Node 5
  • npm
  • a MIDI interface (virtual OR physical)
  • a MIDI capable synthesizer (hardware OR software)

To start the development environment:

git clone etc
npm install
npm start

to build for production:

npm build
cd build
php -S localhost:8181 # or any other http server

License

Licensed under an MIT License.

Credits

Thanks to WebMidi and Web Audio Scheduler. Based on Create React App and MUI CSS.