Strudelify
Wouldn't It Be Nice cover art

1966 · Pet Sounds

Wouldn't It Be Nice

The Beach Boys

KeyF majorTempo186 bpm
0:00/0:00
// Wouldn't It Be Nice — The Beach Boys
// 186 bpm, 1/8, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 6 "Bass (muted)" named as a bass, played on electric bass finger (its electric guitar muted patch is not one)
// note: duplicate parts dropped: ch 6 "Bass (muted)" electric bass finger (copy of ch 5 "Bass" acoustic bass)
// note: Full arrangement: all 924 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(186/0.5)

// 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, A@4 for four bars: edit a riff to change every repeat.

// chords · french horn · "BGround V"
const french_horn = note(`<
  ~@168 A@8 ~@16 B@8 ~@3 C@3 D@8 ~@2 E@8 ~@4 F@6 G@6 H@5 I@2 ~ I@2 ~@2 J@8 ~ K@3 L@5 M@2 ~ M@2 ~@2 F@6 G@6 H@5 I@2 ~ I@2
  ~@2 J@8 ~ K@3 N@6 O@7 ~@11 A@8 ~@16 B@8 ~@3 C@3 D@8 ~@2 E@8 ~@256 P@8 ~@16 B@8 ~@3 C@3 Q@6 R@2 S@2 B@8 ~@3 C@3 D@8 ~@2
  T@4 ~@8 U@6 G@6 V@4 W@7 X U@6 G@6 V@4 W@7 X U@6 G@6 V@4 W@7 X U@6 G@6 V@4 W@7 X U@6 G@6 V@4 W@7 X U@6 G@6 V@4 W@7 X
  U@6 G@6 V@4 W@7 X U@6 G@6 V@4 W@7 ~
>`.pickRestart({
  A: "[bb3,eb4,g4]/8", B: "[c4,e4,a4]/8", C: "[[c4,e4,a4]@43 ~@5]/3", D: "[g4 f4, [bb3,d4]]/8", E: "[bb3,c4,e4]/8",
  F: "[f3,c4,f4,a4,c5]/6", G: "[[g4,bb4]@31 ~]/6", H: "[a4@77 ~@3]/5", I: "[f3,c4,f4,a4]/2", J: "[bb3,d4,f4,bb4]/8",
  K: "[[a3,c4,f4,a4]@47 ~]/3", L: "[[g3,bb3,f4,g4]@77 ~@3]/5", M: "[c3,bb3,e4,g4]/2", N: "[[g3,bb3,f4,g4]@95 ~]/6",
  O: "[[c3,bb3,e4,g4]@97 ~@15]/7", P: "[bb3,eb4]/8", Q: "[[bb3,d4,g4]@47 ~]/6", R: "[a4@15 ~]/2", S: "[bb4@15 ~]/2",
  T: "[[bb3,c4,e4]@15 ~]/4", U: "[[a4,c5]@31 ~]/6", V: "[[f4,a4]@61 ~@3]/4", W: "[~@14 g4@35 ~@13 f4@35 ~@15]/7",
  X: "[g4,bb4]", // Gm
})).s("gm_french_horn").gain(0.16)

// other · violin · "BGround V"
const violin = note("<~@460 A@7 ~@457>".pickRestart({
  A: "[~@13 d4@45 ~@3 d4@45 ~@6]/7",
})).s("gm_violin").gain(0.16)

// chords · string ensemble 1 · "BGround V"
const string_ensemble_1 = note("<~@467 A@8 ~@5 B@8 ~@4 A@8 ~@4 C@8 ~@412>".pickRestart({
  A: "[a3,db4,e4]/8", B: "[b3,d4,gb4]/8", C: "[gb3,b3,d4]/8",
})).s("gm_string_ensemble_1").gain(0.16)

// other · viola · "BGround V"
const viola = note("<~@521 A B@2 A B@2 C@3 D@8 ~@7 A B@2 A B@2 E@3 F@8 ~@362>".pickRestart({
  A: "b3@15 ~", B: "[db4@29 ~@3]/2", C: "[d4@11 ~]/3", D: "gb4/8", E: "[c4@11 ~]/3", F: "e4/8",
})).s("gm_viola").gain(0.21)

