TypeScript Other
Switch branches/tags
Clone or download
sschmidTU and matt-uib feat: draw lyricsExtends, fix: lyricsSpacing (#322)
* lyricExtend partly implemented, incorrect position (x,y)

* tiny refactor/commenting

* feat(lyricExtend): lyricExtends draw correctly (until start of next note)

should probably draw until end of next note note (endStaffEntry.x+noteWidth), like in Musescore
some refactoring still recommended

* fix(lyricExtend): add width of following note, etc.

fix(lyricSpacing): sort lyrics before checking spacing between them
fix(lyricSpacing): decrease betweenLyricsDistance (minDistance), less necessary after sorting
refactor(drawLyrics): put drawLyricsLines and dashes in a more reasonable place in MusicSheetDrawer, still not optimal because drawn before lyrics

* commenting, improve Schubert demo file lyrics

* lyricExtend: fix commenting

* lyricSpacing: comment line

* fix(lyricsSpacing): space each verse (instead of first only)

remove VexFlow engraving rule, replace by conversion calculation (unitInPixels)
add Austrian National Anthem to Demo samples

* fix (lyrics/extend): fix double lyrics width calculation, shorten extend

remove lyrics sorting in spacing (fixed by not calling calculateMeasureWidthFromLyrics twice)
length of extends is not extended by a fixed note head width anymore.
extend length is sufficient and now gives more room for spacing
refactored extend handling in lyrics spacing (handling is still TODO)
clarified comments in VexFlowMusicSheetCalculator (especially for measure widths / x calculation)
Latest commit e9da9e1 Aug 15, 2018
Failed to load latest commit information.
bin chore: updated travis demo publish script to build the correct demo v… Jun 26, 2018
demo feat: draw lyricsExtends, fix: lyricsSpacing (#322) Aug 14, 2018
external/vexflow fix(in-measure clef layout): add as NoteSubGroup instead of ClefNote … Aug 2, 2018
src feat: draw lyricsExtends, fix: lyricsSpacing (#322) Aug 14, 2018
test feat: draw lyricsExtends, fix: lyricsSpacing (#322) Aug 14, 2018
.appveyor.yml Improvement/skyline (#270) Jul 9, 2018
.editorconfig added .editorconfig file Apr 28, 2016
.eslintignore Improvement/infrastructure (#202) Feb 28, 2018
.eslintrc.yml Improvement/infrastructure (#202) Feb 28, 2018
.gitattributes changed gitattributes file as it made troubles with binary files. Oct 14, 2016
.gitignore Renamed StaffMeasure to GraphicalMeasure (#264) Jul 4, 2018
.travis.yml Improvement/skyline (#270) Jul 9, 2018
AUTHORS Improvement/infrastructure (#202) Feb 28, 2018
CHANGELOG.md chore: updated change log Jun 25, 2018
LICENSE Prepared for first public release on npm. #2 Jul 8, 2016
README.md chore: fixed typo in readme May 4, 2018
karma.conf.js Improvement/skyline (#270) Jul 9, 2018
package.json update vexflow to new version 1.2.85 (#315) Aug 2, 2018
tsconfig.json Changed to full blown source map files and enabled typescript sourcem… Feb 28, 2018
tslint.json refactor: added prefer-const rule and fixed all let variables Jan 30, 2018
webpack.common.js chore: updated build infrastructure May 3, 2018
webpack.dev.js Fixed showing whole rest notes for measure rests. Ghost notes work now. May 24, 2018
webpack.prod.js chore: updated build infrastructure May 3, 2018


OSMD logo


Greenkeeper badge Travis Build Status Appveyor Build status Dependency Status Gitter Code Climate Commitizen friendly


OpenSheetMusicDisplay is the missing link between MusicXML and VexFlow. Built upon many years of experience in both sheet music interactivity and engraving, it is the perfect solution for app developers seeking to build digital sheet music services.

MusicXML is the de facto standard for sharing sheet music on the internet. VexFlow is widely used for rendering sheet music. It features an extensive note sign library attributable to its open source nature.

OpenSheetMusicDisplay brings the two together and offers an open source turnkey solution for your digital sheet music project.

Written in TypeScript and released under MIT license.