Strudelify

resonance - soul eater opening theme

Misc Cartoons

KeyE majorTempo165 bpm
0:00/0:00
// resonance - soul eater opening theme — Misc Cartoons
// 165 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 1/8 at bar 116, 4/4 at bar 117, 6/4 at bar 149) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 2 "Basse électrique" named as a bass, played on electric bass finger (its overdriven guitar patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1265466; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 149 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(165/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.

// chords · harpsichord · "Piano"
const harpsichord = note(`<
  ~@19 A B C A@2 B D A ~@32 A B C A@2 B D A ~@24 E F G H E F G H ~@33 I@7 J@8 K@2
>`.pickRestart({
  A: "[c5,d#5,g5]", B: "[d#5,g5,a#5]", C: "[c#5,f5,g#5]@3 f5", D: "[c#5,f5,g#5]@3 a#5", E: "c#5 b4", F: "g#4",
  G: "f#4 g#4", H: "c#4",
  I: "[~ [c5,d#5,g5]@8 [d#5,g5,a#5]@8 [c#5,f5,g#5]@6 f5@2 [c5,d#5,g5]@8 [c5,d#5,g5]@8 [d#5,g5,a#5]@8 [c#5,f5,g#5]@6 a#5]/7", // Cm D# C# Cm D# C#
  J: "[~ [c5,d#5,g5]@8 [c5,d#5,g5]@8 [d#5,g5,a#5]@8 [c#5,f5,g#5]@6 f5@2 [c5,d#5,g5]@8 [c5,d#5,g5]@8 [d#5,g5,a#5]@8 [c#5,f5,g#5]@6 a#5]/8", // Cm D# C# Cm D# C#
  K: "[~ [c5,d#5,g5]@8 ~@7]/2", // Cm
})).s("gm_harpsichord").gain(0.48)

// bass · electric bass finger · "Basse électrique"
const bass = note(`<
  A@2 B C D C D C D E@2 F@8 G H I G@2 H I G@2 H I G@2 H I G J K L M J K N ~ F@16 G H I G@2 H I G@2 H I G@2 H I G J K L M
  J K N O F@16 P Q R S T U V W X ~@4 Y Z Y Z AA AB AC AB AC AB AC AB AC AB AC AB AC AB AC AB AD AE AF AG AH AE AF AG AH
  AE AF AG AH AE AF AG AI
>`.pickRestart({
  A: "[c#3!2 ~ a2!2 ~ b2 b2@5 ~@4]/2", B: "~@7 a2", C: "g#2 a2 b2@2 a2 b2 c#3@2", D: "b2 c#3 d#3 e3 d#3 c#3 b2 a2",
  E: "[g#2 a2 b2@2 a2 b2 c#3@4 ~@6]/2", F: "[a2 g#2 a2 b2@2 a2 b2 c#3@2 b2 c#3 d#3 e3 d#3 c#3 b2]/2",
  G: "c3@2 d#3 a#2 c3@2 d#3 a#2", H: "d#3!2 c#3 d#3@2 c#3!2 d#3", I: "c#3!2 a#2 c#3@2 a#2 c#3 d#3",
  J: "g#2@3 d#3@3 g#3@2", K: "a#3@3 f3@3 a#2@2", L: "[c3,d#3]@3 g3@3 d4 d#4", M: "d4@3 a#3@3 f3@2",
  N: "c3!2 ~ g#2!2 ~ a#2!2", O: "~@4 g2 g3 c4 d4 ~@8", P: "c3@3 d#3@3 f#3@2", Q: "c#3@2 c#3 c#3@2 c#3 c#3@2",
  R: "c3!2 f#2 g#2", S: "c#3!2 b2!2", T: "a2@3 e3 a3@2 a2@2", U: "g#2@3 d#3 g#3@2 g#2@2", V: "[g2,c#3] g2!3",
  W: "g#2 [g#2,d#3] g#2!2", X: "[g#2,d#3]", Y: "a1 b1", Z: "c#2", AA: "~ a2 g#2 a2 b2@2 a2 b2",
  AB: "c#3@2 b2 c#3 d#3 e3 d#3 c#3", AC: "b2 a2 g#2 a2 b2@2 a2 b2", AD: "b2 c3@2 d#3 a#2 c3@2 d#3",
  AE: "a#2 d#3!2 c#3 d#3@2 c#3!2", AF: "d#3 c#3!2 a#2 c#3@2 a#2 c#3", AG: "d#3 c3@2 d#3 a#2 c3@2 d#3",
  AH: "a#2 c3@2 d#3 a#2 c3@2 d#3", AI: "a#2 ~@7",
})).s("gm_electric_bass_finger").gain(0.33).pan(0)

// other · tubular bells · "Cloches tubulaires"
const tubular_bells = note("<~@91 A B C D A B C D ~@50>".pickRestart({
  A: "c#5 b4", B: "g#4", C: "f#4 g#4", D: "c#4",
})).s("gm_tubular_bells").gain(0.48)

// drums · rim
const rim = s("rim").struct("<~@11 A@7 ~ A@22 ~@2 A@38 ~@2 A@7 ~@26 B@15 ~ B@16 ~>".pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@3 x",
})).gain(0.14)

// drums · snare
const snare = s("sd").struct("<A ~@9 B C@7 B C@22 A B C@38 A ~ C@7 B ~@25 D@15 E D@16 ~>".pickRestart({
  A: "x!2 ~ x!2 ~ x!2", B: "~@2 x!2 ~@4 x ~ x ~ x ~@3", C: "~ x ~ x", D: "~@3 x ~@3 x", E: "~@4 x!2 ~@4 x ~ x ~ x ~",
})).gain(0.14)

// drums · low tom
const low_tom = s("lt").struct("<~@10 A ~@7 A ~@23 A ~@47 A ~@40 B ~@17>".pickRestart({
  A: "x ~@3 x ~ x ~@2 x!2 ~@5", B: "~@2 x ~@3 x ~ x ~@2 x!2 ~@3",
})).gain(0.14)

// drums · hihat
const hihat = s("hh").struct("<~@2 [x!8]!4 ~@143>").gain(0.28)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<~@7 [x!8]!3 ~@139>").gain(0.14)

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

// drums · ride bell
const ride_bell = s("rd").struct("<~@2 A ~@3 B ~@3 C ~@7 C ~@23 C ~@47 C ~@40 D ~@17>".pickRestart({
  A: "x", B: "x!14 ~@2", C: "x ~ x!3 ~ x ~ x!3 ~ x ~@3", D: "~@2 x ~ x!3 ~ x ~ x!3 ~ x ~",
})).gain(0.14)

stack(harpsichord, bass, tubular_bells, rim, snare, low_tom, hihat, hihat_soft, mid_tom, ride_bell)

More by Misc Cartoons