Strudelify
You Still Believe in Me cover art

Pet Sounds

You Still Believe in Me

The Beach Boys

KeyB majorTempo89 bpm
0:00/0:00
// You Still Believe in Me — The Beach Boys
// 89 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: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 13 "Harpsicho" harpsichord (copy of ch 2 "Harpsicho" harpsichord); ch 8 "Guitar 1" acoustic guitar steel (copy of ch 7 "Piano" piano); ch 9 "Piano 2" piano (copy of ch 7 "Piano" piano)
// note: Full arrangement: all 60 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(89/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.

// bass · acoustic bass · "Bass"
const bass = note(`<
  ~@5 A B@5 C D E F G H I J K A B@5 C D E F G H I J K@2 A B@3 A B@3 A L@3 M N@3 O@6 P ~
>`.pickRestart({
  A: "b1@11 ~ b1@4 c#2@8 f#1@7 ~", B: "b1@9 ~@3 b1@4 c#2@8 f#1@8", C: "e1@11 ~ e1@4 g#1@7 ~ f#1@8",
  D: "e1@8 ~@4 e1@4 g#1@7 ~ f#1@7 ~", E: "g#1@10 ~@2 g#1@3 ~ g#1@11 ~ g#1@3 ~", F: "g#1@11 ~ g#1@3 ~ g#1@7 ~ g#1@7 ~",
  G: "c#2@10 ~@2 c#2@2 ~@2 c#2@10 ~@2 c#2 ~@3", H: "c#2@5 ~ c#2 ~ c#2@3 ~ c#2@3 ~",
  I: "b1@11 ~ b1@3 ~ b1@10 ~@2 b1@3 ~", J: "g#1@10 ~@2 g#1@3 ~ f#1@10 ~@2 f#1@3 ~",
  K: "g1@11 ~ g1@2 ~@2 g1@11 ~ g1@2 ~@2",
  L: "[b1@10 ~@2 b1@4 ~ c#2@9 f#1@9 b1@9 ~@4 b1@4 c#2@8 f#1@8 b1@10 ~@2 b1@3 ~ b1@7 ~ b1@4]/3",
  M: "~@4 b1@10 ~@2 b1@3 ~ b1@7 ~ b1@4",
  N: "[~@4 b1@11 ~@2 b1@4 c#2@8 f#1@8 b1@10 ~@2 b1@4 c#2@8 f#1@8 b1@10 ~@2 b1@4 c#2@8 f#1@3]/3",
  O: "[~@6 b1@9 ~@3 b1@4 c#2@8 f#1@8 b1@11 ~ b1@4 c#2@8 f#1@8 b1@9 ~@3 b1@4 c#2@8 f#1@9 b1@9 ~@3 b1@4 c#2@8 f#1@8 b1@9 ~@3 b1@4 c#2@8 f#1@8 b1@11 ~@2 b1@4 c#2@8]/6",
  P: "f#1@4 b1@5 ~ b1@2 c#2@4",
})).s("gm_acoustic_bass").gain(0.6)

// chords · harpsichord · "Harpsicho"
const harpsichord = note(`<
  ~@5 A@6 B@2 C@2 D@2 E F G A@6 B@2 C@2 D@2 E F G@2 A@9 H@2 I ~ J K@2 L@3 M@3 N ~
>`.pickRestart({
  A: "[b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [c#5,e5,f#5] ~ [c#5,e5,f#5] ~ [a#4,c#5,e5,f#5] ~ [a#4,c#5,e5,f#5] ~", // B F#7
  B: "[b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,e5,g#5] ~ [b4,f#5,a5] ~ [b4,f#5,a5] ~ [b4,d#5,f#5,a5] ~ [b4,d#5,f#5,a5] ~", // E B7
  C: "[d#5,g#5,c6] c5 [d#5,g#5,c6] c5 [d#5,g#5,c6] c5 [d#5,g#5,c6] c5, c5 ~@3 c5 ~@3 c5 ~@3 c5 ~@3", // G#
  D: "[e5,g#5,b5] c#5 [e5,g#5,b5] c#5 [e5,g#5,b5] c#5 [e5,g#5,b5] c#5", // E
  E: "[d#5,f#5] b4 [d#5,f#5] b4 [d#5,f#5] b4 [d#5,f#5] b4", F: "[c#5,e5] g#4 [c#5,e5] g#4 [b4,d#5] f#4 [b4,d#5] f#4",
  G: "[b4,d5] g4 [b4,d5] g4 [b4,d5] g4 [b4,d5] g4", // Bm
  H: "[[b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@3 [c#5,e5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@3 [a#4,c#5,e5,f#5]@2 ~@3 [a#4,c#5,e5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@3 [b4,d#5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [a#4,c#5,e5,f#5]@2 ~@2]/2", // B F#7 B F#7
  I: "[a#4,c#5,e5,f#5] ~@15", // F#7
  J: "~@4 [b4,d#5,f#5]@2 ~@3 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [a#4,c#5,e5,f#5]@2 ~", // B F#7
  K: "~ [a#4,c#5,e5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [a#4,c#5,e5,f#5]@2 ~", // F#7 B F#7
  L: "~ [a#4,c#5,e5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [c#5,e5,f#5] ~ [c#5,e5,f#5] ~ [a#4,c#5,e5,f#5]", // F#7 B F#7
  M: "[~@3 [a#4,c#5,e5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [a#4,c#5,e5,f#5]@2 ~@2 [a#4,c#5,e5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [a#4,c#5,e5,f#5]@2 ~@2 [a#4,c#5,e5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@2 [b4,d#5,f#5]@2 ~@3 [b4,d#5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2 [c#5,e5,f#5]@2 ~@2]/3", // F#7 B F#7 B F#7 B F#7
  N: "[a#4,c#5,e5,f#5] ~ [a#4,c#5,e5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [b4,d#5,f#5] ~ [c#5,e5,f#5] ~@3", // F#7 B F#7
})).s("gm_harpsichord").gain(0.19)

