Strudelify

Morgen komt er weer een dag

De Deurzakkers

KeyF majorTempo128 bpm
0:00/0:00
// Morgen komt er weer een dag — De Deurzakkers
// 128 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 111 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(128/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · fretless bass · "FRETLESS"
const bass = note(`<
  A B C D E F C D E G H I J K L M N O P C Q R S H T U V W X Y Z AA@2 AB AC AD AE AF H I J K L M N O P C Q R S H T U V W
  X Y Z AA@2 AB AC AD AE AF H I J K L M N O P C Q R S H T U V W X Y H I J K L M N O P C Q R S H T U V W X Y V W X AG AH
>`.pickRestart({
  A: "f1@2 ~@6 c2 ~@7", B: "c2 ~@3 c2 ~@3 f1@2 ~@2 f1@2 ~@2", C: "bb1@4 d2 ~ f2 ~ bb1@4 d2 ~ f2@2",
  D: "f1@3 ~ a1@2 c2@2 f1@4 a1 ~ c2 ~", E: "c2@4 e2 ~ g2@2 c2@3 ~ e2@2 g2@2", F: "f1@3 c2@3 a1@4 g1@2 a1@2 bb1 ~",
  G: "f1@4 c2 ~ a1 ~ f1@2 ~@2 f1@2 ~@2", H: "f1@4 a1@2 c2 ~ f1@4 a1 ~ c2 ~", I: "bb1@4 d2@2 f2@2 bb1@4 d2 ~ f2@2",
  J: "c2@4 e2 ~ g2 ~ c2@4 e2 ~ g2@2", K: "f1@4 a1 ~ c2 ~ f1@2 c2@2 a1@2 c2@2", L: "f1@4 a1 ~ c2 ~ f1@4 a1 ~ c2 ~",
  M: "c2@4 e2 ~ g2@2 c2@4 e2 ~ g2@2", N: "g1@2 b1 d2 g1@2 b1 d2", O: "c2@4 e2 ~ g2@2 c2@2 bb2@2 a2@2 g2 ~",
  P: "f1@4 a1@2 c2 ~ f1@4 a1 ~ c2@2", Q: "c2@4 e2 ~ g2 ~ c2@4 e2 ~ g2 ~", R: "f1@4 a1@2 c2@2 f1@2 eb2@2 d2@2 a1 ~",
  S: "bb1@4 d2 ~ f2 ~ c2@4 e2 ~ g2@2", T: "c2@4 e2 ~ g2@2 c2@4 e2 ~ g2 ~", U: "f1@4 a1 ~ c2@2 f1@2 c2@2 a1@2 c2 ~",
  V: "f1@2 ~ a1@3 c2 ~ bb1@3 d2@3 f2@2", W: "c2@3 e2@2 ~ g2@2 f1@2 c2@2 a1@2 g1@2", X: "f1@3 a1@3 c2@2 bb1@3 d2@3 f2@2",
  Y: "c2@3 e2@3 g2@2 f1@2 c2@2 a1@2 c2 ~", Z: "f1@2 ~@2 c2@3 ~ f2@4 c2@3 ~", AA: "c2@4 g1@3 ~ c2@4 g1@3 ~",
  AB: "f2@4 c2@4 f1 ~ f1@2 g1@2 a1@2", AC: "bb1@3 ~ f1@2 ~@2 bb1@3 ~ f1@2 ~@2", AD: "f2@3 ~ c2@3 ~ f2@4 c2 ~ f2 ~",
  AE: "g1@3 ~ d2@3 ~ c2@4 g1@2 ~@2", AF: "g1@3 ~ d2@3 ~ c2@2 bb1 ~ a1 ~ g1 ~", AG: "c2@3 e2@3 g2@2 f2 ~@5 f1 ~",
  AH: "f1@3 ~@13",
})).s("gm_fretless_bass").gain(0.5).pan(1)

// other · pizzicato strings · "PIZZICATO" · F A C D C Bb A G …
const pizzicato_strings = note(`<
  [[f2,f3] ~@5 [a2,a3] ~ [c3,c4] ~@5 [d3,d4] ~]
  [[c3,c4] ~ [bb2,bb3] ~ [a2,a3] ~ [g2,g3] ~ [f2,f3] ~@7]
  ~@109
>`).s("gm_pizzicato_strings").gain(0.66).pan(0)

