Strudelify
California Girls cover art

Endless Summer

California Girls

The Beach Boys

KeyB majorTempo118 bpm
0:00/0:00
// California Girls — The Beach Boys
// 118 bpm, 4/4, key B major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 4 "Organ 2" soprano sax (copy of ch 6 "Guitar 2" choir aahs)
// note: Full arrangement: all 79 bars on a 24-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 2.
setcpm(118/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 · drawbar organ · "Organ 1"
const drawbar_organ = note(`<
  ~@11 A B A B C D E@2 F@2 A B C D E@2 F G H I J K L M N O A B C D P E F@2 A B C D E@2 F G H I J K L M N O Q R A B S T A
  B S T A B S T A B S U
>`.pickRestart({
  A: "[f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~ [f#4,d#5] ~@3 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~, ~@3 b4 ~@8", // B D#m B
  B: "[f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~", // B
  C: "[e4,a4,c#5] ~@3 [e4,a4,c#5] ~ [e4,a4,c#5] ~@3 [e4,a4,c#5] ~ [e4,c#5]@2 ~@2 [e4,a4,c#5] ~ [e4,a4,c#5] ~@3 [e4,a4,c#5] ~, ~@12 a4 ~@11", // A C#m A
  D: "[e4,a4,c#5] ~@3 [e4,a4,c#5] ~ [e4,a4,c#5] ~@3 [e4,a4,c#5] ~ [e4,a4,c#5] ~@3 [e4,a4,c#5] ~ [e4,c#5]@2 ~@2 [e4,a4,c#5] ~, ~@18 a4 ~@5", // A C#m A
  E: "[e4,g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~", // E
  F: "[f#4,a#4,c#5] ~@3 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~@3 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~@3 [f#4,a#4,c#5] ~ [f#4,a#4,c#5] ~@3 [f#4,a#4,c#5] ~", // F#
  G: "~@6 [f#4,a#4,c#5] ~@9 [f#4,a#4,c#5] ~ [f#4,a#4]@2 ~@4, ~@18 c#5 ~@5", // F#
  H: "[f#3,b3,d#4]@2 ~@4 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3", // B
  I: "[g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~ [g#3,b3,e4] ~", // E
  J: "[e3,a3,c#4] ~ [e3,c#4] ~ [e3,a3,c#4] ~ [e3,c#4] ~, ~@5 a3@2 ~@11 a3 ~@5", // A C#m A C#m
  K: "[f#3,a3,d4]@2 ~@4 [f#3,a3,d4]@3 ~@3 [f#3,a3,d4]@3 ~@3 [f#3,a3,d4]@3 ~@3", // D
  L: "[g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2", // G
  M: "[g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3 [g4,c5,e5]@2 ~@4 [g4,c5,e5]@3 ~@3", // C
  N: "[b4,d#5] e5 ~@2 [f#4,b4,d#5] ~ [f#4,d#5]@2 ~@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@2 ~@2 [f#4,b4,d#5] ~ [f#4,b4,d#5] ~@3 [f#4,b4,d#5] ~, f#4@2 ~@4 b4 ~@17", // B D#m B
  O: "[f#4,b4]@2 ~@2 [f#4,b4,d#5] ~ [f#4,b4]@2 ~@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@2 ~@2 [f#4,b4,d#5] ~ [f#4,b4,d#5]@2 ~@2 [f#4,b4] ~, d#5 ~@5 d#5 ~@15 d#5@2", // B5 B B5 B B5
  P: "[g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~ [e4,g#4,b4] ~@3 [e4,g#4,b4] ~, e4 ~@11", // G#m E
  Q: "b4@4 f#4@2 g#4@4 f#4@2 b4@3 ~ f#4@2 g#4@3 ~ f#4@2", R: "c#5@3 ~ f#4@2 g#4@4 f#4@2 c#5@4 f#4@2 g#4@3 ~ f#4@2",
  S: "[b4,e5,g#5] ~@3 [b4,e5,g#5] ~ [b4,g#5] ~@3 [b4,e5,g#5] ~ [b4,e5,g#5] ~@3 [b4,e5,g#5] ~ [b4,e5,g#5] ~@3 [b4,e5,g#5] ~, ~@3 e5 ~@8", // E
  T: "[b4,e5,g#5] ~@3 [b4,e5,g#5] ~ [b4,e5,g#5] ~@3 [b4,e5,g#5] ~ [b4,e5,g#5] ~@3 [b4,e5,g#5] ~ [b4,e5,g#5] ~@3 [b4,e5,g#5] ~", // E
  U: "[b4,e5,g#5] ~@3 [b4,e5,g#5] ~ [b4,e5,g#5] ~@3 [b4,e5,g#5] ~ [b4,e5,g#5] ~@11", // E
})).s("gm_drawbar_organ").gain(0.23)

// bass · fretless bass · "Bass"
const bass = note(`<
  ~@2 A B C@2 D@2 E F@2 G H I J I H K L M N I H G H O P Q R S T U V W X Y Z I J I H AA AB AC AD I H G H O P Q R S T U V
  W X Y Z ~ AE I H AF AG I J AH AG I H AH AI I H AF AJ
>`.pickRestart({
  A: "~@5 b1@5 g#2@2", B: "~ b1@3 ~ f#2@6 b1@3 e2@6 d#2@3 ~",
  C: "[b1@6 c#2@6 b1@10 g#2@5 b1@3 ~ f#2@6 b1@3 e2@6 d#2@2]/2",
  D: "[~ b1@6 ~ c#2@6 b1@9 g#2@5 ~ b1@3 f#2@6 b1@3 ~ e2@6]/2", E: "d#2 b1@2 c#2@2 a1@3",
  F: "[~ f#2@7 a1@3 e2@7 a1@3 d2@7 c#2@4 a1@7 ~ c#2@8]/2", G: "b1@4 f#2@2 g#2@3 ~ f#2@2 b1@3 ~ f#2@2 g#2@3 ~ f#2@2",
  H: "b1@4 f#2@2 g#2@4 f#2@2 b1@4 f#2@2 g#2@3 ~ f#2@2", I: "b1@4 f#2@2 g#2@4 f#2@2 b1@3 ~ f#2@2 g#2@3 ~ f#2@2",
  J: "b1@3 ~ f#2@2 g#2@4 f#2@2 b1@4 f#2@2 g#2@3 ~ f#2@2", K: "e1@4 b1@2 c#2@3 ~ b1 ~ e1@4 b1@2 c#2@4 b1@2",
  L: "e1@4 b1@2 c#2@3 ~ b1@2 e1@4 b1@2 c#2@3 ~ b1@2", M: "f#1@4 c#2@2 d#2@3 ~ c#2@2 f#1@4 c#2@2 d#2@3 ~ c#2@2",
  N: "f#1@3 c#2@2 ~ d#2@4 c#2@2 f#1@4 c#2@2 d#2@4 c#2@2", O: "e1@3 ~ b1@2 c#2@3 ~ b1@2 e1@4 b1@2 c#2@4 b1 ~",
  P: "e1@3 ~ b1@2 c#2@3 ~ b1@2 e1@4 b1@2 c#2@4 b1@2", Q: "f#1@4 c#2@2 d#2@3 ~ c#2@2 f#1@4 c#2@2 d#2@4 c#2@2",
  R: "~@6 f#1@5 ~@5 f#1@2 f#1@4 ~@2", S: "b1@3 ~@3 b1@3 ~@3 b1@3 ~@3 b1@4 ~@2",
  T: "c#2@4 ~@2 c#2@4 ~@2 c#2@3 ~@3 c#2@4 e1@2", U: "a1@2 ~ a1@2 ~ a1@2 ~ a1@2 ~",
  V: "b1@4 ~@2 b1@3 ~@3 b1@4 ~@2 b1@3 ~@3", W: "g1@3 ~@3 g1@3 ~@3 g1@3 ~@3 g1@4 ~@2",
  X: "a1@4 ~@2 a1@3 ~@3 a1@3 ~@3 a1@4 ~@2", Y: "b1@3 ~ f#2@2 g#2@4 f#2@2 b1@3 ~ f#2@2 g#2@4 f#2@2",
  Z: "b1@3 ~ f#2@2 g#2@4 f#2 ~ b1@3 ~ f#2@2 g#2@3 ~ f#2@2", AA: "e1@3 ~ b1@2 c#2@4 b1@2 e1@3 ~ b1@2 c#2@3 ~ b1@2",
  AB: "e1@3 ~ b1@2 c#2@4 b1@2 e1@3 ~ b1@2 c#2@4 b1@2", AC: "f#1@4 c#2@2 d#2@3 ~ c#2@2 f#1@3 ~ c#2@2 d#2@3 ~ c#2 ~",
  AD: "f#1@3 ~ c#2@2 d#2@3 ~ c#2 ~ f#1@3 ~ c#2@2 d#2@4 c#2@2", AE: "~@10 f#2@2 ~@3 g#2@2 ~ f#2@3 d#2@2 ~",
  AF: "c#2@4 f#2@2 g#2@3 ~ f#2@2 c#2@3 ~ f#2@2 g#2@3 ~ f#2@2", AG: "c#2@4 f#2@2 g#2@4 f#2@2 c#2@4 f#2@2 g#2@3 ~ f#2@2",
  AH: "c#2@4 f#2@2 g#2@4 f#2@2 c#2@3 ~ f#2@2 g#2@3 ~ f#2@2", AI: "c#2@3 ~ f#2@2 g#2@4 f#2@2 c#2@4 f#2@2 g#2@3 ~ f#2@2",
  AJ: "c#2@2 f#2 g#2@2 f#2 c#2@2 f#2 ~@3",
})).s("gm_fretless_bass").gain(0.48)

// other · drawbar organ · "Organ 2"
const drawbar_organ_2 = note(`<
  ~@11 A B A B A B C@2 D E A B A B C@2 D ~@7 F G A B A B H I J K A B A B C@2 D ~@7 F G ~@18
>`.pickRestart({
  A: "b2@3 ~ f#3@2 g#3@3 ~ f#3@2 b2@3 ~ f#3@2 g#3@3 ~ f#3@2",
  B: "b2@3 ~ f#3@2 g#3@3 ~ f#3@2 b2@3 ~ f#3@2 g#3@3 ~ f#3 ~", C: "e3@2 b3 c#4@2 b3 e3@2 b3 c#4@2 b3",
  D: "f#3@4 c#4@2 d#4@4 c#4@2 f#3@3 ~ c#4@2 d#4@4 c#4@2", E: "f#3@3 ~ c#4@2 d#4@4 ~@2 f#3@4 c#4@2 d#4@4 c#4@2",
  F: "~@6 b3@2 f#4 g#4@2 f#4", G: "b3@4 f#4@2 g#4@4 f#4@2 ~@4 f#4@2 g#4@3 ~@3",
  H: "e3@3 ~ b3@2 c#4@3 ~ b3 ~ e3@3 b3@2 ~ c#4@4 ~@2", I: "e3@3 ~ b3 ~ c#4@3 ~ b3 ~ e3@4 b3 ~ c#4@4 b3 ~",
  J: "f#3@4 c#4@2 d#4@3 ~ c#4 ~ f#3@3 ~ c#4 ~ d#4@3 ~ c#4@2", K: "f#3@4 c#4@2 d#4@4 c#4 ~ f#3@3 ~ c#4@2 d#4@3 ~@3",
})).s("gm_drawbar_organ").gain(0.23)

// other · drawbar organ · "Organ 2" · soft notes
const drawbar_organ_soft = note("<~@20 A ~@14 B C ~@4 D ~@2 E ~@14 B C ~@18>".pickRestart({
  A: "~@10 c#4 ~@13", B: "b3@2 f#4 g#4@2 f#4 ~@6", C: "~@6 b3@2 ~@3 f#4", D: "~@22 b3 ~", E: "~@22 c#4 ~",
})).s("gm_drawbar_organ").gain(0.14)

// chords · electric guitar clean · "Guitar 1"
const electric_guitar_clean = note(`<
  A B@3 C@2 D@2 E@3 ~@10 F@2 G H I J K L M N O P Q R S T U V H W ~@4 F@2 G H I J K L M N O P Q R S T ~@18
>`.pickRestart({
  A: "~@3 b3@3 [e4,g#4]@2", // E
  B: "[b3@3 [d#4,f#4]@6 b3@3 ~ e4@6 d#4@3 b3@6 c#4@6 b3@10 [e4,g#4]@6 b3@3 [d#4,f#4]@6 ~@3 e4@6 d#4@4, ~@59 b3@9 ~@4]/3", // D#m E D#m
  C: "[b3@6 c#4@5 ~ b3@9 ~ g#4@5 b3@3 ~ f#4@6 b3@3 e4@6 d#4@2, ~@7 e4@2 ~ d#4@2 ~@4]/2",
  D: "[~ b3@6 c#4@7 b3@9 ~ g#4@5 b3@3 ~ f#4@5 ~@4 e4@6, ~@23 e4@6 ~@3 d#4@6 b3@9 ~]/2",
  E: "[d#4@3 b3@6 c#4@5 ~@2 a3@9 [d4,f#4]@6 a3@4 [c#4,e4]@6 a3@4 d4@7 c#4@4 a3@7 c#4@9]/3", // D C#m
  F: "[f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~", // B
  G: "~ a3@2 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@2 ~@2 [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~, [c#4,e4] ~@11", // A C#m
  H: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4]@2", // A
  I: "[g#3,b3,e4]@3 ~ [g#3,b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~", // E
  J: "[g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@3 ~ [g#3,b3,e4]@2 [g#3,b3,e4]@3 ~ [g#3,b3,e4] ~", // E
  K: "[a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@3 ~ [a#3,c#4,f#4]@2", // F#
  L: "~@6 [a#3,c#4,f#4]@2 ~@8 [a#3,c#4,f#4] ~ [a#3,c#4,f#4]@2 ~@4", // F#
  M: "[b2,f#3,b3,d#4]@3 ~@3 [b2,f#3,b3,d#4]@4 ~@2 [b2,f#3,b3,d#4]@3 ~@3 [b2,f#3,b3,d#4]@3 ~@3", // B
  N: "[c#3,g#3,b3,e4]@4 ~@2 [c#3,g#3,b3,e4]@4 ~@2 [c#3,g#3,b3,e4]@4 ~@2 [c#3,g#3,b3,e4]@2 ~@2 e3 ~", // C#m7
  O: "[a2,e3,a3,c#4]@4 ~@2 [a2,e3,a3,c#4]@4 ~@2 [a2,e3,a3,c#4]@3 ~@3 [a2,e3,a3,c#4]@3 ~@3", // A
  P: "[b2,f#3,a3,d4] ~ [b2,f#3,a3,d4] ~ [b2,f#3,a3,d4] ~ [b2,f#3,a3,d4] ~", // Bm7
  Q: "[g3,b3,d4]@2 ~ [g3,b3,d4]@2 ~ [g3,b3,d4]@2 ~ [g3,b3,d4]@2 ~", // G
  R: "[a3,c4,e4]@2 ~ [a3,c4,e4]@2 ~ [a3,c4,e4]@2 ~ [a3,c4,e4] ~@2", // Am
  S: "[b2,f#3]@2 ~@2 [b2,f#3]@2 [b2,g#3]@3 ~ [b2,f#3] ~ [b2,f#3]@3 ~ [b2,f#3]@2 [b2,g#3]@3 ~ [b2,f#3]@2", // B5 E B5 E B5
  T: "[b2,f#3]@3 ~ [b2,f#3]@2 [b2,g#3]@4 [b2,f#3]@2 [b2,f#3]@3 ~ [b2,f#3]@2 [b2,g#3]@3 ~ [b2,f#3]@2", // B5 E B5 E B5
  U: "[f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@2 [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~", // B
  V: "[f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@2 [f#3,b3,d#4]@3 ~ [f#3,b3,d#4] ~ [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@2", // B
  W: "[a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~ [a3,c#4,e4]@3 ~ [a3,c#4,e4] ~", // A
})).s("gm_electric_guitar_clean").gain(0.14)

