Strudelify
The Model cover art

The Man-Machine

The Model

Kraftwerk

KeyE minorTempo124 bpm
0:00/0:00
// The Model — Kraftwerk
// 124 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 3 "Bass Line" named as a bass, played on electric bass finger (its electric guitar muted patch is not one); ch 6 "VocalVibes" named as a mallet, played on vibraphone (its pad poly patch is not one); ch 8 "Bass Line" named as a bass, played on electric bass finger (its electric guitar muted patch is not one)
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(124/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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.

// bass · electric bass finger · "Bass Line"
const bass = note(`<
  ~ A B A B A B A B A B A B A B A B A B A B A B A B C D E F G H I J A B A B A B A B A B A B A B A B C D E F G H I J A B
  A B A B A B A B A B A B A B C D E F G H I J A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B K ~
>`.pickRestart({
  A: "a2@4 ~@2 a2 ~ c3 ~ a2 ~ c3 ~ a2 ~", B: "e2@4 ~@2 e2 ~ g2 ~ e2 ~ g2@3 ~", C: "c3@4 c4@2 c3@2 ~@2 c3@2 c4@3 ~",
  D: "b2@2 b3 b2 ~ b2 b3 ~", E: "g2@2 g3 g2 ~ g2 g3 ~", F: "g2@4 g3@2 g2@2 ~@2 g2 ~ g3@3 ~",
  G: "c3@4 c4@2 c3@3 ~ c3@2 c4@3 ~", H: "b2@4 b3@2 b2@2 ~@2 b2@2 b3@3 ~", I: "e2@2 e3 e2 ~ e2 e3 ~",
  J: "e2@4 e3@2 e2@3 ~ e2@2 e3@2 ~@2", K: "a2",
})).s("gm_electric_bass_finger").gain(0.17)

// other · lead 5 charang · "lead"
const lead_5_charang = note("<~@25 A B C@2 A D E F ~@16 A B C@2 A D E F ~@16 G H I J K L M N ~@34>".pickRestart({
  A: "c4@15 ~", B: "b3@13 ~ a3@2", C: "[g3@13 ~@3]/2", D: "b3@15 ~", E: "e4", F: "g#4@6 a4@2 b4@7 ~", G: "c5@15 ~",
  H: "b4@13 ~ a4@2", I: "g4@7 b4", J: "d5@15 ~", K: "e5@3 c5 g4@4", L: "b4@15 ~", M: "e5", N: "g#5@3 a5 b5@4",
})).s("gm_lead_5_charang").gain(0.18)

// other · sitar · "solo synth"
const sitar = note("<~@57 A B A C A B A C A B A C A B A D ~@24 A B A C A B A C ~@10>".pickRestart({
  A: "e6 c6 a5 c6 e6 c6 e6 f6", B: "e6 b5 g5 b5 e6@2 d6@2", C: "e6@2 b5@2 g5@2 b5@2 e6@5 ~ g6 ~",
  D: "e6@2 b5@2 g5@2 b5@2 e6@5 ~@3",
})).s("gm_sitar").gain(0.14)

// bass · electric bass finger · "Bass Line"
const bass_2 = note(`<
  ~ A B A B A B A B A B A B A B A B A B A B A B A B C D E F G H I J A B A B A B A B A B A B A B A B C D E F G H I J A B
  A B A B A B A B A B A B A B C D E F G H I J A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B K ~
>`.pickRestart({
  A: "a1@4 ~@2 a1 ~ c2 ~ a1 ~ c2 ~ a1 ~", B: "e1@4 ~@2 e1 ~ g1 ~ e1 ~ g1@3 ~", C: "c2@4 c3@2 c2@2 ~@2 c2@2 c3@3 ~",
  D: "b1@2 b2 b1 ~ b1 b2 ~", E: "g1@2 g2 g1 ~ g1 g2 ~", F: "g1@4 g2@2 g1@2 ~@2 g1 ~ g2@3 ~",
  G: "c2@4 c3@2 c2@3 ~ c2@2 c3@3 ~", H: "b1@4 b2@2 b1@2 ~@2 b1@2 b2@3 ~", I: "e1@2 e2 e1 ~ e1 e2 ~",
  J: "e1@4 e2@2 e1@3 ~ e1@2 e2@2 ~@2", K: "a1",
})).s("gm_electric_bass_finger").gain(0.25)

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

// drums · rim
const rim = s("rim").struct(`<
  A B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 D B@3 C B@3 C B@3 C B@3 C B@3 C B@3 D B@3 C B@3 C B@3 C B@3 C B@3 C
  B@3 D B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C ~@2
>`.pickRestart({
  A: "~@6 x!2", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@2 x ~@2 x!3",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct(`<
  A B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 D B@3 C B@3 C B@3 C B@3 C B@3 C B@3 D B@3 C B@3 C B@3 C B@3 C B@3 C
  B@3 D B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C B@3 C ~@2
>`.pickRestart({
  A: "~@6 x!2", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@2 x ~@2 x!3",
})).gain(0.45)

// drums · crash
const crash = s("cr").struct("<~@113 x ~>").gain(0.5)

// drums · tambourine
const tambourine = s("tb").struct("<~ [x!8]!56 ~@16 [x!8]!24 ~@8 [x!8]!8 ~@2>").gain(0.4)

stack(bass, lead_5_charang, sitar, bass_2, kick, rim, snare, crash, tambourine)

More by Kraftwerk