// chords · trumpet
const trumpet = note(`<
  ~@2 A B C D E F G H ~@7 I J K L M N O ~ P Q R Q S ~ T ~ U ~@3 V W K ~ X ~ V ~ Y J K L M N O Z AA Q R Q S ~ T ~ U ~@3 V
  W K ~ X ~ V ~ Y J K L M N O Z AA Q R Q S W K ~ X ~ V ~ Y J K L M N O Z AA Q R Q S Q R Q AB AC
>`.pickRestart({
  A: "~@6 d5 f5@6 ~@3", B: "~@6 c5 f5@6 ~@3", C: "~@6 e5 g5@5 ~@4", D: "~@5 [c5,eb5]@2 ~",
  E: "~@2 bb4 d5 ~ d5 bb4 ~ d5@3 f5 ~@4", F: "~@2 a4 c5 ~ c5 a4 ~ c5@3 f5 ~@4",
  G: "~@2 c5 e5 ~ e5 c5 ~ e5 ~ bb5!2 ~ a5 g5 ~", H: "f5 ~@5 f5!3 ~@7",
  I: "~@4 [g4,e5] ~ [g4,e5]!2 ~ [g4,e5]!2 ~ [g4,e5] ~@3", J: "~@2 a4 ~ c5@3 a4 c5 ~ a4@5 ~", K: "~@10 bb4!2 d5 f5 ~@2",
  L: "~@2 e5 ~ c5@2 ~ e5!2 ~ e5@6", M: "~@4 c5@2 ~ d5 [c5,f5]!3 ~@5", N: "~@2 d5@3 ~ f4 ~ e4@5 ~@3",
  O: "~@2 c5@3 ~ a4 ~ f4@5 ~ [a4,c5] ~", P: "~@4 a4 ~ c5 ~ [a4,c5,f5]!2 ~ [a4,c5,f5]!2 ~@3",
  Q: "[a4,c5] ~@3 [c5,f5] ~@3 [bb4,d5]@7 ~", R: "[c5,e5] ~@9 [a4,c5]!3 [c5,f5] ~@2", S: "[c5,e5] ~@9 [a4,c5,f5]!3 ~@3",
  T: "~@10 [c4,c5]!2 [e4,e5] [g4,g5] ~@2", U: "~@10 [f4,f5]!2 [a4,a5] [c5,c6] ~@2", V: "~@10 [g4,c5,e5]!3 ~@3",
  W: "~@2 [f4,a4] ~ [a4,c5]@2 ~ [f4,a4] [a4,c5] ~ [f4,a4]@5 ~", X: "~@4 [a4,c5,f5]!3 [a4,c5] ~ [a4,c5,f5]!2 ~@5",
  Y: "~@4 [g4,c5,e5] ~ [g4,c5,e5]!2 ~ [g4,c5,e5]!2 ~ [g4,c5,e5] ~@3", Z: "[c5,e5] [bb4,d5] [a4,c5] [g4,bb4]",
  AA: "[f4,a4]@4 a4 ~ c5 ~ [a4,c5,f5]!2 ~ [a4,c5,f5]!2 ~@3", AB: "[c5,e5] ~@13 [a4,c5,f5]!2", AC: "[a4,c5,f5] ~@15",
})).s("gm_trumpet").gain(0.54)

