py_sw2abc

The SongWright file format is an orphaned format with no apparent standard.
The ABC format is well-defined, powerful, and compatible with other libraries and services.

This project is an attempt to improve on previous scripts which translate SongWright files to ABC files. There are other (Perl and gawk) scripts around but they are incomplete & unmaintained. This Python approach has allowed for pretty reasonable results so far but there are improvements to be made.

Usage:

To do. The output will be copied to the clipboard conditional on the --copy flag.

py_sw2abc <file_in> [--copy/no-copy]

Example

SongWright input:

Images are rendered with ABCjs.

N-A-Beggin' I Will Go
C-
A-
T-
S-100
K-C
B-4/4
F-
H-
M-1c-8 S-6 c-8 G-8 G-8 F-8 E-4 D-8 E-8 C-8 D-8 E-8 F-8 G-5 G-8 G-8 c-8 c-8 c-8 c-4 c-8 c-8 d-8 e-8 f-8 d-8 e-4 S-6 S-6
L-      Of all the trades in  Eng-  land the beg- gin' is the best,      For when a beg- gar's tired, he  can sit him down and rest,
H-chorus:
M-5d-8 c-8 S-6 e-4 d-8_c-8 b-4 a-8_b-8 c-8_b-8 a-8_G-8 a-8_G-8 F-8 E-8 F-4 a-4 G-4 b-4 W-2 c-3 R-8 S-6 S-6
L-       And a   beg-     gin'   I        will    go,      will     go,   And  a- beg-    gin'    I       will     go.

py_sw2abc output:

T: A-Beggin' I Will Go
Q: 1/4=100
K: C
M: 4/4
L: 1/16
c2|c2G2G2F2E4D2E2|C2D2E2F2G6G2|G2c2c2c2c4c2c2|d2e2f2d2e4||
w: Of all the trades in Eng- land the beg- gin' is the best, For when a beg- gar's tired, he can sit him down and rest,
d2c2|e4(d2c2)B4(A2B2)|(c2B2)(A2G2)(A2G2)F2E2|F4A4G4B4|c12z2||
w: And a beg- gin'_ I will_ go,_ will_ go,_ And a- beg- gin' I will go.

py_sw2abc output

Compare to previous scripts:

T:A-Beggin' I Will Go
M:4/4
L:1/8
K:C
 c| cG GF E2 DE| CD EF G3 G| Gc cc c2 cc| de fd e2|| dc| e2d-c B2A-B|\
c-BA-GA-G FE| F2 A2 G2 B2| c6 z||

py_sw2abc output

GitHub

View Github