Strudelify

Se ti muovi cosi

Paoli

KeyA♭ majorTempo62 bpm
0:00/0:00
// Se ti muovi cosi — Paoli
// 62 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 56 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(62/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.

// bass · electric bass finger
const bass = note(`<
  A B A C A B D E F G H I J K L M N O P Q R S T O U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AK AO AP AQ AR
  AS AT AU AT AV AW ~
>`.pickRestart({
  A: "c2@5 g1 bb1@3 c2@3 c1@6 ~@5 c2", B: "f1@6 ~@4 c2 f1 g1@6 ~@2 g1 bb1 g1 bb1", C: "f1@6 ~@4 c2 f1 g1@10 ~ bb1",
  D: "c2@5 g1 bb1@3 c2@3 c1@6 ~@4 c2 g1", E: "f1@8 ~@3 c2 g1@6 ~@2 eb1 f1@3",
  F: "ab1@2 ~ ab1@2 ~ ab1@3 ab1@3 ab1@3 ab1@2 ~ ab1@3 g1@3", G: "f1@2 ~ f1@2 ~ f1@2 ~ f1@3 eb1@2 ~@3 g1 g1@3 bb1@2 ~",
  H: "c2@5 g1 bb1@3 c2@3 c1@6 ~@2 c2 g1@3", I: "f1@6 ~@4 eb1 f1 g1@5 ~ g1 ~ g1 bb1@2 ~",
  J: "c2@5 g1 bb1@3 c2@3 c1@5 ~@3 c2 g1@3", K: "f1@6 ~@5 f1 g1@9 ~ eb1 f1",
  L: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@3 g1@3",
  M: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ eb1 ~ eb1 f1@3 g1@5 ~",
  N: "ab1@3 ab1@2 ~ ab1@2 ~ ab1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~", O: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ eb1@3 ~@9",
  P: "g1@4 ~ d1 d1@3 g1 ~ g1 c2@5 g1 g1@2 ~ g1 ~ g1", Q: "f1@4 ~ c2 c2@3 f1 ~ f1 bb1@4 ~ f1 f1@4 ~ f1",
  R: "g1@4 ~ d2 d2@3 g1@3 c2@5 g2 g2@2 ~ g2@2 ~", S: "f1@4 ~ f1 c2@3 f1@3 bb1@4 ~ f2 f2@5 ~",
  T: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ g1@3", U: "c2@2 ~@3 f1 g1@2 ~ bb1 ~ c1@7 ~@2 eb1 g1@3",
  V: "f1@6 ~@4 eb1 f1 g1@6 ~@2 g1 bb1 g1 c2", W: "~ c2 ~@8 c2 g1 c1@7 ~ eb1 g1@3",
  X: "f1@8 ~@2 eb1 f1 g1@5 ~@3 eb1 f1 eb1 f1", Y: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ab1 ab1@2 ~ ab1@2 ~ ab1@3 g1@3",
  Z: "f1@2 ~ f1@2 f1 f1@2 ~ f1 ~ f1 eb1@2 ~ f1 ~ g1!2 ~ g1 g1@2 eb1",
  AA: "ab1@2 ~ ab1@2 ~ ab1@2 eb1 ab1 eb1 f1 g1@2 ~ g1@2 ~ g1@2 ~ g1 ~ g1",
  AB: "f1@2 ~ f1@2 ~ f1@2 ~ f1 ~ f1 eb1@2 ~@10", AC: "db2@5 ab1 b1@3 db2@3 db1@6 ~@2 db2 ~@2 ab1",
  AD: "gb1@6 ~@4 e1 gb1 ab1@5 ~@3 ab1 b1 ab1 b1", AE: "db2@5 ab1 b1@3 db2@3 db1@5 ~@3 db2 ~@2 ab1",
  AF: "gb1@6 ~@5 gb1 ab1@9 ~ e1 gb1", AG: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ a1@3 ab1@3",
  AH: "gb1@2 ~ gb1@2 ~ gb1@2 ~ gb1 ~ gb1 e1@3 gb1@3 ab1@3 e1@3",
  AI: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~",
  AJ: "gb1@2 ~ gb1@2 ~ gb1@2 ~ gb1@2 ~ e1@3 ~@5 b1 ab1@2 ~", AK: "ab1@5 eb2 eb2@3 ab1@3 db2@4 ~ ab2 ab2@3 ~ db1 e1",
  AL: "gb1@3 ~@2 db2 db2@3 gb1@3 b1@3 ~@2 b1 gb1@2 ~ gb1@2 ~",
  AM: "ab1@4 ~ eb2 eb2@3 ab1@3 db2@4 ~ ab2 ab2@2 ~ ab2@2 ~", AN: "gb1@4 ~ db2 db2@3 gb1@3 b1@4 ~ b1 ab1@3 gb1@2 ~",
  AO: "gb1@4 ~ db2 db2@3 gb1@3 b1@3 ~@2 b1 gb1@2 ~ gb1@2 ~", AP: "ab1@4 ~ eb2 eb2@3 ab1@3 db2@4 ~ ab2 ab2@2 ~ ab1@2 ~",
  AQ: "gb1@4 ~ db2 db2@3 gb1@3 b1@4 ~ b1 gb1@2 ~ gb1@2 ~", AR: "db1@5 ab1 b1@3 db2@3 db1@6 ~@5 db2",
  AS: "gb1@6 ~@4 db2 gb1 ab1@6 ~@2 gb1 ab1@3", AT: "db2@5 ab1 b1@3 db2@3 db1@6 ~@5 db2",
  AU: "gb1@6 ~@5 db2 ab1@8 ab1 b1@2 ~", AV: "gb1@6 ~@4 db2 gb1 ab1@12", AW: "db2 ~@23",
})).s("gm_electric_bass_finger").gain(0.41)

