Strudelify

mama said

lukas graham

KeyF majorTempo84 bpm
0:00/0:00
// mama said — lukas graham
// 84 bpm, 2/2, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/3583871; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 68 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(84/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 · "Klavier"
const piano = note(`<
  A B@2 C D E@2 F G H G H I H G J A B@2 C D E@2 F G H G H I H G J K L K L M N M O P Q A B@2 C D E@2 F G H G H I H G J K
  L K L M N M O P Q
>`.pickRestart({
  A: "[f5,d6]!4 [f5,c6]!4, bb2 f2", B: "[e5,c6]!4 [f5,d6]!4, a2 d3", C: "[e5,c6]!8, c3 ~",
  D: "[f5,d6]!4 [f5,c6]!4, [bb1,bb2] [f1,f2]", E: "[e5,c6]!4 [f5,d6]!4, [a1,a2] [d2,d3]", F: "[e5,c6]!5 ~@3, [c2,c3] ~",
  G: "[f5,d6]!6 [e5,c6]!2, [d2,d3] ~@2 [e2,e3]", H: "[f5,c6]!8, [f2,f3] ~@3", I: "[f5,d6]!8, [d2,d3] ~ [bb1,bb2] ~",
  J: "[f5,c6]!5 ~@3, [f2,f3] ~@3", K: "[d3,f4,a4] [b2,d4,g4]", L: "[bb2,d4,f4] [f2,a3,f4]",
  M: "[d2,d3,f4,a4] [b1,b2,d4,g4]", N: "[bb1,bb2,d4,f4] [f1,f2,a3,f4]", O: "[bb1,bb2,d4,f4] [bb2,d4,f4]",
  P: "[db4,e4]@2 [db4,e4]@2 [db4,e4]!4, a2@2 [a1,a2]!2", Q: "[a1,a2,db4,e4]!4 [a1,a2]@4, ~@2 [db4,e4] ~",
})).s("gm_piano").gain(0.3)

// chords · xylophone · "Xylophon"
const xylophone = note(`<
  A B@2 C A B@2 D E F E F G F E H A B@2 C A B@2 D E F E F G F E H I J I J I J I K L M A B@2 C A B@2 D E F E F G F E H I
  J I J I J I K L M
>`.pickRestart({
  A: "[f5,d6]!4 [f5,c6]!4", B: "[e5,c6]!4 [f5,d6]!4", C: "[e5,c6]!8", D: "[e5,c6]!5 ~@3", E: "[f5,d6]!6 [e5,c6]!2",
  F: "[f5,c6]!8", G: "[f5,d6]!8", H: "[f5,c6]!5 ~@3", I: "[f5,a5] [d5,g5]", J: "[d5,f5] [a4,f5]", K: "[d5,f5]!2",
  L: "[db5,e5]@2 [db5,e5]@2 [db5,e5]!4", M: "[db5,e5]!4 [db5,e5]@2 ~@2",
})).s("gm_xylophone").gain(0.3)

// bass · electric bass pick · "Bass Gitarre"
const bass = note(`<
  A B@2 C D E@2 F G H G H I H G H A B@2 C D E@2 F G H G H I H G H J A J A K D K L M N A B@2 C D E@2 F G H G H I H G H J
  A J A K D K L M N
>`.pickRestart({
  A: "bb2 f2", B: "a2 d3", C: "c3 ~", D: "[bb1,bb2] [f1,f2]", E: "[a1,a2] [d2,d3]", F: "[c2,c3] ~",
  G: "[d2,d3] ~@2 [e2,e3]", H: "[f2,f3] ~@3", I: "[d2,d3] ~ [bb1,bb2] ~", J: "d3 b2", K: "[d2,d3] [b1,b2]",
  L: "[bb1,bb2] bb2", M: "a2@2 [a1,a2]!2", N: "[a1,a2]!4 [a1,a2]@4",
})).s("gm_electric_bass_pick").gain(0.3)

stack(piano, xylophone, bass)