Strudelify
I Believe I Can Fly cover art

Milestones - R. Kelly

I Believe I Can Fly

R. Kelly

KeyC majorTempo60 bpm
0:00/0:00
// I Believe I Can Fly — R. Kelly
// 60 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 79 bars on a 48-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once · [...]/2 spreads a riff over 2 bars.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · pad choir · "Pad 4 (Melody)"
const pad_choir = note(`<
  ~@7 A B C D@2 B E F G@3 H I@2 J K L M N O P Q R S C T U V W X Y Z@2 AA@2 AB AC AD AE AF AG AH AI AJ AK@4 AL AM AN@3 AO
  AP AQ AR AS@3 AT@3 AU@3 ~@6
>`.pickRestart({
  A: "~@43 g3@4 ~", B: "g3@6 c4@5 ~ c4@6 d4@5 ~ d4@6 e4@5 ~ e4@6 c4@6", C: "d4@2 ~ d4@39 g3@5 ~, ~ e4 ~@22",
  D: "[g3@6 ~ c4@4 ~ c4@6 d4@5 ~ d4@6 e4@5 e4@6 ~ c4@5 d4@3 ~ d4@39 g3@5 ~, ~@25 e4 ~@22]/2",
  E: "d4@2 ~ d4@2 c4@2 d4@35 g3@5 ~, ~@2 e4@3 ~@43", F: "g3@6 c4@5 ~@2 c4@5 d4@5 ~ d4@6 e4@5 ~ e4@7 c4@5",
  G: "[d4@2 e4@2 d4@19 ~ c4@7 ~ c4@7 ~ b3@7 a3@4 c4@27 a3@6 c4@5 d4@3 ~ e4@2 d4@32 c4@5 ~ c4@6 b3@3 a3@2]/3",
  H: "~ g3@29 c4@6 d4@6 e4@4 f4@2",
  I: "[e4@2 d4@27 e4@2 ~@2 e4@2 ~ e4@4 d4@3 c4@3 ~ c4@31 e4@2 ~ e4@2 ~@2 e4@4 d4@3 c4@3 ~]/2",
  J: "d4@6 c4@2 ~ c4@17 ~ c4@3 e4@2 ~@2 e4@2 e4@2 ~@2 e4 ~ e4@3 ~ e4 ~",
  K: "e4@4 f4@4 ~ f4@21 e4@3 ~ e4@2 e4@6 ~ e4@4 ~", L: "e4@6 d4@2 ~@2 d4@21 e4@2 ~ e4@2 ~@2 e4@3 d4@3 c4@3 ~",
  M: "c4@26 ~@2 c4@2 e4@3 ~ e4 ~@4 d4 ~@2 d4@3 c4@3, ~@36 e4@5 ~@7",
  N: "d4@6 c4@3 d4@5 f4@16 e4@3 e4@2 ~ e4@5 d4@3 c4@3 ~", O: "c4@29 e4@3 ~ e4@2 ~ e4@5 d4@4 c4@3",
  P: "~ d4@5 c4@24 e4@3 ~ e4@2 ~ e4@3 d4@4 c4@3 ~", Q: "c4@2 b3@3 a3@41 ~@2", R: "~@11 g3",
  S: "~ g3@6 c4@4 ~ c4@5 ~ d4@5 ~ d4@6 e4@4 ~ e4@7 c4@6", T: "g3@7 c4@5 ~ c4@5 d4@4 ~@2 d4@6 e4@4 ~@2 e4@6 c4@6",
  U: "~@2 d4@40 g3@5 ~, d4 ~@23, ~ e4@2 ~@45", V: "g3@7 c4@5 c4@6 d4@5 ~ d4@6 e4@5 ~ e4@6 c4@6",
  W: "~@2 d4@39 ~ g3@6, d4 ~@23, ~ e4@2 ~@45", X: "g3@6 c4@5 ~ c4@7 d4@5 d4@6 e4@4 ~@2 e4@6 c4@6",
  Y: "~ e4@2 d4@2 c4@2 d4@16 ~ c4@7 ~ c4@8 b3@6 a3@2, d4 ~@23",
  Z: "[~ c4@29 a3@4 c4@6 d4@3 ~ e4@2 d4@32 c4@3 d4@3 c4@6 b3@3 a3@3]/2",
  AA: "[~ g3@24 ~@5 c4@6 d4@5 e4@3 ~@3 e4@2 d4@28 ~ e4@2 ~ e4@2 ~ e4@5 d4@3 c4@3 ~, ~@30 f4 ~@14 f4@4 ~@47]/2",
  AB: "c4@30 e4@2 ~ e4@2 ~@5 d4@3 c4@4 ~, ~@36 e4@7 ~@5",
  AC: "d4@6 c4@2 ~@2 c4@17 ~ c4@2 e4@3 ~ e4@2 e4@3 ~ e4 ~ e4@3 ~ e4 ~",
  AD: "~ e4@4 f4@4 ~ f4@20 e4@3 ~ e4 ~ e4@5 ~@2 e4@4 ~", AE: "e4@6 d4@2 ~@2 d4@20 e4@2 ~@2 e4@2 ~ e4@4 d4@3 c4@3 ~",
  AF: "c4@26 ~@2 c4@2 e4@3 ~ e4@2 e4@3 d4 d4@2 d4@3 c4@3",
  AG: "d4@5 c4 c4@3 d4@5 f4@16 e4@3 ~ e4@2 e4 ~@3 d4 d4@3 c4 c4@3, ~@37 e4@5 ~@6",
  AH: "c4 c4@29 e4@3 e4 e4@2 ~ e4@4 d4@4 c4@3", AI: "~ d4@3 c4@23 g3@4 d4@3 d4@2 ~@2 d4@4 c4@3 b3@3",
  AJ: "c4@2 b3@2 a3@27 c4@12 g3@5, ~@31 b3 ~@16",
  AK: "[c4@6 d4@2 ~ e4@8 f4@3 e4@3 d4@19 ~@3 g3@6 f3@9 e3@7 g3@4 c4@6 d4@6 c4@24 ~@12 c#4@6 ~@2 c#4@8 c4@6 a#3@4 c#4@29 ~ a#3@5 c#4@5 d#4@3 ~ f4@3]/4",
  AL: "d#4@30 c#4@3 d#4@2 c#4@6 ~ c4@3 a#3@3", AM: "g#3@30 c#4@6 d#4@5 f4@4 g#4@3",
  AN: "[f4@2 d#4@27 ~ f4@2 ~ f4@2 ~ f4@4 d#4@4 c#4@3 c#4@31 f4@3 f4@2 ~ f4@4 d#4@4 c#4@3 d#4@7 c#4@2 ~ c#4@17 ~ c#4@2 ~ f4@3 ~ f4 ~ f4@2 ~@2 f4 ~ f4@2 ~ f4 ~@2, e4 ~@143]/3",
  AO: "f4@3 ~ f#4@4 ~@2 f#4@20 f4@2 ~@2 f4 ~ f4@5 ~ f4@5 ~",
  AP: "f4@6 d#4@2 ~@2 d#4@20 f4@2 ~ f4@2 ~ f4@5 d#4@3 c#4@2 ~@2", AQ: "c#4@28 ~ f4@3 ~@2 f4@2 f4@4 d#4 ~ d#4@4 c#4@2",
  AR: "d#4@6 c#4@3 d#4@5 f#4@15 ~ f4@2 ~ f4@2 ~ f4@4 d#4@3 ~@2 c#4@2 ~",
  AS: "[c#4@29 f4@3 ~ f4@2 ~@2 f4@4 ~@3 c#4 ~@2 d#4@4 c#4@25 f4@3 ~ f4@3 ~ f4@3 d#4@4 c#4@3 ~ c#4@3 c4@2 a#3@36 c#4@8, ~@41 d#4@6 ~@97]/3",
  AT: "[d#4@7 f4@2 g#4@6 ~ g#4@2 ~@6 f#4@13 ~@2 f4@3 f4 d#4@4 c#4@31 ~ f4@8 d#4@6 ~@2 d#4@3 c#4@27 ~ f4@6 d#4@5 ~ c#4@5 ~, ~@20 g#4@8 ~@65 f4@5 ~@46]/3",
  AU: "[c#4@42 g#3@5 c#4@6 d#4@2 ~ f4@7 f#4@2 ~ f4@16 ~@2 f4@4 ~@2 d#4@3 c#4@27 ~@24]/3",
})).s("gm_pad_choir").gain(0.64).pan(0.6)

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note(`<
  A B C D C D E F E G E B H D E I J K L M H J N O P Q R D S T H F L D L G H U P K V M H P M W P K V Q J N X T Y Z AA AB
  AC AD AE AF Y Z AA AG AA AH AA Z AI AH AA AH AI Z AC AJ AK
>`.pickRestart({
  A: "~@6 a#3@7 ~@2 e4, [g2,e4,g4]@47 ~, d4@42 d4@5 ~, a#3@18 ~@21 a#3@7 ~@2, ~@12 g3@35 ~", // C
  B: "~@6 c4@7 ~@2 f4, [g2,f4,g#4]@47 ~, d4@42 d4@5 ~, c4@18 ~@21 c4@7 ~@2, ~@12 g#3@35 ~", // C#
  C: "~@21 d4@2 ~, [g2,e4,g4]@23 ~, [a#3,d4]@13 a#3@2 ~, ~@6 g3@9 ~", // C A#
  D: "c4@36 ~@6 f4@3 g#4@2 ~, [f4,g#4,c5,d5]@43 ~@5, ~@39 c4@7 ~@2", // Dm7b5
  E: "~@6 c4@7 c4!2 e4, [c3,e4,g4]@47 ~, c4@3 ~@5, ~@12 g3@35 ~", // C
  F: "~@21 d4@2 ~, [c3,f4,g#4]@23 ~, [c4,d4]@13 c4@2 ~, ~@6 g#3@9 ~", // Fm Csus2
  G: "~@6 c4@7 ~@2 f4, [c3,f4,g#4]@47 ~, d4@42 d4@5 ~, c4@18 ~@21 c4@7 ~@2, ~@12 g#3@35 ~", // Fm
  H: "~@13 c4!2 ~, [c3,e4,g4]@23 ~, c4@13 ~@3, ~@6 g3@9 ~", // C
  I: "[c4,d4,f4,g#4]@15 ~@3 [d4,f4,g#4]@5 ~ [e2,g#3,c4,d4,e4]@22 ~@2, c3@23 ~@25, ~@15 c4@7 ~@26", // Dm7b5 Ddim Eaug
  J: "~@21 e4@2 ~, [a2,g4,a4]@23 ~, [c4,e4]@13 c4@2 ~, ~@6 a3@9 ~", // A7 C
  K: "~@6 c4@7 ~@2 f4, [g#2,f4,g#4]@47 ~, d4@42 d4@5 ~, c4@18 ~@21 c4@7 ~@2, ~@12 g#3@35 ~", // C#
  L: "[e4,g4,c5]@39 ~@3 e4@3 g4@2 ~, c4@36 ~@3 c4@7 ~@2", // C
  M: "c4@36 ~@6 f4@3 a4@2 ~, [f4,a4,c5,d5]@43 ~@5, ~@39 c4@7 ~@2", // Dm7
  N: "~@21 d4@2 ~, [d3,f4,a4]@23 ~, [c4,d4]@13 c4@2 ~, ~@6 a3@9 ~", // Dm Csus2
  O: "[c4,d4,f4,a4]@15 ~@3 [d4,f4,a4]@5 ~ b3@12 ~@6 d4@5 ~, g2@23 ~ [g#2,f4,g#4]@23 ~, ~@15 c4@7 ~@2 d4@18 ~@6, ~@18 b3@5 ~", // Dm7 Dm C#
  P: "~@6 c4@7 ~@2 g4, [a2,g4,a4]@47 ~, e4@42 e4@5 ~, c4@18 ~@21 c4@7 ~@2, ~@12 a3@35 ~", // A7
  Q: "~@21 d4@2 ~, [g#2,f4,g#4]@23 ~, [c4,d4]@13 c4@2 ~, ~@6 g#3@9 ~", // C# Csus2
  R: "~@13 c4!2 ~, [g2,e4,g4]@23 ~, c4@13 ~@3, ~@6 g3@9 ~", // C
  S: "c4@36 ~@6 g4@3 a4@2 ~, [g4,a4,c5,e5]@43 ~@5, ~@39 c4@7 ~@2", // Am7
  T: "a3@36 ~@6 e4@3 g4@2 ~, [e4,g4,a4,c5]@43 ~@5, ~@39 a3@7 ~@2", U: "[c3,c4,d4,f4,g#4]@11 ~ [e2,g#3,c4,d4,e4]@11 ~",
  V: "~@6 c4@7 c4!2 e4, [g2,e4,g4]@47 ~, c4@3 ~@5, ~@12 g3@35 ~", W: "[g2,c4,d4,f4,a4]@11 ~ [g#2,b3,d4,f4,g#4]@11 ~",
  X: "~@6 c4@7 c4!2 e4, [e3,e4,g4]@47 ~, c4@3 ~@5, ~@12 g3@35 ~", // Em
  Y: "c#4@36 ~@6 g#4@3 a#4@2 ~, [g#4,a#4,c#5,f5]@43 ~@5, ~@39 c#4@7 ~@2", // A#m7
  Z: "~@6 c#4@7 ~@2 f#4, [a2,f#4,a4]@47 ~, d#4@42 d#4@5 ~, c#4@18 ~@21 c#4@7 ~@2, ~@12 a3@35 ~", // D
  AA: "~@6 c#4@7 c#4!2 f4, [g#2,f4,g#4]@47 ~, c#4@3 ~@5, ~@12 g#3@35 ~", // C#
  AB: "~@21 d#4@2 ~, [g#2,f#4,a#4]@23 ~, [c#4,d#4]@13 c#4@2 ~, ~@6 a#3@9 ~", // D#m C#sus2
  AC: "~@6 c#4@7 c#4!2 f4, [c#3,f4,g#4]@47 ~, c#4@3 ~@5, ~@12 g#3@35 ~", // C#
  AD: "~@6 c#4@7 ~@2 g#4, [a#2,g#4,a#4]@47 ~, f4@42 f4@5 ~, c#4@18 ~@21 c#4@7 ~@2, ~@12 a#3@35 ~", // A#7
  AE: "c#4@36 ~@6 f#4@3 a#4@2 ~, [f#4,a#4,c#5,d#5]@43 ~@5, ~@39 c#4@7 ~@2", // D#m7
  AF: "[g#2,c#4,d#4,f#4,a#4]@11 ~ [a2,c4,d#4,f#4,a4]@11 ~", // D#m7 Adim
  AG: "c#4@36 ~@6 f#4@3 a4@2 ~, [f#4,a4,c#5,d#5]@43 ~@5, ~@39 c#4@7 ~@2", // D#m7b5
  AH: "~@21 d#4@2 ~, [a2,f#4,a4]@23 ~, [c#4,d#4]@13 c#4@2 ~, ~@6 a3@9 ~", // D C#sus2
  AI: "[f4,g#4,c#5]@39 ~@3 f4@3 g#4@2 ~, c#4@36 ~@3 c#4@7 ~@2", AJ: "[g#3,c#4,f4]@34 ~@2 [g#3,c#4,f4]@9 ~@3",
  AK: "[g#3,c#4,f4]@15 ~", // C#
})).s("gm_acoustic_guitar_nylon").gain(0.48).pan(0.4)

