Strudelify

Stai con me

Pooh

KeyG minorTempo120 bpm
0:00/0:00
// Stai con me — Pooh
// 120 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/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 · fretless bass
const bass = note(`<
  ~@11 A B C@2 D@2 E@2 F G C@2 D@2 H@2 I G C@2 D@2 H D I J C@2 D@2 E@2 F G C@2 D@2 E@2 F G C@3 K C@2 D@2 H D I L C@2 D@2
  E@2 F G C@2 D@2 E@2 F G I E F D I E M@2 C@2 D@2 E@2 F@2 ~@7 N@2 C@2 D@2 E@2 F G C@2 D@2 E@2 F G O@4
>`.pickRestart({
  A: "d2@7 g2", B: "c3 c3@2 c3 c3@2 c3 c3@2 c3 c3@4 c3@2", C: "g1!8", D: "eb2!8", E: "c2!8", F: "d2!8",
  G: "d2@2 d2@2 d2@2 d2@2 d2@2 f2@2 d2 c2 bb1@2", H: "f2!8", I: "bb1!8", J: "d1@4 a1@2 c2@2 d2@2 c2@2 d2 c2 d2 c2",
  K: "g2@8 d2@2 f2@2 d2 c2 bb1@2", L: "d2@3 a2@2 c3@3 d3 c3 d3 c3 d3@4", M: "[d2!7 eb2@9]/2",
  N: "[d2@5 ~ g2@6 c3@6 bb2 c3@2 bb2 c3@2 bb2 c3@2 bb2 c3 bb2 c3 bb2]/2", O: "[g1@25 f2@36 ~@3]/4",
})).s("gm_fretless_bass").gain(0.47)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@13 A@2 B@4 C@2 ~@16 A@2 B@4 C@2 A@2 B@4 C@2 D@2 E ~@9 A@2 B@4 C@2 A@2 B@4 C@2 F G F H F G F H A@2 B@4 C@2 ~@9 A@2
  B@4 C@2 A@2 B@4 C@2 ~@4
