Strudelify

I'm a Singer, This Is the Moment (medley)

Rene Froger

KeyF majorTempo66 bpm
0:00/0:00
// I'm a Singer, This Is the Moment (medley) — Rene Froger
// 66 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 47 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(66/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.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A B A C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC@2 AD AE AF AG AH AI AJ AK AL AM AN AM AO AP AQ ~
>`.pickRestart({
  A: "[c4,d4,f4]@7 ~@5 f3@4 [bb3,d4,f4]@8 ~@4 f3@4, bb2@15 ~ bb2@16, ~@8 [c4,d4,f4]@7 ~@9 [bb3,d4,f4]@7 ~", // Dm7 Bb Dm7 Bb
  B: "[c4,d4,f4]@7 ~@5 f3@4 [bb3,d4,f4]@8 [bb3,d4,f4]@7 ~, bb2@15 ~ bb2@16, ~@8 [c4,d4,f4]@7 ~@17", // Dm7 Bb Dm7
  C: "[a3,bb3,d4]@7 ~@5 d3@4 [g3,bb3,d4]@8 g3@4 ~@2 g3@2, g2@15 ~ g2@16, ~@8 [a3,bb3,d4]@7 ~@9 [bb3,d4]@7 ~, ~@7 d3", // Bbmaj7 Gm Bbmaj7 Bb
  D: "[g3,bb3,eb4]@7 ~@5 c3@4 [eb4,g4,d5]@4 [eb4,g4,c5]@4 [c4,eb4,bb4]@3 ~ [c3,c4,eb4,g4]@4, c2@15 ~ c2@16, ~@8 [g3,bb3,eb4]@7 ~@17", // Eb Ebmaj7 Cm Cm7 Cm Eb
  E: "[bb3,eb4,g4]@7 ~ [bb3,eb4,g4]@7 ~ [a3,c4,f4]@7 ~@5 g3@2 eb3@2, f2@15 ~ f2@15 ~, ~@24 [a3,c4,f4]@7 ~", // Eb F
  F: "[a3,c4,f4]@7 ~ f4@4 f4@4 d4@4 d4@4 ~@4 f4@4, d2@15 ~ g2@16, ~@8 [a3,c4]@7 ~ [g3,bb3]@7 ~ [g3,bb3,d4]@7 ~", // F Am Gm
  G: "[c4,f4]@7 ~ [c4,f4]@3 ~ [c4,f4,c5]@4 [d4,f4,bb4]@8 ~@4 f4@4, d2@15 ~ g2@16, a3@11 ~@13 [f3,bb3,d4]@7 ~", // F5 Bb
  H: "[g3,bb3,eb4]@8 [g3,bb3,eb4]@7 ~ [g3,bb3,eb4]@7 ~ [eb4,g4,bb4,d5]@6 c5@2, c2!2", // Eb Ebmaj7
  I: "[bb3,eb4,g4]@8 [eb4,g4]@7 ~ [a3,c4,f4]@7 ~ f4@8, f2@3 ~ f2@4", // Eb F
  J: "[d4,f4,c5]@4 d4@2 ~@2 [d4,f4,c5]@4 [d4,f4,c5]@2 c5 bb4, bb2@3 d4 ~@3 [d4,f4], ~@8 [f4,bb4]@6 bb2@17 ~", // Dm7 Dm Bb5
  K: "~@4 bb3@4 ~@6 f2 ~ bb3@2 ~@4 f2 ~@5 f3@3 ~, f2@6 a3@2 ~ [f3,eb4]@3 ~@4, [c4,eb4,bb4]@7 ~ [f3,c4,f4,a4]@8 [f2,g4]@7 ~ [f2,f4,a4]@8, ~@10 bb3@2 ~ c4@3", // F7 Cm7 F Fsus2 F
  L: "[c4,d4,f4]@7 ~@5 f3@4 [bb3,d4,f4]@8 ~@6 f4@2, bb2@15 ~ bb2@16, ~@8 [c4,d4,f4]@7 ~@9 [bb3,d4,f4]@7 ~, ~@7 f3", // Dm7 Bb Dm7 Bb
  M: "[a3,bb3,d4]@7 ~ [a3,bb3,d4]@7 ~ g3@4 g3@3 ~ [bb3,d4,g4]@4 [d3,g4,bb4,d5]@4, g2@15 ~ g2@16, ~@2 [bb3,d4] ~", // Bbmaj7 Gm Bb
  N: "[g3,c4,eb4]@7 ~@5 c3@4 [g3,b3,eb4]@7 ~@5 c3@4, c2@15 ~ c2@16, ~@8 [g3,c4,eb4]@7 ~@9 [g3,bb3,eb4]@7 ~", // Cm Gaug Cm Eb
  O: "[bb3,eb4,g4]@7 ~ [g4,bb4,eb5,g5]@8 [a3,c4,f4]@7 ~ [a3,c4,f4]@7 ~, f2@15 ~ f2@15 ~", // Eb F
  P: "[a3,c4,f4]@7 ~ f4@4 f4@4 d4@4 ~@4 d5@4 f4@4, d2@15 ~ [g2,g3,bb3]@16, ~@8 [a3,c4]@7 ~@7 g4@6 ~@4", // F Gm Am
  Q: "[a3,c4,f4]@7 ~ f4@4 f4@4 d4@4 ~@8 d4@4, d2@15 ~ [g2,g3,bb3]@16, ~@8 [a3,c4]@7 ~@7 g4@6 ~@4, ~@24 d5@7 ~", // F Gm Am
  R: "[g3,bb3,eb4]@8 [g3,bb3,eb4]@7 ~ eb4@2 ~@4 c5@2 [g4,bb4,eb5,g5]@8, c2!2, ~@16 [g3,bb3]@7 ~@9, ~@5 g4 ~@2", // Eb Gm
  S: "[bb3,eb4,g4]@8 [bb3,eb4,g4]@7 ~@13 c4@4, c2@3 ~ f2@4, ~@16 [bb3,eb4]@6 c5@9 ~, ~@4 g4!2 ~@2, ~@18 f4@5 ~ [f4,a4]@7 ~", // Eb Eb5 F
  T: "[eb4,f4,bb4]@8 f4@3 ~@5 [c4,f4,bb4]@8 [d4,f4,bb4]@8, bb2@3 f4 ~@4, ~@8 [d4,bb4]@6 bb2@17 ~", // Ebsus2 Fsus4 Bb Gm
  U: "[c4,f4,bb4]@8 f4@3 ~ [bb2,f4]@4 [c4,f4,bb4]@6 bb2 ~ [bb2,d4,f4,bb4]@8, bb2@12 ~@4 bb2@5 ~@11, ~ [bb3,bb4] ~@2", // Fsus4 Bb5 Fsus4 Bb
  V: "gb3@3 ~ gb3@3 ~ [gb3,bb3,db4]@3 ~ [bb3,db4]@2 gb3@2 ab3@3 ~ ab3@3 ~@3 c4@2 ~@2 ab3@2, gb2@15 ~ ab2@16, [bb3,db4]@7 ~@9 eb4@11 ~ [c4,eb4]@4, ~@4 c4@2 ab3 ~", // Gb Bbm Cm
  W: "[ab3,c4,eb4]@4 ab3@2 eb4@2 ab3@3 ~ ab3@4 [bb3,eb4,f4]@7 ~ d4@2 ~@2 bb4@4, f2@15 ~ bb2@16, ~@8 [eb4,ab4]@7 ~@9 [ab3,f4]@7 ~, ~@13 d4@3", // Ab Bbsus4 Ab5 Db
  X: "[bb3,db4,gb4]@4 ~@2 [db4,gb4,bb4]@6 [bb3,db4,gb4]@4 [bb3,db4,gb4]@7 ~ [c4,eb4,ab4]@7 ~, eb3 ab2", // Gb Ab
  Y: "[db3,ab3,c4,f4]@2 db3 ~ [ab2,gb3,bb3,eb4]@2 [db3,ab3,f4] ~@3 [ab2,bb3]@2 ~@2 [db3,ab3,c4,f4]@16 ~@2, ~@6 c4@2 ~@2 [gb3,eb4] ~@21", // Dbmaj7 Ebm Db Absus2 Dbmaj7 Ebm
  Z: "gb3@8 gb3@3 ~ [gb4,bb4]@2 db4@2 eb4@3 ~@3 c5@2 ~@2 c4@2 ~@2 ab3@2, gb2@15 ~ gb2@16, [bb3,db4]@11 ~@5 [ab4,c5]@7 ~ ab4@4 ~@4, ~@5 eb4 ~ [c4,eb4]", // Gb Bbm Ab Cm
  AA: "[ab3,c4,eb4]@4 ab3@2 eb4@2 ab3@3 ~ ab3@4 ~@4 c4@4 bb3@3 ~ bb3@4, f2@15 ~ bb2@16, ~@8 [eb4,ab4]@7 ~ [bb3,eb4,f4]@7 ~ [d4,f4]@8", // Ab Ab5 Bbsus4 Dm
  AB: "[bb3,db4,gb4]@2 ~ [db4,gb4,bb4]@3 [bb3,db4,gb4]@2 ~@2 bb4 [eb4,gb4,bb4,eb5]@2 [db4,bb4] [bb3,gb4]@2, eb3!2, ~@8 db4@3 ~@5, ~@9 gb4@2 ~@5", // Gb Ebm Gb Ebm
  AC: "[[f2,bb3,c4,eb4,f4]@63 ~]/2", // Fsus4
  AD: "[c4,f4,bb4]@7 ~ [c4,f4,a4]@8 [d4,g4,c5]@7 ~ [d4,g4,b4,d5]@7 ~, f2@15 ~ g2@15 ~", // Fsus4 F Csus2 G
  AE: "[d4,e4,g4]@7 ~@5 g3@4 [e4,g4]@6 ~@2 g4@3 ~ [c4,e4,g4]@4, c3@15 ~ c3@16, ~@8 [d4,e4,g4]@7 ~ c4@4 ~@2 e4@5 ~@5", // Em7 Em C Em7
  AF: "[b3,c4,e4]@7 ~ [b3,c4,e4]@7 ~ [a3,c4]@5 ~@3 e4@2 a3@2 ~@2 a3@2, a2@15 ~ a2@16, ~@4 e4@2 ~ [e3,e4]", // Cmaj7 Am E
  AG: "[e4,g4]@4 a3@2 a3@3 ~@5 e4 ~ [a3,d4,f4]@6 f4@2 ~@4 [d3,d4]@4, d2@15 ~ d2@16, c4@3 ~@3 [c4,f4]@6 [d3,c4]@4 ~@16, ~@5 a3@3 ~@4 c5@4", // Em Dm D F5 D7
  AH: "[c4,f4,a4]@6 c5@2 f4@3 ~ f4@4 [c4,f4,a4]@7 ~ [d4,g4,b4]@7 ~, g2@15 ~ g2@15 ~, ~ [c4,a4] ~@2", // F G F
  AI: "[b3,d4,g4]@7 ~ g4@4 g4@4 ~@2 b4@2 e5@2 [c5,a5]@2 [c5,g5]@7 ~, e2@15 ~ [a2,a3,c4]@16, ~@8 [b3,d4]@7 ~ e4@4 ~@12", // G F C5 Am Bm
  AJ: "[b3,d4,g4]@7 ~ g4@4 g4@4 ~@2 b4@2 e5@2 [c5,a5]@2 ~@4 e4@4, e2@15 ~ [a2,a3,c4]@16, ~@8 [b3,d4]@7 ~ e4@4 ~@4 [c5,g5]@8", // G F Am Bm C5
  AK: "a3@3 ~@5 [a3,c4]@7 ~ [a3,c4,f4]@6 ~@6 d4@4, d2!2, [c4,f4]@6 f4@9 ~@7 [f4,d5]@10, ~@4 a3@4 ~@16 a4@7 ~", // Am F F5 Dm
  AL: "[d4,f4]@3 ~@3 a4@2 ~@6 d4@2, d2@3 ~ g2@4, a3@3 ~@3 e4@6 ~@4 [a3,c4]@6 d5@9 ~, ~@8 f4@7 ~ f4@4 f4@4 [g4,b4]@7 ~, ~@18 e4@5 ~@9", // Dm Am G
  AM: "c4@4 c4@4 c4@3 ~ c4@2 ~@2 c4@3 ~@9 c4@4, c3@13 ~ c3@17 ~, [f4,a4]@8 [f4,a4]@7 ~ [e4,g4]@8 [e4,g4]@8, ~@20 c4@7 ~@5", // F Em
  AN: "[g2,c4,e4,g4]@7 ~ [g2,b3,d4,g4]@8 ~@4 [f2,a3,c4,f4]@4 ~@4 [g2,b3,d4,g4]@4", // C G F G
  AO: "[g2,c4,e4,g4]@7 ~ [g2,b3,d4,g4]@8 ~@4 [f2,a3,c4,f4]@4 [f2,a3,c4,f4]@4 [g2,b3,d4,g4]@4", // C G F G
  AP: "[c3,c4,d4,f4,a4]@31 ~", AQ: "[c3,e4,g4,c5]@31 ~",
})).s("gm_piano").gain(0.48)

// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<~ A ~@2 B C D@2 E F ~@4 G H I J K ~@5 L ~@3 L ~@3 M N O P Q@2 R S ~@7>".pickRestart({
  A: "~@5 f3 ~ f3", B: "~ c3 ~@3 c3 ~@2", C: "~ f3 ~ f3 ~ f3 ~@2", D: "~ d3 ~@6", E: "~@3 c3 ~ c3 ~@2",
  F: "~@7 g3, ~@8 bb3@7 ~@9 [a3,c4]@7 ~, ~@12 f3@19 ~", G: "~ c3 ~@6", H: "~ f3 ~ f3 ~@3 f3",
  I: "~@4 d3@4 ~@12 d4@11 ~", J: "~ d3 ~@3 d4@2 ~", K: "~@3 c3 ~ c3 ~@2, ~@9 eb4@3 ~@4", L: "~@2 bb3 ~@13",
  M: "~@20 c4@7 ~@5", N: "~@11 c4 ~@4, ~@5 a3 ~@2", O: "~@4 d3@4 ~@12 c4@5 ~@7", P: "~ g3 ~ g3 ~@3 g3", Q: "~ e3 ~@6",
  R: "~@3 d3 ~ d3 ~@2", S: "~@4 a3@11 ~@17",
})).s("gm_piano").gain(0.24)

// bass · electric bass finger · "FINGERDBAS"
const bass = note(`<
  A B C D E F G H I J K J L M N O P Q R S T U V W X Y Z AA AB AC@2 AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ AR ~