// chords · piano
const piano = note(`<
  ~@60 A@9 B@3 A@3 C@3 D@3 C@3 E@9 F@3 G@3 H@3 I@3 J@3 A@9 B@3 A@3 C@3 D@3 C@3 E@9 F@3 G@3 H@3 I@3 J@3 K@6 L@3 M@3 N@6
  O@3 P@3 K@6 Q@3 R@3 S@6 T@3 U@3 V@6 W@3 X@3 Y@6 I@6 A@9 B@3 A@3 C@3 D@3 C@3 E@9 F@3 G@3 H@3 I@3 J@3 A@9 B@3 A@3 C@3
  D@3 C@3 E@9 F@3 G@3 H@3 I@3 J@3 K@6 L@3 M@3 Z@6 AA@3 AB@3 K@6 Q@3 R@3 S@6 T@3 U@3 V@6 W@3 X@3 Y@6 I@6 AC@8 AD AE@5 AF
  AG@6 AH@3 AI@3 AJ@8 AK AL@3 AM@8 AN AO@3 AP@8 AQ AR@3 AS@8 AQ AI@3 AJ@8 AK AL@3 AM@8 AN AO@3 AP@8 AQ AR@3 AS@8 AQ AO@3
  AT@8 ~ AR@3 AS@8 AQ AO@3 AT@8 ~ I@9 AU@3 AV@9 AW@3 AV@3 AX@3 AY@3 AX@3 AV@9 AW@3 AV@3 AX@3 AY@3 AX@3 AZ@9 BA@3 AZ@3
  BB@3 BC@3 BB@3 BD@6 L@3 M@3 BE@3 BF@6 BG@3 BD@6 Q@3 BH@3 T@3 BI@6 BJ@3 W@3 BK@6 BL@3 T@3 BI@6 BJ@3 W@3 BK@6 BM@3 BN@3
  ~@2 BO BN@3 ~@3 BP@9 BQ@3 BP@3 BR@3 BS@3 BT@3 BP@9 BQ@3 BP@3 BR@3 BS@3 BT@3 BP@9 BQ@3 BP@3 BR@3 BS@3 BT@3 BP@9 BQ@3
  BP@3 BR@3 BS@3 BT@3 BP@9 BQ@3 BP@3 BR@3 BS@3 BT@3 BP@9 BQ@3 BP@3 BR@3 BS@3 BT@3 BP@9 BQ@3 BP@3 BR@3 BS@3 BT@3 BP@9
  BQ@3 BP@3 BR@3 BS@3 BT@3
>`.pickRestart({
  A: "[[f2,c4,f4,a4]@47 ~]/3", B: "[[g2,c4,f4,a4]@47 ~]/3", C: "[[d2,c4,f4,a4]@47 ~]/3", D: "[[c2,c4,f4,a4]@47 ~]/3",
  E: "[[bb1,d4,f4,bb4]@47 ~]/3", F: "[[a1,d4,f4,a4]@47 ~]/3", G: "[[g1,bb3,d4,g4]@47 ~]/3",
  H: "[g1@7 ~ d2@4, [bb3,d4,g4]@43 ~@5]/3", I: "[[c2,bb3,e4,g4]@47 ~]/3", J: "[[d2,bb3,e4,g4]@43 ~@5]/3",
  K: "[[a3,d4,f4]@43 ~@37 a1@16, a1@13 ~@3, ~@48 [a3,d4,f4]@43 ~@5]/6", L: "[a1@15 ~ bb1@8, [a3,d4,f4]@43 ~@5]/3",
  M: "[a1@15 ~ g1@8, [a3,d4,f4]@43 ~@5]/3", N: "[[eb4,g4,bb4]@43 ~@37 f2@16, f1@13 ~@3, ~@48 [eb4,g4,bb4]@43 ~@5]/6",
  O: "[f1@31 ~ c2@16, [eb4,g4,bb4]@43 ~@5]/3", P: "[f1@31 ~ g1@16, [eb4,g4,bb4]@43 ~@5]/3",
  Q: "[a1@15 ~ d2@8, [a3,d4,f4]@43 ~@5]/3", R: "[c2@30 ~@2 bb1 ~@15, [a3,d4,f4]@43 ~@5]/3",
  S: "[[a3,c4,e4]@43 ~@37 a1@16, a1@13 ~@3, ~@48 [a3,c4,e4]@43 ~@5]/6", T: "[a1@15 ~ c2@8, [a3,c4,e4]@43 ~@5]/3",
  U: "[bb1@30 ~@2 a1 ~@15, [a3,c4,e4]@43 ~@5]/3", // Am
  V: "[[bb3,d4,f4]@43 ~@37 g1@16, g1@13 ~@3, ~@48 [bb3,d4,f4]@43 ~@5]/6", W: "[g1@15 ~ bb1@8, [bb3,d4,f4]@43 ~@5]/3",
  X: "[a1@15 ~ g1@8, [bb3,d4,f4]@43 ~@5]/3", Y: "[[bb3,e4,g4]@43 ~@37 c2@16, c2@13 ~@3, ~@48 [bb3,e4,g4]@43 ~@5]/6",
  Z: "[[bb3,eb4,g4]@43 ~@37 f2@16, f1@13 ~@3, ~@48 [bb3,eb4,g4]@43 ~@5]/6", // Eb
  AA: "[f1@31 ~ c2@16, [bb3,eb4,g4]@43 ~@5]/3", AB: "[f1@31 ~ g1@16, [bb3,eb4,g4]@43 ~@5]/3",
  AC: "[~@3 [a4,a5]@5, c4]/8", AD: "[a4,a5]@15 ~", AE: "[[bb4,bb5]@33 [a4,a5]@47]/5", AF: "[c4,c5]@15 ~",
  AG: "[[d4,d5]@33 [f4,f5]@45 ~ [f4,f5]@17]/6", AH: "[d4,d5]/3", AI: "[~@2 a3, [d2,gb3]]/3",
  AJ: "[~@40 a1@8 e1@15 ~, db4@127 ~, ~ a3@3, ~@8 d2@9 ~@15, ~@48 gb4@79 ~]/8", AK: "gb1", AL: "[~@2 gb3, [g1,d3]]/3",
  AM: "[~@40 b1@8 d2@15 ~, b3@127 ~, ~ gb3@3, ~@8 g1@9 ~@15, ~@48 d4@79 ~]/8", AN: "g1", AO: "[~@2 a3, [gb1,gb3]]/3",
  AP: "[~@5 gb1@3, db4@127 ~, ~ a3@3, ~@16 gb1@23 ~@25, ~@48 gb4@79 ~]/8", AQ: "db2@15 ~", AR: "[~@2 gb3, [b1,d3]]/3",
  AS: "[~@32 db2@15 ~ [b1,d4]@79 ~, b3@127 ~, ~ gb3@3]/8", // Bm
  AT: "[~@32 gb1@15 ~ gb1@47 ~ gb1@32, db4@127 ~, ~ a3@3, ~@48 gb4@79 ~]/8", AU: "[c2@7 ~ c2@4, [bb3,e4,g4]@23 ~]/3",
  AV: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, f2@47 ~]/3", AW: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, g2@47 ~]/3",
  AX: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, d2@47 ~]/3", AY: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, c2@47 ~]/3",
  AZ: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, [f2,f3]@47 ~]/3", BA: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, [g2,g3]@47 ~]/3",
  BB: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, [d2,d3]@47 ~]/3", BC: "[[c4,f4,a4]@32 [c4,f4,a4]@13 ~@3, [c2,c3]@47 ~]/3",
  BD: "[[a1,a3,d4,f4]@47 ~]/3", BE: "[f1@31 ~ a1@16, [bb3,eb4,g4]@43 ~@5]/3",
  BF: "[c2@15 ~@25 c2@8, [bb3,eb4,g4]@43 ~@5 [bb3,eb4,g4]@43 ~@5, ~@32 f2@35 ~@29]/6", // Eb
  BG: "[a1@31 ~ f1@16, [bb3,eb4,g4]@43 ~@5]/3", BH: "[c2@15 ~ bb1@8, [a3,d4,f4]@43 ~@5]/3",
  BI: "[e2@15 ~@25 e2@8, [a3,c4,e4]@43 ~@5 [a3,c4,e4]@43 ~@5, ~@32 a2@35 ~@29]/6", // Am
  BJ: "[c2@31 ~ a1@16, [a3,c4,e4]@43 ~@5]/3", // Am
  BK: "[d2@15 ~@25 d2@8, [bb3,d4,f4]@43 ~@5 [bb3,d4,f4]@43 ~@5, ~@32 g2@35 ~@29]/6", // Bb
  BL: "[bb1@31 ~ g1@16, [bb3,d4,f4]@43 ~@5]/3", BM: "[bb1@31 ~ d2@16, [bb3,d4,f4]@43 ~@5]/3",
  BN: "[[c2,bb3,e4,g4]@35 ~@13]/3", BO: "[c2,bb3,e4,g4]", BP: "[[f2,a3,c4,f4]@47 ~]/3", BQ: "[[g2,a3,c4,f4]@47 ~]/3",
  BR: "[[d2,a3,c4,f4]@47 ~]/3", BS: "[[c2,a3,c4,f4]@47 ~]/3", BT: "[d2@31 ~ c2@16, [a3,c4,f4]@43 ~@5]/3",
})).s("gm_piano").gain(0.22).pan(0.7)

