Strudelify

Ein Song namens Schunder

Die Arzte

KeyC majorTempo173 bpm
0:00/0:00
// Ein Song namens Schunder — Die Arzte
// 173 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 132 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(173/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.

// bass · fretless bass · "FRETLESS"
const bass = note(`<
  ~@15 A@2 B C D E B C D F G H G I G J K L M N M N O P Q R S T U R S T U V@3 ~@6 A@2 B C D E B C D F G H G I G J K L M N
  M N O P Q R S T U R S T U R S T U R S T U R S T U R S T U W ~@6 X R S T U R S T U R S T U R S T U Y@2
>`.pickRestart({
  A: "[g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ a1@6 a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~]/2",
  B: "f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~ f1 ~", C: "c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
  D: "g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1 ~ g1@2", E: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", F: "c2@15 ~", G: "g1",
  H: "f1", I: "c2", J: "f1@15 ~", K: "g1@4 g1@3 ~ g1@3 ~ g1@2 e1@2", L: "f1 ~ f1 ~ f1@3 ~ f1@7 ~",
  M: "g1@7 ~ g1@6 e1@2", N: "f1 ~ f1 ~ f1@4 f1@7 ~", O: "g1@7 ~ g1@3 ~ g1@3 ~",
  P: "g1 ~ g1 ~ d2 ~ d2 ~ g2 ~ g2 ~ b2 ~ b2 ~", Q: "b2@3 ~@13", R: "c1 c2 g1 e1", S: "g1 d2 b1 g1", T: "d1 a1 f1 d1",
  U: "f1 c2 a1 f1", V: "[c2@23 ~ c2@2 b1@4 a1@6 ~@12]/3", W: "c1 ~@3", X: "~@8 a1!4 g1 ~@3", Y: "[c2 c2@11 ~@4]/2",
})).s("gm_fretless_bass").gain(0.54)

// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
  ~@40 A B C D A B C E ~@34 A B C D A B C E A B C D A B C E A B C D A B C E ~@8 A B C D A B C E A B C D A B C F ~@2
>`.pickRestart({
  A: "~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2", // C
  B: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]", C: "~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4] ~ [a3,d4,f4]",
  D: "~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4]!3", // F
  E: "~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4] ~", // F
  F: "[a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~ [a3,c4,f4] ~", // F
})).s("gm_acoustic_guitar_steel").gain(0.36).pan(0.3)

// other · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
  ~@15 A@2 B C D E B F G H I J I K I L M N O N O N P Q R ~@17 A@2 B C D E B F G H I J I K I L M N O N O N P Q R ~@31 S
  ~@18
>`.pickRestart({
  A: "[g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ a2@6 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~]/2",
  B: "f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~ f2 ~", C: "c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3 ~ c3!2",
  D: "g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2 ~ g2@2", E: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~",
  F: "c3 ~ c3 ~ c3 ~ c3 ~ c3!4 c3@2 c3 ~", G: "g2 ~ g2 ~ g2 ~ g2 ~ g2!4 g2@2 g2@2", H: "c3@15 ~", I: "g2", J: "f2",
  K: "c3", L: "f2@15 ~", M: "g2@4 g2@3 ~ g2@3 ~ g2@4", N: "f2!2 f2@2 f2@4", O: "g2@4 g2@3 e2", P: "g2@2 g2!2",
  Q: "[g2,g3]!2 [d3,d4]!2 [g3,g4]!2 [b3,b4]!2", R: "[b3,b4,d5] ~@7", S: "~@8 a2!4 g2 ~@3",
})).s("gm_electric_guitar_muted").gain(0.33).pan(0.3)