// chords · rock organ
const rock_organ = note(`<
  A B C D ~@6 A B C D E@2 F@2 G@2 H@2 I@2 ~ J K L M N O@2 ~ P ~ Q R@4 S@2 T U@2 V@3 ~ W X Y Z W X ~
>`.pickRestart({
  A: "~@9 d5@2 [c5,eb5]@6 ~ bb4@2 [c5,eb5] ~@3, ~@9 f5 ~@8 d5 ~@5", B: "~@15 [eb5,g5,c6]@2 b5 ~@3 [eb5,g5,bb5]@2 ~",
  C: "~@9 d5@2 [c5,eb5]@6 ~ [bb4,d5]@2 [c5,eb5] ~@3, ~@9 f5 ~@14", // Cm Bb Cm
  D: "~@15 [eb5,g5,c6]@2 [f5,a5,b5] [b4,c5,d5,e5] a4 ~@4", // Cm Bm7b5 Cmaj7
  E: "[~@8 ab4@4 [g4,eb5]@2 [g4,bb4,eb5] [f4,bb4,db5], [eb5,g5]@3 ~]/2", // Cm Eb Bbm Eb
  F: "[ab4@12 g4@11 ~ [f4,ab4]@12 [eb4,g4]@11 ~, eb5@3 ~, bb4@23 ~@25]/2", // Fm Eb
  G: "[[f4,bb4,d5] g4 ab4 [bb4,d5,f5], ~ [c5,eb5]@2 ~]/2", // Bb Cm
  H: "[[f4,bb4,d5]@12 g4@11 ~ ab4@12 [bb4,c5,d5,f5]@11 ~, ~ [c5,eb5]@2 ~]/2", // Bb Cm
  I: "[bb4@23 ~ ab4@11 ~ [bb4,eb5]@3 ~@9, [eb5,g5]@17 ~@7]/2", // Eb5 Eb
  J: "bb5 ~@2 f5 gb5 f5 eb5 ~ c5 [e5,f5] ~ e5 eb5 ~ f5 gb5 ~ g5 bb5 ~ g5 ~ [c6,d6] [c5,f5,g5,a5,b5], ~@4 eb5@2 ~@3 d5@2 ~@13", // Fmaj7 Csus2 F
  K: "[d5,e5,f5,g5,a5] [b5,c6,d6,e6,f6] [g6,a6,b6] ~@11 bb6 [g6,bb6] g6 f6 [eb6,f6] [c6,eb6] ~ bb5@2 g5, ~@2 c7@11 ~@11", // Dm Bdim G Gm Ebsus2 Cm
  L: "[g5,c6] ~ [gb5,g5,c6] [f5,g5]@2 eb5 [c5,f5] ~ [c5,eb5]!2 c5 [c5,f5]!2 c5 [c5,f5]!2 c5 [c5,f5] c5 f5 [c5,f5,g5,a5,b5,c6] [a4,b4,c5,d5,e5,f5] [f4,g4] [g4,a4,b4,c5,d5,e5], gb5 ~@11", // C5 C Fsus2 F5 Cm F5 F Dm7 …
  M: "[ab5,c6,eb6], [f5,g5,a5] ~@23", // Ab F
  N: "[f5,bb5,eb6]@11 ~ [g5,bb5,eb6]@2 [g5,bb5,eb6] bb5 [g5,bb5] [g5,bb5,eb6] bb5 [g5,bb5,eb6] bb5 [g4,a4,b4,g5,bb5,db6,eb6] [c5,d5,e5,f5,g5] [a5,b5,c6]", // Ebsus2 Eb Gm Eb Eb7 C Am
  O: "[[ab5,c6]@11 ~ [g5,bb5]@12 [f5,ab5]@12 [d5,e5] [f4,g4,a4,b4,c5] [b3,c4,d4,e4] [f3,g3,a3] [d3,e3] ~@7, eb6@35 ~@13]/2", // Ab Gm Fm Dsus2 F Cmaj7 F Dsus2
  P: "~@15 [e5,ab5,db6]@2 c6 ~@3 [e5,ab5,b5]@2 ~", // Dbm E
  Q: "~@15 [e5,ab5,db6]@2 [gb5,bb5,c6] [c5,db5,eb5,f5] bb4 ~ [e5,ab5,b5]@2 ~", // Dbm Cm7b5 Dbmaj7 E
  R: "[~@24 a4@12 [ab4,e5]@6 [ab4,b4,e5]@3 [d5,gb5]@3 ~@12 ab5@11 ~ [a4,gb5]@12 [ab4,e5]@11 ~, [e5,ab5]@12 ~@3 a5@5 ~@12, ~@4 e5@3 ~, ~@48 b4@23 ~@25]/4", // Dbm E D Dbm E
  S: "[[b4,eb5,gb5]@12 ab5@12 a4@12 [eb5,gb5]@3 [e5,ab5]@2 [eb5,gb5]@6 ~, ~ [db5,e5]@2 b4]/2", // B Ebm E Ebm Dbm
  T: "[eb5,gb5,b5] [e5,ab5,db6]", // B Dbm
  U: "[[a4,db5,e5]@12 [eb5,gb5]@3 [e5,ab5]@2 gb5@4 db6@2 ~ [b4,eb5,gb5]@12 [db5,e5,ab5]@12, ~ b4 ~@2, ~@17 eb5@6 ~@25, ~@21 c6 ~ b5@24 ~]/2", // A Ebm E B Dbm
  V: "[[a4,db5,e5]@12 [eb5,gb5]@3 [e5,ab5]@2 gb5@3 ~ db6@2 ~ [gb4,b4,eb5]@12 ab4@11 ~ a4@12 [b4,db5,eb5,gb5]@9 db5 c5 [gb4,ab4,bb4], ~ b4 ~ [db5,e5]@2 ~, ~@17 eb5@6 ~@49, ~@21 c6 ~ b5@24 ~@25]/3", // A Ebm E B Gb Dbm
  W: "~@15 [e5,ab5,db6]@2 c6 ~@3 [e5,ab5,b5]@2 [f5,g5,a5]", X: "e5 ~@23",
  Y: "~@15 [e5,ab5,db6]@2 [gb5,bb5,c6] [c5,db5,eb5,f5] bb4 ~ [e5,ab5,b5]@2 [g5,a5]", Z: "f5 ~@23",
})).s("gm_rock_organ").gain(0.17)

