Strudelify

Itsumo Nando Demo

Tyler Morgan

KeyB♭ majorTempo120 bpm
0:00/0:00
// Itsumo Nando Demo — Tyler Morgan
// 120 bpm, 8/8, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/49611; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 42 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 · [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 · orchestral harp · "Harp"
const orchestral_harp = note(`<
  A@2 B C@2 D E F G H@2 G I@2 J K@2 L M N O P Q R S T U A@2 B C@2 D E F G H@2 V W X@2
>`.pickRestart({
  A: "[f3@2 f4@2 a4@2 f3@2 f4@2 a4@2 f3@2 f4@2 a4@2 f3@2 f4@2 f4 g4 a4 f4 f4@2 a4!2 [c4,e4,g4]@2, ~ c4@2 ~ c4@2 ~ c4@2 ~ c4@2 f3 [c4,c5]@2 ~, ~@11 a4 ~@4]/2", // C
  B: "[g4,c5]@2 [g4,e5]@2 d4!2 f5@2 ~ f4 a3@2 a4@2 f4 e4, ~@2 f4 a4@2 e4@2 c5, ~@4 d5 ~ c4@2", // C5 C
  C: "[[bb3,d4]@2 [e4,f4]@2 f4 g4 [a3,c4]@2 f4@2 [g4,a4] a4 [g3,d4,bb4]@2 bb4 a4 g4 f4 [c4,g4]@2 [e4,g4]@2 [f4,g4] g4 a4 f4 f4@2 a4!2 [c4,e4,g4]@2, ~ d4@2 ~ c4@2 ~ d4@2 ~@3 f3 [c4,c5]@2 ~, ~@2 bb4 ~@4 g4 bb4 ~@2 c5 ~@4]/2", // Bb Fmaj7 Am Gsus2 Gm C5 Em Fsus2 …
  D: "[g4,c5]@2 [g4,e5]@2 [d4,f4]@2 [d4,f5]@2 e4 f4 [a3,c4,e4]@2 [c4,a4]@2 ~ c4, ~@3 a4@2 ~@3, ~@4 d5 ~@2 c5", // C5 C Dm Am F
  E: "[bb3,d4]@2 [e4,f4]@2 f4 g4 [a3,c4]@2 [c4,f4]@2 [g4,a4] a4 [g3,d4]@2 bb4 a4, ~ d4@2 ~@2 f4 ~ [d4,g4], ~@4 bb4@2 ~@6 bb4 ~@3", // Bb Fmaj7 Am F5 Gsus2 G5
  F: "[c4,c5]@2 [f3,f4]@2 ~@2 a4@2 f3@2 f4@2 ~ bb4 [f3,c5]@2, g4 ~@3 [c4,f4]@4 ~@2 c4@4 ~@2, ~@6 a4 ~", // C F F5
  G: "[f4,c5]@2 [a4,c5]@2 [c4,e4,c5]@2 c5 d5 ~ bb4 [d4,a4]@2 [f4,a4]@2 [a4,d5]@2, c4@2 ~ [g4,e5] [c5,g5] ~@3", // F5 Am C D5 F D5 C C5
  H: "[[a3,a4]@2 ~ bb4 a4 g4 d4@2 [f4,d5]@2 f4 e4 [bb3,d4]@2 [e4,f4]@2 e4 f4 g3@2 g4 a4 g4 a4 [c4,g4]@2 [g4,c5]@2 a4 bb4 [f3,c5]@2, ~@2 [c4,a4]@2 [e4,c5]@2 f4 ~@3 [d4,a4]@2 ~@2 d4@4 ~@2 [bb3,d4]@2 [d4,bb4]@2 ~@8, ~@16 bb4@2 g4 ~@9 [c5,e5]@2 ~@2]/2", // A Dm Bb Fmaj7 C5 F5 F C …
  I: "[a4 bb4 a4 g4 [e4,f4] e4 bb3@2 ~ e4 f4 g4 [a3,c4]@2 f4@2 [g4,a4] a4 [bb3,g4]@2 [g4,c5]@2 [g4,e5]@2 [f3,f4]@2 f4@2 a4@2 f3@2, a3 [c4,e5] c5 ~ [d4,f4] [bb4,d5] ~ c4@2 ~@4 c4@2 ~]/2", // Fmaj7 Am Gsus2 Eb C5 C F C …
  J: "f4@2 a4@2 f3@2 f4@2 f4 g4 a4 f4 f4@2 a4!2, c4@2 ~ c4@2 f3 [c4,c5]@2, ~@4 a4 ~@3", // C
  K: "[[c4,e4,g4]@2 [g4,c5]@2 [g4,e5]@2 d4!2 f5@2 ~ f4 a3@2 a4@2 f4 e4 [bb3,d4]@2 [e4,f4]@2 f4 g4 [a3,c4]@2 f4@2 [g4,a4] a4 [g3,d4,bb4]@2, ~@3 f4 a4@2 e4@2 c5 ~@2 bb4 ~@4, ~@5 d5 ~ c4@2 ~ d4@2 ~ c4@2 ~]/2", // C C5 C Bb Fmaj7 Am Gsus2 Gm
  L: "bb4 a4 g4 f4 [c4,g4]@2 [e4,g4]@2 [f4,g4] g4 a4 f4 f4@2 a4!2, d4@2 ~@3 f3 [c4,c5]@2, g4 bb4 ~@2 c5 ~@3", // C5 Em Fsus2 C
  M: "[c4,e4,g4]@2 [g4,c5]@2 [g4,e5]@2 [d4,f4]@2 [d4,f5]@2 e4 f4 [a3,c4,e4]@2 [c4,a4]@2, ~@2 a4 ~, ~@5 d5 ~@2", // C C5 C Dm Am F
  N: "[c4,c5]@2 [bb3,d4]@2 [e4,f4]@2 f4 g4 [a3,c4]@2 [c4,f4]@2 [g4,a4] a4 [g3,d4]@2, ~@2 d4@2 ~@2 f4 ~, ~@6 bb4@2 ~@6 bb4 ~", // C Bb Fmaj7 Am F5 Gsus2 G5
  O: "bb4 a4 [c4,c5]@2 [f3,f4]@2 ~@2 a4@2 f3@2 f4@2 a4@2, [d4,g4]@2 g4 ~@3 [c4,f4]@4 ~@2 c4@4", // C F G5 F5
  P: "f3 f4 a4 f3 f4 a4 [c4,e4] [g4,e5], ~ c4@2 ~ c4@2 ~@2", Q: "[c5,g5] d4 [f4,a4] [a4,d5] a3 [c4,a4] [e4,c5] d4",
  R: "[f4,d5] [d4,a4] bb3 f4 bb4 g3 [bb3,d4] [d4,bb4], ~@3 d4@2 ~@3", // Dm D5 Bb Gm
  S: "c4 [g4,c5] [c5,e5] f3 f4 a4 [c4,e4] [g4,e5], ~@2 c4 ~", T: "[c5,g5] d4 [f4,a4] [a4,d5] a3 [c4,e5] [e4,c5] bb3",
  U: "[d4,f4] [bb4,d5] a3 f4 a4 bb3 [g4,c5] [c4,e5], ~@3 c4@2 ~@3", // Dm Bb C5 C
  V: "[f4,c5]@2 [a4,c5]@2 c5@2 c5 d5 c5 bb4 a4@2 a4@2 a4@2, c4 ~@3", // F5 Am
  W: "a4 bb4 a4 g4 f4 e4 a3@2 d4 e4 f4 g4 [bb3,c4]@2 [f4,g4,c5]@2, bb3 [d4,f4] [bb4,d5] ~ c4@2 ~@2, ~@4 f4 a4 ~@2", // Bbsus2 Fsus2 Dm Bb
  X: "[g4 a4 [f3,g4]@2 [c4,f4]@2 [f4,a4]@2 [f4,a4,c5]@2 [c5,f5]@2 [c5,a5]@2 [c5,f5,a5,c6,f6]@6 ~@12, [c4,e5]@2 ~@4 g4 ~@7 [f4,a4]@11 ~@7]/2", // Fsus2 F5 F F5 F C F
})).s("gm_orchestral_harp").gain(0.2)

stack(orchestral_harp)