// other · trombone
const trombone = note(`<
  ~@2 A B C D E B F G ~@8 H I J@2 K L ~ M N O N P ~@4 Q@2 R S T U V W X Y Z AA H I J@2 K L ~ M N O N P ~@4 Q@2 R S T U V
  W X Y Z AA H I J@2 K L ~ M N O N P T U V W X Y Z AA H I J@2 K L ~ M N O N P N O N O ~
>`.pickRestart({
  A: "~@7 bb2@9", B: "~@6 f2@9 ~", C: "~@6 c3@9 ~", D: "f3 ~@2 g3 ~@2 a3 ~@3 c4@4 ~@2", E: "~@3 bb2@5",
  F: "~@6 c3@4 d4!2 ~ c4 bb3 ~", G: "a3 ~@5 [f3,a3]!3 ~@7", H: "~@4 a3@3 f3 a3 ~ f3@6", I: "~@2 d4@3 ~ bb3 ~ f3@7 ~",
  J: "[g3@3 ~ g3@4 f3 ~ g3@4 a3@4 f3@2 a3@3 f3 c4!3 ~@5]/2", K: "~@2 d4@2 ~@2 f3 ~ e3@5 ~@3",
  L: "~@2 c4@3 ~ a3 ~ f3@4 ~@4", M: "~@4 a2 ~ c3 ~ f3 ~ c3 ~ a2 ~ c3 ~", N: "f3 ~@3 f3 ~@5 d3@3 f3@3", O: "e3 ~@15",
  P: "e3 ~@9 f3!3 ~@3", Q: "[~@2 d3@3 ~ f3@3 ~ bb3@3 ~ d4@4 c3@2 ~@2 f3@3 ~ a3@3 ~ c4 ~]/2",
  R: "b3@4 c4 ~ d4 ~ e4@4 d4 ~ c4 ~", S: "b3@4 c4 ~ d4 ~ e4 ~ [g3,c4]!3 ~@3", T: "~@2 c3 ~ f3@3 c3 f3 ~ c3@5 ~",
  U: "~@2 d4@3 ~ bb3 ~ f3@8", V: "~@2 g3 ~@3 g3 ~ f3 ~ g3 ~@5", W: "~@2 f3 ~@3 f3 ~ c3@7 ~", X: "f3 ~@7 c3 ~@7",
  Y: "e3 ~@7 c3 ~@7", Z: "d3 ~@7 g2 ~@7", AA: "c4@4 g3@4 c4 ~ bb3 ~ a3 ~ g3 ~",
})).s("gm_trombone").gain(0.59)

// chords · accordion
const accordion = note(`<
  ~ A ~@8 B C D E@2 D F D B C D E G E D E H I H J E D@2 E K E L M B C D E@2 D F D B C D E G E D E H I H J E D@2 E K E L
  M B C D E@2 D F D B C D E G E D E H I H J B C D E@2 D F D B C D E G E D E H I H J H I H N ~
>`.pickRestart({
  A: "~@12 [f4,a4,c5,f5] ~@3", B: "~@2 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,a4,c5,eb5] ~@3 [f4,a4,c5,eb5] ~",
  C: "~@2 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~", // Bb
  D: "~@2 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~", // C
  E: "~@2 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~", // F
  F: "~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,b4,d5] ~", // G
  G: "~@2 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~", // Bb C
  H: "~@2 [f4,a4,c5] ~@3 [f4,a4,c5] ~@3 [f4,bb4,d5] ~@3 [f4,bb4,d5] ~", // F Bb
  I: "~@2 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [a4,c5,f5] ~@3 [a4,c5,f5] ~", // C F
  J: "~@2 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [a4,c5,f5]!3 ~@3", // C F
  K: "~@2 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~@3 [bb4,d5,f5] ~", // Bb
  L: "~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~", // G C
  M: "~@2 [g4,b4,d5] ~@3 [g4,b4,d5] ~@3 [c5,e5] [g4,c5,e5]!2 ~ [g4,c5,e5] ~", N: "~@2 [g4,c5,e5] ~@3 [g4,c5,e5] ~@9",
})).s("gm_accordion").gain(0.31)

// chords · steel drums · "STEEL DRUM"
const steel_drums = note(`<
  ~@2 A B C D E B C F ~@16 G H I J ~@24 G H I J ~@24 G H I J ~@16 G H I J G H I J ~
>`.pickRestart({
  A: "[bb4,d5] ~ [bb4,d5] ~ [f4,bb4] ~@5 [bb4,d5]!2 ~ [a4,c5] [g4,bb4] ~", // Bb Bb5 Bb Am Gm
  B: "[a4,c5] ~ [a4,c5] ~ [f4,a4] ~@5 [a4,c5]!2 ~ [g4,bb4] [f4,a4] ~", // Am F Am Gm F
  C: "[g4,bb4] ~ [g4,bb4] ~ [e4,g4] ~@5 [g4,bb4]!2 ~ [f4,a4] [e4,g4] ~", // Gm Em Gm F Em
  D: "[f4,a4] ~@2 [g4,bb4] ~@2 [a4,c5] ~@3 [c5,eb5]!2 eb5 [c5,eb5]!3", // F Gm Am Cm
  E: "[bb4,c5,d5] ~ [bb4,d5] ~ [f4,bb4] ~@5 [bb4,d5]!2 ~ [a4,c5] [g4,bb4] ~", F: "[f4,a4] ~@15",
  G: "[a4,c5] ~@3 [c5,f5] ~@3 d5 [bb4,d5] bb4 d5 [bb4,d5]!2 bb4!2", // Am F5 Bb
  H: "[bb4,c5,e5] ~ [bb4,d5] [a4,c5] ~ [a4,c5] [g4,bb4] ~ [f4,a4] ~ [a4,c5] ~@5", // C7 Bb Am Gm F Am
  I: "[a4,c5] ~@3 [c5,f5] ~@3 d5 [bb4,d5] bb4 d5 [bb4,d5]!2 bb4 d5", // Am F5 Bb
  J: "[bb4,c5,e5] ~ [bb4,d5] [a4,c5] ~ [a4,c5] [g4,bb4] ~ [f4,a4] ~@7", // C7 Bb Am Gm F
})).s("gm_steel_drums").gain(0.36)