// other · string ensemble 2 · "Strings"
const string_ensemble_2 = note(`<
  A B@3 C@4 D E F E F G@3 H I F E J@4 K L K M N K F E F E F O F P@2 Q@2 R@3 S T K E U@2 K V@4 W X Y@2 Z AA AB X W AC
  AD@2 W AE@2 AC W AF AG@6
>`.pickRestart({
  A: "~ g5@11 e5@6 c5@6", B: "[d5@18 e5@7 f5@22 g5@24 e5@12 g5@12 g#5@18 ~ g5@6 g#5@11 c6@12 ~]/3",
  C: "[c6@24 g5@11 c6@12 g#5@18 a#5@6 ~ c6@11 d6@12 e6@40 g5@8 g#5@39 ~@10]/4", D: "~ c5@47", E: "d5", F: "c5",
  G: "[d5@47 c5@48 d5@25 c5@13 b4@11]/3", H: "a4", I: "c5@47 ~", J: "[~ e5@46 g5@48 c5@74 g#4@18 ~@5]/4", K: "e5",
  L: "d5 f5", M: "d5@37 ~@11", N: "e5@23 ~", O: "d5@24 c5@23 ~", P: "[~ d5@24 e5@25 ~ b5 ~@44, ~@25 a5@23]/2",
  Q: "[d5@47 c5@49]/2", R: "[d5@47 c5@50 e5@47]/3", S: "d5@47 ~", T: "d5 d#5", U: "[e5@47 d5@49]/2",
  V: "[d5@47 c5@49 ~@48 a#5@48, ~@48 f5@31 ~@17]/4", W: "d#5", X: "f5", Y: "[d#5@47 c#5@49]/2", Z: "a#4",
  AA: "d#5@47 ~", AB: "d#5!2", AC: "c#5", AD: "[d#5@24 ~@23 f5@49, ~@2 f#5@3 ~@3]/2", AE: "[c#5@47 d#5@24 f5@25]/2",
  AF: "~ c#5@24 g#4@15 c#5@8",
  AG: "[a4@12 b4@12 c#5@11 d#5@12 f5@25 g#5@15 c#6@8 a5@12 b5@12 c#6@12 d#6@12 f6@120 ~@25]/6",
})).s("gm_string_ensemble_2").gain(0.41).pan(0.6)