// other · orchestral harp · "Harp/Bari/Harm/Tr"
const orchestral_harp = note(`<
  ~@12 A@6 B@6 C@6 D@6 A@6 B@6 E@6 F@6 ~@360 G ~ H I ~ J H ~ K J ~ H L ~ K I ~ M K ~ J M ~ K G ~ H I ~ J H ~ K J ~ H L ~
  K I ~ M K ~ J M ~ K G ~ H I ~ J H ~ K J ~ H L ~ K I ~ M K ~ J M ~ K G ~ H I ~ J H ~ K J ~ H L ~ K I ~ M K ~ J M ~ K G
  ~ H I ~ J H ~ K J ~ H L ~ K I ~ M K ~ J M ~ K G ~ H I ~ J H ~ K J ~ H G ~ N I ~ O N ~ K O ~@362
>`.pickRestart({
  A: "[~@2 db5 a5 ~ e5, a4]/6", B: "[db5 ~ d5 e5 ~ db5, gb4@27 ~@5]/6", C: "[b4 ~ d5 a5 ~ gb5, a4]/6",
  D: "[d5 ~ e5 gb5 ~ [e4,d5], d4@27 ~@5]/6", E: "[~@2 c5 a5 ~ f5, a4]/6", F: "[c5 ~ d5 f5 ~ g5, c4]/6", G: "a4",
  H: "db5", I: "a5", J: "e5", K: "d5", L: "b4", M: "gb5", N: "c5", O: "f5",
})).s("gm_orchestral_harp").gain(0.16)

