Arabic music notation in the browser

I created a bare-bones content filter to add musical notation to Drupal content, using the VexFlow / VexTab music engraving library. Here's a little sample, also showing my fork of the original library to handle basic Arabic musical notation (quarter tones and special scales):

tabstave notation=true tablature=false clef=treble key=Rast notes C/4 D/4 E%@/4 F/4 | G/4 A/4 B%@/4 C/5

Feel free to fiddle with the music snippet above. You can find a tutorial for the syntax here. I hope to work more on this library to allow MIDI playback and other goodies. I love JavaScript!


I saw your post on and your comment "music professionals or teachers who would like to add music notation in their blog posts" caught my eye. You might be interested in Noteflight, an online music notation program that easily embeds in any web page. Noteflight allows interactive entry and editing of scores and doesnt require one to learn a special ASCII syntax in which to describe music.

Here's a blog that makes good use of NF embeds:

Write to me at if you want to find out more, and there's also more info here:

Thanks! Robin at Noteflight

Thanks for getting in touch. Noteflight looks great! However, I am a convinced advocate of HTML/CSS/JS - do you have any plans to rewrite a player with this stack?

Also, how's you support for non-Western musical traditions - e.g. i18n support and quarter-tones?

The nice thing about developing with an open source code base is that many people can contribute parts of the functionality that are important to them.

Thanks for your reply. Noteflight does have a pure-HTML player that can be used now, although it is still in development. This player has full i18n support (although not quarter-tones). Although we're not open source, we are a useful and accessible product that is free to many people :)

Great! Looking forward to trying it out.

This is really neat, thanks for sharing. Is your fork of the library available publicly?

Thanks! Sure, they're on GitHub: VexFlow and VexTab.