Strudelify

Day Dream Believer

The Monkees

KeyG majorTempo123 bpm
0:00/0:00
// Day Dream Believer — The Monkees
// 123 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 80 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 finger · "Bass"
const bass = note(`<
  ~ A B C B A D E F C G D H I J K L M N O P Q R Q S T U V W X A D E F C G D H I J K L M N O P Q R Q S T U V W X Q R Q S
  T U V W X A B C B Q R Q S T U V W X Y@3
>`.pickRestart({
  A: "g2", B: "d2@23 ~", C: "g2@23 ~", D: "a2@23 ~", E: "b2@23 ~", F: "c3@23 ~", G: "e2", H: "d2@11 ~",
  I: "g2@7 ~@3 g2@2 d2@5 ~ g2@5 ~", J: "a2@8 ~@2 a2@2 e2@5 ~ a2@5 ~", K: "b2@7 ~@3 b2@2 f#2@5 ~ b2@5 ~",
  L: "c3@11 ~ c3@3 ~ b2@2 a2@4 ~@2", M: "g2@7 ~@3 g2@2 e2@6 g2@5 ~", N: "a1@4 ~ a1 d2@4 ~ d2",
  O: "g2@4 ~@2 g2@5 ~ f#2@5 ~ g2@5 ~", P: "a2@6 g2@6 f#2@6 e2@5 ~", Q: "c2@5 ~ c2@5 ~ d2@5 ~ d2@5 ~",
  R: "b1@5 ~ b1@5 ~ b1@5 ~ b1@5 ~", S: "e2@5 ~ e2@5 ~ c2@5 ~ c2@5 ~", T: "g2@5 ~ g2@5 ~ g2@5 ~ g2@5 ~",
  U: "c2@5 ~ c2@5 ~ c2@5 ~ c2@5 ~", V: "g2@5 ~ g2@5 ~ e2@5 ~ e2@5 ~", W: "a2@6 g2@6 f#2@5 ~ e2@5 ~",
  X: "d2@6 c2@6 b1@5 ~ a1@5 ~", Y: "[g1@49 ~@23]/3",
})).s("gm_electric_bass_finger").gain(0.37)