>`.pickRestart({
  A: "[d4,g4,bb4]/2", B: "[[eb4,g4,bb4]@63 ~]/4", C: "[[d4,gb4,a4]@15 ~]/2", D: "[~@6 g3@25 ~, ~@2 [c4,f4]@29 ~]/2",
  E: "~@7 [c5,g5]@9", F: "[f4,d5]", G: "[g4,eb5]", H: "[g4,eb5]@15 ~",
})).s("gm_string_ensemble_2").gain(0.14)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~ A B C ~@9 D@2 E@2 F@2 G H ~@7 I J ~@6 K L@2 M@2 N O P Q L@2 M@2 N O P Q R S T U J ~@6 V L@2 M@2 N O W X L@2 Y@2 Z@2
  AA AB AC AD AE AF AC AD AG@2 D@2 AH@2 F@2 G H ~@9 L@2 M@2 N O AI AJ L@2 AK AL AM AN AO AP AQ@4
>`.pickRestart({
  A: "[g2,g3]@2 ~ g3 ~ g2 g3@2 ~ g3 ~ g2 g3 ~@2 g3", B: "~ g2 g3 ~@2 g3 ~ g2 g3 ~@2 g3 ~@4",
  C: "[g2,g3] ~@2 g3 ~ g2 g3 ~@2 g3 ~ g2 g3 ~@3", // G
  D: "[[a3,a4]@3 [g3,g4]@3 [d3,d4]@5 [g2,g3] [a2,a3] [bb2,bb3] [a2,a3] [g2,g3]]/2", // A G D G A Bb A G
  E: "[[f3,f4]@3 [eb3,eb4]@3 [bb2,bb3]@4 ~ [d4,d5]!5]/2", F: "[d4,d5]@2 [c4,c5] [c4,c5]@4 [g3,g4]",
  G: "[bb3,bb4]@2 [a3,a4] [a3,a4]@5", H: "c5 d5 c5 [c5,d5] d5 [c5,d5] c5 d5 [c5,d5] c5 d5 [c5,d5] c5 d5 [c5,d5] c5",
  I: "~@8 d3@2 f3@2 d3 c3 bb2@2", J: "g2@9 ~@7", K: "~@4 a2@2 c3@2 d3@2 c3@2 d3 c3 d3 c3",
  L: "[a4@3 g4@3 d4@5 g3 a3 bb3 a3 g3]/2", M: "[f4@3 eb4@3 bb3@9 ~]/2",
  N: "c3 ~ [c3,g3] c3 [c3,g3] c3 ~ c3 [c3,g3]@2 c3 ~ c3 ~ c3 ~", O: "[c3,g3] c3 ~ c3 ~ c3 ~ c3 [c3,g3]@2 c3 ~@5",
  P: "d3 ~ [d3,a3] ~ [d3,a3]!2 ~ d3 [d3,a3]@2 ~@3 d3 [d3,a3] ~", // D5
  Q: "d3 ~ [d3,a3] ~@2 [d3,a3] ~ c3 d3@2 f3@2 d3 c3 bb2@2", // D5
  R: "[g2,d3] ~ [g2,d3] g2 [g2,d3] ~ [g2,d3] g2!3 [g2,d3] g2 [g2,d3] g2 [g2,d3] g2", // G5
  S: "[g2,d3] ~ g2!2 [g2,d3] ~ f3 ~ f3@2 d3 c3 bb2@2 g2 ~", // G5
  T: "[g2,d3] ~ g2!2 [g2,d3] g2 [g2,d3] g2!3 [g2,d3]@2 g2!2 [g2,d3] ~", U: "~@8 c3 d3 f3@2 d3 c3 bb2@2",
  V: "~@2 a3@2 ~ c4 ~ a3 c4@6 ~@2", W: "[d3,a3] ~@2 d3 [d3,a3] ~ d3 [d3,a3] ~ d3 [d3,a3]@4 d3 ~",
  X: "[d4,a4] ~ d3 [d4,a4]@3 d3 ~ c3 d3 f3@2 d3 c3 bb2@2", Y: "[f4@3 eb4@3 bb3@5 [d4,f4,d5]!5]/2",
  Z: "[d4,f4,d5]@2 [c4,eb4,c5] [c4,eb4,c5]@4 [g3,g4]", // Dm Cm G
  AA: "[bb3,eb4,bb4]@3 ~ [a3,d4,a4]@2 [a3,d4,a4]@7 ~ d4 [gb4,a4,d5]", AB: "[d5,a5]@7 ~, gb5 ~@15",
  AC: "f3@5 ~@7 bb2@4, bb2@9 ~@7, ~@3 f3@5", AD: "f3@5 ~ f3@4 ~@2 f3@4, c3@5 c3@3",
  AE: "f3@5 ~ f3@4 ~@2 f3@3 ~, d3@5 ~@3, bb2@8 ~@2 bb2@5 ~", AF: "[bb2,eb3]@6 g3@2 eb4@3 d4@3 bb3@2",
  AG: "[d3@6 d3 ~ d3@2 [bb2,f3]@2 d3@2 [bb2,eb3]@17 ~, bb2@9 ~@23]/2", // Bb5 Eb5
  AH: "[[f3,f4]@6 [eb3,eb4]@6 [bb2,bb3]@9 ~ [d4,d5]@2 [d4,d5]@2 [d4,d5]@2 [d4,d5]@2 [d4,d5]@2]/2", // F Eb Bb D
  AI: "d3 ~ [a3,d4] d3 [a3,d4]!2 ~ d3 [a3,d4]@2 d3 [a3,d4]@2 d3 [a3,d4] ~", // D5
  AJ: "d3 [d4,a4,d5] [d3,a4] d3 [d4,a4,d5]@2 ~ d3 [db3,d3] ~ f3@2 d3 c3 bb2@2", AK: "f4@3 eb4@3 bb3@2",
  AL: "~@3 [c4,c5]!5", AM: "[c4,c5]@2 [c4,c5] [c4,c5]@4 [g3,g4]", AN: "[c4,c5]@4 [c4,c5] ~ [c4,c5]@8 [g3,g4]@2",
  AO: "[bb3,bb4]@4 [a3,a4]@2 [a3,a4]@9 ~", // Bb A
  AP: "[d4,a4,d5]!2 ~ d3 [d4,a4,d5]@2 [e3,f3,g3] [g2,a2,b2,c3,d3] [f2,d4,a4,d5] [d4,a4,d5] ~ d3 [d4,a4,d5]@2 [d3,e3,f3,g3,a3] [g2,a2,b2,c3]", // D5 Em G Dm D5 Dm Cmaj7
  AQ: "[[g2,d3,g3,d4]@31 ~]/4", // G5
})).s("gm_overdriven_guitar").gain(0.29).pan(0.2)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  A@2 ~@2 B@2 C@2 D@2 E@3 F@6 G@4 H@4 I J@7 K L M@6 N@2 O@4 P@2 N@2 Q@2 R@8 K L S@4 P@2 N@2 T@4 P@2 N@2 U@3 V@5 W@6 N@2
  B@2 C@2 X@2 Y@7 P@2 N@2 Z@4 P@2 N@2 AA@3 ~
