Strudelify

Please Let Me Wonder

The Beach Boys

KeyF majorTempo115 bpm
0:00/0:00
// Please Let Me Wonder — The Beach Boys
// 115 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 1 "Bass" fretless bass (copy of ch 4 "Fingered" electric bass finger)
// note: Full arrangement: all 81 bars on a 16-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): Low Guita.
setcpm(115/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 B@2 E F G H I J K L M J G H I N O P I M Q@2 R@2 S@2 T M G H I J K L M J G H I N O P I M Q@2 R@2 S@2 T M U V
  U V W X M@2 Q@2 R@2 S@2 Y Z Q@2 R@2 S@2 T AA
>`.pickRestart({
  A: "[c4,f4,a4]!8, f2@2 ~ f2@3 f2@2", B: "[c4,f4,a4]!8, f2@3 f2@3 f2@2", C: "[d4,f4,g4,bb4]!8, g2@3 g2@2 ~ g2@2",
  D: "[c4,e4,g4,bb4]!6 [c3,c4,e4,g4,bb4]!2, c3@2 ~ c3@3 ~@2", E: "[d4,g4,bb4]!8, g2@2 ~ g2@2 ~ g2@2",
  F: "[c4,e4,g4]!5 [c3,c4,e4,g4] [c2,c4,e4,g4]!2, c3@3 c3@2 ~@3", // C
  G: "[c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", // F Am
  H: "[c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] ~ [c4,eb4,f4,a4] ~", // F7
  I: "[d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~ [d4,f4,bb4] ~", // Bb
  J: "[c4,e4,g4,bb4] ~ [c4,e4,g4,bb4] ~ [c4,e4,g4,bb4] ~ [c4,e4,g4,bb4] ~ [c4,e4,g4,bb4] ~ [c4,e4,g4,bb4] ~ [c4,e4,g4,bb4] ~ [c4,e4,g4,bb4] ~", // C7
  K: "[c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~", // F
  L: "[d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~", // Dm7
  M: "[d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~", // Gm7
  N: "[d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [d4,g4,bb4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~", // Gm A7
  O: "[d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [d4,f4,a4,c5] ~ [db4,f4,a4,c5] ~ [db4,f4,a4,c5] ~ [db4,f4,a4,c5] ~ [db4,f4,a4,c5] ~ [db4,f4,a4,c5] ~", // Dm7 F
  P: "[c4,f4,a4,c5] ~ [c4,f4,a4,c5] ~ [c4,f4,a4,c5] ~ [c4,f4,a4,c5] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~ [c4,e4,a4] ~", // F Am
  Q: "[c4,f4,a4,f5] ~ [c4,f4,a4,f5] ~ [c4,f4,a4,f5] ~ [c4,f4,a4,f5] ~ [c4,f4,a4,f5] ~ [c4,f4,a4,f5] ~ [c4,f4,a4,f5] ~ [c4,f4,a4,f5] ~", // F
  R: "[d4,gb4,a4,c5] ~ [d4,gb4,a4,c5] ~ [d4,gb4,a4,c5] ~ [d4,gb4,a4,c5] ~ [d4,gb4,a4,c5] ~ [d4,gb4,a4,c5] ~ [d4,gb4,a4,c5] ~ [d4,gb4,a4,c5] ~", // D7
  S: "[d4,g4,bb4,f5] ~ [d4,g4,bb4,f5] ~ [d4,g4,bb4,f5] ~ [d4,g4,bb4,f5] ~ [d4,g4,bb4,f5] ~ [d4,g4,bb4,f5] ~ [d4,g4,bb4,f5] ~ [d4,g4,bb4,f5] ~", // Gm7
  T: "[c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~ [c4,e4,f4,a4] ~", // Fmaj7
  U: "[db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~ [db4,e4,g4,a4] ~", // A7
  V: "[d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~ [d4,f4,a4] ~", // Dm
  W: "[c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~ [c4,d4,f4,a4] ~", // Dm7
  X: "[d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~ [d4,f4,g4,b4] ~", // G7
  Y: "[f3,c4,eb4,g4]@13 ~@3", Z: "~@12 c3@3 ~, [c4,e4,a4]@7 ~, c3@3 ~, ~@3 f4@4 ~",
  AA: "[d4,f4,g4,bb4] ~ [d4,f4,g4,bb4] ~@13", // Gm7
})).s("gm_piano").gain(0.22)

// other · electric guitar clean · "Clean Gui"
const electric_guitar_clean = note(`<
  A B ~@2 C B ~@3 B ~@3 D E F G H ~@3 I J ~@2 K L K M N O P Q B ~@3 D E F G H ~@3 I J ~@2 K L K M N O P Q R S R S@2 T
  U@2 K L K M N O ~@2 K L K M N O P Q
>`.pickRestart({
  A: "~@5 g3 bb3 a3", B: "f3", C: "c4@3 d4 c4 g3 bb3 a3", D: "~ a3 c4 e4", E: "~ f4 e4 f4", F: "~@4 f4@4 e4@4 f4@3 ~",
  G: "~@3 d4 c4 g3 bb3 a3", H: "f3@3 ~", I: "d4@5 ~ db4@10", J: "c4@6 a3@9 ~", K: "c4@3 bb3@3 c4@2", L: "bb3@6 a3@9 ~",
  M: "bb3@6 a3@7 ~@3", N: "bb3@3 a3@3 bb3@2", O: "a3@3 g3@5", P: "a3", Q: "bb3@13 ~@3", R: "~@6 [db4,e4,g4,a4]!3 ~@7",
  S: "~@6 [d4,f4,a4]!3 ~@7", T: "~@6 [d4,e4,g4,b4] [d4,g4,b4]!2 ~@7", U: "~@6 [d4,g4,bb4]!3 ~@7",
})).s("gm_electric_guitar_clean").gain(0.36)

// bass · electric bass finger · "Fingered"
const bass = note(`<
  A B C D E B@2 F E G@2 H I J K L M G@2 N O P Q R S T U V W X Y Z AA G@2 H I J K L M G@2 N O P Q R S T U V W X Y Z AA AB
  AC AD AC AE AF AG AH T U V W X Y AI AJ@2 U V W X Y Z AK
>`.pickRestart({
  A: "~@5 g1 bb1 a1", B: "f1@2 ~ f1 a1@2 c2@2", C: "f1@2 a1 c2", D: "g1@3 g1 bb1@2 d2@2", E: "c2@3 d2 c2 g1 bb1 a1",
  F: "g1@2 ~ g1 bb1@2 d2@2", G: "f1@5 ~ f1@5 ~ f1@3 ~", H: "bb1@4 ~@2 bb1@5 ~ bb1@2 ~@2", I: "c2@5 ~ c2@3 ~@3 c2@4",
  J: "f1@4 ~@2 f1@4 ~@2 f1@3 ~", K: "d1@5 ~ d1@5 ~ d1@2 ~@2", L: "g1@5 ~ g1@4 ~@2 g1@3 ~",
  M: "c2@5 ~ d2@2 c2@2 g1@2 bb1@2 a1@2", N: "bb1@5 ~ bb1@5 ~ bb1@3 ~", O: "g1@5 ~ g1@2 a1@3 ~ a1@3 ~",
  P: "d2@5 ~ db2@6 db2@3 ~", Q: "c2@6 a1@5 ~ a1@3 ~", R: "bb1@5 ~ bb1 ~ bb1@3 ~ bb1@2 ~@2",
  S: "c2@5 ~ c2 ~ c2@2 ~@2 c2@3 ~", T: "f2@5 ~ f2 ~ f2@5 ~ f2 ~", U: "f2 ~ f2@3 ~ f2 ~ f2@4 ~@2 f2 ~",
  V: "d2@4 ~@2 d2 ~ d2@5 ~ d2 ~", W: "d2 ~ d2@3 ~ d2 ~ d2@4 ~@2 d2 ~", X: "g2@4 ~@2 g2 ~ g2@4 ~@2 g2 ~",
  Y: "c2 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2 ~", Z: "f2@4 ~@2 f2 ~ f2@4 ~@2 f2 ~", AA: "g2 ~ g2@3 ~ g2 ~ g2@4 ~@2 g2 ~",
  AB: "a1@5 ~ a1 ~ a1@3 ~ a1@3 ~", AC: "d2@5 ~ d2 ~ d2@3 ~ d2@3 ~", AD: "a1@5 ~ a1 ~ a1 ~ a1@3 ~ a1@2",
  AE: "g1@5 ~ g1 ~ g1@5 ~ g1 ~", AF: "g1@5 ~ g1 ~ g1@5 ~ g1@2", AG: "c2@5 ~ c2 ~ c2@5 ~ c2 ~",
  AH: "c2 ~ c2@3 ~ c2 ~ c2 ~ c2@3 ~ c2 ~", AI: "f2@5 ~ f2 ~ f2@8",
  AJ: "[c2@6 c2 ~ c2@3 ~@5 f2@5 ~ f2 ~ f2@5 ~ f2 ~, ~@7 c2@2 ~@7]/2", AK: "g2 ~ g2@3 ~@11",
})).s("gm_electric_bass_finger").gain(0.6)

// other · electric guitar muted · "Mute Guit"
const electric_guitar_muted = note(`<
  A B ~@2 C B ~@3 B ~@6 D E ~@7 F G H I J K L M B ~@6 D E ~@7 F G H I J K L M N O P O Q R S T F G H I J K ~@2 F G H I J
  K L U
>`.pickRestart({
  A: "~@5 g2 bb2 a2", B: "f2", C: "c3@3 d3 c3 g2 bb2 a2", D: "~@3 d4 c4 g3 bb3 a3", E: "f3@13 ~@3",
  F: "f2@5 ~ f2 ~ f2@5 ~ f2 ~", G: "f2 ~ f2@3 ~ f2 ~ f2@4 ~@2 f2 ~", H: "d2@4 ~@2 d2 ~ d2@5 ~ d2 ~",
  I: "d2 ~ d2@3 ~ d2 ~ d2@4 ~@2 d2 ~", J: "g2@4 ~@2 g2 ~ g2@4 ~@2 g2 ~", K: "c2 ~ c2@3 ~ c2@2 ~@2 c2@2 ~@2 c2 ~",
  L: "f2@4 ~@2 f2 ~ f2@4 ~@2 f2 ~", M: "g2 ~ g2@3 ~ g2 ~ g2@4 ~@2 g2 ~", N: "a1@5 ~ a1 ~ a1@3 ~ a1@3 ~",
  O: "d2@5 ~ d2 ~ d2@3 ~ d2@3 ~", P: "a1@5 ~ a1 ~ a1 ~ a1@3 ~ a1@2", Q: "g1@5 ~ g1 ~ g1@5 ~ g1 ~",
  R: "g1@5 ~ g1 ~ g1@5 ~ g1@2", S: "c2@5 ~ c2 ~ c2@5 ~ c2 ~", T: "c2 ~ c2@3 ~ c2 ~ c2 ~ c2@3 ~ c2 ~",
  U: "g2 ~ g2@3 ~@11",
})).s("gm_electric_guitar_muted").gain(0.4)

// other · electric guitar muted · "Mute Guit" · soft notes · A7 Dm A7 Dm Em7 G Gm
const electric_guitar_muted_2 = note(`<
  ~@57
  [~@6 [db3,e3,g3,a3]!3 ~@7]
  [~@6 [d3,f3,a3]!3 ~@7]
  [~@6 [db3,e3,g3,a3]!3 ~@7]
  [~@6 [d3,f3,a3]!3 ~@7]!2
  [~@6 [d3,e3,g3,b3] [d3,g3,b3]!2 ~@7]
  [~@6 [d3,g3,bb3]!3 ~@7]!2
  ~@16
>`).s("gm_electric_guitar_muted").gain(0.24)

// chords · acoustic guitar nylon · "Acoustic"
const acoustic_guitar_nylon = note(`<
  ~ A@2 B C A@2 D E F G H I J K L I F G H M N O H L P@2 Q@2 R@2 S L F G H I J K L I F G H M N O H L P@2 Q@2 R@2 S L T U
  T U V W L@2 P@2 Q@2 R@2 ~@10
>`.pickRestart({
  A: "[c3,f3,a3]!8", B: "[d3,f3,g3,bb3]!8", C: "[c3,e3,g3,bb3]!8", D: "[d3,g3,bb3]!8", E: "[c3,e3,g3]!8",
  F: "[c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,e3,a3] ~ [c3,e3,a3] ~ [c3,e3,a3] ~ [c3,e3,a3] ~ [c3,e3,a3] ~", // F Am
  G: "[c3,eb3,f3,a3] ~ [c3,eb3,f3,a3] ~ [c3,eb3,f3,a3] ~ [c3,eb3,f3,a3] ~ [c3,eb3,f3,a3] ~ [c3,eb3,f3,a3] ~ [c3,eb3,f3,a3] ~ [c3,eb3,f3,a3] ~", // F7
  H: "[d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~ [d3,f3,bb3] ~", // Bb
  I: "[c3,e3,g3,bb3] ~ [c3,e3,g3,bb3] ~ [c3,e3,g3,bb3] ~ [c3,e3,g3,bb3] ~ [c3,e3,g3,bb3] ~ [c3,e3,g3,bb3] ~ [c3,e3,g3,bb3] ~ [c3,e3,g3,bb3] ~", // C7
  J: "[c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~ [c3,f3,a3] ~", // F
  K: "[d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~", // Dm7
  L: "[d3,f3,g3,bb3] ~ [d3,f3,g3,bb3] ~ [d3,f3,g3,bb3] ~ [d3,f3,g3,bb3] ~ [d3,f3,g3,bb3] ~ [d3,f3,g3,bb3] ~ [d3,f3,g3,bb3] ~ [d3,f3,g3,bb3] ~", // Gm7
  M: "[d3,g3,bb3] ~ [d3,g3,bb3] ~ [d3,g3,bb3] ~ [d3,g3,bb3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~", // Gm A7
  N: "[d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [d3,f3,a3,c4] ~ [db3,f3,a3,c4] ~ [db3,f3,a3,c4] ~ [db3,f3,a3,c4] ~ [db3,f3,a3,c4] ~ [db3,f3,a3,c4] ~", // Dm7 F
  O: "[c3,f3,a3,c4] ~ [c3,f3,a3,c4] ~ [c3,f3,a3,c4] ~ [c3,f3,a3,c4] ~ [c3,e3,a3] ~ [c3,e3,a3] ~ [c3,e3,a3] ~ [c3,e3,a3] ~", // F Am
  P: "[c3,f3,a3,f4] ~ [c3,f3,a3,f4] ~ [c3,f3,a3,f4] ~ [c3,f3,a3,f4] ~ [c3,f3,a3,f4] ~ [c3,f3,a3,f4] ~ [c3,f3,a3,f4] ~ [c3,f3,a3,f4] ~", // F
  Q: "[d3,gb3,a3,c4] ~ [d3,gb3,a3,c4] ~ [d3,gb3,a3,c4] ~ [d3,gb3,a3,c4] ~ [d3,gb3,a3,c4] ~ [d3,gb3,a3,c4] ~ [d3,gb3,a3,c4] ~ [d3,gb3,a3,c4] ~", // D7
  R: "[d3,g3,bb3,f4] ~ [d3,g3,bb3,f4] ~ [d3,g3,bb3,f4] ~ [d3,g3,bb3,f4] ~ [d3,g3,bb3,f4] ~ [d3,g3,bb3,f4] ~ [d3,g3,bb3,f4] ~ [d3,g3,bb3,f4] ~", // Gm7
  S: "[c3,e3,f3,a3] ~ [c3,e3,f3,a3] ~ [c3,e3,f3,a3] ~ [c3,e3,f3,a3] ~ [c3,e3,f3,a3] ~ [c3,e3,f3,a3] ~ [c3,e3,f3,a3] ~ [c3,e3,f3,a3] ~", // Fmaj7
  T: "[db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~ [db3,e3,g3,a3] ~", // A7
  U: "[d3,f3,a3] ~ [d3,f3,a3] ~ [d3,f3,a3] ~ [d3,f3,a3] ~ [d3,f3,a3] ~ [d3,f3,a3] ~ [d3,f3,a3] ~ [d3,f3,a3] ~", // Dm
  V: "[c3,d3,f3,a3] ~ [c3,d3,f3,a3] ~ [c3,d3,f3,a3] ~ [c3,d3,f3,a3] ~ [c3,d3,f3,a3] ~ [c3,d3,f3,a3] ~ [c3,d3,f3,a3] ~ [c3,d3,f3,a3] ~", // Dm7
  W: "[d3,f3,g3,b3] ~ [d3,f3,g3,b3] ~ [d3,f3,g3,b3] ~ [d3,f3,g3,b3] ~ [d3,f3,g3,b3] ~ [d3,f3,g3,b3] ~ [d3,f3,g3,b3] ~ [d3,f3,g3,b3] ~", // G7
})).s("gm_acoustic_guitar_nylon").gain(0.35)

// chords · tenor sax · "Backing V"
const tenor_sax = note(`<
  ~ A@2 B@2 C@2 D@2 ~@9 E F G H@4 I J K L M N O@2 P@2 Q R S@2 T U V@2 W X H@4 I J K L M N O@2 ~@8 I J K L M N Y Z ~@8
>`.pickRestart({
  A: "[a3@3 c4@5 a3@3 c4@5, [c3,f3]]/2", B: "[[d3,bb3] [c3,e3,c4], g3@31 ~]/2",
  C: "[a3@6 c4@10 a3@6 ~@4 bb4@3 c5@2 ~, [c3,f3], a4@13 ~@3, ~@11 c4@5]/2", // F5
  D: "[bb4@12 a4@2 bb4 a4 [c3,e3,c4,g4]@16, g3@31 ~, [d3,bb3] ~]/2", E: "~@6 c4@2 d4@3 ~ d4@3 ~", F: "bb3@15 ~",
  G: "d4@8 db4@7 ~",
  H: "[[d4,f4]@3 [db4,e4]@5 c4@3 [f3,a3]@5 [g3,bb3]@8 [g3,bb3,bb4]@3 [g3,bb3]@3 [g3,bb3]@2, a3@22 ~@26 c3@15 ~, ~@16 d4@47 ~, ~@27 g4@5]/4", // Dm Dbm F Gm
  I: "[c4,f4,c5]@3 [bb3,c4,f4,bb4]@3 [c4,f4,c5]@2", J: "[bb3,c4,f4,bb4]@3 [a3,a4]@5, ~@3 [c4,f4]@4 ~",
  K: "[c4,d4,gb4,c5]@3 [bb3,d4,gb4,bb4]@3 [c4,d4,gb4,c5]@2", L: "[bb3,d4,gb4,bb4]@6 [a3,gb4,a4]@9 ~, ~@3 d4@3 ~@2",
  M: "[bb3,d4,g4,bb4]@3 [a3,d4,g4,a4]@3 [bb3,d4,g4,bb4]@2", N: "[a3,c4,g4,a4]!2",
  O: "[[c4,f4]@7 ~ [bb3,d4,g4]@8, c3, a3 ~]/2", P: "[c4@4 c4@4 [c4,eb4]@7 ~, a4@15 ~, f4@3 ~ e4@3 ~@9]/2",
  Q: "[d4,f4,bb4]", R: "f4 e4, [c4,g4,bb4]", S: "[f4@4 e4@4 d4@3 ~ c4@4, a4, c4 [f4,d5]]/2", T: "g4 f4, [d4,bb4]",
  U: "[c4,f4,g4] [c4,e4,g4], bb4", V: "[f4@2 e4@2 ~@2 d4!2, a4, c4@11 c4@5, ~ eb4]/2", W: "[bb3,d4,f4,bb4]",
  X: "[d4,g4,bb4] [db4,e4,g4,a4]", Y: "[c4,eb4,g4,c5]", Z: "[c4,e4,g4,a4], gb4 ~@15",
})).s("gm_tenor_sax").gain(0.35)

// other · church organ · "Organ"
const church_organ = note("<~@56 A B C D E F G H I ~@16>".pickRestart({
  A: "~@14 e4 f4", B: "e4@12 ~@2 a3 bb3", C: "a3@12 ~@2 e4 f4", D: "e4@13 ~ a3 bb3", E: "a3@12 ~@2 d4 f4",
  F: "d4@13 ~ f4 a3", G: "f4@13 ~ c4 d4", H: "c4@13 ~ c4 d4", I: "c4@13 ~@3",
})).s("gm_church_organ").gain(0.6)

// chords · vibraphone · "Vibes"
const vibraphone = note("<~@25 A@4 B ~ C D ~@16 E@2 F@2 G H I J K L M N O P Q R ~@6 S T ~@8>".pickRestart({
  A: "[c4@2 ~@16 c4@3 ~@7 a4@2 ~@2 gb4@4 ~@2 gb4@4 ~@2 gb4@8 ~@8 gb4@3 ~, f4@23 ~@3 f4@4 ~@34, a4@9 ~@3 a4@12 ~@8 a4@23 ~ a4@7 ~, ~@6 c4@9 ~@9 c4@4 ~@2 d4@5 ~ d4@5 ~ d4@7 ~@3 d4@7 ~@5]/4",
  B: "~@11 g4@3 d4@2, d4@11 ~@5, ~@2 g4@5 ~@9, ~@4 bb4@11 ~", C: "~@3 f4, c4@3 ~, ~@3 a4@5", D: "c4@5 ~ bb4@6 g4@4",
  E: "[~@6 f4@6 c4 f4@2 a4, ~ c4@2 ~@5, ~@3 a4@9 ~@4]/2",
  F: "[d4@2 gb4@2 ~@2 gb4@6 ~@4 a4 ~@5 d4@6 a4@3 ~, ~@4 a4@8 d4@9 ~@11, ~@16 gb4@9 ~@7, ~@17 a4@9 ~@6]/2",
  G: "bb4@2 g4 d4@3 bb4@2", H: "~ g4@2 ~", I: "~@5 c4@3, c4@7 ~@9, ~@2 f4@7 ~@7, ~ a4@2 ~",
  J: "bb4@2 g4@2 d4@5 ~ d4 ~ g4@2 ~@2", K: "db4@4 ~@2 db4@3 ~ db4 ~ db4 ~ db4 ~", L: "d4@5 ~ d4@3 ~ d4@3 ~ d4@2",
  M: "db4 ~ db4@3 ~ db4@3 ~@3 db4 ~ db4@2", N: "d4 ~ d4@3 ~ d4@5 ~ d4 ~ d4 ~", O: "~@2 g3 ~@3 g3@3 ~ g3 ~ g3@2 ~@2",
  P: "g3 ~ g3@2 ~@2 g3@5 ~ g3 ~ g3 ~", Q: "c4 ~ c4@2 ~@2 c4@2 ~@2 c4@2 ~@2 c4 ~",
  R: "[c4,f4] ~ [c4,f4]@2 ~@2 [c4,f4] ~ [c4,e4] ~ [c4,e4]@2 ~@2 [c4,e4] ~", S: "[eb4,g4]@7 ~", T: "[e4,g4]@13 ~@3",
})).s("gm_vibraphone").gain(0.19)

// drums · kick
const kick = s("bd").struct("<~@17 A@4 B A@2 C A@5 B A@14 B A@2 C A@5 B A@7 B A@7 B ~@2 A@5 B A D>".pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@2 x ~@2 x ~", C: "x ~@2 x!2 ~@3", D: "x",
})).gain(0.6)

// drums · snare
const snare = s("sd").struct("<~@17 A@7 B A@7 C A@15 B A@7 C A@7 C A@6 ~@2 A@7 ~>".pickRestart({
  A: "~ x ~ x", B: "~@4 x ~@5 x!3 ~ x ~", C: "~@2 x ~@3 x!2",
})).gain(0.54)

// drums · low tom
const low_tom = s("lt").struct("<~@32 A ~@23 A ~@7 B ~@7 C ~@8>".pickRestart({
  A: "~@7 x!2 ~@2 x!2 ~ x ~", B: "~@7 x!2 ~ x!3 ~ x ~", C: "~@11 x!4 ~",
})).gain(0.54)

// drums · hihat
const hihat = s("hh").struct("<~@35 [~@3 x] ~@45>").gain(0.54)

// drums · mid tom
const mid_tom = s("mt").struct("<~@64 [~@4 x!4] ~@7 [~@7 x!2 ~@7] ~@8>").gain(0.6)

// drums · tambourine
const tambourine = s("tb").struct("<~ [~ x ~ x]!79 ~>").gain(0.6)

stack(
  piano, electric_guitar_clean, bass, electric_guitar_muted, electric_guitar_muted_2, acoustic_guitar_nylon, tenor_sax,
  church_organ, vibraphone, kick, snare, low_tom, hihat, mid_tom, tambourine
)

More by The Beach Boys