// bass · baritone sax · "Harp/Bari/Harm/Tr"
const bass = note("<~@156 A@8 ~@16 A@8 ~@136 A@8 ~@16 A@8 ~@280 A@8 ~@16 A@8 ~@256>".pickRestart({
  A: "d2/8",
})).s("gm_baritone_sax").gain(0.36)

// other · harmonica · "Harp/Bari/Harm/Tr"
const harmonica = note("<~@399 A@5 B C@5 D E@4 ~ F G@2 ~@505>".pickRestart({
  A: "[a4@9 ~]/5", B: "~@3 [f3,f4]@5", C: "[[bb3,bb4]@33 [a3,a4]@33 ~@14]/5", D: "~@3 [c3,c4]@5",
  E: "[[d3,d4]@33 [f3,f4]@30 ~]/4", F: "~ [f3,f4]@15", G: "[[d3,d4]@25 ~@7]/2",
})).s("gm_harmonica").gain(0.29)

// other · trumpet · "Harp/Bari/Harm/Tr"
const trumpet = note(`<
  ~@566 A@5 B@6 C@6 D@5 ~@2 A@5 B@6 C@6 D@5 ~@122 A@5 B@6 C@6 D@5 ~@2 A@5 B@6 C@6 D@5 ~@2 A@5 B@6 C@6 D@5 ~@2 A@5 B@6
  C@6 D@5 ~@2 A@5 B@6 C@6 D@5 ~@2 A@5 B@6 C@6 D@5 ~@2 A@5 B@6 C@6 D@5 ~@2 A@5 B@6 C@6 D@5
>`.pickRestart({
  A: "[~@3 a3@13]/5", B: "[~@15 a3@12 ~@4 bb3@26 ~@6 a3@33]/6", C: "[~@15 c3@12 ~@4 d3@26 ~@6 f3@33]/6",
  D: "[~@15 f3@12 ~@4 d3@35 ~@14]/5",
})).s("gm_trumpet").gain(0.8)