// chords · overdriven guitar · "OVERDRIVE"
const overdriven_guitar = note(`<
  ~@7 A@2 ~@2 A@2 ~@2 B@2 C D E F G H E I J K L I M K N O P O P O Q R S ~@9 A@2 ~@2 A@2 ~@2 B@2 C D E F G H E I J K L I
  M K N O P O P O Q R S T U V W T U V X Y Z AA AB AC Z AA AD AE AF AG AH AI AJ AG AH AK ~@7 Y Z AA AB AC Z AA AD ~@8
  AL@2
>`.pickRestart({
  A: "[~@7 e4 c3@2 b2@3 ~ [a2,e3]@10 ~@8, ~@4 g3@3 ~@9]/2", B: "[~@7 e4 c3@2 b2@3 ~ [a2,e3]@18, ~@4 g3@3 ~@9]/2",
  C: "[f2,c3]", D: "[c3,g3]@5 [c3,g3]@3", E: "[g2,d3]@3 [g2,d3]@3 [g2,d3]@2", F: "[a2,e3]@3 [a2,e3]@3 [a2,e3]@2",
  G: "[f2,c3]@3 [f2,c3]@3 [f2,c3]@2", H: "[c3,g3]@3 [c3,g3]@3 [c3,g3]@2", I: "[c4,e4,g4]", J: "[g3,b3,d4]",
  K: "[f3,a3,c4]", L: "~@3 e4 f4 e4 d4 c4, [g3,b3], d4@3 ~", M: "[f3,g3,b3,d4]",
  N: "~@3 f4@2 e4 d4 c4, [g3,b3], d4@3 ~", O: "~ [f3,a3,c4,f4]@3", P: "~@4 g2@3 ~ g2@3 ~ g2@4, [g3,b3,d4]",
  Q: "~@4 g2@3 ~ g2@3 ~ g2@4, [g3,b3,d4]@15 ~", // G
  R: "[g2,d3] ~ [g2,d3] ~ [d3,a3] ~ [d3,a3] ~ [g3,d4] ~ [g3,d4] ~ [b3,f#4] ~ [b3,f#4] ~", S: "[b3,g4]@7 ~@9",
  T: "e3@2 e3@2 e3@2 e3!2", U: "e3 d3@2 d3@2 d3@2 c3", V: "d3@2 d3@2 d3@2 d3 e3", W: "d3 c3@2 f2@5",
  X: "d3@2 c3@4 f2@5 ~@5", Y: "[g3,c4,e4]", Z: "[g3,b3,d4]@15 ~", AA: "[f3,a3,d4]@15 ~", AB: "[f3,a3]@7 ~, c4",
  AC: "[g3,c4,e4]@15 ~", AD: "[f3,a3,c4]@15 ~",
  AE: "[g3,c4,e4] ~ [g3,c4,e4]!5 ~ [g3,c4,e4]!3 ~ [g3,c4,e4] ~ [g3,c4,e4] ~", // C
  AF: "[g3,b3,d4] ~ [g3,b3,d4]!3 ~ [g3,b3,d4]!2 [b3,d4] [g3,b3,d4] ~@2 [g3,b3,d4] ~ [g3,b3,d4]!2", // G Bm G
  AG: "[f3,a3,d4] ~ [f3,a3,d4]!2 [f3,a3] ~ [f3,a3,d4]!3 ~ [f3,a3,d4]!5 ~", // Dm F Dm
  AH: "[f3,a3,c4] ~ [f3,a3,c4]!3 ~ [f3,a3,c4]!3 ~ [f3,a3,c4]!6", // F
  AI: "[g3,c4,e4] ~ [g3,c4,e4] ~ g3 ~ [g3,c4,e4]!3 ~ [g3,c4,e4]!5 ~, ~@3 [g3,c4,e4]@2 ~@11", // C
  AJ: "[g3,b3,d4] ~ [g3,b3,d4]!3 ~ [g3,b3,d4]!5 ~ [g3,b3,d4]!4", AK: "[g3,c4,e4]@3 ~@13", AL: "[[c3,g3,c4]@7 ~]/2",
})).s("gm_overdriven_guitar").gain(0.4).pan(0.6)