// chords · rock organ · soft notes
const rock_organ_soft = note("<~ A ~@9 A ~@2 B C ~ D ~@5 E ~@7 F ~ G ~@2 H I ~ J ~@8 K G ~@2 L G M ~>".pickRestart({
  A: "~@17 [c5,d5,a5] [e5,f5] ~@5", B: "bb4", C: "~@12 bb4@5 ~@7", D: "~@12 bb4@11 ~", E: "~@4 g4 ~@3",
  F: "~@16 c3 ~@7", G: "~@17 [db5,eb5,bb5] [f5,gb5] ~@5", H: "b4", I: "~@12 b4@5 ~@7", J: "~@12 b4@11 ~", K: "f4 ~@23",
  L: "e5 d5 ~@22", M: "d5 ~@23",
})).s("gm_rock_organ").gain(0.1)

// chords · epiano1
const epiano1 = note(`<
  A B A B A B A B C D A B A B E F G H I J I J C D K L M B N O P ~ Q R Q R S T U V W X W X W X W Y Q Z Q R Q Z ~@2
>`.pickRestart({
  A: "[g3,c4,eb4]@19 ~ [g3,c4,eb4] [f3,bb3,d4]@3", B: "[eb3,ab3,c4]@12 [g3,bb3,f4]@11 ~", C: "[bb3,eb4,g4]@7 ~",
  D: "[ab3,eb4,g4]@9 ~@3 [g3,bb3,eb4]@2 ~@10", E: "[bb3,eb4,g4]@23 ~",
  F: "[ab3,eb4,g4]@3 ~ [g3,bb3,eb4]@2 [g3,bb3,eb4] [bb3,db4,f4]", G: "[ab3,bb3,eb4,g4] [g3,bb3,eb4,g4]",
  H: "[bb3,eb4,g4]@9 ~@3 [eb3,g3,bb3,eb4]@2 ~@10, f3@11 ~@13", I: "[g3,bb3,d4,f4]@11 ~ [g3,c4,eb4]@11 ~",
  J: "[ab3,c4,eb4]@11 ~ [bb3,d4,f4]@9 ~@3", K: "~@20 [g3,c4,eb4] [f3,bb3,d4]@3",
  L: "[eb3,ab3,c4]@12 [g3,bb3,f4]@11 [g3,c4,e4]", M: "~ [g3,c4,eb4] ~@18 [g3,c4,eb4] [f3,bb3,d4]@3",
  N: "[c5,eb5,ab5]@5 ~", O: "[c5,eb5,bb5]@11 ~@10 [bb4,eb5,g5]@3", P: "[c5,eb5,ab5]@11 ~ [eb5,g5,bb5]@11 ~",
  Q: "[ab3,db4,e4]@19 ~ [ab3,db4,e4] [gb3,b3,eb4]@3", R: "[e3,a3,db4]@12 [ab3,b3,gb4]@11 ~", S: "[b3,e4,ab4]@23 ~",
  T: "[a3,e4,ab4]@3 ~ [ab3,b3,e4]@2 [ab3,b3,e4] [b3,d4,gb4]", U: "[a3,b3,e4,ab4] [ab3,b3,e4,ab4]",
  V: "[b3,e4,ab4]@9 ~@3 [e3,ab3,b3,e4]@2 ~@10, gb3@11 ~@13", W: "[ab3,b3,eb4,gb4]@11 ~ [ab3,db4,e4]@11 ~",
  X: "[a3,db4,e4]@11 ~ [eb4,gb4]@3 [e4,ab4] ~ [eb4,gb4]@5 ~@2, ~@4 b3@3 ~", Y: "[a3,db4,e4]@11 ~ [b3,eb4,gb4]@9 ~@3",
  Z: "[e3,a3,db4]@12 [ab3,b3,gb4]@6 ~ [ab3,b3,gb4] ~ [ab3,b3,gb4]@2 ~", // A Abm7
})).s("gm_epiano1").gain(0.24)