>`.pickRestart({
  A: "bb1@27 ~ f1@4", B: "bb1@22 ~@2 bb1@7 ~", C: "bb1@15 ~", D: "g1@23 ~ g2@4 g1 ~ g2@2", E: "c2@23 ~ c2@7 ~",
  F: "f1@15 ~ f1@15 ~", G: "d1@15 ~ g1@15 ~", H: "d1@10 ~@2 d1@3 ~ g1@15 ~", I: "c2@28 ~@2 c2 ~",
  J: "f1@11 ~ f1@3 ~ f2@7 ~ f1@7 ~", K: "bb1@15 ~ bb1@15 ~", L: "bb1@10 ~@2 bb1@3 ~ bb1@10 ~@2 bb1@3 ~",
  M: "g1@10 ~@2 g1@3 ~ g1@7 ~ g2@3 ~ d2 ~ g1@2", N: "c2@10 ~@2 c2@3 ~ c2@10 ~@2 c2 ~ c2@2",
  O: "f2@10 ~@2 f2@3 ~ f1@10 ~@2 f1 ~ f1 ~", P: "d1@10 ~@2 d1@3 ~ g1@10 ~@2 g1 ~ d2@2",
  Q: "d1@10 ~@2 d1@3 ~ g1@10 ~@2 g1@3 ~", R: "c2@10 ~@2 c2@3 ~ c2@10 ~@2 c2 ~ g1@2",
  S: "c2@9 ~ c2 ~ g1@3 ~ f1@7 ~ f2@7 ~", T: "bb1@10 ~@2 bb1@2 ~@2 bb1@10 ~@2 bb1 ~ f1@2",
  U: "bb1@7 ~ bb1@2 ~@2 bb1@2 ~@2 bb1@6 ~@2 bb1@3 ~ bb1 ~ f1@2", V: "gb1@10 ~@2 gb1@3 ~ ab1@10 ~@2 ab1 ~ gb1@2",
  W: "f1@10 ~@2 f1@3 ~ bb1@7 ~ bb1@3 ~ f1 ~ bb1@2", X: "eb1@10 ~@2 eb1@3 ~ ab1@7 ~ ab1@7 ~",
  Y: "db2 ~ db2 ~ ab1@2 db2 ~@3 ab1 ~@3 db2@17 ~", Z: "gb1@10 ~@2 gb1@3 ~ gb1@7 ~ gb1@7 ~",
  AA: "f1@10 ~@2 f1@3 ~ bb1@7 ~ bb1@4 f1 ~ bb1@2", AB: "eb1@10 ~@2 eb1@3 ~ eb1@8 ~@2 eb1 ~ eb1@3 ~", AC: "[f1@31 ~]/2",
  AD: "f1@15 ~ g1@3 ~ g1@7 ~ g1 ~ g1@2", AE: "c2@10 ~@2 c2@3 ~ c2@10 ~@2 c2@3 ~",
  AF: "a1@10 ~@2 a1@3 ~ a1@10 g1 ~ a1@3 ~", AG: "d1@10 ~@2 d1@3 ~ d1@10 ~@2 d1 ~ d1@2",
  AH: "g1@10 ~@2 g1@3 ~ g1@5 ~ d2 ~ g2 ~ d2 ~ g1@4", AI: "e1@10 ~@2 e1@2 ~@2 a1@10 ~@2 a1@3 ~",
  AJ: "e1@10 ~@2 e1@3 ~ a1@9 ~ a1 ~ a1@3 ~", AK: "d2@5 ~ d2 ~ c2@5 ~ c2 ~",
  AL: "d2@10 ~@2 d2@2 ~@2 g1@7 ~ g2@3 ~ g1 ~ g2@2", AM: "c2@5 ~ c2 ~ c2@5 ~ c2 ~",
  AN: "g1@6 ~@2 g1@8 ~@4 f1@5 ~@3 g1@3 ~", AO: "c2@10 ~@2 c2@2 ~@2 c2@10 ~@2 c2@3 ~",
  AP: "g1@6 ~@2 g1@8 ~@4 f1@3 ~ f1@3 ~ g1@3 ~", AQ: "c2@23 ~ c2@6 ~@2", AR: "c2",
})).s("gm_electric_bass_finger").gain(0.3)

// other · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2 = note("<~@16 A@2 B@2 C D@4 E@2 F@2 ~@2 G H I@2 J K L@2 M N@3 O P@2 ~>".pickRestart({
  A: "[f5@12 c6@4 bb5@15 f5@12 c6@5 d6@16]/2", B: "[eb6@10 d6@2 c6@2 g5@2 eb5@32 g5@7 a5@9]/2",
  C: "eb6@8 d6@7 c6@9 d6@8", D: "[c6@8 bb5@8 c6@8 d6@7 db6@17 eb6@39 f6@8 gb6@24 ~ eb6@8]/4",
  E: "[f6@2 f6@2 ~ f6@2 ~@2 eb6@2 ~@2 f6@18 bb5@24 ~ c6@8, ~@2 eb6 ~@29]/2",
  F: "[ab5@24 bb5@7 gb5@19 f5@3 eb5@3 bb4@8]/2", G: "c5 bb4 f4 c5 a4 f4 c5 f5 d5 c5 g4 c5 d5 g4 g5 b5", H: "c6@6 e6 a6",
  I: "[g6@16 e6@8 c6@7 a5@13 ~ a5@10 f6@3 e6@2 c6@2 a5@2, ~@22 c6 ~@9]/2", J: "c6@8 e6 d6 b5 g5 c6 b5 g5 d5",
  K: "g5@11 d5@3 ~ c6@17, ~@7 e5 ~@8", L: "[g4@2 d5@2 g5@4 g6@6 d6@2 e6@15 f6@11 ~ d6@2 a5@2 f5@16 ~, ~@21 e6 ~@10]/2",
  M: "f4@2 a4@2 d5@2 a5@2 f5@2 d6@2 a5@11 b5@5 g5@4",
  N: "[c6@25 g5@3 c6@2 e6@10 d6@10 ~@2 c6@8 d6@3 f6@18 e6@2 c6@2 g5@2 e5@3 d5@2 c5@2 g4@2]/3",
  O: "e5@8 d5@9 ~@2 c5@4 ~ c5@4 d5@4", P: "[c6@63 ~]/2",
})).s("gm_string_ensemble_2").gain(0.48).pan(0.3)

// other · french horn · "FR.HORN"
const french_horn = note("<~@16 A@8 B@2 C@7 D E F G H@3 I@7>".pickRestart({
  A: "[~@21 c4@16 d4@16 c4@16 d4@16 eb4@48 eb4@8 f4@8 eb4@7 ~ d4@8 c4@7 ~ d4@8 c4@7 ~ bb3@8 c4@8 d4@7 ~ bb3@15 ~ c4@27]/8",
  B: "[~@5 eb4@7 ~ d4@7 ~ db4@15 ~ db4@7 ~ eb4@7 ~ [c4,f4]@4 eb4@2 [c4,f4]@2 ~@2 [bb3,eb4], ~@57 bb3 ~@6]/2", // F5 Eb5
  C: "[~@3 [c4,f4]@18 db4@15 ~ eb4@31 ~ eb4@8 d4@7 ~ db4@31 ~ bb3@63 ~ bb3@7 ~ a3@7 ~ c4@7 ~ b3@8 ~@8 e4@3]/7", // F5
  D: "~ a4@4 g4@23 ~ e4@3", E: "~ b4@4 g4@15 ~ g4@6 f4@5", F: "~ c5@4 a4@27", G: "~ f4@4 g4 ~@3 g4@12 b3@11",
  H: "[~@5 c4@16 d4@16 c4@47 ~ d4@11]/3",
  I: "[~@5 c4@8 b3@7 ~ [c4,g4]@31 ~ c4@8 b3@8 ~@4 [a3,f4]@6 ~@2 b3@4 c4@31 ~ c4@8 b3@8 ~@4 [a3,f4]@3 ~ [a3,f4]@4 [b3,g4]@3 ~ [c4,a4]@30 ~@2 [c4,g4]@32 ~@11, ~@53 g4@16 ~@12 g4@35 ~ g4@16 ~@91]/7", // C5 Dm Em F C5
})).s("gm_french_horn").gain(0.48).pan(0.6)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note("<~@20 A B C D E F G D H I@2 J K L M N O@2 P@2 Q R Q S K T ~>".pickRestart({
  A: "bb2@31 ~", B: "bb2", C: "gb2@16 ab2@15 gb2", D: "f2@16 bb2@15 ab2",
  E: "eb3@11 ~ eb3@3 f3 ab3@8 ab3@5 g3 ~ f3, ~@15 gb3",
  F: "[db3,ab3,c4,f4]@2 [db3,ab3,c4,f4] ~ [ab2,bb3,eb4]@2 [db3,ab3,c4,f4]@2 ~@2 [ab2,gb3,bb3,eb4]@2 ~@2 [db3,ab3,c4,f4]@17 ~", // Dbmaj7 Absus2 Dbmaj7 Ebm Dbmaj7
  G: "gb2@12 gb2@4 gb2@15 gb2", H: "eb3@23 ~ eb3@5 d3 ~ c3, ~@15 db3", I: "f2/2",
  J: "[f2,c3,f3]@15 ~ [g2,d3,g3]@7 ~ [g2,d3,g3]@8", K: "c3@31 ~", L: "a2", M: "d3@31 ~", N: "g2@31 f2",
  O: "[e2,b2]@16 a2@15 g2", P: "[d3@16 c3@15 ~ d3@15 c3 g2@15 ~, ~@31 db3@2 ~@31]/2", Q: "c3@15 ~ c3@14 a2 ab2",
  R: "g2@7 ~ g2@12 f2@8 g2@4", S: "g2@7 ~ g2@9 ~@3 f2@3 ~ f2@4 g2@4", T: "c3",
})).s("gm_overdriven_guitar").gain(0.33).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE" · soft notes
const overdriven_guitar_soft = note("<~@22 A B C D A B ~@7 E F@2 ~ G ~@7>".pickRestart({
  A: "~@30 g2 ~", B: "~@30 a2 ~", C: "~@14 e3 ~@17", D: "~@2 gb3 ~@13", E: "~@30 gb2 ~", F: "~@30 ab2 ~",
  G: "~@14 db3 ~@17",
})).s("gm_overdriven_guitar").gain(0.2).pan(0.3)

// chords · string ensemble 2 · "SLOWSTRING"
const string_ensemble_2_2 = note("<~@11 A@6 B@8 C@6 D@3 E@6 F@2 G@2 H I ~>".pickRestart({
  A: "[~@95 c4@16 b3@9 bb3@23 ~ [a3,f4]@31 ~ [bb3,g4]@15 [a3,c4], ~@31 d4@64 eb4@48 ~@32 d4@16 ~, ~@31 c4@17 bb3@48 ~@47 c4@33 ~@16, ~@2 f3@2 g3@5 ~@3]/6", // Dm Eb Am
  B: "[f4@16 d4@15 eb4@57 [c4,a4]@7 eb5@8 ~ d5@8 c5@8 d5@8 c5@8 bb4@8 c5@8 d5@7 ~ [bb3,gb4]@16 c4@32 bb3@8 [d4,f4,bb4]@7 [bb3,db4,gb4]@24 ~ ab4@8, ~@2 [bb3,g4]@9 f4@9 ~@2 [eb4,ab4]@5 ~@5, ~@95 bb3@64 db4@17 ~@71 [c4,eb4]@8 ~]/8", // F Ebm Bb Gb Eb Ab5 Cm
  C: "[[c4,f4,ab4]@4 [bb3,gb4]@2 [c4,f4,ab4]@2 ~@2 [bb3,eb4,gb4]@2 ~@2 [c4,f4,ab4]@17 ~ bb3@16 ~@32 bb3@8 [d4,f4,bb4]@7 [db4,gb4,bb4]@32 f3@16 ~ c4@15 f3@16 c4@16 bb4, ~@31 db4@17 eb4@40 ~@39 f4@64 ~, ~@4 gb4@3 ab4@4 ~@13, ~@3 c4@2 ~@7]/6", // Fm Ebm Fm Ebm Fm Bb Gb
  D: "[eb4@7 ~ c4@7 ~ [f4,c5]@8 [d4,b4]@7 ~@17 c4@16 b3@15 ~ a3@15 g4, f4@15 g4@16 e4@65, ~@7 a4@9 ~@15 d4@17 ~@31 c4@16 ~, ~@32 g3@49 ~@15]/3", // F5 G
  E: "[c4@5 ~ [a3,c4]@41 ~ [b3,g4]@31 ~ [c4,a4]@15 ~ g4@16 e4@15 ~@16 d4@17 c4@24 [d4,g4,b4]@8, ~@5 f4@42 d4@32 e4@16 [b3,d4]@17 a4@73 ~@7, ~@7 c4@2 ~@3, ~@127 f4@57 ~@8]/6", // Am Em F G Bm
  F: "[f4@16 e4@15 ~ [c4,e4]@8 b3@9 ~@2 [a3,c4,f4]@8 [b3,d4,g4]@4 ~, g4@49 ~@15, c4@31 ~@33]/2", // C F G
  G: "[f4@16 e4@15 ~ [c4,e4]@8 [b3,d4]@9 ~@2 [a3,c4,f4]@8 [b3,d4,g4]@4 ~, g4@49 ~@15, c4@31 ~@33]/2", H: "[d4,f4,c5]",
  I: "[c4,e4,c5]@31 ~", // C
})).s("gm_string_ensemble_2").gain(0.4)

// other · lead 2 sawtooth · "SAW WAVE"
const lead_2_sawtooth = note(`<
  ~@29
  [~ f3 c4 f4 ~ f3 bb3 c4 ~ f3 c4 f4 ~ f3 bb3 c4]
  [~ f3 c4 f4 ~ f3 bb3 c4 ~ f3 c4 f4 ~ f3 c4 f3]
  ~@16
