Strudelify

Sei tua, sei mia

Pooh

KeyE♭ minorTempo71 bpm
0:00/0:00
// Sei tua, sei mia — Pooh
// 71 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 11 electric guitar clean (copy of ch 8 electric guitar clean, 0.083 beats late)
// note: Full arrangement: all 78 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(71/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 · overdriven guitar
const overdriven_guitar = note("<~@59 A B@2 C D E F@3 C D E F@3 C D E G>".pickRestart({
  A: "~@14 ab5 ~",
  B: "[ab5@18 gb5@3 ~@3 gb5@18 db5 ~@2 bb5@2 ~ b5@12 bb5@12 ab5@6 bb5@2 ~@4 bb5@2 ~ ab5@3 gb5@6, ~@44 gb5@2 ~ db6@2 ~@47]/2",
  C: "eb6@3 eb5 ~@2 bb5@2 ~ gb5@3 bb4@12 bb5@2 ~ gb5@3 bb4@12 b4@3 bb4@3, ~@4 ab5 ~@8 ab5 ~@10",
  D: "b4@18 eb5@6 b4@6 eb5@6 db5@3 db5@2 ~ bb4@6",
  E: "~@6 ab4@2 ~ eb4 ~ db4 b3@14 ~ b3@2 eb4 gb4@2 eb4 b3@5 ~ b3@2 eb4 gb4@2 eb4 b3@3, ~@4 gb4 ~@19",
  F: "[~ db4@11 bb4 ~@2 f4@2 eb4@2 db4@7 ~ db4 ~ f4 ab4@2 db4@6 ~ db4@2 f4 [ab4,ab5]@2 ~ f4@2 ~ ab5@18 gb5@3 ~@3 gb5@18 db5 ~@2 bb5@2 ~ b5@12 bb5@12 ab5@6 bb5@2 ~@4 bb5@2 ~ ab5@3 gb5@6, ~@14 ab4@2 ~@16 f4 ~@11 db4@2 ~ ab4@2 ~@43 gb5@2 ~ db6@2 ~@47]/3", // Ab
  G: "~ db4@11 ~@36",
})).s("gm_overdriven_guitar").gain(0.32).pan(0)

// other · distortion guitar
const distortion_guitar = note("<~@59 A B C D E@2 F B C D E@2 F B C D E@2 G>".pickRestart({
  A: "~@14 b5 ~", B: "b5@18 bb5@3 ~@3 bb5@18 db5 gb5@2 ~ db6@2, ~@45 bb5@2 ~",
  C: "db6@12 db6@12 b5@6 bb5@2 ~@4 bb5@2 ~ ab5@3 gb5@6",
  D: "~ eb6@2 eb5 ~@3 f5@2 eb5@2 ~ gb4@10 bb4@2 ~ f5@2 eb5@3 gb4@12 ab4@2 gb4@3 ~, ~@3 gb5 ~@8 gb5 ~@11",
  E: "[ab4@18 db5@6 ab4@6 db5@6 ab4@3 ab4@2 ~ gb4@10 ~@3 gb4@2 eb4 db4 ~ b3@14 ~ b3@2 eb4 ~ eb4 ~ b3@5 ~@2 eb4 ~@2 eb4 ~ b3@3, ~@54 ab4@2 ~@22 gb4@2 ~@7 b3@2 ~ gb4@2 ~@4]/2",
  F: "db4@11 ~ bb4 ab4@2 ~ eb4@2 db4@7 ~@3 f4 ~@2 f4 db4@6 ~@2 f4 ~@2 db4@2 ~ ab4@2, ~@15 f4@2 ~@10 db4@2 ~ ab4@2 ~@7 db4@2 ~ ab4@2 ~ f4@2 ~",
  G: "db4@11 ~ bb4 ab4@2 ~ eb4@2 db4@7 ~@3 f4 ~@2 f4 db4@6 ~@2 f4 ~@2 db4@2 ~@3, ~@15 f4@2 ~@10 db4@2 ~ ab4@2 ~@7 db4@2 ~ ab4@2 ~@4",
})).s("gm_distortion_guitar").gain(0.37).pan(1)