>`.pickRestart({
  A: "[~@4 [g3,a3,d4]@23 ~@5, ~@3 [g2,d3]@23 ~@6]/2", // Gsus2 G5
  B: "[~@2 a3@2 ~@2 a3@4 ~@8 g3@11 ~@3, g2@15 ~, ~@2 d4@13 ~, ~@5 bb3@10 ~, ~@7 a3@8 ~]/2",
  C: "[~ g3 ~@2 a3 ~@2 g3@8 ~, eb2@5 bb3@10 ~, ~@2 d4@13 ~, ~@3 g3@3 eb2@9 ~]/2",
  D: "[~@8 g3@2 a3@2 g3@2 ~@2 eb2@13 ~@3, f2@2 c4@13 ~, ~ g3@2 f2@5 ~@8, ~@7 a3@8 ~]/2",
  E: "[~@17 d4@24 ~@7, ~@15 d3@26 ~@7, ~@16 [g3,a3,c4]@25 ~@7]/3", // Am7
  F: "[[g3,d4]@4 g3 ~@21 g2@2 ~@8 g3@2 [g3,bb3]@5 ~@15 g3@2 ~@2 g3@2 ~@6 g3@7 ~@3 c3@6 g3 ~ c3@2 g3@2 ~@2 g3@2, g2@11 ~@3 g2@12 ~@6 eb2@20 ~@2 eb2@8 ~@34, ~@4 d3@8 ~@6 d3@7 ~@39 c3@14 ~@14 c3@4, ~@6 d4@18 d4@19 ~ d4@22 ~@4 eb4@15 ~ eb4@10, ~@6 g3@15 ~ g3@5 ~ g3@8 ~@8 [g3,bb3]@13 ~@3 bb3@4 ~@14 g3@6 ~@12]/6", // G5 Gm
  G: "[~@4 a3@2 [a3,d4]@3 ~ a3@2 d3@2 a3@13 ~@6 d4@29 ~@2, d3@10 d4@17 ~@4 g2@30 ~@3, ~@16 [g3,bb3]@15 ~]/4", // D5 Gm
  H: "[~ eb4@27 ~@5 f4@27 ~@4, [g3,bb3]@27 ~@4 f2@28 ~@5, ~@32 [a3,c4]@29 ~@3]/4", // Gm Am
  I: "[bb3,eb4]@4 f3 ~ [f3,bb3,d4]@9 ~, f3@3 ~@13", // Eb5 Bb
  J: "[[a3,d4,gb4]@15 ~@2 d4@25 ~@7 d4@23 ~@9 f4@14 ~@2 f4@14 ~, ~@15 g2@26 ~@6 eb2@23 ~@9 f2@16 eb2@14 ~@3, ~@16 [g3,bb3]@27 ~@5 [g3,bb3]@24 ~@8 [a3,c4]@15 ~ [a3,c4]@14 ~@2]/7", // D Gm Am
  K: "[eb4,bb4]@6 [d4,bb4]@9 ~", L: "[d4,gb4,a4]@7 ~",
  M: "[~@32 eb2@10 ~@2 eb2@18 ~@8 g3@7 ~@3 c3@6 g3 ~ c3@2 g3@2 ~@2 g3@2, ~@12 [g2,g4,bb4,d5]@30 ~@2 [g4,bb4,d5]@23 ~@3 eb4@15 ~ eb4@10, ~@32 c3@7 g3@3 ~@4 c3@2]/6", // Gm
  N: "[~@4 a3@2 [a3,d4]@3 ~ a3@2 d3@2 a3@13 ~@5, d3@10 d4@17 ~@5]/2", // D5
  O: "[~@16 eb2@5 ~ [eb2,g4,bb4,d5]@10, ~@6 [g2,g4,bb4,d5]@15 ~@11]/4", // Ebmaj7 Gm
  P: "[~@6 g3@7 ~@3 c3@6 g3 ~ c3@2 g3@2 ~@2 g3@2, c3@7 g3@3 ~@4 c3@2, ~@6 eb4@15 ~ eb4@10]/2",
  Q: "[~@3 f4@12 ~, g3@15 ~, ~@2 bb3@27 ~@3, ~@2 c4@13 ~]/2",
  R: "[~@6 e4@23 ~@4 d4@25 ~@7 d4@23 ~@9 f4@14 ~@2 f4@14 ~, g3@29 ~@2 g2@26 ~@6 eb2@23 ~@9 f2@16 eb2@14 ~@3, ~@2 bb3@27 ~@3 [g3,bb3]@27 ~@5 [g3,bb3]@24 ~@8 [a3,c4]@15 ~ [a3,c4]@14 ~@2, ~@4 c4@25 ~@99]/8", // Gm Am
  S: "[~@12 g2@20 eb2@10 ~@2 [eb2,g4,bb4,d5]@19 ~, ~@6 [g4,bb4,d5]@15 ~@11]/4", // Ebmaj7 Gm
  T: "[~@12 g2@19 ~ eb2@10 ~@2 [g4,bb4,d5]@20, ~@12 [g4,bb4,d5]@29 ~@3 eb2@18 ~@2]/4", // Gm
  U: "[~@19 f4@4 ~, bb2@8 c3@8 d3@7 ~, ~ f3@7 ~ g3@7 ~ f3@6 ~, ~@4 bb3@13 ~@3 bb3@13 ~@3 bb3@10 ~@2, ~@6 f4@13 ~@3 f4@13 ~@13]/3",
  V: "[~@58 f3@2 ~@2 [g3,eb4]@17 ~, eb3@16 bb2@16 c3@16 d3@11 ~@21, ~@2 bb3@14 ~@2 f3@14 ~@2 g3@14 ~@2 f3@7 ~@23, ~@4 eb4@13 ~@3 bb3@13 ~@3 bb3@13 ~@3 bb3@8 ~@20, ~@6 bb4@13 ~@3 f4@13 ~@3 f4@13 ~@3 f4@6 ~@20]/5", // Cm
  W: "[[g3,d4]@4 g3 ~@21 g2@2 ~@8 g3@2 [g3,bb3]@5 ~ bb3 ~@13 g3@2 ~@2 g3@2 ~@6 g3@7 ~@3 c3@6 g3 ~ c3@2 g3@2 ~@2 g3@2, g2@11 ~@3 g2@12 ~@6 eb2@20 ~@2 eb2@8 ~@34, ~@4 d3@8 ~@6 d3@7 ~@39 c3@14 ~@14 c3@4, ~@6 d4@18 d4@19 ~ d4@22 ~@4 eb4@15 ~ eb4@10, ~@6 g3@15 ~ g3@5 ~ g3@8 ~@8 g3@12 ~@4 bb3@4 ~@14 g3@6 ~@12]/6", // G5 Gm
  X: "[~@8 g3@2 a3@2 g3@2 ~@2 eb2@15 ~, f2@2 c4@13 ~, ~ g3@2 f2@4 a3@8 ~]/2",
  Y: "[~@17 d4@35 ~@8 g2@19 ~ eb2@10 ~@2 [g4,bb4,d5]@20, ~@15 d3@37 ~@40 eb2@18 ~@2, ~@8 [g3,a3,c4]@18 ~@4 [g4,bb4,d5]@15 ~@11]/7", // Gm Am7 Gm
  Z: "[~@12 g2@19 ~ eb2@10 ~@2 [g4,bb4,d5]@20, ~@12 [g4,bb4,d5]@27 ~@5 eb2@18 ~@2]/4", AA: "[[g2,d3]@43 ~@5]/3",
})).s("gm_electric_guitar_clean").gain(0.36)

// chords · lead 1 square
const lead_1_square = note("<A@4 ~@17 B@2 ~@2 C@2 ~@2 B@2 ~@2 C@2 ~@18 D@2 E ~ B@2 ~@2 C@2 ~@59 F@4>".pickRestart({
  A: "[~ bb4@54 ~@9]/4", B: "[~ [a4,bb4,f5]@7]/2", C: "[[f5,c6]@15 ~]/2", D: "[~ [g3,c4,d4]@14 ~]/2", E: "~ [e4,g4]@7",
  F: "[~@10 [d4,bb4]@53 ~]/4", // Gm
})).s("gm_lead_1_square").gain(0.08).pan(0.3)

// other · piano
const piano = note(`<
  ~@29 A B C@2 ~@7 D@4 ~@4 E@4 ~@5 A B F@3 ~@6 D@4 ~@9 G@4 H@2 I@3 ~@9 J@2 K@2 L@2 ~@4 M@4 ~@13
