Strudelify
God Only Knows cover art

1966 · Pet Sounds

God Only Knows

The Beach Boys

KeyE majorTempo116 bpm
0:00/0:00
// God Only Knows — The Beach Boys
// 116 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 84 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(116/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, A@4 for four bars: edit a riff to change every repeat.

// chords · piano · "A.PIANO 1"
const piano = note(`<
  A B C D C D E ~ F G H I J K L M N O P Q R S H I T U V M W X P Y Z AA AB AC AD AE AF AG AH AG AI AJ AK AL AM AN AO AP
  AQ AR AQ AS AT AU P AV AW AX AY AX AZ BA BB BC BD BA BB AV BD AV BE BC BD AV P BC BD AV BE BF BG@2
>`.pickRestart({
  A: "[c#4,e4,a4]@3 ~@3 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@3 ~@3", // A
  B: "[b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@3 ~@3 [e4,g#4]@4 ~@2, ~@9 b3 ~@2", // E
  C: "[c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~ [c#4,e4,a4] ~", // A
  D: "[b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~ [b3,e4,g#4] ~", // E
  E: "[c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@4 ~@2", // F#m
  F: "[a2,a3,f#4]@5 ~ [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 a2@2, d4@3 ~@7 a2@7 ~@7", // D
  G: "[g#3,d4,f#4]@4 ~@2 [g#3,d4,f#4]@4 ~@2 [g#3,d4,f#4]@3 ~@3 [g#3,d4,f#4]@4 b2@2, b2@6 b3 ~@3 b2@8 ~@6", // G#m7b5
  H: "[a3,c#4,f#4]@3 ~@3 [a3,c#4,f#4]@4 ~@2 [a3,c#4,f#4]@4 ~@2 [a3,c#4,f#4]@4 f#2@2, f#2@6 ~@4 f#2@7 ~@7", // F#m
  I: "[a3,b3,d#4,f#4]@4 ~@2 [a3,b3,d#4,f#4]@4 ~@2 [a3,b3,d#4,f#4]@3 ~@3 [a3,b3,d#4,f#4]@3 ~ a2@2, a2@3 ~@2 a2@4 ~@3", // B7
  J: "[b2,b3]@5 ~ [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@4 b2@2, [g#3,e4]@3 ~@7 b2@7 ~@7", // B E C#m
  K: "[f#3,a3,c4,e4]@3 ~@3 [f#3,a3,c4,e4]@4 ~@2 [f#3,a3,c4,e4]@3 ~@3 [f#3,c4,e4]@3 ~ c3@2, c3@3 ~@2 c3@4 a3@2 ~", // F#m7b5
  L: "[b2,b3]@5 ~ [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 b2 ~, [g#3,e4]@3 ~@7 b2@9 ~@5", // B E C#m
  M: "[g#3,a#3,c#4,e4]@3 ~@3 [g#3,a#3,c#4,e4]@4 ~@2 [g#3,a#3,c#4,e4]@3 ~@3 [g#3,c#4,e4]@4 a#2@2, a#2@5 ~@5 a#2@8 a#3@2 ~@4", // A#m7b5 C#m
  N: "[a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2, a2@6 ~@4 a2@9 ~@5", // A
  O: "[b3,e4]@2 ~ [b3,e4]@2 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 g#2, g#2@3 ~@2 g#2@4 ~@3", // E5 E
  P: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4]@4 f#2@2, f#2@6 ~@4 f#2@8 e4@3 ~@3", // A
  Q: "[g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 e2@2 [f#2,g#3,b3,e4]@3 ~ [c#4,e4]@4 ~@4, e2@3 ~@5 g2@4, ~@8 a3@3 ~", // E C#m
  R: "[a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 ~@2 [a3,d4,f#4]@4 a2 ~, a2@5 ~@5 a2@9 ~@5", // D
  S: "[g#3,d4,f#4]@2 ~ [g#3,d4,f#4]@2 ~ [g#3,d4,f#4]@2 ~ [g#3,d4,f#4]@2 b2, b2@6 ~@4 b2@9 ~@5", // G#m7b5
  T: "[g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,e4]@4 b2@2, b2@3 ~@2 b2@4 b3 ~@2", // E C#m
  U: "[f#3,a3,c4,e4]@3 ~@3 [f#3,a3,c4,e4]@4 ~@2 [f#3,a3,c4,e4]@4 ~@2 [a3,e4]@4 c3@2, c3@5 ~@5 c3@8 [f#3,c4]@3 ~@3", // F#m7b5 A5 F#dim
  V: "[g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@4 b2@2, b2@3 ~@2 b2@4 ~@3", // E
  W: "[a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 ~ [a3,c#4,e4]@2 a2, a2@3 ~@2 a2@4 ~@3", // A
  X: "[g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 ~ [g#3,b3,e4]@2 g#2, g#2@3 ~@2 g#2@4 ~@3", // E
  Y: "[e2,g#3,b3,e4]@6 [a4,c#5]@4 ~@5 [f#4,a4]@3 ~@3 [a4,c#5]@3", // E A F#m A
  Z: "[g4,b4]@4 ~@5 [f4,a4]@3 [e4,g4]@2 ~ [d4,f4]@3 [c#4,e4]@3 [b3,d4]@3", // G F Em Dm C#m Bm
  AA: "[a3,c#4]@2 ~@4 [a4,c#5]@3 ~@6 [f#4,a4]@3 ~@3 [a4,c#5]@3", // A F#m A
  AB: "[g4,b4]@3 ~@6 [f4,a4]@3 [e4,g4]@2 ~ [d4,f4]@2 ~ [c#4,e4]@3 [b3,d4]@3", // G F Em Dm C#m Bm
  AC: "[d4,g4,b4]@4 ~@2 [d4,g4,b4]@4 ~@2 [d4,g4,b4]@4 ~@2 [d4,g4,b4]@3 ~ d2 ~, d2@6 ~@4 d2@9 ~@5", // G
  AD: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@3 ~@3 [c#4,e4,a4]@4 e2 ~, e2@6 ~@4 e2@7 ~@7", // A
  AE: "[b3,d4,f#4]@4 ~@2 [b3,d4,f#4]@4 f#2 ~ [b1,b3,d4,f#4]@5 ~ [d4,f#4]@4 b1 ~, f#2@2 ~@4 b3 ~", // Bm D
  AF: "[b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@4 d2 ~, d2@3 ~@2 d2@4 ~@3", // E
  AG: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 e2 ~, e2@3 ~@2 e2@4 ~@3", // A
  AH: "[b3,d4,a4]@4 ~@2 [b3,d4,a4]@4 ~@2 [b3,d4,f4,a4]@3 ~@3 [b3,d4,f4,a4]@4 f2 ~, f2@6 ~@4 f2@7 ~@7", // Bm7 Bm7b5
  AI: "[c#4,d#4,f#4,a4]@4 ~@2 [c#4,d#4,f#4,a4]@4 ~@2 [c#4,d#4,f#4,a4]@3 ~@3 [c#4,d#4,f#4,a4]@4 d#2@2, d#2@3 ~@2 d#2@4 ~@3", // D#m7b5
  AJ: "[d4,f#4]@4 ~@2 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@4 ~@2 [d4,f#4,a4]@3 ~ d2 ~, d2@3 ~@2 d2@4 ~@3, a4 ~@11", // D
  AK: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 ~@2 [c#4,e4,a4]@4 c#2 ~, c#2@6 ~@4 c#2@7 ~@7", // A
  AL: "[b3,d4,f#4,a4]@3 ~@3 [b3,d4,f#4,a4]@4 ~@2 [b3,d4,f#4,a4]@3 ~@3 [b3,d4,f#4,a4]@4 b1 ~, b1@6 ~@4 b1@7 ~@7", // Bm7
  AM: "[b3,d4,f#4,a4]@4 ~@2 [b3,d4,f#4,a4]@4 ~@2 [b3,d4,f#4,a4]@3 ~@3 [b3,d4,f#4,a4]@3 ~ a1 ~, a1@3 ~@2 a1@4 ~@3", // Bm7
  AN: "[b3,d4,f#4,g#4]@3 ~@3 [b3,d4,f#4,g#4]@4 ~@2 [b3,d4,f#4,g#4]@4 ~@2 [b3,d4,f#4,g#4]@4 b1 ~, b1@3 ~@2 b1@4 ~@3", // G#m7b5
  AO: "[c#4,f#4,a4]@3 ~@3 [c#4,f#4,a4]@4 ~@2 [c#4,f#4,a4]@4 ~@2 [c#4,f#4,a4]@4 f#2@2, f#2@6 ~@4 f#2@7 ~@7", // F#m
  AP: "[b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@4 ~@2 [b3,d#4,f#4]@3 ~ a2 ~, a2@3 ~@2 a2@4 ~@3", // B
  AQ: "[b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@4 ~@2 [b3,e4,g#4]@3 ~@3 [b3,e4,g#4]@3 ~ b2 ~, b2@3 ~@2 b2@4 ~@3", // E
  AR: "[c4,e4,a4]@3 ~@3 [c4,e4,f#4,a4]@4 ~@2 [c4,e4,f#4,a4]@3 ~@3 [c4,e4,f#4,a4]@3 ~ c3 ~, [c3,f#4]@5 ~@5 c3@7 ~@7", // Am F#m7b5 Cdim
  AS: "[a#2,c#4,g#4]@5 ~ [a#3,c#4,e4,g#4]@4 ~@2 [a#3,c#4,e4,g#4]@3 ~@3 [a#3,c#4,e4,g#4]@4 a#2 ~, [a#3,e4]@3 ~@7 a#2@7 ~@7", // A#m7 A#m7b5 A#dim
  AT: "[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 a2@2, a2@3 ~@2 a2@4 ~@3", // A
  AU: "[b3,e4]@4 ~@2 [g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [b3,e4]@3 ~ g#2 ~, g#2@3 ~@2 g#2@4 g#3@2 ~", // E5 E E5
  AV: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 [b3,e4]@4 g#2@2, g#2@3 ~@2 g#2@4 ~@3", // E5
  AW: "[a4,c#5,e5]@3 ~, a2 ~@3, [a3,c#4,e4] ~@7", AX: "[g#4,b4,e5]@19 ~@5", AY: "[f#4,a4,c#5,e5]@19 ~@5",
  AZ: "~@6 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 a2 ~, ~@5 a2@4 ~@3", // A
  BA: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 [b3,e4]@4 g#2 ~, g#2@6 ~@4 g#2@9 ~@5", // E5
  BB: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 f#2@2, f#2@6 ~@4 f#2@9 ~@5", // A
  BC: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@4 ~@2 [b3,e4]@4 g#2 ~, g#2@6 ~@4 g#2@9 ~@5", // E5
  BD: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 a2@2, a2@6 ~@4 a2@9 ~@5", // A
  BE: "[a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 f#2@2, f#2@6 ~@4 f#2@9 ~@5", // A
  BF: "[b3,e4]@3 ~@3 [b3,e4]@4 ~@2 [b3,e4]@3 ~@3 [b3,e4]@4 g#2@2, g#2@6 ~@4 g#2@9 ~@5", BG: "[[a2,a3,c#4,e4]@11 ~]/2",
})).s("gm_piano").gain(0.44)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@3 A B C D E F G H I G J K L B M N E F G H B K J O L B C H P Q R Q S T U V T W T X S Y O B O Z B O AA O L B C D C AB
  C D C B C D C B C D C B C D C B C D C B C AC C AD@2
>`.pickRestart({
  A: "~@8 d2 e2@2 f#1", B: "a1@7 ~@3 a1@9 ~@3 a1@2", C: "g#1@7 ~@3 g#1@9 ~@3 g#1@2", D: "f#1@7 ~@3 f#1@9 ~@3 f#1@2",
  E: "e1@7 ~@3 e1@2 f#1@4 g1@8", F: "a1@6 ~@4 a1@6 ~@6 a1 ~", G: "b1@5 ~@5 b1@6 ~@6 b1@2", H: "f#1@3 ~@2 f#1@3 ~@3 f#1",
  I: "a1@6 ~@4 a1@5 ~@7 a1@2", J: "c2@6 ~@4 c2@7 ~@5 c2@2", K: "b1@6 ~@4 b1@7 ~@5 b1@2", L: "a#1@3 ~@2 a#1@4 ~@2 a#1",
  M: "g#1@3 ~@2 g#1@4 ~@2 g#1", N: "f#1@7 ~@3 f#1@8 ~@4 f#1@2", O: "b1@7 ~@3 b1@9 ~@3 b1@2",
  P: "e1@6 e2@4 ~@5 f#2@4 ~@2 e2@3", Q: "g2@4 ~@5 c2@3 d2@3 f2@3 g2@3 a2@3", R: "e2@4 ~@2 e2@4 ~@5 f#2@4 ~@2 e2@3",
  S: "d2@6 ~@4 d2@9 ~@3 d2@2", T: "e2@8 ~@2 e2@9 ~@3 e2@2", U: "f#2@9 ~ b1@9 ~@3 b1 ~", V: "d2@4 ~ d2@5 ~ d2",
  W: "f2@4 ~ f2@5 ~ f2", X: "d#2@4 ~ d#2@5 ~ d#2", Y: "c#2@7 ~@3 c#2@9 ~@3 c#2@2", Z: "f#1@4 ~ f#1@5 ~ f#1",
  AA: "c2@7 ~@3 c2@8 ~@4 c2@2", AB: "a1@3 ~@2 a1@5 ~ a1", AC: "f#1@6 ~@4 f#1@8 ~@4 f#1 ~", AD: "[a1@21 ~ [a1,a2]@26]/2",
})).s("gm_acoustic_bass").gain(0.38)

// chords · tuba
const tuba = note("<~@35 A B C D E F G H ~@41>".pickRestart({
  A: "~@3 d4", B: "e4@3 a4", C: "~@3 b3@2 c#4 d4@2 e4 [b3,d4]@3, f#4@3 ~",
  D: "~@6 e3@4 f#3@2 g#3@3 ~ [a3,f4]@2 [b3,e4]@4 [g#3,d4]@2, d4@5 ~@3", // Dm E5 G#dim
  E: "a3@5 g#3 ~@3 d4@2 c#4, c#4@7 ~@5, ~@4 a3@3 ~",
  F: "g#3@4 a3@2 ~@4 c#4@2 d4@4 [a3,f4]@2 e4@3 ~ d4@2, b3@3 b3@5 ~ [g#3,g#4]@3", // Dm G#
  G: "a3@5 g#3 ~@2 d4 c#4@2 [g#3,b3], [c#4,e4]@2 ~, ~@4 a3@3 ~", H: "c#4@10 f#4 [g4,g#4] a4@12, f#3",
})).s("gm_tuba").gain(0.28)

// other · tuba
const tuba_2 = note("<~@60 A B@2 C A D@2 ~ A E@2 ~ A F@2 G A H@3 A I@3>".pickRestart({
  A: "~@6 c#5@2 b4 c#5@2 b4", B: "[~@4 e5@3 ~ b4@4 a4@5 ~ g#4@4 e4@8 f#4@18]/2", C: "e4@23 ~",
  D: "[~@4 e5@3 ~ b4@4 a4@5 ~ g#4@4 e4@8 f#4@16 ~@2]/2",
  E: "[~@4 e5@2 ~@2 b4@3 ~ a4@5 ~ g#4@4 ~@8 f#4@10 ~@8, ~@22 e4@15 ~@11]/2",
  F: "[~@4 e5@2 ~@2 b4@3 ~ a4@5 ~ g#4@4 e4@14 f#4@12]/2", G: "~@6 b4@3 f#4 g#4@8 f#4@4 e4@2",
  H: "[~@4 e5@2 ~@2 b4@3 ~ a4@5 ~ g#4@4 e4@14 f#4@24 e4@6 f#4@4 g#4@2]/3", I: "[~@2 e5 ~ b4@2 a4@3 g#4@2 e4@25]/3",
})).s("gm_tuba").gain(0.28).pan(0.8)

// chords · acoustic guitar steel · "STEEL GTR" · A E E5 A E E5 A E …
const acoustic_guitar_steel = note(`<
  [[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@4 ~@2]
  [[g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [b3,e4]@4 ~@2, ~@9 g#3 ~@2]
  [[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@2 ~@4 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2]
  [[g#3,b3,e4]@4 ~@2 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [b3,e4]@4 ~@2, ~@9 g#3 ~@2]
  [[a3,c#4,e4]@4 ~@2 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@3 ~@3]
  [[g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@3 ~@3 [g#3,b3,e4]@2 ~@4]
  [[f#3,a3,c#4]@4 ~@2 [f#3,a3,c#4]@4 ~@2 [f#3,a3,c#4]@3 ~@3 [f#3,a3,c#4]@2 ~@4]
  ~@77
>`).s("gm_acoustic_guitar_steel").gain(0.33).pan(0.7)

// other · flute
const flute = note("<~@7 A ~@23 B C D E F G H I J I K J ~@8 L@2 M@2 N O P@2 ~@25>".pickRestart({
  A: "[a3,c#4]@3 [b3,d#4] [c4,e4]@2", B: "~@6 c#6@3 ~@6 a5@2 ~@4 c#6@3", C: "b5@3 ~@6 a5@2 ~ g5@2 ~ f5@2 ~ e5@3 d5@3",
  D: "c#5@2 ~@4 c#6@3 ~@6 a5@2 ~@4 c#6@3", E: "b5@3 ~@6 a5@2 ~ g5@3 f5@3 e5@3 d5@2 ~",
  F: "[b4,b5]@2 ~@4 [b4,b5]@3 ~@3 [b4,b5]@3 ~@3 [b4,b5]@2 ~@4", // B
  G: "[c#5,c#6]@3 ~@3 [c#5,c#6]@3 ~@3 [c#5,c#6]@3 ~@3 [c#5,c#6]@2 ~@4", // C#
  H: "[b4,b5]@2 ~@4 [b4,b5]@2 ~@4 [a4,a5]@3 ~@3 [a4,a5]@3 ~@3", I: "[g#4,g#5] ~ [g#4,g#5] ~ [g#4,g#5] ~ [g#4,g#5] ~",
  J: "[a4,a5] ~ [a4,a5] ~ [a4,a5] ~ [a4,a5] ~", K: "[a4,a5]@3 ~@3 [a4,a5]@2 ~@4 [a4,a5]@2 ~@4 [a4,a5]@2 ~@4",
  L: "[~@13 f#6@2 e6@2 ~ a5@2 ~ e5@2 ~ b4@19 ~@5, ~@12 a6@2 ~@3 c6@2 ~ f#5@2 ~ c5@2 ~@23]/2",
  M: "[~@13 e6@2 c#6@2 ~ g#5 ~@2 c#5@2 ~ a5@24, ~@12 g#6@2 ~@3 a#5@2 ~ e5@2 ~ a#4@2 ~@23, ~@24 a4@19 ~@5]/2",
  N: "[e4,e5]@17 ~ a#4 [b4,b5]@5, ~@17 [a4,a5,a#5]@2 ~@5", O: "[a4,a5]", P: "[[g#4,g#5]@12 [e4,e5]@35 ~]/2",
})).s("gm_flute").gain(0.27).pan(0.3)

// other · french horn · "FR.HORN"
const french_horn = note("<A B@2 C D E F ~@77>".pickRestart({
  A: "~@3 c#4@8 d#4", B: "[e4@16 a4 a#4 b4@5 a4@24 ~]/2", C: "e4@23 ~", D: "~@6 c#4@5 d#4", E: "e4@16 [a4,a#4] ~ b4@6",
  F: "a4@11 ~",
})).s("gm_french_horn").gain(0.38)

// chords · sitar
const sitar = note("<A@2 B C D E F ~@77>".pickRestart({
  A: "[[a3,c#4]@24 b3@23 ~, e3@43 ~@5, ~@24 g#3@19 ~@5]/2", B: "[a3,c#4], e3@19 ~@5", C: "[e3,g#3]@5 ~, b3",
  D: "[e3,a3]@19 ~@5, c#4", E: "[e3,g#3,b3]@5 ~", F: "[e3,a3,c#4]@23 ~",
})).s("gm_sitar").gain(0.22).pan(0.2)

// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<A@2 B C D E F ~@13 G H I@6 J@3 K ~@3 L M N@4 O@2 P@7 Q@8 R@7 S@16 T@3>".pickRestart({
  A: "[[a3,c#4]@24 b3@23 ~, e3@43 ~@5, ~@24 g#3@19 ~@5]/2", B: "[a3,c#4], e3@19 ~@5", C: "[e3,g#3]@5 ~, b3",
  D: "[e3,a3]@19 ~@5, c#4", E: "[e3,g#3,b3]@5 ~", F: "[e3,a3,c#4]@23 ~", G: "[a3,d4,f#4]", H: "[b3,e4,g#4]",
  I: "[c#4@24 d#4@24 b4@24 [a3,c5]@24 b4@24 [a#3,c#4]@19 ~@5, a4@48 g#4@21 ~@3 f#4@19 ~@5 g#4@48, f#4@43 ~@5 e4@91 ~@5, ~@24 b3@41 ~@7 c4@17 ~@7 b3@18 ~@6 c#5@24]/6", // Am A#m
  J: "[[a3,c#4]@5 ~ b3@6 [a3,c#4,a4]@6, e4@67 ~@5, e5@49 ~@23, ~@12 g#3@8 ~@4 f#3@9 ~@3]/3", K: "[g#3,b3,e4] ~@5",
  L: "[d4,g4,b4]", M: "[e4,a4,c#5]", N: "[f#4 g#4 c#5 [d4,f4,b4], [b4,d5]@12 a4@11 ~, ~ e4@2 ~]/4",
  O: "[e4 d#4, c#5, a4@11 ~, ~@6 f#4@5 ~]/2",
  P: "[[d4,f#4] e4 ~ a4 g#4 c#4 [b3,d#4], a4@67 ~@53 a4@48, ~@8 c#4@7 ~ f#4@40, ~@48 [b3,d4]@73 ~@47]/7", // D B Bm
  Q: "[g#4@6 [c4,f#4,a4]@6 b3@6 [c#4,e4]@5 ~ a3@6 [g#3,b3]@6 [f#3,a3]@6 ~@3 b4@3, e4@68 ~@4 a#3@18 ~@6 e4@87 ~@9, ~@48 g#4@48 c#4@49 ~@23 [g#3,b3]@24]/8", // F#dim C#m G#m F#m G#m
  R: "[[a3,c#4] [g#3,b3] [f#3,a3] ~ [a3,c#4] [g#3,b3] [f#3,a3], e4@83 ~ e4@84, ~@3 b3 ~@3, ~@72 g#3@17 ~@79]/7", // A G#m F#m A G#m F#m
  S: "[~ [a3,c#4] [g#3,b3] [f#3,a3] ~ [a3,c#4] [g#3,b3] [f#3,a3], [g#3,b3] ~@3 [g#3,b3] ~@3, ~@3 e4@23 ~ e4@21]/8", // A G#m F#m A G#m F#m G#m
  T: "[~ [a3,c#4]@2, b3, g#3 ~@2, ~@12 e4@59 ~]/3", // A
})).s("gm_string_ensemble_1").gain(0.22)

// other · tuba
const tuba_3 = note("<~@63 A B@2 ~ A C@2 ~ D E F@2 ~ G H I ~@5>".pickRestart({
  A: "~@12 c#5@3 ~ b4@2 c#5@4 b4@2", B: "[~@4 e5@2 ~@2 b4@4 a4@5 ~ g#4@4 e4@14 f#4@11 ~]/2",
  C: "[~@4 e5@3 ~ b4@3 ~ a4@5 ~ g#4@4 e4@14 f#4@11 ~]/2", D: "~@16 g#4 ~ b4@2 ~ e5!2 ~",
  E: "g#5@2 b5@2 g#5@4 f#5 ~ e5 ~ f#5@4 g#5 ~@7, ~@4 f#5 ~@19", F: "[~@12 g#5@2 c#6@2 b5@25 ~@7]/2",
  G: "~@10 b5@2 e6@4 e6@4 c#6@2 b5 ~", H: "e6@4 e6@4 c#6 ~ b5 ~ f#6@2 g#6@2 e6@8", I: "f#6@4 b5@15 ~@5",
})).s("gm_tuba").gain(0.24).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@31 [x!2]!4 x ~@22 x!2 [x!2]!22 x ~>").gain(0.44)

// drums · snare
const snare = s("sd").struct("<~@32 A ~ A ~@25 B C B C D E F@2 D C B G B G B D@2 H D G D C ~@2>".pickRestart({
  A: "~@3 x!2 ~ x ~@17", B: "~ x ~@2", C: "~@3 x ~@4 x!4", D: "~ x ~ x", E: "~@3 x ~@6 x!2", F: "~@3 x",
  G: "~@3 x ~@5 x!3", H: "~@3 x ~@4 x ~ x!2",
})).gain(0.44)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@65 A ~@5 B ~ B ~@3 C ~ B ~@4>".pickRestart({
  A: "~@8 x!2 ~@2", B: "~@2 x", C: "~@3 x",
})).gain(0.27)

// drums · hihat
const hihat = s("hh").struct("<~@31 A@4 ~@23 B C@3 B A B@2 C A@15 D ~>".pickRestart({
  A: "x!4", B: "x!2 ~ x", C: "~ x ~ x", D: "x",
})).gain(0.27)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@58 [~ x] [x!2]!3 [~ x] ~ [~ x]!2 [x!2] ~@17>").gain(0.16)

// drums · crash
const crash = s("cr").struct("<~@82 [x ~@10 x] ~>").gain(0.27)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@4 A@4 B A@7 B A@7 B A@6 C ~@3 B A@7 B A@7 B A@6 D@3 E A@5 B A@7 B A@7 ~
>`.pickRestart({
  A: "x ~ x!5 ~ x!4", B: "x!12", C: "x", D: "x!4", E: "x ~ x!2 ~ x!2 ~ x!2 ~ x",
})).gain(0.16)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
// … 24 more lines

More by The Beach Boys