Strudelify
Barbara Ann cover art

Beach Boys, Golden Selections

Barbara Ann

The Beach Boys

KeyF majorTempo160 bpm
0:00/0:00
// Barbara Ann — The Beach Boys
// 160 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 83 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/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.

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  ~@5 A B C D A B E F A@2 ~@2 G ~ H I A@2 E F A B ~@4 A B C D A B J F A B A B K L M C N O P Q R S ~@2 G ~ H I A@2 E F A
  B ~@4 A B C D A B E F A@3 B C T
>`.pickRestart({
  A: "f1@5 ~ a1@6 c2@5 ~ d2@6", B: "f2@5 ~ eb2@5 ~ d2@5 ~ c2@5 ~", C: "bb1@5 ~ d2@6 ~ f2@5 g2@5 ~",
  D: "~ bb2@5 ab2@5 ~ g2@5 ~ f2@5 ~", E: "c2@16 ~@3 c2@5", F: "~ bb1@20 ~@3", G: "f1 ~@5",
  H: "bb1@5 ~ d2@5 ~ f2@6 ~ g2@5", I: "bb1@5 ~ d2@5 ~ f2@6 g2@4 ~@2", J: "c2@7 ~", K: "f1@2 ~ g1@2 ~ f1@2 ~ c2@2 ~",
  L: "f1@2 ~ a1@2 ~ f1@2 ~ c2@2 ~", M: "bb1@4 ~@2 c2@5 ~ bb1@5 ~ f2@5 ~", N: "f2@5 ~ f2@5 ~ eb2@5 ~ c2@5 ~",
  O: "f1@6 a1@5 ~ c2@5 ~ d2@5 ~", P: "c2@2 d2 e2@2 f2 g2@2", Q: "~ f1@5 g1@4 ~@2 a1@5 ~ bb1@4 ~@2",
  R: "f1@5 ~ a1@5 ~ c2@6 d2@4 ~@2", S: "c2@5 ~ bb1@5 ~ a1@5 ~ g1@4 ~@2", T: "~ bb2@5 ab2@5 ~ g2@5 ~@7",
})).s("gm_acoustic_bass").gain(0.52)

// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
  ~@5 A@2 B@2 C@2 D E F G@2 ~@3 H@2 I@2 ~@2 J G@2 ~@3 K@2 B@2 L@2 ~@2 J M N@2 O@2 P@2 C@2 D E Q@2 ~@4 H@2 C@2 ~@2 J G@2
  ~@3 R@2 B@2 S@2 D E F M T@2 U@2
>`.pickRestart({
  A: "[[c3,a3,c4,f4]@3 c4@3 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, f3@2 [f2,f3]@2 c4@3 [a3,c4]@2 c4@2 [c4,f4]@2 c4@3, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@29 f2@6 f2@6 [f2,c3,f3]@7, ~@30 c3@6 c3@5 ~@7]/2", // F Am F5
  B: "[[bb2,bb3]@6 [bb3,f4]@3 bb3@3 [f2,bb2,f3]@6 ~@9 f3@2 ~ f3@3 [f3,bb3,d4,f4]@3 ~ f4@2 [bb2,f3,bb3,d4]@3 [f2,bb2,f3,bb3,d4]@6, f3 ~@5 [bb2,d4]@6 f4@2 ~@4 [bb2,f3]@8 d4@3 f2@6 ~ f2@6 ~@6, ~@6 f3 ~@5 [bb3,d4]@8 ~ f4@11 ~@7 f4@9, ~@7 [bb3,d4]@2 bb2@3 [bb2,f3,bb3,d4] ~@3, ~@8 f2 bb3@2 ~@5]/2", // Bb Bb5 Bb Bb5 Bb
  C: "[[c3,a3,c4,f4]@3 c4@3 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, f3 ~@5 f2@6 f2@17 f2@6 f2@6 [f2,c3,f3]@7, ~@6 f3 ~@5 c4@9 [a3,c4]@6 c4@6 [c4,f4]@6 c4@9, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@30 c3@6 c3@5 ~@7]/2", // F F5 Am F5
  D: "[g2,e3]@2 e3 [c4,e4]@2 [g3,c4] [c3,e3,g3,c4]@2, [g3,c4]@3 e3@3 ~@2, c3 ~@5 g2@18, ~@6 c3 ~@2 g3@3 ~@12", // C C5 C C5
  E: "~ d4@5 ~ d4@2 ~@6 d4@3 [f3,d4]@6, [f2,bb2,f3,bb3]@5 ~ bb2@18, ~ f4@8 f4@15, ~ [f2,f3] f2@2, ~@2 bb3 [bb3,d4] f3 bb3@3", // Dm Bb5 F Bb
  F: "[f2,f3] ~@5 f3 ~@5 f2 ~@3 [c3,f3,a3,c4]@3 [c3,f3,a3,c4,f4]@5, [a3,c4,f4]@9 f4@10 ~@5, c3@3 c3@5 ~@4, ~@9 [a3,c4]@7 ~@8", // F Am
  G: "[[f2,c3,f3,a3,c4] ~@5 f3@3 ~@7 [c3,f3,a3,c4]@3 [c3,f3,a3,c4]@6 ~@23, f4@5 ~ c3@10 ~@32, ~@9 f4@10 f4@14 ~@15, ~@9 [a3,c4]@7 ~@32, ~ f2 ~@2]/2", // F Am
  H: "[[bb2,f3,bb3]@6 [bb3,f4]@3 bb3@3 [f2,bb2,f3]@6 ~@9 f3@2 ~ f3@3 [f3,bb3,d4,f4]@3 ~ f4@2 [bb2,f3,bb3,d4]@3 [f2,bb2,f3,bb3,d4]@6, ~@6 [bb2,f3,d4]@6 [bb3,d4]@8 ~ f4@8 f2@6 ~ f2@6 ~@6, ~@12 f4@2 ~@4 f3@8 d4@6 ~@7 f4@9, ~@7 [bb3,d4]@2 bb2@3 [bb2,f3,bb3,d4] ~@3, ~@8 f2 bb3@2 ~@5]/2", // Bb5 Bb
  I: "[[c3,a3,c4,f4]@3 c4@3 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, f3 ~@5 f3 ~@5 f2@17 f2@6 f2@6 [f2,c3,f3]@7, ~@4 c4@3 [a3,c4]@2 c4@2 [c4,f4]@2 c4@3, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@30 c3@6 c3@5 ~@7]/2", // F F5 Am F5
  J: "[f2,c3,f3]@6 f3@3 ~@7 [c3,f3,a3,c4]@3 [c3,f3,a3,c4,f4]@5, [a3,c4,f4]@9 f4@10 ~@5, ~@3 c3@5 ~@4, ~@9 [a3,c4]@7 ~@8, ~ f2", // F5 F Am
  K: "[[c3,a3,c4,f4]@3 ~@3 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, f3@2 [f2,f3]@2 c4@3 [a3,c4]@2 c4@2 [c4,f4]@2 c4@3, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@29 f2@6 f2@6 [f2,c3,f3]@7, ~@30 c3@6 c3@5 ~@7]/2", // F Am F5
  L: "[[c3,a3,c4,f4]@3 ~@3 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, f3 ~@5 f2@6 f2@17 f2@6 f2@6 [f2,c3,f3]@7, ~@6 f3 ~@5 c4@9 [a3,c4]@6 c4@6 [c4,f4]@6 c4@9, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@30 c3@6 c3@5 ~@7]/2", // F F5 Am F5
  M: "[f2,c3,f3,a3,c4] ~@5 f3@3 ~@7 [c3,f3,a3,c4]@3 [c3,f3,a3,c4,f4]@5, f4@5 ~ c3@10 ~@8, ~@9 f4@10 ~@5, ~@9 [a3,c4]@7 ~@8, ~ f2", // F Am
  N: "[[c3,f3,a3,c4,f4] ~@5 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, ~@2 [f2,f3]@2 c4@3 [a3,c4]@2 c4@2 [c4,f4]@2 c4@3, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@29 f2@6 f2@6 [f2,c3,f3]@7, ~@30 c3@6 c3@5 ~@7]/2", // F Am F5
  O: "[[a3,c4,f4]@3 ~@3 [a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [c3,f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ a3@2 ~ a3@6, [c3,f3] ~@5 f2@6 f2@17 f2@6 f2@6 [f2,c3,f3]@7, ~@6 [c3,f3] ~@5 c4@9 [a3,c4]@6 c4@6 [c4,f4]@6 c4@9, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@30 c3@6 c3@5 ~@7]/2", // F Am F F5 Am F5
  P: "[[bb2,bb3]@6 [bb3,f4]@3 bb3@3 [f2,bb2,f3]@6 ~@9 f3@2 ~ f3@3 [f3,bb3,d4,f4]@3 ~ f4@2 [bb2,f3,bb3,d4]@3 [f2,bb2,f3,bb3,d4]@6, f3 ~@5 [bb2,d4]@6 f4@2 ~@4 f3@8 d4@3 f2@6 ~ f2@6 ~@6, ~@6 f3 ~@5 [bb3,d4]@8 ~ f4@11 ~@7 f4@9, ~@7 [bb3,d4]@2 bb2@3 [bb2,f3,bb3,d4] ~@3, ~@8 f2 bb3@2 ~@5]/2", // Bb Bb5 Bb
  Q: "[[f2,f3] ~@5 f3 ~@5 f2 ~@3 [c3,f3,a3,c4]@3 [c3,f3,a3,c4]@6 f2@5 ~@12 [e3,g3,c4,e4]@6, [a3,c4,f4]@9 f4@10 f4@14 [c3,g3]@6 c3@8 ~, c3@6 c3@10 ~@9 [c3,e3,g3,c4]@8 [e3,c4,e4]@9 ~@6, ~@9 [a3,c4]@7 ~@14 g2@6 g2@12]/2", // F C F C5 C Am
  R: "[[c3,a3,c4,f4]@3 ~@3 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, f3@6 [f2,f3]@6 f2@17 f2@6 f2@6 [f2,c3,f3]@7, ~@4 c4@3 [a3,c4]@2 c4@2 [c4,f4]@2 c4@3, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@30 c3@6 c3@5 ~@7]/2", // F F5 Am F5
  S: "[[c3,a3,c4,f4]@3 ~@3 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, f3 ~@5 f3 ~@5 f2@17 f2@6 f2@6 [f2,c3,f3]@7, ~@4 c4@3 [a3,c4]@2 c4@2 [c4,f4]@2 c4@3, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@30 c3@6 c3@5 ~@7]/2", // F F5 Am F5
  T: "[[c3,f3,a3,c4,f4] ~@5 [c3,a3,c4]@3 ~@3 [c3,f3,a3]@6 a3@3 ~@3 c3@3 [f3,a3]@2 ~ [f3,a3]@3 [f3,a3]@2 ~ f3@2 ~ [f3,a3]@2 ~ a3@6, ~@6 f3@6 f2@17 f2@6 f2@6 [f2,c3,f3]@7, ~@4 c4@3 [a3,c4]@2 c4@2 [c4,f4]@2 c4@3, ~@12 f4@2 ~@7 f4@11 ~@6 f4@9 ~, ~@30 c3@6 c3@5 ~@7]/2", // F F5 Am F5
  U: "[[bb2,bb3]@6 [bb3,f4]@3 bb3@3 [f2,bb2,f3]@6 ~@9 f3@2 ~ f3@3 [f3,bb3,d4,f4]@3 ~ f4@2 ~@9, f3 ~@5 [bb2,d4]@6 f4@2 ~@4 [bb2,f3]@8 d4@3 f2@6 ~ f2@6 ~@6, ~@6 f3 ~@5 [bb3,d4]@8 ~ f4@11 ~@16, ~@21 [bb3,d4]@6 bb2@9 [bb2,f3,bb3,d4]@4 ~@8, ~@8 f2 bb3@2 ~@5]/2", // Bb Bb5 Bb Bb5 Bb
})).s("gm_acoustic_guitar_nylon").gain(0.1).pan(0.6)

