Strudelify
Surfer Girl cover art

Surfer Girl

Surfer Girl

The Beach Boys

KeyF minorTempo60 bpm
0:00/0:00
// Surfer Girl — The Beach Boys
// 60 bpm, 4/4, key F minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 1 "Guitar 1" acoustic guitar nylon (copy of ch 4 "Guitar 3" electric guitar jazz); ch 7 "Choir Ah" choir aahs (copy of ch 6 "Choir Ah" choir aahs); ch 12 "Strings" string ensemble 1 (copy of ch 11 "Strings" string ensemble 1); ch 14 "Harp" orchestral harp (copy of ch 13 "Harp" orchestral harp)
// note: Full arrangement: all 52 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, Guitar.
setcpm(60/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 · electric bass pick · "Pick Bass"
const bass = note(`<
  ~@4 A B C D E F G H G B I J K H L M N O B P Q R S T U V W X Y V Z AA AB AA AC AD AE AA AF AG AH AI AJ AK AL ~@3
>`.pickRestart({
  A: "~@6 g2@2 a2@2 b2@2 c3@11 ~", B: "a2 d2", C: "g2@10 e2 ~ c2@10 ~@2", D: "c2@10 e2 ~ f2@11 ~",
  E: "f2@10 g2 ~ c2@12", F: "a2@9 ~ e2 ~ d2@8 f2 ~ gb2 ~", G: "g2 c2", H: "a2@12 d2@8 f2 ~ gb2 ~",
  I: "g2@8 a2 ~ b2 ~ c3@11 ~", J: "c2@6 f2@5 ~", K: "f2@10 g2 ~ c2@10 b2 ~", L: "g2@11 ~ c2@12", M: "f2@6 c2@5 e2",
  N: "g2 c3 f2@2", O: "g2@5 ~ c3@6", P: "g2@2 c2 e2", Q: "g2@6 c3@6 f2@11 ~", R: "g2@12 c2@9 ~ g2 ~",
  S: "c3@12 d2@9 ~ gb2 ~", T: "a2@6 gb2@6 g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~",
  U: "ab2 ~ ab2 ~ ab2 ~ ab2 ~ f2 ~ eb2 ~ db2@12", V: "bb2@12 eb2@8 gb2 ~ g2 ~", W: "ab2@12 db3@10 ab2 ~",
  X: "db2@10 f2@2 gb2@11 ~", Y: "gb2@8 ab2 ~ ab2 ~ db2@10 c3@2", Z: "ab2@6 ab2@9 ~@3 ab2@2 bb2@2 c3@2", AA: "db2 bb2",
  AB: "eb2@8 gb2 ~ g2 ~ ab2@12", AC: "eb2@12 ab2@5 ~ ab2 ~ bb2 ~ c3 ~", AD: "db3@12 bb2@8 ab2 ~ f2 ~",
  AE: "eb2@8 gb2 ~ g2 ~ ab2@7 ~ ab2 ~ f2 ~", AF: "eb2@8 gb2 ~ g2 ~ ab2@5 ~ ab2@5 ~", AG: "db2@5 c3 bb2@4 gb2 f2",
  AH: "eb2@8 gb2 ~ g2 ~ ab2@5 ~ ab2@4 c3 ~", AI: "db3@10 c3@2 bb2@10 f2 ~", AJ: "eb2@8 gb2 ~ g2 ~ ab2@5 ~ ab2@4 eb2 ~",
  AK: "db2@12 bb2@9 ~ gb2 ~", AL: "eb2@8 gb2 ~ g2 ~ ab2@5 ~@7",
})).s("gm_electric_bass_pick").gain(0.12).pan(0.6)

// chords · electric guitar clean · "Guitar 2"
const electric_guitar_clean = note(`<
  A@2 B ~@2 C ~@6 D ~@3 E F G ~@2 G ~@3 C H I ~@6 J E ~ K ~ L ~ M ~ E ~ M ~@2 J ~@3
>`.pickRestart({
  A: "[~ [g3,c4,e4]@6 ~@7 a4@6 ~@5 b4@7 ~@15 f2, c3@7 ~@5 [a3,c4]@7 ~@5 [b3,e4,g4]@19 ~@5, g2@4 ~@7 [a2,e3]@8 ~@4 [b2,e3]@19 ~@6, ~@13 e4@6 ~@29]/2", // C Am Em A5 E5
  B: "~ [c4,f4]@7 ~@5 [f4,a4]@7 ~@4, [c3,f3,a3]@2 ~ [a2,d3,a3,d4]@2 ~", C: "~@18 b4 ~@5", D: "~@7 g4 ~@16",
  E: "~@18 c5 ~@5", F: "~@6 b4 ~@11 g4 ~@5", G: "~@6 c5 ~@17", H: "~@18 [a4,db5] ~@5", I: "~@6 a4 ~@17",
  J: "~@6 db5 ~@17", K: "~@6 f4 ~@11 c5 ~@5", L: "~@6 c5 ~@11 c5 ~@5", M: "~@6 f4 ~@17",
})).s("gm_electric_guitar_clean").gain(0.29).pan(0.7)

// chords · electric guitar jazz · "Guitar 3"
const electric_guitar_jazz = note(`<
  ~@4 A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AG AH AI AF AG AH AI AF AK ~@3
>`.pickRestart({
  A: "~@16 c4 ~ [g3,c4,e4] ~ c4 ~ [g3,c4,e4] ~, ~ c3", // C
  B: "~@2 e4 [c4,e4] ~@2 [a3,c4,e4] ~ [c4,e4] ~ [a3,c4,e4] ~@4 [a3,d4] ~@2 [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~, a2 d2", // C Am C Am D5 Dm
  C: "[g3,b3,d4] ~@2 [b3,d4] [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,e4] ~ [b3,e4] ~ [b3,e4] ~ [g3,b3,e4] ~ [g3,b3,e4] ~ [g3,b3,e4] ~, g2@12 c3@11 ~", // G Bm G Em E5 Em
  D: "[g3,bb3,e4] ~@2 g3 [g3,bb3] ~ [g3,bb3,e4] ~ [g3,bb3,e4] ~ [g3,bb3,e4] ~ [f3,a3,c4] ~@3 [a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~, c3@12 f2@11 ~", // Edim Gm Edim F Am F
  E: "[f3,ab3,c4] ~ [f3,ab3,c4] ~ [f3,ab3] ~ [f3,ab3,c4] ~ [f3,ab3,c4] ~ [f3,ab3,c4] ~ [e3,g3,c4] ~ [g3,c4]!2 [e3,g3] ~ [e3,g3,c4] ~ [e3,g3,c4] ~ [e3,g3,c4] ~, f2 c3", // Fm C C5 Em C
  F: "[e3,a3,c4] ~@2 [a3,c4]!2 ~ [e3,a3,c4] ~ [e3,a3,c4] ~ [e3,a3,c4] ~ [f3,a3,d4] ~ a3 ~ a3 ~ [f3,a3,d4] ~ a3 ~ [f3,a3,d4] ~, a2 d2", // Am Dm
  G: "[g3,b3,d4] ~ b3 ~ b3 ~ [g3,b3,d4] ~ a2 ~ [b2,g3,b3] ~ [g3,c4,e4] ~ [c4,e4]!3 ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~, g2@2 ~ c3@3", // G Em C
  H: "[a3,c4,e4] ~ [c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,d4,f4] ~ d4!2 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~, a2 d2", // Am C Am Dm
  I: "[g3,b3,d4,e4] ~@2 [b3,d4] ~@2 [g3,b3,d4] ~ [a2,g3,b3,d4] ~ [b2,g3,b3,d4] ~ [g3,c4,e4] ~@2 [g3,c4,e4] ~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~, g2@2 ~ c3@3", // Em7 Bm G C
  J: "[a3,c4,e4] ~ e4 ~ [c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,d4,f4] ~@2 d4 [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~, a2 d2", // Am C Am Dm
  K: "[g3,b3,d4] ~@2 [b3,d4] ~@2 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,e4] ~@3 b3 ~ [g3,b3,e4] ~ [g3,b3,e4] ~ [g3,b3,e4] ~, g2@12 c3@11 ~", // G Bm G Em
  L: "[g3,bb3,e4] ~ [g3,bb3,e4] ~ [g3,bb3,e4] ~ [g3,bb3,e4] ~ [g3,bb3,e4] ~ [g3,bb3,e4] ~ [f3,a3,c4] ~@2 [f3,a3,c4] [a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~, c3@12 f2@11 ~", // Edim F Am F
  M: "[f3,ab3,c4] ~ [ab3,c4] [f3,ab3,c4]!2 ~ [f3,ab3,c4] ~ [f3,ab3,c4] ~ [f3,ab3,c4] ~ [g3,b3,e4] ~ [c4,e4] c4 [c4,e4] ~ [g3,b3,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~, f2@11 ~ c3@12", // Fm Ab Fm Em C Em C
  N: "[a3,c4,e4] ~ [a3,c4,e4] ~ [c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [f3,a3,d4] ~@3 [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~, a2 d2", // Am C Am Dm
  O: "[g3,b3,d4] ~ b3 [b3,d4] [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,c4,e4] ~ [c4,e4]!2 ~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~, g2 c3", // G Bm G C
  P: "[f3,a3,c4] ~ a3 [f3,a3,c4] ~@2 [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [e3,g3,c4] ~@5 [e3,g3,c4] ~ [e3,g3,c4] ~ [e3,g3,c4] ~, f2@12 c3@11 ~", // F C
  Q: "[e3,g3,bb3,b3] ~ [g3,bb3] [e3,g3,bb3] g3 ~ [e3,g3,bb3] ~ [e3,g3,bb3] ~ [e3,g3,bb3] ~ [f3,a3,c4] ~ [a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~, c3 f2", // Em Gm Edim F Am F
  R: "[g3,b3,d4] ~ b3 ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,e4] ~@2 [g3,b3,e4]!2 ~ [g3,b3,e4] ~ [g3,b3] ~ [g3,b3,e4] ~, g2 c3", // G Em G Em
  S: "[a3,c4,e4] ~ c4 ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [a3,c4,e4] ~ [f3,a3,d4] ~@2 [f3,a3,d4]!2 ~ [f3,a3,d4] ~ [f3,a3,d4] ~ [f3,a3,d4] ~, a2 d2", // Am Dm
  T: "[g3,b3,d4] ~@3 [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,c4,e4] ~@2 [g3,c4,e4]!2 ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [c3,g3,b3,e4] ~, g2@4 c3@3 ~", // G C Cmaj7
  U: "[g3,bb3,eb4,e4] ~ [g3,e4] [g3,bb3,e4] ~@2 [g3,bb3,e4] ~ [g3,bb3,e4] ~ [g3,bb3,e4] ~ [f3,a3,c4] ~@3 [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~ [f3,a3,c4] ~, c3 f2", // Eb C Edim F
  V: "[g3,b3,d4] ~ [g3,b3,d4]!2 [b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] d4 [g3,c4,e4] ~ [c4,e4]!2 ~@2 [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~, g2@12 c3@11 ~", // G Bm G C
  W: "[g3,c4,e4] ~@2 [c4,e4] [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [g3,c4,e4] ~ [d3,gb3,a3,c4] ~ [d3,gb3,a3,c4]!3 ~ [d3,gb3,c4] ~ [d3,gb3,c4] ~ [d3,gb3,c4] ~, c3@11 ~ d2@12", // C D7
  X: "[d3,gb3,c4] ~ [d3,gb3,c4]!3 ~ [d3,gb3,c4] ~ [d3,gb3,c4] ~ [d3,gb3,c4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~ [g3,b3,d4] ~, d2@12 g2@11 ~", // D7 G
  Y: "[ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] [ab3,db4] [ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~, ab2@11 ~ db3@12", // Ab Db Db5 Db
  Z: "[bb3,db4,f4] ~@2 [db4,f4] [bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~ [gb3,bb3,eb4] ~ [bb3,eb4] [gb3,bb3,eb4] [bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~, bb2 eb2", // Bbm Db Bbm Ebm Eb5 Ebm Eb5 Ebm
  AA: "[ab3,c4,eb4] ~ [ab3,c4,eb4]!3 ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,eb4] ~ [ab3,c4,f4] ~ [c4,f4] [ab3,c4,f4]!2 ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~ [ab3,c4,f4] ~, ab2@12 db3@11 ~", // Ab Fm F5 Fm
  AB: "[ab3,b3,f4] ~ [ab3,b3,f4]!2 [b3,f4] ~ [ab3,b3,f4] ~ [ab3,b3,f4] ~ [ab3,b3,f4] ~ [gb3,bb3] ~ [bb3,db4]!2 [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~ [gb3,bb3,db4] ~, db3@12 gb2@11 ~, ~@6 db4 ~@5", // Fdim Bdim Fdim Gb Bbm Gb
  AC: "[gb3,a3,db4] ~ [a3,db4] [gb3,a3,db4]!2 ~ [gb3,a3,db4] ~ [gb3,a3,db4] ~ [gb3,a3,db4] ~ [ab3,db4] ~ [f3,ab3,db4]!2 [f3,ab3] ~ [f3,ab3,db4] ~ [f3,ab3,db4] ~ [f3,ab3,db4] ~, gb2 db3", // Gbm A Gbm Db5 Db Fm Db
  AD: "[f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [f3,bb3,db4] ~ [gb3,bb3,eb4] ~ [bb3,eb4]!2 [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~, bb2 eb2", // Bbm Ebm Eb5 Ebm
  AE: "[ab3,c4,eb4] ~ c4 eb4 [ab3,c4,eb4] ~ [ab3,c4,eb4]@12 ~@6, ab2@3 ~", // Ab
  AF: "[ab3,db4,f4]@2 ab3 ~@3 [ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [bb3,db4,f4] ~ [db4,f4] [bb3,db4,f4]!2 ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~, db3 bb2", // Db Bbm Db Bbm
  AG: "[gb3,bb3,eb4] ~ [bb3,eb4] [gb3,bb3,eb4]!2 ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [ab3,c4,eb4] ~@2 [ab3,c4,eb4]!2 ~ [ab3,c4,eb4] ~ [bb2,ab3,c4,eb4] ~ [c3,ab3,c4,eb4] ~, eb2@3 ab2@2 ~", // Ebm Eb5 Ebm Ab
  AH: "[ab3,db4,f4] ~ [ab3,db4,f4]!3 f4 [ab3,db4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [bb3,db4,f4] ~ [db4,f4] [bb3,db4,f4] [db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~, db3 bb2", // Db Db5 Db Bbm Db Bbm Db Bbm
  AI: "[gb3,bb3,eb4] ~ [gb3,eb4]!2 [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,db4,eb4] ~ [ab3,c4,eb4] ~ eb4 [c4,eb4] [ab3,c4,eb4] ~ ab2@2 bb2@2 c3@2, eb2@12 ab2@5 ~ [ab3,c4,eb4]@4 ~@2", // Ebm Ebm7 Ab Cm Ab
  AJ: "[ab3,db4,f4]@5 ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [ab3,db4,f4] ~ [bb3,db4,f4] ~ [db4,f4] [bb3,db4,f4]!2 ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~ [bb3,db4,f4] ~, db3 bb2", // Db Bbm Db Bbm
  AK: "[gb3,bb3,eb4] ~ [bb3,eb4] [gb3,bb3,eb4]!2 ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [gb3,bb3,eb4] ~ [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~@8, eb2@3 ab2@2 ~", // Ebm Eb5 Ebm Ab
})).s("gm_electric_guitar_jazz").gain(0.11).pan(0.6)

// chords · electric guitar jazz · "Guitar 3" · soft notes
const electric_guitar_jazz_2 = note(`<
  ~@4 A B C D E F G H I J K L M N O P Q R S T U V W ~ X Y Z AA AB AC AD AE AF AG AH AE AF AG AH AE AF AG AH AE AF ~@3
>`.pickRestart({
  A: "~@14 g3@3 ~@3 [g3,e4] ~@3", B: "~@2 [a3,c4] a3 ~@4 a3 ~@3 d4 ~@2 f3 ~@8",
  C: "~@2 [g3,b3,d4] g3 ~@10 g3 [g3,b3,e4] g3 ~@7", D: "~@2 [g3,bb3,e4] [bb3,e4] e4 ~@9 [f3,a3,c4] ~ f3 ~@7",
  E: "~@3 [ab3,c4] ~@10 e3!2 c4 ~@7", F: "~@2 [e3,a3,c4] e3!2 ~@9 [f3,d4] f3 [f3,d4] ~@3 [f3,d4] ~@3",
  G: "~@2 [g3,d4] g3 [g3,d4] ~@3 [g3,d4] ~@5 g3!3 ~@7", H: "~@2 a3 ~@11 [a3,f4] a3 ~@8",
  I: "~@3 g3!2 ~@9 [g3,c4,e4] ~ c4 ~@7", J: "~@2 a3 ~ a3 ~@9 [a3,f4] f4 ~@8",
  K: "~@2 [g3,b3,d4] g3 ~@10 [g3,b3,e4] [g3,e4]!2 ~@7", L: "~@14 [a3,c4] ~ f3 ~@7", M: "~@2 f3 ~@11 g3 [g3,e4] g3 ~@7",
  N: "~@3 [a3,c4]@2 ~@9 [f3,a3,d4] f3 ~@8", O: "~@2 [g3,d4] g3 ~@10 g3!2 ~@8", P: "~@2 [f3,c4] ~ f3 ~@9 [e3,g3,c4] ~@9",
  Q: "~@2 e3 ~ bb3 ~@9 f3 ~@9", R: "~@2 [g3,d4] ~@11 [g3,b3,e4] ~@5 e4 ~@3", S: "~@2 [a3,e4] ~@11 [f3,a3,d4] ~@9",
  T: "~@2 [g3,b3,d4] ~@11 [g3,c4,e4] ~@9", U: "~@2 bb3 ~ [g3,bb3,e4] ~@9 [f3,a3,c4] ~@9", V: "~@4 g3 ~@9 g3!2 ~@8",
  W: "~@2 [g3,c4,e4] g3 ~@20", X: "~@15 f4 ~@8", Y: "~@2 [bb3,db4,f4] bb3 ~@10 gb3 ~ gb3 ~@7", Z: "~@14 ab3 ~@9",
  AA: "~@4 ab3 ~@9 gb3!2 ~@8", AB: "~@2 gb3 ~@21", AC: "~@3 [f3,bb3,db4] ~@10 gb3!2 ~@8", AD: "~@2 [ab3,eb4] ~@21",
  AE: "~@14 bb3 ~@9", AF: "~@2 gb3 ~@11 [ab3,c4,eb4] ~@9", AG: "~@14 bb3 ~ bb3 ~@7",
  AH: "~@2 bb3 ~@11 [ab3,c4] ab3 ~@8", // Ab
})).s("gm_electric_guitar_jazz").gain(0.06).pan(0.6)

// other · electric guitar clean · "Guitar"
const electric_guitar_clean_2 = note("<~@21 A B C D E F G ~@24>".pickRestart({
  A: "~@3 d5 ~@14 c5 ~@5", B: "~@4 g4 ~@3 g4 ~@7 c5 ~@3 c5 ~@3", C: "~@3 d5 ~@20", D: "~@6 c5 ~@17", E: "~@16 e4 ~@7",
  F: "~@20 a4 ~@3", G: "~@3 a4 ~@4 a4 ~@15",
})).s("gm_electric_guitar_clean").gain(0.17).pan(0.2)

// other · string ensemble 1 · "Strings"
const string_ensemble_1 = note("<~@27 A B C D@2 E F G H I J K J K J K J K J K J K ~@3>".pickRestart({
  A: "~ g4", B: "ab4 db5", C: "bb4", D: "[c5 ab4@2 bb4]/2", E: "a4 ab4", F: "bb4 gb4", G: "ab4@2 ~", H: "f4",
  I: "gb4 ab4", J: "db5", K: "bb4 ab4",
})).s("gm_string_ensemble_1").gain(0.08).pan(0.2)

// chords · orchestral harp · "Harp"
const orchestral_harp = note("<~@3 A@2 ~@47>".pickRestart({
  A: "[~@3 g5 ~@2, d3@11 ~@5, ~@2 g3@3 d4@4 d4@3 b3@2 d4 f4@2 a4@2 d4@14 ~@15, ~@3 b3@5 b3@3 g4@22 ~@15, ~@6 g3@14 f4 a4@2 b4@10 ~@15]/2",
})).s("gm_orchestral_harp").gain(0.2).pan(0.2)

// drums · kick
const kick = s("bd").struct("<~@4 A B@23 C B@5 D B@13 E ~@3>".pickRestart({
  A: "~@6 x ~@3 x!2", B: "x ~@3 x!3 ~@3 x!2", C: "x!7 ~@3 x!2", D: "x", E: "x ~@3 x!3 ~@5",
})).gain(0.14).pan(0.4)

// drums · snare
const snare = s("sd").struct("<~@4 A B@15 C B@6 D E B@5 F B@13 F ~@3>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~@3 x!2 ~ x ~@11 x ~@5", D: "~@3 x ~@2 x!6", E: "x!6 ~@3 x ~@2", F: "~ x ~@2",
})).gain(0.32).pan(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<~@20 [~@5 x ~@6] ~@31>").gain(0.37).pan(0.4)

// drums · high tom
const high_tom = s("ht").struct("<~@20 [~ x ~] ~@31>").gain(0.37).pan(0.4)

// drums · crash
const crash = s("cr").struct("<~@20 [~ x] ~@7 [~ x] ~@6 x ~@16>").gain(0.37).pan(0.4)

// drums · ride
const ride = s("rd").struct(`<
  ~@4
  [~@12 x ~ x!3 ~ x ~ x ~ x ~]
  [x ~ x!3 ~ x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~]!29
  [x ~ x!3 ~ x ~@17]
  [x ~ x!3 ~ x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~ x ~]!13
  [x ~ x!3 ~ x ~ x ~ x ~ x ~ x!2 ~@8]
  ~@3
>`).gain(0.46).pan(0.4)

stack(
  bass, electric_guitar_clean, electric_guitar_jazz, electric_guitar_jazz_2, electric_guitar_clean_2, string_ensemble_1,
  orchestral_harp, kick, snare, mid_tom, high_tom, crash, ride
)

More by The Beach Boys