As I wrote elsewhere, I’m interested in trying to eventually mimic Pavane (the classical piece by Faure) as a Clarinet Duo (with synth Clarinets), in part as a way of learning Sonic Pi (I learn best by setting goals and learning what I need to learn to achieve the goal). I managed to find the MIDI notes to Pavane (at 8notes.com) which I then fed into a javascript site (https://tonejs.github.io/Midi/) which converted the MIDI to tone.js friendly JSON – and I then wrote a crude Ruby program to convert that into function calls with parameters for note, duration, amp, and timing. The results are below.
The biggest challenge after all of the above, was figuring out the paradigm for triggering each note at the appropriate time, which I finally achieved by using a call to sleep (timing -vt) ahead of each play call.
Feedback welcome, especially if I overlooked some simpler way to handle the timing. This works, and was the simplest method I could think of.
This isn’t the entire piece, because it was too large for the buffer, and this is probably long enough for posting here anyway
define :plnt do |n,dur,aamp,timing|
use_synth :tri #:subpulse
sleep timing - vt
play n , attack: 0.1*dur,sustain: 0.8*dur,release: 0.1*dur, amp: aamp
print timing
end
define :plnt2 do |n,dur,aamp,timing|
use_synth :zawa
sleep timing - vt
play n , attack: 0.1*dur,sustain: 0.8*dur,release: 0.1*dur, amp: aamp*0.4
print timing
end
in_thread do
# note dur amp timing
plnt 67.00, 1.3359, 0.5591, 3.0000
plnt 69.00, 0.1904, 0.5591, 4.3125
plnt 70.00, 1.3359, 0.6457, 4.5000
plnt 72.00, 0.1904, 0.7008, 5.8125
plnt 70.00, 0.3809, 0.5748, 6.0000
plnt 69.00, 0.3809, 0.5512, 6.3750
plnt 70.00, 0.3809, 0.6063, 6.7500
plnt 67.00, 0.3809, 0.5276, 7.1250
plnt 69.00, 1.3359, 0.6063, 7.5000
plnt 70.00, 0.1904, 0.6535, 8.8125
plnt 69.00, 0.3809, 0.5512, 9.0000
plnt 67.00, 0.3809, 0.5039, 9.3750
plnt 69.00, 0.3809, 0.6220, 9.7500
plnt 65.00, 0.3809, 0.5512, 10.1250
plnt 67.00, 1.3359, 0.5827, 10.5000
plnt 66.00, 0.1904, 0.5118, 11.8125
plnt 62.00, 2.8477, 0.5118, 12.0000
plnt 74.00, 1.3359, 0.7323, 15.0000
plnt 75.00, 0.1904, 0.7559, 16.3125
plnt 77.00, 1.3359, 0.6378, 16.5000
plnt 79.00, 0.1904, 0.6850, 17.8125
plnt 77.00, 0.3809, 0.5669, 18.0000
plnt 75.00, 0.3809, 0.5354, 18.3750
plnt 77.00, 0.3809, 0.6535, 18.7500
plnt 74.00, 0.3809, 0.5984, 19.1250
plnt 75.00, 1.3359, 0.6299, 19.5000
plnt 77.00, 0.1904, 0.6299, 20.8125
plnt 75.00, 0.3809, 0.5984, 21.0000
plnt 74.00, 0.3809, 0.5669, 21.3750
plnt 75.00, 0.3809, 0.6142, 21.7500
plnt 72.00, 0.3809, 0.5433, 22.1250
plnt 74.00, 1.3359, 0.5984, 22.5000
plnt 73.00, 0.1904, 0.5984, 23.8125
plnt 74.00, 2.8477, 0.6378, 24.0000
plnt 67.00, 1.3359, 0.4646, 27.0000
plnt 69.00, 0.1904, 0.4724, 28.3125
plnt 70.00, 1.3359, 0.6299, 28.5000
plnt 72.00, 0.1904, 0.6457, 29.8125
plnt 70.00, 0.3809, 0.5906, 30.0000
plnt 69.00, 0.3809, 0.5669, 30.3750
plnt 70.00, 0.3809, 0.6378, 30.7500
plnt 67.00, 0.3809, 0.5984, 31.1250
plnt 69.00, 1.3359, 0.6614, 31.5000
plnt 70.00, 0.1904, 0.6772, 32.8125
plnt 69.00, 0.3809, 0.6063, 33.0000
plnt 67.00, 0.3809, 0.5354, 33.3750
plnt 69.00, 0.3809, 0.6457, 33.7500
plnt 65.00, 0.3809, 0.5748, 34.1250
plnt 67.00, 1.3359, 0.6378, 34.5000
plnt 66.00, 0.1904, 0.5984, 35.8125
plnt 62.00, 2.8477, 0.5354, 36.0000
plnt 70.00, 1.3125, 0.6850, 39.0000
plnt 72.00, 0.1875, 0.7402, 40.3125
plnt 74.00, 1.3125, 0.7402, 40.5000
plnt 75.00, 0.1875, 0.8110, 41.8125
plnt 74.00, 0.3750, 0.5906, 42.0000
plnt 72.00, 0.3750, 0.5669, 42.3750
plnt 74.00, 0.3750, 0.6614, 42.7500
plnt 70.00, 0.3750, 0.5512, 43.1250
plnt 72.00, 1.3125, 0.6693, 43.5000
plnt 74.00, 0.1875, 0.6929, 44.8125
plnt 70.00, 0.3750, 0.5827, 45.0000
plnt 69.00, 0.3750, 0.5433, 45.3750
plnt 70.00, 0.3750, 0.5827, 45.7500
plnt 70.00, 0.3750, 0.5118, 46.1250
plnt 70.00, 0.7500, 0.4961, 46.5000
plnt 69.00, 0.7500, 0.3780, 47.2500
plnt 67.00, 0.7500, 0.3543, 48.0000
end
in_thread do
plnt2 55.00, 0.3750, 0.5512, 0.0000
plnt2 58.00, 0.3750, 0.5827, 0.3750
plnt2 62.00, 0.3750, 0.6614, 0.7500
plnt2 58.00, 0.3750, 0.5748, 1.1250
plnt2 55.00, 0.3750, 0.5748, 1.5000
plnt2 58.00, 0.3750, 0.6063, 1.8750
plnt2 62.00, 0.3750, 0.6614, 2.2500
plnt2 58.00, 0.3750, 0.5591, 2.6250
plnt2 55.00, 0.3750, 0.5433, 3.0000
plnt2 58.00, 0.3750, 0.6378, 3.3750
plnt2 62.00, 0.3750, 0.6614, 3.7500
plnt2 58.00, 0.3750, 0.5591, 4.1250
plnt2 51.00, 0.3750, 0.5276, 4.5000
plnt2 62.00, 0.3750, 0.7165, 4.8750
plnt2 67.00, 0.3750, 0.7087, 5.2500
plnt2 62.00, 0.3750, 0.5039, 5.6250
plnt2 53.00, 0.3750, 0.5197, 6.0000
plnt2 60.00, 0.3750, 0.7008, 6.3750
plnt2 65.00, 0.3750, 0.7165, 6.7500
plnt2 60.00, 0.3750, 0.5433, 7.1250
plnt2 50.00, 0.3750, 0.5039, 7.5000
plnt2 60.00, 0.3750, 0.7638, 7.8750
plnt2 65.00, 0.3750, 0.6850, 8.2500
plnt2 60.00, 0.3750, 0.5591, 8.6250
plnt2 51.00, 0.3750, 0.4961, 9.0000
plnt2 58.00, 0.3750, 0.6457, 9.3750
plnt2 63.00, 0.3750, 0.6772, 9.7500
plnt2 58.00, 0.3750, 0.5512, 10.1250
plnt2 60.00, 0.3750, 0.6850, 10.5000
plnt2 70.00, 0.3750, 0.7402, 10.8750
plnt2 75.00, 0.3750, 0.7008, 11.2500
plnt2 70.00, 0.3750, 0.5827, 11.6250
plnt2 62.00, 0.3750, 0.4724, 12.0000
plnt2 69.00, 0.3750, 0.6850, 12.3750
plnt2 78.00, 0.3750, 0.7638, 12.7500
plnt2 69.00, 0.3750, 0.4961, 13.1250
plnt2 60.00, 0.3750, 0.4724, 13.5000
plnt2 69.00, 0.3750, 0.7008, 13.8750
plnt2 78.00, 0.3750, 0.7402, 14.2500
plnt2 69.00, 0.3750, 0.4882, 14.6250
plnt2 58.00, 0.3750, 0.5039, 15.0000
plnt2 67.00, 0.3750, 0.7323, 15.3750
plnt2 62.00, 0.3750, 0.5591, 15.7500
plnt2 67.00, 0.3750, 0.6535, 16.1250
plnt2 55.00, 0.3750, 0.5512, 16.5000
plnt2 62.00, 0.3750, 0.6850, 16.8750
plnt2 58.00, 0.3750, 0.5827, 17.2500
plnt2 62.00, 0.3750, 0.6535, 17.6250
plnt2 60.00, 0.3750, 0.5827, 18.0000
plnt2 67.00, 0.3750, 0.7087, 18.3750
plnt2 58.00, 0.3750, 0.5827, 18.7500
plnt2 67.00, 0.3750, 0.7323, 19.1250
plnt2 53.00, 0.3750, 0.5118, 19.5000
plnt2 60.00, 0.3750, 0.6772, 19.8750
plnt2 56.00, 0.3750, 0.5984, 20.2500
plnt2 60.00, 0.3750, 0.6772, 20.6250
plnt2 58.00, 0.3750, 0.6299, 21.0000
plnt2 65.00, 0.3750, 0.7008, 21.3750
plnt2 56.00, 0.3750, 0.5984, 21.7500
plnt2 65.00, 0.3750, 0.7008, 22.1250
plnt2 51.00, 0.3750, 0.5354, 22.5000
plnt2 63.00, 0.3750, 0.7638, 22.8750
plnt2 57.00, 0.3750, 0.5984, 23.2500
plnt2 63.00, 0.3750, 0.7087, 23.6250
plnt2 50.00, 0.3750, 0.5591, 24.0000
plnt2 57.00, 0.3750, 0.6299, 24.3750
plnt2 62.00, 0.3750, 0.6929, 24.7500
plnt2 63.00, 0.3750, 0.6457, 25.1250
plnt2 60.00, 0.3750, 0.5748, 25.5000
plnt2 62.00, 0.3750, 0.6378, 25.8750
plnt2 58.00, 0.3750, 0.5748, 26.2500
plnt2 57.00, 0.3750, 0.6063, 26.6250
plnt2 55.00, 0.3750, 0.5669, 27.0000
plnt2 58.00, 0.3750, 0.6220, 27.3750
plnt2 62.00, 0.3750, 0.6614, 27.7500
plnt2 58.00, 0.3750, 0.5906, 28.1250
plnt2 51.00, 0.3750, 0.5197, 28.5000
plnt2 58.00, 0.3750, 0.6535, 28.8750
plnt2 62.00, 0.3750, 0.6693, 29.2500
plnt2 58.00, 0.3750, 0.5669, 29.6250
plnt2 53.00, 0.3750, 0.5827, 30.0000
plnt2 60.00, 0.3750, 0.6772, 30.3750
plnt2 65.00, 0.3750, 0.7165, 30.7500
plnt2 60.00, 0.3750, 0.5512, 31.1250
plnt2 50.00, 0.3750, 0.4961, 31.5000
plnt2 60.00, 0.3750, 0.7165, 31.8750
plnt2 65.00, 0.3750, 0.7087, 32.2500
plnt2 60.00, 0.3750, 0.5591, 32.6250
plnt2 51.00, 0.3750, 0.5354, 33.0000
plnt2 58.00, 0.3750, 0.6693, 33.3750
plnt2 63.00, 0.3750, 0.6850, 33.7500
plnt2 58.00, 0.3750, 0.5984, 34.1250
plnt2 60.00, 0.3750, 0.6299, 34.5000
plnt2 70.00, 0.3750, 0.7638, 34.8750
plnt2 75.00, 0.3750, 0.6850, 35.2500
plnt2 70.00, 0.3750, 0.5512, 35.6250
plnt2 62.00, 0.3750, 0.5118, 36.0000
plnt2 69.00, 0.3750, 0.6850, 36.3750
plnt2 78.00, 0.3750, 0.6772, 36.7500
plnt2 69.00, 0.3750, 0.4803, 37.1250
plnt2 60.00, 0.3750, 0.4961, 37.5000
plnt2 69.00, 0.3750, 0.6693, 37.8750
plnt2 78.00, 0.3750, 0.7480, 38.2500
plnt2 69.00, 0.3750, 0.5118, 38.6250
plnt2 58.00, 0.3750, 0.4803, 39.0000
plnt2 62.00, 0.3750, 0.6299, 39.3750
plnt2 58.00, 0.3750, 0.5748, 39.7500
plnt2 62.00, 0.3750, 0.6693, 40.1250
plnt2 56.00, 0.3750, 0.6142, 40.5000
plnt2 65.00, 0.3750, 0.7402, 40.8750
plnt2 58.00, 0.3750, 0.5827, 41.2500
plnt2 65.00, 0.3750, 0.7244, 41.6250
plnt2 55.00, 0.3750, 0.5354, 42.0000
plnt2 65.00, 0.3750, 0.7165, 42.3750
plnt2 58.00, 0.3750, 0.5512, 42.7500
plnt2 63.00, 0.3750, 0.6378, 43.1250
plnt2 53.00, 0.3750, 0.4961, 43.5000
plnt2 63.00, 0.3750, 0.7244, 43.8750
plnt2 56.00, 0.3750, 0.5669, 44.2500
plnt2 62.00, 0.3750, 0.7087, 44.6250
plnt2 51.00, 0.3750, 0.5512, 45.0000
plnt2 62.00, 0.3750, 0.7717, 45.3750
plnt2 55.00, 0.3750, 0.5591, 45.7500
plnt2 61.00, 0.3750, 0.7165, 46.1250
plnt2 50.00, 0.3750, 0.5591, 46.5000
plnt2 60.00, 0.3750, 0.7244, 46.8750
plnt2 62.00, 0.3750, 0.6142, 47.2500
plnt2 60.00, 0.3750, 0.6063, 47.6250
plnt2 55.00, 0.3750, 0.5354, 48.0000
plnt2 62.00, 0.3750, 0.7008, 48.3750
plnt2 67.00, 0.3750, 0.7008, 48.7500
plnt2 70.00, 0.3750, 0.6693, 49.1250
plnt2 69.00, 0.3750, 0.5591, 49.5000
plnt2 67.00, 0.3750, 0.5276, 49.8750
end