// other · string ensemble 2 · "Strings"
const string_ensemble_2_2 = note(`<
  A B@3 C@4 D E F E F G@3 H I F E J@4 E K L M N F@2 O P O F Q P R S T@2 U@2 V W X E@2 Y@2 E Z@3 AA AB AC AD@2 AE AF AG
  AC@2 AH AI@2 AC AJ@2 AH AC AK AL@6
>`.pickRestart({
  A: "~ e4@11 c4@6 a#3@6", B: "[c4@18 c#4@7 d4@22 e4@24 c4@12 e4@12 f4@18 ~ d4@6 f4@11 g#4@12 ~]/3",
  C: "[a#4@24 e4@11 a#4@12 f4@18 g4@6 ~ g#4@11 c4@12 c4@40 e4@8 f4@39 ~@10]/4", D: "~ a3@47", E: "c4", F: "a3",
  G: "[c4@47 a3@48 c4@25 g#3@13 g#3@11, g#3 ~@143]/3", H: "g3", I: "g#3@47 ~",
  J: "[~ c4@46 e4@48 a3@72 ~ b3 f3@18 ~@5]/4", K: "c4@24 d4@23 ~", L: "c4, e4 ~@47", M: "c4@37 ~@11", N: "c4@23 ~",
  O: "c4, g#3 ~@47", P: "a3@47 ~", Q: "c4@24 g#3@23 ~, g#3 ~@47", R: "g#3 c4@24 d4@23", S: "~@2 g4 g4@45, c4 ~@11",
  T: "[c4@47 a3@49]/2", U: "[c4@47 a3@48 ~]/2", V: "~ c4@47, a3@5 ~@43", W: "c4@47 ~", X: "c4 b3", Y: "[c4@47 c4@49]/2",
  Z: "[c4@47 a3@49 d4@48]/3", AA: "g#4@47 ~, c#4@7 ~@17", AB: "c#4, a4 ~@47", AC: "c#4", AD: "[c#4@47 a#3@49]/2",
  AE: "g#3", AF: "c#4@47 ~", AG: "~ c4, c#4@41 ~@7", AH: "a#3", AI: "[c#4@24 ~@23 c#4@49, ~@2 d#4@3 ~@3]/2",
  AJ: "[a#3@47 c#4@24 c#4@25]/2", AK: "~ a#3@24 f3@15 a#3@8",
  AL: "[f#3@12 f#3@12 a3@11 c#4@12 c#4@25 f4@15 a#4@8 f#4@12 f#4@12 a4@12 c#4@12 c#4@120 ~@25]/6",
})).s("gm_string_ensemble_2").gain(0.47)