// bass · acoustic bass · "Bass"
const bass_2 = note(`<
  ~@59 A B@9 C@3 B@3 D@3 E@3 D@3 F@9 G@3 H@3 I@2 J E@3 K@3 B@9 C@3 B@3 D@3 E@3 D@3 F@9 G@3 H@3 I@2 J E@3 K@3 L@5 M N@2 O
  N@2 P Q@5 R S@2 A S@2 P L@5 M N@2 J T@2 O L@5 M N@2 A U@2 M V@5 P I@2 O N@2 P W@5 A E@6 B@9 C@3 B@3 D@3 E@3 D@3 F@9
  G@3 H@3 I@2 J E@3 K@3 B@9 C@3 B@3 D@3 E@3 D@3 F@9 G@3 H@3 I@2 J E@3 K@3 L@5 M N@2 O N@2 P Q@5 R S@2 A S@2 P L@5 M N@2
  J T@2 O L@5 M N@2 A U@2 M V@5 P I@2 O N@2 P E@12 B@3 ~@21 X@5 Y@2 ~ M Z@2 AA V@5 AB@3 AC Y@2 P AD@5 AE@6 AF AG@5 AF
  AG@5 AF X@5 Y@2 ~ M Z@2 AA V@5 AB@3 AC Y@2 P AD@5 AE@6 AF AG@5 AF AG@5 AF AD@5 AA AE@6 AG@5 AF AG@5 AF AD@5 AA AE@6
  E@9 T@2 A B@9 C@3 B@3 D@3 E@3 D@3 B@9 C@3 B@3 D@3 E@3 D@3 B@9 D@3 E@3 D@3 E@3 D@3 G@6 N@2 O N@2 P S@2 M T@2 AH@3 A N@2
  AI G@6 N@2 J T@2 O N@2 A AJ@2 AK@3 AL T@2 M I@2 O Y@2 AM@3 J U@2 P N@2 A AJ@2 AK@3 AL T@2 M I@2 O Y@2 AM@3 J U@2 J T@2
  ~@3 A T@2 ~@4 B@9 C@3 B@3 D@3 E@3 Y@2 A B@9 C@3 B@3 D@3 E@3 Y@2 A B@9 C@3 B@3 D@3 E@3 Y@2 A B@9 C@3 B@3 D@3 E@3 Y@2 A
  B@9 C@3 B@3 D@3 E@3 Y@2 A B@9 C@3 B@3 D@3 E@3 Y@2 A B@9 C@3 B@3 D@3 E@3 Y@2 A B@9 C@3 B@3 D@3 E@3 Y@2 A
>`.pickRestart({
  A: "c2", B: "[f2@47 ~]/3", C: "[g2@47 ~]/3", D: "[d2@47 ~]/3", E: "[c2@47 ~]/3", F: "[bb1@47 ~]/3", G: "[a1@47 ~]/3",
  H: "[g1@47 ~]/3", I: "[g1@7 ~]/2", J: "d2", K: "[d2@5 ~]/3", L: "[a1@39 ~]/5", M: "a1", N: "[a1@15 ~]/2", O: "bb1",
  P: "g1", Q: "[f1@39 ~]/5", R: "f2", S: "[f1@31 ~]/2", T: "[c2@15 ~]/2", U: "[bb1@15 ~]/2", V: "[g1@39 ~]/5",
  W: "[c2@39 ~]/5", X: "[d2@39 ~]/5", Y: "[d2@31 ~]/2", Z: "[e1@15 ~]/2", AA: "gb1", AB: "[g1@3 ~]/3", AC: "b1",
  AD: "[gb1@39 ~]/5", AE: "[gb1@47 ~]/3", AF: "db2@15 ~", AG: "[b1@39 ~]/5", AH: "[f2@35 ~@13]/3", AI: "f1",
  AJ: "[e2@15 ~]/2", AK: "[a2@35 ~@13]/3", AL: "e2", AM: "[g2@35 ~@13]/3",
})).s("gm_acoustic_bass").gain(0.54)