// chords · electric guitar clean · "Guitar 2"
const electric_guitar_clean_2 = note("<A B C@2 ~ D E@2 F@2 G ~@68>".pickRestart({
  A: "~@19 g#5@5", B: "~@2 f#5@3 ~@4 d#4@3", C: "[~@5 c#5@6 ~@8 e4@6 b4@4 ~@19]/2", D: "~@4 b4@3 d#4@9 ~@8",
  E: "[~@2 b4@6 c#5@5 ~@10 g#4@8 ~ f#4@7 ~@9, ~@13 b3@14 ~@21, ~@23 g#5@6 ~@19]/2",
  F: "[~@13 f#5@3 a4@2 ~@6, ~@15 a3@14 ~@19]/2", G: "~@2 c#5",
})).s("gm_electric_guitar_clean").gain(0.17)

// other · celesta
const celesta = note("<~@11 A@4 B@2 ~@4 A@2 B@2 ~@12 A@2 B@2 ~@3 C A@2 B@2 ~@30>".pickRestart({
  A: "d#7 ~@3 d#7 ~ d#7 ~@3 d#7 ~ d#7 ~@3 d#7 ~ d#7 ~@3 d#7 ~",
  B: "c#7 ~@3 c#7 ~ c#7 ~@3 c#7 ~ c#7 ~@3 c#7 ~ c#7 ~@3 c#7 ~",
  C: "~@4 [f#6,a#6] ~ [f#6,a#6] ~@3 [f#6,a#6] ~ [f#6,a#6] ~@3 [f#6,a#6] ~ [f#6,a#6] ~@3 [f#6,a#6] ~", // F#
})).s("gm_celesta").gain(0.08)