>`.pickRestart({
  A: "d4 c4", B: "bb3@3 g3@5", C: "[d4@5 bb3@2 eb4@2 d4@2 c4@2 bb3@2 ~]/2",
  D: "[~@3 f4@7 eb4@4 bb3 f4@3 eb4@4 bb3 eb4@2 d4@4 ~@3]/4", E: "[~@3 f4@7 eb4@4 bb3 f4@3 eb4@4 bb3 eb4@2 d4@5 ~@2]/4",
  F: "[d4@5 bb3@2 eb4@2 d4@2 c4@2 bb3@4 ~@7]/3", G: "[[bb3,d4]@7 [c4,eb4]@8 [d4,f4]@8 [bb3,eb4]@8 ~]/4",
  H: "[[bb3,d4]@7 [c4,eb4]@8 ~]/2", I: "[~ [d4,g4,bb4]@2 [c4,f4,a4]@2 [d4,g4]@2 [d4,g4,bb4]@8 [d4,bb4]@8 ~]/3",
  J: "[d4@5 bb3@2 eb4@2 d4@2 c4@2 bb3@3]/2", K: "[[a3,f4]@7 [a3,f4]@2 [bb3,f4]@2 [c4,f4]@5]/2",
  L: "[[eb4,f4,bb4]@3 [d4,f4,bb4]@8 [c4,f4,bb4]@3 [d4,gb4,a4]@16 ~@2]/2", // Ebsus2 Bb Fsus4 D
  M: "[~@6 f4@14 eb4@8 bb3@2 f4@6 eb4@8 bb3@2 eb4@4 d4@2 d4@11 ~]/4",
})).s("gm_piano").gain(0.05)

// chords · lead 2 sawtooth
const lead_2_sawtooth = note("<~@52 A ~@2 B ~ C D E@2 F@2 G H ~@61>".pickRestart({
  A: "~@6 c6@9 ~", B: "~@7 bb4@9, ~@2 bb4@4 g5@9 ~, ~@4 c5@11 ~", C: "[bb3,d4,g4] [a3,c4,f4]", D: "[bb3,d4,g4]",
  E: "[bb3,d4,g4]/2", F: "[a3,c4,f4]/2", G: "[bb3,f4]", H: "[a3,d4]@15 ~",
})).s("gm_lead_2_sawtooth").gain(0.15).pan(0.2)

// chords · pad warm
const pad_warm = note("<~@4 A@2 B@2 C@2 D E@2 ~@40 F@2 G ~@41 H@2 B@2 C@2 I@3 ~@16 J@4>".pickRestart({
  A: "[~@3 c4@5, g2]/2", B: "[eb2,eb3,g3,bb3,eb4]/2", C: "[f2,c4]/2", D: "eb4@7 ~ d4@8, [bb2,f3,bb3]",
  E: "[g3,a3,c4,g4]/2", F: "[[g2,g3,bb3,d4,f4]@31 ~]/2", G: "[g3,bb3,e4]", H: "[~@3 c4@5, [g2,g3,bb3,d4,f4]]/2",
  I: "[[bb2,f3,bb3] [g3,a3,c4,g4]@2, d4]/3", J: "[[d4,g4]@31 ~]/4",
})).s("gm_pad_warm").gain(0.23)

// chords · pad warm · soft notes
const pad_warm_soft = note("<~@8 A@2 ~@91 A@2 ~@23>".pickRestart({
  A: "[f3,g3,a3]/2", // F
})).s("gm_pad_warm").gain(0.12)

// chords · piano
const piano_2 = note(`<
  A@2 ~@11 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I J K L M@2 N O I J P@2 C@2 D@2 E@2 Q@2 C@2 D@2 E@2 R@2 S ~ K L M@2 N O I J Q@2
  C@2 D@2 E@2 Q@2 C@2 D@2 E@2 T U V W T U X@2 Q@2 C@2 D@2 E@2 Y Z AA@2 AB AC ~@3 Q@2 C@2 D@2 E@2 Q@2 C@2 D@2 E@2 AD@4
