Strudelify

Take on Me marimbe

Ruhe

KeyA majorTempo184 bpm
0:00/0:00
// Take on Me marimbe — Ruhe
// 184 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "Marimba" marimba (copy of ch 1 "Marimba" marimba)
// note: Transcription provider: pdmx. https://musescore.com/score/2545851; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 46 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(184/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.

// other · marimba
const marimba = note(`<
  A@3 ~ B C B C D E F G H E F G I@2 J@2 K L K M K L K M N O P@2 Q@2 R S I@2 T@2 I@2 J@2 U@2
>`.pickRestart({
  A: "[~ [f#5,a5]@47, [b4,d5]]/3", B: "b3@3 b2@3 b3 b2", C: "b3 b3@2 b2@3 b3 b2", D: "[b2,b3]!2 ~ [b2,b3] ~@3 [e3,e4]",
  E: "~ [e3,e4] ~@2 [e3,e4]!2 ~@2", F: "[a2,a3]!2 ~ [a2,a3] ~@3 [d3,d4]", G: "~ [d3,d4] ~@2 [d3,d4]!2 ~@2",
  H: "[b2,b3]!2 ~ [b2,b3] ~@3 [d3,e4]", // B Dsus2
  I: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@2 [e4,e5]@2 [e4,e5] [g#4,g#5]!2 [a4,a5] [b4,b5]]/2", // F# D B E G# A B
  J: "[[a4,a5]!3 [f#4,f#5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", // A F# D F# E F# E
  K: "[a2,a3]!4", L: "g#3!4", M: "[e4,e5]@3 [f#4,f#5]@3 [e4,e5]@2", N: "[b2,b3]!3 ~@4 [c#3,c#4]",
  O: "[a2,a3]!3 ~@4 g#3", P: "[[a2,a3] [b2,b3]!2 ~@2 [b2,b3] ~ [b2,b3]@7 [b2,b3]!2]/2",
  Q: "[c#3,c#4] ~ [c#3,c#4] ~ [c#3,c#4] ~ [c#3,c#4] ~", R: "[a2,a3]!8", S: "[c#3,c#4]!8",
  T: "[[a4,a5]!3 [e4,e5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", // A E D F# E F# E
  U: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@9]/2", // F# D B E
})).s("gm_marimba").gain(0.3)

// other · vibraphone
const vibraphone = note(`<
  A@2 B@2 ~@2 C@2 D@2 E@2 D@2 E@2 D@2 E@2 F G H@2 F I J@2 K G L M N@4 O@2 P@2 O@2 Q@2 R@2
>`.pickRestart({
  A: "c#6/2", B: "[[c#5,c#6]@3 [a4,a5]@13]/2", C: "[[b4,b5]@3 [c#5,c#6]@3 [a4,a5]@10]/2",
  D: "[[f#4,b4]@7 [g#4,b4]@9]/2", E: "[[e4,a4]@7 [f#4,a4]@9]/2", F: "[a3,a4]", G: "[g#4,g#5]", H: "[a4,a5]/2",
  I: "[e4,e5]", J: "[f#4,f#5]/2", K: "[c#4,c#5]", L: "[a4,a5]", M: "b5 c#6 b5@2 a5@4", N: "[e5,e6]/4",
  O: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@2 [e4,e5]@2 [e4,e5] [g#4,g#5]!2 [a4,a5] [b4,b5]]/2", // F# D B E G# A B
  P: "[[a4,a5]!3 [e4,e5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", // A E D F# E F# E
  Q: "[[a4,a5]!3 [f#4,f#5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", // A F# D F# E F# E
  R: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@9]/2", // F# D B E
})).s("gm_vibraphone").gain(0.45)

// other · vibraphone
const vibraphone_2 = note(`<
  A@2 B@2 ~@2 C@2 D@2 E@2 D@2 E@2 D@2 E@2 F G H@2 F I J@2 K G L M N@4 O@2 P@2 O@2 Q@2 R@2
>`.pickRestart({
  A: "c#6/2", B: "[[c#5,c#6]@3 [a4,a5]@13]/2", C: "[[b3,b4]@3 [c#4,c#5]@3 [a3,a4]@10]/2", D: "[[b3,d4]@7 [b3,e4]@9]/2",
  E: "[[a3,c#4]@7 [a3,d4]@9]/2", F: "[a3,a4]", G: "[g#4,g#5]", H: "[a4,a5]/2", I: "[e4,e5]", J: "[f#4,f#5]/2",
  K: "[c#4,c#5]", L: "[a4,a5]", M: "b5 c#6 b5@2 a5@4", N: "[e5,e6]/4",
  O: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@2 [e4,e5]@2 [e4,e5] [g#4,g#5]!2 [a4,a5] [b4,b5]]/2", // F# D B E G# A B
  P: "[[a4,a5]!3 [e4,e5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", // A E D F# E F# E
  Q: "[[a4,a5]!3 [f#4,f#5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", // A F# D F# E F# E
  R: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@9]/2", // F# D B E
})).s("gm_vibraphone").gain(0.45)

// other · xylophone
const xylophone = note("<~@8 A@2 B@2 A@2 B@2 A@2 C@2 D E F@2 D G H@2 I E F J K@4 A@2 B@2 A@2 C@2 L@2>".pickRestart({
  A: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@2 [e4,e5]@2 [e4,e5] [g#4,g#5]!2 [a4,a5] [b4,b5]]/2", // F# D B E G# A B
  B: "[[a4,a5]!3 [e4,e5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", // A E D F# E F# E
  C: "[[a4,a5]!3 [f#4,f#5]@2 [d4,d5]@2 [f#4,f#5]@2 [f#4,f#5]@2 [f#4,f#5] [e4,e5]!2 [f#4,f#5] [e4,e5]]/2", D: "a4!16",
  E: "g#5!16", F: "a5!16", G: "e5!16", H: "f#5!16", I: "c#5!16", J: "b5 c#6 b5@2 a5@4", K: "e6!16",
  L: "[[f#4,f#5]!2 [d4,d5] [b3,b4]@2 [b3,b4]@2 [e4,e5]@9]/2", // F# D B E
})).s("gm_xylophone").gain(0.4)

stack(marimba, vibraphone, vibraphone_2, xylophone)