// other · baritone sax · "Sax 1"
const baritone_sax = note("<~@6 A@5 ~@68>".pickRestart({
  A: "[~@7 b3@56 ~ a2@52 ~@4]/5",
})).s("gm_baritone_sax").gain(0.14)

// chords · tenor sax · "Sax 2"
const tenor_sax = note("<~@6 A@5 ~@68>".pickRestart({
  A: "[~@21 c#4@18 ~, ~@7 b3@56 ~@57, ~@14 e4@103 ~@3]/5",
})).s("gm_tenor_sax").gain(0.26)

// chords · tenor sax · "Sax 3"
const tenor_sax_2 = note("<~@4 A@7 ~@68>".pickRestart({
  A: "[~@6 f#3@6 [a3,c#4]@50 g#3@49 g3@50 ~@7, ~@62 b3@99 ~@7]/7", // A
})).s("gm_tenor_sax").gain(0.14)

// other · alto sax · "Sax 4"
const alto_sax = note("<~@6 A@5 ~@68>".pickRestart({
  A: "[~@7 b3@54 ~@2 g4@53 ~@4]/5",
})).s("gm_alto_sax").gain(0.31)

// chords · flute · "Backing 1"
const flute = note("<~@21 A B C@2 D E F G ~@8 H@4 I@2 ~ J K@4 I@2 ~@28>".pickRestart({
  A: "b3@2 ~@2 b3@2 b3@2 ~@2 [b3,d#4] ~ [b3,d#4] ~@3 [b3,d#4] ~ [b3,d#4] ~@3 [b3,d#4] ~, d#4 ~@3 d#4 ~ d#4 ~@17", // B
  B: "[b3,d#4] ~@3 [b3,d#4] ~ [b3,d#4] ~@3 [b3,d#4] ~ [b3,d#4] ~@3 [b3,d#4] ~ [b3,d#4] ~@3 [b3,d#4] ~", // B
  C: "[a3,c#4,e4] ~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~@3 [a3,c#4,e4] ~ [a3,c#4,e4] ~@3 [a3,c#4,e4] ~", // A
  D: "[g#3,b3,e4] ~@3 [g#3,b3,e4] ~ [g#3,b3,e4] ~@3 [g#3,b3,e4] ~ [g#3,b3,e4] ~@3 [g#3,b3,e4] ~ [g#3,b3,e4] ~@3 [g#3,b3,e4] ~", // E
  E: "[g#3,b3,e4] ~@3 [g#3,b3,e4] ~ [g#3,b3,e4] ~@3 [g#3,b3,e4] ~ [g#3,b3,e4] ~@3 [g#3,b3,e4] ~ [g#3,b3,e4] ~@3 [b3,e4] ~, ~@11 g#3", // E E5
  F: "[a#3,c#4,f#4] ~@3 [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~@3 [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~@3 [a#3,c#4,f#4] ~ [a#3,c#4,f#4] ~@3 [a#3,c#4,f#4] ~", // F#
  G: "~@6 [a#3,c#4,f#4] ~@9 [a#3,c#4,f#4] ~ [a#3,c#4] ~@5, ~@9 f#4 ~@2", // F# A#m
  H: "[[d#4,b4]@48 [e4,a4,c#5]@47 ~, f#4@47 ~, ~@12 b4@11 ~]/4", I: "[e3,b3,e4,g#4]@7 ~@5 [e3,b3,e4,g#4]@6 ~@6",
  J: "~@12 [c#4,e4]@11 ~", K: "[[d#4,b4]@24 [e4,a4,c#5]@23 ~, f#4@47 ~]/4",
})).s("gm_flute").gain(0.25)

