Strudelify

Ik kan het niet alleen

De Dijk

KeyG majorTempo139 bpm
0:00/0:00
// Ik kan het niet alleen — De Dijk
// 139 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "ACOU BASS" named as a bass, played on acoustic bass (its piano patch is not one)
// note: Full arrangement: all 136 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(139/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 · rock organ · "ORGAN 3"
const rock_organ = note(`<
  A@4 B@4 ~@9 C ~ C ~ C ~@2 D@4 E@4 ~@9 C ~ C ~ C ~@2 D@4 E@4 D@4 F G H@2 B@4 ~@2 I ~ J K I ~@2 C ~ C ~ C ~@2 D@4 E@4
  D@4 F G H@2 B@4 ~ C ~ C ~ C ~@2 D@4 E@4 ~@9 C ~@6
>`.pickRestart({
  A: "[[d4,b4]@13 ~ [c4,e4]@17 ~ [d4,b4]@14 [c4,e4]@17 ~, g4@46 g4 ~@17]/4", // G C G C
  B: "[[d4,g4,b4]@14 [c4,e4,g4]@15 ~ [d4,f#4,a4]@27 ~@7]/4", C: "[e4,g4,a#4,c5]@3 ~ [e4,g4,a#4,c5]@10 ~@2",
  D: "[[d5,b5]@7 [e5,c6]@8 [d5,b5]@8 [e5,c6]@9, g5@46 g5 ~@17]/4", // G C G C
  E: "[[d5,g5,b5]@14 [e5,g5,c6]@16 [d5,f#5,a5]@31 ~@3]/4", F: "[f#4,a4,d5]@11 ~ [a4,b4,d5,f5]@3 ~",
  G: "[f#4,a4,d5]@10 ~@2 [a4,b4,d5,f5]@3 ~", H: "[[f#4,a4,d5]@5 ~ [a4,b4,d5,f5]@9 ~]/2", I: "b4", J: "b4, d4@7 ~",
  K: "[e4,c5]@15 ~", // C
})).s("gm_rock_organ").gain(0.32)

// chords · rock organ · "ORGAN 3" · soft notes
const rock_organ_soft = note("<~@68 A@8 ~@55 B ~ B ~@2>".pickRestart({
  A: "[[d4,b4]@15 ~ [e4,a#4,c5]@15 ~ d4@14 ~@2 [e4,a#4]@16 ~@32 d4@14 ~@2 [e4,a#4]@14 ~@2, g4@63 ~]/8", // G C7 Edim
  B: "[e4,g4,a#4,c5]@3 ~ [e4,g4,a#4,c5]@10 ~@2", // C7
})).s("gm_rock_organ").gain(0.14)

// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
  A@4 B@2 C D E F E F E F G H E F E F E F G H I J@2 K@2 L M N E F E F E F G H E F E F E F G H I O J K@2 L M N I J@2 K
  P@3 Q R@2 C S T@2 U@4 T@2 E F E F E F G H I J@2 K@2 L M N I J@2 K P@3 Q R@2 C S E F E F E F G H V J@2 K@2 L M N E F E
  F E F G H E F E F E F G H