// other · orchestral harp · "Harp"
const orchestral_harp = note(`<
  ~@5 A B C A B C D E F ~@6 A B C A B C D E G ~@7 A B C A@2 B C A@2 H@2 I ~ J K L M N O@4 P ~
>`.pickRestart({
  A: "f#4@3 ~ b4@3 ~ c#5@3 ~ b4@3 ~ e5@3 ~ d#5@3 ~ c#5@3 ~ b4@3 ~",
  B: "b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@2 ~@2 g#5@3 ~ f#5@3 ~ e5@3 ~ d#5@3 ~",
  C: "b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@4 b5@3 ~ a#5@3 ~ g#5@3 ~ f#5@3 ~",
  D: "b4@3 ~ e5@3 ~ f#5@3 ~ e5@4 ~@4 f#5@3 ~@5 a5@3 ~, ~@17 a5@7 b5@7 ~",
  E: "b4@3 ~ e5@3 ~ f#5@3 ~ e5@4 ~@4 f#5@4 ~@4 a5@4, ~@16 a5@7 ~ b5@7 ~", F: "g#5@3 ~@5", G: "g#5 ~",
  H: "[b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@3 ~@2 g#5@3 ~ f#5@3 ~@2 e5@3 ~@2 d#5@4 b4@3 ~ d#5@3 ~ f#5@3 ~@2 d#5@4 b5@3 ~ a#5@3 ~ g#5@3 ~]/2",
  I: "f#5@3 ~@29", J: "~@4 f#4@3 ~@2 b4@3 ~ c#5@3 ~ b4@3 ~ e5@3 ~ d#5@3 ~ c#5@3",
  K: "~ b4@3 ~ b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@2 ~@2 g#5@3 ~ f#5@3 ~ e5@3",
  L: "~ d#5@3 ~ b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@4 b5@3 ~ a#5@3 ~ g#5@3",
  M: "~@2 f#5@3 ~ f#4@3 ~ b4@3 ~ c#5@3 ~ b4@3 ~ e5@3 ~ d#5@3 ~ c#5@2",
  N: "~@2 b4@3 ~ f#4@3 ~ b4@3 ~ c#5@3 ~ b4@3 ~ e5@3 ~ d#5@3 ~ c#5@2",
  O: "[~@2 b4@3 ~ b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@2 ~@2 g#5@3 ~@2 f#5@3 ~ e5@3 ~ d#5@3 ~ b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@4 b5@3 ~ a#5@3 ~ g#5@3 ~ f#5@3 ~ f#4@3 ~ b4@3 ~ c#5@3 ~ b4@3 ~ e5@3 ~ d#5@3 ~ c#5@3 ~ b4@3 ~ f#4@3 ~ b4@3 ~ c#5@3 ~@2 b4@3 ~ e5@3 ~ d#5@3 ~]/4",
  P: "c#5@3 ~ b4@3 ~ b4@3 ~ d#5@3 ~ f#5@3 ~ d#5@2 ~@2 g#5@3 ~@5",
})).s("gm_orchestral_harp").gain(0.36)