// other · overdriven guitar
const overdriven_guitar_2 = note(`<
  ~@18 A B C D E F A B C D E F ~@17 G H I J K L G H I J K L M N O P Q R S N O P Q R S N O P Q R T
>`.pickRestart({
  A: "eb3@17 ~ bb2@3 c3@3 eb3@3 ~@3 f3@3 g3@9 bb2@3 c3@3", B: "eb3@18 bb2@3 c3@3 eb3@3 ~@3 f3@2 ~ g3@8 ~ f2@3 g2@3",
  C: "c3@18 f2@3 g2@3 c3@4 ~@2 d3@3 eb3@9 f2@3 g2@3", D: "c3@18 f2@3 g2@3 c3@3 ~@3 d3@2 ~ eb3@15",
  E: "ab2@18 eb3@2 ~ f3@3 ab3@3 ~@3 bb3@2 ~ c4@15", F: "bb2@16 ~@2 f3@2 ~ g3@3 bb3@4 ~@2 c4@3 d4@14 ~",
  G: "e3@17 ~ b2@3 db3@3 e3@3 ~@3 gb3@3 ab3@9 b2@3 db3@3", H: "e3@18 b2@3 db3@3 e3@3 ~@3 gb3@2 ~ ab3@8 ~ gb2@3 ab2@3",
  I: "db3@18 gb2@3 ab2@3 db3@4 ~@2 eb3@3 e3@9 gb2@3 ab2@3", J: "db3@18 gb2@3 ab2@3 db3@3 ~@3 eb3@2 ~ e3@15",
  K: "a2@18 e3@2 ~ gb3@3 a3@3 ~@3 b3@2 ~ db4@15", L: "b2@16 ~@2 gb3@2 ~ ab3@3 b3@4 ~@2 db4@3 eb4@14 ~",
  M: "db2 ~@17 ab2@3 bb2@2 ~ db3@4 ~@2 eb3@2 ~ f3@15, ~@3 db2@19 ~@26",
  N: "gb3@17 ~ db3@3 eb3@3 gb3@3 ~@3 ab3@3 bb3@9 db3@3 eb3@3",
  O: "gb3@18 db3@3 eb3@3 gb3@3 ~@3 ab3@2 ~ bb3@8 ~ ab2@3 bb2@3",
  P: "eb3@18 ab2@3 bb2@3 eb3@4 ~@2 f3@3 gb3@9 ab2@3 bb2@3", Q: "eb3@18 ab2@3 bb2@3 eb3@3 ~@3 f3@2 ~ gb3@15",
  R: "b2@18 gb3@2 ~ ab3@3 b3@3 ~@3 db4@2 ~ eb4@15", S: "db3@16 ~@2 ab3@2 ~ bb3@3 db4@4 ~@2 eb4@3 f4@14 ~",
  T: "db3@16 ~@2 ab3@2 ~ bb3@3 db4@4 ~@2 eb4@3 f4@12 ~@3",
})).s("gm_overdriven_guitar").gain(0.18).pan(0)