// chords · electric guitar muted
const electric_guitar_muted = note(`<
  A B A B A B A B ~@2 A B A B ~@4 C D E F ~@10 G H G H ~@4 I J K L K M K L N O N O N O ~@2
>`.pickRestart({
  A: "~@2 g3 [g3,c4,eb4]@2 [g3,c4,eb4] ~@8 g3 [g3,c4,eb4]@2 [g3,c4,eb4] ~@6", // Cm
  B: "~@2 ab3 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@8 bb3 [bb3,d4,f4]@2 [bb3,d4,f4] ~@6", // Ab Bb
  C: "~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~@3 [d4,f4] ~ [d4,f4] ~@3 [g3,c4,eb4]@2 [g3,c4,eb4] ~@3 [c4,eb4] ~ [c4,eb4]", // Bb Dm Cm
  D: "~@3 [ab3,c4,eb4]@2 [ab3,c4,eb4] ~@3 [c4,eb4] ~ [c4,eb4] ~@3 [bb3,d4,f4]@2 [bb3,d4,f4] ~@3 [d4,f4] ~ [d4,f4]", // Ab Cm Bb Dm
  E: "~@3 [bb3,d4,f4]@2 [bb3,d4,f4] ~@3 [d4,f4] ~ [d4,f4] ~@3 [g3,c4,eb4]@2 [g3,c4,eb4] ~@3 [c4,eb4] ~ [c4,eb4]", // Bb Dm Cm
  F: "~@3 [ab3,c4,eb4]@2 [ab3,c4,eb4] ~@3 [c4,eb4] ~ [c4,eb4] ~@3 [bb3,d4,f4] ~ [bb3,d4,f4] ~@6", // Ab Cm Bb
  G: "~@2 ab3 [db4,e4]@2 [db4,e4] ~@8 ab3 [db4,e4]@2 [db4,e4] ~@6", // Dbm
  H: "~@2 a3 [db4,e4] ~ [db4,e4] ~@8 b3 [eb4,gb4]@2 [eb4,gb4] ~@6", // Dbm Ebm
  I: "~@3 [b3,eb4,gb4] ~ [b3,eb4,gb4] ~@3 [eb4,gb4] ~ [eb4,gb4] ~@3 [ab3,db4,e4]@2 [ab3,db4,e4] ~@3 [db4,e4] ~ [db4,e4]", // B Ebm Dbm
  J: "~@3 [a3,db4,e4]@2 [a3,db4,e4] ~@3 [db4,e4] ~ [db4,e4] ~@3 [b3,eb4,gb4]@2 [b3,eb4,gb4] ~@3 [eb4,gb4] ~ [eb4,gb4]", // A Dbm B Ebm
  K: "~@3 [b3,eb4,gb4]@2 [b3,eb4,gb4] ~@3 [eb4,gb4] ~ [eb4,gb4] ~@3 [ab3,db4,e4]@2 [ab3,db4,e4] ~@3 [db4,e4] ~ [db4,e4]", // B Ebm Dbm
  L: "~@3 [a3,db4,e4]@2 [a3,db4,e4] ~@3 [db4,e4] ~ [db4,e4] ~@3 [b3,eb4,gb4]@2 [b3,eb4,gb4] ~@6", // A Dbm B
  M: "~@3 [a3,db4,e4]@2 [a3,db4,e4] ~@3 [db4,e4] ~ [db4,e4] ~@3 [b3,eb4,gb4] ~ [b3,eb4,gb4] ~@3 [eb4,gb4] ~ [eb4,gb4]", // A Dbm B Ebm
  N: "~@2 ab3 [db4,e4]@2 [db4,e4] ~@3 [db4,e4] ~ [db4,e4] ~@2 ab3 [db4,e4]@2 [db4,e4] ~@3 [db4,e4] ~ [db4,e4]", // Dbm
  O: "~@2 a3 [db4,e4] ~ [db4,e4] ~@3 [db4,e4] ~ [db4,e4] ~@2 b3 [eb4,gb4]@2 [eb4,gb4] ~@3 [eb4,gb4] ~ [eb4,gb4]", // Dbm Ebm
})).s("gm_electric_guitar_muted").gain(0.13)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@27
  [~@12 c4@10 bb3 g3]
  [c4 ~ c4@2 bb3 g3 d4@6 eb4 ~ eb4@4 f4@6]
  [g4@3 g4 ~ g4@5 f4 eb4 f4 c4 eb4@2 ~ bb4 eb5 bb4 f5 bb4 g5 bb4]
  [ab5@2 g5@2 eb5@2 eb5@3 ~@5 c6@4 bb5 ab5 g5 ab5 g5 eb5]
  [bb4 f5@2 eb5@4 c5 bb4 g4 gb4 f4 ~ eb3@4 ~@7, ~@3 eb4 ~@2]
  ~@24