// chords · oboe
const oboe = note("<~@13 A@2 B@2 C D E ~@8 A@2 B@2 C D E ~@5 F@3 G F H I@3 J@3 K@8>".pickRestart({
  A: "[g#3,d#4]/2", B: "[b3,e4]/2", C: "b3", D: "g#3 f#3", E: "g3", F: "[b3,d#4,f#4] [b3,e4,f#4]",
  G: "[b3,d#4,f#4]@16 [b3,e4,f#4]@15 ~", H: "[b3,d#4,f#4]@16 ~ [b3,e4,f#4]@15",
  I: "[~@3 [b3,d#4,f#4]@16 ~ [b3,e4,f#4]@16 b2@60]/3", // B Bsus4
  J: "[~@4 [b3,d#4,f#4]@16 ~ [b3,e4,f#4]@16 [b3,d#4,f#4]@16 [b3,e4,f#4]@15 ~ [b3,d#4,f#4]@16 [b3,e4,f#4]@11]/3", // B Bsus4 B Bsus4 B Bsus4
  K: "[~@6 [b3,d#4,f#4]@16 [b3,f#4]@13 ~@3 [b3,d#4,f#4]@16 [b3,e4,f#4]@16 [b3,d#4,f#4]@16 [b3,e4,f#4]@16 ~ [b3,d#4,f#4]@16 [b3,e4,f#4]@16 [b3,d#4,f#4]@16 [b3,f#4]@13 ~@3 [b3,d#4,f#4]@16 [b3,e4,f#4]@16 ~ [b3,d#4,f#4]@16 [b3,e4,f#4]@15 ~@25, ~@22 e4@16 ~@113 e4@16 ~@89]/8", // B B5 B Bsus4 B Bsus4 B Bsus4 …
})).s("gm_oboe").gain(0.33)

// other · flute
const flute = note("<A B@3 C ~@8 D@2 E@2 F G H ~@8 D@2 E@2 F G H ~@9 I J@3 ~ K@4 L@4 M N ~>".pickRestart({
  A: "~@23 b3@9", B: "[b4@8 ~ b4@4 a#4@5 g#4@8 f#4@9 b3@8 g#4@5 f#4@5 e4@7 d#4@9 ~ f#3@8 e4@4 ~ d#4@4 c#4@9]/3",
  C: "b3 ~", D: "[~ [g#3,d#4]@63]/2", E: "[[b3,e4]@15 ~]/2", F: "[b3,f#4,b4,d#5], d#4 ~@31",
  G: "[g#3,c#4,g#4,c#5] [f#3,d#4,f#4,b4]", H: "g3", I: "~@8 b4@7 ~@2 b4@3 a#4@4 g#4@8",
  J: "[f#4@8 b3@9 g#4@4 f#4@5 e4@9 d#4@8 f#3@8 e4@4 d#4@4 c#4@8 b3@24 ~@5]/3",
  K: "[~@13 b4@7 ~ b4@4 a#4@4 g#4@8 f#4@8 b3@8 g#4@4 f#4@4 e4@8 d#4@8 f#3@8 e4@4 d#4@4 c#4@8 b3@24 ~@3]/4",
  L: "[~@14 b4@7 ~@2 b4@3 a#4@4 ~ g#4@7 f#4@8 b3@8 g#4@4 f#4@4 e4@9 d#4@8 f#3@7 e4@4 d#4@4 c#4@8 ~ b3@24 ~]/4",
  M: "~@16 b4@7 ~ b4@4 a#4@4", N: "g#4@2 f#4@2 b3@2 g#4 ~",
})).s("gm_flute").gain(0.51)

// chords · piano
const piano = note("<A@5 ~@55>".pickRestart({
  A: "[~@33 b4@8 ~@87 b3@32, ~@24 b3@35 f#4@17 g#4@39 d#4@45, ~@41 b4@39 f#4@39 c#4@41, ~@46 a#4@39 e4@8 d#4@9 f#3@58, ~@50 g#4@17 b3@44 e4@49]/5",
})).s("gm_piano").gain(0.56)

// other · timpani
const timpani = note("<~@20 A@2 B@4 C@2 ~@15 D B E F ~@2 G H@2 I@3 J@3 K ~>".pickRestart({
  A: "b2@9 ~@23", B: "b2@15 ~@17", C: "e2 ~", D: "~@28 b2 ~ b2 ~", E: "b2@5 ~@3", F: "~@3 b2@17 ~@12", G: "~@2 b2@13 ~",
  H: "~@5 b2@16 ~@11", I: "~@3 b2@8 ~@5", J: "~@7 b2@16 ~@9", K: "~ b2@2 ~",
})).s("gm_timpani").gain(0.52)

// other · tenor sax · "Sax"
const tenor_sax = note("<~@51 A B C D C ~@2 E ~>".pickRestart({
  A: "~@11 c#5 e5 c#5 ~@2", B: "~@30 c#5 ~", C: "e5 ~ c#5@2 ~@28", D: "~@15 c#5", E: "c#5@2 e5 ~ c#5@2 ~@26",
})).s("gm_tenor_sax").gain(0.57)

// drums · triangle
const triangle = s("triangles:35").struct("<~@5 A@40 B C ~@2 D@3 E@2 F@3 ~ G ~>".pickRestart({
  A: "~@3 x", B: "~@13 x ~@2", C: "~@7 x", D: "~@29 x ~@2", E: "~@15 x", F: "~@31 x", G: "x",
})).gain(3.46)

// drums · jingle bells
const jingle_bells = s("sleighbells:4").struct("<~@32 [~@12 x!3 ~]!3 ~@25>").gain(0.74)

stack(bass, harpsichord, orchestral_harp, oboe, flute, piano, timpani, tenor_sax, triangle, jingle_bells)

More by The Beach Boys