Strudelify

The Belgian Detective

Marco B.

KeyA minorTempo100 bpm
0:00/0:00
// The Belgian Detective — Marco B.
// 100 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5483362; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 59 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 · [...]/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 · acoustic guitar nylon · "Klassische Gitarre"
const acoustic_guitar_nylon = note(`<
  ~@4 A B C D E F G D E F G H I J K L M N O D E F G D E F G P Q P Q R S@2 T U V W X@2 Y Z AA AB AC AD AE AF AG AH AE AF
  AG AI AJ
>`.pickRestart({
  A: "[b2,e3,c4] a2 [b3,c4,e4] a3 [b2,e3,c4] a2 [b4,c5] a4", // Cmaj7
  B: "[b2,e3,c4] a2 [b3,c4,e4] a3 [b2,e3,c4] a2 [b3,c4,e4] a3, ~@3 e2", C: "[g#2,a#3,d4]",
  D: "a2 e3 a3 e3 g2 e3 [b3,c4,e4] a3", E: "f2 c3 [b3,c4,e4] a3 e2 e3 [b3,c4,e4] a3", F: "d3 [a3,d4] a3 d3 c3 e3 a3 e3",
  G: "b2 f3 b3 f3 a#2@2 a#2@2, [a3,d#4] [g#3,d4]", H: "a2 e3 a3 e3 a#2 f3 a#3 f3", I: "c#3 e3 g3 a#3 d3 f3 a3 f3",
  J: "d3 f#3 a3 c4 d#3 g3 a#3 d4", K: "f#3 a3 c4 d#4 g3 a#3 d4 a#3",
  L: "d#3@2 ~ f3 g3@2 ~ a#3 a3@2 ~ b3 c#4@2 g2 e4, ~ g2@2 g2 ~ g2@2 ~",
  M: "d#4@2 ~ f4 g4@2 ~ a#4 a4@2 ~ b4 c#5@2 a4@2, ~ g2@2 g2 ~ g2@2 ~",
  N: "[e2,a4,a5] [e2,g#4,g#5] [e2,g4,g5] [e2,f4,f5]", O: "e5@2 e5 d5 [d3,e4,g#4,e5]@6 ~@6, [d3,f4,a4] ~@3",
  P: "~ a3 a4 a3 ~ a3 a4 a3, a2 g2", Q: "~ a3 a4 a3 ~ a3 a4 a3, f3 d#3", R: "a2@3 b2 c3@3 e3 a3@4 a2@4",
  S: "[a#2@3 c3 d3@3 f3 a#2@2 a#2@2 a#2@2 a#2@2 a#2@2 a#2@2 a#2@2 a#2@2 a#2@2 a#2@2 [a#2,a#3]@2 [a#2,c4]@2, ~@2 a#3@5 ~]/2", // A# A#sus2
  T: "[a2,b3] a2!6 [g2,c4], ~@2 a3@5 ~", U: "[f2,a#3]@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@3 g2, ~ g#3@2 ~",
  V: "g#2@3 c3 f3@3 g3 g#3@3 c4 f4@3 d#4", W: "[a#2,d4]@2 ~ d#4 f4@3 a#3 [b2,d#4]@2 ~ f4 f#4@3 a#4, ~ a#2@3 ~ b2@3",
  X: "[[d3,b4]@4 [d3,f4]@4 a#4 g#4 ~@2 d#3@4 [d#3,f#3]@4 [d#3,f#3]@4 [d#3,g3]@3 g#3 [d#3,a#3]@3 d#3, ~@2 d#3 ~@5, ~@5 a#4@7 ~@4]/2", // G Dm D#m D# D#5
  Y: "[d#3,g#3]@3 a#3 [d#3,b3]@3 d#4 [g2,e4]@4 [g2,a#3]@4", // G#5 G#m C Gm
  Z: "~ c#4 g#2@2 a#2@4 b2@3 a#2 ~@2 d#4@2, [g#2,d#4] d#4@6 ~, ~@3 g2", AA: "[g#2,e4] [g#2,d#4] [g#2,d4] [g#2,a#3]",
  AB: "[g#3,e5]@2 [g#3,d#5]@2 g#3@2 ~ a#4, ~@4 d5@3 ~, ~@3 g#3", // C#m G#5
  AC: "f3 f#3 g#3 a#3 c4 c#4 d#4 f4 d#4 f4 f#4 g#4 a#4 c5 c#5 d#5", AD: "[c#3,a#3,a#4] ~ c3 ~ [b2,a3,a4]@6 ~@6",
  AE: "a#2 f3 a#3 f3 g#2 f3 [c4,c#4] a#3", AF: "f#2 c#3 [c4,c#4] a#3 f2 f3 [c4,c#4] a#3",
  AG: "d#3 [a#3,d#4] a#3 d#3 c#3 f3 a#3 f3", AH: "c3 f#3 c4 f#3 b2@2 b2@2, [a#3,e4] [a3,d#4]",
  AI: "[c3,a#3,e4] [b2,a3,d#4]", AJ: "~ [f4,a#4]@7, [a#2,f3], ~ [a#3,c#4]@15",
})).s("gm_acoustic_guitar_nylon").gain(0.3)

stack(acoustic_guitar_nylon)