Strudelify

curious george theme

Dr. John

KeyA majorTempo228 bpm
0:00/0:00
// curious george theme — Dr. John
// 228 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5987251; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 44 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(228/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@5 A B C D E F ~ G H I ~ G J I K L@2 M@2 N O P Q R H I S T@2 U V W X Y Z Y AA AB@2
>`.pickRestart({
  A: "~@7 b4", B: "d5!2 d5@2 e5@2 d5@2", C: "b4@2 b4 g4@2 g4@3", D: "a4@2 a4 a4@4 ~", E: "b4@2 b4@2 c5 b4 c5@2",
  F: "b4 ~", G: "b4!2 ~ b4@4 ~", H: "~@2 d4!2", I: "e4@2 g4 e4@4 ~", J: "~@3 g4 d4@2 d4@2", K: "~ d4",
  L: "[e4@4 e4!2 ~ d4@5 ~ d4 d4@2]/2", M: "[g4@4 f#4@2 f4 e4@5 ~ e4 e4@2]/2", N: "a4 b4@3 a4 b4@5 g4@4 e4@2",
  O: "d4 ~ d4 ~ d4 ~@3", P: "b4 g4 e4 a4 f#4 d4 e5 d5", Q: "~@5 g4 g4@2", R: "g4@2 g4 g4@4 ~", S: "~@6 d4!2",
  T: "[e4@2 e4@3 e4!2 d4@7 d4!2]/2", U: "g4 ~ f#4 ~", V: "e4@4 ~ e4!3", W: "b4 b4@2 g4", X: "f#4 f4 e4 d4 ~ d4@2 d4",
  Y: "a#4!3 ~", Z: "~@5 d4@2 d4", AA: "~ d5@2 d5@2 d5 e5 d5", AB: "[g4@3 f4@2 d4@3 c4@3 ~@4 a#3@3 g3@14]/2",
})).s("gm_trumpet").gain(0.3)

// chords · piano
const piano = note("<~@12 A B A B A B A B C D E F ~ G ~@2 H I J ~ K@2 L F ~@2 M N M O ~@2>".pickRestart({
  A: "~@2 [d5,g5,b5] ~ [c#5,f#5,a#5] [d5,g5,b5] ~ [c#5,f#5,a#5]", // G F# G F#
  B: "[d5,g5,b5] [a4,d5,f#5] [c#5,f#5,a#5] [d5,g5,b5]@2 [c#5,f#5,a#5] [d5,g5,b5] ~", C: "[a3,a4]!2 [c4,c5] [e4,e5]",
  D: "[d4,d5]@4 ~ d5 d5@2", E: "g5@4 [e5,f#5,a5]@2 [d#5,f5,a5] [d5,e5,a5]", F: "[e5,b5]@11 ~@5",
  G: "[d4,f#4,d5] ~ [d4,f#4,e5] ~ [d4,f#4,f#5] ~@3", H: "~ [e5,a#5] [d5,b5] [e5,a#5]", I: "[d5,b5] [e5,a#5] [d5,b5] ~",
  J: "~@2 [d5,g5,b5] ~ [c#5,f#5,a#5] [d5,g5,b5] ~ [d5,g5,b5]", // G F# G
  K: "[[c3,c5]@6 [e3,e5]@2 ~@2 [g3,g5]@2 ~@2 [b3,b5]@17 ~]/2", L: "~ [b4,d5,g5] ~ [d#5,f5,a5]",
  M: "~ [a#3,a#4,a#5]@2 [g3,g4,g5]", N: "[a3,a4,a5] ~@2 [a3,a4,a5]@3 [g3,g4,g5]@2", O: "[a3,a4,a5] ~@7",
})).s("gm_piano").gain(0.3)

// bass · electric bass pick · "Bass Guitar"
const bass = note("<~@8 A B C D E F G H E I G J K L M@2 K N ~@2 O P Q R K L S T K U V W V B X@2>".pickRestart({
  A: "c2@2 a1 e1", B: "d2!2", C: "g1", D: "d2 c2 b1 a1", E: "g1@2 d2 ~", F: "b1!2 b1@2 d2@2 ~@2", G: "e1 ~ b1 ~",
  H: "e2@2 d2 e2", I: "b1!2 b1@2 d2@2 d#2@2", J: "e2 d2 b1 d2", K: "a1@2 g1 e1", L: "d2@2 a1 d2",
  M: "[g2@4 f#2@2 f2 e2@5 g2 e2 ~@2]/2", N: "d2 ~ d2 ~ d2 ~@3", O: "g1 d2", P: "g1@2 a1 b1", Q: "e1 b1",
  R: "e1@2 g1 b1", S: "~ g2 ~ f2", T: "e2@2 b1 e2", U: "d2!4 ~@4", V: "a1 g1", W: "d2 e2", X: "g1/2",
})).s("gm_electric_bass_pick").gain(0.3)

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

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

// drums · hihat
const hihat = s("hh").struct("<A@7 B C@2 ~@2 C@13 D A@2 C@6 E C@2 F C@4 ~@2>".pickRestart({
  A: "~@2 x!2 ~@2 x!2", B: "~@2 x!2 ~@4", C: "x!4", D: "x!3 ~", E: "x!2", F: "x!3 ~@5",
})).gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct("<A B A B A B A C ~@2 D E ~@14 A B ~@16>".pickRestart({
  A: "x!2", B: "x ~@2 x ~@4", C: "x", D: "~ x ~ x", E: "~ x!2 ~",
})).gain(0.3)

// drums · open hat
const open_hat = s("oh").struct("<[x!2]!8 ~@18 [x!2]!2 ~@16>").gain(0.3)

// drums · high tom
const high_tom = s("ht").struct("<A ~ A ~ A ~ A B ~@2 C D ~@14 A ~@17>".pickRestart({
  A: "~ x ~@2", B: "~@3 x ~@4", C: "x ~@3 x!2 ~@2", D: "x",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@11 [~@3 x] ~@22 [~ x ~ x] ~@2 [~@3 x ~@4] ~@6>").gain(0.3)

stack(trumpet, piano, bass, kick, snare, hihat, mid_tom, open_hat, high_tom, crash)

More by Dr. John