// other · glockenspiel · "GLOCKENSPL"
const glockenspiel = note(`<
  ~@5 A ~@20 B C B D ~@4 E F G H I J K L ~@4 M N O P ~@4 B C B D ~@4 E F G H I J K L ~@4 M N O P ~@4 B C B D I J K L ~@4
  M N O P ~@4 B C B D B C B Q R
>`.pickRestart({
  A: "f5 ~@2 g5 ~@2 a5 ~@3 c6@4 ~@2", B: "~@10 d6 ~@2 f6@2 ~", C: "e6 ~@7", D: "e6@2 ~@8 f6!3 ~@3",
  E: "~@2 d6 ~@3 f6 ~@3 bb6@2 ~@4", F: "~@2 c6 ~@3 f6 ~@3 a6 ~@3 c7 ~", G: "b6 ~@3 c7 ~ d7 ~ e7 ~@3 d7 ~ c7 ~",
  H: "b6 ~ b6 ~ c7 ~ d7 ~ e7 ~@3 c7 ~@3", I: "c6@2 ~@2 f6@2 ~@2 c6 ~@5 c6 ~", J: "d6@3 ~ f6 ~ f6@2 d6 ~@5 d6 ~",
  K: "e6@3 ~@5 e6@2 ~@6", L: "c6@2 ~@2 f6@2 ~@2 c6 ~@7", M: "c6 ~@3 f6@2 ~@2 c6@2 ~@4 c6 ~",
  N: "d6@2 ~@2 f6 ~ f6 ~ d6@2 ~@4 d6 ~", O: "e6 ~@3 e6 ~@3", P: "~@2 a5@2 c6@3 a5 f6!3 ~@5", Q: "~@14 f6!2",
  R: "f6 ~@15",
})).s("gm_glockenspiel").gain(0.28)

// other · french horn · "FR.HORN"
const french_horn = note(`<
  ~@10 A B C@2 D E F@2 G H I@2 J K L@2 ~@3 M N O P Q R S T U A B C@2 D E F@2 G H I@2 J K L@2 ~@3 M N O P Q R S T U A B
  C@2 D E F@2 G H I@2 J K L@2 ~@4 A B C@2 D E F@2 G H I@2 J K L@2 ~@9
>`.pickRestart({
  A: "a3@3 ~ a3@3 ~ a3@5 ~ c4 ~", B: "c4@2 ~ bb3@3 bb3@8 a3 ~", C: "[g3@3 ~ g3@3 ~ f3 ~ g3@3 ~ a3@9 ~@7 c3 ~]/2",
  D: "f3@3 ~ f3@4 g3@4 a3@4", E: "g3 ~@2 c4@2 ~ c4@7 ~ c4@2", F: "[b3@4 g3@4 a3 ~ b3@3 ~ c4@17 ~]/2",
  G: "a3@3 ~ a3@2 ~@2 a3@6 c4 ~", H: "c4@2 bb3@3 ~ bb3@7 ~ a3 ~", I: "[g3@3 ~ g3@2 ~@2 f3 ~ g3@3 ~ a3@7 ~@9 f3 ~]/2",
  J: "bb3@3 ~ bb3@2 ~@2 c4@5 ~ bb3 ~", K: "bb3 ~ a3@3 ~ a3@6 ~@2 a3 ~", L: "[c4@3 ~ bb3@2 ~@2 a3 ~ g3@3 ~ f3@6 ~@12]/2",
  M: "~@14 c3 ~", N: "f3 ~ f3 ~ f3 ~ g3 ~ a3 ~@2 a3 ~@4", O: "~@15 c3", P: "~ e3!2 ~ e3 ~ f3 ~ g3 ~@2 g3 ~@4",
  Q: "~@14 f3 ~", R: "bb3 ~ bb3 ~ bb3 ~ bb3 ~ c4 ~ bb3 ~ bb3@3 ~", S: "a3 ~ a3 ~ a3 ~ g3 ~ f3@3 ~@3 a3 ~",
  T: "g3 ~ g3 ~ a3 ~ b3 ~ c4 ~ c4 ~ b3 ~ a3 ~", U: "g3 ~ g3 ~ a3 ~ b3 ~ c4 ~@7",
})).s("gm_french_horn").gain(0.48)

