Strudelify
Che vuoi che sia cover art

Pooh 60: La nostra storia

Che vuoi che sia

Pooh

KeyD majorTempo70 bpm
0:00/0:00
// Che vuoi che sia — Pooh
// 70 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 2, 4/4 at bar 7, 2/4 at bar 20, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 101 bars on a 32-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): guitar program 24.
setcpm(70/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
const piano = note("<A B C D E@2 ~@45 F ~@49>".pickRestart({
  A: "~@15 c#5, ~@7 b4",
  B: "~@14 b4@2 ~@8 a3@6 ~ a4, [b2,d5] [a2,g#4,c#5], ~ f#3@3 ~@4, ~@2 b3@2 ~ f#4@3, ~@6 c#5@2 ~@7 b4", // Bm Amaj7
  C: "~@7 g4 ~@7 f#4, [g2,b4] [f#2,a4], ~ d3@3 ~@4, ~@2 g3@2 ~ d4@3, ~@3 a4 e4@3 e4", // G F#m
  D: "~@2 b2@6 ~@2 d3@5 ~ g4@2 ~@6 d4@4 g3@4, [e2,e4,g4]@8 [f#2,e4,a4]@7 d4@9 ~@8, ~@8 [g2,b4]@7 ~, ~@9 d3@7, ~@5 g3@2 ~", // Em F#m7 G
  E: "[[a2,b3,d4,e4]@3 ~]/2", F: "~@3 [b4,g5]@2 [a4,f#5]@2 [g4,d5]@7 ~@2",
})).s("gm_piano").gain(0.29)

// chords · piano · soft notes
const piano_soft = note("<~@2 A B C@2 ~@95>".pickRestart({
  A: "~@3 f#3", B: "~@6 e4@2 ~@4 f#3@4 ~@2 g4@13 ~, ~ e3 ~@6", C: "[a3@3 ~]/2",
})).s("gm_piano").gain(0.19)

// bass · fretless bass
const bass = note(`<
  ~@3 A B@8 C@2 D@2 E@2 F G H I J@2 K L M@2 N O P Q R S T U V W@2 X Y Z AA AB AC@3 ~ AD@2 AE AF AD@2 AE AG AH@2 AI AJ AK
  AL AM AN N O P Q R S AO U V W@2 X AP Z AA AB AQ AR@2 ~@2 AD@2 AE AF AD@2 AE AG AD@2 AE AF AD@2 AE AG
>`.pickRestart({
  A: "e1 f#1 g1@2", B: "[a1@48 f#3@31 ~ f#3@23 ~ a3@8 g3@31 ~ g3@12 g3@20 f#3@31 ~ f#3@23 ~ a3@8 g3@16]/8",
  C: "[g3@4 g3@3 g3@5 a2@4]/2", D: "[g2@15 f#2@33 e2@16]/2", E: "[a2@2 g2@2 f#2@3 f#2@5 e2@4]/2", F: "f#2 g2",
  G: "~@3 a1@5, a2", H: "d2@7 d2 d2@8", I: "d3@16 c3@15 ~",
  J: "[g2@11 ~ g2 ~@3 g3@16 g4@12 g3@2 g3 ~@8 g2@9, ~@13 g2@35 g3@16]/2", K: "d2@10 ~@2 d2 ~@3 d2@15 ~",
  L: "d2@11 ~ d2 ~@3 d2@8 d3@2 a2@2 d2@4",
  M: "[g2@10 ~@2 g2 ~@3 g3@16 ~@12 g2 ~@3 g2@8 e3@7 ~, ~@14 g2@27 ~@23, ~@4 g3@3 ~]/2",
  N: "a2@12 ~@2 a2@2 g2@13 ~ g2@2", O: "f#2@13 ~ f#2 ~ d2@8 d3@2 d2 ~@3 d2 ~", P: "e2@11 ~ e3 ~ e2 ~ a2@8 g2@8",
  Q: "f#2@12 f#3 ~ d2 ~ d2@10 ~@2 d2@2 d#2@2", R: "e2@13 ~ e2@2 f#2@11 ~ f#2 ~@3", S: "g2@5 ~ g2 ~ a2@6 d2 d#2",
  T: "e2@6 a1 ~ a2@4 d2 ~ e2 ~ d2@10 ~@2 d2 ~ d2 ~", U: "d2@11 ~ d2@2 e2@2 a2@11 ~ a2@3 ~",
  V: "a1@16 g2@10 ~@2 g2!2 ~@2", W: "[g2@15 ~ d2@11 ~ a1@12 a2@8 d2@10 ~@2 d2 ~@3]/2",
  X: "~@10 a3@2 d4@2 d3@2 a1@4 a1@6 ~@2 a1 ~ a1 ~, d2 ~", Y: "~@8 a3@2 a2 ~ a3@4 g1@10 ~@2 g1@2 ~@2, a1 ~",
  Z: "g1@4 d2@3 c3", AA: "c#3 b2", AB: "a2 g2", AC: "[f#2@15 ~ e2@64 ~@16]/3",
  AD: "[d2@11 ~ d2 ~@9 a2@2 d3@4 a2@2 ~@14 d2 ~ d2 ~@9 d3@8, ~@8 d2@6 ~ d2@6 ~@3 d2@8, ~@16 d3@11 ~@5]/2",
  AE: "g1@11 ~ g1 ~@3 g1@8 g2@4 g1@2 g2@2", AF: "g1@10 ~@2 g1@2 ~@2 g1@5 ~ g1@2 g2@4 g1@2 g2@2", AG: "g1@5 ~ g1 ~ g1@8",
  AH: "[~@12 d3 ~ d3 ~ d3@16 f#3@16 e3@8 d3@2 a2@2 d2@2 a2@2, d2@7 ~]/2", AI: "~@12 g1 ~@3 g1@16, g2@15 ~",
  AJ: "~@12 g1 ~ g1 ~ g1@11 ~ b1@2 c#2@2, g2 ~", AK: "~@12 d3 ~ d3 ~ d3@16, d2", AL: "d3@3 ~ d3@20 a2@8",
  AM: "~@12 g2 ~ g2 ~ g2@16, g1@15 ~", AN: "g1@11 ~ g1 ~@3 g1@16", AO: "e2@6 e2 ~ e3@8 d2@10 ~@2 d2 ~ d2 ~",
  AP: "~@4 a3 ~ a3@2 g1@5 ~ g1 ~, a1 ~, ~@5 a2@3 ~@8", AQ: "f#2@15 ~ e2@12 a2@4", AR: "[e3@3 ~]/2",
})).s("gm_fretless_bass").gain(0.4)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  A@2 B@2 C D@8 E@5 F@2 G@8 H@4 I J@4 K@6 L M@3 ~ N@8 G@8 H@4 I J@4 K@6 L M@3 ~@2 N@16
>`.pickRestart({
  A: "[~@32 b2@15 [g#3,g#4]@5 [f#3,f#4]@12, ~@31 [b3,b4]@16 ~@17]/2", // G# F# B
  B: "[[d3,d4]@15 [e3,e4]@5 [d3,d4]@11 [e3,e4]@8 ~ [f#3,f#4]@8 [g3,g4]@16]/2", C: "[a3,a4]",
  D: "[~ d3@4 [g2,g3,b4]@4 d3@4 [g2,g3,b4]@3, ~ [d4,e4,a4]@15, ~@16 d2@53 ~@75 d2@17 ~@95]/8", // G Dsus2
  E: "[~@2 [a2,a3]@2 [g2,g3]@2 [f#2,f#3]@2 [d2,d3]@2 [e2,e3,b3]@2 [a2,a3] [g2,g3] [f#2,f#3]@2 [d2,d3]@2 [e2,e3,b3,g4]@2, ~ e4@9, ~ a4@8 ~, ~ c#4@2 d4@2 g4@2 ~@3, ~@6 c#4 d4@2 ~]/5", // A G F# D E5 A G F# …
  F: "[[f#2,f#3,f#4,a4] [g2,g3] [a2,a3,e4,a4]@2, d4, ~ g4@3]/2", // F#m G A5
  G: "[d3 [g2,g3,b4] d3 [g2,g3,b4], [d4,e4,a4]@255 ~, d2@53 ~@75 d2@17 ~@111]/8", // G Dsus2
  H: "[[a2,a3]@2 [g2,g3]@2 [f#2,f#3]@2 [d2,d3]@2 [e2,e3,b3]@2 [a2,a3] [g2,g3] [f#2,f#3]@2 [d2,d3]@2, [e4,a4], c#4 d4 g4 ~, ~@5 c#4 d4@2]/4", // A G F# D E5 A G F# …
  I: "[e2,e3,b3,g4] [f#2,f#3,d4,f#4,a4]", // Em D
  J: "[[g2,g3] [a2,a3,e4,a4]@2 [d2,d3,d4,f#4,a4]@2 [a1,a2,c#4,e4,a4]@2 [g2,g3,d4,g4,b4], g4@3 ~@5]/4", // G A5 D A G
  K: "[~@4 [d2,d3,d4,f#4,a4]@2 ~ [a1,a2,d4,e4,a4,b4]@5 [d2,d3,d4,f#4,a4]@8 [a1,a2,c#4,e4,a4]@8 [g1,g2,d4,g4,b4]@8 [d2,d4,f#4]@4 [c#2,c#4,e4]@4 b3@4, ~@9 a4@2 ~]/6", // D Asus4 D A G D C#m
  L: "a3@15 g3@16 ~", M: "[f#3@14 ~@2 [b2,d3,e3,g3]@65 ~@15]/3",
  N: "[[d2,a3,f#4] [g2,g3,b3] [d2,a3,f#4] [g2,g3,b3], d4]/8", // D G D G
})).s("gm_string_ensemble_2").gain(0.23).pan(0.3)

// other · string ensemble 1
const string_ensemble_1 = note(`<
  ~@3 A ~ B@3 C D@4 E@7 F@3 G H@2 I@2 J@6 K@8 ~@6 L@8 F@3 G H@2 I@2 J@6 K@8 ~@7 L@16
>`.pickRestart({
  A: "g5 a5 d6@2", B: "[~@16 [a3,a4]@65 ~@15]/3", C: "~ c#5", D: "[[d4,d5] [a3,a4]@4 b3@3]/4", E: "[~@16 a4@203 ~@5]/7",
  F: "[[a3,a4]@2 [b3,b4]]/3", G: "[c#4,c#5] [d4,d5]", H: "[a3,a4]/2", I: "[b3,b4]/2", J: "a4/6", K: "[~ a5@15]/8",
  L: "[[a4,a5]@249 ~@7]/8", // A
})).s("gm_string_ensemble_1").gain(0.18).pan(0.8)

// other · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@4 A@2 ~ B@2 ~@2 C@3 ~@87>".pickRestart({
  A: "[b5@8 e6@15 ~@9]/2", B: "[~ [b3,b4]@2 c#4]/2", C: "[~ b4@4 ~]/3",
})).s("gm_string_ensemble_1").gain(0.13).pan(0.8)

// chords · pad warm
const pad_warm = note("<~ A B C@3 ~@36 D@5 ~@31 D@5 ~@18>".pickRestart({
  A: "[f#4,b4,d5] [e4,a4,c#5]", B: "[g4,b4] [f#4,a4], d4",
  C: "[[b3,e4,g4] [f#4,a4] g4@2 [e4,a4]@6 ~@2, ~ d4@9 ~@2, ~ b4@4 ~]/3", // Em F#m A5
  D: "[~ [b2,b3,d4,b4] [a2,a3,c#4,a4] [g2,g3,b3,g4] [f#2,f#3,a3,f#4] [e2,e3,b3,d4,e4,g4]@4 ~, ~ f#4@2 d4@2 ~@5]/5", // Bm A G F#m Em7
})).s("gm_pad_warm").gain(0.25)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~@3 A B@7 C@7 D@2 E F G@2 E F G@2 H I@2 J@4 ~@7 K@6 L@2 M@2 N@2 O@2 E F G@2 E F G@2 H I@2 P@4 ~@7 K@6 ~ L@2 M@2 N@2
  O@2 L@2 M@2 N@2 Q@2
>`.pickRestart({
  A: "~@13 g3 a3@2, e2 f#2 g2@2, ~ g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 ~@3, ~ d4@2 d4!2 a3 d4@2",
  B: "[~@16 b3@32 ~@16 d4@16 ~@16 d4@15 ~@17 d4@16 ~@16 d4@16 ~@16 d4@16 ~@12 f#3@4, ~@14 a4@34 ~@4 a3@28 ~@4 a3@27 ~@5 a3@31 ~ a3@28 ~@4 a3@28 ~@4 a3@12, ~@15 [d4,e4]@33 f#3@12 f#3@20 f#3@12 f#3@20 g3@12 g3@19 ~ g3@12 g3@20 f#3@12 f#3@20 f#3@12 ~@4, ~@56 e4@8 ~@24 e4@8 ~@24 e4@8 ~@24 e4@9 ~@23 e4@8 ~@24 e4@8]/7", // Dsus2
  C: "[d4@15 ~@17 d4@16 ~@16 d4@16 ~@4 a3@4 ~@20 g3@4 ~@30 f#3@2 ~@10 d4@4 ~@10 c#4@7 ~@31 f#3@2 ~@12 b3@4, ~@16 g3@12 g3@19 ~ g3@12 g3@20 a2@16 g2@16 f#2@32 e2@16 a2@16 f#2@32 e2@16, ~@20 a3@31 ~ a3@28 ~@10 a3@10 a3@8 ~@8 a3@8 ~@4 d4@10 d4@7 ~@15 d4@8 ~@12 a3@8 ~@4 d4@10 d4@7 ~@9 d4@6, ~@24 e4@8 ~@24 e4@9 ~@23 c#4@15 ~ c#4@8 e4@8 e4@14 e4@18 e4@24 e4@8 e4@14 e4@15 ~ e4@10, ~@92 e3@20 ~@12 f#3@8 f#3@8 a3@5 ~@3 e3@10 e3@6 e3@12 ~@12 f#3@8 f#3@8 a3@5 ~@3 b2@12]/7",
  D: "[~@12 a3@4 ~@29 e3@18 ~, f#2@16 g2@12 b3@15 d4@21, ~@4 d3@16 d3@10 g3@15 ~@19, ~@3 e4@8 e4@11 [a3,b3]@10, ~@5 d4@8 d4@3 a2@16]/2", // Asus2
  E: "~ d4, f#3@3 f#3@5, ~ a3@7, ~ e4 ~@2", F: "~@16 d4@15 ~, f#3@3 f#3@5, ~@4 a3@27 ~, ~ e4 ~@2",
  G: "[~ d4 ~ d4, g3@12 g3@19 ~ g3@12 g3@20, ~@4 a3@31 ~ a3@28, ~@8 e4@8 ~@24 e4@9 ~@15]/2",
  H: "~ a3 ~@5 g3, a2 g2, ~@8 c#4@15 ~ c#4@8, ~@5 a3@5 a3@4 ~@2, ~@3 e3@5",
  I: "[~@30 f#3@2 ~@24 c#4@7 ~, e4@4 e4@7 e4@9 e4@12, ~@4 a3@8 f#3@8 f#3@8 a3@5 ~@3 e3@8 b3@4 a2@16, ~@8 d3@8 e2@7 e3@3 e3@6, ~@16 d4@10 d4@7 ~@9 d4@6 d4@8 ~@8]/2",
  J: "[~@30 f#3@2 ~@14 e3@2 ~@14 f#3@2 ~@12 b3@2 g3@2 [e3,a3,b3]@8 ~@4 [e3,a3,b3,d4]@19 ~@17, e4@4 e4@7 e4@8 e4@8 e4@8 e4@5 ~@24, ~@4 a3@8 f#3@8 f#3@8 a3@5 ~@3 b2@8 b3@4 ~@4 d3@8 a3@5 ~@3 d3@12 ~@48, ~ d3 e2 f#2 g2 a2@2 ~, ~@16 d4@10 d4@7 ~@9 d4@15 ~ d4@16 d4@6 d4@4 ~@44]/4", // Esus4
  K: "[~@135 a4@32 ~@25, ~@8 b3@8 a3@8 g3@8 f#3@8 e3@7 ~@49, ~@20 d4@15 ~ d4@15 ~ d4@16 d4@15 ~ d4@16 d4@16 d4@17 ~@59, ~@22 a4@16 a4@15 ~ a4@15 ~ a4@15 ~ a4@16 a4@16 a4@16 ~@58, ~@26 b4@16 b4@16 b4@16 b4@15 ~ b4@16 b4@16 b4@17 ~@53]/6",
  L: "[~@4 [d4,e4]@4 ~@6 a3@4 [a3,d4] [d3,a3,d4,e4]@2 [a3,d4,e4] [d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 [d3,a3,d4,e4]@2 [d3,a3,d4,e4]@3, ~@4 d3@15 ~@13, ~@16 e4@7 ~ e4@12 ~@28, ~@18 d4@7 ~ d4@10 ~@28, ~@5 a3@2 ~@9]/2", // Dsus2 D5 Dsus2 Asus4 Dsus2
  M: "[~@10 d4@3 [d3,g3,d4]@2 ~ d3@2 ~@3 g4 d4@2 ~ [g4,a4] [d3,g4,a4] [g3,d4,g4,a4]@2 [g3,a4]@3, ~@2 d3@11 ~@5 [d3,g3]@6 d3@2 ~@6, ~@8 a4@7 ~ a4@10 ~@14 a4@10 ~@14, ~@10 g4@7 ~ g4@8 [g4,a4]@16 ~@22, ~@6 d4@4 ~@15 [g3,d4]@2 ~@5]/2", // G5 Gsus2 Dsus4 Gsus2 G5 Gsus2 G5
  N: "[~@4 [d4,e4]@4 ~@6 a3@4 [a3,d4] [d3,a3,d4,e4]@2 [a3,d4,e4] [d3,a3,d4,e4]@3 [d3,a3,d4,e4]!2 [d3,a3,d4,e4]@2 [d3,a3,d4,e4]@3, ~@4 d3@15 ~@13, ~@8 a3@10 d4@7 ~ d4@10 ~@28, ~@16 e4@7 ~ e4@12 ~@28, ~@5 a3@2 ~@9]/2", // Dsus2 D5 Dsus2 Asus4 Dsus2
  O: "[~@10 d4@3 [d3,d4]@2 ~ d3@2 ~@3 g4 [d4,g4]@2 ~ [g4,a4] [d3,g4,a4] [g3,d4,g4,a4]@2 [g3,d4,g4,a4]@2 ~, ~@2 d3@11 ~@5 [d3,g3]@6 d3@2 ~ d3@4 ~, ~@8 a4@7 ~ a4@10 a4@14 a4@10 ~@14, ~@10 g4@7 ~ g4@8 ~@38, ~@6 d4@4 ~@5 d4@7 ~@3 [g3,d4]@2 ~@5]/2", // D G5 Gsus2 Dsus4 Gsus2 G5
  P: "[~@15 f#3 ~@7 e3 ~@7 f#3 ~@6 b3 g3 [e3,b3,e4,a4,d5,e5] [b3,e4,a4,d5,e5]@2 [b3,e4,a4,d5,e5] [e3,b3,e4,a4,d5,e5]@2 [e3,b3,a4,d5,e5] [a4,d5,e5] [a4,d5,e5] [b3,e4,a4,d5,e5] [e3,b3,e4,a4,d5,e5]@2 [e3,b3,e4,a4,d5,e5] e5 e5@2 ~@8, e4@4 e4@7 e4@8 e4@8 e4@8 e4@5 ~@24, ~@4 a3@8 f#3@8 f#3@8 a3@5 ~@3 b2@8 b3@4 ~@4 d3@8 a3@5 ~@3 d3@12 ~@14 [e3,b3,e4]@6 ~@6 [e3,b3,e4,a4,d5]@6 ~@16, ~ d3 e2 f#2 g2 ~@3, ~@16 d4@10 d4@7 ~@9 d4@15 ~ d4@16 d4@6 ~@48]/4", // Esus4 Bm7 Esus4 Asus4 Bm7 Esus4 E5 Esus4
  Q: "[~@10 d4@3 [d3,d4]@2 ~ d3@2 ~@3 g4 [d4,g4]@2 ~ [g4,a4] [d3,g4,a4] [g3,d4,g4,a4]@2 [d4,g4,a4]@2 ~, ~@2 d3@11 ~@5 [d3,g3]@6 d3@2 ~ d3@4 ~, ~@8 a4@7 ~ a4@10 a4@14 a4@10 ~@14, ~@10 g4@7 ~ g4@8 ~@38, ~@6 d4@4 ~@5 d4@7 ~@3 [g3,d4]@2 ~@5]/2", // D G5 Gsus2 Dsus4 Gsus2 Dsus4 G5
})).s("gm_electric_guitar_clean").gain(0.21).pan(0.4)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_2 = note(`<
  ~@3 A@2 ~@10 B ~ C D ~@26 E F@2 G H I@2 ~ H J@2 ~@13 K ~@11 E F@2 ~ G H I@2 ~ H J@2 G H I@2 ~ H J@2
>`.pickRestart({
  A: "[~@30 g3@17 ~@17]/2", B: "d3@4 ~@3 b3", C: "d3@8 ~@7 e3", D: "~@14 f#3@3 ~@15", E: "e3@14 ~@2 e3@15 ~",
  F: "[~@11 b4@28 ~@25, ~ e3@38 ~@25, ~@5 d4@34 ~@25]/2", G: "~@2 a3@3 ~@3", H: "~@2 e4 ~@5 a3 ~@7",
  I: "[~@2 g3@8 g3@3 ~@2 d4@7 g4@2 [g3,d4] ~@4 [d4,g4]@3, ~@15 g3@3 ~@14, ~@30 d3 ~@23 d3@10]/2", // G5
  J: "[~@2 g3@8 g3@3 g3@2 g3@3 ~@6 [g3,d4] ~@7, ~@13 g4@8 ~@11, ~@30 d3 ~@33]/2", K: "~@9 e3@2 ~@3 e4 ~",
})).s("gm_electric_guitar_clean").gain(0.13).pan(0.4)

