Strudelify

You Got It

Roy Orbison

KeyA♭ majorTempo118 bpm
0:00/0:00
// You Got It — Roy Orbison
// 118 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 122 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): P12-Overdriven Guitar.
setcpm(118/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 · tenor sax · "P1-Tenor Sax 2"
const tenor_sax = note(`<
  ~@4 A B C ~ A D C E@5 F@4 G H I@2 J@2 K L@2 A M C ~ A N C E@5 F@4 G H I@2 J@2 O L@2 P Q@2 R S@2 ~@9 A B C ~ A D C T@8
  U V H I@2 W@2 O L@2 G H I@2 J@2 O L@2 G H I@2 X@2 O L@2 ~@10
>`.pickRestart({
  A: "ab4 ~ ab4 ~ ab4 ~ ab4 ~ ab4@4 eb4@3 ~", B: "gb4@3 ~ gb4@4 f4@4 f4@4", C: "f4 eb4@7, e4 ~@15",
  D: "gb4@3 ~ gb4@3 ~ f4@3 ~ f4@3 ~, f4 ~@7 e4 ~@7",
  E: "[~@12 ab4@2 ab4@13 ~ bb4@2 ab4@13 ~ bb4@2 c5@14 f5@2 eb5@13 ~ g4@2 ab4@2, ~@12 g4 ~@15 a4 ~@31 e5 ~@19]/5",
  F: "[~@12 bb4@2 ab4@14 bb4@2 c5@14 f5@2 eb5@15 ~@3, ~@12 a4 ~@31 e5 ~@19]/4",
  G: "~@4 c5@2 ab4 ~ b4@2 bb4@2 ~@2 ab4@2, ~@4 b4 ~@3 bb4 ~@7", H: "~@6 [b4,c5] ~ bb4@2 ab4 ~@5",
  I: "[~@4 c5@2 ab4 ~ b4@2 bb4@3 ~ ab4@6 ~@2 [b4,c5] ~ bb4@2 ab4 ~@5, ~@4 b4 ~@3 bb4 ~@23]/2", // Cmaj7
  J: "[~@4 [c5,eb5]@2 [c5,eb5]@2 [bb4,e5]@2 [bb4,e5]@3 ~ [ab4,f5]@6 ~@2 [b4,c5] ~ bb4@2 ab4 ~@5]/2", // Cm Bbdim Db Cmaj7
  K: "eb5@13 ~ c5@2, d5 ~@15", L: "[eb5 c5 bb4@26 ~@4]/2", M: "gb4@3 ~ gb4@4 f4@4 f4@4, f4 ~@7 e4 ~@7",
  N: "gb4@4 gb4@4 f4@3 ~ f4@3 ~, f4 ~@7 e4 ~@7", O: "eb5@7 c5, d5 ~@15",
  P: "~@4 eb5@2 db5 ~ db5@2 c5@2 ~@2 c5@2, ~@4 d5 ~@11", Q: "[bb4@19 ~ [d5,eb5] ~ db5 ~ db5@2 c5@4 db5 c5]/2", R: "bb4",
  S: "[~@4 eb5@2 db5 ~ db5@2 c5@3 ~ db5@10 f5@8, ~@4 d5 ~@27]/2",
  T: "[~@12 ab4@2 ab4@13 ~ bb4@2 ab4@13 ~ bb4@2 c5@13 ~ f5@2 eb5@13 ~ g4@2 ab4@13 ~ bb4@2 ab4@14 bb4@2 c5@14 f5@2 g5 f5, ~@12 g4 ~@15 a4 ~@31 e5 ~@31 a4 ~@31 e5 ~@3]/8",
  U: "eb5", V: "~@4 c5@2 ab4 ~ b4@2 bb4@2 ~@2 ab4 ~, ~@4 b4 ~@3 bb4 ~@7",
  W: "[~@4 [c5,eb5]@2 [c5,eb5]@2 [bb4,e5]@2 [bb4,e5]@4 [ab4,f5]@6 ~@2 [b4,c5] ~ bb4@2 ab4 ~@5]/2", // Cm Bbdim Db Cmaj7
  X: "[~@4 eb5@2 eb5@2 e5@2 e5@3 ~ f5@6 ~@2 [b4,c5] ~ bb4@2 ab4 ~@5]/2", // Cmaj7
})).s("gm_tenor_sax").gain(0.64).pan(0.6)

// chords · acoustic guitar steel · "P2-Steel Guitar"
const acoustic_guitar_steel = note("<A B C B D ~@2 B D ~@20 D ~@2 B D ~@35 D ~@2 B D ~@48>".pickRestart({
  A: "[ab2,eb3,ab3,c4,eb4]@6 [ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4]@3 ~ [ab2,eb3,ab3,c4,eb4]@3 ~", // Ab
  B: "[gb3,bb3,db4]!4 [gb3,bb3,db4]@4 [db3,f3,ab3]!4 [ab2,db3,f3,ab3]@4, db3 ~", // Gb Db
  C: "[ab2,eb3,ab3,c4,eb4]@6 [ab3,c4,eb4] ~ [ab2,eb3,ab3,c4,eb4]@4 [ab2,eb3,ab3,c4,eb4]@3 ~", // Ab
  D: "[ab2,eb3,ab3,c4,eb4]@15 ~", // Ab
})).s("gm_acoustic_guitar_steel").gain(0.17)

// chords · acoustic guitar steel · "P3-Steel Guitar"
const acoustic_guitar_steel_2 = note(`<
  A B@2 C D E F G@2 H I J K L M N O L M P Q@2 R@2 S@3 T U D E F G@2 H I J K L M N O L M P Q@2 R@2 S@3 T U T U T U T U
  Q@2 R@2 S@3 T U D E F G@2 H I J K L M N O L M V Q@2 R@2 S@3 T U Q@2 R@2 S@3 T U Q@2 R@2 S@3 T U Q@2 R@2 S@3 T W ~
>`.pickRestart({
  A: "[ab3,c4,eb4]@5 ~@7 [ab3,c4,eb4]@2 ~@2, ab2@6 [ab3,c4,eb4]@5 ~@5, ~ ab2", // Ab
  B: "[[bb3,db4]@6 gb3 ~ ab3@6 ~@2 [ab2,c4,eb4]@6 ab3@2 ~@4 [ab3,c4,eb4]@3 ~, gb2@9 ~@5 ab3@7 ~ [c4,eb4]@5 ~@5, gb3@5 ~@3 [db3,db4,f4]@8 ~@8 ab2@8]/2", // Bbm Ab Cm Db
  C: "[gb3,bb3,db4]@5 ~ [gb3,bb3,db4] ~ ab3@4 ~@2 ab3@2, gb2 [db3,db4,f4]", // Gb Db
  D: "[ab3,c4,eb4]@5 ~@7 [ab3,c4,eb4]@3 ~, ab2@6 [ab3,c4,eb4]@5 ~@5, ~ ab2", // Ab
  E: "[gb3,bb3,db4]@6 gb3 ~ ab3@5 ~ ab3@2, gb2 [db3,db4,f4]", // Gb Db
  F: "[ab3,c4,eb4]@5 ~ [ab3,c4,eb4]@2 ~@6 ab3 ~, ab2@4 [ab3,c4,eb4]@3 ~, ~@3 ab2", // Ab
  G: "[[gb3,bb3,db4]@6 [gb3,bb3,db4] ~ [db4,f4]@6 ~@2 [c4,eb4]@6 [ab3,c4,eb4]@2 [c4,eb4]@6 ab3 ~, gb2 db3 ab2@2, ~@8 ab3@5 ~ ab3@8 ~@2 ab3@4 ~@4]/2", // Gb Db Cm Ab Cm
  H: "gb3@4 ~@2 gb3 ~ ab3@4 ab3@3 ~, [gb2,bb3,db4] db3, ~@4 [db4,f4]@3 ~", // Gb Db
  I: "[eb3,g3,bb3,db4]@5 ~ eb3@2 ~@4 [eb3,g3,bb3,db4]@3 ~, eb2@6 [g3,bb3,db4]@5 ~@5, ~ eb2", // Eb7 Gdim
  J: "[gb3,bb3,db4]@5 ~@7 [gb3,bb3,db4]@4, gb2@6 [gb3,bb3,db4]@5 ~@5, ~ gb2", // Gb
  K: "~@2 ab3 ~ [ab3,c4,eb4] ~@3 ab2 ~@3 [ab3,c4,eb4]@4, ab2@3 [ab3,c4,eb4]@2 ab2@3", // Ab
  L: "~@4 [f3,ab3,c4] ~@7 [f3,ab3,c4]@4, f2@6 [f3,ab3,c4]@5 ~@5, ~ f2", // Fm
  M: "~@4 [c4,eb4,g4] ~@7 [c4,eb4,g4]@4, c3@6 [c4,eb4,g4]@5 ~@5, ~ c3", // Cm
  N: "~@4 [g3,bb3,db4,eb4,g4] ~@7 [g3,bb3,db4,eb4,g4]@4, eb2@6 [g3,bb3,db4,eb4,g4]@5 ~@5, ~ eb2", // Eb7
  O: "~@4 [ab3,c4,eb4] ~@7 [ab3,c4,eb4]@4, ab2@6 [ab3,c4,eb4]@5 ~@5, ~ ab2", // Ab
  P: "~@4 [bb3,eb4,g4] ~@3 eb2@4 ~@2 eb2@2, eb2@6 [bb3,eb4,g4]@5 ~ [bb3,eb4,g4]@4", // Eb
  Q: "[~@4 [ab3,c4,eb4]@4 [c4,e4,g4] ~ [c4,e4,g4]@3 ~ [c4,f4,ab4]@5 ~ [f4,ab4]@2 c4@2 [ab3,db4,f4] ~ [ab3,db4,f4]@2 ~@2 [db4,f4]@2, ab2@3 ~ c3@3 f3@5 db3@4, ~@20 c4 ~@7 ab3@4]/2", // Ab C Fm Db
  R: "[~@2 ab3 ~ [c4,eb4]@3 ab3 [e4,g4] ~ [c4,e4,g4]@3 ~ [c4,f4,ab4]@6 [c4,f4,ab4]@2 c4 ~ [ab3,db4,f4] ~ [db4,f4]@4 ab3@2, ab2@5 ~@11, ~@4 ab3 ~@3 c3@6 f3@10 db3@8, ~@8 c4@2 ~@16 ab3@3 ~@3]/2", // Cm Em C Fm Db
  S: "[c4@2 ab3 ~ [c4,eb4]@2 ab3 ~ [c4,e4] ~ [c4,e4,g4]@3 ~ [c4,f4,ab4]@5 ~ [c4,f4,ab4]@2 c4 ~ [ab3,db4,f4] ~ [db4,f4]@4 ~@2 [ab2,c4,eb4]@3 ~ [ab2,ab3,c4,eb4]@3 ~ [ab2,ab3,c4,eb4]@4 [ab2,ab3,c4,eb4]@2 ~@2, ab2@9 ~@17 ab3@2 ~@2 ab3@5 ~@13, ~@4 ab3 ~@3 [c3,g3]@6 f3@10 db3@8 ~@16]/3", // Cm C Fm Db Ab C5
  T: "[eb2,bb3,db4,eb4,g4]@4 [eb2,eb3,bb3,db4,eb4,g4]@3 ~ [eb2,eb3,bb3,db4,eb4,g4]@3 ~ [eb2,eb3,bb3,db4,eb4,g4]@3 ~, eb3 ~@7", // Eb7
  U: "[eb2,eb3,bb3,db4,eb4,g4]!4", // Eb7
  V: "[eb3,g3,bb3,db4,eb4] ~@2 [eb3,g3,bb3,db4,eb4,g4] ~ [eb3,g3,bb3,db4,eb4,g4] ~@2 [eb3,g3,bb3,db4,eb4,g4]@3 ~@3 eb2@2, eb2@7 ~ eb2@4 [eb3,g3,bb3,db4,eb4,g4]@4", // Eb7
  W: "[eb2,eb3,bb3,db4,eb4,g4] ~@3", // Eb7
})).s("gm_acoustic_guitar_steel").gain(0.22).pan(0.6)

// bass · acoustic bass · "P4-Coolth Bright"
const bass = note(`<
  A B C B A D A E F G H I J K L H A M L N O@2 P@4 Q@2 R A B S E A T H I J M L H U M L N P@6 Q@2 R Q@4 R V W@2 P@4 Q@2 R
  A B S X F G Y I Z M L H A M L AA P@6 Q@2 R O@6 Q@2 R O@6 Q@2 R O@6 Q@2 AB ~
>`.pickRestart({
  A: "ab1@5 ~ ab1 ~ ab1@7 ~", B: "gb2@5 ~ gb2@2 db2@5 ~ db2@2", C: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1@4",
  D: "gb1@5 ~ gb1@2 db2@5 ~ db2@2", E: "gb1@5 ~ gb1 ~ db2@5 ~ db2@2", F: "ab1@5 ~ ab1 ~ ab1@8",
  G: "gb1@5 ~ gb1@2 db2@8", H: "eb2@5 ~ eb2 ~ eb2@7 ~", I: "gb2@5 ~ gb2 ~ gb2@3 ~ gb2@3 ~",
  J: "ab2@5 ~ ab2 ~ ab2@6 gb2@2", K: "f2@5 ~ f2 ~ f2@3 ~ f2@3 ~", L: "c2@5 ~ c2 ~ c2@7 ~", M: "f2@5 ~ f2 ~ f2@7 ~",
  N: "eb2@5 ~ eb2 ~ eb2@3 ~ eb2 ~ eb2@2", O: "[ab1@5 ~ ab1@2 c2 ~ c2@4 f2@7 ~ f2@2 db2 ~ db2@3 ~ db2@2]/2",
  P: "[ab1@5 ~ ab1@2 c2 ~ c2@3 ~ f2@7 ~ f2@2 db2 ~ db2@3 ~ db2@2]/2", Q: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2@3 ~",
  R: "eb2@3 ~ eb2@3 ~ eb2@3 ~ eb2@2 bb1@2", S: "ab1@5 ~ ab1 ~ ab1@5 ~@3", T: "gb2@5 ~ gb2@2 db2@7 ~",
  U: "ab1@5 ~ ab1 ~ ab1@3 ~ ab1@3 ~", V: "eb2!7 bb1", W: "[ab1@5 ~ ab1@2 c2 ~ c2@3 ~ f2@7 ~ f2@2 db2 ~ db2@5 ~]/2",
  X: "gb2@5 ~ gb2 ~ db2@5 ~ db2@2", Y: "eb2@5 ~ eb2 ~ eb2@8", Z: "ab2@5 ~ ab2 ~ ab2@3 ~ ab2@2 gb2@2",
  AA: "eb2@3 eb2@2 ~ eb2@2 eb2@4 eb2@4", AB: "eb2@3 ~@13",
})).s("gm_acoustic_bass").gain(0.37)

// other · overdriven guitar · "P5-Overdriven Guitar"
const overdriven_guitar = note(`<
  ~@11 A B C D E F G H I ~@7 J K L ~@6 A B C H E F G M N ~@7 J O@6 K P ~@6 J K L ~@6 Q B C D E F G H I ~@7 J K R ~@6 J K
  R ~@6 J K R ~@6 J S ~
>`.pickRestart({
  A: "~ gb4@14 ~, [gb2,db3,gb3,bb3,db4]@15 ~", B: "[ab2,eb3,ab3,c4]@15 ~", C: "[f3,ab3,c4]@13 ~@3, f2",
  D: "[c4,eb4,g4]@7 ~, c3", E: "[eb2,bb3], [eb4,g4]@7 ~", F: "[ab2,ab3], [c4,eb4]@7 ~", G: "[f3,ab3,c4]@3 ~, f2",
  H: "[c3,c4,eb4,g4]@15 ~", I: "[eb2,bb3,eb4,g4]@7 ~", J: "~ eb3!2 db3!2 c3!2 bb2", K: "bb2 ab2!2 g2!2 f2!2 eb2",
  L: "ab2", M: "[c3,g3,c4,eb4,g4]@15 ~", N: "[eb2,eb3,eb4,g4]@15 ~, bb3@13 ~@3",
  O: "[bb2 ab2!2 g2!2 f2!2 eb2@2 eb3!2 db3!2 c3!2 bb2]/2", P: "ab2 ~", Q: "~ [db4,gb4]@14 ~, [gb2,db3,gb3,bb3]",
  R: "ab2@7 ~", S: "bb2 ab2 ~@6",
})).s("gm_overdriven_guitar").gain(0.42).pan(0.2)

// chords · piano · "P6-Concert Grand"
const piano = note(`<
  A B C D A E F G H I J K L M N@2 O P Q R S@2 T@2 U@2 V W X A E F G H I J K L M N@2 O P Q R S@2 T@2 U@2 V Y X Y X Y X Y
  X S@2 T@2 U@2 V Y X A E F G H I J K L M N@2 O P Q Z S@2 AA@2 U@2 V Y X S@2 T@2 U@2 V Y X S@2 T@2 U@2 V Y X S@2 T@2 U@2
  V W AB ~
>`.pickRestart({
  A: "[ab2,ab3], [c4,eb4]@7 ~", B: "[gb2,gb3,bb3,db4] [db2,f3,ab3,db4]", C: "[ab2,ab3,c4,eb4]@15 ~",
  D: "[gb2,gb3,bb3,db4]@4 [f3,ab3,db4]@3 ~, ~ db2", E: "[gb2,gb3,bb3,db4] [db2,ab3,db4], ~@4 f3@3 ~",
  F: "[ab2,ab3,c4,eb4]", G: "[gb2,gb3,bb3,db4] [db2,db4], ~@4 [f3,ab3]@3 ~", H: "[ab2,ab3,c4], eb4@7 ~",
  I: "[gb2,gb3,bb3,db4] [db2,f3,ab3], ~@4 db4@3 ~", J: "[eb3,g3,bb3]@13 ~@3, eb2", K: "[gb2,gb3,bb3,db4]",
  L: "~@4 [ab3,c4,eb4] ~@5 ab3 ~ [ab3,c4,eb4]@4, ab2@6 [ab3,c4,eb4]@5 ~@5, ~ ab2", // Ab
  M: "~@2 f3 ~ [f3,ab3,c4] ~ f3@2 ~@2 f3 ~ [f3,ab3,c4]@4, f2@6 [ab3,c4]@5 ~@5, ~ f2", // Fm Ab
  N: "[~@4 [c4,eb4,g4] ~@7 [c4,eb4]@4 ~@4 [bb3,db4,g4] ~@7 [bb3,db4,g4]@4, c3@6 [c4,eb4,g4]@5 ~ g4@7 ~@3 [bb3,db4,g4]@5 ~@5, ~@8 c3@8 eb2@7 ~ eb2@8]/2", // Cm Gdim Cm Gdim
  O: "~@4 [ab3,c4,eb4] ~@7 [ab3,c4,eb4]@4, ab2@6 [ab3,c4,eb4]@5 ~@5, ~ ab2", // Ab
  P: "~@4 [f3,ab3,c4] ~@7 [f3,ab3,c4]@4, f2@6 [f3,ab3,c4]@5 ~@5, ~ f2", // Fm
  Q: "~@4 [c4,eb4,g4] ~@7 [c4,eb4,g4]@4, c3@6 [c4,eb4,g4]@5 ~@5, ~ c3", // Cm
  R: "~@4 [bb3,db4,g4] ~@3 eb2@4 [bb3,db4,g4]@2 eb2@2, eb2@6 [bb3,db4,g4]@5 ~@5", // Gdim
  S: "[~@4 [ab3,c4,eb4]@2 ~@2 [c3,bb3,c4,e4,g4] ~ [c3,bb3,c4,g4]@4 [c4,f4,ab4]@5 ~ [c4,f4,ab4]@3 ~ [db3,ab3,db4,f4] ~ ab3@3 ~ ab3@2, ab2@4 ~ e4 ~ f3@5 ~ [db3,db4,f4]@3]/2", // Ab C7 Fm Db
  T: "[~@2 ab3 ~ [ab3,c4,eb4]@2 ab3 ~ [c3,bb3,c4,e4,g4] ~ [c3,bb3,c4,e4,g4]@3 ~ [c4,f4,ab4]@5 ~ [c4,f4,ab4]@2 c4 ~ [db3,ab3,bb3,db4,f4] ~ ab3@3 ~ ab3@2, ab2@4 ~@3 f3@5 ~ [db3,db4,f4]@3]/2", // Ab C7 Fm Bbm7 Db
  U: "[~@2 ab3 ~ [c4,eb4]@2 ab3 ~ [c3,bb3,c4,e4,g4] ~ [c3,bb3,c4,e4,g4]@3 ~ [c4,f4,ab4]@5 ~ [c4,f4,ab4]@2 c4 ~ [db3,ab3,db4,f4] ~ [db3,ab3,db4,f4]@6, ab2@9 ~@23, ~@4 ab3 ~@9 f3@10 ~@8]/2", // Cm C7 Fm Db
  V: "[ab2,ab3,c4,eb4]@3 ~ [ab2,ab3,c4,eb4]@3 ~ [ab2,ab3,c4,eb4]@3 ~ [ab2,ab3,c4,eb4]@3 ~", // Ab
  W: "[eb2,eb3,g3,db4]@3 ~ [eb2,eb3,g3,db4]@3 ~ [eb2,eb3,g3,db4]@3 ~ [eb2,eb3,g3,bb3,db4]@3 ~", // Eb7
  X: "[eb2,eb3,g3,bb3,db4]@3 ~ [eb2,eb3,g3,bb3,db4]@3 ~ [eb2,eb3,g3,bb3,db4]@3 ~ [eb2,eb3,g3,bb3,db4]@4", // Eb7
  Y: "[eb2,eb3,g3,bb3,db4]@3 ~ [eb2,eb3,g3,bb3,db4]@3 ~ [eb2,eb3,g3,bb3,db4]@3 ~ [eb2,eb3,g3,bb3,db4]@3 ~", // Eb7
  Z: "[bb3,db4,g4] ~@2 [bb3,db4,g4] ~ [bb3,db4,g4] eb3@2 [eb3,bb3,db4,g4]@3 ~ [eb3,bb3,db4,g4]@2 eb2@2, eb2@7 ~ eb2@4 ~@4, eb3@2 ~ eb3@2 ~@11", // Gdim Eb7
  AA: "[~@2 ab3 ~ [ab3,c4,eb4]@2 ab3 ~ [c3,bb3,c4,e4,g4] ~ [c3,bb3,c4,e4,g4]@3 ~ [c4,f4,ab4]@5 ~ [c4,f4,ab4]@2 c4 ~ [db3,ab3,db4,f4] ~ ab3@3 ~ ab3@2, ab2@4 ~@3 f3@5 ~ [db3,db4,f4]@3]/2", // Ab C7 Fm Db
  AB: "[eb2,eb3,g3,bb3,db4]@3 ~@13", // Eb7
})).s("gm_piano").gain(0.21)

// chords · string ensemble 1 · "P7-Strings 1"
const string_ensemble_1 = note(`<
  ~@25 A B@3 ~@8 C D E F G D E F ~@5 A H@3 I@6 J@6 H@3 ~@8 C D E F G D E F ~@5 A H@3 ~@5 A H@3 ~@5 A H@3 ~@5 A H@3 ~
>`.pickRestart({
  A: "~@12 ab4 bb4 c5 db5", B: "[eb5@47 ~]/3", C: "[ab4,c5]", D: "[f4,ab4,c5]", E: "[g4,c5,eb5]", F: "[bb4,db5,eb5]",
  G: "[ab4,c5,eb5]", H: "eb5/3", I: "eb5/2",
  J: "[[c5,ab5]@8 [bb4,g5]@6 [ab4,f5]@10 [ab4,db5,f5]@6 [c5,ab5]@10 [bb4,g5]@6 ~@10 db5@6 [c5,ab5]@10 [bb4,g5]@6 ~@10 db5@4 ab4 bb4 c5 db5, ~@23 [ab4,f5]@8 ~@8 [ab4,f5]@7 ~@2]/6", // Fm Eb Db Fm Eb Fm Eb Db
})).s("gm_string_ensemble_1").gain(0.1).pan(0.2)

// chords · string ensemble 1 · "P8-Strings 1"
const string_ensemble_1_2 = note(`<
  ~@25 A B@3 ~@8 C D E F G D E F ~@5 A H@3 I@6 J@6 B@3 ~@8 C D E F G D E F ~@5 A B@3 ~@5 A B@3 ~@5 A B@3 ~@5 A B@3 ~
>`.pickRestart({
  A: "~@12 ab5 bb5 c6 db6", B: "[eb6@47 ~]/3", C: "[ab4,c5]", D: "[f4,ab4,c5]", E: "[g4,c5,eb5]", F: "[bb4,db5,eb5]",
  G: "[ab4,c5,eb5]", H: "eb6/3", I: "eb6/2",
  J: "[[c5,ab6]@8 [bb5,g6]@6 [ab5,f6]@10 [ab5,db6,f6]@6 [c6,ab6]@10 [bb5,g6]@6 [ab5,f6]@10 [ab5,db6,f6]@6 [c6,ab6]@10 [bb5,g6]@6 [ab5,f6]@10 ab5@4 ~ bb5 c6 db6, ~@11 [db5,f6], ~@23 ab5]/6", // Fm Eb Db Fm Eb Db Fm Eb …
})).s("gm_string_ensemble_1").gain(0.08).pan(0.9)

// other · timpani · "P9-Timpani"
const timpani = note(`<
  ~@19 A B A B A B A B ~@17 A B A B A B A B ~@7 A B A B A B A B ~@17 A B A B A B A B ~ A B A B A B A B ~ A B A B A B A B
  ~ A B A B A B A B ~@3
>`.pickRestart({
  A: "~@14 eb2 ~", B: "ab2 ~@15",
})).s("gm_timpani").gain(0.31).pan(0.7)

// chords · synth strings 2 · "P13-Solar Plexus"
const synth_strings_2 = note(`<
  ~@37 A B C D A B C D E ~ F@2 G@2 H I@6 J@2 ~@17 A B C D A B C ~ E ~ F@2 G@2 H I@2 E ~ F@2 G@2 H I@2 E ~ F@2 G@2 H I@2
  E ~ F@2 G@2 H I@2 ~
>`.pickRestart({
  A: "~@4 [ab4,c5] ~ [ab4,c5]@2 ~@8", B: "~@4 [f4,ab4] ~ [f4,ab4]@2 ~@8", C: "~@4 [c5,eb5] ~ [c5,eb5]@2 ~@8",
  D: "~@4 [bb4,db5,eb5] ~ [bb4,db5,eb5]@2 ~@8", E: "~@4 [ab4,c5]@2 [ab4,c5]@2 [g4,bb4] ~ [g4,bb4]@3 ~ [f4,ab4]@2",
  F: "[~@4 [ab4,c5]@2 [ab4,c5]@2 [g4,bb4] ~ [g4,bb4]@3 ~ [f4,ab4]@6 ~@12]/2", // Ab Gm Fm
  G: "[~@4 [ab4,c5]@2 [ab4,c5]@2 [g4,bb4] ~ [g4,bb4]@2 ~@2 [f4,ab4]@6 ~@12]/2", H: "[ab4,c5,eb5]", I: "[g4,bb4,eb5]/2",
  J: "[[g4,bb4,db5,eb5]@31 ~]/2", // Eb7
})).s("gm_synth_strings_2").gain(0.38).pan(0.6)

// drums · kick
const kick = s("bd").struct("<A@11 B@18 A@7 B@23 C B D B D B D B@3 A@7 B@8 E B@35 F ~>".pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x ~@2 x!2 ~@2 x", C: "x!8", D: "~@3 x!2 ~@2 x", E: "x ~@2 x ~@12", F: "x",
})).gain(0.23)

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

// drums · hihat
const hihat = s("hh").struct("<A@28 B A@24 B A B A B A@10 B A@15 C A@8 B A@8 B A@8 B A@8 D ~>".pickRestart({
  A: "x!8", B: "x!4 ~@4", C: "x", D: "x!2 ~@6",
})).gain(0.23)

// drums · mid tom
const mid_tom = s("mt").struct("<~@28 A ~@24 A ~@14 A ~@24 A ~@8 A ~@8 A ~@10>".pickRestart({
  A: "~@12 x!3 ~",
})).gain(0.2)

// drums · crash
const crash = s("cr").struct(`<
  ~@20 A ~ A ~ A ~ A ~@2 A ~@15 A ~ A ~ A ~ A ~@2 A ~ A B A ~ C ~ C ~ C ~ A@2 ~ A ~@14 D A ~ A ~ A ~ A ~@2 A ~ A ~ A ~@4
  A ~@3 A ~@4 A ~ A ~ A ~ A@2 ~@2
>`.pickRestart({
  A: "x", B: "~ x", C: "x ~@6 x", D: "x ~@2 x ~@2 x ~ x ~@3 x ~@3",
})).gain(0.27)

// drums · ride
// … 26 more lines

More by Roy Orbison