Skip to content

matthewcpp/ABCSharp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

85 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ABCSharp

This library parses a (very) minimal set of version 2.1 of the ABC Music Notation standard.

Supported Features:

  • Notes: Accidentals, Octatve Modifiers, Chords, Length Modifier, Dots, Broken Rhythm
  • Information Fields:
    • Unit Note Length
    • Time Signature (non complex)
    • Voice
    • Key Signatures: major, minor, none
    • Instructions
      • Linebreak: <EOL>, <none>, $
  • Rests (individual and multi-measure)
  • Bar: Single Line, Double Line, Repeat Start, Repeat End, Repeat End/Start, Start / End Bar, Additional custom bars as per ABC Spec
  • Multiple Voices: clef (treble, bass) and name modifiers
  • Slurs (non-dotted) and Ties
  • Beams

Usage example:

string abc = "...";
var tune = Tune.load(abc);

foreach (var voice in tune.voices)
{
    Console.WriteLine($"Voice {voice.name} ({voice.clef}): {voice.items.Count} items.");
}

About

ABC music notation parser in C#

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages