Strudelify

Clarinet Polka

Evans Bill

KeyC majorTempo120 bpm
0:00/0:00
// Clarinet Polka — Evans Bill
// 120 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: duplicate parts dropped: ch 1 "A.PIANO 1" piano (copy of ch 3 "TUBA" tuba); ch 3 "TUBA" tuba (copy of ch 5 "ACOU BASS" acoustic bass); ch 6 "CLARINET" clarinet (copy of ch 4 "TRUMPET" trumpet); ch 8 "FLUTE" flute (copy of ch 4 "TRUMPET" trumpet)
// note: Full arrangement: all 25 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · piano · "A.PIANO 1"
const piano = note("<~ A B C D A B C E F G A H F G A I A B C D A B C J>".pickRestart({
  A: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]", B: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]",
  C: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]", D: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4]",
  E: "~ [b3,d4,g4] ~ [b3,d4,g4] ~ [c4,e4,g4]!2 ~", F: "~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,f4,a4]",
  G: "~ [c4,f4,a4] ~ [c4,f4,a4] ~ [c4,e4,g4] ~ [c4,e4,g4]", H: "~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,f4,a4] ~ [c4,f4,a4]",
  I: "c4 [c4,d4] b3 c4 c#4 d4 d#4 e4 f4 ~ c4 ~ f3@2 ~@2", J: "~ [b3,d4,g4] ~ [b3,d4,g4] [c4,e4,g4]!3 ~",
})).s("gm_piano").gain(0.19).pan(0.8)

// bass · acoustic bass · "ACOU BASS"
const bass = note("<~ A B C D E F G H I J K L M N O P Q R S T A U V W>".pickRestart({
  A: "c2 ~@3 g1 ~@3 c2 ~@3 g1 ~@3", B: "c2 ~@2 c2 b1 ~ a1 ~ g1 ~@3 d2 ~@3", C: "g1 ~@3 d2@2 ~@2 g1@2 ~@2 d2 ~@3",
  D: "g1@2 ~@2 d2@2 ~@2 c2 ~@3 g1@2 ~@2", E: "c2 ~@3 g1@2 ~@2 c2 ~@3 g1@2 ~@2", F: "c2@2 ~@2 c2 ~@3 g1 ~@3 d2 ~@3",
  G: "g1 ~@3 d2@2 ~@2 g1@2 ~@2 d2@2 ~@2", H: "g1@4 a1 ~ b1 ~ c2 ~ g1 ~ c2 ~@3", I: "f1 ~@3 c2 ~@3 f1@2 ~@2 c2 ~@3",
  J: "f1 ~@3 c2@2 ~@2 c2 ~@3 g1@2 ~@2", K: "c2@2 ~@2 g1@2 ~@2 c2@2 ~@2 g2 ~@3", L: "c2 ~@3 g2@2 ~@2 f2 ~@3 c2@2 ~@2",
  M: "f1 ~ c2 ~ f1 ~ c2 ~", N: "f1 ~@3 c2@2 ~@2 c2 ~@3 g2@2 ~@2", O: "c2 ~ g1 ~ c2 ~ g1 ~",
  P: "c2@2 ~@2 d2 ~ e2 ~ f2 ~ c2 ~ f1@2 ~@2", Q: "c2 ~@3 g1 ~@3 c2 ~@3 g1@2 ~@2", R: "c2@2 ~@2 b1 ~ a1 ~ g1 ~@3 d2 ~@3",
  S: "g1 ~@3 d2 ~@3 g1 ~@3 d2 ~@3", T: "g1 ~@3 a1 ~ b1 ~ c2 ~@3 g1 ~@3", U: "c2 ~@3 c2@2 ~@2 g1 ~@3 d2@2 ~@2",
  V: "g1 ~@3 d2@2 ~@2 g1 ~@3 d2@2 ~@2", W: "g1 ~@3 a1 ~ b1 ~ c2 ~ g1 ~ c2@2 ~@2",
})).s("gm_acoustic_bass").gain(0.4).pan(0.7)

// other · tenor sax
const tenor_sax = note("<A B C D E B F G H I J K L I M K N B C D E B F G H>".pickRestart({
  A: "~@14 g3 f3", B: "e3 g3 c4 e4 g3 c4 e4 g4 e4 ~ e4 ~ e4 ~ e4 g4", C: "e4 ~ e4 g4 e4 ~ g4!3 f4 d4 b3 g3 ~ g3 f#3",
  D: "f3 g3 b3 d4 f4 d4 f4 g4 b4 ~ b4 ~ b4 ~ a4 g4", E: "b4 ~ a4 g4 b4 ~ a4 g4 a4 g4 e4 c4 g3@2 g3 f3",
  F: "e4 ~ e4 g4 e4@2 g4!3 f4 d4 b3 g3 ~ g3 f#3", G: "f3 g3 b3 d4 f4 d4 f4 g4 b4 ~ b4 ~ b4@2 a4 g#4",
  H: "g4@2 b4 a4 g4 f4 e4 d4 c4 ~ g3 ~ c4 ~@3", I: "c5@5 a4 f4 d4 c4@5 ~ c4 a#3",
  J: "a3 c4 f4 c4 ~ c4 f4 c4 a#3 c4 e4 c4 a#3@2 a#4 ~, ~@2 a3 ~@5", K: "a#4@5 g4 e4 d4 c4@6 e4 d4",
  L: "c4@2 e4 d4 c4@2 a#3@2 a3@2 c4@2 f4@2 a4 ~", M: "a3 c4 f4 c4 a3 c4 f4 c4 a#3 c4 e4 c4 a#3 ~ a#4 ~",
  N: "c4@2 e4 d4 c4 a#3 a3 g3 f3 ~ c4 ~ f4@2 g3 f3",
})).s("gm_tenor_sax").gain(0.4).pan(0.4)

// drums · kick
const kick = s("bd").struct("<~ [x!4]!24>").gain(0.29)

// drums · snare
const snare = s("sd").struct(`<
  ~
  [~ x ~ x ~ x ~ x]!7
  [~ x ~ x ~ x!2 ~]
  [~ x ~ x ~ x ~ x]!7
  [~ x ~ x ~ x!2 ~]
  [~ x ~ x ~ x ~ x]!7
  [~ x ~ x ~ x!2 ~]
>`).gain(0.29)

// drums · crash
const crash = s("cr").struct("<~ A ~@7 A ~ A ~ A ~ A ~ A ~@7>".pickRestart({
  A: "x",
})).gain(0.29)

// drums · tambourine
const tambourine = s("tb").struct("<~ [x!8]!7 [x!7 ~] [x!8]!7 [x!7 ~] [x!8]!7 [x!7 ~]>").gain(0.25)

stack(piano, bass, tenor_sax, kick, snare, crash, tambourine)

More by Evans Bill