Spent the afternoon transcribing Bach’s Fugue in G minor BWV 542 from an arrangement by the composer Franz Liszt.
I split the complex piano part into 9 separate parts to allow for note overlaps and tied chords, so that I could then export the parts as separate music-xml lists which were then converted to Sonic Pi notation usinga processing script.
I produced two versions. One used the built in piano synth in Sonic Pi, and the other exported separate midi tracks which could be played by Qsynth (on my Raspberry Pi 4), or, when played on my Mac by the Music samples in Aria Player.
I haven’t added any dynamic variation which would be quite a long task, but even so I like the interplay between the parts which you can hear as they play. It lasts about 5 minutes, and so requires to be played using the run_file command. When played with external synths I feed the audio back into Sonic Pi using the live_audio command.
The code for the fugue is here