// chords · electric guitar clean
const electric_guitar_clean = note("<A@2 B C D E ~@8 F@4 ~@12 G H I J K ~@8 L@4 ~@31>".pickRestart({
  A: "[~@4 g3@3 ~ g3@3 ~ g3@3 ~ g3@16, ~@8 d4@13 d4@12 d4@11 ~ d4@51, ~@10 a3@13 a3@12 a3@11 a3@49 ~]/2",
  B: "~@2 db5@5 ~, ~@5 d4@15 ~@4, ~@11 [gb4,a4]@30 ~@7", // Gbm
  C: "~@6 [d4,gb4,a4,db5] ~@2 [d4,gb4,a4,db5]@2 ~@19 [d4,gb4,a4,db5]@2 ~@7 [d4,gb4,a4,db5]@9", // Dmaj7
  D: "~@3 d5@8 ~, ~@5 e4@16 ~@3, ~@11 [g4,b4]@32 ~@5", // G
  E: "~@6 [e4,g4,b4,d5] ~@2 [e4,g4,b4,d5]@2 ~@19 [e4,g4,b4,d5]@2 ~@7 [e4,g4,b4,d5]@9", // Em7
  F: "[~@30 [eb4,g4,bb4,d5] ~@8 [eb4,g4,bb4,d5]@27 ~@12 [eb4,g4,bb4,d5] ~@8 [eb4,g4,bb4,d5]@20 ~@19 [ab4,c5,eb5,f5] ~@8 [ab4,c5,eb5,f5]@21 ~@18 [ab4,c5,eb5,f5] ~@8 [ab4,c5,eb5,f5]@8 ~]/4", // Ebmaj7 Fm7
  G: "[ab3,c4,eb4] ~@8 [ab3,c4,eb4]@15", H: "~@2 d5@5 ~, ~@5 eb4@15 ~@4, ~@11 [g4,bb4]@30 ~@7",
  I: "~@6 [eb4,g4,bb4,d5] ~@2 [eb4,g4,bb4,d5]@2 ~@19 [eb4,g4,bb4,d5]@2 ~@7 [eb4,g4,bb4,d5]@9", // Ebmaj7
  J: "~@3 eb5@8 ~, ~@5 f4@16 ~@3, ~@11 [ab4,c5]@32 ~@5", // Ab
  K: "~@6 [f4,ab4,c5,eb5] ~@2 [f4,ab4,c5,eb5]@2 ~@19 [f4,ab4,c5,eb5]@2 ~@7 [f4,ab4,c5,eb5]@9", // Fm7
  L: "[~@30 [e4,ab4,b4,eb5] ~@8 [e4,ab4,b4,eb5]@27 ~@12 [e4,ab4,b4,eb5] ~@8 [e4,ab4,b4,eb5]@20 ~@19 [a4,db5,e5,gb5] ~@8 [a4,db5,e5,gb5]@21 ~@18 [a4,db5,e5,gb5] ~@8 [a4,db5,e5,gb5]@8 ~]/4", // Emaj7 Gbm7
})).s("gm_electric_guitar_clean").gain(0.11).pan(0)

// chords · pad sweep
const pad_sweep = note(`<
  A B@2 ~@15 C@4 D@2 E@2 F@2 G H I ~@16 J@4 K@2 L@2 M@2 N O P Q@4 R@2 S@2 T@2 U V Q@4 W@2
>`.pickRestart({
  A: "[a2,a3,d4,e4,g4]@47 ~", B: "[[a2,a3,d4,e4,g4]@2 ~@7 [a2,d4,e4,g4]@15 ~@24, ~@3 a3@13]/2",
  C: "[[eb3,bb3,g4]@96 [c3,c4,g4]@95 ~, eb4@191 ~]/4", // Eb C5
  D: "[[ab2,ab3,c4,g4]@47 ~ [bb2,ab3,c4,g4]@23 ~ [bb2,bb3,d4,f4]@24, eb4@3 ~]/2", E: "[[eb3,bb3,eb4,g4]@95 ~]/2",
  F: "[c3,c4,eb4,g4]/2", G: "[ab2,ab3,c4,eb4,g4]@47 ~", H: "[bb2,ab3,c4,eb4,g4] [bb2,bb3,d4,f4]",
  I: "[bb2,bb3,c4,eb4,f4]@7 ~@11 [bb2,bb3,c4,eb4,f4]@30", J: "[[e3,b3,ab4]@96 [db3,db4,ab4]@95 ~, e4@191 ~]/4",
  K: "[[a2,a3,db4,ab4]@47 ~ [b2,a3,db4,ab4]@23 ~ [b2,b3,eb4,gb4]@24, e4@3 ~]/2", L: "[[e3,b3,e4,ab4]@95 ~]/2",
  M: "[db3,db4,e4,ab4]/2", N: "[a2,a3,db4,e4,ab4]@47 ~", O: "[b2,a3,db4,e4,ab4] [b2,b3,eb4,gb4]",
  P: "[db2,db3,db4,f4,ab4]", Q: "[[gb3,db4,bb4]@96 [eb3,eb4,bb4]@95 ~, gb4@191 ~]/4",
  R: "[[b2,b3,eb4,bb4]@47 ~ [db3,b3,eb4,bb4]@23 ~ [db3,db4,f4,ab4]@24, gb4@3 ~]/2", S: "[[gb3,db4,gb4,bb4]@95 ~]/2",
  T: "[eb3,eb4,gb4,bb4]/2", U: "[b2,b3,eb4,gb4,bb4]@47 ~", V: "[db3,b3,eb4,gb4,bb4] [db3,db4,f4,ab4]",
  W: "[[b2,b3,eb4,bb4]@47 ~@49, gb4@31 ~]/2", // Bmaj7
})).s("gm_pad_sweep").gain(0.42).pan(0.8)

