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.
Slurs
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!















19 comments (imported from blogger)
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 ## |
thanks for your usefull job
how about puting a slur on two notes that are separated by a bar_line ?
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?
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!
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!
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
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?
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?
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.