// other · trumpet
const trumpet = note("<~@40 A B C D A B C D E@3 ~@71 F G H I F G H I J ~>".pickRestart({
  A: "e4@3 ~ e4@3 ~ e4@3 ~ e4 ~ e4 ~", B: "e4 ~ d4@3 ~ d4@3 ~ d4@3 ~ c4 ~", C: "d4@2 ~@2 d4@3 ~ d4@3 ~ d4 ~ e4 ~",
  D: "d4 ~ c4@3 ~ f3@5 ~@5", E: "[c5@23 ~ c6 ~ b5@2 ~@2 a5@6 ~@12]/3", F: "e5@3 ~ e5@3 ~ e5@3 ~ e5 ~ e5 ~",
  G: "e5 ~ d5@3 ~ d5@3 ~ d5@3 ~ c5 ~", H: "d5@2 ~@2 d5@3 ~ d5@3 ~ d5 ~ e5 ~", I: "d5 ~ c5@3 ~ f4@5 ~@5",
  J: "c5 ~ c5@6 ~@8",
})).s("gm_trumpet").gain(0.49).pan(0.2)

// other · alto sax
const alto_sax = note("<~@40 A B C D A B C D E@3 ~@31 A B C D A B C D ~@32 A B C D A B C D ~@2>".pickRestart({
  A: "e3@3 ~ e3@3 ~ e3@3 ~ e3 ~ e3 ~", B: "e3 ~ d3@3 ~ d3@3 ~ d3@3 ~ c3 ~", C: "d3@2 ~@2 d3@3 ~ d3@3 ~ d3 ~ e3 ~",
  D: "d3 ~ c3@3 ~ f2@5 ~@5", E: "[c4@23 ~ c5 ~ b4@2 ~@2 a4@6 ~@12]/3",
})).s("gm_alto_sax").gain(0.48).pan(0.7)

// other · trombone
const trombone = note("<~@40 A B C D A B C D E@3 ~@71 A B C D A B C D F ~>".pickRestart({
  A: "[e2,e3]@3 ~ [e2,e3]@3 ~ [e2,e3]@3 ~ [e2,e3] ~ [e2,e3] ~", // E
  B: "[e2,e3] ~ [d2,d3]@3 ~ [d2,d3]@3 ~ [d2,d3]@3 ~ [c2,c3] ~", // E D C
  C: "[d2,d3]@2 ~@2 [d2,d3]@3 ~ [d2,d3]@3 ~ [d2,d3] ~ [e2,e3] ~", D: "[d2,d3] ~ [c2,c3]@3 ~ [f1,f2]@5 ~@5",
  E: "[[c3,c4]@23 ~ [c3,c4] ~ [b2,b3]@2 ~@2 [a2,a3]@6 ~@12]/3", F: "c3 c3@3 ~@4",
})).s("gm_trombone").gain(0.45).pan(0.6)

// other · guitar harmonics · "GTHARMONIC"
const guitar_harmonics = note("<~@32 A B A C@2 D@2 ~@35 A B A C@2 D@2 ~@49 E@2>".pickRestart({
  A: "~ f4@3", B: "d4", C: "[d4@19 f4@13]/2", D: "[d4@9 ~@7]/2", E: "[~@13 c5@14 ~@5]/2",
})).s("gm_guitar_harmonics").gain(0.29).pan(0.7)

// drums · kick
const kick = s("bd").struct(`<
  A@7 B C D E F C D E B G H@2 I H@4 J@8 K H K H K H L M J@8 E F C D E F C D E B G H@2 I H@4 J@8 K H K H K H L M J@24 N@7
  O J@15 N P ~
>`.pickRestart({
  A: "x ~ x ~ x!3 ~", B: "x ~ x ~ x!2 ~ x", C: "~@2 x ~@4 x", D: "x ~ x ~@4 x", E: "x!3 ~@4 x", F: "x ~@3 x!2 ~ x",
  G: "~ x", H: "x!2", I: "x ~@3 x ~@2 x", J: "x ~@2 x!2 ~@2 x", K: "~ x!2 ~ x ~@3", L: "x!8", M: "x", N: "x!4",
  O: "x!2 ~@2 x ~ x ~", P: "x!2 ~@6",
})).gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  ~@7 A B C B D E F B G H@2 I H J K I L M N O P Q R S T U V H W H J X Y Z AA AB AC AD AE AF AG B D B C B D E F B G H@2 I
  H J K I L AH AI AJ AI AK AL AM AN U V H W H J X Y AM AO AP AQ AI AR AS AT AU AK AT AV AW AX AY AZ AK@3 BA AK@3 BB ~@7
  BC AU AK AT AV AW AX AY AZ AK@3 BA AK@3 BD Y ~