>`).s("gm_lead_2_sawtooth").gain(0.24)

// chords · orchestral harp · "HARP"
const orchestral_harp = note("<~ A@2 ~@5 B ~@38>".pickRestart({
  A: "[~@27 f4 bb4 ~@3 f6@7 ~@25, ~@25 f3@3 ~@2 bb5@8 ~@26, ~@26 c4@2 ~ f5@9 ~@26, ~@31 c6@8 ~@25]/2",
  B: "~@6 g5@2 c4@7 ~@17",
})).s("gm_orchestral_harp").gain(0.32).pan(0.3)

// other · timpani
const timpani = note("<~@31 A B ~@8 A B C D B ~>".pickRestart({
  A: "~@28 g2!4", B: "c3@3 ~@29", C: "~@20 f2 ~@3 f2 ~@3 g2!4", D: "c3@3 ~@28 g2",
})).s("gm_timpani").gain(0.4)

// other · timpani · soft notes
const timpani_soft = note("<~@44 [~@28 g2!3 ~] ~@2>").s("gm_timpani").gain(0.16)

// other · pad new age · "FANTASIA"
const pad_new_age = note("<~@12 A@2 B@2 ~@31>".pickRestart({
  A: "[~@6 d6 g6 f6@14 d6 a6 f6@8]/2", B: "[~@6 eb6 bb6 g6@15 d6 f6@8]/2",
})).s("gm_pad_new_age").gain(0.32).pan(0.3)

// drums · kick
const kick = s("bd").struct("<~@12 A@9 B A@3 C A@2 D E ~ F A@3 G A@5 H A I E@2 ~>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~ x ~", C: "x ~@2 x ~ x ~ x ~@8", D: "x ~@2 x!2 ~@2 x", E: "x", F: "x!2",
  G: "x ~@2 x ~@2 x ~ x ~@7", H: "x ~ x ~@2 x ~ x", I: "x ~ x ~@2 x!3",
})).gain(0.56)

// drums · snare
const snare = s("sd").struct("<~@12 A@9 B A@3 C A@3 ~@2 D A@7 E A F A G ~@3>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@4 x!2 ~ x ~@3", C: "x!4 ~ x ~ x ~@5 x ~@2", D: "~@5 x!2 ~@2 x ~@6", E: "~@4 x ~@7 x ~ x!2",
  F: "~@2 x ~@4 x", G: "~@2 x ~@2 x!3",
})).gain(0.56)

// drums · low tom
const low_tom = s("lt").struct("<~@28 A ~@2 B ~@3 C ~@4 A D E ~@4>".pickRestart({
  A: "~@7 x", B: "~@10 x ~ x ~@2 x", C: "~@13 x ~@2", D: "~@5 x ~@2", E: "~@14 x!2",
})).gain(0.48)

// drums · hihat
const hihat = s("hh").struct("<~@12 A B C D A B C E F G H D I J A B K ~@2 L A D C M F C N D F O P Q ~@3>".pickRestart({
  A: "~ x!7", B: "x ~ x ~ x ~ x ~ x ~ x ~ x ~@2 x", C: "x!8", D: "x!7 ~", E: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~",
  F: "~ x!2 ~ x ~ x ~ x ~ x ~ x ~ x ~", G: "x ~ x ~ x!2 ~@2 x ~@7", H: "~@2 x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  I: "x ~ x ~ x ~ x!3 ~ x ~ x ~@3", J: "x", K: "x ~ x ~ x ~ x ~ x ~ x ~ x!2 ~@2", L: "~ x!2 ~@5", M: "x!6 ~@2",
  N: "x!6 ~ x", O: "~ x ~@6", P: "~@2 x!3 ~ x ~ x ~ x ~@3 x ~", Q: "~@2 x!2 ~@12",
})).gain(0.4)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@13 A ~ B ~ A C ~@3 B D B E B A F G ~@3 B ~ H I ~@2 J ~@7>".pickRestart({
  A: "~@7 x", B: "~@13 x ~@2", C: "~@9 x ~@6", D: "~@9 x ~@3 x ~@2", E: "~@9 x ~@2 x ~@3", F: "~ x ~@7 x ~@6", G: "x",
  H: "~ x ~@14", I: "x ~@8 x ~@6", J: "~@3 x ~ x ~@10",
})).gain(0.24)
// … 34 more lines

More by Rene Froger