// other · string ensemble 2 · "Strings"
const string_ensemble_2_3 = note(`<
  A B@3 C@4 D E F E F G@3 H I F J K@4 J L J M N O F P Q P F R Q S T U@2 V@3 W X J E Y@2 J Z@3 AA AB AC AD@2 AE AF AG AC
  J E AH@2 J AI@2 E J AJ AK@6
>`.pickRestart({
  A: "~ c4@11 a#3@6 g3@6", B: "[g#3@18 a#3@7 c4@22 c4@24 a#3@12 c4@12 d4@18 ~ c4@6 d4@11 f4@12 ~]/3",
  C: "[g4@24 c4@11 g4@12 d4@18 d#4@6 ~ f4@11 g#4@12 a4@40 c4@8 d4@39 ~@10]/4", D: "~ g3@47", E: "g#3", F: "g3",
  G: "[g#3@47 g3@48 g#3@25 e3@13 e3@11, f3 ~@143]/3", H: "e3", I: "f3@47 ~", J: "a3",
  K: "[~ a3@46 c4@48 f3@74 d3@18 ~@5]/4", L: "g#3 c4", M: "g#3@37 ~@11", N: "a3@23 ~", O: "c4", P: "g#3, f3 ~@47",
  Q: "g3@47 ~", R: "g#3@24 f3@23 ~, f3 ~@47", S: "f3 g#3@24 b3@23", T: "~@2 e4 e4@45, g3 ~@11", U: "[g#3@47 g3@49]/2",
  V: "[a3@47 g3@50 a3@47]/3", W: "a3@47 ~", X: "a3 g#3", Y: "[a3@47 g#3@49]/2", Z: "[a3@47 g3@49 c4@48]/3",
  AA: "f4@47 ~, g#3@7 ~@17", AB: "a3, f#4 ~@47", AC: "a#3", AD: "[a#3@47 g#3@49]/2", AE: "f3", AF: "a#3@47 ~",
  AG: "~ a3, a#3@41 ~@7", AH: "[a3@24 ~@23 a#3@49, ~@2 c#4@3 ~@3]/2", AI: "[g#3@47 a3@24 a3@25]/2",
  AJ: "~ g#3@24 c#3@15 g#3@8",
  AK: "[d#3@12 d#3@12 f#3@11 a3@12 a#3@25 c#4@15 g#4@8 d#4@12 d#4@12 f#4@12 a4@12 a#4@120 ~@25]/6",
})).s("gm_string_ensemble_2").gain(0.46).pan(0.6)