// chords · flute · "Backing 3"
const flute_2 = note(`<
  ~@29 A B@2 C D@4 ~@4 E F@3 ~@4 E G@2 ~ A B@2 C D@4 ~@2 H@2 I J K H I J K H I J K H I L
>`.pickRestart({
  A: "[f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~ [g#3,b3,e4]@2", // B E
  B: "[~@4 [g#3,b3,e4]@3 ~@3 [b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,e4]@2 ~@4 g#3@2 [a3,c#4]@3 ~@3 [a3,c#4,e4]@3 ~@3 [a3,c#4,e4]@4 ~@2 [c#4,e4]@2 ~ [a3,d4,f#4]@3, ~@10 g#3@2 ~@4 b3 ~@5 e4@5 ~@21, ~@22 b3 ~@18 a3@2 ~@5]/2", // E E5 E C#m A C#m D
  C: "~@4 [a3,d4,f#4]@4 ~@2 [a3,d4] ~ [a3,d4,f#4]@3 ~ [a3,d4,f#4]@3 ~@3 [a3,f#4]@2, ~@10 f#4@2 ~@10 d4 ~", // D D5 D
  D: "[[g3,b3,d4]@4 ~@2 [g3,b3,d4]@4 ~@2 [g3,b3,d4]@4 ~@2 [g3,b3,d4]@3 ~ [g3,a3,c4,e4]@4 ~@2 [g3,a3,c4,e4]@4 ~@2 [g3,a3,c4,e4] ~ [g3,a3,c4,e4]@3 ~ [g3,a3,c4,e4]@2 ~@4 [b3,d#4,f#4]@44 ~@6]/4", // G Am7 B
  E: "~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4]", F: "[~@3 [e3,b3,e4,g#4]@3 ~@3 [e3,b3,e4,g#4]@20 ~@7]/3",
  G: "[~ [e3,b3,e4,g#4] ~ [e3,b3,e4,g#4]@5]/2", // E
  H: "[f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@2", // B
  I: "[f#3,b3,d#4] ~@3 [g#3,b3,e4]@3 ~@3 [b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,e4]@2 ~@4 [g#3,e4]@2, ~@10 g#3@2 ~@4 b3 ~@5 b3 ~", // B E E5 E C#m
  J: "[f#3,b3,c#4,d#4] ~@3 [g#3,b3,e4]@3 ~@3 [b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,e4]@2 ~@4 [g#3,e4]@2, ~@10 g#3@2 ~@4 b3 ~@5 b3 ~", // B E E5 E C#m
  K: "[f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~@3 [f#3,b3,d#4]@3 ~ [f#3,b3,d#4]@2, c#4 ~@23", // B
  L: "[f#3,b3,c#4,d#4] ~@3 [g#3,b3,e4]@3 ~@3 [b3,e4] ~ [g#3,b3,e4]@3 ~ [g#3,e4]@2 ~@6, ~@10 g#3@2 ~@4 b3 ~@7", // B E E5 E C#m
})).s("gm_flute").gain(0.16)