>`).s("gm_distortion_guitar").gain(0.29)

// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
  ~ A ~@6 B C ~ A ~@2 B D E C ~@4 B C F@2 G@2 ~@5 H ~@2 I J K L ~ M@2 ~@8 H ~@4
>`.pickRestart({
  A: "~@20 bb3 f4 [eb4,g4]@2", // Eb
  B: "~@2 eb4@2 bb3 ~@3 eb4@2 bb3 ~@3 eb4@2 bb3 eb4 ~@2 eb4@2 bb3 eb4, g4@5 eb4@3 ~@3 eb4@3 ~@10, ~@6 g4@5 ~ g4@5 ~ g4@5 ~",
  C: "~@2 eb4@2 bb3 eb4 ~@2 eb4@2 bb3 eb4 [bb3,eb4]@2 ~@10, g4@5 ~ g4@5 ~@13", // Eb5
  D: "~@2 eb4@2 bb3 eb4 ~@2 eb4@2 bb3 eb4 [bb3,eb4]@6 [bb3,eb4]@3 [bb3,db4,f4]@2 ~, g4@5 ~ g4@5 ~@13", // Eb5 Bbm
  E: "eb4@2 eb4@2 bb3 ~@3 eb4@2 bb3 ~@3 eb4@2 bb3 eb4 ~@2 eb4@2 bb3 eb4, [bb3,g4]@5 eb4@3 ~@3 eb4@3 ~@10, ~@6 g4@5 ~ g4@5 ~ g4@5 ~", // Eb
  F: "[~@6 [gb4,g4]@2 ~ bb4@2 f4@4 bb4@2 eb4 ~@2 [d4,eb4] d4@2 c4@13 ~@12]/2", // Gmaj7 Ebmaj7
  G: "[~@6 [gb4,g4]@2 ~ bb4@2 f4@4 bb4@2 eb4 ~@2 [d4,eb4] d4@2 c4@12 ~@13]/2", H: "~@20 gb4 ab4 [ab4,b4]@2",
  I: "~@2 e4@2 b3 ~@3 e4@2 b3 ~@3 e4@2 b3 e4 ~@2 e4@2 b3 e4, ab4@5 e4@3 ~@3 e4@3 ~@10, ~@6 ab4@5 ~ ab4@5 ~ ab4@5 ~",
  J: "~@2 e4@2 b3 e4 ~@2 e4@2 b3 e4 [b3,e4]@6 [b3,e4]@3 [b3,d4,gb4]@2 ~, ab4@5 ~ ab4@5 ~@13", // E5 Bm
  K: "e4@2 e4@2 b3 ~@3 e4@2 b3 ~@3 e4@2 b3 e4 ~@2 e4@2 b3 e4, [b3,ab4]@5 e4@3 ~@3 e4@3 ~@10, ~@6 ab4@5 ~ ab4@5 ~ ab4@5 ~", // E
  L: "~@2 e4@2 b3 e4 ~@2 e4@2 b3 e4 [b3,e4]@2 ~@10, ab4@5 ~ ab4@5 ~@13", M: "[~@21 [c5,db5]@2 b4@8 ~@17]/2",
})).s("gm_electric_guitar_jazz").gain(0.2).pan(0.4)