// other · agogo
const agogo = note("<~@34 A B C D E F C D G ~@27 A B C D E F C D G ~@22>".pickRestart({
  A: "~@8 a5 ~@3 a5 ~@3", B: "a5@2 ~@6 a5 ~@7 a5 ~@7 a5 ~@7", C: "a5 ~@7 a5 ~@7 g5 ~@7 g5 ~@7",
  D: "g5 ~@7 g5 ~@7 f#5 ~@7 f#5 ~@7", E: "~@16 a5@2 ~@6 a5 ~@7", F: "a5 ~@7 a5 ~@7 a5 ~@7 a5 ~@7", G: "e5 ~@7 e5 ~@23",
})).s("gm_agogo").gain(0.32).pan(0.4)

// other · timpani
const timpani = note("<~@23 [~@25 f2!7] [f2 ~@31] ~@34 [~@25 f2!7] [f2 ~@31] ~@40>").s("gm_timpani").gain(0.17).pan(0.4)

// other · timpani · soft notes
const timpani_soft = note("<~@23 [~@24 f2 ~@7] ~@35 [~@24 f2 ~@7] ~@41>").s("gm_timpani").gain(0.09).pan(0.4)

// chords · overdriven guitar
const overdriven_guitar = note("<~@34 A@8 ~@28 A@8 ~@23>".pickRestart({
  A: "[~@4 [d3,a3,d4]@8 [a2,e3,a3]@8 [g2,d3,g3]@8 [d3,a3,d4]@3 [e3,g3,a3,d4]@5 [d3,a3,d4]@8 [a2,e3,a3]@8 [g2,d3,g3]@8 [d3,a3,d4]@4]/8", // D5 A5 G5 D5 Em7 D5 A5 G5 …
})).s("gm_overdriven_guitar").gain(0.22).pan(0.8)