>`.pickRestart({
  A: "[g3@3 ~ e3 g3 ~ c3@7 ~@2]/2", B: "[g3@6 ~@2 e3@2 g3@2 ~@2 d3@17 ~]/2", C: "d3@3 ~@3 c3@3 ~@5 b2@2",
  D: "~@4 a2@3 ~ a2@3 ~@5", E: "g2!4 f2 g2 f2 g2", F: "c3!2 d3 f3 c3!2 d3 f3", G: "d3!8", H: "b2!2 c3!2 c#3!2 d3 d2",
  I: "g2@3 ~ g2@3 ~ g2@2 ~ g2 ~ g2 f2@2", J: "g2@3 ~ g2@2 ~@2 g2@2 ~ g2 ~ g2 f2@2",
  K: "g2@2 ~@2 g2@2 ~@2 g2@2 ~ g2 ~ g2 f2@2", L: "g2@2 ~@2 g2@3 ~ g2@2 ~ g2 ~ g2 g2@2", M: "d3@4 ~@3 d3@3 ~@2 d3@3 ~",
  N: "~@2 d3@3 ~@3 d3 ~ c3@2 b2@2 a2 ~", O: "g2@3 ~ g2@2 ~@2 g2@3 g2 ~ g2 f2@2", P: "d2 ~ d2 ~ d2!2 ~@2 d2@4 f2@3 ~",
  Q: "f2@2 ~@4 f2@2 ~@4 f2 ~@3", R: "[g3@6 ~@2 e3@2 g3@2 ~@2 c3@17 ~]/2",
  S: "~@2 d3@2 a2@3 ~ a2@2 c3@2 b2@2 a2 ~, ~@8 d3 ~@7", T: "[g2@7 ~]/2", U: "[g2@29 ~@3]/2",
  V: "g2@3 ~ g2@3 ~ g2@2 ~ g2@2 g2 f2@2",
})).s("gm_acoustic_bass").gain(0.36)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  A@4 B@4 C@2 D@2 E@2 F G C@2 D@2 E@2 F G ~@16 C@2 D@2 E@2 F G H I J K L K M@2 H N J K ~@16 C@2 D@2 E@2 F G H I J K L K
  M@2 H N J K ~@8 C@2 D@2 E@2 F G ~@16 C@2 D@2 E@2 F G
>`.pickRestart({
  A: "[[d4,b4]@13 ~ [c4,e4]@17 ~ [d4,b4]@14 [c4,e4]@17 ~, g4@46 g4 ~@17]/4", // G C G C
  B: "[[d4,g4,b4]@13 ~ [c4,e4,g4]@15 ~ [d4,f#4,a4]@27 ~@7]/4", // G C D
  C: "[[b3,d4,g4]@2 ~@2 [c4,f4,a4]@2 ~@2 [d4,f4,a#4]@2 ~@2 [c4,f4,a4] ~ [c4,e4,g4]@4 ~@2 [c4,f4,a4]@2 ~@2 [c4,g4,a#4]@2 ~@2 [c4,f4,a4]@2 ~@2]/2", // G F A# F C F C7 F
  D: "[[b3,d4,g4]@2 ~@2 [c4,f4,a4]@2 ~@2 [d4,f4,a#4]@2 ~@2 [c4,f4,a4] ~ [c4,e4,g4]@5 ~ [c4,f4,a4]@2 ~@2 [c4,g4,a#4]@2 ~@2 [c4,f4,a4]@2 ~@2]/2", // G F A# F C F C7 F
  E: "[[b3,d4,g4]@3 ~ [c4,f4,a4]@2 ~@2 [d4,f4,a#4]@2 ~@2 [c4,f4,a4] ~ [c4,e4,g4]@5 ~ [c4,f4,a4]@2 ~@2 [c4,g4,a#4]@2 ~@2 [c4,f4,a4]@3 ~]/2", // G F A# F C F C7 F
  F: "[a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~@2", G: "~@2 [a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~@2 [d2,d3]@3 ~",
  H: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [f4,a#4,d5] ~ [f4,a4,c5]@2 ~@4", // G F A# F
  I: "[g4,c5,e5] ~ [a#4,d5,f5] ~ [a#4,d5,f5] [g4,c5,e5] ~@2", // C A# C
  J: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [a#4,d5]@2 [a4,c5]@2 ~@4, ~@2 f4 ~", // G F A# Am
  K: "[g4,c5,e5]@3 ~ [a#4,d5,f5]@3 ~ [a#4,d5,f5]@2 [g4,c5,e5]@2 ~@4", // C A# C
  L: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [f4,a#4,d5]@2 [f4,a4,c5]@2 ~@4", M: "[[d3,f#4,a4,d5]@11 ~@5, d2@7 ~@9]/2",
  N: "[g4,c5,e5]@2 ~@2 [a#4,d5,f5]@2 ~@2 [a#4,d5,f5]@2 [g4,c5,e5]@3 ~@3", // C A# C
})).s("gm_acoustic_guitar_steel").gain(0.32)

// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
  A@4 B@2 C D ~@16 E F G H I H J@2 K@2 L@2 M@2 N O ~@24 P@2 C D ~@32 P@2 C D ~@8 E Q G H I H J@2 K@2 L@2 M@2 N O ~@8
>`.pickRestart({
  A: "[g3@3 ~ e3 g3 ~ c3@7 ~@2]/2", B: "[g3@6 ~@2 e3@2 g3@2 ~@2 d3@17 ~]/2", C: "d3@3 ~@3 c3@3 ~@5 b2@2",
  D: "~@4 a2@3 ~ a2@3 ~@5", E: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [f4,a#4,d5] ~ [f4,a4,c5]@2 ~@4",
  F: "[g4,c5,e5]@2 ~@2 [a#4,d5,f5]@2 ~@2 [a#4,d5,f5]@2 [g4,c5,e5]@3 ~@3", // C A# C
  G: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [a#4,d5]@2 [a4,c5]@2 ~@4, ~@2 f4 ~", // G F A# Am
  H: "[g4,c5,e5]@3 ~ [a#4,d5,f5]@3 ~ [a#4,d5,f5]@2 [g4,c5,e5]@2 ~@4", // C A# C
  I: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [f4,a#4,d5]@2 [f4,a4,c5]@2 ~@4", J: "[[d3,f#4,a4,d5]@11 ~@5, d2@7 ~@9]/2",
  K: "[[b3,d4,g4]@2 ~@2 [c4,f4,a4]@2 ~@2 [d4,f4,a#4]@2 ~@2 [c4,f4,a4] ~ [c4,e4,g4]@4 ~@2 [c4,f4,a4]@2 ~@2 [c4,g4,a#4]@2 ~@2 [c4,f4,a4]@2 ~@2]/2", // G F A# F C F C7 F
  L: "[[b3,d4,g4]@2 ~@2 [c4,f4,a4]@2 ~@2 [d4,f4,a#4]@2 ~@2 [c4,f4,a4] ~ [c4,e4,g4]@5 ~ [c4,f4,a4]@2 ~@2 [c4,g4,a#4]@2 ~@2 [c4,f4,a4]@2 ~@2]/2", // G F A# F C F C7 F
  M: "[[b3,d4,g4]@3 ~ [c4,f4,a4]@2 ~@2 [d4,f4,a#4]@2 ~@2 [c4,f4,a4] ~ [c4,e4,g4]@5 ~ [c4,f4,a4]@2 ~@2 [c4,g4,a#4]@2 ~@2 [c4,f4,a4]@3 ~]/2", // G F A# F C F C7 F
  N: "[a3,d4,f#4]@3 ~@3 [a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~@2", O: "~@2 [a3,d4,f#4]@2 ~@4 [a3,d4,f#4]@2 ~@2 [d2,d3]@3 ~",
  P: "[g3@6 ~@2 e3@2 g3@2 ~@2 c3@17 ~]/2", Q: "[g4,c5,e5] ~ [a#4,d5,f5] ~ [a#4,d5,f5] [g4,c5,e5] ~@2",
})).s("gm_electric_guitar_clean").gain(0.36)

// chords · piano · "A.PIANO 1"
const piano = note(`<
  ~@8 A@2 B@2 A@2 C D E@2 F@4 G H A@2 B@2 A@2 C D I@3 J K@2 L M E@2 F@4 G H N O P Q R Q S@2 E@2 F@2 ~@4 T@2 U@2 V W X Y
  ~@3 Z E@2 F@4 G H N AA P Q R Q S@2 E@2 F@2 ~@4 T@2 U@2 E@2 F@4 G H A@2 B@2 A@2 AB D I@3 J K@2 L M E@2 F@4 G H
>`.pickRestart({
  A: "[[d4,g4,b4]@3 ~@11 [c4,e4,g4]@11 ~@7]/2", B: "[[d4,g4,b4]@3 ~@7 d4 ~ [d4,g4,b4] ~ [c4,e4,g4]@13 ~@5]/2",
  C: "[a4,d5,f#5]@3 ~@3 [c5,e5,g5]@2 ~@4 [a4,d5,f#5]@2 ~@2", // D C D
  D: "~@2 [g4,e5]@2 ~@4 [f#4,a4,d5] ~@3 [e4,g4,c5] ~@3, ~@2 c5 ~@13", E: "[[d4,g4,b4]@13 ~ [c4,e4,g4]@16 ~@2]/2",
  F: "[[d4,g4,b4]@7 [c4,e4,g4]@8 ~]/2", G: "~@2 [f#4,a4,d5] ~@2 [f#4,d5] ~@2, ~@10 a4 ~@5",
  H: "[f#4,a4,d5]@2 ~@4 [f#4,d5]@2 ~@4 [f#4,a4,d5] ~@3, d#5 ~@5 a4 ~@9", // D
  I: "[[d4,g4,b4]@11 ~@3 [c4,e4,g4]@14 ~@2 [d4,g4,b4]@16 ~@2, ~@30 c4 ~@17]/3", J: "~@2 [g5,c6] ~@3 [e5,a#5]@6 ~@4",
  K: "[[d4,g4,b4]@13 ~ [c4,e4,g4]@14 ~@4]/2", L: "[a4,d5,f#5] ~@2 [c5,e5,g5] ~@2 [d5,f#5,a5] ~",
  M: "~@2 [c5,g5]@2 ~@4 [a4,d5,f#5] ~@3 [g4,c5,e5] ~@3, ~@2 e5 ~@13", // C5 D C
  N: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [f4,a#4] ~ [f4,a4,c5]@2 ~@4, ~@4 d5 ~@3", // G F A#5 F
  O: "[g4,c5,e5]@3 ~ [a#4,d5,f5]@2 ~@2 [a#4,d5,f5]@2 [g4,c5,e5]@2 ~@4", // C A# C
  P: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [a#4,d5]@2 [a4,c5]@2 ~@4, ~@2 f4 ~", // G F A# Am
  Q: "[g4,c5,e5]@3 ~ [a#4,d5,f5]@3 ~ [a#4,d5,f5]@2 [g4,c5,e5]@2 ~@4", // C A# C
  R: "[d4,g4,b4]@3 ~ [f4,a4,c5]@3 ~ [f4,a#4,d5]@2 [f4,a4,c5]@2 ~@4", S: "[[d3,f#4,a4,d5]@11 ~@5, d2@7 ~@9]/2",
  T: "[[g5,b5,d6] ~@3 [g5,b5,d6]@2 ~@4 [g5,b5,d6] ~@3 [g5,c6,e6]@12 ~@6]/2", U: "[[a5,d6,f#6]@11 ~@5]/2",
  V: "[g5,b5,d6]@13 ~@3", W: "[g5,c6,e6]@13 ~@3", X: "[g5,b5,d6]@3 ~", Y: "[e5,g5,c6]@11 ~@5",
  Z: "~@2 [a#5,b5,d6] ~ [a5,c6] ~ a#5 ~ c6@2 a#5 ~ g5@2 f5 ~", // A# Am
  AA: "[g4,c5,e5]@3 ~ [a#4,d5,f5]@2 ~@2 [a#4,d5,f5]@2 [g4,c5,e5]@3 ~@3", // C A# C
  AB: "[a4,d5,f#5]@3 ~@3 [c5,e5,g5]@2 ~@4 [a4,d5,f#5]@3 ~", // D C D
})).s("gm_piano").gain(0.42)

// drums · kick
const kick = s("bd").struct("<A@8 B@7 C B@23 C B@20 A@4 B@3 C B@28 A@4 B@3 C B@23 C B@8>".pickRestart({
  A: "x!4", B: "x!2", C: "x ~@3 x!2 ~@2",
})).gain(0.43)

// drums · rim
const rim = s("rim").struct("<~@3 A ~@2 B C ~@55 A ~@35 A ~@36>".pickRestart({
  A: "~@5 x!3", B: "x ~@2 x ~@3 x", C: "~ x!2 ~",
})).gain(0.43)

// drums · snare
const snare = s("sd").struct(`<
  ~@2 A B ~@2 C D E@15 F E@7 F E@15 F E@7 F E@4 ~@2 A B E@4 ~@8 E@7 F E@7 F E@4 ~@2 A B E@11 F E@7 F E@10 G ~@5
>`.pickRestart({
  A: "~@7 x", B: "x!8", C: "x ~@2 x ~@3 x", D: "~ x!2 ~", E: "~ x ~ x", F: "x!16", G: "~ x ~@2",
})).gain(0.43)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@130 [~@3 x] [~ x ~ x]!4 [x!16]>").gain(0.07)

// drums · hihat
const hihat = s("hh").struct("<~@8 A@52 ~@4 A@4 B@3 C B@3 C A@20 ~@4 A@36>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x!2 ~@2 x!2 ~", C: "~@2 x!3 ~@5 x ~ x ~@3",
})).gain(0.43)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@11 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@7 A B@8 ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A
  ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A
>`.pickRestart({
  A: "~@7 x", B: "~ x ~ x",
})).gain(0.43)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@6 B A ~@3 A ~@3 A ~@3 A ~ A ~ A ~@6 B A ~@3 A ~@3 A ~@3 A ~@3 A ~@10 B A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A
  ~@10 B A ~@3 A ~@3 A ~@3 A ~ A ~ A ~@6 B A ~@3 A ~@3
>`.pickRestart({
  A: "x", B: "~@5 x!2 ~",
})).gain(0.43)

// drums · shaker
const shaker = s("sh").struct("<[x!16]!8 ~@52 [x!16]!4 ~@32 [x!16]!4 ~@36>").gain(0.5)

stack(
  rock_organ, rock_organ_soft, bass, acoustic_guitar_steel, electric_guitar_clean, piano, kick, rim, snare, snare_soft,
  hihat, open_hat, crash, shaker
)

More by De Dijk