// chords · piano
const piano = note(`<
  ~ 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 F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC U
  V W X Y Z AA AB AC A B C D U V W X Y Z AA AB AC AE@3
>`.pickRestart({
  A: "[b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4 ~, g3", // Bm
  B: "[a4,c5]@4 g4 ~ [a4,c5]@4 g4@2 [a4,c5]@4 g4@2 [a4,c5]@4 g4@2, [d3,a3]@23 ~, g4 ~@5 g4 ~@17", // Am D5
  C: "[b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4 ~, g3@23 ~, ~@6 g4 ~@17", // Bm
  D: "[a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4, [d3,a3]@23 ~, g4 ~@5 g4 ~@5 g4 ~@5 g4 ~@5", // Am D5
  E: "[b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4 ~, g3@23 ~", // Bm
  F: "[a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4, [d3,a3]@23 ~, g4 ~@23", // Am D5
  G: "[b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4, b2", // Bm
  H: "[c5,e5]@4 g4@2 [c5,e5]@4 g4@2 [c5,e5]@4 g4@2 [c5,e5]@4 g4 ~, c3@11 ~", // C
  I: "[b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4, g3@23 ~, g4 ~@23", // Bm
  J: "[b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4, e3", // Bm
  K: "[c#5,e5]@4 g4@2 [c#5,e5]@4 g4@2 [c#5,e5]@4 g4@2 [c#5,e5]@4 g4 ~, a3@11 ~", // C#m
  L: "[d5,f#5]@2 a4 [d5,f#5]@2 a4 [d5,f#5]@2 a4 [d5,f#5]@2 a4, d3@23 ~", // D
  M: "[b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4 ~, [g3,b3,d4]@23 ~", // Bm G
  N: "[a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4, [e3,a3]@23 ~, [g3,c4,e4]@3 ~", // Am A5 C
  O: "[b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4 [b4,d5]@2 g4, b2, [a3,d4,f#4]@11 ~", // Bm D
  P: "[g4,c5,e5]@4 ~@2 [c5,e5]@4 ~@2 [c5,e5]@4 ~@2 [c5,e5]@4 g4 ~, c3@11 ~, [c4,e4]@5 ~, ~@2 g4@3 g4@3 g4@2 ~@2", // C
  Q: "[b4,d5]@2 g4 [b4,d5]@2 g4 [g4,d5]@2 ~ [b4,d5]@2 g4, [g3,b3,d4]@5 ~ e4@5 ~, ~@2 b4 ~, ~@8 g4@3 ~", // Bm G5 Bm G
  R: "[g4,c5,e5]@4 ~@2 [c5,e5]@4 g4@2 [a4,d5,f#5]@4 ~@2 [d5,f#5]@4 a4 ~, [c4,e4]@10 ~@2 [d4,f#4]@9 ~@3, ~@2 g4@3 ~@3 a4@2 ~@2", // C D C D
  S: "[g3,b3,d4]@5 ~ [b3,b4]@6 [a3,a4]@5 ~ [b3,b4]@5 ~", T: "[c4,c5]@3 [b3,b4]@3 [a3,a4]@3 [g3,g4]@2 ~",
  U: "c4 ~ c4 c4@2 c4 [f#4,a4]@2 d4 d4@2 d4, c3 [d3,a3], [e4,g4]@3 [e4,g4]@3 d4 ~@2 [f#4,a4]@3", // F#m D5 Em F#m
  V: "[d4,f#4]@4 ~@2 [d4,f#4]@4 b3@2 b3 ~@9 b3@2, b2, b3@2 ~@2 b3@5 ~@3 [d4,f#4]@6 [d4,f#4]@6, ~@8 b3@3 ~", // D
  W: "[e4,g4]@4 c4 ~ c4@4 c4@2 [f#4,a4]@4 d4@2 d4@4 d4@2, c3 d3, c4 ~@5 [e4,g4]@6 d4@2 ~@4 [f#4,a4]@6", // Em F#m Em F#m
  X: "[g4,b4]@4 e4 ~ e4@4 e4@2 [e4,g4]@4 c4 ~ [c4,e4]@4 [c4,e4]@2, e3 c3, e4 ~@5 [g4,b4]@6 c4@2 ~@4 g4@6", // G Em C G
  Y: "[b4,d5]@4 g4 ~ [b4,d5]@4 g4 ~ [b4,d5]@4 ~@6 g4@2, g3, g4@2 ~@4 g4@2 ~@4 g4 ~@3 g4@6 ~@2, ~@3 [b4,d5]", // Bm
  Z: "[e4,g4]@4 c4 ~ [e4,g4]@4 c4 ~ [e4,g4]@4 c4 ~ c4 ~@3 c4@2, c3@19 ~@5, c4 ~@5 c4 ~@5 c4 ~@5 [e4,g4]@6", // Em
  AA: "[b4,d5]@4 g4 ~ g4@4 g4@2 [g4,b4]@4 e4 ~ e4@4 e4@2, g3 e3, g4 ~@2 [b4,d5]@3 e4 ~@2 [g4,b4]@3", // Bm G Bm G
  AB: "[e4,a4]@4 c#4 ~ [e4,a4]@4 c#4 ~ [e4,a4]@4 c#4 ~ c#4@4 [a3,c#4]@2, a2, c#4@2 ~@4 c#4 ~@5 c#4 ~@5 [e4,a4]@6", // A5 A A5
  AC: "[f#4,a4]@4 d4 ~ [f#4,a4]@4 d4@2 [f#4,a4]@4 d4@2 [f#4,a4]@4 d4 ~, d3@23 ~, d4 ~@2 d4 ~@8", // F#m
  AD: "[b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4 ~, g3@23 ~, g4 ~@23", // Bm
  AE: "[~ g#2 ~@70, [g2,g3,d4,g4,b4]@49 ~@23]/3", // G
})).s("gm_piano").gain(0.41).pan(0.6)

// chords · trumpet · "Brass"
const trumpet = note(`<
  ~@19 A B C@3 D E F G H@2 ~@14 A B C@3 D E F G H@2 C@3 D E F G H@2 ~ I J K C@3 D E F G H@2 ~@3
>`.pickRestart({
  A: "~ [g4,b4] [f#4,a4] [d4,g4,b4], ~@6 d4@11 ~@7", // G F#m G
  B: "[a4,c5] [g4,b4] [d4,f#4,a4] [d4,e4,g4], d4@5 ~ d4@5 ~@13, b4 ~@23", // Am G D Em7
  C: "[[c4,e4,g4]@12 a4@12 b4@11 ~ b4@4 d5@3 ~@5 [e4,g4]@12 [f#4,a4,d5]@12, ~@12 [d4,f#4]@36 ~@12 e5 ~@11, ~@46 c5@15 ~@11]/3", // C Em D
  D: "[g4,b4,e5]@12 [e4,g4,c5]@11 ~", E: "[g3,b3,d4]@23 ~", F: "[g3,c4,e4]@23 ~", G: "[g3,b3,d4]@11 ~",
  H: "[~@12 a4@3 ~ b4@2 ~@4 a4@13 ~ b4@3 ~ a4@8]/2", I: "~ a4 g4 f#4", J: "g4", K: "~@6 a4@6 g4@6 f#4@5 ~",
})).s("gm_trumpet").gain(0.46).pan(0.8)