// chords · overdriven guitar · soft notes · F#m
const overdriven_guitar_soft = note("<~@42 [[c#3,a3,c#4] ~] ~@35 [[c#3,a3,c#4] ~] ~@22>")
  .s("gm_overdriven_guitar").gain(0.15).pan(0.8)

// other · shamisen
const shamisen = note("<~@22 A ~@3 A ~@31 A ~@3 A ~@38>".pickRestart({
  A: "~@22 a4 ~ a4 ~@3 a4 ~@3",
})).s("gm_shamisen").gain(0.14).pan(0.2)

// other · shamisen · soft notes
const shamisen_soft = note("<~@22 A ~@3 A ~@31 A ~@3 A ~@38>".pickRestart({
  A: "~@20 a4 ~@11",
})).s("gm_shamisen").gain(0.08).pan(0.2)

// other · pad metallic
const pad_metallic = note("<~ A B C ~@44 D@2 E F G@2 H I ~@29 D@2 E F G@2 H I D@2 E F G@2 H I>".pickRestart({
  A: "d5 c#5", B: "~ b4@15 a4@16", C: "e4 f#4 g4@2", D: "[f#5@47 g5@8 ~ a5@7 ~]/2", E: "a5", F: "b5@3 g5",
  G: "[f#5@47 g5@8 ~ a5@8]/2", H: "d5@15 c#5", I: "b4",
})).s("gm_pad_metallic").gain(0.8)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct(`<
  ~@20 A B A B A B A B A B A B A B C D ~@2 D@2 ~ E ~@14 A B A B A B A B A F A B A B C D ~@2 G D ~ E ~@10 H ~@3 E ~@3 H
  ~@4
>`.pickRestart({
  A: "~@6 x!2 ~@8", B: "~@3 x ~@4", C: "~@3 x ~@3 x", D: "~@7 x", E: "~@15 x", F: "~@7 x ~@8", G: "~@3 x ~@10 x ~",
  H: "~@13 x ~@2",
})).gain(0.2)

// drums · rim
const rim = s("rim").struct(`<
  ~@8 A ~@3 A ~@6 B ~@3 C ~@3 C ~@3 C ~@10 D E F ~@14 C ~@3 C ~@3 C ~@10 D E F ~@20
>`.pickRestart({
  A: "~ x", B: "x!2 ~@2", C: "~ x!2 ~@5", D: "~@3 x", E: "~ x ~ x", F: "~ x ~@2",
})).gain(0.25)

// drums · rim · soft notes
const rim_soft = s("rim").struct("<~@19 A ~@3 A ~@3 A ~@3 A ~@27 A ~@3 A ~@3 A ~@33>".pickRestart({
  A: "~@3 x ~@12",
})).gain(0.15)

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

// … 51 more lines

More by Pooh