// chords · string ensemble 2
const string_ensemble_2 = note("<A@3 ~@26 B@3 ~@46>".pickRestart({
  A: "[[a2,g4,a4,d5]@46 ~ [a2,g4,a4,d5]@4 ~@14 [a2,g4]@30 [d3,gb4]@48 ~, ~@65 [a4,d5]@78 ~]/3", // Dsus4 A7 D D5
  B: "[~@46 [bb2,bb3,c4,eb4,f4]@5 ~@14 [c4,f4]@32 ~@47, ~@32 [bb3,eb4]@27 ~@13, ~@64 bb2@33 ~@47]/3", // Bbsus4 F5 Eb5
})).s("gm_string_ensemble_2").gain(0.37).pan(0.3)

// other · string ensemble 2
const string_ensemble_2_2 = note("<~@18 A B A B C D A B A B C D ~ E@2 F@2 ~@43>".pickRestart({
  A: "ab5 g5", B: "ab5 bb5", C: "f5 eb5", D: "g5 f5", E: "[bb5@5 g5 bb5 f6]/2", F: "[eb6@5 ab5 c6 eb6]/2",
})).s("gm_string_ensemble_2").gain(0.19).pan(1)

// other · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@35 A@2 B@2 A@2 B@2 ~@35>".pickRestart({
  A: "[d6@5 g5 bb5 f6]/2", B: "[eb6@5 ab5 c6 eb6]/2",
})).s("gm_string_ensemble_2").gain(0.1).pan(1)

// other · electric guitar muted
const electric_guitar_muted = note("<~@2 A B C D ~@8 E F G H ~@13 I J K L ~@8 M N O P ~@31>".pickRestart({
  A: "d3@18 a2@2 ~ b2@2 ~ d3@2 ~@4 e3@3 gb3@9 a2@2 ~ b2@2 ~", B: "d3@18 a2@2 ~ b2@2 ~ d3@3 ~@3 e3@3 gb3@14 ~",
  C: "e3@18 a2@2 ~ b2@2 ~ e3@3 ~@3 gb3@3 g3@9 a2@3 b2@2 ~", D: "e3@17 ~ a2@2 ~ b2@2 ~ e3@2 ~@4 gb3@2 ~ g3@13 ~@2",
  E: "eb2 ~@2 eb2 ~@2 eb2 ~@2 d2@9 c2@12 bb1@2 ~@4 bb1@2 ~ c2@3 d2@2 ~@4",
  F: "eb2 ~@2 eb2 ~@2 eb2@2 ~ d2@9 c2@12 bb1@3 ~@3 bb1@2 ~ c2@3 eb2@3 ~@3",
  G: "f2 ~@2 f2 ~@2 f2@2 ~ eb2@9 c2@12 bb1@3 ~@3 bb1@2 ~ c2@2 ~ eb2@3 ~@3",
  H: "f2 ~@2 f2 ~@2 f2@2 ~ eb2@9 c2@12 bb1@2 ~@4 bb1@3 c2@3 f2@4 ~@2",
  I: "eb3@18 bb2@2 ~ c3@2 ~ eb3@2 ~@4 f3@3 g3@9 bb2@2 ~ c3@2 ~", J: "eb3@18 bb2@2 ~ c3@2 ~ eb3@3 ~@3 f3@3 g3@14 ~",
  K: "f3@18 bb2@2 ~ c3@2 ~ f3@3 ~@3 g3@3 ab3@9 bb2@3 c3@2 ~", L: "f3@17 ~ bb2@2 ~ c3@2 ~ f3@2 ~@4 g3@2 ~ ab3@13 ~@2",
  M: "e2 ~@2 e2 ~@2 e2 ~@2 eb2@9 db2@12 b1@2 ~@4 b1@2 ~ db2@3 eb2@2 ~@4",
  N: "e2 ~@2 e2 ~@2 e2@2 ~ eb2@9 db2@12 b1@3 ~@3 b1@2 ~ db2@3 e2@3 ~@3",
  O: "gb2 ~@2 gb2 ~@2 gb2@2 ~ e2@9 db2@12 b1@3 ~@3 b1@2 ~ db2@2 ~ e2@3 ~@3",
  P: "gb2 ~@2 gb2 ~@2 gb2@2 ~ e2@9 db2@12 b1@2 ~@4 b1@3 db2@3 gb2@4 ~@2",
})).s("gm_electric_guitar_muted").gain(0.27).pan(0.7)