// other · pad choir
const pad_choir = note("<~@8 A B ~@4 A C A B ~@4 A B ~@12 D E D F ~@16>".pickRestart({
  A: "~@2 eb5 bb5 bb4 eb5 ~ eb5!2 bb5 bb4 eb5 ~@2 eb5 bb5 bb4 eb5 ~ eb5!2 bb5 bb4 eb5",
  B: "~@2 eb5 bb5 bb4 eb5 ~ eb5!2 bb5 bb4 eb5 ~@12",
  C: "~@2 eb5 bb5 bb4 eb5 ~ eb5!2 bb5 bb4 eb5 ~@2 eb5 bb5 bb4 eb5 ~@6",
  D: "~@2 e5 b5 b4 e5 ~ e5!2 b5 b4 e5 ~@2 e5 b5 b4 e5 ~ e5!2 b5 b4 e5",
  E: "~@2 e5 b5 b4 e5 ~ e5!2 b5 b4 e5 ~@2 e5 b5 b4 e5 ~@6", F: "~@2 e5 b5 b4 e5 ~ e5!2 b5 b4 e5 ~@12",
})).s("gm_pad_choir").gain(0.25)

// other · synth brass 1
const synth_brass_1 = note("<~@24 A B C ~@17 D ~ D E ~@8>".pickRestart({
  A: "[g5,c6] ~@23, c5 ~@11", B: "~@18 [eb4,eb5] [f4,f5] [g4,g5] [bb4,bb5] [g4,g5] [c5,g5,c6]", C: "~ [c5,g5,c6] ~@22",
  D: "~@6 [g4,ab4] ~@2 gb4@2 e4@9 ~@4", E: "~@9 db4@2 b3@9 ~@4, ~@9 c4 ~@14",
})).s("gm_synth_brass_1").gain(0.47)

