Strudelify

Over de muur

Klein Orkest

KeyC majorTempo93 bpm
0:00/0:00
// Over de muur — Klein Orkest
// 93 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Bass" named as a bass, played on electric bass finger (its piano patch is not one)
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(93/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 · synth strings 1 · "Chords"
const synth_strings_1 = note(`<
  A B A B A B A B A B C@2 D E D E C@5 F G H I C J K L M N K O P Q R Q R Q R Q R A B A B A B C@2 D E D E C@5 F G H I C J
  K O P Q S O P Q R Q R Q R Q R
>`.pickRestart({
  A: "[c4,e4,g4]@3 [b3,d4,g4]@5", B: "[a3,c4,g4]@3 [b3,d4,g4]@5", C: "[a3,c4,f4]@3 [a3,c4,f4]@5",
  D: "[c4,e4,g4] [b3,d4,g4]", E: "[a3,c4,g4] [b3,d4,g4]", F: "[a3,c4,d#4,f4]@3 [a3,c4,d#4,f4]@5",
  G: "[a3,c4,d4,f4]@3 [a3,c4,d4,f4]@5", H: "[a3,c#4,f4]@3 [a3,c#4,f4]@5", I: "[a#3,d4,f4]@3 [a#3,d4,f4]@5",
  J: "[b3,d4,f4,g4]@3 [b3,d4,f4,g4]@5", K: "[a3,c4,d4,f#4]@3 [a3,c4,d4,f#4]@5", L: "[b3,d4,g4]@3 [b3,d4,g4]@5",
  M: "[b3,e4,g4]@3 [b3,e4,g4]@5", N: "[c4,e4,g4]@3 [c4,e4,g4]@5", O: "[b3,d4,g4]@8 ~ c3@7, ~ [b3,d4,g4]",
  P: "[b3,e4,g4]!2", Q: "[c4,e4,g4]!2", R: "[b3,d4,g4]!2", S: "[a3,c4,d4,f#4]!2",
})).s("gm_synth_strings_1").gain(0.4)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~ A B@5 C B C D E B@3 C E D E D F G H I J F K L K M N H O P Q O Q O Q O Q O B@3 C B C D E B@3 C E D E D F G H I J F K
  L O P Q R O P Q O Q O Q O Q O
>`.pickRestart({
  A: "~@5 [g1,g2] [c2,c3] [g1,g2]", B: "[c2,c3]@3 [c2,c3]@5", C: "[c2,c3]@3 [c2,c3]@4 [g1,g2]",
  D: "[f1,f2]@3 [c2,c3]@4 [g1,g2]", E: "[f1,f2]@3 [c2,c3]@5", F: "[f1,f2]@3 [f1,f2]@5", G: "[d#1,d#2]@3 [d#1,d#2]@5",
  H: "[d1,d2]@3 [d1,d2]@5", I: "[c#1,c#2]@3 [c#1,c#2]@4 [g1,g2]", J: "[a#1,a#2]@3 [a#1,a#2]@5",
  K: "[g1,g2]@3 [g1,g2]@5", L: "[d1,d2]@3 [d1,d2]@4 [d1,d2]", M: "[e1,e2]@3 [e1,e2]@5", N: "[c1,c2]@3 [c1,c2]@5",
  O: "[g1,g2]!2", P: "[e1,e2]!2", Q: "[c1,c2]!2", R: "[d1,d2]!2",
})).s("gm_electric_bass_finger").gain(0.41)

// drums · kick
const kick = s("bd").struct("<~@42 [x ~@2 x!2 ~@3]!38>").gain(0.41)

// drums · rim
const rim = s("rim").struct("<~@2 [~ x ~ x]!76 ~@2>").gain(0.46)

// drums · ride
const ride = s("rd").struct("<~@28 A@3 B A@3 B A@3 B A@2 ~@24 A@3 B A@3 B A@3 B A@2>".pickRestart({
  A: "x!8", B: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
})).gain(0.36)

stack(synth_strings_1, bass, kick, rim, ride)