// chords · drawbar organ · "Organ"
const drawbar_organ = note(`<
  ~@60 A ~ B A ~ B A ~ B A ~ B A ~ B A ~ B A ~ B A ~ B C ~ D C ~ D C ~ D E ~ F G ~ H G ~ H I ~ J I ~ J A ~ B A ~ B A ~ B
  A ~ B A ~ B A ~ B A ~ B A ~ B C ~ D C ~ D C ~ D E ~ F G ~ H G ~ H I ~ J I ~ J ~@12 K@8 ~@16 L@8 ~@4 M@8 ~@4 N@8 ~@4 A
  ~ B A ~ B A ~ B A ~ B A ~ B A ~ B A ~ B A ~ B C ~ D C ~ D C ~ D E ~ F G ~ H G ~ H I ~ J I ~ J A ~ B A ~ B A ~ B A ~ B
  A ~ B A ~ B A ~ B A ~ B C ~ D C ~ D C ~ D E ~ F G ~ H G ~ H I ~ J I ~ J ~@12 K@8 ~@16 L@8 ~@4 M@8 ~@4 N@8 ~@172 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 ~@120 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 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 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 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
>`.pickRestart({
  A: "[c5,f5,a5]", B: "[c5,f5,a5]@13 ~@3", C: "[d5,f5,bb5]", D: "[d5,f5,bb5]@13 ~@3", E: "[d5,f5,a5]",
  F: "[d5,f5,a5]@13 ~@3", G: "[bb4,d5,g5]", H: "[bb4,d5,g5]@13 ~@3", I: "[bb4,e5,g5]", J: "[bb4,e5,g5]@13 ~@3",
  K: "[bb4,eb5,g5]/8", L: "[a4,c5,e5]/8", M: "[bb4,d5,f5]/8", N: "[bb4,e5,g5]/8",
})).s("gm_drawbar_organ").gain(0.12)

// chords · banjo
const banjo = note(`<
  ~@59 A@3 B@21 C@3 D@6 E@3 F@3 G@3 H@3 I@3 J@3 B@21 C@3 D@6 E@3 F@3 G@3 H@3 I@3 K ~@71 A@3 B@21 C@3 D@6 E@3 F@3 G@3 H@3
  I@3 J@3 B@21 C@3 D@6 E@3 F@3 G@3 H@3 I@3 K ~@239 A@3 B@45 L@3 ~@34 M@12 ~@12 N@10 O ~ P@10 Q ~ N@10 O ~ P@10 Q ~ R@3
  ~@2 S R@3 ~@2 A@3 B@189 T
>`.pickRestart({
  A: "[~@17 c5@24 ~@7, ~@5 f4@8 ~@3, ~@2 a4@3 ~]/3",
  B: "[~@3 f4@12 ~@2 c5@24 ~@7, ~ c5@13 ~@2 a4@24 ~@8, ~@2 a4@13 f4@24 ~@9]/3",
  C: "[~@3 f4@12 ~@2 d5@24 ~@7, ~ c5@13 ~@2 bb4@24 ~@8, ~@2 a4@13 f4@24 ~@9]/3",
  D: "[~@3 f4@12 ~@2 d5@24 ~@7, ~ d5@13 ~@2 bb4@24 ~@8, ~@2 bb4@13 f4@24 ~@9]/3",
  E: "[~@3 f4@12 ~@2 d5@24 ~@7, ~ d5@13 ~@2 a4@24 ~@8, ~@2 bb4@13 f4@24 ~@9]/3",
  F: "[~@3 f4@12 ~@2 bb4@24 ~@7, ~ d5@13 ~@2 g4@24 ~@8, ~@2 a4@13 d4@24 ~@9]/3",
  G: "[~@3 d4@12 ~@2 bb4@24 ~@7, ~ bb4@13 ~@2 g4@24 ~@8, ~@2 g4@13 d4@24 ~@9]/3",
  H: "[~@3 d4@12 ~@2 bb4@24 ~@7, ~ bb4@13 ~@2 g4@24 ~@8, ~@2 g4@13 e4@24 ~@9]/3",
  I: "[~@3 e4@12 ~@2 bb4@24 ~@7, ~ bb4@13 ~@2 g4@24 ~@8, ~@2 g4@13 e4@24 ~@9]/3",
  J: "[~@3 e4@12 ~@2 c5@24 ~@7, ~ bb4@13 ~@2 a4@24 ~@8, ~@2 g4@13 f4@24 ~@9]/3",
  K: "~@3 e4@13, ~ bb4@13 ~@2, ~@2 g4@13 ~", L: "[~ c5 a4 f4 ~@13 c5@24 ~@7, ~@5 f4@8 ~@3, ~@2 a4@3 ~]/3",
  M: "[[eb4,g4,bb4]@6 [eb4,g4,bb4]@6 ~ [eb4,g4,bb4]@6 [eb4,g4,bb4]@6 [eb4,g4,bb4]@6 ~]/2", // Eb
  N: "[[c4,e4,a4]@6 [c4,e4,a4]@6 ~ [c4,e4,a4]@6 [c4,e4,a4]@6 [c4,e4,a4]@6 ~]/2", O: "[c4,e4,a4]@3 [c4,e4,a4]@3 ~@2",
  P: "[[d4,g4,bb4]@6 [d4,g4,bb4]@6 ~ [d4,g4,bb4]@6 [d4,g4,bb4]@6 [d4,g4,bb4]@6 ~]/2", // Gm
  Q: "[d4,g4,bb4]@3 [d4,g4,bb4]@3 ~@2", R: "[[e4,g4,bb4]@35 ~@13]/3", S: "[e4,g4,bb4]", T: "~@2 a4@13 ~, ~ c5@13 ~@2",
})).s("gm_banjo").gain(0.07).pan(0.3)

