Strudelify

Deal with the Devil

Tia

KeyB♭ majorTempo142 bpm
0:00/0:00
// Deal with the Devil — Tia
// 142 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Transcription provider: pdmx. https://musescore.com/score/5765320; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 55 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(142/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.

// other · cello · "Violoncello"
const cello = note("<A B C D ~@4 E ~@16 F G H I J K ~ L M@2 ~@16 N@2 O P>".pickRestart({
  A: "d4 c4 ~ bb3 c4 bb3 ~ a3 f3 eb3 ~ d3 d4@4", B: "c4!2 ~ a3 d4@2 c4 c4@2 ~ a3 [a3,d4] d4 [a3,d4] a3 d4",
  C: "c4!2 ~ a3 d4@2 c4!2 ~ a3 d4 ~ c4@4", D: "g4 f4 ~ d4 ~ db4 ~ c4 ~ bb3 ~ g3 f3@2 gb3@2",
  E: "g4@2 g4@2 g4!3 gb4@2 gb4@2 gb4 gb4@3 ~", F: "~@4 bb3@4 a3@3 a3@3 g3@2", G: "~@2 f3@4 d3@2 f3@3 g3@5",
  H: "~@2 eb3@2 eb3@2 eb3@2 d3@3 d3@3 d3@2", I: "~@2 bb2@2 bb2@2 bb2@2 c3@3 d3@5", J: "~@4 bb2@3 ~@3 a2@3 a2 ~@2",
  K: "~@4 c3@3 ~@3 bb2@3 bb2 ~@2", L: "ab3 ~ ab3 ~ ab3!3 g3 ~ g3 ~ g3 g3@2 ~@2",
  M: "a2!2 ~ a2!2 ~ a2!2 ~ a2!2 ~ a2 a2@3", N: "[d3@4 ~@3 f3@4 ~@4 g3@5 ~@5 g3 ~@2 g3@2 ~@2]/2", O: "d3@4 ~@3 f3@4 ~@5",
  P: "ab3!2 ~ ab3!3 ~ ab3 ~@8",
})).s("gm_cello").gain(0.3)

// other · cello · "Violoncello" · soft notes
const cello_soft = note("<~@35 A B C D E F G H A B C D E F G H ~@4>".pickRestart({
  A: "~@2 f3@2 ~ f3@2 ~ a3@3 a3 ~@2 a3 ~", B: "~@2 bb3@2 ~ bb3@2 ~ f3@3 f3 ~@2 f3 ~",
  C: "~@2 bb3@2 ~ bb3@2 ~ bb3@3 bb3 ~@2 bb3 ~", D: "b2@3 c3@3 d3@2 ~@2 e3@4 ~@2",
  E: "~@2 f3@2 f3@2 ~@2 a3@3 a3 ~@2 a3 ~", F: "~@2 d3@2 ~ d3@2 ~ eb3@3 eb3 ~@2 eb3 ~",
  G: "~@2 c3@2 ~ c3@2 ~ c3@3 c3 ~@2 c3 ~", H: "eb3!2 ~ eb3!3 ~ eb3 ~@3 a3@4 ~",
})).s("gm_cello").gain(0.2)

