CHANGELOG.md 51 KB

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