1.8.8 (2024-03-18)
- Barline: Add missing double bar line when location="right" is not supplied in MusicXML (#1522), which is non-mandatory. (b1ed898)
- Crescendo: Fix wedge offset not used, changing end points of wedges (#1525) (decrescendo too) (7226993)
- Cursor: Fix color not updated after setting osmd.cursor.CursorOptions.color and calling update(). Add osmd.Cursor getter (f78ff0e)
- MXL: Fix Sibelius-exported MXL files with UTF-16 encoding erroring on load due to a limitation in JSZip (#1523). (1f11be7)
1.8.7 (2024-02-23)
- Fraction: Return a minimum GCD of 1, preventing NaNs and wrong note x-positions in rare complex rhythms (#1511). Prevent a rare infinite loop that could have otherwise resulted after this change. (84b94c3)
- Lyricist: Fix collision for very long lyricist name with other elements (rare), apply same default offset as for composer (likely no effect if composer is present too, because of y-alignment) (#1513) (764890c)
- Tabs: Fix tab tuplet (triplet) x-alignment with classical staffs/instruments vertically, fix EngravingRules.TabBeamsRendered = false edge case showing beams (#1515). Add some EngravingRules. (341f523)
- Tabs: Fix wrong tab number background color in dark mode / when PageBackgroundColor set (#1514), export tab background as white instead of transparent by default for PNG (11c4446)
1.8.6 (2024-02-02)
- Crescendo: Fix wrong wedge startX in certain multi-instrument scores (further) (#1480, PR #1506) (c2a6def)
- PageFormat: Fix page 2+ system labels (e.g. part abbreviation) not rendered. Add EngravingRule RenderSystemLabelsAfterFirstPage (PR #1507). (does not affect default endless format) (70013be)
- Subtitle + Composer: Read and display multiline subtitles and composer lines from XML credit-words tags correctly (PR #1508). Add EngravingRule SheetComposerSubtitleUseLegacyParsing (71e9576)
Note that to restore the old behavior (subtitle and composer as in OSMD <= 1.8.5), you can use the deprecated option osmd.EngravingRules.SheetComposerSubtitleUseLegacyParsing = true
, but we recommend adapting your MusicXML files instead, as this option might be removed soon.
- SVG Export: Fix key signature rendered black instead of invisible in some systems by adding visibility="hidden" to the SVG group. (ec6c209)
- SVG Export: Fix time signature potentially rendered black instead of invisible in some systems by adding visibility="hidden" to the SVG group. (354d92d)
- Test: Fix karma-webpack 5.0.1 incompatibility (npm test). Delete karma-webpack patch (dev dependency) (PR #1509) (7fa22db)
- Lyrics: Make scores with lyrics shorter and more evenly spaced by improving long lyrics padding (#1394, PR #1395, PR #1474) (975c5ee).
See PR #1474 for settings you can fine-tune.
- Note: add ToStringShortGet and ToStringShort() to Note and GraphicalNote (#1510), shortcut for Pitch.ToStringShort (4221ce3)
- Pitch: Add ToStringShort method that returns a short string like "F#4" (F#, octave 4). Add getter, e.g. gNote.sourceNote.Pitch?.ToStringShortGet (#1510) (45bdb20)
1.8.5 (2024-01-09)
- Buzz Roll: Fix error in SVG export for buzz rolls (PR #1493, #1413) (e565af1)
- Crescendo: Fix crescendo wedges for multi instrument scores (#1480, PR #1499) (3d60d46)
- Noteflight: Fix rare error in erroneous Noteflight samples (#1473) (0695159)
- Fontstyle: Fix BoldItalic text displayed as Bold instead of BoldItalic (#1487) (0e229dd), closes #1483 #1483
- Fraction: Fix rare infinite loop with complex rhythms and floating point inaccuracies in greatestCommonDenominator (#1478) (8e33752)
- In-Measure Clefs: Wrong clef at end of measure no longer appears in certain Sibelius-exported scores (#1461) (dab58b2)
- Ledger Lines: Fix whole and half rests outside staff lines not having ledger lines (#1142, PR #1463) (e273c1c)
- Subtitle: Recognize subtitle by credit-type element (even if given y value above title) (#1456) (7c7329f)
- SVG Export: Fix octave shift bracket text overlapping (#1482) (only affects SVG export via JSDOM script). (e62cd28)
- Tab Bends: Fix Tab bend moving on second render (re-render) (#1496, PR #1497) (df69d9d)
- Tabs: Don't show fingerings by default in a tab staff (#1468). Add EngravingRule TabFingeringsRendered (82068b7)
- Tabs: Don't show time and key signature by default in a tab staff (#1467). Add EngravingRules TabTimeSignatureRendered, TabKeySignatureRendered (10f9c78)
- Tuplet: Respect show-number="none" (#1460). Add EngravingRule TupletNumberUseShowNoneXMLValue (68320ab)
- Color: Words nodes / expressions use XML color by default. Add EngravingRule ExpressionsUseXMLColor (#1492, PR #1498) (207fcd4)
- Expressions: Show words text in bold if given in XML (PR #1471), add tempo expressions like allegro vivace to parsing (4580100)
- Tabs: Add EngravingRules TabKeySignatureSpacingAdded, TabTimeSignatureSpacingAdded (for tab-only scores). Fix tabs x-alignment broken (no release affected) (#1489, PR #1490) (47cdd11)
1.8.4 (2023-09-19)
- Error: Fix faulty MusicXML files from Sibelius/GuitarPro erroring on open for faulty xml pedal, octaveshift (#1450) (d1ea681)
- iOS: Fix memory leak when using Canvas on iOS in Safari (#1411) (22d349d)
- Layout: Fix invisible parts/measures affecting layout, especially when very note-dense (#1444) (8bc6c6c)
- Lyrics: Fix lyrics position / staffentry x position if there's a whole rest in a secondary voice (#1267). Fix SourceStaffEntry.hasOnlyRests getter (52b7116)
- Percussion: Fix position of whole rest note for 1-staffline rendering (#1034) (25521e9)
- Repetitions: Fix volta number not read from ending node text value (Finale) (#1367). Respect print-object="no". (5fb6c56)
- Subtitle: Fix subtitle sometimes not displayed with certain MusicXML structures (#1456) (642b83d)
- Wedges: Add missing in-between wedges for multiline crescendo/decrescendo (#1277, PR #1459) (45440a8)
1.8.3 (2023-08-17)
- Chord Symbols: Fix chords not displayed when not above a note, e.g. multiple per note (#1445, PR #1446) (75a2f8a), closes #599 #791 #1443 #1443
- Chord Symbols: Chord Symbols on whole measure rests now start near the beginning of the measure, not in the middle above the rest note (#1443) (0b7df62)
- Fingering: Fix multiple fingerings per note not shown/parsed (Sibelius xml syntax) (#1442) (e121c0a)
- Fingering: Fix fingerings drawn if drawFingerings: false option was set, for above/below position (6233d5a), closes #650 #1442
- OctaveShift: Fix error for multiline shifts when (first) instrument hidden (#1439) (c3d3402)
- OctaveShift: Fix short octave shifts (single note) overlapping text+bracket (#1440, #1378). Add EngravingRule OctaveShiftOnWholeMeasureNoteUntilEndOfMeasure (7ea0911)
- Tabs: Fix tab notes not x-aligned vertically when multiple ghost notes needed (#1062) (6495011)
- API: Add osmd.EngravingRules.RenderCount (how many times render() was called) (#1383, #1420) (1e16c6d)
- Tabs: Tab beams can be disabled optionally. Add EngravingRules.TabRenderBeams (fb78862)
1.8.2 (2023-07-28)
- Measure Numbers: Avoid collisions with group brackets / instrument brackets (shift measure numbers upwards) (a43875f), closes #1430
- Metronome Marks: Prevent multiple metronome marks per measure drawn (#1393). (Side effect: some marks less bold) (c457922)
- Tabs: Fix errors for faulty tab xml files, add info log when fret, string missing (#1432) (6b65369)
- Build: Fix npm install with node v18 and on MacOS when OSMD is a dependency, updating gl dependency etc (#1433)
- Tempo: Render more tempo expressions like poco meno (#1431) by treating them as instant expressions graphically (94b3dec)
1.8.1 (2023-07-14)
- Cursor: Fix cursor type 3 (whole measure) when first measure(s) invisible (PR #1429, #1426) (7d085b0)
- Key Signature Change: Fix wrong accidental positions for certain clefs (#1423, PR #1424) (aaaa63c)
- X-Alignment: Fix note x-alignment for staves with different key signatures (PR #1427, #1425) (1d8bb4f), closes #1315 0xfe/vexflow#1390
1.8.0 (2023-06-23)
- Beams: Fix beams and noteheads missing in rare cases (#1073) where Vexflow returns denominator 0. (6bf4140)
- Chord Symbols: Fix chord symbol centering above note for short chords (#1396). Add EngravingRules ChordSymbolExtraXShiftForShortChordSymbols, ChordSymbolExtraXShiftWidthThreshold (3e7ed58), closes #1376
- Dynamics: Fix crescendo, decrescendo, wedges start x and end x, wedge overlaps. Widen most wedges (#1404) (e1476b4), closes #1405
- FixedMeasureWidth: Fix not applied to first measure (#1314). Add EngravingRule FixedMeasureWidthUseForPickupMeasures, default false. (c1f86f4)
- Lyrics, ChordSymbols: Fix measure elongation (to prevent overlaps) applied when lyrics or chord symbols not rendered (#324, #597, #819) (bd0ce39)
- Lyrics: Fix short lyrics not looking vertically centered below notes. Fix dash overlap in short intervals. (#1407, PR #1408) (6798b69)
- Repeats: Fix left barline of first measure not allowed to be repeat barline (#1410). Add EngravingRule RepetitionAllowFirstMeasureBeginningRepeatBarline (525c48d)
- Tuplets: Fix repeated bracketed tuplet missing tuplet number with TupletNumberLimitConsecutiveRepetitions enabled (#1402) (c2db9d7), closes #1401 #1401 #1401
- Tuplets: Fix tuplets not bracketed when not on single beam (e.g. including rest note) (#1400, #1401). Add EngravingRule TupletsBracketedUseXMLValue (a7fde50)
- Visual Regression Tests: Use lower threshold (#1398). Fix scientific notation causing syntax error for low thresholds/hashes, not working+creating diff (2286564)
- Cajon: Add Option to fix note placement for 2-staffline cajon (#1409). Add EngravingRules.PercussionUseCajon2NoteSystem (default false) (d2bfb90)
- Dynamics: Add EngravingRule IgnoreRepeatedDynamics, default false (#767), works for most situations (except e.g. repetition 2nd+ volta) (2fadf05)
- Lyrics Spacing: Reduce measure sizes for short notes with long lyrics by adding x-padding (#1394, PR #1395). Add EngravingRules.LyricsUseXPaddingForShortNotes, LyricsXPaddingFactorForLongLyrics, LyricsXPaddingWidthThreshold (8e1301f)
- Options: Add EngravingRules SlurPlacementAtStems, SlurPlacementUseSkybottomLine (default false). Improve slur end articulation detection (#1224) (5384272)
- Tremolo: Render Buzz Roll (unmeasured tremolo) (#1413). Add EngravingRule TremoloBuzzRollThickness (4b66d1b)
- Words: Add option to place words inside staffline at defaultY XML value (#1412). Add EngravingRules PlaceWordsInsideStafflineFromXml, PlaceWordsInsideStafflineYOffset (f884ec7)
1.7.6 (2023-06-05)
- OctaveShift: Fix error when octave shift end note/measure not found (e.g. IsExtraGraphicalMeasure). (#1377) (3011019), closes #1378 #1376
- OctaveShift: Fix octave shift not ending at measure end for multiline and whole measure notes (#1378, PR #1379), make multi-line shift open-ended for in-between stafflines (14493aa), closes #1376
- OctaveShift: Fix octave shift notes not shifted under certain conditions (end not respected) (#1382, PR #1386) (242dad0)
- Typo: Rename EngravingRules.AutoGenerateMutipleRestMeasuresFromRestMeasures AutoGenerateMultipleRestMeasuresFromRestMeasures (missing 'l')(PR #1373) (4276613)
- Copyright: New option to render copyright: osmd.EngravingRules.RenderCopyright = true (renders identification/rights tag) (#1365) (a489d47), closes #353 #727
- Expressions: Add a few more expressions texts, e.g. ritard. now supported (PR #1361) (e9859a2), closes #1357 #1347
- FixedMeasureWidth: Add EngravingRules.FixedMeasureWidth and FixedMeasureWidthFixedValue options (#1314, PR #1368) (4c31dde)
- System/Line break: Add option newSystemFromNewPageInXML to do a system break for XML new-page even when newPageFromXML = false (PR #1357) (f46c5cd)
1.7.5 (2023-03-24)
- Chord Symbols: Fix chord symbols associated with the wrong note/timestamp (#1270, PR #1342) (f36ab0c)
- Dorico Parsing: Fix slur end missed when slur+tie stops simultaneous/in separate notation elements (PR #1341) (cd4f125)
- EmptyMeasure: Fix EngravingRules.FillEmptyMeasuresWithWholeRest = 1 (YesVisible) erroring when no voice was created yet (first measure) (#1339) (1c1baf3)
- Fingering: Don't place above for upper staff if EngravingRules.FingeringPosition was set to Below (#1348, PR #1349) (bdb1f51)
- Multiple Rest Measures: Fix an issue where the sheet containing pickup measures lead to the isReducedToMultiRest flag not set correctly (#1327) (b5ba101)
- Multiple Rest Measures: Fix repetition at the end of multiple rest measures not rendered (#1333) (a7278cc)
- SVG Export / Tabs: Fix tabnote not clearing/painting white rectangle around number (PR #1321) (304076a)
- Options: Add GraphicalMeasure.ShowKeySignature, EngravingRules.MultipleRestMeasureAddKeySignature options (#1329) (e8439a1)
1.7.4 (2023-02-02)
- Articulation: Support "harmonic" technical notation (naturalharmonic), e.g. drums open hi-hat (8dcaa08)
- Cursor: Fix cursor.previous() not setting Iterator.currentTimestamp correctly when going back from full measure note (#1309) (66f0e1c)
- Cursor: Fix EndReached position display when first instrument is hidden (#1310) (e52385f)
- Cursor: If instrument at current position is now invisible, show the previous position instead of nothing (#1312) (4dd73f5)
- Cursor: Show last position in score if hiding cursor, moving past end of sheet, then showing, instead of showing nothing (#1308) (d899128)
- Tremolo: Offset tremolo strokes if note has a beam (e30fcbc)
- Cursor: If going beyond confines of sheet (previous() at first note, or next() at last note), show cursor visually at start/end of measure (#1308), creating a visual difference to first/last note positions (d091cd9)
- Glissando: Implement glissando and slide MusicXML elements. Fix tab slides too long. Add EngravingRules.RenderGlissandi. (#1318, PR #1319, #344) (460e920)
- Glissando: Add EngravingRules.GlissandoDefaultWidth. Add GraphicalGlissando.Color (#1318) (b1e67d5)
- Tabs: Add Id to tabnotes in SVG/DOM (460e920/tabnote.js)
1.7.3 (2023-01-23)
- Build: Fix ES2017/Android API 28 incompatibility by not using Array.flat() from ES2019 (#1299, PR #1301) (cea8bf8)
- Cursor: Fix cursor not appearing on show() if previous() was executed when at the start of the sheet, going beyond the beginning (#1303) (a1bfecf)
- Cursor: Fix cursor.previous() infinite loop after advancing past the end of the sheet (#1302) (601fc64)
- Cursor: Fix next() skipping first position in score after going beyond beginning of score (e.g. cursor.previous() after cursor.reset()) (#1304) (6b31846)
- Pedal: Fix Pedal ending at end of measure instead of before last note ([#1291(opensheetmusicdisplay#1291), PR #1305) (09dc868)
- Slurs: Fix bad slur placement when SlurPlacementFromXML is used (default), but XML doesn't provide placement values (#1298) (d854976)
- Tuplets: Fix consecutive tuplet label number disabling not respecting note length (#1207, PR #1300) (eb69f32)
- Pedal: Start at beginning of stave (after modifiers) if start note is whole measure rest (and e.g. measures above it have non-rest notes) (#1306, PR #1307) (92eb9b6)
1.7.2 (2023-01-18)
- Clefs: Fix Clef at measure end in wrong measure if backup nodes used (#1294, PR #1295) (e.g. Sibelius) (9a6aa3f)
- Build: Fix umlauts in key identifiers error (#1293)
1.7.1 (2022-12-30)
- Build: Make Array prototype changes writeable to prevent conflicts with other libraries (#980, #1288, PR #1289) (f69d532)
- Lyrics: Fix non-numeric lyric number handling, unnecessary space for unused lyric lines (PR #1284, #1271, #1272) (fac88af)
1.7.0 (2022-12-12)
- Fermata: Fix inverted fermata placement/overlap with multiple voices (#1278, PR #1279) (15e4015)
- OctaveShift: Fix rare error when startX greater stopX (#1281, PR #1282) (e8d89a0)
- Overlap: Fix overlap with implicit / pickup measure after repeat with single note pickup (#1286, #1236) (f667f67)
- Overlap: Fix overlap with implicit / pickup measure without repeat with single note pickup (#1286, #1236) (700be56)
- Tempo: Increase TempoYSpacing from 0 to 0.5 (prevents (near-)overlaps, no apparent downside) (#1243) (9e584d0)
- Articulation: Add breath mark support (#527, PR #1285). Add EngravingRules.BreathMarkDistance (default 0.8 = 80%) (f98b9a2)
- Cursor: Add getter and setter for CursorOptions (#1276) (b1b6492)
- Pedal: Support pedal. Show (piano) pedal signs and brackets (#347). Add EngravingRule RenderPedals (393b25f)
1.6.1 (2022-11-14)
- Cursor: cursor.next(): Skip positions that only contain invisible notes (#1264) (9805f09)
- Error: Fix error when dynamics node has no elements, leading to an empty measure (#1269) (5f98841)
- Repetitions: Fix D.C. Al Coda read as DalSegnoAlCoda (#920) (8ab2a00)
- Repetitions: Fix repetition symbols like D.C. or Coda too far left (#920, PR #1265). Add EngravingRules.RepetitionEndInstructionXShiftAsPercentOfStaveWidth (4ff0226)
- Slur: Fix double slur with different placement ignored as "duplicate" (#1275) (fa14941)
- Cursor: Add cursor.previous(), moving back to previous note, counterpart to next() (#1266) (ddb0189)
1.6.0 (2022-10-28)
- Brackets text: Ignore [ ] square brackets (originally around notes) too with EngravingRules.IgnoreBracketsWords (#1251) (e5b9047)
- Marcato: Always place above staff (#1261), in line with Gould - Behind Bars (0e7421d)
- Ties: Set downward tie direction for downward ties split over two systems in vexflow (#1262) (5a155ef)
- Ties: Use downward arc for ties in secondary voices (#1262) (01398b9)
- Wedges: Ignore duplicate wedges given in MusicXML (e.g. crescendo) (#1259, PR #1260) (7f235fe)
1.5.8 (2022-10-14)
- BoundingBox: Fix bounding box of MusicSystem and SystemLeftLine too large (#1245) (62cd3fa)
- BoundingBox: Fix bounding box of voice entries of whole notes with many ledger lines too large (#1245) (30676bf)
- BoundingBox: Fix PageTopMargin also partly added to a bottom margin / container size in certain cases (#1245) (fa5fa7c)
- Brackets: Ignore brackets = '( )' words/text by default (#1251) supposed to be around a note, but can't be matched to the note. (32060b7)
- Margins: Fix page bounding box too long. Respect EngravingRules.PageLeftMargin and PageRightMargin for renderSingleHorizontalStaffline (#643) (dbb1f18), closes #1244
1.5.7 (2022-09-28)
- Options: Add EngravingRules.TempoYSpacing (#1243) to be able to set spacing/padding for tempo (e.g. beginning "Allegro") (194e765)
- Performance: Marginal speedup potential for getImageData by using willReadFrequently attribute for CanvasContext. Fix Chrome warning (#1242) (c60c0d6), closes #1241
1.5.6 (2022-09-22)
- Canvas: Fix rehearsal marks not rendered in browser with Canvas backend (a4d5a3b)
- DefaultColorLyrics: Fix not applied on re-render (aa1945a)
- DefaultColorMusic: Fix CanvasBackend overwriting and not using DefaultColorMusic (#1218) (285878e)
- DefaultColorMusic: Fix EngravingRules.DefaultColorMusic not applying to octave brackets, crescendo/decrescendo wedges (#1218) (145e715)
- DefaultColorMusic: Fix rehearsal marks ignoring defaultColorMusic (#1218) (svgcontext.rect ignoring stroke) (2702667)
- EngravingRules: Fix GraphicalVoiceEntries creating their own EngravingRules. Reduce EngravingRules creations also via DrawingParameters. (1a96112)
- Spacing: Fix implicit measure spacing after repeat (#1236). Add EngravingRules.PickupMeasureRepetitionSpacing (3da2244), closes #1234
- DefaultColorLyrics: Add EngravingRules.DefaultColorLyrics, independent from DefaultColorMusic (#1218) (3445343)
1.5.5 (2022-09-15)
- Drums: Fix Slash notehead overwriting other noteheads in chord/VoiceEntry (#1228) (66390b1), closes #1229
- Measure Numbers: Fix EngravingRules.RenderMeasureNumbersOnlyAtSystemStart not showing measure number 1 after pickup measure (2e7011f)
1.5.4 (2022-09-12)
- Layout: Fix hiding first instrument causing shift of lyrics, dynamics, etc (#1222) (280075c), closes #1223
- Slurs: Fix overlap of slurs with accents on slur start note (part of #1224) (229f0dd), closes #1226
- Slurs: Fix slurs overlapping with articulations like staccato on slur end note (part of #1224) (336b0ad), closes #1225
1.5.3 (2022-09-05)
- Tuplets: Fix rest notes not having TypeLength set. EngravingRules.TupletNumberLimitConsecutiveRepetitions: Fix tuplet count not reset for next voice (rare issue) (#1207) (8d55514)
- GraceNotes: Reduce unnecessary margin/spacing to main note (#1221). Add EngravingRules.GraceNoteGroupXMargin (default 0) (332d625)
- Lyrics: Add EngravingRules.LyricsYMarginToBottomLine (#389). New default 0.2 prevents overlap of stems with lyrics. (fd6868d)
1.5.2 (2022-08-29)
- Accents: Support soft-accent as crescendo+decrescendo wedge on one note/entry (#1214, merge #1215) (db340ac)
- Tuplets: Add EngravingRules.TupletNumberLimitConsecutiveRepetitions (default true) etc. (breaking change) #1207, merge #1208 (0744bcd)
1.5.1 (2022-07-18)
- generateImages: Fix rehearsal marks not having a box around them due to node canvas restriction. (48799ba)
- Layout: Fix 12/8 rhythm with rest measures overflowing notes, other rest measure issues (#1187, merge #1188) (b524d77)
- Rehearsal Mark: Position correctly when EngravingRules.RehearsalMarkFontSize is increased (#1176) (d32bc1a)
1.5.0 (2022-04-22)
- Cursor: Fix undefined errors when drawFromMeasureNumber changed after cursor was shown (5a13bfb)
- Tabs: AutoBeamNotes no longer beams tab notes by default. Add EngravingRule AutoBeamTabs (c5fa3eb)
- Ties: Fix note.NoteTie undefined for tie end note in different voice than start note (8f9c373)
- ChordSymbols: Can replace accidentals via e.g. osmd.rules.ChordAccidentalTexts.setValue(1, "♭") (PR #1154) (ced5cb4)
- Performance: 30-60% performance boost: Compute SkyBottomLines with WebGL and in batches depending on browser and number of measures (#1158) (66ab7ce)
- Performance: Add EngravingRules SkyBottomLineWebGLMinMeasures and AlwaysSetPreferredSkyBottomLineBackendAutomatically (#1158) (e1c8826)
- Performance: Prefer Plain over WebGL in Firefox (and Safari) for performance (#1158) (1ac2bd5)
- Performance: Add EngravingRules.DisableWebGLInFirefox and DisableWebGLInSafariAndIOS for options (#1158) (c48f66d)
- SVG: Create SVG group with class for beamed note stems, put beam SVG into node (67f6ac3)
- TimeSignatures: Can disable time signature for GraphicalMeasure (#1150) with measure.ShowTimeSignature = false (411a35c)
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).
Before 1.0: See CHANGELOG_old.md - the changelog was too big for Github to render, see #1227.