// other · cello · "Violoncello"
const cello_2 = note("<A B C ~ D ~@12 E@7 F ~@3 G H ~ I J ~ K L@4 M N@2 O L@4 M N@2 O P@2 Q R>".pickRestart({
  A: "f3 eb3 ~ d3 eb3 d3 ~ c3 d3 c3 ~ bb2 d3@4", B: "gb3!2 ~ gb3 c4@2 gb3 gb3@2 ~ gb3 [d3,a3] d3 [d3,a3] a3 d3",
  C: "gb3!2 ~ gb3 c4@2 gb3!2 ~ gb3 c4 ~ gb3@4", D: "g3@2 bb3 c4 f4 e4@2 eb4 d4@2 f4 c4 f3@2 gb3@2",
  E: "d4 db4 ~ g4 ~@2 d4 db4 ~ g4 ~@2 d4 db4 ~@2", F: "g2@2 g2@2 g2!3 gb2@2 gb2@2 gb2 gb2@4",
  G: "a3 ~ ab3 ~ g3 ~ gb3 f3 ~ d3 ~@2 f3@2 d3@2", H: "d4 ~@3", I: "~ f3 gb3 g3",
  J: "g3 ~ g3 ~ g3!3 ab3 ~ ab3 ~ ab3 ab3@2 ~@2", K: "a3!2 ~@4 a3!2 ~@4 db4@4",
  L: "[~@2 d4@2 c4 a3@2 g3@3 a3@2 g3 f3@2 d3@3 f3@2 g3 f3@2 g3 f3@2 g3 f3@2 g3@2 g3@3 f3@2 g3 f3@2 g3 f3@2 g3 f3@2 a3@2 db4@3 ~@2 db4 a3@2 db4@3 a3@4 ~@2]/4",
  M: "~@2 d4@2 c4 a3@2 g3@3 a3@2 g3 f3@2 a3", N: "[~@2 a3@2 db4 a3@2 g3@3 f3@2 d3 f3@2 ab3@9 f3@4 ~@2 c3@2]/2",
  O: "a3!2 ~ a3!3 ~ a3 c4@2 a3@6", P: "[f3@4 ~@3 a3@4 ~@4 ab3@5 ~@5 g3 ~@2 g3@2 ~@2]/2", Q: "f3@4 ~@3 a3@4 ~@5",
  R: "db4!2 ~ db4!3 ~ db4 ~@8",
})).s("gm_cello").gain(0.4)

// other · cello · "Violoncello"
const cello_3 = note(`<
  ~ A B C D E F E G H I J I K I L M N ~@7 O P Q R S T ~ U ~@2 V W X Y Z AA AB AC V W X Y Z AA AB AC AD AE AF AG
>`.pickRestart({
  A: "d2!2 ~@4 d2 d2@2 ~@7", B: "d2!2 ~@4 d2!2 ~@4 d2@4", C: "g2", D: "g2 ~@7",
  E: "g2@2 g2!2 db3@2 bb2@2 ~ db3@2 bb2 g2@2 db3@2", F: "bb2@2 g2!2 db3@2 bb2@2 ~ d2@2 d2 d2@2 d2@2",
  G: "g2@2 g2@2 g2!3 gb2@2 gb2@2 gb2 gb2@3 ~", H: "gb2 ~ f2 ~ e2 ~ eb2 ~ c2 ~ eb2 ~ e2 ~ f2 ~",
  I: "f2 ~ g2 ~ a2 ~ b2 ~ bb2 ~ g2 ~ e2 ~ a2 ~", J: "f2 ~ e2 ~ eb2 ~ d2 ~ a2 ~ eb2 ~ d2 ~ f2 ~",
  K: "a2 ~ f2 ~ d2 ~ f2 ~ a2 ~ f2 ~ d2 ~ f2 ~", L: "f2 ~ e2 ~ d2 ~ c2 ~ a2 ~ f2 ~ c2 ~ f2 ~", M: "~@9 ab4@2 ~ ab4@4",
  N: "g4 ~@3", O: "~ bb2 a2@2", P: "~ a2 g2@2", Q: "~ g2 gb2@2", R: "~ g2 a2@2", S: "~@4 bb3@3 ~@3 a3@3 a3 ~@2",
  T: "~@4 c4@3 ~@3 bb3@3 bb3 ~@2", U: "d3 ~ d3 ~ d3!3 db3 ~ db3 ~ db3 db3@2 ~@2",
  V: "~@2 a2@2 a2@2 ~@2 g2@2 g2@2 ~ g2@2 g2", W: "~@2 c3@2 c3@2 ~@2 f3@2 f3@2 ~ f3@2 f3",
  X: "~@2 c3@2 c3@2 ~@2 c3@2 c3@2 ~ c3 c3@2", Y: "db3@3 d3@3 e3@2 ~@2 a2@4 ~@2",
  Z: "~@2 d3@2 d3@2 ~@2 db3@2 db3@2 ~ db3@2 db3", AA: "~@2 a3@2 a3@2 ~@2 c4@2 c4@2 ~ c4@2 c4",
  AB: "~@2 f3@2 f3@2 ~@2 f3@2 f3@2 ~ f3 f3@2", AC: "g3!2 ~ g3!3 ~ g3 ~@2 g3@6", AD: "~@2 a2!2 ~ a2 ~@5 ab2!2 ~ ab2 ~",
  AE: "~@2 f2 g2 f2 g2 f2@2 a2@6 ~@2", AF: "~@2 a2!2 ~ a2 ~@4 ab2!2 ~ ab2 ~@2", AG: "e4!2 ~ e4!3 ~ e4 ~@8",
})).s("gm_cello").gain(0.25)

