Skip to content

Instantly share code, notes, and snippets.

@rbnpi
Last active October 17, 2023 04:12
Show Gist options
  • Save rbnpi/a8bb21917e305788d02c3c0a9f42d77b to your computer and use it in GitHub Desktop.
Save rbnpi/a8bb21917e305788d02c3c0a9f42d77b to your computer and use it in GitHub Desktop.
Beethoven Moonlight Sonata played by Sonic Pi. Uses Sonatina Symphonic Orchestra samples. See readme for availablilty. Video at https://youtu.be/8rdJ9wxGw5Y

The Sonic Pi file moonlightSonata-RF.rb which plays Beethoven's Moonlight Sonata 1st Movement requires the use of the Grand Piano samples from the Sonatina Symphonic Orchestra produced by Matthias Westlund.

Unfortunately this is no longer available from his website https://sso.mattiaswestlund.net/ However there is an alternative available at https://github.com/peastman/sso from where you can download the library. It is coverd by a https://creativecommons.org/licenses/sampling+/1.0/ Download and expand on your Desktop, or other suitable location and then set the link in the program at line 9 appropraitely for your installation.

The file should be run using the run_file "/path/to/file/location" command as it is too long to run from a Sonic Pi buffer.

An alternative version using the built in piano synth in Sonic Pi is included for comparison.

The system has been tested on a MAc running Sonic Pi 3.1 but should work on other platforms and with slightly earlier versions. Probably OK with 2.10, although not tested.

