Friday, May 02, 2014

New in VexFlow (May 2014)

Lots of commits into the repository lately. Thanks to Cyril Silverman for may of these. Here are some of the highlights:

Chord Symbols

This includes subscript/superscript support in TextNote and support for common symbols (dim, half-dim, maj7, etc.)

Stave Line Arrows

This is typically used in instructional material.


Finally, we have slurs. This uses a new VexFlow class called Curve. Slurs are highly configurable.

Improved auto-positioning of Annotations and Articulations

Annotations and Articulations now self-position based on note, stem, and beam configuration.

Grace Notes

VexFlow now has full support for Grace Notes. Grace Note groups can contain complex rhythmic elements, and are formatted using the same code as regular notes.

Auto-Beam Imnprovements

Lots more beaming options, including beaming over rests, stemlet rendering, and time-signature aware beaming.

Tab-Stem Features

You can (optionally) render Tab Stems through stave lines.

That's all, Folks!


  1. do u have the code 4 these because ive been tryin 2 add slurs & grace notes.

  2. Do you have a code to tie notes across bar lines?

    1. Use "b" to indicate a bend as usual. If this occurs after a bar line, the tie will form across it, as expected. Example:

      tabstave notation=true key=C time=4/4 tablature=false
      notes :4 C-C-C/5 :8 C-C/5 | :8 bC/5 :4 C-C-C/5 :8 C/5

  3. Slurs can be done with bend, apparently:
    options width=800
    tabstave notation=true key=F time=C tablature=false clef=bass
    notes:8 F-E-F-A-G-E/3:4bE/3 | :8 D-D@-Dn-F-E-D@/3 :4 D/3 | :8 G/3 :16 F#-G/3 :8d G/3 :16 F/3 :4 F/3 ## |

  4. hello
    thanks for your usefull job
    how about puting a slur on two notes that are separated by a bar_line ?

    1. Have you by any chance figure out how to achieve this? I'm facing the same problem at the moment and can't find any documentation or example code how to do this :(

  5. I'm interested in creating music notation with a 12-position chromatic staff (7 spaces, 5 lines like piano keyboard) and using shape-note noteheads (different shape for each note of the scale. I'm wondering whether it would be possible to adapt VexFlow for this.

    I used Javascript about 10 years ago. My development platform is currently Mac OSX 10.6.
    I've also programmed in Java C++ HTML, PHP, VisualBasic and earlier languages.

    Can you recommend a beginner tutorial to get started in VexFlow Development?

  6. VexFlow is awesome, this is really what I need, thanks!

    But playing around with VexTab I found that whith "tab-stems=true" triplets on tab stave shown only when "notation=true". Even in your VexTab tutorial page at step 15 triplet not shown but it has to.
    Is it a bug?

    And is there a possibility in VexTab to change measure key and time within single tabstave?

    Thanks again!

  7. Hi I'm working on a major project using VexFlow. Can you get in contact with me when you get a chance please? andiejs @ gmail

  8. I am teaching notation and using VexTab to produce my examples. All I can say is... you rock! This is an amazing piece of work that I would like to see picked up and developed by an active community. Since there is no email contact address, I am leaving a note on a year-old blog post.

    The following snippet indicates two issues:
    tabstave notation=true key=C time=4/4 tablature=false
    notes | :w ## | :8 ## ## :16 C-C-C-C/5 :8 C-C/5 :16 ## ## ## ## |

    Note that the whole rest is in the wrong place by default. #6# fixes this, but shouldn't be necessary.

    Note also the stems on the rests. This is an indication that we should be using a longer duration rest to "properly" notate these timings. But in some cases (e.g. pedagogy) we want to use the wrong way. VexTab shouldn't be putting stems on notes that don't exist!

  9. How does one "beam through rests"; in the tutorial, there was actual vextab to manipulate but here there are only the PNG representations of the music.

  10. I've spent a long time looking through the tutorial and the blog and I can't figure out how to beam more than two eighth notes in 4/4 time. I'd like to beam four eighth notes together right now, but the program automatically beams in groups of two. How do I do this?

  11. I've spent a long time looking through the tutorial and the blog and I can't find an explanation of how to beam more than two eighth notes together. Right now I'd like to beam four eighth notes together, but the program automatically beams them together in groups of two. How do I do this?

  12. I'm just starting, and VexFlow looks great. I'm using the Chrome extension for Google Docs. But I have one question. Is it possible to get a 4 string tab for bass lines?

  13. Thanks for the tool!!

    I'm having trouble entering an eighth rest on 1 of a measure that is not the first in the line. For example: notes :8 ## 3-4-5/2 :q 2-3/1 | :8 ## shows up just fine, but as soon as I add a note after the eighth rest (notes :8 ## 3-4-5/2 :q 2-3/1 | :8 ## 5/2), the entire music sheet disappears. Actually, quarter notes or longer work (notes :8 ## 3-4-5/2 :q 2-3/1 | :8 ## :q 5/2), but eighth notes or shorter make the music disappear.

    Am I making a mistake in my code, or is there a bug here?

  14. Thanks for putting this together!

    I'm finding that if I put an eighth note on 1 followed by an eighth note or shorter, and it's not in the first measure of the line, the entire music notation disappears.

    notes :8 ## 3-4-5/2 :q 2-3/1 | :8 ## shows up normally
    notes :8 ## 3-4-5/2 :q 2-3/1 | :8 ## 5/2 shows nothing
    notes :8 ## 3-4-5/2 :q 2-3/1 | :8 ## :q 5/2 shows normally.

    Am I missing something?

  15. Hey, There!!! I've checking out MyVexflow and it seems like just what I wanted. Look, I am a Music Thoery Professor and I am doing research towards making a Music Theory Textbook that would eventually become an app to be used by our students. My Univ. is planning on uploading such app of various app stores for different platforms.
    I am interested in using VexTab and or VexFlow for such app, so we need to talk about specifics including compensation. A little hint, though: we are not planning on making any profit off of this!!!!

    BTW, keep up the GREAT WORK, man.

  16. How do you put in slurs into a notation?