1.4.5 (2022-01-28)
- 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)
1.4.4 (2022-01-27)
- Release: Fix types pointing at wrong (sub-)folder. Could solve type/import problems. (2a18295)
- Options: Able to set osmd.EngravingRules.SheetMaximumWidth > 32767 for SVG / renderSingleHorizontalStaffline (6ef37db)
1.4.3 (2022-01-18)
- SVG: Add group and class to SVG DOM for Clef (7c218e2), KeySignature (#1128) (1f7e710), TimeSignature (#1129) (6a95483), GraphicalTie
- Ties: GraphicalTie.SVGElement() gets SVG node (#1127) (84406d6)
1.4.2 (2022-01-17)
- Release: Fix typings location for npm release (8171984)
1.4.1 (2022-01-17)
- Credit Error: Fix NaN error when element has justify attribute (dec2f1f)
- Release: Fix typings not included in release (1.4.0) (5829be3)
- 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)
- 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)
- 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)
- 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)
- GraphicalStaffEntry: Add helper functions getHighestYAtEntry, getSkylineMin, same for bottomline, getAbsoluteStartAndEnd (2b364a8). For usage see Wiki | Exploring the Demo
1.3.0 (2021-11-13)
- 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)
- 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)
- 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)
- Dependencies: Update JSZip to 3.7.1
1.1.0 (2021-07-27)
- 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)
- 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)
- 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)
- 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
- Options: Add options.OnXMLRead (#982), a function to modify the XML after reading, before parsing (b2be3e8)
0.9.4 (2021-02-22)
- 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)
- 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)
- 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)
- Cursor: Fix bounding box/cursor position when only one vertical measure has an endClef (#872) (8b40dd3), related to #797
- 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)
- 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)
- 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)
- 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)
- 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
- 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)
- 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)
- Build: Build size down to 1.1MB again from mysterious increase to 1.3MB in 0.8.5
0.8.5 (2020-09-08)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
0.8.0 (2020-06-10)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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)
- 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
- 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)
- 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
- 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)
- 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
- 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)
0.6.7 (2019-01-16)
- 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)
- devDependencies: Remove browserify and tsify dependencies. Fixes unnecessary npm audit warnings.
- color: use color instead of colorXml for coloring notehead, stem. (590e281), export missing TS classes - closes #462
0.6.5 (2018-11-29)
- 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)
0.6.3 (2018-11-08)
- 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
- 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)
- noteheadshape: add color attribute null check (3d8da1e)
0.6.1 (2018-10-25)
- cue notes: parse cue element (9443163)
- grace notes: fix stem direction for beamed grace note connected to beamed main note (28fc01e)
- 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)
- 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
- 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)
- 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
- 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)
- 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)
- 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)
- Fixed a bug where vexflow does not support having
8va
and thebass
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)
- Improved ghostnote positioning and a ghost note converter (6dc0460)
- Added
GraphicalVoiceEntry
for displaying lyrics (471ee19)
0.3.0 (2018-05-03)
- 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)
- 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
- moved linting from grunt to npm script (8dafc27)
- Running
grunt lint
is no longer possible.
0.2.0 (2017-04-08)
0.1.0 (2016-09-23)
- 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
- html site layout of demo
- Fixed cursor functionality in demo
0.1.0-beta.5 - 2016-09-21
- Updated Github pages deployment (645c428)
0.1.0-beta.4 - 2016-09-21
- Updated Github pages deployment (e5a8771)
0.1.0-beta.3 - 2016-09-21
- Updated Github pages deployment (64a332c)
0.1.0-beta.2 - 2016-09-21
- Updated Github pages deploy script (4ac4dbb)
0.1.0-beta.1 - 2016-09-21
- Changed Travis CI deploy configuration (a550e48)
0.1.0-beta - 2016-09-21
- 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
- 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
- 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
- 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 toOSMD
) - Fallback title display
- Better usage of VexFlow measure size
- Fixed duplicated beams when redrawing
- First public pre-release