// bass · fretless bass
const bass = note(`<
  A B C D E F G@2 H I J@2 K L M N O P Q R S@3 T Q R S@3 T U V W X Y Z@2 AA AB AC@2 AD AE AF AG AH AI AJ AK AL@3 AM AJ AK
  AL@3 AM AN AO AP AQ@3 AR AO AP AQ@3 AR AO AP AQ@3 AS
>`.pickRestart({
  A: "a1@15 ~", B: "a1@3 ~@14 a1@31", C: "d2@18 a1@2 ~ b1@2 ~ d2@2 ~@4 e2@3 gb2@9 a1@2 ~ b1@2 ~",
  D: "d2@18 a1@2 ~ b1@2 ~ d2@3 ~@3 e2@3 gb2@14 ~", E: "e2@18 a1@2 ~ b1@2 ~ e2@3 ~@3 gb2@3 g2@9 a1@3 b1@3",
  F: "~ e2@17 a1@2 ~ b1@2 ~ e2@2 ~@3 gb2@2 ~ g2@13 ~@3", G: "[[d2,a2]@10 a2@2 d3@15 ~ [a2,d3]@4]/2", H: "g2",
  I: "e3@12 d3@2 ~@4 d3@17 ~ d3@3 b2@9", J: "[[d2,a2]@12 a2@2 d3@13 ~ d3@4, ~@83 a2@12 ~]/2", K: "g2@23 ~",
  L: "e3@6 d3 ~@2 d3@15", M: "eb2 ~@2 eb2 ~@2 eb2 ~@2 d2@9 c2@12 bb1@2 ~@4 bb1@2 ~ c2@3 d2@2 ~@4, eb1",
  N: "eb2 ~@2 eb2 ~@2 eb2@2 ~ d2@9 c2@12 bb1@3 ~@3 bb1@2 ~ c2@3 eb2@3 ~@3, eb1",
  O: "f2 ~@2 f2 ~@2 f2@2 ~ eb2@9 c2@12 bb1@3 ~@3 bb1@2 ~ c2@2 ~ eb2@3 ~@3, f1",
  P: "f2 ~@2 f2 ~@2 f2@2 ~ eb2@9 c2@12 bb1@2 ~@4 bb1@3 c2@3 f2@4 ~@2, f1",
  Q: "eb2@17 ~ bb1@2 c2@2 ~@2 eb2@3 ~@2 f2@3 g2@10 bb1@3 c2@2 ~",
  R: "eb2@17 bb1@3 c2@2 ~@2 eb2@3 ~@2 f2@3 g2@8 ~ f1@3 g1@3 ~",
  S: "[c2@18 f1@2 ~ g1@2 ~ c2@4 ~ d2@3 eb2@9 f1@3 g1@3 c2@19 f1@3 g1@3 c2@3 ~@2 d2@2 ~ eb2@15 ab1@19 eb2@2 ~ f2@3 ab2@3 ~@2 bb2@2 ~ c3@15 ~]/3",
  T: "bb1@16 ~@2 f2@2 g2@3 ~ bb2@4 ~ c3@3 d3@14 ~@2", U: "bb1 ~@2 bb1@5",
  V: "eb2@18 bb1@2 ~ c2@2 ~ eb2@2 ~@4 f2@3 g2@9 bb1@2 ~ c2@2 ~", W: "eb2@18 bb1@2 ~ c2@2 ~ eb2@3 ~@3 f2@3 g2@14 ~",
  X: "f2@18 bb1@2 ~ c2@2 ~ f2@3 ~@3 g2@3 ab2@9 bb1@3 c2@3", Y: "~ f2@17 bb1@2 ~ c2@2 ~ f2@2 ~@3 g2@2 ~ ab2@13 ~@3",
  Z: "[[eb2,bb2]@10 bb2@2 eb3@15 ~ [bb2,eb3]@4]/2", AA: "ab2", AB: "f3@12 eb3@2 ~@4 eb3@17 ~ eb3@3 c3@9",
  AC: "[[eb2,bb2]@12 bb2@2 eb3@13 ~ eb3@4, ~@83 bb2@12 ~]/2", AD: "ab2@23 ~", AE: "f3@12 eb3@2 ~@4 eb3@27 ~@3",
  AF: "e2 ~@2 e2 ~@2 e2 ~@2 eb2@9 db2@12 b1@2 ~@4 b1@2 ~ db2@3 eb2@2 ~@4, e1",
  AG: "e2 ~@2 e2 ~@2 e2@2 ~ eb2@9 db2@12 b1@3 ~@3 b1@2 ~ db2@3 e2@3 ~@3, e1",
  AH: "gb2 ~@2 gb2 ~@2 gb2@2 ~ e2@9 db2@12 b1@3 ~@3 b1@2 ~ db2@2 ~ e2@3 ~@3, gb1",
  AI: "gb2 ~@2 gb2 ~@2 gb2@2 ~ e2@9 db2@12 b1@2 ~@4 b1@3 db2@3 gb2@4 ~@2, gb1",
  AJ: "e2@17 ~ b1@2 db2@2 ~@2 e2@3 ~@2 gb2@3 ab2@10 b1@3 db2@2 ~",
  AK: "e2@17 b1@3 db2@2 ~@2 e2@3 ~@2 gb2@3 ab2@8 ~ gb1@3 ab1@3 ~",
  AL: "[db2@18 gb1@2 ~ ab1@2 ~ db2@4 ~ eb2@3 e2@9 gb1@3 ab1@3 db2@19 gb1@3 ab1@3 db2@3 ~@2 eb2@2 ~ e2@15 a1@19 e2@2 ~ gb2@3 a2@3 ~@2 b2@2 ~ db3@15 ~]/3",
  AM: "b1@16 ~@2 gb2@2 ab2@3 ~ b2@4 ~ db3@3 eb3@14 ~@2",
  AN: "db2 ~@17 ab2@3 bb2@2 ~ db3@4 ~@2 eb3@2 ~ f3@15, ~@3 db2@19 ~@26",
  AO: "gb2@17 ~ db2@2 eb2@2 ~@2 gb2@3 ~@2 ab2@3 bb2@10 db2@3 eb2@2 ~",
  AP: "gb2@17 db2@3 eb2@2 ~@2 gb2@3 ~@2 ab2@3 bb2@8 ~ ab1@3 bb1@3 ~",
  AQ: "[eb2@18 ab1@2 ~ bb1@2 ~ eb2@4 ~ f2@3 gb2@9 ab1@3 bb1@3 eb2@19 ab1@3 bb1@3 eb2@3 ~@2 f2@2 ~ gb2@15 b1@19 gb2@2 ~ ab2@3 b2@3 ~@2 db3@2 ~ eb3@15 ~]/3",
  AR: "db2@16 ~@2 ab2@2 bb2@3 ~ db3@4 ~ eb3@3 f3@14 ~@2", AS: "db2@3 ~",
})).s("gm_fretless_bass").gain(0.35)