// bass · acoustic bass · "Contrabass"
const bass = note("<A B C D ~ E@3 F ~@7 G H I J K L M N O P Q R S T U V W X Y ~@16 Z@2 AA AB>".pickRestart({
  A: "~ eb3 bb2 bb1", B: "d2!2 ~ d2!2 ~ d2@2", C: "d2 d2@2 ~@3 d2 d2@2 ~@3 bb1@3 ~", D: "g1",
  E: "g1 bb1 b1 c2 d2 bb1!2 a1", F: "g1 f1 a1 g1!2 e1 f1 gb1", G: "g1@3 ~", H: "g2 gb2 e2 d2 a2 eb3 d3 gb3",
  I: "g2 a2 bb2 c3 d3 bb2 g2 bb2", J: "g2 gb2 e2 d2!2 gb2 e2 g2", K: "g2 a2 bb2 g2 eb2!2 gb2!2",
  L: "g2 gb2 e2 eb2!2 gb2 eb2 gb2", M: "g2 a2 b2 c3!2 bb2 g2 bb2", N: "d2 eb2 e2 eb2 d2 eb2 e2 eb2",
  O: "d2 eb2 e2 eb2 d2 eb2 e2 gb2", P: "d2!2 g2@2 f2!2 d2@2", Q: "d2!2 f2 e2 f2 e2 eb2 d2", R: "a2!2 e2!2 d2!2 f2!2",
  S: "d2!3 db2 d2 e2 f2 gb2", T: "c2!2 gb2!2 e2!2 c2!2", U: "d2 e2 gb2 bb2 g2 gb2 g2 d2", V: "a2!2 eb2!4 gb2!2",
  W: "d2!2 e2 d2 db2 gb2 a2 db2", X: "db2 ~@7", Y: "e1!2 ~@4 e1 e1@2 ~@3 a1@4",
  Z: "[d2@4 ~@3 f2@4 ~@4 g2@5 ~@5 g2 ~@2 g2@2 ~@2]/2", AA: "d2@4 ~@3 f2@4 ~@5", AB: "a1!2 ~ a1!3 ~ a1 ~@8",
})).s("gm_acoustic_bass").gain(0.3)

// bass · acoustic bass · "Contrabass" · soft notes
const bass_soft = note("<~@35 A B C D E F G H A B C D E F G H ~@4>".pickRestart({
  A: "f2 bb2 f2 bb2 a2 f2 d2 a2", B: "db2!2 f2 a2 f2!2 a2 f2", C: "bb2!2 d2!4 bb2!2",
  D: "e2@2 f2@2 gb2@2 g2@2 gb2 ~ a2@4 ~@2", E: "d3 a2 eb2 a2!2 f2 eb2 bb2", F: "db2 e2 bb2 db2 d2 e2 ab2 a2",
  G: "d2!2 e2!2 g2!2 bb2!2", H: "a2 g2 ~ f2 e2!2 ~ e2 ~@2 a2@4 ~@2",
})).s("gm_acoustic_bass").gain(0.2)

stack(cello, cello_soft, cello_2, cello_3, bass, bass_soft)