Strudelify

Sonic the Hedgehog - Bosses

Masato Nakamura

KeyD majorTempo120 bpm
0:00/0:00
// Sonic the Hedgehog - Bosses — Masato Nakamura
// 120 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5961309; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 20 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · piano
const piano = note("<~ A@2 B C A@2 B D E ~ A@2 B C A@2 B D E>".pickRestart({
  A: "[b4 a4 ~ c5 b4@15 ~ f#4@4 b4@4 c#5@4]/2", B: "d5@15 ~", C: "e5@15 ~", D: "e5 f5",
  E: "f#5 d5 f#5 d5 f#5 d5 f#5 d5 f#5 d5 f#5 d5 f#5 d5 f#5 d5",
})).s("gm_piano").gain(0.3)

// other · piano
const piano_2 = note("<~ A B C D A B E F G ~ A B C D A B E F G>".pickRestart({
  A: "~@10 f#4 ~ b4 ~ c#5 ~", B: "d5@15 ~", C: "~@6 b4 ~ g4 ~ e4@6", D: "~@6 d5 ~ c#5 ~ a4@6",
  E: "~@6 b4 ~ g4 ~ e4@4 b4 ~", F: "e5 ~ e5@4 e5 ~ f5 ~ f5@4 f5@2", G: "f#5@15 ~",
})).s("gm_piano").gain(0.25)

// bass · piano
const bass = note("<A B C D E B C D F G A B C D E B C D F G>".pickRestart({
  A: "f#1 f#2 f#1 f#2 f#1 f#2 f#1 f#2", B: "b1!2 d2!2 c#2!2 c2!2", C: "b1@3 f#2 b2@2 a2@2", D: "g2 g2@2 d2 g2 g2@2 f#2",
  E: "e2 e2@2 b1 e2 e2@2 b1", F: "e2 e2@2 e2 d2 d2@2 d2", G: "c2@15 ~",
})).s("gm_piano").gain(0.3)

// drums · kick
const kick = s("bd").struct("<[x!4] ~@8 [~ x ~ x ~ x ~ x] [x!4] ~@8 [~ x ~ x ~ x ~ x]>").gain(0.25)

// drums · snare
const snare = s("sd").struct("<~ A B A B A B A B ~@2 A B A B A B A B ~>".pickRestart({
  A: "x ~@3 x!2 ~ x!2 ~ x ~@3 x ~", B: "x ~@2 x!2 ~ x ~",
})).gain(0.25)

// drums · low tom
const low_tom = s("lt").struct("<[x!4] ~@8 [~ x ~ x ~ x ~ x] [x!4] ~@8 [~ x ~ x ~ x ~ x]>").gain(0.25)

// drums · mid tom
const mid_tom = s("mt").struct("<~@9 [x!4] ~@9 [x!4]>").gain(0.25)

// drums · high tom
const high_tom = s("ht").struct("<[~ x ~ x ~ x ~ x] ~@9 [~ x ~ x ~ x ~ x] ~@9>").gain(0.25)

stack(piano, piano_2, bass, kick, snare, low_tom, mid_tom, high_tom)

More by Masato Nakamura