Thursday, February 20, 2014

VexFlow Goodies

As announced on the VexFlow mailing list, here are some fun things you might enjoy.

VexTab Audio Player

The VexTab audio player, which My VexFlow uses to play notated music, is now available in the VexTab repository ( The player is based on MIDI.js and requires a set SoundFont instruments.

Tablature with Rhythm Stems

VexFlow now supports tablature with rhythm information thanks to Cyril Silverman.

The stems work well with modifiers such as dots and articulations (fermatas, strokes, etc.)

Vex Fretboard

The code to render fretboard diagrams is now available on Github. It lets you render guitar and bass fretboards like these:


VexWarp is a web audio experiment I've been working on which allows you to slow down, pitch shift, and loop your audio and video files, all in the browser. There's also a chrome plugin for offline access. At its core is a Javascript implementation of a phase vocoder variant.

Thats all folks!


  1. This looks awesome, one question though. Is there a way to prevent the degradation of the canvas in retina/4k displays? This is exactly what I'm looking for to build a percussion app, but the render quality doesn't seem to keep up with the hi-res screens. Really great work, though!


  2. Can i load a mp3 or ogg file and play the sounds and show in the tablature?

    Please help me, thanks.

  3. Hi, do you plan to open source VexWarp? I'd like to add more precise pitch shifting, in particular for playing along with recordings that are just out of tune enough to be painful. Amazing this can be done in JS now.

  4. Hi, I have a Vextab doubt. If I do the following code:

    function change() {document.getElementById("notation").innerHTML = "tabstave"; }

    and call these code, It works only in the first call. What can I do to solve this? Where can I find someone to help me?