vexflow icon indicating copy to clipboard operation
vexflow copied to clipboard

Default Style Audit - Bach Minuet in G

Open Silverwolf90 opened this issue 9 years ago • 16 comments

@0xfe has been working on a simple full-score example in VexFlow. Even though it's still in progress I thought this was a great opportunity to assess VexFlow's default style. Almost everything in the example consists of defaults except for the slurs' (ie Curve) control points, which are manually set.

Bach Minuet in G

Stylistic Issues:

  1. Key signature too far away from the clef
  2. Time signature too far away from key signature
  3. Time signature numbers are too small
  4. Fingering 2 not centered over notehead (Bar 6)
  5. Gracenote is a bit too far away from the note (Bar 8)
  6. Left modifiers increase spacing between objects when not needed (Bar 1, 7, 9, 15) or by too much (Bar 8)
  7. Beam sitting between staff lines (Bar 11) (https://github.com/0xfe/vexflow/issues/432)
  8. Beam angles are too aggressive
  9. Beams feel a bit thin
  10. Metronome mark too close to tempo text
  11. Too much spacing between beamed inner notes. (Bar 14)
  12. Too much spacing between last two notes (Bar 15)
  13. Slurs are too thick
  14. Slurs endpoints should be centered over the notehead if on the notehead-side
  15. Slur endpoints shouldn't start on staff lines
  16. Slur endpoints should go above staccato dots
  17. Augmentation dots are a bit close to notehead
  18. The thin/thick repeat barlines are too close to each other
  19. Repeat barline dots too close to barline
  20. Notes before/after repeat are too close to the barline

Disclaimer: This is naturally a bit opinionated, but I don't think I've said anything too controversial.

Silverwolf90 avatar Aug 29 '16 11:08 Silverwolf90

Fantastic.

M. 8 -- the "grace" note should not have a slash through it -- it's an appogiatura. (B-quarter note + A half note).

mscuthbert avatar Aug 29 '16 15:08 mscuthbert

Thanks for the audit, Cyril. This is exactly what I was hoping to get from the demo. Do you mind numbering them, so it's easier to refer to them in comments?

0xfe avatar Aug 29 '16 15:08 0xfe

Done!

Silverwolf90 avatar Aug 30 '16 18:08 Silverwolf90

I'm changing:

Left modifiers increasing initial stave padding by too much (Bar 9, Bar 15)

to

Left modifiers increase spacing between objects when not needed (Bar 1, 7, 9, 15) or by too much (Bar 8)

Silverwolf90 avatar Aug 30 '16 18:08 Silverwolf90

@ronyeh @mscuthbert @sschmidTU @AaronDavidNewman @0xfe @Silverwolf90 once #1519 is merged we will get the image below. I think that it is now the right time:

  • to reassess the rendering of this score
  • to decide which other scores we would like to add to the test suite. I have been working on https://github.com/stringsync/vexml with @jaredjj3 and it should be possible to create tests based on musicxml files.

Bravura pptr-Bach_Demo Minuet_1 Bravura svg_current Gonville pptr-Bach_Demo Minuet_1 Gonville svg_current

rvilarl avatar Jan 08 '23 11:01 rvilarl

Will think of other test pieces soon. There's a tradition of including Trio no 1 from the Mozart Clarinet Quintet in music notation projects. It'd be good to have a piece with texts, and also to show that Vexflow is for all people, some music not by white-male-Europeans. I have an Amy Beach score in musicxml that I use as a Vexflow demo, but it requires music21j etc. -- I haven't ever coded a whole work directly in Vexflow.

One thing that I've always wanted to PR on, but always forget is that the grace note in m8 should not have a slash through it (and often without a flag). It's a quarter note appogiatura (subtracts one beat from the dotted half note.) Oh, and the minuet isn't by Bach; it's by Christian Petzold. :-) https://en.wikipedia.org/wiki/Minuets_in_G_major_and_G_minor

mscuthbert avatar Jan 11 '23 00:01 mscuthbert

Nice.

For VexFlow 5, we should rename this to "Demo - Petzold".... then we can add other standard demos to our test suite, including "Demo - Beach", "Demo - Joplin", etc....

ronyeh avatar Jan 11 '23 00:01 ronyeh

Joplin is always a good choice -- out of copyright, fun, diverse, and often introduces cross-staff problems.

mscuthbert avatar Jan 11 '23 00:01 mscuthbert

One thing that I've always wanted to PR on, but always forget is that the grace note in m8 should not have a slash through it (and often without a flag). It's a quarter note appogiatura (subtracts one beat from the dotted half note.)

Thanks for pointing it out. :-) I stole your PR with this fix: https://github.com/0xfe/vexflow/pull/1521/files

ronyeh avatar Jan 11 '23 00:01 ronyeh

Joplin is always a good choice -- out of copyright, fun, diverse, and often introduces cross-staff problems.

@ronyeh @mscuthbert @jaredjj3 I will go for Gladiolus Rag. @sschmidTU the cross-staffs are not handled in OSMD, right?

rvilarl avatar Jan 17 '23 11:01 rvilarl

@rvilarl If you mean cross-staff beams, no, they're not handled in OSMD, because they weren't supported in Vexflow 1.2.93. (if you're talking about Gladiolus Rag specifically, please provide a link to the MusicXML) Would be great to implement them though with Vexflow 4+, looking forward to that!

sschmidTU avatar Jan 20 '23 14:01 sschmidTU

(if you're talking about Gladiolus Rag specifically, please provide a link to the MusicXML)

https://musescore.com/user/58480/scores/1749906

rvilarl avatar Jan 20 '23 22:01 rvilarl

@rvilarl thanks! Unfortunately I can't download the MusicXML because I don't have a Musescore subscription, though I guess I don't need it for now.

By the way, actually OSMD has a lot of cross-beam support internally (data model), because we support it in our mobile app which has its own renderer, from which OSMD's code is derived. We just never activated/adapted much of the graphical code in OSMD because Vexflow didn't have cross-stave beam support.

sschmidTU avatar Jan 23 '23 22:01 sschmidTU

@sschmidTU the score is public domain and I downloaded it with a free subscription. Should I make a PR to include it in your test set?

rvilarl avatar Jan 25 '23 00:01 rvilarl

Ah, thanks, it can be downloaded just by logging in with a free account. No, I don't see the value for the test set before we have cross stave beams, and it's quite big, but thanks!

sschmidTU avatar Jan 25 '23 13:01 sschmidTU

FYI getting there with Joplin

https://jsfiddle.net/v53kesbp/2/

rvilarl avatar Feb 12 '23 23:02 rvilarl