>`.pickRestart({
  A: "~@7 x ~@8", B: "~@4 x!2 ~@2", C: "~@3 x!3 ~@2", D: "~@6 x!3 ~@7", E: "~ x ~ x!2 ~@3", F: "~ x", G: "~@7 x!2 ~@7",
  H: "~ x ~ x", I: "~@4 x ~@7 x ~ x!2", J: "~@2 x!2 ~@2 x ~", K: "~ x!2 ~@3 x ~", L: "~@4 x ~@7 x!4",
  M: "x!5 ~ x ~ x ~ x!3 ~ x ~", N: "x ~ x ~ x!3 ~ x ~ x ~ x!3 ~", O: "x!3 ~ x ~ x ~ x ~ x!3 ~ x!2",
  P: "x ~ x!3 ~ x ~ x ~ x!6", Q: "x ~ x ~ x ~ x!3 ~ x!3 ~ x ~", R: "x ~ x ~ x ~ x!3 ~ x!3 ~ x!2",
  S: "x ~ x ~ x!3 ~ x!3 ~ x ~ x ~", T: "x!5 ~ x!5 ~ x!4", U: "x!2 ~ x", V: "~@2 x ~@2 x!2 ~", W: "~ x!2 ~@3 x!2",
  X: "x!4", Y: "x", Z: "x!3 ~ x ~ x ~ x!3 ~ x ~ x!2", AA: "x ~ x ~ x ~ x!3 ~ x ~ x!3 ~",
  AB: "x ~ x ~ x ~ x!3 ~ x ~ x!4", AC: "x ~ x ~ x ~ x ~ x!3 ~ x!4", AD: "x!3 ~ x ~ x!3 ~ x ~ x!3 ~",
  AE: "x ~ x ~ x!3 ~ x ~ x ~ x!4", AF: "x ~ x ~ x!3 ~ x!5 ~ x ~", AG: "x ~ x ~ x ~ x ~ x ~ x!6",
  AH: "x ~ x ~ x ~ x ~ x!3 ~ x ~ x ~", AI: "x ~ x!3 ~ x ~ x ~ x!3 ~ x ~", AJ: "x ~ x ~ x!3 ~ x!3 ~ x ~ x!2", AK: "x!8",
  AL: "x ~ x ~ x ~ x!3 ~ x ~ x ~ x!2", AM: "x!3 ~ x!3 ~ x ~ x ~ x ~ x!2", AN: "x ~ x ~ x ~ x!3 ~ x!6",
  AO: "x!3 ~ x!5 ~ x!5 ~", AP: "x ~ x ~ x!5 ~ x!5 ~", AQ: "x!3 ~ x!3 ~ x ~ x ~ x!4", AR: "x!3 ~ x!3 ~ x!3 ~ x!3 ~",
  AS: "x ~ x ~ x!5 ~ x!6", AT: "x!3 ~ x!3 ~ x!3 ~ x!4", AU: "x ~ x!5 ~ x!3 ~ x ~ x ~",
  AV: "x!3 ~ x ~ x ~ x ~ x ~ x ~ x!2", AW: "x!3 ~ x!3 ~ x!7 ~", AX: "x!3 ~ x!3 ~ x!3 ~ x ~ x ~",
  AY: "x ~ x ~ x ~ x ~ x ~ x ~ x!3 ~", AZ: "x ~ x!5 ~ x!8", BA: "x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!2",
  BB: "x ~ x ~ x ~ x ~ x!8", BC: "~@8 x!5 ~@3", BD: "x ~ x!3 ~ x!3 ~ x!3 ~ x!2",
})).gain(0.27)

// drums · low tom
const low_tom = s("lt").struct(`<
  A@7 B ~@3 C ~@3 D ~@7 E ~@12 F ~@12 C ~@3 C ~@3 D ~@7 E ~@12 F ~@12 G ~ H I ~ H ~@2 G J H I G@2 ~@10 G ~ H I ~ H ~@2 G
  J H I G@2 ~@3