// other · taiko drum · "Big Drum"
const taiko_drum = note(`<
  ~@48 A ~@14 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~ C@3 ~@2 D@4
  ~@3 E@3 ~@2 D@4 ~@3 E@3 ~@2 D@4 ~@3 E@3 ~@2 D@4 ~@3 B F@2 ~ F@2 ~ F@2 ~ F@2 ~ F@2 ~ F@2 G H ~@4 G H ~@2 B ~@5 B ~@5 B
  ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~ C@3 ~@2 D@4 ~@3 E@3 ~@2 D@4 ~@3 E@3
  ~@2 D@4 ~@3 E@3 ~@2 D@4 ~@3 B F@2 ~ F@2 ~ F@2 ~ F@2 ~ F@2 I J@2 K L@2 M N@2 H@2 ~@19 A N@2 O P ~@107 F@2 ~ F@2 ~ F@2 ~
  F@2 ~ F@2 ~ F@2 ~ F@2 ~ F@2 ~ F@2 I J@2 K L@2 M N@2 H@2 ~@2 B ~@5 B ~@5 B ~@5 B ~@5 B ~@5 B ~@2 Q R@2 S@3 T@3 U@3 V@8
  ~@15 C@3 ~@5 D@4 E@3 ~@5 D@4 E@3 ~@5 D@4 E@3 ~@5 D@4 E@3 ~@5 D@4 E@3 ~@5 D@4 E@3 ~@5 D@4 W X@2 ~@3 W X@2 ~@3 W L@2 ~ B
  ~@5 B ~@5 B ~@4 Y L@2 W X@2 ~ B ~@5 B ~@5 B ~@4 Y L@2 W X@2 ~ B ~@5 B ~@5 B ~@4 Y L@2 W X@2 ~ B ~@5 B ~@5 B ~@4 Y L@2
  W X@2 ~ B ~@5 B ~@5 B ~@4 Y L@2 W X@2 ~ B ~@5 B ~@5 B ~@4 Y L@2 W X@2 ~ B ~@5 B ~@5 B ~@4 Y L@2 W X@2 ~ B ~@5 B ~@5 B
  ~@4 Y L@2 W
>`.pickRestart({
  A: "db3@15 ~", B: "g3@15 ~", C: "[~@16 g3@31 ~, ~@15 a3@31 ~@2]/3", D: "[~@16 g3@31 ~@17, ~@15 a3@36 ~@13]/4",
  E: "[g3@15 ~ g3@31 ~, ~@15 a3@31 ~@2]/3", F: "[g3@31 ~]/2", G: "~ f3@7 ~ d3@7", H: "b2", I: "~ f3@6 ~@2 f3@6 ~",
  J: "[f3@7 ~]/2", K: "~ eb3@6 ~@2 eb3@6 ~", L: "[eb3@7 ~]/2", M: "~ db3@6 ~@2 db3@6 ~", N: "[db3@31 ~]/2", O: "a2",
  P: "f2", Q: "eb4@3 ~ eb4@3 ~", R: "eb4@3 ~@5", S: "c4@3 ~@5", T: "ab3@3 ~@5", U: "e3@3 ~@5", V: "db3/8",
  W: "~ g2@6 ~@9", X: "[bb2@7 ~]/2", Y: "~ c3@6 ~@9",
})).s("gm_taiko_drum").gain(0.36)

// drums · kick
const kick = s("bd").struct(`<
// … 71 more lines

More by The Beach Boys