Strudelify

ducktales - the moon theme

Hiroshige Tonomura

KeyB♭ majorTempo160 bpm
0:00/0:00
// ducktales - the moon theme — Hiroshige Tonomura
// 160 bpm, 4/4, key A# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/1723336; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 67 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(160/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 · trumpet · "Bb Clarinet"
const trumpet = note(`<
  ~@9 A B@2 ~@2 C@2 D@2 E@4 F@4 G H I J K ~ L@2 M@6 C@2 D@2 E@4 F@4 G H I J K ~ L@2 M@6 N
>`.pickRestart({
  A: "~ bb4 c5 bb4", B: "f5/2", C: "[~@4 d4 eb4 f4 f4@3 g4@2 a4@2 bb4@2]/2", D: "[c5@2 d5 bb4@10 bb4 a4 bb4]/2",
  E: "[f4@3 g4@10 bb4!2 bb4@6 c5 bb4 a4@9]/4", F: "[d4@4 d4 c4 bb3 f4@3 bb4@2 c5@2 eb5@5 d5@9 f5@2 eb5@2]/4",
  G: "d5 eb5 d5 bb4@2 f4@3", H: "f4 c5 bb4 a4 g4 a4@3", I: "bb4 ~@2 bb4 ~@2 bb4 ~", J: "bb4 f4 eb4 d4 bb3 ~@3",
  K: "gb4!2 ~@2 c5!2 ~@2", L: "[c5@2 bb4 c5 ~ bb4 ~ bb4@5 a4 f5 eb5 c5]/2",
  M: "[bb4!2 ~@2 c5!2 ~ db5@4 ab4@2 ab4 db4 eb4@7 db4 bb4@6 bb4!2 bb4@13 bb4@2 c5@2]/6", N: "db5 ~@2 c5 ~@2 bb4 ~",
})).s("gm_trumpet").gain(0.4)

// other · trumpet · "Bb Clarinet" · soft notes
const trumpet_soft = note("<A@2 B@2 C@2 D@2 ~@59>".pickRestart({
  A: "[bb3@3 f4@3 bb4@10]/2", B: "[ab3@3 eb4@3 ab4@10]/2", C: "[g3@3 d4@3 g4@10]/2", D: "[gb3@3 ~@3 gb4@10]/2",
})).s("gm_trumpet").gain(0.2)

// other · trumpet · "Bb Clarinet"
const trumpet_2 = note(`<
  ~@5 A B@2 C@4 D E D E D E F G H@2 D E I E D E J K L M N@2 O P Q R S T D E D E F G H@2 D E I E D E J K L M N@2 O P Q R
  S T U
>`.pickRestart({
  A: "~ bb3 c4 d4", B: "[eb4@3 d4@7 d4@2 c4@2 bb3@2]/2", C: "[f4@3 bb4@2 ~ bb4@7 ~@3]/4",
  D: "bb4!2 f4 bb4 c5 f4 bb4 c5", E: "eb5 f4 eb5 d5 f4 d5 c5 bb4", F: "bb4 ~ g4!2 eb4!2 g4!2",
  G: "f4!2 g4!2 ~ eb4 g4!2", H: "[g5@5 a5 g5 f5@3 g5@2 f5@2 eb5@2]/2", I: "~@2 f4 bb4 c5 f4 bb4 c5",
  J: "bb4 f4 a4 c5 f4 c5 eb5 d5", K: "~@4 bb4 f4 eb4 d4", L: "bb4!2 ~@2 eb5!2 ~@2", M: "~ c4 db4 ab4 ~ c5 db5 ab4",
  N: "[eb4@2 db4 eb4 ~ db4 ~ f4@9]/2", O: "bb4!2 ~@2 c5!2 ~@2", P: "ab4!8", Q: "bb4!2 ~@2 bb4!4", R: "c4!8",
  S: "bb3!2 f4 bb4 c5 f4 bb4 c5", T: "eb5 f4 eb5 d5 c5 d5 c5 bb4", U: "f5 ~@2 f5 ~@2 f4 ~",
})).s("gm_trumpet").gain(0.3)

stack(trumpet, trumpet_soft, trumpet_2)