// other · cello
const cello = note(`<
  A B@3 C@4 D E F E F G@3 H I F E J@4 K L K M N K F E O E F P O Q R S@2 T@3 U V K E W@2 K X@3 Y Z AA AB@2 AC AD AE AA Z
  E AF@2 Z AG@2 E Z AH AI@6
>`.pickRestart({
  A: "~ a#3@11 g3@6 e3@6", B: "[f3@18 g3@7 g#3@22 a#3@24 g3@12 a#3@12 c4@18 ~ g#3@6 c4@11 d4@12 ~]/3",
  C: "[e4@24 a#3@11 e4@12 c4@18 c4@6 ~ d4@11 f4@12 g4@40 a3@8 c4@39 ~@10]/4", D: "~ e3@47", E: "f3", F: "e3",
  G: "[f3@47 e3@48 f3@25 d3@13 d3@11]/3", H: "c3", I: "d3@47 ~", J: "[~ g3@46 a3@48 d3@74 b2@18 ~@5]/4", K: "g3",
  L: "f3@24 g#3@23 ~", M: "f3@37 ~@11", N: "g3@23 ~", O: "e3@47 ~", P: "f3@24 d3@23 ~", Q: "f3 f3@23 g#3 g#3@23",
  R: "~@2 c4 c4@45, g3 ~@11", S: "[f3@47 e3@49]/2", T: "[f3@47 e3@50 g3@47]/3", U: "f3@47 ~", V: "f3!2",
  W: "[g3@47 f3@49]/2", X: "[f3@47 e3@49 a3@48]/3", Y: "c#4, g#3@7 ~@17", Z: "f#3", AA: "g#3",
  AB: "[f#3@47 f3@49, a#3 ~@95]/2", AC: "c#3", AD: "f#3@47 ~", AE: "f#3!2", AF: "[f#3@24 ~@23 g#3@49, ~@2 a3@3 ~@3]/2",
  AG: "[f3@47 f#3@24 f#3@25]/2", AH: "~ f3@24 a#2@15 f3@8",
  AI: "[c#3@12 c#3@12 d#3@11 f#3@12 g#3@25 a#3@15 f4@8 c#4@12 c#4@12 d#4@12 f#4@12 g#4@120 ~@25]/6",
})).s("gm_cello").gain(0.36).pan(0.3)