>`.pickRestart({
  A: "[~@4 [bb3,f4]@23 ~@5]/2", // Bb5
  B: "[[g1,g2,bb4,d5,a5]@5 ~ [g1,g2,bb4,d5,g5]@5 ~ g4@10 g4 ~ a4@2 bb4@2 a4@2 g4 ~, ~@12 [g1,g2]@15 ~@5, ~@3 [bb4,d5]@3 ~@2]/2", // Gm G Bb
  C: "[[eb2,g4,bb4,f5]@6 [eb2,g4,bb4,eb5]@5 ~ [eb2,g4,bb4]@9 ~@11]/2", // Eb
  D: "[bb3@3 ~ bb3 ~ eb4@3 ~ bb3@2 c2@3 ~ c2@10 bb3@2 ~@2 bb3 ~, c2@10 eb4@12 ~@4 [eb4,g4]@5 ~, g4@9 ~ g4@15 ~@3 c2@4]/2", // Eb
  E: "[[a3,c4]@3 ~@3 [a3,c4,gb4]@4 a3@2 d2@3 ~@7 [c4,gb4]@4 a3@2 d2@2 a3 ~, d2@11 ~@5 d2@11 ~@5, gb4@5 ~@5 [c4,gb4]@12 ~@4 [c4,gb4]@5 ~]/2", // Am Gbdim Cdim
  F: "[[g3,bb3,d4]@13 ~@3, g1@11 ~@5]/2", G: "[[eb2,g3,bb3,d4]@15 ~]/2", H: "[[f2,f3,a3,c4]@7 ~]/2",
  I: "[bb3,eb4]@5 ~ f3@4 bb1@4 ~@2, bb1@3 ~@5, f3 ~@2 [bb3,d4]@4 ~", J: "[a3,d4,gb4]@3 ~",
  K: "[g1,g2,bb3,d4,g4]@7 ~ [g1,g2,a3,c4,f4]@8", L: "[g1,g2,g3,bb3,d4]@13 ~@3",
  M: "[[eb2,d4,g4,bb4]@12 ~@2 [eb4,c5]@4 [d4,bb4]@4 [c4,a4]@3 ~ [bb3,g4]@5 ~]/2", N: "[f2,a3,c4,f4]@13 ~@3",
  O: "[eb2,a3,c4,f4]@7 ~", // F7
  P: "[[g1,g2,bb4,d5,a5]@5 ~ [g1,g2,bb4,g5]@5 ~ g4@9 ~ g4 ~ a4@2 bb4@2 a4@2 g4 ~, ~@6 d5 ~@5 [g1,g2]@15 ~@5, ~@3 [bb4,d5]@3 ~@2]/2", // Gm G Bb
  Q: "[[g1,g2,bb4,d5,a5]@5 ~ [g1,g2,bb4,d5,g5]@5 ~ g4@9 ~ g4 ~ a4@2 bb4@2 a4@2 g4 ~, ~@12 [g1,g2]@15 ~@5, ~@3 [bb4,d5]@3 ~@2]/2", // Gm G Bb
  R: "[~ bb3 c4 bb3 c4 bb3 c4@8 ~@2, [g1,g2,g3]@7 ~]/2", S: "~@6 e4@9 ~, [g1,g2,g3]@15 ~, ~@2 bb3@13 ~, ~@4 c4@11 ~",
  T: "[bb1,f4]@15 ~, [bb3,d4]@13 ~@3", U: "[c2,f4]@15 ~, [g3,eb4]@13 ~@3", V: "[d2,bb3,f4]@15 ~, d4@13 ~@3",
  W: "[g3,bb3]@3 ~ [g3,bb3]@2 ~@2 [g3,eb4]@3 [g3,d4]@3 bb3@2, eb1@2 ~ eb2@5", // Gm Cm G5
  X: "[[d2,f3,d4]@4 [f3,bb3]@2 ~@2 f3 ~ [f3,bb3,d4] ~@3 [eb2,g3,bb3,eb4]@14 ~@4, ~@4 d4@5 ~@23, ~@6 d2@5 ~@21]/2", // Dm Bb5 Bb Eb
  Y: "bb4 ~ bb4 ~ bb4 ~ bb4@2 a4 ~ a4 ~ a4 ~ a4@2", Z: "g4@3 ~ g4@2 d4@10",
  AA: "[bb4 ~ bb4 ~ bb4 ~ bb4 ~ bb4@2 g4@4 [eb4,c5]@4 [d4,bb4]@4 [c4,a4]@4 [bb3,g4]@5 ~]/2", // Cm Gm F Eb
  AB: "a4@2 a4 ~ a4 ~ a4 ~ a4@3 ~ bb4@2 c5@2", AC: "~@2 c5@3 ~ c5@3 ~ c5@4 ~@2", AD: "[[g1,g2]@63 ~]/4",
})).s("gm_piano").gain(0.34).pan(0.6)

// chords · piano · soft notes
const piano_soft = note(`<
  ~@17 A@2 B@2 ~@6 C ~@7 C ~@5 A@2 B@2 ~@4 A@2 B@2 ~@10 C ~@5 A@2 B@2 ~@4 A@2 B@2 ~@12 A@2 B@2 ~@13 A@2 B@2 ~@4 A@2 B@2
  ~@4