// other · flute · "Backing 4"
const flute_3 = note("<~@31 A B C D ~@2 E F G@2 H I J@2 K L@2 M N O P@2 ~@2 A B C D ~@4 Q@12 R@4>".pickRestart({
  A: "c#4@2 ~ d4@2 ~ e4@2 ~ f#4@2 e4", B: "~@4 c#4@5 b3@2 ~ a3@3 ~ b3@3 ~@5", C: "d3@3 ~@19 e3@2",
  D: "~@4 e3@3 ~@9 a2@3 ~@5", E: "d#4@2 ~ c#4@2 ~ b3@2 ~ a#3@2 b3", F: "~@4 f#3@3 ~@3 g#3@8 b3@4 ~@2",
  G: "[a3@4 ~@2 b3@3 ~@3 a3@4 ~@2 g#3@3 ~ a3 ~ f#3@14 ~@2 b3@2 c#4@3 ~ b3@2, ~@23 g#3@2 ~@23]/2",
  H: "d4@5 ~ c#4@4 b3@5 ~ b3@2 c#4@3 ~ f#3@2", I: "g#3@5 ~ d4@4 g#3 ~ b3@3 ~ e4 ~ e4@3 ~ c#4 ~",
  J: "[e4@5 ~ d#4@5 ~ c#4@5 ~ d#4@4 f#3@20 ~@3 d#4@2 ~]/2", K: "d#4@4 ~@2 c#4@4 ~@2 b3@4 ~@2 a#3@3 ~ b3@2",
  L: "[~@4 f#3@5 ~ g#3@5 ~ b3@5 ~ a3@8 b3@4 ~@2 a3@5 ~ g#3@4 a3@2]/2", M: "g#3 f#3@6 ~ b3 c#4@2 b3",
  N: "d4@6 c#4@4 b3@3 ~@3 b3@2 c#4@3 ~ f#3@2", O: "~ a#3 ~@2 d4@3 ~@3 b3@3 ~@3 e4 ~ e4@4 c#4@2, g#3 ~@7",
  P: "[e4@5 ~ d#4@5 ~ c#4@5 ~ d#4@4 f#3@14 ~@12]/2",
  Q: "[f#4@4 ~@2 g#4@3 ~@3 b4@3 ~@3 d#5@3 ~ c#5@5 ~ b4@5 ~ g#4@2 f#4@3 ~ g#4@3 ~@2 b4 ~@2 e4@3 ~@3 e4@4 ~@2 f#4@4 ~@2 g#4@4 f#4@5 ~ d#4@5 ~ c#4@2 b3@3 b3@5 ~@2 b3@2, ~@46 b4@47 ~@3]/4",
  R: "[f#4@4 ~@2 g#4@3 ~@3 b4@3 ~@3 d#5@3 ~ c#5@5 ~ b4@5 ~ g#4@2 f#4@3 ~ g#4@3 ~@2 b4 ~@2 e4@3 ~@3 e4@4 ~@2 f#4@4 ~@2 g#4@4 f#4@5 ~ d#4@5 ~ c#4@2 b3@3 b3@5 ~@4, ~@46 b4@47 ~@3]/4",
})).s("gm_flute").gain(0.2)

// other · flute · "Backing 4" · soft notes
const flute_soft = note("<~@33 A B@3 ~@20 A B@3 ~@18>".pickRestart({
  A: "g2@3 ~@3 [g2,d3]@3 ~@3 [g2,d3]@3 ~@3 [g2,d3]@4 a2@2", // G5
  B: "[~@4 a2@3 ~@3 [a2,e3]@2 [a2,e3]@3 ~ e3@2 ~@4 [b2,f#3]@44 ~@6]/3", // A5 B5
})).s("gm_flute").gain(0.11)

// drums · kick
const kick = s("bd").struct(`<
  ~@13 A B A B A B A C B@2 A B A B A D E F E F E F B C A@3 B A B A C B@2 A B A@3 D E F E G H F A C I ~ J A@2 B A@3 C A@3
  C A B A@2
// … 67 more lines

More by The Beach Boys