// other · cello
const cello_2 = note(`<
  A B@3 C@4 D E F E F G@3 H I F E J@4 K L K M N K F E F E F O F P@2 Q@2 R@3 S T K E U@2 K V@4 W X Y@2 Z AA AB X W AC
  AD@2 W AE@2 AC W AF AG@6
>`.pickRestart({
  A: "~ g3@11 e3@6 c3@6", B: "[d3@18 e3@7 f3@22 g3@24 e3@12 g3@12 g#3@18 ~ g3@6 g#3@11 c4@12 ~]/3",
  C: "[c4@24 g3@11 c4@12 g#3@18 a#3@6 ~ c4@11 d4@12 e4@40 g3@8 g#3@39 ~@10]/4", D: "~ c3@47", E: "d3", F: "c3",
  G: "[d3@47 c3@48 d3@25 c3@13 b2@11]/3", H: "a2", I: "c3@47 ~", J: "[~ e3@46 g3@48 c3@74 g#2@18 ~@5]/4", K: "e3",
  L: "d3 f3", M: "d3@37 ~@11", N: "e3@23 ~", O: "d3@24 c3@23 ~", P: "[~ d3@24 e3@25 ~ b3 ~@44, ~@25 a3@23]/2",
  Q: "[d3@47 c3@49]/2", R: "[d3@47 c3@50 e3@47]/3", S: "d3@47 ~", T: "d3 d#3", U: "[e3@47 d3@49]/2",
  V: "[d3@47 c3@49 ~@48 a#3@48, ~@48 f3@31 ~@17]/4", W: "d#3", X: "f3", Y: "[d#3@47 c#3@49]/2", Z: "a#2",
  AA: "d#3@47 ~", AB: "d#3!2", AC: "c#3", AD: "[d#3@24 ~@23 f3@49, ~@2 f#3@3 ~@3]/2", AE: "[c#3@47 d#3@24 f3@25]/2",
  AF: "~ c#3@24 g#2@15 c#3@8",
  AG: "[a2@12 b2@12 c#3@11 d#3@12 f3@25 g#3@15 c#4@8 a3@12 b3@12 c#4@12 d#4@12 f4@120 ~@25]/6",
})).s("gm_cello").gain(0.44).pan(0.3)