>`.pickRestart({
  A: "[~@6 bb3@3 ~@5 bb3@5 ~ bb3 ~ [bb3,eb4]@3 ~@7]/2", B: "[~@4 [a3,c4] ~@9 a3@6 a3 ~ a3@3 ~@7]/2",
  C: "~@2 f3 ~@3 f3 ~",
})).s("gm_piano").gain(0.21).pan(0.6)

// bass · synth bass 1
const bass_2 = note(`<
  ~@4 A B C D E F G H@2 I J K L M@2 N O P Q R S T U V W P Q R S X Y Z W I J K L M@2 N O I J K L M@2 N O ~@3 AA P Q R S X
  Y AB W I J K L M@2 N O I J K L M@2 N O ~@8 I J K L M@2 N O A B C D E F AC H@2 I J K L M@2 N O I J K L M@2 N O ~@4
>`.pickRestart({
  A: "~@14 g1 ~", B: "g1 ~ g1 g2 ~ g2!2 g1 g1@2 g2@2 ~@2 g1 ~", C: "eb1@5 ~@9 eb1 ~",
  D: "eb1 ~ eb1 eb2 ~ eb2!2 eb1 eb1@2 eb2@2 ~@2 eb1 ~", E: "f1@4 ~@10 f1 ~",
  F: "f1 ~ f1 f2 ~ f2!2 f1 f1@2 f2@2 ~@2 f1 ~", G: "bb1 ~ bb1 bb2 ~ bb2!2 bb1 bb1@2 bb2@2 ~@2 bb1 ~",
  H: "d2@2 d3!2 d2 d3 ~ d2 d3 ~ d2 d3 ~ d2 d3!2", I: "g1@2 ~ g2 g1@2 g2!2 g1 g2 ~ g1 g2 ~ g1 ~",
  J: "g1@3 g2 g1@2 g2!2 g1 g2 ~ g1 g2 ~ g2 ~", K: "eb2@2 ~ eb3 eb2@2 eb3!2 eb2 eb3 ~ eb2 eb3 ~ eb2 ~",
  L: "eb2@3 eb3 eb2 ~ eb3!2 eb2 eb3 ~ eb2 eb3 ~ eb3 ~", M: "c2@3 c3 c2@2 c3!2 c2 c3 ~ c2 c3@2 c2 ~",
  N: "d2@2 ~ d3 d2@2 d3!2 d2 d3 ~ d2 d3@2 d2 ~", O: "d2@3 d3 d2@2 d3!2 d2 d3 ~ d2 d3@2 d2 ~",
  P: "g1@2 g2!2 g1@2 g2!2 g1 g2 ~ g1 g2 ~ g1!2", Q: "g1@2 g2!2 g1@2 g2!2 g1 g2 ~ g1 g2@2 g1 ~",
  R: "eb2@2 eb3!2 eb2 ~ eb3!2 eb2 eb3 ~ eb2 eb3 ~ eb2!2", S: "eb2@2 eb3!2 eb2 ~ eb3!2 eb2 eb3 ~ eb2 eb3@2 eb2 ~",
  T: "f2@2 f3!2 f2 ~ f3!2 f2 f3 ~ f2 f3 ~ f2 ~", U: "f2 ~ f3!2 f2 ~ f3!2 f2 f3 ~ f2 f3@2 f2 ~",
  V: "bb1@2 bb2!2 bb1@2 bb2!2 bb1 bb2 ~ bb1 bb2 ~ bb1 ~", W: "d2@2 d3!2 d2 ~ d3!2 d2 d3 ~ d2 d3 ~ d2 ~",
  X: "f2@2 f3!2 f2@2 f3!2 f2 f3 ~ f2 f3@2 f2@2", Y: "eb2@2 eb3!2 eb2@2 eb3!2 eb2 eb3 ~ eb2 eb3@2 eb2@2",
  Z: "bb1@2 bb2!2 bb1@2 bb2!2 bb1 bb2 ~ bb1 bb2@2 bb1@2",
  AA: "~@2 [a3,c4,d4,g4]!3 [c4,d4,g4]@2 ~ [c4,db4] d4 f4@2 [db4,d4] ~ c4 bb3, ~@5 a3 ~@10", // Am7 Csus2 Dbmaj7 Dmaj7
  AB: "bb1@2 bb2!2 bb1 ~ bb2!2 bb1 bb2 ~ bb1 bb2 ~ bb1 ~", AC: "bb1 ~@7",
})).s("gm_synth_bass_1").gain(0.28).pan(0.7)

// other · epiano1
const epiano1 = note(`<
  [~@9 d6@2 ~@5]
  [~@2 g3 d3 g3 d3 g3 d3, ~ d3@2 ~@5]
  [~@2 d3@2 g3@2 d3@2 g3@2 d3@2 g3@2 d3 ~]
  ~@123
>`).s("gm_epiano1").gain(0.15).pan(0.3)

// other · string ensemble 1
const string_ensemble_1 = note("<~@81 A B C@2 A B C@2 D@4 E F G@2 ~@29>".pickRestart({
// … 79 more lines

More by Pooh