// chords · epiano1
const epiano1 = note("<~ A@5 B@2 C@2 D@2 E F G H I J ~@13 K@4 L@2 M@2 N@2 O P Q R S T ~@31>".pickRestart({
  A: "[~@120 gb4@11 ~ [d4,gb4,db5]@11 ~ [e3,e4,d5]@45 ~@24 g4@3 e4@12 [e4,d5]@12, ~@44 d4@5 db5@37 a4@34 a4@24 ~@47 b4@19 e4@6 [g4,b4]@24, ~@46 gb4@35 d4@40 ~@68 e4@3 d5@35 ~@13, ~@47 a4@37 gb4@36 ~@23 [g4,b4]@47 g4@14 e4@3 b3@14 ~@19, ~@48 d3@42 a3@6 db5@36 ~@60 e3@47 ~]/5", // Dmaj7 E7 G
  B: "[d3@3 ~@12 a3, d2@10 gb4@11 db4@8 d3@3, a4@8 db4@11 a4@13, gb4@7 a3@9 d2@16, [a3,db4]@6 d3@7 a4@3 d3@6 gb4@10]/2", // A
  C: "[b3@4 ~@25 b3@3, g2@13 d4 g3@2, e4@3 g4@13, [d4,g4]@5 b3@4 e4@7 a2@16, ~@4 g3@3 d4@15 e4@10]/2", // G5
  D: "[~@29 a3@3, d2@5 gb4@13 a3@6 a4@3 gb4@5, ~ d3@6 a4@14 gb4@2 d3@9, ~ a3@7 d2@8, ~@3 db4@13 d3@3 db4@13]/2",
  E: "[g2,b3,d4,e4,g4]", F: "~@3 b3@2 [b3,g4]@3, a2, g4@5 ~@3, e4@2 d4 [d4,e4]@5, [b3,d4]@2 a3 b3@2 a3@11",
  G: "[eb4,g4,bb4,d5]@41 ~@7", H: "[bb4,d5]@35 ~@13, [eb4,g4]@31 ~@17", I: "[f4,ab4,c5]@43 ~@5", J: "[f4,ab4,c5]@5 ~@3",
  K: "[~ d5@32 ~@15 d5@21 ~@3 [g4,bb4]@10 ~@2 [g4,d5]@4 ~@8 [f3,f4,eb5]@45 ~@24 ab4@3 f4@12 [f4,eb5]@12, eb3@42 bb3@16 ~@86 f3@47 ~, ~@33 eb4@38 ~@13 eb4@2 ~@55 f4@3 eb5@35 ~@13, ~@36 g4@33 ~@26 [ab4,c5]@47 ab4@14 f4@3 c4@14 ~@19, ~@38 bb4@30 ~@75 c5@19 f4@6 [ab4,c5]@24]/4", // Gm G5 F7 Ab
  L: "[eb3@3 ~@12 bb3, eb2@10 g4@11 d4@8 eb3@3, bb4@8 d4@11 bb4@13, g4@7 bb3@9 eb2@16, [bb3,d4]@6 eb3@7 bb4@3 eb3@6 g4@10]/2", // Bb
  M: "[c4@4 ~@25 c4@3, ab2@13 eb4 ab3@2, f4@3 ab4@13, [eb4,ab4]@5 c4@4 f4@7 bb2@16, ~@4 ab3@3 eb4@15 f4@10]/2", // Ab5
  N: "[~@29 bb3@3, eb2@5 g4@13 bb3@6 bb4@3 g4@5, ~ eb3@6 bb4@14 g4@2 eb3@9, ~ bb3@7 eb2@8, ~@3 d4@13 eb3@3 d4@13]/2",
  O: "[ab2,c4,eb4,f4,ab4]", P: "~@3 c4@2 [c4,ab4]@3, bb2, ab4@5 ~@3, f4@2 eb4 [eb4,f4]@5, [c4,eb4]@2 bb3 c4@2 bb3@11",
  Q: "[e4,ab4,b4,eb5]@41 ~@7", R: "[b4,eb5]@35 ~@13, [e4,ab4]@31 ~@17", S: "[gb4,a4,db5]@43 ~@5",
  T: "[gb4,a4,db5]@5 ~@3", // Gbm
})).s("gm_epiano1").gain(0.13)