// other · oboe
const oboe = note("<~@3 A B@2 ~@23 C@2 ~@48>".pickRestart({
  A: "~@21 g3@2 ~", B: "[g3@6 c4@5 ~ c4@6 d4@5 d4@7 e4@5 ~ e4@6 c4@5 d4@2 ~ d4@25 ~@21, ~@50 e4 ~@45]/2",
  C: "[~@11 g4@6 d4@6 e4@19 g3@3 ~@2 g3@14 ~@35]/2",
})).s("gm_oboe").gain(0.8)

// bass · contrabass
const bass = note(`<
  A@7 B@8 C D E@3 F D G H D I J@2 K B@8 L M N O@4 P@2 D Q@7 R@2 N I S@2 T U@2 V@3 N W@3 N X@3 N D Y@3
>`.pickRestart({
  A: "g2/7", B: "[~@47 c2@337]/8", C: "~@23 e2@25", D: "a2", E: "[g#2@47 g2@97]/3", F: "c2", G: "~ d2@47",
  H: "g2@24 g#2@23 ~", I: "~ g#2@47", J: "[g2@47 g#2@48 ~]/2", K: "a2@47 g2", L: "~ e2", M: "~ a2@47", N: "g#2",
  O: "[g2@95 c2@49 a2@48]/4", P: "[d2@47 g2@25 g#2@24]/2", Q: "[g#2@47 g2@48 g#2@48 a2@48 d2@48 e2@48 g2@49]/7",
  R: "[a#2@13 a2@11]/2", S: "[c#2@47 a#2@48 ~]/2", T: "d#2", U: "[g#2@24 a2@23 a#2@48 ~]/2",
  V: "[a2@47 ~@49 a2@48, a#2 ~@46 g#2@53 ~@44]/3", W: "[~ a2@46 g#2@48 a2@49]/3", X: "[a2@47 g#2@48 a2@49]/3",
  Y: "[c#2@5 ~]/3",
})).s("gm_contrabass").gain(0.72).pan(0.6)

// other · bassoon
const bassoon = note("<~@6 A@2 ~@71>".pickRestart({
  A: "[~@11 g5@5 b4@6 c5@16 g4@5 g#4 ~@3 g4@2 g#4@30 ~@17, ~@45 a#4@2 ~@49, ~@23 g#4 ~@24]/2",
})).s("gm_bassoon").gain(0.64)

// chords · electric guitar jazz · "Elec. Guitar" · F#m G#m B C# C#5
const electric_guitar_jazz = note(`<
  ~@75
  [[f#3,a3]@6 [g#3,b3]@5 ~ a3@6 [b3,d#4]@6 [c#4,f4]@5 ~ d#4@5 ~ f4@5 ~ f#4@6, ~@11 c#4@7 ~@11 f#4@6 g#4@6 a4@7]
// … 41 more lines

More by R. Kelly