// drums · kick
const kick = s("bd").struct("<[x!2] [x!4] [x!2]!108 x>").gain(0.31)

// drums · snare
const snare = s("sd").struct("<[x ~ x!3 ~ x ~ x ~ x!3 ~ x ~] [x ~ x!3 ~ x ~@9] [~ x ~ x]!107 [~@4 x ~@9 x!2] ~>")
  .gain(0.36)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~ [~@8 x!8] x ~@108>").gain(0.18)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@2 [x!4]!107 [x!3 ~] ~>").gain(0.4)

// drums · open hat
const open_hat = s("oh").struct("<~@2 [~ x ~ x ~ x ~ x]!107 [~ x ~ x ~@4] ~>").gain(0.4)

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

// drums · bongos
const bongos = s("bongo:4").struct("<~@2 A@3 B C A@22 D A@3 E A@23 D A@3 E A@23 D A@19 D A@3 F ~>".pickRestart({
  A: "~@4 x!4 ~@4 x!4", B: "x!16", C: "x ~@3 x!4 ~@4 x!4", D: "~@4 x!3 ~@3 x!3 ~@3", E: "~@4 x!6 ~ x ~@4",
  F: "~@4 x!3 ~@9",
})).gain(0.82)

// drums · bongos
const bongos_2 = s("bongo:18").struct(`<
  ~@10 A B A B A B A B A B A B A B A B A@4 ~@8 A B A B A B A B A B A B A B A B A@4 ~@8 A B A B A B A B A B A B A B A B
  A@5 B A B A B A B A B A B A B A B A@8 ~
>`.pickRestart({
  A: "x!4 ~@4 x!4 ~@4", B: "x!4 ~@4 x!2 ~ x ~@4",
})).gain(0.82)

// drums · congas
const congas = s("conga:13").struct("<~@10 A@19 B ~@8 A@19 B ~@8 A@19 B A@19 B A@3 C ~>".pickRestart({
  A: "~@4 x!4 ~@4 x!4", B: "~@4 x!3 ~@3 x!3 ~@3", C: "~@4 x!3 ~@9",
})).gain(1.15)

// drums · congas
const congas_2 = s("conga:33").struct(`<
  ~@2 A@9 B A B A B A B A B A B A B A B A@13 B A B A B A B A B A B A B A B A@13 B A B A B A B A B A B A B A B A@5 B A B
  A B A B A B A B A B A B A@7 C ~
>`.pickRestart({
  A: "x!4 ~@4 x!4 ~@4", B: "x!4 ~@4 x!2 ~ x ~@4", C: "x!4 ~@4 x ~@7",
})).gain(1.15)

// drums · triangle
const triangle = s("triangles:35").struct("<~@2 [x!2]!28 ~@8 [x!2]!20 ~@8 [x!2]!44 ~>").gain(3.12)

// drums · shaker
const shaker = s("sh").struct("<~@2 [x!16]!107 [x!9 ~@7] ~>").gain(0.31)

stack(
  bass, pizzicato_strings, trumpet, trombone, accordion, steel_drums, glockenspiel, french_horn, kick, snare,
  snare_soft, pedal_hat, open_hat, crash, bongos, bongos_2, congas, congas_2, triangle, shaker
)

More by De Deurzakkers