// chords · string ensemble 1 · "Strings"
const string_ensemble_1 = note(`<
  ~@30 A B C D E F G H I@4 J K L@2 ~@9 M N@2 O P Q R S@2 T Q U V M N@2 O P Q R S@2 W@3
>`.pickRestart({
  A: "d4 g4@2 b4", B: "a4@7 ~", C: "d4 g4 b4 d5", D: "e5@11 ~", E: "g4 b4@2 g5", F: "e5@23 ~", G: "~ a4 c#5 g5",
  H: "f#5@2 e5 d5",
  I: "[~@6 g5@6 b5@6 d6@6 [e4,c5]@23 ~@7 b5@6 d6@6 f#6@5 ~ [e4,e6]@22 ~@2, g4@23 ~ [b3,f#4]@12 ~@12, [d4,b4]@23 ~ c6@26 ~@46, ~@48 d4@22 ~ [c4,g4]@24 ~]/4", // C E B5 G C5
  J: "~@12 b5@6 g6@5 e4, b4@4 e4@3 ~, g4@11 g4@12 ~, ~@6 d6@7 ~@11",
  K: "e6@6 c6@5 ~ [a5,a6]@6 f#6@6, c4@11 f#4@12 ~, ~@12 d4@11 ~", // A
  L: "[b4@12 a4@6 b4@6 c5@6 b4@6 a4@6 g4@5 ~, [d4,g6]@47 ~]/2", M: "g5 a5", N: "[b5@23 c6@12 ~ d6@12]/2",
  O: "e6@2 c6 d6", P: "b5", Q: "c6", R: "b5@2 a5 g5", S: "[a5@47 ~]/2", T: "~ d5 g5 d6", U: "~ d5 g5 g6", V: "d6@23 ~",
  W: "[[g3,d4,b4]@25 ~@11]/3", // G
})).s("gm_string_ensemble_1").gain(0.31).pan(0.4)

