All notable changes to the ABC+ specification will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Pedal, Octave & Glissando line decorations (§4.3) — real, playback-capable spanners that
attach to the next note:
!ped!/!ped-up!→<pedal line="no" sign="yes">(asterisk style,Ped.…*)!ped(!/!ped)!→<pedal line="yes" sign="no">(line/bracket style)!ped-change!→<pedal type="change">(re-pedal notch inside a line)!8va!/!8va)!(+!8vb!!15ma!!15mb!!22ma!!22mb!) →<octave-shift>!gliss(!/!gliss)!→<glissando>Reference implementation: abc2xml in abc-to-xml-converter.
- These pedal decorations (visible marks that also play back) are distinct from the
%%damper-pedal/%%soft-pedal/%%sostenuto-pedalsound directives (§6.6), which are playback-only with no visible mark. Pedal/octave written as text ("^Ped.","^8va") is cosmetic only and does not play back;abc_audit.pyin abcplus-tools now flags it.
- Per-note performance tags
@{key=value,...}(§6.7): playback nuance attached to a single note or chord —v(MIDI velocity 1–127) andt(timing offset in ms), mapped to MusicXMLdynamics/attacknote attributes. Reference implementation:abc_perf.pyin abcplus-tools. - Source Conventions & Validation section (§11) with measure-block markers
% M<n>: comment-level assertions of the next block's measure number, letting validators report voice misalignment at the bar where it first drifts. Reference implementation:abc_audit.pyin abcplus-tools.
- Specification header version/date brought in line with the Version History table.
- MIDI Instrument Parameters (
%%midi,%%midi-bank,%%midi-vol,%%midi-pan) - Playback Navigation (
%%segno,%%dalsegno,%%tocoda,%%coda,%%dacapo,%%fine) - Pedal Control (
%%damper-pedal,%%soft-pedal,%%sostenuto-pedal)
(Backfilled: this release was recorded in the specification's Version History but missing from this changelog.)
- MEI (Music Encoding Initiative) compatibility:
- Comprehensive MEI mapping reference in the specification
- Bidirectional conversion support between ABC+ and MEI
- Mapping for all core ABC+ elements to MEI equivalents
- Support for MEI-specific scholarly features
- Additional format compatibility analysis:
- Dorico
- Flat.io
- TuxGuitar
- StaffPad
- NoteWorthy Composer
- Updated compatibility chart with all new formats
- Comprehensive compatibility analysis documents for each new format
- Updated MusicXML mapping reference with comprehensive bidirectional mapping
- MusicXML 4.0 Playback Controls:
%%swing/%%swing-off- Toggle swing playback (maps to<sound swing="yes"/>)%%mute/%%mute-off- Toggle instrument muting (maps to<sound mute="yes"/>)
- Layout Refinements:
%%vskip <number>- Fixed direct implementation via<system-layout>in<print>%%sep- Added horizontal system separators
- Advanced Ornaments & Technical Marks:
- Support for
!vertical-turn!,!shake!,!schleifer!,!haydn! - Guitar/String technical marks:
!hammer-on!,!pull-off!,!bend!,!tap!,!fingernails!,!golpe! - Organ/Keyboard marks:
!heel!,!toe!
- Support for
- Robustness:
- Fixed
NoneTypeerrors instaffDecoswhen processing global directives before the first measure. - Corrected
addDirectionargument handling for figured bass and other notations.
- Fixed
- MusicXML 4.0 Layout Controls:
%%measurenumbering yes|no- Toggle bar numbering%%vskip <number>- Vertical system distance%%sep- Horizontal separator
- Advanced Notations:
%%marker <text>- Rehearsal marks%%frame <chord> <frets>- Guitar chord diagrams%%fb <figures>- Figured bass notation
- Improved Decoration Support:
- Grouped sub-containers for
<articulations>,<ornaments>, and<technical> - Parameterized decorations:
fingering(1),fret(5),string(6) - Cleaned up XML output (removed diagnostic comments)
- Grouped sub-containers for
- Initial ABC+ specification release
- Core directives:
%%dir- Performance directions%%fx- Audio effects%%analysis- Harmonic analysis markers%%game_state- Game audio synchronization%%loop- Loop point markers%%art- Note articulations
- Extended decoration syntax for named slurs and tuplets
- Percussion mapping via
I:percmap - Lyric analysis abbreviations (
^CT,^P, etc.) - MusicXML mapping documentation
- JSON schema for directive validation
- Full backward compatibility with ABC 2.1
- Tested with abc2xml converter v239