// chords · epiano1 · soft notes
const epiano1_soft = note("<~@2 A B ~ C ~ D ~ E ~@21 F G ~ H ~ I ~ J ~@39>".pickRestart({
  A: "~@29 a3@12 ~@7", B: "~@25 d4@11 ~@12, d3, ~@19 a3@29", C: "~@6 b3@9 ~@14 b3@18 ~", D: "~ a3@6 ~",
  E: "~@4 g3@5 ~@3, ~@3 g3@5 ~@16, ~@3 b3@10 ~@3", F: "~@29 bb3@8 ~@11", G: "~@25 eb4@9 ~@14, eb3@5 ~, ~@19 bb3@22 ~@7",
  H: "~@6 c4@9 ~@14 c4@18 ~", I: "~ bb3@6 ~", J: "~@4 ab3@5 ~@3, ~@3 ab3@5 ~@16, ~@3 c4@10 ~@3",
})).s("gm_epiano1").gain(0.08)

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

// drums · rim
const rim = s("rim").struct("<~@2 [~ x ~ x]!12 ~@17 [~ x ~ x]!12 ~@35>").gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@14 [~ x ~ x]!16 ~@13 [~ x ~ x]!34 [~ x ~@2]>").gain(0.8)

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

// drums · mid tom
// … 51 more lines

More by Pooh