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_//                                                      ////       
           ////                                                      ////       
           ////                                                      ////       
           ////                                                      ////