#moonlightSonata-local-RF.rb
#version using internal piano synth
#by Robin Newman, December 2019
#(better version uses samples from Sonatina Symphonic Orchestra)
#run using run_file "path/to/this/file"
use_synth :piano
use_bpm 49
use_synth_defaults amp: 0.5,hard: 0.45,vel: 0.18
with_fx :reverb,room: 0.6,mix: 0.6 do
a1=[:r,:r,:r,:r,:r,:r,:Af4,:Af4,:Af4,:Af4,:Af4,:Af4,:A4,:Af4,:Gf4,:Cf5,:Ff4,:r,:r,:r,:r,:G4,:G4,:G4,:G4,:G4,:G4,:Gf4,:Gf4,:G4,:Ff4,:Gf4,:Gf4,:r,:r,:Cf5,:C5,:Bf4,:Cf5,:Cf5,:C5,:Bf4,:Cf5,:Cf5,:Cf5,:A4,:G4,:Gf4,:Df4,:Df4,:Df4,:r,:r,:Df5,:Df5,:Df5,:Df5,:Df5,:Df5,:C5,:Df5,:Ef5,:Ef5,:Ff5,:Ef5,:Df5,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Af4,:Af4,:Af4,:Af4,:Af4,:Af4,:A4,:Af4,:Gf4,:Cf5,:Ff4,:r,:r,:Cf5,:Cf5,:Cf5,:Cf5,:Cf5,:Cf5,:C5,:Df5,:Ef5,:Ff5,:D5,:C5,:Df5,:Df5,:D5,:C5,:Df5,:Df5,:D5,:C5,:Df5,:Df5,:Cf5,:Cf5,:A4,:A4,:Af4,:Af4,:Gf4,:Af4,:A4,:Af4,:Af4,:Df4,:r,:r,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Df3,:Af2,:r,:r,:r]
b1=[4.0,4.0,4.0,4.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,2.0,2.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,3.0,1.0,2.0,1.0,1.0,2.0,2.0,2.0,1.0,1.0,3.0,1.0,3.0,1.0,3.0,1.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,1.0,1.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,1.0,1.0,3.0,1.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,1.0,1.0,2.0,2.0,2.0,2.0,3.0,1.0,3.0,1.0,3.0,1.0,3.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,3.0,0.75,0.25,3.0,0.75,0.25,3.0,0.75,0.25,3.0,0.75,0.25,3.0,0.75,0.25,2.0,2.0,2.0,2.0,4.0,4.0]
in_thread do
for i in 0..a1.length-1
play a1[i],sustain: b1[i]*0.9#,release: b1[i][j]*0.1
sleep b1[i]
end
end
a2=[:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Af2,:Af2,:Af2,:r,:r,:r,:r,:r,:r,:r,:r,:r]
b2=[4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,3.0,0.75,0.25,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0]
in_thread do
for i in 0..a2.length-1
play a2[i],sustain: b2[i]*0.9#,release: b2[i][j]*0.1
sleep b2[i]
end
end
a3=[:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:A3,:Df4,:Ff4,:A3,:Df4,:Ff4,:A3,:D4,:Gf4,:A3,:D4,:Gf4,:Af3,:C4,:Gf4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ef4,:Gf3,:C4,:Ef4,:Ff3,:Af3,:Df4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:A3,:Df4,:Gf4,:A3,:Df4,:Gf4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:A3,:Cf4,:Ef4,:A3,:Cf4,:Ef4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:F4,:G3,:Cf4,:F4,:G3,:Cf4,:F4,:G3,:Cf4,:F4,:G3,:C4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Df4,:Ff4,:Gf3,:Df4,:Ff4,:Gf3,:Cf4,:D4,:Gf3,:Cf4,:D4,:G3,:Cf4,:Df4,:Ff3,:Cf4,:Df4,:Gf3,:Cf4,:D4,:Gf3,:Cf4,:D4,:Gf3,:Bf3,:Df4,:Gf3,:Bf3,:Df4,:Cf4,:D4,:Gf4,:Cf4,:D4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:D4,:F4,:Cf4,:D4,:F4,:Cf4,:Df4,:Af4,:Cf4,:Df4,:Af4,:A3,:Df4,:Gf4,:A3,:Df4,:Gf4,:G3,:Cf4,:D4,:G3,:Cf4,:D4,:Gf3,:A3,:Ef4,:Gf3,:A3,:Ef4,:Df3,:Gf3,:A3,:Df3,:Gf3,:A3,:Df3,:Gf3,:Af3,:Df3,:F3,:Af3,:Gf3,:A3,:Df4,:A3,:Df4,:Gf4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Af4,:Cf5,:Df4,:Af4,:Cf5,:Df4,:Af4,:Cf5,:Df4,:Af4,:Cf5,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:C4,:Gf4,:A4,:Df4,:Gf4,:A4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ff4,:Af4,:Df5,:Ff4,:Af4,:Df5,:Ef4,:Gf4,:A4,:Df4,:Ff4,:Bf4,:r,:Af4,:A4,:Gf4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:Df5,:Ff5,:Df5,:r,:Df4,:Ff4,:Df4,:Ef3,:A3,:Gf3,:C4,:A3,:Ef4,:C4,:Gf4,:Ef4,:A4,:Gf4,:C5,:Ff3,:Df4,:Af3,:Ff4,:Df4,:Af4,:Ff4,:Df5,:Af4,:Ff5,:Df5,:Af4,:Df4,:G4,:Ff4,:Bf4,:G4,:Df5,:Bf4,:Ff5,:Df5,:G5,:Ff5,:Bf5,:Gf4,:C5,:A4,:Ef5,:C5,:Gf5,:Ef5,:A5,:Gf5,:C6,:A5,:Ef6,:C6,:Gf5,:A5,:Ef5,:Gf5,:C5,:Ef5,:A4,:C5,:Gf4,:A4,:Ef4,:Gf4,:C4,:Ef4,:A3,:C4,:Gf3,:A3,[:Ef3,:Gf3],:r,:Gf3,:A3,:r,:Gf3,:Af3,:r,:r,:Gf3,:A3,:r,:Gf3,:A3,:r,:A3,:Af3,:Gf3,:r,:r,:A3,:Af3,:Gf3,:r,:Ef3,:A3,:Df4,:Ef3,:A3,:Df4,:Ef3,:Af3,:C4,:Ef3,:Gf3,:C4,:Ff3,:Af3,:Df4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:A3,:Df4,:Gf4,:A3,:Df4,:Gf4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:A3,:Cf4,:Ef4,:A3,:Cf4,:Ef4,:Af3,:Cf4,:Ff4,:Cf4,:Ff4,:Af4,:Cf4,:Ff4,:Af4,:Cf4,:Ff4,:Af4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Ff4,:Af4,:Cf4,:Ff4,:Af4,:C4,:Gf4,:Af4,:Df4,:Ff4,:Af4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ff4,:Af4,:Df5,:Ff4,:Af4,:Df5,:D4,:Gf4,:A4,:D4,:Gf4,:A4,:C4,:Gf4,:Af4,:C4,:Gf4,:Af4,:Df4,:Ff4,:Af4,:Df4,:Ff4,:Af4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Ff4,:Af4,:A3,:Ff4,:Af4,:A3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Df4,:Ff4,:Gf3,:Df4,:Ef4,:Gf3,:Df4,:Ef4,:Af3,:Df4,:Ef4,:A3,:Df4,:Ef4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Gf3,:C4,:Ef4,:Gf3,:C4,:Ef4,:Ff3,:Af3,:Df4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ff4,:Df4,:Af4,:Ff4,:Df5,:Af4,:Ff5,:Df5,:Af5,:Ff5,:Df5,:C5,:Ef5,:A4,:C5,:Gf4,:A4,:Ef4,:Gf4,:A3,[:Ff3,:Df4],:Ff4,:Df4,:Af4,:Ff4,:Df5,:Af4,:Ff5,:Df5,:Af5,:Ff5,:Df5,:C5,:Ef5,:A4,:C5,:Gf4,:A4,:Ef4,:Gf4,:A3,[:Ff3,:Df4],:Af3,:Df4,:Ff4,:Df4,:Af3,:r,:Ff3,:Af3,:Df4,:Af3,:Ff3,:r,:Df3,:Ff3,:Af3,:Ff3,:Df3,:Af2,:Df3,:Af2,:Ff2,:Af2,:Ff2,:Df2,[:Ff3,:Af3,:Df4],[:Ff3,:Af3,:Df4]]
b3=[0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,2.0,1.0,0.33333334,0.33333334,0.33333334,2.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.3333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.3333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,2.0,2.0,4.0]
in_thread do
for i in 0..a3.length-1
play a3[i],sustain: b3[i]*0.9#,amp: 0.3,release: b3[i]*0.1
sleep b3[i]
end
end
a4=[:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:C5,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:Af3,:A3,:Gf3,:Ff3,:Ff4,:Af4,:r,:Ff4,:Af4,:r,:Ff4,:Af4,:r,:Ff4,:Af4,:r,:Ff3,:Af3,:r,:Ff3,:Af3,:r,:Ff3,:Af3,:r,:Ff3,:Af3,:r,:r,:r,:r,:r,:r,:r,:Df3,:r,:A3,:Af3,:Gf3,:Ef3,:r,:r,:Gf3,:Af3,:r,:r,:Gf3,:A3,:r,:Gf3,:A3,:r,:Gf3,:Af3,:r,:Df3,:Ff3,:Df4,:Df3,:Ff3,:Df4,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:C4,:r,:r,:r,:C4,:r,:r,:r,:r]
b4=[4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,4.0,4.0,4.0,4.0,4.0,2.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,1.0,1.0,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,1.0,4.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0]
in_thread do
for i in 0..a4.length-1
play a4[i],sustain: b4[i]*0.9#
sleep b4[i]
end
end
a5=[:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:C3,:r,:Df3,:C3,:D3,:Df3,:C3,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Af3,:Gf3,:r,:r,:r,:r,:Af3,:Gf3,:r,:r,:r,:r]
b5=[4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,0.33333334,0.33333334,0.33333334,4.0,2.0,1.0,0.33333334,0.33333334,0.33333334,4.0,4.0,4.0,4.0]
in_thread do
for i in 0..a5.length-1
play a5[i],sustain: b5[i]*0.9#ß ,release: b5[i]*0.1
sleep b5[i]
end
end
a6=[:Df3,:Cf3,:A2,:Gf2,:Af2,:Af2,[:Af2,:Df3],[:Af2,:C3],:Df3,:Gf2,:Cf3,:Cf3,:Ff3,:Ff3,:D3,:C3,:Cf3,:Bf2,:Cf3,:Ff2,:G2,:Gf2,:Gf2,:Cf3,:Ff3,:G3,:Ff3,:Cf3,:Ff3,:G3,:Ff3,:Cf3,:Af2,:F2,:Gf2,:Cf3,:C3,:Df2,:Df2,[:Df2,:Gf2],[:Df3,:F3],:Gf3,:Ef3,:Df3,[:Af2,:C3],[:Af2,:C3],[:Af2,:Df3],:Gf2,:G2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:A2,:Gf2,:Af2,[:Af2,:Df3],[:Af2,:C3],:Df3,:Gf2,:Cf3,:Cf3,:Ff3,:Ef3,:Ff3,:Ef3,:Df3,[:Af2,:C3],[:Af2,:Df3],:Gf2,:Af2,:Df3,:Gf3,:A3,:Gf3,:Df3,:Gf3,:A3,:Gf3,:Df3,:Gf2,:Ef3,:Ff3,:Df3,:Ef3,:C3,:Df3,:A2,:Af2,:Gf2,:Af2,:Af2,:Df2,:C2,:Df2,:Af1,:Df2,:Af1,:Df2,:r,:r,[:Af2,:Df3],[:Af2,:Df3]]
b6=[4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,4.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,3.0,1.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,12.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,2.0,2.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,4.0,4.0,4.0,4.0,6.0,2.0,2.0,2.0,4.0]
in_thread do
for i in 0..a6.length-1
play a6[i],sustain: b6[i]*0.9#,release: b6[i]*0.1,amp: 0.7
sleep b6[i]
end
end
a7=[:Df2,:Cf2,:A1,:Gf1,:Af1,:Af1,:Df2,:C2,:Df2,:Gf1,:Cf2,:Cf2,:Ff2,:Ff2,:D2,:C2,:Cf2,:Bf1,:Cf2,:r,:r,:Gf2,[:Gf1,:Gf2],:Cf2,:Ff2,:G2,:Ff2,:Cf2,:Ff2,:G2,:Ff2,:Cf2,:Af1,:F1,:Gf1,:Cf2,:C2,:r,:r,:Gf1,:F2,:Gf2,:Ef2,:Df2,:C2,:C2,:Df2,:Gf1,:G1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:A1,:Gf1,:Af1,:Df2,:C2,:Df2,:Gf1,:Cf2,:Cf2,:Ff2,:Ef2,:Ff2,:Ef2,:Df2,:C2,:Df2,:Gf1,:Af1,:Df2,:Gf2,:A2,:Gf2,:Df2,:Gf2,:A2,:Gf2,:Df2,:Gf1,:Ef2,:Ff2,:Df2,:Ef2,:C2,:Df2,:A1,:Af1,:Gf1,:Af1,:Af1,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Df2,:Df2]
b7=[4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,4.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,3.0,1.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,12.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,2.0,2.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0]
in_thread do
for i in 0..a7.length-1
play a7[i],sustain: b7[i]*0.9#,release: b7[i]*0.1,amp: 0.7
sleep b7[i]
end
end
end #reverb
#moonlight_sonata-RF.rb
#coded by Robin Newman, December 2019, utilising Sonatina Symphonic Orchestra Samples
#plays on Sonic Pi 3.1
#play using run_file "path/to/this/file"all
#install SSO first (I did so on my Desktop see path below)
use_debug true
set :bpm,49
#path to library samples folder (including trailing /)
path="~/Desktop/Sonatina Symphonic Orchestra/Samples/"
#create array of instrument details
# each entry: name,folder name,sample prefix,offsetclass type,lowest note, highest note
voices=[
["Grand Piano","Grand Piano","piano-p-",0,:c1,:c8]]
uncomment do #can comment if samples loaded, to allow quick redefine of functions
killit = 0 #used to stop live_loop :t when all samples loaded
define :load do |i|
trigger=0
live_loop :t do
sleep 0.3
if trigger== 1
cue :start
end
stop if killit == 1 # stop when all samples loaded
end
load_samples path+voices[i][1],voices[i][2]
trigger=1
sync :start
end
for i in (0..0) do
load(i)
end
killit = 1 #stop live_loop :t
sleep 2
end
puts "The following voices from Sonatina Symphonic Library can be used:-"
voices.each_with_index do |n,i|
puts i.to_s,n[0]
end
puts voices.length.to_s+" voices"
#setup global variables
sampledir=""
sampleprefix=""
offsetclass=""
low=""
high=""
paths=""
#setup data for current inst
define :setup do |inst,path|
sampledir=voices.assoc(inst)[1]
sampleprefix=voices.assoc(inst)[2]
offsetclass=voices.assoc(inst)[3]
low=voices.assoc(inst)[4]
high=voices.assoc(inst)[5]
#amend path for instrument sampledir
paths=path+sampledir+"/"
end
sleep 0.2
#define routine to play sample using Sonatina data
define :pl do |np,d,inst,vol=1,s=0.9,r=0.1,tp=0,pan=0| #nv,d,offsetclass,vol,s,r,tp,pan
m=60.0/current_bpm #missing scaling factor
setup(inst,path)
#check if note in range of supplied samples
#use lowest/highest sample for out of range
change=0 #used to give rpitch for coverage outside range
frac=0
n=np+tp #note allowing for transposition
if n.is_a?(Numeric) #allow frac tp or np
frac=n-n.to_i
n=n.to_i
end
if note(np)+tp<note(low) #calc adjustment for low note
change=note(np).to_i+tp-note(low)
n=note(low)
end
if note(np).to_i+tp > note(high) #calc adjustment for high note
change = note(np).to_i+tp-note(high)
n=note(high)
end
if change < -5 or change > 5 #set allowable out of range
#if outside print messsage
puts 'inst: '+inst+' note '+np.to_s+' with transpostion '+tp.to_s+' out of sample range'
else #otherwise calc and play it
#calculate base note and octave
base=note(n)%12
oc = note(n) #do in 2 stages because of alignment bug
oc=oc/12 -1
#find first part of sample note
slookup=['c','c#','d','d#','e','f','f#','g','g#','a','a#','b']
#lookup sample to use,and rpitch offset, according to offsetclass
case offsetclass
when 0
oc += 1 if base == 11 #adjust if sample needs next octave
snumber=[0,0,3,3,3,6,6,6,9,9,9,0]
offset=[ 0,1,-1,0,1,-1,0,1,-1,0,1,-1]
when 1
snumber=[1,1,1,4,4,4,7,7,7,10,10,10]
offset=[-1,0,1,-1,0,1,-1,0,1,-1,0,1]
when 2
oc -= 1 if base == 0 #adjust if sample needs previous octave
snumber=[11,2,2,2,5,5,5,8,8,8,11,11]
offset=[1,-1,0,1,-1,0,1,-1,0,1,-1,0]
when 3
snumber=[0,1,2,3,4,5,6,7,8,9,10,11] #this class has sample for every note
offset=[0,0,0,0,0,0,0,0,0,0,0,0]
end
#generate sample name
sname=sampleprefix+(slookup[snumber[base]]).to_s+oc.to_s
#play sample with appropriate rpitch value
sample paths,sname,rpitch: offset[base]+change+frac,sustain: s*d*m,release: r*d*m,pan: pan,amp: vol
end
end
#define function to play lists of linked samples/durations using Sonatina samples
define :plarray do |notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
#puts offsetclass
notes.zip(durations).each do |n,d|
if n.respond_to?(:each)
n.each do |nv|
pl(nv,d*60.0/my_bpm,offsetclass,vol,s,r,tp,pan) if ![nil,:r,:rest].include? nv#allow for rests
end
else
pl(n,d*60.0/my_bpm,offsetclass,vol,s,r,tp,pan) if ![nil,:r,:rest].include? n#allow for rests
end
sleep d*60.0/my_bpm
end
end
with_fx :reverb,room: 0.4,mix: 0.5 do
with_fx :level,amp: 2 do
uncomment do
a1=[:r,:r,:r,:r,:r,:r,:Af4,:Af4,:Af4,:Af4,:Af4,:Af4,:A4,:Af4,:Gf4,:Cf5,:Ff4,:r,:r,:r,:r,:G4,:G4,:G4,:G4,:G4,:G4,:Gf4,:Gf4,:G4,:Ff4,:Gf4,:Gf4,:r,:r,:Cf5,:C5,:Bf4,:Cf5,:Cf5,:C5,:Bf4,:Cf5,:Cf5,:Cf5,:A4,:G4,:Gf4,:Df4,:Df4,:Df4,:r,:r,:Df5,:Df5,:Df5,:Df5,:Df5,:Df5,:C5,:Df5,:Ef5,:Ef5,:Ff5,:Ef5,:Df5,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Af4,:Af4,:Af4,:Af4,:Af4,:Af4,:A4,:Af4,:Gf4,:Cf5,:Ff4,:r,:r,:Cf5,:Cf5,:Cf5,:Cf5,:Cf5,:Cf5,:C5,:Df5,:Ef5,:Ff5,:D5,:C5,:Df5,:Df5,:D5,:C5,:Df5,:Df5,:D5,:C5,:Df5,:Df5,:Cf5,:Cf5,:A4,:A4,:Af4,:Af4,:Gf4,:Af4,:A4,:Af4,:Af4,:Df4,:r,:r,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Df3,:Af2,:r,:r,:r]
b1=[4.0,4.0,4.0,4.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,2.0,2.0,1.0,1.0,1.0,1.0,2.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,3.0,1.0,2.0,1.0,1.0,2.0,2.0,2.0,1.0,1.0,3.0,1.0,3.0,1.0,3.0,1.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,1.0,1.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,1.0,1.0,3.0,1.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,2.0,2.0,1.0,1.0,1.0,1.0,1.0,0.75,0.25,3.0,0.75,0.25,2.0,1.0,1.0,2.0,2.0,2.0,2.0,3.0,1.0,3.0,1.0,3.0,1.0,3.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,3.0,0.75,0.25,3.0,0.75,0.25,3.0,0.75,0.25,3.0,0.75,0.25,3.0,0.75,0.25,2.0,2.0,2.0,2.0,4.0,4.0]
in_thread do
plarray(a1,b1,get(:bpm),"Grand Piano",0.6,0.9,1,0,0.5) #|notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
end
a2=[:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Gf3,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Af2,:Af2,:Af2,:r,:r,:r,:r,:r,:r,:r,:r,:r]
b2=[4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,0.33333334,0.33333334,0.33333334,1.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,3.0,0.75,0.25,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0]
in_thread do
plarray(a2,b2,get(:bpm),"Grand Piano",1,0.9,1,0,0.3) #|notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
end
end#comment1
a3=[:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:A3,:Df4,:Ff4,:A3,:Df4,:Ff4,:A3,:D4,:Gf4,:A3,:D4,:Gf4,:Af3,:C4,:Gf4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ef4,:Gf3,:C4,:Ef4,:Ff3,:Af3,:Df4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:A3,:Df4,:Gf4,:A3,:Df4,:Gf4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:A3,:Cf4,:Ef4,:A3,:Cf4,:Ef4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Cf4,:F4,:G3,:Cf4,:F4,:G3,:Cf4,:F4,:G3,:Cf4,:F4,:G3,:C4,:Ff4,:G3,:Cf4,:Ff4,:G3,:Df4,:Ff4,:Gf3,:Df4,:Ff4,:Gf3,:Cf4,:D4,:Gf3,:Cf4,:D4,:G3,:Cf4,:Df4,:Ff3,:Cf4,:Df4,:Gf3,:Cf4,:D4,:Gf3,:Cf4,:D4,:Gf3,:Bf3,:Df4,:Gf3,:Bf3,:Df4,:Cf4,:D4,:Gf4,:Cf4,:D4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ff4,:G4,:Cf4,:Ef4,:Gf4,:Cf4,:Ef4,:Gf4,:Cf4,:D4,:F4,:Cf4,:D4,:F4,:Cf4,:Df4,:Af4,:Cf4,:Df4,:Af4,:A3,:Df4,:Gf4,:A3,:Df4,:Gf4,:G3,:Cf4,:D4,:G3,:Cf4,:D4,:Gf3,:A3,:Ef4,:Gf3,:A3,:Ef4,:Df3,:Gf3,:A3,:Df3,:Gf3,:A3,:Df3,:Gf3,:Af3,:Df3,:F3,:Af3,:Gf3,:A3,:Df4,:A3,:Df4,:Gf4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Af4,:Cf5,:Df4,:Af4,:Cf5,:Df4,:Af4,:Cf5,:Df4,:Af4,:Cf5,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:C4,:Gf4,:A4,:Df4,:Gf4,:A4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ff4,:Af4,:Df5,:Ff4,:Af4,:Df5,:Ef4,:Gf4,:A4,:Df4,:Ff4,:Bf4,:r,:Af4,:A4,:Gf4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:Df5,:Ff5,:Df5,:r,:Df4,:Ff4,:Df4,:Ef3,:A3,:Gf3,:C4,:A3,:Ef4,:C4,:Gf4,:Ef4,:A4,:Gf4,:C5,:Ff3,:Df4,:Af3,:Ff4,:Df4,:Af4,:Ff4,:Df5,:Af4,:Ff5,:Df5,:Af4,:Df4,:G4,:Ff4,:Bf4,:G4,:Df5,:Bf4,:Ff5,:Df5,:G5,:Ff5,:Bf5,:Gf4,:C5,:A4,:Ef5,:C5,:Gf5,:Ef5,:A5,:Gf5,:C6,:A5,:Ef6,:C6,:Gf5,:A5,:Ef5,:Gf5,:C5,:Ef5,:A4,:C5,:Gf4,:A4,:Ef4,:Gf4,:C4,:Ef4,:A3,:C4,:Gf3,:A3,:Ef3,:r,:Gf3,:A3,:r,:Gf3,:Af3,:r,:r,:Gf3,:A3,:r,:Gf3,:A3,:r,:A3,:Af3,:Gf3,:r,:r,:A3,:Af3,:Gf3,:r,:Ef3,:A3,:Df4,:Ef3,:A3,:Df4,:Ef3,:Af3,:C4,:Ef3,:Gf3,:C4,:Ff3,:Af3,:Df4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:A3,:Df4,:Gf4,:A3,:Df4,:Gf4,:Af3,:Cf4,:Ff4,:Af3,:Cf4,:Ff4,:A3,:Cf4,:Ef4,:A3,:Cf4,:Ef4,:Af3,:Cf4,:Ff4,:Cf4,:Ff4,:Af4,:Cf4,:Ff4,:Af4,:Cf4,:Ff4,:Af4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Ff4,:Af4,:Cf4,:Ff4,:Af4,:C4,:Gf4,:Af4,:Df4,:Ff4,:Af4,:Ef4,:Gf4,:Af4,:Ef4,:Gf4,:Af4,:Ff4,:Af4,:Df5,:Ff4,:Af4,:Df5,:D4,:Gf4,:A4,:D4,:Gf4,:A4,:C4,:Gf4,:Af4,:C4,:Gf4,:Af4,:Df4,:Ff4,:Af4,:Df4,:Ff4,:Af4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Df4,:F4,:Af4,:Df4,:F4,:Af4,:Df4,:Gf4,:A4,:Df4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Gf4,:A4,:Cf4,:Ff4,:Af4,:A3,:Ff4,:Af4,:A3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Df4,:Ff4,:Gf3,:Df4,:Ef4,:Gf3,:Df4,:Ef4,:Af3,:Df4,:Ef4,:A3,:Df4,:Ef4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Gf3,:C4,:Ef4,:Gf3,:C4,:Ef4,:Ff3,:Af3,:Df4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Df4,:Ff4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ef4,:Gf4,:Af3,:Ff4,:Df4,:Af4,:Ff4,:Df5,:Af4,:Ff5,:Df5,:Af5,:Ff5,:Df5,:C5,:Ef5,:A4,:C5,:Gf4,:A4,:Ef4,:Gf4,:A3,[:Ff3,:Df4],:Ff4,:Df4,:Af4,:Ff4,:Df5,:Af4,:Ff5,:Df5,:Af5,:Ff5,:Df5,:C5,:Ef5,:A4,:C5,:Gf4,:A4,:Ef4,:Gf4,:A3,[:Ff3,:Df4],:Af3,:Df4,:Ff4,:Df4,:Af3,:r,:Ff3,:Af3,:Df4,:Af3,:Ff3,:r,:Df3,:Ff3,:Af3,:Ff3,:Df3,:Af2,:Df3,:Af2,:Ff2,:Af2,:Ff2,:Df2,[:Ff3,:Af3,:Df4],[:Ff3,:Af3,:Df4]]
b3=[0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.6666667,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,2.0,1.0,0.33333334,0.33333334,0.33333334,2.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.3333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.3333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,2.0,2.0,4.0]
in_thread do
plarray(a3,b3,get(:bpm),"Grand Piano",0.3,0.9,1,0,0.3) #|notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
end
uncomment do
a4=[:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:C5,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:C4,:Ef4,:r,:Af3,:A3,:Gf3,:Ff3,:Ff4,:Af4,:r,:Ff4,:Af4,:r,:Ff4,:Af4,:r,:Ff4,:Af4,:r,:Ff3,:Af3,:r,:Ff3,:Af3,:r,:Ff3,:Af3,:r,:Ff3,:Af3,:r,:r,:r,:r,:r,:r,:r,:Df3,:r,:A3,:Af3,:Gf3,:Ef3,:r,:r,:Gf3,:Af3,:r,:r,:Gf3,:A3,:r,:Gf3,:A3,:r,:Gf3,:Af3,:r,:Df3,:Ff3,:Df4,:Df3,:Ff3,:Df4,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:C4,:r,:r,:r,:C4,:r,:r,:r,:r]
b4=[4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,4.0,4.0,4.0,4.0,4.0,2.0,1.0,1.0,1.0,0.33333334,0.33333334,0.33333334,1.0,1.0,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,1.0,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,0.33333334,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,1.0,4.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0]
in_thread do
plarray(a4,b4,get(:bpm),"Grand Piano",0.3,0.9,1,0,0.3) #|notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
end
a5=[:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:C3,:r,:Df3,:C3,:D3,:Df3,:C3,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Af3,:Gf3,:r,:r,:r,:r,:Af3,:Gf3,:r,:r,:r,:r]
b5=[4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,1.0,0.33333334,0.33333334,0.33333334,4.0,2.0,1.0,0.33333334,0.33333334,0.33333334,4.0,4.0,4.0,4.0]
in_thread do
plarray(a5,b5,get(:bpm),"Grand Piano",0.3,0.9,1,0,0.3) #|notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
end
a6=[:Df3,:Cf3,:A2,:Gf2,:Af2,:Af2,[:Af2,:Df3],[:Af2,:C3],:Df3,:Gf2,:Cf3,:Cf3,:Ff3,:Ff3,:D3,:C3,:Cf3,:Bf2,:Cf3,:Ff2,:G2,:Gf2,:Gf2,:Cf3,:Ff3,:G3,:Ff3,:Cf3,:Ff3,:G3,:Ff3,:Cf3,:Af2,:F2,:Gf2,:Cf3,:C3,:Df2,:Df2,[:Df2,:Gf2],[:Df3,:F3],:Gf3,:Ef3,:Df3,[:Af2,:C3],[:Af2,:C3],[:Af2,:Df3],:Gf2,:G2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:Af2,:A2,:Gf2,:Af2,[:Af2,:Df3],[:Af2,:C3],:Df3,:Gf2,:Cf3,:Cf3,:Ff3,:Ef3,:Ff3,:Ef3,:Df3,[:Af2,:C3],[:Af2,:Df3],:Gf2,:Af2,:Df3,:Gf3,:A3,:Gf3,:Df3,:Gf3,:A3,:Gf3,:Df3,:Gf2,:Ef3,:Ff3,:Df3,:Ef3,:C3,:Df3,:A2,:Af2,:Gf2,:Af2,:Af2,:Df2,:C2,:Df2,:Af1,:Df2,:Af1,:Df2,:r,:r,[:Af2,:Df3],[:Af2,:Df3]]
b6=[4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,4.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,3.0,1.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,12.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,2.0,2.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,4.0,4.0,4.0,4.0,6.0,2.0,2.0,2.0,4.0]
in_thread do
plarray(a6,b6,get(:bpm),"Grand Piano",0.4,0.9,1,0,-0.3) #|notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
end
a7=[:Df2,:Cf2,:A1,:Gf1,:Af1,:Af1,:Df2,:C2,:Df2,:Gf1,:Cf2,:Cf2,:Ff2,:Ff2,:D2,:C2,:Cf2,:Bf1,:Cf2,:r,:r,:Gf2,[:Gf1,:Gf2],:Cf2,:Ff2,:G2,:Ff2,:Cf2,:Ff2,:G2,:Ff2,:Cf2,:Af1,:F1,:Gf1,:Cf2,:C2,:r,:r,:Gf1,:F2,:Gf2,:Ef2,:Df2,:C2,:C2,:Df2,:Gf1,:G1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:Af1,:A1,:Gf1,:Af1,:Df2,:C2,:Df2,:Gf1,:Cf2,:Cf2,:Ff2,:Ef2,:Ff2,:Ef2,:Df2,:C2,:Df2,:Gf1,:Af1,:Df2,:Gf2,:A2,:Gf2,:Df2,:Gf2,:A2,:Gf2,:Df2,:Gf1,:Ef2,:Ff2,:Df2,:Ef2,:C2,:Df2,:A1,:Af1,:Gf1,:Af1,:Af1,:r,:r,:r,:r,:r,:r,:r,:r,:r,:r,:Df2,:Df2]
b7=[4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,4.0,1.0,1.0,2.0,2.0,1.0,1.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,3.0,1.0,2.0,1.0,1.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,12.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0,4.0,2.0,1.0,1.0,2.0,2.0,2.0,2.0,5.0,1.0,1.0,1.0,5.0,1.0,1.0,1.0,2.0,2.0,3.0,1.0,1.0,1.0,1.0,1.0,2.0,1.0,1.0,2.0,2.0,4.0,4.0,4.0,4.0,4.0,4.0,4.0,2.0,2.0,2.0,2.0,4.0]
in_thread do
plarray(a7,b7,get(:bpm),"Grand Piano",0.4,0.9,1,0,-0.3) #|notes,durations,my_bpm,offsetclass,vol=1,s=0.9,r=1,tp=0,pan=0|
end
end#comment
end#level
end #reverb
@gaotongfei
Copy link

Nice work!

@erdemkaymaz
Copy link

Excellent!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment