PlayerPiano
Not only does this piano represent music, it renders as music.
Demo
How?
python parser.py entertainer < player_piano
This experiment is powered by an open-source Python library known as Melopy. The syntax you see on the right is a demonstration of MLP Syntax.
The parser ignores most characters (including whitespace) leaving only music notes (A thru G) and time-controls ([] and ()) among others (#, b, v, ^, +, -).
The original (unobfuscated) score can be found here.
More
Melopy can do much more than render ASCII pianos. Be sure to check it out on GitHub.
This is an experiment by Jordan Scales.
6(DEC)v
A(B)G(DEC)v
A(B)G(DEC)vA(
BAAbpthsuzjjkkmw
xzzhmipoorxilhxuw)
G_^G4(DD#)(E)^Cv(E)^C
v(E)^[C]_5(CDpxkmhhuyrrtil
qsmkhqomlnhlnujuD#ECD)Ev(B)^D[C]_4(DD#
)(E)^Cv(E)^Cvwtuisrzxsywohznxiixjlokosioik(E)^
[C]_(_)4(AGF#A^C)E(DCvA)^[D]_4(irrhlunlszmzttussn
nyhwpiytmklDD#)(E)^Cv(E)^Cv(E)^[C]_5(CDD#ECD)Elospo
pzwspjiuzlsmxkzhpxlkkusov(B)^D[C]_5(CDECD)E(CDC)(ECD)
E(CDC)psrrwuqqyjkhimlnmsqlkwjjryjxp(ECD)E(vB)^D[C]_4(D
D#)(E)^Cv(E)^Cv(xktykhiuhllhqoulyhxorliyyqyyxE)^[C]_5(
C DD#ECD)Ev(B)^D[C]_4(DD#)(mnuxntisitzhjjzuhmitznnhzzywm
E )^Cv(E)^Cv(E)^[C]_(_)4(AGF#A^C)E(Dnsupsnxmrijsjyjzxmn
mw pyhjyhzsCvA)^[D]_4(DD#)(E)^Cv(E)^Cv(E)^[C]_xtlnwmsuw
r kqlqpnnzoyuzjyotxtz5(CDD#ECD)Ev(B)^D[C]_5(CDECD)E(C
D C)jozuowwlhkttzxntmkliohwwrwqkh(ECD)E(CDC)(ECD)E(
vB)^D[C]_&&&5(DECyynzyxwoukmwuqmmtinhszsmppxyy)vA(B)G(DEC)vA(B)
G(DEC)vA(BAAb)G_G_jxthupkjlwnzlnsyiulrlmxlnjuho3C^C2G^Bb2F^A2E^
G2G4C2G^B2C4CCvB3C^xzlssoqowuywpwnzjqhouhtzqshrkC2G^Bb2F^A3EEb2D^F#
2D^F#3BGAB3C^C2Ghwlwnpxtooiozlwqtrwxiwonxhmmt^Bb2F^A2E^G2G4C2G^B2C4CE_3C4E2
Bb4E2xnuorsnwrpjjzhrhshyspyqomrmpkA4F2Ab4F2G4E2G4B3CGAB3C^C2G^Bb2F^A2kwtrnk
iiqixsjowyxzyithkhupjhpE^G2G4C2G^B2C4CCvB3C^C2G^Bb2F^A3EEbjjqzytqtprswmsxzw
wirhousursqu2D^F#2D^F#3BGAB3C^C2G^Bb2F^A2E^G2G4plujs
ktmjkqpmihqwzpxjkxkolj llC2G^
B2C4CE_3C4E2 Bb4E2A
4F2Ab4 F2G4E
2Gkyrm soxqo
rpxmol ioor
lqlh wusj
ku4B 3C2G
C_// ////
//// ////
//// ////
//// ////