// chords · epiano2 · "Elec. Piano"
const epiano2 = note(`<
  ~@12 A ~@8 B C D E F G H I J ~@16 B C D E F G H I J B C D E F G H I J K L M N ~@12
>`.pickRestart({
  A: "f#5 ~ e5 ~@2 d5@6 ~",
  B: "c4 ~ c4 c4@2 c4 [f#4,a4]@2 d4 d4@2 d4, c3 [d3,a3], [e4,g4]@3 [e4,g4]@3 d4 ~@2 [f#4,a4]@3", // F#m D5 Em F#m
  C: "[d4,f#4]@4 ~@2 [d4,f#4]@4 b3@2 b3 ~@9 b3@2, b2, b3@2 ~@2 b3@5 ~@3 [d4,f#4]@6 [d4,f#4]@6, ~@8 b3@3 ~", // D
  D: "[e4,g4]@4 c4 ~ c4@4 c4@2 [f#4,a4]@4 d4@2 d4@4 d4@2, c3 d3, c4 ~@5 [e4,g4]@6 d4@2 ~@4 [f#4,a4]@6", // Em F#m Em F#m
  E: "[g4,b4]@4 e4 ~ e4@4 e4@2 [e4,g4]@4 c4 ~ [c4,e4]@4 [c4,e4]@2, e3 c3, e4 ~@5 [g4,b4]@6 c4@2 ~@4 g4@6", // G Em C G
  F: "[b4,d5]@4 g4 ~ [b4,d5]@4 g4 ~ [b4,d5]@4 ~@6 g4@2, g3, g4@2 ~@4 g4@2 ~@4 g4 ~@3 g4@6 ~@2, ~@3 [b4,d5]", // Bm
  G: "[e4,g4]@4 c4 ~ [e4,g4]@4 c4 ~ [e4,g4]@4 c4 ~ c4 ~@3 c4@2, c3@19 ~@5, c4 ~@5 c4 ~@5 c4 ~@5 [e4,g4]@6", // Em
  H: "[b4,d5]@4 g4 ~ g4@4 g4@2 [g4,b4]@4 e4 ~ e4@4 e4@2, g3 e3, g4 ~@2 [b4,d5]@3 e4 ~@2 [g4,b4]@3", // Bm G Bm G
  I: "[e4,a4]@4 c#4 ~ [e4,a4]@4 c#4 ~ [e4,a4]@4 c#4 ~ c#4@4 [a3,c#4]@2, a2, c#4@2 ~@4 c#4 ~@5 c#4 ~@5 [e4,a4]@6", // A5 A A5
  J: "[f#4,a4]@4 d4 ~ [f#4,a4]@4 d4@2 [f#4,a4]@4 d4@2 [f#4,a4]@4 d4 ~, d3@23 ~, d4 ~@2 d4 ~@8", // F#m
  K: "[b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4 ~, g3", // Bm
  L: "[a4,c5]@4 g4 ~ [a4,c5]@4 g4@2 [a4,c5]@4 g4@2 [a4,c5]@4 g4@2, [d3,a3]@23 ~, g4 ~@5 g4 ~@17", // Am D5
  M: "[b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4@2 [b4,d5]@4 g4 ~, g3@23 ~, ~@6 g4 ~@17", // Bm
  N: "[a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4 [a4,c5]@2 g4, [d3,a3]@23 ~, g4 ~@5 g4 ~@5 g4 ~@5 g4 ~@5", // Am D5
})).s("gm_epiano2").gain(0.41).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@12 A B@6 C@3 D C D C D C D C B@7 E B@6 C@3 D C D C D C D C@2 D C D C D C D C F@3 G C D C D C D C D G H ~@2
>`.pickRestart({
  A: "~@2 x ~@2 x ~@2 x!2 ~ x", B: "x ~@4 x!2 ~@5", C: "x!4", D: "x ~@2 x ~@2 x ~ x!2 ~@2", E: "x ~@4 x!2 ~@4 x",
  F: "x!2", G: "x ~@5 x!2 ~ x ~ x", H: "x",
})).gain(0.51)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@21 [~@5 x ~@5 x]!9 ~@16 [~@5 x ~@5 x]!18 ~@4 [~@5 x ~@5 x]!8 ~@4>").gain(0.15)

// drums · rim
const rim = s("rim").struct("<~@13 [~ x ~ x]!6 ~@11 [~ x ~ x]!7 [~ x ~@2] ~@42>").gain(0.51)

// drums · snare
const snare = s("sd").struct("<~@19 A B C@8 D ~@7 E C@5 F A B C@8 D C@9 ~@3 G C@8 G ~@3>".pickRestart({
  A: "x", B: "~@8 x!4", C: "~ x ~ x", D: "~@3 x ~@6 x!2", E: "~@2 x ~@6 x ~@2", F: "~@3 x ~@5 x ~ x", G: "~ x",
})).gain(0.51)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@18 A ~ B ~@8 C ~@13 D ~ B ~@8 C ~@12 E ~@8 E ~@3>".pickRestart({
  A: "~@22 x!2", B: "~@6 x!2 ~@4", C: "~@3 x", D: "~@16 x!2 ~@6", E: "x!6 ~@6",
})).gain(0.31)

// drums · clap
const clap = s("cp").struct("<~@21 [~ x ~ x]!9 ~@16 [~ x ~ x]!18 ~@4 [~ x ~ x]!8 ~@4>").gain(0.51)

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

// drums · hihat
const hihat = s("hh").struct("<A@19 B@2 A@23 B@2 A@18 B@4 A@8 B ~@3>".pickRestart({
  A: "x!4", B: "~ x ~ x",
})).gain(0.51)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@13 A@6 ~@2 A@23 ~@2 A@18 ~@4 A@8 ~@4>".pickRestart({
  A: "~@2 x ~@2 x ~@2 x ~@2 x",
})).gain(0.26)

// drums · mid tom
const mid_tom = s("mt").struct("<~@19 A B ~@8 C ~@7 D ~@6 A B ~@8 C ~@8 C ~@16>".pickRestart({
  A: "~ x!3", B: "~@4 x!2 ~ x!3 ~@2", C: "~@2 x ~@4 x!2 ~@3", D: "~@5 x!3 ~@4",
})).gain(0.51)

// drums · high tom
const high_tom = s("ht").struct("<~@20 A ~@8 B ~@15 A ~@8 B ~@8 B ~@16>".pickRestart({
  A: "x!4 ~@8", B: "~@5 x!2 ~@5",
})).gain(0.51)

// drums · crash
const crash = s("cr").struct("<~@21 A ~@24 A ~@8 A ~@12 A ~@8 A ~@2>".pickRestart({
  A: "x",
})).gain(0.51)

// drums · ride
const ride = s("rd").struct("<~@38 [x!4]!6 ~@33 x ~@2>").gain(0.51)

stack(
  bass, piano, trumpet, string_ensemble_1, epiano2, kick, kick_soft, rim, snare, snare_soft, clap, low_tom, hihat,
  hihat_soft, mid_tom, high_tom, crash, ride
)

More by The Monkees