/MusicXmlGoParser

Parses MusicXml and exports to a machine learning friendly format

Primary LanguageGoMIT LicenseMIT

MusicXmlGoParser

Converts MusicXml into a machine learning friendly format

USAGE Example:

Encode data into a file like so:
go run main.go -encode=true -dir=/chord-melody-dataset -output=my-encoded-data.txt

Encoding format

Each bar consists of a 72 digit encoding

[key][chords][bar1][bar2][bar3][bar4]
KEY EXAMPLE

[F-sharp] = [62]

CHORDS EXAMPLE

[G-major-7 | eb minor] = [713501]

BAR EXAMPLE

Each beat in a bar: [NOTE-SHARP-OCATAVE-LIFECYCLE]
[g-sharp-quarter | rest-quarter | d-quarter | e-eighth | f-eight] = [7140-7141-7141-7141--0000-0000-0000-0000--4140-4141-4141-4141--5140-5141-6140-6140]

NOTES:

0 | Rest
1 | a
2 | b
3 | c
4 | d
5 | e
6 | f
7 | g

FLAT/NATURAL/SHARP

0 - FLAT | 1 - NATURAL | 2 - SHARP

OCTAVES

0-5

NOTE LIFE_CYCLE

0 - START | 1 - SUSTAIN

CHORD TYPES

0 | maj
1 | min
2 | dim
3 | maj7
4 | min7
5 | dom7
6 | min7b5
#### CHORD TYPE

START/SUSTAIN

0 - START | 1 - SUSTAIN