// chords · acoustic guitar nylon · "NYLON GTR" · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@5 A@2 B ~ C@2 D ~ E@2 ~@4 F@2 G@2 ~@2 E@2 ~@4 H@2 B ~ I@2 ~@2 E@2 J@2 K@2 F@2 C@2 D ~ E L ~@4 F@2 C@2 ~@2 E@2 ~@4
  I@2 B ~ M@2 D ~ E@2 N@2 B ~
>`.pickRestart({
  A: "[~@4 c3@2 ~@3 [c3,a3,c4,f4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 f4@5 ~@7 f4@6 ~@27, ~@3 a3@3 ~@6 f2@17 ~@19, ~@3 c3 ~@4]/2", // F
  B: "~ f4 ~ f4 ~@2 f2@2, ~@6 f2@6 ~@3 f4@5 ~@4",
  C: "[~@4 c3@2 ~@3 [c3,a3,c4,f4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 f4@5 ~@7 f4@6 ~@27, ~ a3 ~@4 c3@2 ~@8]/2", // F
  D: "e4@8 ~@4 g3@2 e4@6 ~ e4@3", E: "~@9 f3@7 ~@8, ~ f2 ~@2",
  F: "[~ f4 ~ f4 ~@2 bb2@3 ~@7, ~@6 f2@6 ~@3 f4@5 ~@28, ~@3 f2 ~@4]/2",
  G: "[~@4 c3@2 ~@3 [c3,a3,c4,f4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 f4@5 ~@7 f4@6 ~@27, ~ a3 f2@2 ~@2 c3@2 ~@8]/2", // F
  H: "[~@4 c3@2 ~@3 [c3,a3,c4,f4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 f4@5 ~@7 f4@6 ~@27, ~@3 [a3,c4]@3 ~@6 f2@17 ~@19, ~@3 c3 ~@4]/2", // F Am
  I: "[~@4 c3@2 ~@3 [c3,a3,c4,f4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 f4@5 ~@7 f4@6 ~@27, ~ [a3,c4] ~@4 c3@2 ~@8]/2", // F Am
  J: "[~@4 c3@2 ~@3 [c3,a3,c4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 [a3,c4,f4]@2 ~@4 f4 ~@2 f2@17 ~@19, ~@5 f4@2 ~@9, ~@3 c3 ~@4]/2", // F
  K: "[~@4 c3@2 ~@3 [c3,a3,c4,f4]@3 ~@6 f3@9 ~@9 a3@3 f3@2 ~@7, ~@3 f4@5 ~@7 f4@6 ~@27, ~ [a3,c4] ~@4 c3@2 ~@8]/2", // F Am
  L: "~@5 g3 ~@2",
  M: "[~@4 c3@2 ~@3 [c3,a3,c4,f4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 f4@5 ~@7 f4@6 ~@27, ~ [a3,c4] f2@2 ~@2 c3@2 ~@8]/2", // F Am
  N: "[~@4 c3@2 ~@3 [c3,a3,c4]@3 ~@6 f3@9 c3@2 ~@7 a3@3 ~@9, ~@3 [a3,c4,f4]@2 ~ f2@6 ~@6 c3@6 ~@24, ~@9 f4 ~@5 f4@6 ~@27]/2", // F
})).s("gm_acoustic_guitar_nylon").gain(0.05).pan(0.6)

// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note("<~@41 A B C D E F G H I J K L ~@30>".pickRestart({
  A: "f4@2 ~@4 f4@2 ~@4 f4@3 ~@6 f4@3", B: "~@3 f4@3 ~@3 f4@2 ~@4 f4@2 ~@7", C: "f4@2 ~@4 f4@2 ~@4 f4@4 ~@5 f4@2 ~",
  D: "~@4 f4@2 ~@4 f4@2 ~@3 f4@3 ~@6", E: "f4 ~@5 f4@2 ~@4 f4@3 ~@7 f4@2", F: "~@4 f4@2 ~@4 f4@3 ~@3 f4@3 ~@5",
  G: "f4@3 ~@3 f4@3 ~@3 f4@8 ~@4", H: "f3@2 g3 a3@2 c4@2 ~", I: "c3@5 ~ d3@3 e3@9 g3@6", J: "bb2@5 ~ c3@3 d3@9 f3@5 ~",
  K: "f3@6 ab3@5 ~ bb3@5 ~ ab3@5 ~", L: "f3@6 ~ ab3@3 ~@2 ab3@5 ~@2 ab3@4 ~",
})).s("gm_acoustic_guitar_steel").gain(0.5).pan(0.3)

// drums · clap
const clap = s("cp").struct(`<
  ~@5 A B A B A B A B A B A ~@15 A B A B A B ~@4 A B A B A B C@2 A B A B A ~@3 A B A B A B A B ~@4 A B A B A B A B A B A
  B A D
>`.pickRestart({
  A: "~@7 x ~@10 x ~@5", B: "~ x ~ x", C: "x!4", D: "~ x ~@2",
})).gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@3 A ~ B C B D E C A@2 B D A ~ A F E D B C A F E C ~@2 A ~ E C B C B D A F B C B C E C E C E D B C E C A ~ A F E C E
  C A ~ E C ~@2 A ~ E C E C B D A@2 B C E D B G
>`.pickRestart({
  A: "x", B: "x!4", C: "~ x!3", D: "~ x ~ x", E: "x!2 ~ x", F: "~ x ~@22", G: "~ x!2 ~",
})).gain(0.45)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~@6 A ~ B C A ~@3 B ~ A ~@2 C B ~ A ~@2 C A ~@4 C A ~ A ~ B ~@3 A ~ A C A C A C B ~ A C A ~ A ~@2 C A C A ~ A C A ~@4
  C A C A ~ B ~@3 A C B ~ A
>`.pickRestart({
  A: "x", B: "x!2", C: "~ x",
})).gain(0.28)

stack(bass, acoustic_guitar_nylon, acoustic_guitar_nylon_2, acoustic_guitar_steel, clap, tambourine, tambourine_soft)

More by The Beach Boys