Strudelify

The Belgian Detective

Christopher Gunning

KeyB♭ majorTempo100 bpm
0:00/0:00
// The Belgian Detective — Christopher Gunning
// 100 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/5911892; 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(100/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// 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("<A@2 B C D E B F G H I J K L M N O P Q R S T B U V W>".pickRestart({
  A: "~@7 bb5, [a3,bb3]@2 [a3,bb3] [c6,d6], ~ g3@4 g3@3, ~ [c5,d5]@3, ~@3 bb4@5", // Bbmaj7 Csus2
  B: "~@7 bb5, g2@5 g3 [c6,d6]@2, [a3,bb3]@3 g4@5, ~ g3@3 [f2,a3,bb3]@4, ~ [a4,bb4]@3", // Csus2 Bbmaj7
  C: "~@7 bb4, eb2@5 g3 [c5,d5]@2, [a3,bb3] bb4 [d2,a3,bb3]@2, ~ g3@2 g4@5, ~ a4@3", // Csus2 Bbmaj7
  D: "~@7 a4, c2@3 [bb4,c5], [d4,eb4]@3 bb4@2 c4@3, ~ c4@3 [g2,d4,eb4]@4, ~ [f4,g4]@3", // Bbsus2 Ebmaj7 Fsus2
  E: "~@3 d5, [c3,g3,c4], ~ d4@3 [d3,gb3,a3,d4,gb4,a4]@4, ~ eb4@3, ~@3 g4@5", // C5 D
  F: "g3 ~@6 bb4, [a3,bb3]@3 g4@3 [g2,d3,c5,d5]@2, ~ g3@3 [a3,bb3]@4, ~ [f3,a4]@3, ~@2 bb4@2 d3 g3@3", // Bbmaj7 Gsus4 Bbmaj7 F
  G: "~@4 c4!2 ~ a4, c3, [d4,eb4]@2 g3 bb4 eb4@2 [c4,eb4,bb4,c5]@2, ~ c4@3 [g3,d4]@4, ~ [eb3,f4,g4]@3", // Ebmaj7 Cm7 G5 Eb
  H: "~@3 d5, a3 [gb3,a3,d4,gb4,a4], c4 [g3,c4,eb4]@3, ~ d4@3 ~@4, ~@3 g4@5", // D Cm
  I: "b3 ~ [eb4,g4] [eb4,g4,bb4,eb5], [g3,b4], ~ [b3,d4,f4,d5]@3, ~ [c4,c5]", // Eb G Bdim C
  J: "c5@4 ~@4 [g4,b4]@3 ~ [eb3,d4,g4,b4]@3 g3, [ab4,f5], ~ [f4,c5,eb5]@3, ~ [c3,d5], ~@11 d3@5", // G Db F7 Csus2
  K: "[e3,bb3] ~ [ab3,c4] [ab3,c4,eb4], c3, ~ [e3,g3,bb3]@3, ~ f3", // Edim Ab Edim
  L: "[f4,ab4]@4 ~@4 c5@3 ~ [e3,e4,g4,c5]@3 g3, db4, ~ [f4,ab4,db5]@3, ~ [c3,e5], ~@11 d3@5", // Fm C Db C
  M: "[db3,db4,f4,ab4,c5]@3 eb3 [f3,f4,ab4,c5]@3 ab3 [g3,b3,db4,g4]@3 a3 b3@3 d4", // Dbmaj7 Fm Dbm7b5
  N: "[f4,ab4,c5]@3 ~@5 b3@3 ~@4 d4, db3@8 [g3,db4,g4]@3 a3 b3@2 g4@2, db4@7 ab3@9, ~@3 eb3@13, ~ [f3,f4,ab4,c5]@3", // Fm Gdim Fm
  O: "g2 a2 bb2 c3 a2 bb2 c3 d3 bb2 c3 d3 eb3 c3 d3 eb3 f3, [eb5,g5] [d5,gb5] [db5,f5] [b4,eb5]", // Eb D Db B
  P: "[d3,gb3,bb3,gb4,d5]@3 ~@3 [d3,gb3,a3]@10, bb4, ~@3 [bb3,c5]@13, ~@3 [d3,gb3]@3 ~@10, ~ [gb4,a4,d5]@3", // Daug D Bbsus2 D
  Q: "~@15 d6, [g2,d3]@11 d5 g5 a5 bb5@2, g4@3 d5@3 bb5@3 a4@7, ~ a4@3 g5@3 d6@3 bb4@6, ~@2 bb4@3 a5@3 [f2,bb2,g4]@8", // G5 Gm7
  R: "~@15 d6, eb2@11 d5 g5 a5 bb5@2, g4@3 d5@3 bb5@3 a4@7, ~ a4@3 g5@3 d6@3 bb4@6, ~@2 bb4@3 a5@3 [d2,g4]@8", // G5
  S: "~@15 gb4, bb3@4 bb4@5 f4@4 a4 g4@2, [c3,eb3,c4]@3 g4 [c3,c4]@12, ~ d4@3 [eb3,g3] a4@3 [g3,bb3,eb4]@2 g4 a4 [g3,bb3,eb4,bb4]@4, ~@2 eb4@4 g4 f4 [eb3,d4]@8", // Cm C Eb Ebmaj7
  T: "[gb3,bb3] d4 [d4,gb4] [d4,gb4,a4,c5], d3, ~ [gb3,bb3]@3, ~ bb4", // Gb D D7 Gb
  U: "~@3 gb5, [eb2,g4]@9 bb4 c5 d5@5, ~ a4@2 eb5@2 bb4@3 [d2,a4]@8, ~@2 bb4@2 a4@3 g5@9, ~@3 eb5@5", // Eb D5
  V: "g2 a2 bb2 d3 g3 a3 bb3 d4 g4 a4 bb4 d5 g5 a5 bb5 d6", W: "g6@15 ~",
})).s("gm_piano").gain(0.3)

stack(piano)