Strudelify

scooby-doo theme song - scooby-doo where are you

Desconocido

KeyC majorTempo132 bpm
0:00/0:00
// scooby-doo theme song - scooby-doo where are you — Desconocido
// 132 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/478821; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 26 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(132/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("<~@2 A B C@2 A D E@2 F G H I G J K L A B M@2 A D N@2>".pickRestart({
  A: "e4!2 d4!2 c4@4, c3", B: "d4 f4@2 a3@3 ~ a3, d3@3 ~@5",
  C: "[[g3,b3]@2 ~@2 e4@2 d4 ~@2 c4@7, ~ g3@3 c3@4, ~@7 d4@2 ~@7]/2", D: "d4 e4@2 f4@3 ~ f4, d3",
  E: "[g4@2 g4@2 e4@2 d4 ~@2 c4@3 ~ c4 d4 e4, g3 c3, ~@7 d4@2 ~@7]/2", F: "f4 e4 f4 e4 f4 e4 f4 e4, a3",
  G: "f4 e4 f4 e4 f4 e4 f4!2, a3", H: "[g3,e4]", I: "g3@3 ~@2 c4 d4 e4, ~@3 g3@5", J: "f4 e4 f4 e4 f4@2 f#4@2, a3",
  K: "[g3,g4]", L: "g3@3 g3@5", M: "[[g3,b3]@2 ~@2 e4@2 d4 ~@2 d4 e4@6, ~ g3@3 c3@4, ~@7 c4@2 ~@7]/2",
  N: "[g4@2 g4@2 e4@2 d4 ~@2 c4@3 c2@2 ~@2, g3@2 c3 ~, ~@7 d4@2 ~@7]/2",
})).s("gm_piano").gain(0.3)

// chords · acoustic guitar nylon · "Guitar"
const acoustic_guitar_nylon = note("<~@2 A B C A@2 B C A D@2 E@2 D@2 C@2 A B C A@2 B C F>".pickRestart({
  A: "[c3,e3,g3] ~ [c3,e3,g3] ~", B: "[d3,f3,a3] ~ [d3,f3,a3] ~", C: "[b2,d3,g3] ~ [b2,d3,g3] ~",
  D: "[c3,e3,a3] ~ [c3,e3,a3] ~", E: "[g2,c3,e3]", F: "[c3,e3,g3] ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

// drums · kick
const kick = s("bd").struct("<~@2 [x!2]!7 ~ [x!2]!6 x [x ~@2 x ~@4] [x!2]!7 x>").gain(0.3)

// drums · rim
const rim = s("rim").struct("<[x!2] [x!2 ~@2] ~@24>").gain(0.3)

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

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

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@9 [~ x] ~@6 [~@5 x ~@2] ~@9>").gain(0.3)

// drums · crash
const crash = s("cr").struct("<~@2 A ~@6 A@2 ~@2 B A ~ A B ~@7 A>".pickRestart({
  A: "x", B: "x ~@2 x ~@4",
})).gain(0.3)

stack(piano, acoustic_guitar_nylon, kick, rim, snare, hihat, open_hat, mid_tom, crash)