Skip to content

Latest commit

 

History

History
975 lines (644 loc) · 117 KB

CHANGELOG.md

File metadata and controls

975 lines (644 loc) · 117 KB

1.4.5 (2022-01-28)

Bug Fixes

  • Wedges: Simultaneous wedges possible, start/stop corrected (#1131), respect xml number attribute (44a0dce), closes #1134
  • OctaveShift: Fix octave-shift not rendered when type attribute (e.g. "down") not given (even though required) (44a0dce)

Features

  • Options/Clefs: Add osmd.EngravingRules.RenderClefsAtBeginningOfStaffline (#1135) (03cb762)

1.4.4 (2022-01-27)

Bug Fixes

  • Release: Fix types pointing at wrong (sub-)folder. Could solve type/import problems. (2a18295)

Features

  • Options: Able to set osmd.EngravingRules.SheetMaximumWidth > 32767 for SVG / renderSingleHorizontalStaffline (6ef37db)

1.4.3 (2022-01-18)

Bug Fixes

  • Ties: Fix ties not containing all notes, created multiple times (#1126) (a8fe5ae), closes #1097

Features

1.4.2 (2022-01-17)

Bug Fixes

  • Release: Fix typings location for npm release (8171984)

1.4.1 (2022-01-17)

Bug Fixes

  • Credit Error: Fix NaN error when element has justify attribute (dec2f1f)
  • Release: Fix typings not included in release (1.4.0) (5829be3)

Features

  • Color: Able to set the option {defaultColorMusic: string} (#1125) to apply a color to the whole sheet (2b3ea16)
  • Cursor: Visible with PageBackgroundColor set (SVG) (#1125), transparency dependent on PageBackgroundColor (a10f779)
  • Options: Add darkMode option (#1125) (d5a2d70)

1.4.0 (2022-01-14)

Bug Fixes

  • Beam SVG: VexFlowGraphicalNote.getBeamSVGs() gets SVGs of all beams starting on the note (#1108) (f4675fd)
  • Clefs: Fix specific end of measure clef missing (#1120)
  • Cursor: Fix follow for multiple cursors, can set cursor.cursorOptions.follow for each (#1111) (37f9002)
  • Grace Notes: Don't draw multiple grace note slashes for a set of grace notes (#1107) (89394db)
  • GroupBrackets: Don't draw if only one instrument visible (b72ef4e)
  • Note overlaps: Fix notes overlapping / not staggering sometimes (#1098) (05c1ca7)
  • Cross Stave Notes: Fix ghost notes only created for first few notes in measure, fixing cross stave positioning (#1062) (0507917)
  • Rehearsal Marks: Fix undefined error with multi-measure rests and rehearsal marks (76d5252)
  • Ties: Fix ties missing/doubled, orientations (#1097)

Features

  • ChordSymbols: Add EngravingRules.DefaultColorChordSymbol (#1106) (7f00a9b)
  • Note: Store TransposedPitch (for API access) (72633da)
  • Options: Add EngravingRules.StaggerSameWholeNotes option to x-shift whole notes on same line (#1098) (dc04dc5)
  • Slurs: GraphicalSlurs save their SVGElement (but not GraphicalTies) (5686daa)
  • SVG: Stems and beams have an id in the DOM (#1108) (a9b2c10)
  • Transposing: Able to transpose single instrument (#1115) independently of other instruments (e997df9)
  • VexFlowGraphicalNote: Add getStemSVG() and getBeamSVGs() helper methods (#1108) (79b28c8) (f4675fd)

1.3.1 (2021-11-26)

Bug Fixes

  • Clefs: Fix in-staff clefs missing or misplaced (2nd voice or with backup/forward tags) (#1102) (acdf8b0), closes #1103
  • Metronome: Fix some measures with very long metronome numbers not rendering (70e1654)
  • OctaveShift: Fix incorrect display octave for first of two octave shifts in measure (#1099) (c090c71)

Features

  • GraphicalStaffEntry: Add helper functions getHighestYAtEntry, getSkylineMin, same for bottomline, getAbsoluteStartAndEnd (2b364a8). For usage see Wiki | Exploring the Demo

1.3.0 (2021-11-13)

Bug Fixes

  • Accidentals: Render Slash-flat correctly (#1074) (2394de7)
  • Fingerings: Fix Fingerings collisions above/below notes (#1081), improve performance, implement as Labels with correct bboxes (df9b441), closes #1086
  • Infinite Loop: Fix rare infinite loop with certain rhythms (#1073) (a09f702)
  • Multiple Rest Measures: Display clef at end of multirest measure and fix wrong clef in following measures (#1064) (53a57fe)
  • MusicSystemBuilder: Prevent index error when MinMeasureToDrawIndex > 0 (#1069) (293cfb4)
  • OctaveShift: Fix ExtraGraphicalMeasure used as last measure, no endnote (#1080) (08640e7)
  • Rests: Fix rest collisions with notes (y coordinate) (#621, #1076). Add EngravingRules.RestCollisionYPadding (32b649a)
  • Slash-Flat Accidentals: Fix quarter flats shown after slash-flat accidentals (#1075) (87b681f)
  • Slurs: Fix slur starting on tie end note not shown (#1092) (265fa73)
  • Tuplets: Fix dots not corresponding to XML (#1082) (3899031)

Features

  • Accidentals: Support remaining microtonal accidentals available in MusicXML and Vexflow (#1084) (9ccc215)
  • ChordSymbols: Fix collision with notes, add staffline/measure alignment options (#1087, #934) (d814986)
  • Cursor: Add GNotesUnderCursor() function, returning GraphicalNotes (8c0e2d1)
  • Labels: Always save SVG Node as a reference for GraphicalLabel, allowing SVG manipulation without re-render (f888939), closes #711

1.2.0 (2021-09-23)

Bug Fixes

  • Note X-Positions: Fix Cross Stave Note Position X-Shift and Ghost Notes for complex fractions (#1063) (a04fd58), closes #1062
  • Repeats: Fix Repeat end+start (:||:) collision (#1061) by adding padding (88d7467). Add EngravingRule RepeatEndStartPadding (previous default 0.0, now 2.0)
  • Undefined errors: (#1051) Add some more safeguards for undefined variables in complex/messy midi scores (e0d70bc)

Miscellaneous

  • Dependencies: Update JSZip to 3.7.1

1.1.0 (2021-07-27)

Bug Fixes

  • BPM: Correctly parse float BPM and dotted beats (#1045, merge #1046) (aa2a0e7)
  • ChordSymbols: Prevent multiple rest measure generated over rest measures with chords (#955) (d1e454b)
  • GetNearestNote: Handle undefined parentStaffEntry (#1029, PR #1031) (6ca4a05)
  • Multirest: Fix repetition measures included in multiple rest measure (#901) (e624f6a)
  • Note Alignment: Fix notes not sharing stems/note heads (#414), voices not aligned (#947). Fix visual differences on re-render. (d9aabab)
  • Slurs: Ignore measure numbers, improve staff split slurs, add optional softening mechanism (bc71de7)
  • Tabs: Correctly read number of stafflines if staff-details node is given for multiple staves (#1041) (341b696)

1.0.0 (2021-05-06)

Bug Fixes

  • Barlines: Correctly place thin double line as end barline/StaveConnector (#1019), instead of beginning (eee1c03)
  • Error: Fix error when sorting unpitched note in a chord (#995) (47d7beb)
  • GraphicalNote: Fix getSVGElement throwing exception instead of returning undefined for MultiRestMeasure (b38693d)
  • RepetitionSymbols: Fix d.c., d.s. x position (#990) (eae08cd)
  • SingleStaffline: FollowCursor: Don't center the vertical axis (#1014) (f3bc721)
  • Skyline: Fix bottom line values undefined (#992), fixes issues with PageFormat for tabs (8559527)
  • Tabs: Correctly set number of stafflines, e.g. 4 for bass guitar (#991) (8d83c90)
  • Ties: Highest tie goes upwards (orientation), lower ties downwards (in same location) (d8af331)
  • Ties: Read orientation from XML, reliably set it above/below for chords (#1020) (070de0f)
  • Tuplet/Repeat: Fix tuplet number placement, fix repeat lines across multiple stafflines (StaveConnector) (#1016)
  • Wedges: Fix crescendo/decresc. lengths, positioning, etc (3e65761)

Features

  • Accidentals: Add support for three-quarter flats and sharps (#999) (98a5793)
  • Options: Add osmd.rules.FingeringPositionFromXML (#993), can be auto by setting false now. (d864b9e)
  • Cursors: Can now add multiple cursors, with new options like highlighting the current measure, color and alpha value, see PR 972 and #1005 (comment) for usage.
  • TransposeCalculator: Add TransposeCalculator, allowing arbitrary transposing of sheets by x semitones. Now out of early access and open source thanks to our Github Sponsors. See #733 (comment).

0.9.5 (2021-03-03)

Bug Fixes

  • Array.prototype: Ease Array.prototype pollution by using Object.defineProperty, potentially solving library conflicts like with pdf.js (#980) (ecc1d8f)
  • AutoMultiRest: Enable multiple rest measure when invisible instrument would have prevented it (#981) (d406341)
  • Build: Add missing MusicParts exports (MusicPartManager etc) (5349f30)
  • Rehearsal Marks: Fix shifted position when sheet has a pickup measure (#983) (5c4343d), closes #985 #985

Features

  • Options: Add options.OnXMLRead (#982), a function to modify the XML after reading, before parsing (b2be3e8)

0.9.4 (2021-02-22)

Bug Fixes

  • Slurs: The parameters for slur flattening were fine tuned to not flatten mid-length, mid-angle slurs (#971)
  • Transposing: Some necessary changes for the transposition plugin hotfix (Sponsor early access build)

0.9.3 (2021-02-18)

Bug Fixes

  • Beams: Fix long stems for notes in beams (#954) when different (wrong) stems given in XML (8b1d898)
  • Clefs: Fix mid-measure clef added at wrong position (#954) because of forward/backup node. (1a77ae8)
  • NotePositions: GraphicalNote boundingbox position improved (#966, #967), osmd.graphic.GetNearestNote working (1fde0f6)
  • Slurs: Read slur orientation from xml (#962) (Sibelius alternative to placement) (4ab1c44)
  • Slurs: Reduce height of long, steep slurs by flattening them (#971) (f128913)
  • Stems: Respect stem "None" in XML: don't display stems (#964) (941c50b), closes #951
  • StringNumbersClassical: Write as roman numerals, offset positioning, etc (#957, #949) (20b8cc9)

Features

  • ChordSymbols: Add osmd.rules.RenderChordSymbols (false now supported) (fe19427)
  • Cursor: Add rules.DefaultColorCursor (#961) (3170486)
  • Drawer: Add drawer.DrawBoundingBox() as standalone method ((#969), (#961))
  • Overlays: drawLine(), drawRectangle() etc returns removable svg node, add backend.removeNode() (#970) (dc9c66a), closes #961 #b5f3f5
  • String Numbers: Add option osmd.rules.RenderStringNumbersClassical (#949) (boolean) (5500251)

0.9.2 (2021-01-27)

Bug Fixes

  • Cursor: Fix bounding box/cursor position when only one vertical measure has an endClef (#872) (8b40dd3), related to #797

Features

  • Chords: Add options for chord alignment, relative x offset (#948) (143899b)
  • Rehearsal Marks: Render Rehearsal Marks (#919), add several RehearsalMarks EngravingRules (c931341)
  • Rehearsal Marks: Add osmd.rules.RehearsalMarkXOffsetSystemStartMeasure (#919) (default -20[px]) (84d60e1)
  • StringNumber: Display XML String number (e.g. violin) (#949) (9aba63c)

0.9.1 (2021-01-26)

Bug Fixes

  • Accidentals: Remove many unnecessary extra courtesy accidentals not given in XML (#747) (7493be9)
  • PercussionOneLineXMLDisplayStep: Display XML position correctly in all cases (#945) (3eb4747)

0.9.0 (2021-01-25)

Bug Fixes

  • Articulations: Don't assume placement above by default (#921) (e.g. staccato) (6f4dc27)
  • Chords: Fix rare error with chords having accidentals on the wrong note (#944) (5177806)
  • Cursor: Ignore hidden parts for cursor.next: Always move to next visible voice entry (#929) (7ca20d1)
  • Directions: Fix Segno, Coda and To Coda positioning (#920): To Coda at end, Segno at beginning of measure (9643493), closes #920 #920 #920
  • Exports: Add 4 missing exports from MusicalScore/Graphical/Vexflow (#935) (cab1a23)
  • Fingerings: Display fingerings and arpeggios for grace notes (#878) (e02556d)
  • Layout: Fix tuplets starting with rest notes not layouted correctly (shorter length) (#936) (1e70f83)
  • Layout: Pickup measures aren't unnecessarily wide anymore (#938) (f02bce1)
  • Layout: Widen pickup measure per staffentry accidental (#938) (e1f6277)
  • Lyrics: Read and display multiple text nodes separated by elision on single syllabic (#941) (1883ddd)
  • Metronome: Better avoid collisions with tempo instructions, especially at the beginning of a sheet (eed0606)
  • Options: SystemComposerDistance leaves same distance for single and multiple composer lines (#917) (61ae292)
  • StaveRepetitions: Fix To Coda, D.S. etc. not positioned correctly (#920). Add EngravingRule RepetitionSymbolsYOffset (06a86b0)
  • Stems: Don't auto-stem beams for tuplets (#945), respect SetWantedStemDirectionByXml (026db91)
  • Stems: Don't force direction for beamed notes with SetWantedStemDirectionByXml=true (#945) (40d822e)

Features

  • Chords: Display complex (Jazz) Chords correctly (#933), e.g. G7(b9,#11)/B, add EngravingRules.renameChord(), addChordName() (9ee524a), closes #930 #873 #590 #786
  • Chords: Elongate measures for chords - prevent most chord collisions (merge PR #928) (ba3ae42)
  • Export: Add SVG export to OSMD and generateImages_browserless.js -> png|svg option (#670) (8cf4567), closes #932 #932
  • GraphicalNote: Add osmd.rules.GNote(note) (#660) to get GraphicalNote from Note (d1d12c9), closes #559
  • GraphicalNote: Add static GraphicalNote.FromNote(note, osmd.rules) (#660, #659) (acf1c6e)
  • KeySignatures: Add EngravingRules.RenderKeySignatures (#894) (false now supported) (09c8c61)
  • Options: Add PickupMeasureWidthMultiplier to EngravingRules (#938) (530d078)
  • PercussionOneLine: Add EngravingRules.PercussionOneLineUseXMLDisplayStep (#945) (33a7184)
  • PercussionOneLine: Add osmd.rules.PercussionOneLineXMLDisplayStepOctaveOffset (#945) (5f5d4e9)

0.8.7 (2020-11-05)

Bug Fixes

  • Accidentals: Remember quarter sharp/flat, don't automatically put a natural after them (#903) (0696624)
  • Beams: Fix beams in tuplets with disconnected stems (#907) (8a97d47)
  • Beams: Fix beams with tuplets (#907). Add EngravingRules FlatBeams, FlatBeamOffset, FlatBeamOffsetPerBeam (7207676)
  • Beams: Fix nested beams, erroneous xml beam numbers (#909). Save IsGrace in Note (a0df576)
  • ChordSymbols: Render Natural Harmonic (#887)
  • Compact mode: Compact mode is now even more compact, doesn't add system margin (#898)
  • Empty Measures: Prevent a Vexflow bug where a measure was empty because a modifier width was NaN (a0dbc4f), closes #899 #49
  • Fingering: Associate fingering with correct note when not all notes have fingerings, save Note.Fingering (#889) (a59e5d9)
  • Iterator: Fix iterator.clone(): start at iterator.currentTimeStamp if startTimeStamp undefined (#896)
  • Layout: Don't add first system's border to margin below title. Saves a lot of space. (5c32ff1), closes #898
  • Octave Shifts: Fix ottavas (octave shifts) not generated correctly over multiple systems (#591) (PR #777) (11e9c20)
  • Rhythm: Don't print rhythm twice even if given in pickup measure and following measure (#890) (d34f5e4)
  • Skyline: Replace undefined values with neighboring values. Fix some tab scores (#911) (e824928)
  • Zoom: Fix pageBackgroundColor not filling entire page for zoom < 1 (#904) (d795e7b)
  • Zoom: Fix using += with osmd.Zoom by adding osmd.Zoom getter (3cb7fc2), closes mpat#75

Features

  • Slurs: Take slur placement from XML by default (#827). add EngravingRules.SlurPlacementFromXML (4cb3de9)
  • Log: Add log level silent (no console.logs)
  • osmd.Sheet: Add setter for TitleString, SubtitleString, ComposerString, LyricistString (no need to give Label)
  • Tremolo: Add TremoloStrokeScale and TremoloYSpacingScale in EngravingRules (887)

0.8.6 (2020-09-15)

Bug Fixes

  • Voltas, Tabs: Fix regression in 0.8.5 where repetition volta shift and tabnote svg id fixes were not applied (will soon be automatically fixed by vexflow patch script)

Miscellaneous

  • Build: Build size down to 1.1MB again from mysterious increase to 1.3MB in 0.8.5

0.8.5 (2020-09-08)

Bug Fixes

  • Container height: Small scores don't significantly exceed bounding box anymore (SVG height). Fix PageBottomMargin (#875) etc (c43565c), closes #788
  • Rests: Fix rests in pickup measures (e.g. 8th pickup in 4/4 time) turned into whole measure rests or multiple measure rests. (f1478a6)
  • Tabs: Fix multi-rest for tabs. Never create fingerings for tabs, for now (ed8d174)

Features

  • Measure Numbers: Display measure numbers (labels) as given in XML (#541) (6f5d77a), closes #879
  • Options: Add drawUpToPageNumber and drawUpToSystemNumber options (#835)

0.8.4 (2020-08-14)

Bug Fixes

  • Barline: Better detect measure ending barline from XML in some cases (#868) (bfc5892)
  • Beams: Fix beams with bad slopes by always recalculating beams. (#843) (7b1297e)
  • Chords: Prevent undefined error (2cff998)
  • Cursor: Attach to correct page HTMLElement (canvas) (#817) (decb3f1)
  • Cursor: Position correctly on page 2+ (#817) (ca7dffc)
  • Cursor: Show correctly for MultiRestMeasures, interpolated by MeasureNumber (progress) (f80697b)
  • Layout: Don't automatically create new system after final barline. add EngravingRules.NewPartAndSystemAfterFinalBarline (7a0a1e4)
  • Layout: Fix lyrics dashes causing errors with drawUpToMeasureNumber (#838), fix dynamic expressions missing (1128c8b)
  • MeasureNumbers: Don't reset measure number count if this.rules.NewPartAndSystemAfterFinalBarline disabled (0991aac)
  • Metronome marks: Draw all metronome marks, not just in first measure (#804) (f37cabb), closes #848
  • OctaveShift: Fix occasional error when no start or end note found (#860) (f91e5d0)
  • OctaveShift: Fix rare null error (#860) (deb21e3)
  • Ornaments: Mordent and inverted mordent reversed (mordent with line), according to MusicXML definition (#866) (1237bec)
  • Rest note positioning: Rest notes respect the display-step and display-octave tags now (#759) (e894bc8), closes #852
  • Tabs: By default, don't draw tuplet numbers in tabs (#805) (89a9f0f)
  • Tabs: Fix setLedgerLineStyle not found on rests (907fede)
  • Ties: Ties render correctly again, fix tie cross-up (#844) (efee071)
  • Tuplet: Respect placement below from XML (#867) (cf7ecfe)
  • Visible: Fix some errors when setting sheet.Instrument[i].Visible to false on multiple instruments. (9037f67)
  • Volta: Fix y-alignment for multiple rest measures (fix #789) (539e7d0)

Features

  • Fonts: Read and apply fontStyle for UnknownExpressions like dolce (#348) (28b313d)
  • Labels: Add option for additional spacing between multiline text labels (EngravingRules.SpacingBetweenTextLines) (b530316)
  • Multirest: Auto-generate multirest measure from subsequent rest-only measures (#861) (f7d6424)
  • Options: Add option StretchLastSystemLine to stretch last system to full width (#842) ([88d1a5a](https://github.com/opensheetmusicdisplay/opensheetmusicdisplay/commit/88d1a5a225765ea2
  • Options: Add osmd.EngravingRules.LyricsYOffsetToStaffHeight (#865) (3ca5dd0)
  • Rests: For rests encircled by beamed notes, if no display-step given, put the rest on the same y-height as previous note to avoid collisions. (a74d77b), closes #66

0.8.3 (2020-07-28)

Bug Fixes

  • MetronomeMark: render correct beat unit (e.g. half instead of quarter). fix #828 (b2fb539)
  • Parsing: fix missing default-y value for credit-words causing parse error (4773487), closes #62
  • Repeat: don't draw vertical line at the beginning of a system for single staff systems (#834) (e556978)
  • Slur: Slurs avoid note collision (c114296)
  • Slur: Slurs avoid note collision (#802) (18397f2)
  • Slur: Tweaks to slur rendering from matt-uib (b6d628f)
  • Tabs: by default, don't draw tuplet numbers in tabs (#805) (89a9f0f)
  • Transparency: ledger lines of invisible notes are now invisible as well. (#799) (d73e8ac)
  • fixed right alignment (and also x-center alingment) of text lines in multi-line-label (e.g. for Composer on the right side) (3988fde)

Features

  • Articulation: render marcato, up and down (8104dfa)
  • Label: Add support for no-print on part names (c3e6c8d)
  • Label: Add support for multiline labels (#801) (eda4cbf)
  • Lyrics: Spacing: add maximum measure elongation factor in EngravingRules. (b575746)
  • MultipleRest: Render multiple measure rests. add option to not render them. (#506) (7a04814)
  • Noteheads: support breve type (brevis) (#803) (09fc5e7)
  • Options: add EngravingRules.PageBottomExtraWhiteSpace (#788). merge #822 (6e5ae88)
  • Options: add new EngravingRules for notationFontScale, stemWidth, staffLineColor (#836) (2e1ab25)
  • Options: add option to draw measure numbers only at the start of a system (line) (ca9b88e), closes #59
  • Options: add option to not render time signatures (drawTimeSignatures: false). (#793) (21b089b)
  • Options: set default ledger line color to black (instead of grey). set in EngravingRules.LedgerLineColorDefault (cb31c98), closes #799
  • Spacing: Tweaks to compress spacing more (#820) (682f77c)
  • Spacing: optimize vexflow voice spacing/scaling, refactor (817762a)
  • Tabs: Add Slides, Bends, Hammer-on and Pull-offs (PR #839) (8de1400)

0.8.2 (2020-06-13)

Features

  • PDF: Remove createPDF from OSMD object (move to demo), reducing bundle size (from 1.5MB to 1.1MB). Fix FileReader pollution (64c8ccf)

0.8.1 (2020-06-10)

Bug Fixes

  • OctaveShift: avoid some errors when end of octaveshift not found (#778) (86e6726), closes #777 #591

0.8.0 (2020-06-10)

Bug Fixes

  • Beams: Recalculate beams on resize, so they fit to stem (#724) (50b0864)
  • ChordSymbols: add 5 for power chord (e.g. C5, C plus fifth) (#760) (6e1558d)
  • ChordSymbols: read augmented and dim in abbreviated form (aug, dim) (a291f6f)
  • ChordSymbols: write Cm(maj7) for C kind 'major-minor' (#784) (d00f29e)
  • Cursor: fix cursor undefined for canvas backend, improve cursor creation (#736) (cb193d2)
  • Layout: more lenient Measure Number Label collision checks, place them slightly to left (#782) (616de17)
  • Rendering: catch Vexflow errors while rendering a measure, prevent render loop stopping. (#773) (e2079a3)
  • Refactor undefined checks to also check null (#783) (12766fb)
  • Options: drawPartNames: false now also disables drawPartAbbreviations, unless set explicitly (#388) (cd50b68)
  • Skyline: Fix Measure number skyline offset (b97439e)
  • fixed breaking the system if the last measure has an endline (thin-bold line) (9d98357)
  • implemented always showing the current rhythm if there was an end line given in the last system. (b2b31bf)
  • Expressions: don't align expressions when there are no edges involved. manual merge of #768 (ff77b46)
  • Expressions: fix alignment in most cases, fix distance calculation (#758, #768) (6d5e752)
  • improved chord symbol text output and fixed transposing code. (de2ef57)
  • improved slur fix - removed magic number. Should work now for tabs as well. (f67428c)
  • removed doublettes check for dynamic expressions, as they might make sense for e.g. a repetition start, where another dynamic was used at the end of the repetition. (9ea9814)
  • Layout: update Vexflow to 1.2.91 (now 1.2.93), fixing time signature yPos. adapt vexflow import. #706 (7de0f7d)
  • Subtitle: don't add comma before work number if subtitle is otherwise empty (36e4e2a)

Features

  • Cursor: restore cursor state after resize and re-render (#734) if option set (default true) (a08e957)
  • Cursor: unique HTMLElement id (cursor.cursorElementId) (d8a15b2)
  • Font: can set fontFamily per label (#737), refactor: don't set defaultFontStyle per label (a7af16b)
  • Iterator: clone() optionally starts from a given startTimeStamp (not fully tested) (5d52d18)
  • Options: able to set ledger line width and style (color) in EngravingRules. (f4c2fc3)
  • Options: add option to not draw metronome marks (#680) (42a1ebe)
  • Options: can modify chord symbol text for all chords (except major). (#784) (6f53f1c)
  • Text: can set the fontStyle of a label, e.g. Bold (1) or BoldItalic (3). new option defaultFontStyle (#739) (894868b)

0.7.6 (2020-04-17)

Features

  • Layout: support XML page breaks optionally. new option newPageFromXML. #702 (2bcec40)
  • Options: start new system ("line break") when given in XML and OSMDOptions.newSystemFromXML set (#702) (5284aaa)
  • Options: add drawingparameter "compacttight" for reduced margins and tighter spacing (085ff1a)

0.7.5 (2020-04-15)

Bug Fixes

  • Slurs: fix undefined slur error in beethoven moonlight sonata (#679) (d23581f)
  • Beams: fix beams retaining old slope after zooming (#655) (447c4f9)
  • Tuplets: fix rendering for half note tuplets (were displayed as whole notes) (#700 (9512c3a)

Features

  • Options: Instances of osmd don't share static options/EngravingRules anymore. Can have multiple independently on one page (#559) (fc095ad)
  • Tabs/Testing: Add function test and testing/demo sample for guitar tabs (e18f133)

0.7.4 (2020-04-14)

Bug Fixes

  • BackendSelection: can now create and remove canvas backend (again), backend option only changed when given, improve backend creation code (#662) (c0a522c)
  • CanvasBackend: limit canvas dimensions to browser limitation of 32767, for now (#678) (55ef164)
  • Clefs: fix clef not detected when exported with invalid clef number (Sibelius) (#635) (3250842)
  • Color: fix defaultColorRest and defaultColorNotehead not applied (7f5e1c9)
  • Color: fix EngravingRules.ColorStemsLikeNoteheads, ColorBeams not respected for false (9a6ac74)
  • Demo: fix optional zoom controls not shown, improve hiding/unhiding of control elements (#661) (9783204)
  • Demo/Embedding: hide debug controls before rendering, always check showHeader option, only show debug controls by default on dev server (#661) (8b60397)
  • Fingering: fix all TechnicalInstructions counted as fingering, fix fingering for tabs (don't display on tab clef) (ee80e91), closes #711
  • Lyrics: fix null reference for lyrics dashes when drawing range set (a19b3cd)
  • Repetition: don't render a downward jog at type 'discontinue' (#656) (996847d)
  • Ties: prevent undefined tieNotes from creating a Vexflow error and crashing rendering (6209cd3)
  • Vexflow: update vexflow to 1.2.90, fixing rests displayed twice (see OSMD function test invisible notes) (a713d20)

Features

  • Tabs: OSMD can now render guitar tabulature from MusicXML, see PR #716 and issue #126
  • Color: new option pageBackgroundColor. can set canvas color e.g. to white instead of transparent. (#670) (4e5043c)
  • Demo: add showPageFormatControl, showExportPdfControl parameter, fix showZoomControl, hide header/controls before loading (#661) (126d88e)
  • Embedding: add parameters for compact mode, measure range, page format. Revise PageFormat argument handling. (#661) (5dc780e)
  • Embedding: create backend option (#661), also, give warning when PDF is created on Canvas background. (49dd902)
  • ExportPNG: generate pngs for multiple pages when PageFormat given. add pageWidth/Height parameters (#670, #676) (0353fac)
  • GeneratePNGs: can generate PNGs browserless by node script, improved speed (#670) (4089a59)
  • PageFormat: warn if a page can't fit a single MusicSystem. (1483403)
  • Rendering: add option renderSingleHorizontalStaffline (#681) (b1c298d)
  • Rendering: add osmd.Drawer.DrawOverlayLine, which allows the user to render colored lines on any MusicPage (#651) (6d8b9fc)
  • Testing: add visual regression testing script, generating diffs for all OSMD samples (c17a3c7)

0.7.3 (2020-01-15)

Bug Fixes

  • Arpeggio: fix up/down direction (wrong in Vexflow), remove Vexflow dependency (450b2d9), closes #645
  • Dynamics, drawing range: fix crescendo crashing when partially out of drawing range (#644) (8105270)

Etc

  • Imports: Remove many Vexflow dependencies in core OSMD classes (Arpeggio, MusicSheetCalculator, other /Graphical/ classes) (450b2d9, 90d93b9)
  • Cursor: Improve Follow Cursor performance (thanks to @praisethemoon) (#639)

0.7.2 (2019-12-13)

Bug Fixes

  • Arpeggio: don't draw one-note arpeggios (#617) (5f7e183)
  • Arpeggios: prevent infinite height bug, arpeggio always going across voices (#546) (3fbed99)
  • autoBeam: don't beam over half notes or beat, prevent separate beams connecting (da464aa), closes #574
  • autoBeamOption: don't beam notes of type quarter or longer in tuplets (c3b3b5a)
  • barline: don't automatically end piece with final barline if not specified (#569) (8ae7938)
  • barlines: fix left barline added to end barline (#588) (6608f17)
  • ChordSymbols: save and show all chords on single note (#599) (2d7e265)
  • credits placement: fix title and composer label placement, now in relation to Staffline width (b7af9b8), closes #578
  • Cursor: starts and ends at selected range of measures to draw (#566) (3fe770e)
  • demo: set and reset options for specific test samples correctly (b28b5dc)
  • empty measures: not filled with whole rests by default anymore. new option fillEmptyMeasuresWithWholeRest (#625) (00522db)
  • exports: export Vexflow graphical classes (e.g. VexflowGraphicalNote) (06ef2f3), closes #549
  • Fractions: add gt and gte methods, replace some > and < occurences (#518) (c80fea6)
  • lyrics Placement: fix support for Sibelius format (#583) (084f308)
  • octaveShift, drawRange: start and end at within draw range, fix error (9f6bb82), closes #586
  • SkyBottomLineCalculator: prevent infinity bug with startIndex = endIndex and .slice (554d277), closes #575
  • stemColor: respect ColoringEnabled, re-color to default if disabled (#614) (52928cb)
  • whole rest bbox: fix whole rest bounding box in non-4/4 time (#609) (2b91655), closes #616 #605

Features

  • alignRests: add auto option (alignRests: 2) which only aligns rests if measure contains simultaneous voices (1c8de9f), closes #621
  • API: Allow updating the graphical sheet from the music sheet (#622) (55c3d8a)
  • API: save ActiveTimeSignature in SourceMeasure (4927727)
  • barline: able to not draw barlines (fix barline none) (#391) (7524287)
  • ChordSymbols: show all chordsymbols over a single note/staffEntry (spacing WIP) (#599) (6eb97fa)
  • exports: Add module exports for VoiceData (#631) (a2ce3a2)
  • open same-origin xml url: supported (#603) (0ac0132), closes #576
  • options: add option to (not) draw slurs (#602) (1333195)
  • options: add option to align rests and avoid rest collisions, which also aligns rests with voices (#621) (ca6d730)
  • options: can set font family for labels (default Times New Roman) (35ee9e2), closes #477
  • options: offer options to disable measure numbers, set their interval (0d5af7a)
  • Options: add drawLyrics option (#602) (9d09586)

0.7.1 (2019-08-19)

Bug Fixes

  • part names: drawPartNames = false does not leave left x-spacing in first line anymore (595f8ab), closes #515
  • stemColor: respect colorStemsLikeNoteheads option in XML color mode as well (6548c57), closes #486
  • Ties: fix not displaying ties because measure to graphicalMeasure dictionary didn't work (27d3645), closes #503

Features

  • drawFromMeasureNumber: can now specify first measure to draw from as well as last, closes #528 #482
  • bar lines: Add support for double and final bar lines (#519) (e05b99a)
  • color: add colorStemsLikeNoteheads option, color beams like stems as well if matching (b631879), closes #486
  • tempo: Save measures' BPM (#558) (cf199ad), closes #557
  • transparency: add invisible notes as transparent StaveNotes instead of GhostNotes (d0211a7)
  • transparency: allow transparency after re-render with Note.PrintObject = false (52212d6), closes #509
  • demo: add option to follow cursor (, add function test selectMeasuresToDraw)

0.7.0 (2019-03-25)

Bug Fixes

  • Ajax Timeout: Ajax timeout was not handled for IE and node (2a66245), closes #479
  • Octava display error: Fixed the octave shift bracket to be shown over the note line (0e7f9f7), closes #490
  • options: fix drawing parameters always being created in setOptions, causing some options to be reset with {} arguments (419c39d)
  • partAbbreviations: don't draw part abbreviations for solo parts, add option to not draw abbreviations (945d6a1)
  • partNames: fix showing only one of multiple parts with same instrument name (3bee67e)
  • ties: fix error in tie handling when no end note found (3757db5)
  • tremolo: enable half note tremolo between two different half notes. (eefadf8), closes #472
  • tuplet: correct tuplet label for number of notes not equal to tuplet label (bf5aaa1), closes #485
  • tuplet: fix duplet, quadruplet, tuplet layout (596e794), closes #488

Features

  • Coloring: Add automatic Boomwhacker coloring scheme (#494) (adaecc4), closes #486
  • Instrument label abbreviations: Add instrument label abbreviations (a67dc00), closes #466
  • Types: OSMD uses TS types from Definitely typed now, improved Vexflow compatibility in TS (53f2c44)
  • Options: implement DrawCredits (8c6df97)
  • Parts: read and display XML part abbreviations (e.g. Vln for Violin) (9fe031e)
  • Tremolo: display single note tremolos (db1840c), closes #431

0.6.8 (2019-02-08)

Bug Fixes

  • alignment: fix alignment of notes following dotted rest (a7eb53d), closes #484

0.6.7 (2019-01-16)

Bug Fixes

  • beams: ignore beams between notes => quarter (tremolo) causing error (2eb2a92), closes #472

Various

  • added osmd.Version getter to check OSMD version
  • exported more classes for TS import (/Graphical/*) (#454)
  • Packages updated (webpack-dev-server, etc.)

0.6.6 (2018-12-04)

Package

  • devDependencies: Remove browserify and tsify dependencies. Fixes unnecessary npm audit warnings.

Bug Fixes

  • color: use color instead of colorXml for coloring notehead, stem. (590e281), export missing TS classes - closes #462

0.6.5 (2018-11-29)

Features

  • ChordSymbols: Chord symbols update their bounding box in the skyline. (#467) (70ffe0b), closes #464
  • options: add drawUpToMeasureNumber option (f319541), closes #409
  • tempo: Add Graphical metronome mark (#468) (6ff4fcb)

0.6.4 (2018-11-14)

Features

  • export: export all classes for TS import (#458) (3364b52)

0.6.3 (2018-11-08)

Bug Fixes

  • color: correctly parse XML color with alpha channel. (0c28816)
  • color: notes are re-colored during render() (3e3d9b3), closes #440 #448
  • color: set default colors during render(). (298632f), closes #440

Features

  • color: can set defaultColorLabel, defaultColorTitle (91a6b1f), closes #440
  • osmd: Grant public access to osmd and cursor member elements (#452))

0.6.2 (2018-10-25)

Bug Fixes

  • noteheadshape: add color attribute null check (3d8da1e)

Features

  • color: enable defaultColor options for notehead, stem, rest, (3323664), closes #438, (f1b33ab)

0.6.1 (2018-10-25)

Bug Fixes

  • cue notes: parse cue element (9443163)
  • grace notes: fix stem direction for beamed grace note connected to beamed main note (28fc01e)

Features

  • color: color Notehead/Stem, flags, beams. parsed by XML (#436) (4126133) add options to enable or disable coloring (f78524e) demo: add function test color (abfd252)

0.6.0 (2018-10-18)

Bug Fixes

  • accidentalOctaveShift: place notes with octave brackets correctly (#424) (43f13d5)
  • ChordSymbolReader: replace old conversions. fixes chord symbol reading (e.g. Ab). (b8d41de), closes #418
  • ChordSymbols: add y spacing so stems don't collide (78cd2ed)
  • cue notes: add as VF.GraceNote instead of VF.StaveNote (8d1371f)
  • grace notes: can be at end of measure, after main note (37f145d)
  • grace notes: grace note beams handled like other beams now, can have any grace note beams (94cc6b5)
  • invisible notes: invisible rests formatting partly fixed by adding ghost notes (3b0e19d)
  • resize: handling, set autoResize at runtime, add osmd.clear(), demo null checks (#428) (cf2111e), closes #403 #387
  • stemDirection: fix beam with grace note in middle bug (#413) (a71496c)
  • tests: fix null pointer in setStemDirection (Haydn test fail) (ad89d96)
  • VexFlowUpdate: update to 1.2.87, fixes npm audit vulnerabilities

Features

  • Expressions/Dynamics: Add Crescendo wedges, texts, spacing, etc. (#410)
  • Arpeggios: Display arpeggios (#411) (90ae82f)
  • autoBeam: add option to automatically beam notes (09170a2)
  • cue notes: add cue notes as smaller notes. grace notes can have articulations (0094f1f), closes #349
  • fingering: add fingerings to right, above, below, auto (#406) (0e50f89), closes #350
  • fingering: draw fingering using Vexflow, can be disabled by option (628562b)
  • NoteHeadShapes: add square, rectangle note head (b6a15ef), closes #404
  • options: Options now settable during runtime: public setOptions() (76bd9bf), closes #407
  • stemDirection: use xml stem direction. (optionally) (6373d58), closes #415

0.5.1 (2018-09-26)

Bug Fixes

  • Bbox/Cursor: fix bbox and cursor position for whole rests (#383) (3d1894d), closes #380
  • Cursor: Fix Cursor jumping incorrectly on Next() (#377) (f43e305), closes #376
  • DrawingParameters: switching default and compact mode during runtime correctly renders each mode after re-render. (96bf081)
  • Error handling: Fix error loading empty score, improve error handling (#367) (aa65792), closes #358
  • Invisible notes: do not display invisible notes and double rests. (a6ac78c)
  • NoteHead: info instead of warn for unsupported NoteHead, use triangle for "do" (f1d4b47)
  • Zooming on mobile devices crashed OSMD: Skip Bottomline Update if the zoom gets too much for vexflow (#375) (c562a96), closes #373

Features

  • Invisible notes: Do not display invisible time signature. (af0770a)
  • Invisible notes: Do not display invisible notes. Invisible notes are parsed, with invisible (printObject) flag (ccf860e)
  • Options: add options interface for osmd constructor (#368) (9da9cb4)
  • Options: implement compact mode, drawPartNames, drawTitle, drawSubtitle, drawComposer, drawLyricist (9cec507)
  • Tuplets: Read and display tuplet bracket setting from XML. Do not display tuplet ratios by default. (f568e51)
  • Demo: Add Re-render button, add column to layout (#361)

0.5.0 (2018-09-05)

Bug Fixes

  • Skyline: Labels affect height of skyline now. Start and end (b5f3bcd)
  • Cursor: Fix x-position of cursor (6887f20)
  • Demo: Fix console warning on init (#332) (0845c6d)
  • Demo: Sample file names more consistent (c9fcbae)
  • Expressions: Octaveshift line breaks work now (e2b1780), closes #309
  • In-measure clef layout: add as NoteSubGroup instead of ClefNote directly. (97a0043), closes #307 #311
  • LyricsSpacing: eliminate overlap between lyrics labels by extending measures (622f346)
  • LyricsSpacing/Dashes: reduce lyrics spacing and number of dashes (7565bb0)
  • Lyrics: Shorten lyrics y offset (0c8eb28)
  • Demo: add OSMD function test files to index.js (fe260c0)
  • Relative Bounding Positions: Relative x positions in bounding boxes were not adjusted to note head (af21d7e), closes #309
  • VexFlowMusicSheetCalculator: fix vexflow formatting error caused by align_rests = true (4fa7b4e)
  • TimeSignatures: Display Common/Alla Breve time symbols instead of numbers, fix key signature without mode (6e99997), closes #305
  • VexFlow: Update to VexFlow version 1.2.85, fixes rerender issues with grace notes, ornaments, etc. (a840ea3)
  • Repetitions: Fix drawing repetition endings using VexFlow Voltas (c32ba9d)

Features

  • Slurs: Display Slurs (1123251) #359
  • Ornaments: Display Ornaments (7032fdc)
  • GraceNotes: Display GraceNotes (3412e9a), closes #293
  • GraceNotes: Display Grace slur (boolean) (2525e92), closes #293
  • Accidentals: Display quarter tones, triple sharps/flats (024b95e), closes #215 #284
  • In-Measure Clefs: Display in-measure clefs (3158eb4)
  • NoteHeads: Add Note Head Shapes (Percussion: Slash, Triangle, Diamond, X) (#337) (4599d51), closes #327 #325
  • Lyrics: Draw LyricsExtends (_), fix lyricsSpacing (#322) (e9da9e1)
  • Dynamics: Display Dynamics (Instantaneous expressions) (29337c9)
  • Lyrics: Left-Alignment (default), Center optional, fix lyricsSpacing (#356) (6205fe3)
  • Tempo Expressions: Add all tempo expressions (83d59c8), closes #309

0.3.1 (2018-06-25)

Bug Fixes

  • Fixed a bug where vexflow does not support having 8va and the bass type (ad0630d)
  • Added fix in repetition comparer (from #251) (9c7e164)
  • Fixed UTF-8 encoding in AJAX loader. Fixes #252 #254
  • Fixed ajax loader for mxl using old mimetype. (ae8c5e1)
  • Fixed a little bug at the extra instruction measure (da0ba9d)
  • Fixed tie drawing bug - now all ties of a chord are drawn. (4021833)
  • Fixed whole notes not being in the middle of a measure, see #260) (ee2f706)

Features

  • Improved ghostnote positioning and a ghost note converter (6dc0460)
  • Added GraphicalVoiceEntry for displaying lyrics (471ee19)

0.3.0 (2018-05-03)

Bug Fixes

  • logging: fixed problems connected to loglevel type definition changes (eea535d)
  • corrected begin instructions width (begin modifiers) to work also for extra instruction measures. (1509a81)
  • fixed a bug in stem calculation which made all stems up for a single voice. (aeb670e)
  • fixed all broken file references in demo file selector. (3659fec)
  • fixed showing the staveconnector of multi-staved instruments at the end of the system. (46ca911)
  • refined position of Articulations (always close to note head). Remaining problem: Beam calculations change initial stem direction. Articulation positions need to be set after beams. (22de162)
  • using backend select value already for initial OSMD constructor (97aad81)

Features

  • Articulations: Added ArticulationReader - articulations are read from xml (f529f45)
  • clef: Improved conversion of ClefInstructions to VexFlow clefs. Lines are now respected during (473c85a), closes #110
  • engraving: allow to change system labels' right margin (#131) (be03289)
  • implemented setting stem direction automatically from voice type (main or linked voice) (e7f9e10)
  • optional element mode in key signature (e85117a), closes #108

Styles

  • moved linting from grunt to npm script (8dafc27)

BREAKING CHANGES

  • Running grunt lint is no longer possible.

0.2.0 (2017-04-08)

0.1.0 (2016-09-23)

Added

  • Added Reset button for cursor for demo
  • Added more xml files for demo and testing
  • Added unit tests for reading and calculating the xml files
  • Added logo as favicon and as img for demo site

Changed

  • html site layout of demo

Bugfixes

  • Fixed cursor functionality in demo

0.1.0-beta.5 - 2016-09-21

Changed

  • Updated Github pages deployment (645c428)

0.1.0-beta.4 - 2016-09-21

Changed

  • Updated Github pages deployment (e5a8771)

0.1.0-beta.3 - 2016-09-21

Changed

  • Updated Github pages deployment (64a332c)

0.1.0-beta.2 - 2016-09-21

Changed

  • Updated Github pages deploy script (4ac4dbb)

0.1.0-beta.1 - 2016-09-21

Changed

  • Changed Travis CI deploy configuration (a550e48)

0.1.0-beta - 2016-09-21

Added

  • Prepared for brace and bracket generation with VexFlow (fd40c22)
  • Class documentation (73d319f)
  • OSMD is now usable via script tags (091dab9)
  • Set up loglevel as logging framework (c00b5a8)
  • Support for ocatvated clefs (567b3b3)
  • Demo is now automatically built and published to https://opensheetmusicdisplay.github.io/demo/ (1c63f82)
  • Class documentation generated with typedoc, published to https://opensheetmusicdisplay.github.io/ (bc91091)
  • Added rendering tuplets
  • Added rendering ties
  • Added rendering dots
  • Added documentation for VexFlow and other graphical objects
  • Proper title display
  • Cursor on first StaffEntry by default
  • Better grunt tasks
  • Included demo for better debugging
  • Added tests for container's width
  • Small fixes for correct x-layouting
  • Support for loading MusicXML files by URL
  • Support for Promises in loading sheet music
  • Better tests for OSMD

Changed

  • Compiled files are no longer under version control (6b01a8f)
  • Renamed test files according to '_Test' convention
  • Removed workaround for title labels
  • Renamed files to reflect class names

Bugfixes

  • Measure and clef size fixes (aa7c96d)
  • MusicXML reader exception due to wrong file encodings (9af59d6)
  • Fixed bug in measure number calculation
  • Fixed a bug in calculator
  • Fixed bug with beginInstructionWidth
  • Fixed bug with response HTTP status

0.0.1-alpha.1 - 2016-07-15

Added

  • Auto resize to window width
  • Preliminary MXL support from URLs
  • Tests for OSMD
  • Implemented a basic cursor object to browse the sheet
  • Public API: Rename MusicSheetAPI (renamed to OSMD)
  • Fallback title display
  • Better usage of VexFlow measure size
  • Fixed duplicated beams when redrawing

[0.0.1-alpha.0] - 2016-07-08

Added

  • First public pre-release