Text based chordchart notation.
cd <dicrectory containing this file> python setup.py install chordchart-to-html mychordchat.txt $BROWSER mychordchat.html
To learn how to write your own chordcharts, you can either:
- look at provided exemples in the examples directory
- try to understand the associated grammar (good luck)
chordchart = header? body? header = header_field (eol header_field)* header_field = title | composer | tone | meter title = title_key blank* title_value title_key = "title:" | "Title:" | "T:" title_value = ~eol+ composer = composer_key blank* composer_value composer_key = "composer:" | "Composer:" | "C:" composer_value = ~eol+ tone = tone_key blank* chord tone_key = "tone:" | "Tone:" meter = meter_key blank* meter_time meter_key = "meter:" | "Meter:" | "M:" meter_time = [2-9] "/" [2-9] blank = space | tabulation space = " " tabulation = "\t" eol = "\r\n" | "\n" chord = chord_root chord_kind? chord_bass? mark? chord_root = note chord_kind = minor_sixth | minor_seventh | minor_nineth | minor_eleventh | minor_thirteenth | minor | suspended_second | suspended_fourth | sixth | major_seventh | seventh | nineth | eleventh | thirteenth | half_diminished | diminished | augmented chord_bass = "/" note minor_sixth = minor sixth minor_seventh = minor seventh minor_nineth = minor nineth minor_eleventh = minor eleventh minor_thirteenth = minor thirteenth minor = "min" | "m" | "-" suspended_second = suspended second suspended_fourth = suspended fourth suspended = "sus" second = "2" fourth = "4" sixth = "6" major_seventh = "7M" | "M7" seventh = "7" nineth = "9" eleventh = "11" thirteenth = "13" half_diminished = "hdim" | "ø" | "Ø" diminished = "dim" | "°" augmented = "aug" | "+" mark = segno_symbol | coda_symbol segno_symbol = "!S" | "!segno!" coda_symbol = "!C" | "!coda!" body = parts? parts = part (whitespace* part)* part = part_begin measures whitespace* part_end_barline part_begin = part_label? part_begin_barline whitespace* part_label = part_label_key part_label_value part_label_key = 'P:' blank* part_label_value = [A-Z] eol+ whitespace = eol | space | tabulation measures = measure (measure_separator measure)* measure = alternative? whitespace* (normal_measure | repeated_measure) alternative = alternative_number | alternative_range alternative_number = [1-9] alternative_range = [1-9] "-" [1-9] normal_measure = measure_element (whitespace* measure_element)* measure_element = chord | chord_continuation chord_continuation = "/" repeated_measure = "%" | "%%" measure_separator = whitespace* separator_barline whitespace* separator_barline = end_repeat_barline | begin_repeat_barline | double_barline | single_barline part_begin_barline = initial_begin_repeat | initial_barline part_end_barline = final_repeat | final_barline single_barline = single_barline_symbol whitespace* mark? double_barline = double_barline_symbol whitespace* mark? initial_barline = initial_barline_symbol whitespace* mark? final_barline = final_barline_symbol whitespace* mark? initial_begin_repeat = initial_repeat_symbol whitespace* mark? final_repeat = final_repeat_symbol whitespace* mark? begin_repeat_barline = begin_repeat_symbol whitespace* mark? end_repeat_barline = end_repeat_symbol whitespace* mark? initial_barline_symbol = "[" final_barline_symbol = "]" initial_repeat_symbol = "[:" final_repeat_symbol = ":]" begin_repeat_symbol = "|:" end_repeat_symbol = ":|" single_barline_symbol = "|" double_barline_symbol = "||"