>`.pickRestart({
  A: "x ~ x ~ x ~ x!2", B: "x ~ x ~ x ~@2 x", C: "~@5 x ~ x", D: "~@7 x", E: "~@11 x ~@4", F: "~ x ~@6", G: "x!2",
  H: "~ x", I: "x", J: "x ~@4 x!2 ~",
})).gain(0.38)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  A B A B A B A B ~@7 C ~@6 D E ~@8 F ~ G ~ H ~@20 C ~@6 D E ~@8 F ~ G ~ H ~@11 I J ~ K ~@2 L ~ M K N K I O L ~@9 I J ~
  K ~@2 L ~ M K N K I O L ~@3
>`.pickRestart({
  A: "x ~ x!3 ~ x ~@3 x ~@5", B: "~@2 x!3 ~ x ~ x ~ x ~@5", C: "~@5 x ~@2", D: "~@10 x!2 ~@4", E: "~@9 x!2 ~@5",
  F: "~ x ~@2", G: "x!2 ~@6", H: "x", I: "~@13 x!2 ~", J: "~@5 x!2 ~@9", K: "~@5 x!2 ~@6 x!3", L: "~@4 x!2 ~@10",
  M: "~@6 x!3 ~@4 x!2 ~", N: "~@9 x ~@6", O: "~@5 x!3 ~@5 x!2 ~",
})).gain(0.33)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@8 A@3 B C A@2 B C A@7 D@7 E F A F A F A@2 ~ D@7 E A B A@3 B C A@2 B C A@7 D@7 E F A F A F A@2 ~ D@7 E D@7 E D@7 E
  ~@8 D@7 E D@7 E ~@2
>`.pickRestart({
  A: "x!4", B: "x!2 ~@2", C: "~ x!3", D: "~ x ~ x ~ x ~ x", E: "~ x ~ x ~ x ~@2", F: "~@2 x!2",
})).gain(0.22)

// drums · high tom
const high_tom = s("ht").struct(`<
  A B A B A B A B ~@14 C@2 ~@8 D ~@2 E ~@28 C@2 ~@8 D ~@2 E ~@12 F G ~ H ~@2 I ~ H@2 C H F H I ~@9 F G ~ H ~@2 I ~ H@2 C
  H F H I ~@3
>`.pickRestart({
  A: "~@4 x!2 ~@2", B: "x!2 ~@8 x ~@5", C: "~ x", D: "~ x ~@6", E: "~@7 x", F: "~@3 x", G: "~ x ~@2", H: "~ x ~ x",
  I: "~@3 x ~@4",
})).gain(0.38)

// drums · high tom · soft notes
const high_tom_soft = s("ht").struct("<~@22 A ~@10 B ~@30 A ~@10 B ~@22 C ~@23 C ~@9>".pickRestart({
  A: "~@9 x ~@6", B: "~@7 x", C: "~@5 x ~@10",
})).gain(0.27)

// drums · crash
const crash = s("cr").struct(`<
  ~@7 A ~@3 A ~@3 A ~@16 B ~ B ~ B ~@2 C ~@9 A ~@3 A ~@3 A ~@16 B ~ B ~ B ~@2 C ~@8 C@17 ~@7 C@15 D C ~
>`.pickRestart({
  A: "~@4 x!2 ~ x", B: "~ x ~@2", C: "x", D: "x!4",
})).gain(0.27)

stack(
  bass, acoustic_guitar_steel, electric_guitar_muted, overdriven_guitar, trumpet, alto_sax, trombone, guitar_harmonics,
  kick, snare, low_tom, mid_tom, open_hat, high_tom, high_tom_soft, crash
)

More by Die Arzte