// other · acoustic guitar steel
const acoustic_guitar_steel = note("<~@14 A B A C ~@4 A B ~@12 D E D F ~@16>".pickRestart({
  A: "g4@2 bb4 ~ bb4 eb4 g4@2 bb4 ~ bb4 eb4 g4@2 bb4 ~ bb4 eb4 g4@2 bb4 ~ bb4 eb4",
  B: "g4@2 bb4 ~ bb4 eb4 g4@2 bb4 ~ bb4 eb4 eb4@5 ~@7, ~@4 g4 ~@3",
  C: "g4@2 bb4 ~ bb4 eb4 g4@2 bb4 ~ bb4 eb4 eb4@6 ~@6, ~@3 g4 ~@2",
  D: "ab4@2 b4 ~ b4 e4 ab4@2 b4 ~ b4 e4 ab4@2 b4 ~ b4 e4 ab4@2 b4 ~ b4 e4",
  E: "ab4@2 b4 ~ b4 e4 ab4@2 b4 ~ b4 e4 e4@5 ~@7, ~@4 ab4 ~@3",
  F: "ab4@2 b4 ~ b4 e4 ab4@2 b4 ~ b4 e4 e4@6 ~@6, ~@3 ab4 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.14).pan(0.7)

// other · string ensemble 2
const string_ensemble_2 = note("<~@32 A B A C ~@14 A D A D E@2>".pickRestart({
  A: "~ e5 gb5 b5", B: "e5@3 ~@5", C: "e5@3 ab5@3 gb5@4 ~@2", D: "e5@12 e6@11 ~", E: "[~@6 e5@6 ~ gb5@6 b5@13 ~@16]/2",
})).s("gm_string_ensemble_2").gain(0.09).pan(0.4)

// drums · kick
const kick = s("bd").struct(`<
  A@8 B C A@4 B@3 C D@3 E B F D@2 G E H I D J A@4 B@3 K D E D L D@3 E A M A@4 N ~
>`.pickRestart({
  A: "x!2", B: "x!8", C: "x!5 ~@3", D: "x ~@10 x!2 ~@4 x ~@5 x", E: "x ~@10 x!2 ~@4 x ~@6",
  F: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@5 x ~@4 x", G: "~ x ~@9 x!2 ~@4 x ~@5 x", H: "x ~@4 x ~@5 x!2 ~@4 x ~@6",
  I: "x ~@2 x ~@7 x!2 ~@4 x ~@6", J: "x ~@10 x!2 ~@7 x ~@3", K: "x ~@2 x ~@2 x ~@2 x ~@2 x ~@4 x ~@6",
  L: "x ~@10 x!2 ~@4 x ~@2 x ~ x ~", M: "x ~@11 x ~@4 x ~@6", N: "x",
})).gain(0.52)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@36 A ~@11 B C B D B@2 ~@2>".pickRestart({
  A: "~@23 x", B: "~@11 x ~@5 x ~@5 x", C: "~@11 x ~@11 x", D: "~@11 x ~@5 x ~@6",
})).gain(0.22)

// drums · rim
const rim = s("rim").struct("<A@7 B A C A B A B A@3 D ~@38>".pickRestart({
  A: "~ x ~ x", B: "~@6 x ~@11 x ~@4 x", C: "~@6 x ~@16 x", D: "~ x ~@2",
})).gain(0.59)

// drums · snare
const snare = s("sd").struct("<~@17 A B@3 C B D E B@2 F B@3 G B H B C B@3 I B@14 ~@2>".pickRestart({
// … 54 more lines

More by Paoli