Strudelify

palladio

Jose Cantillo

KeyF majorTempo100 bpm
0:00/0:00
// palladio — Jose Cantillo
// 100 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5942539; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 82 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(100/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.

// other · clarinet · "1st B♭ Clarinet"
const clarinet = note(`<
  ~@2 A B A C D E D F G H I J K L M N A B A C D E D F ~@7 O P Q R S T P U O V W X Y Z AA AB AC AD AE B A C D E D F G H I
  J K L M N A B A C D E D F AF AG AH AI AJ@2 AK
>`.pickRestart({
  A: "~ f4 e4 f4 a3 ~@2 f4 g4 f4 g4 ~@5", B: "~ g4 f4 g4 bb3 ~@2 g4 f4 e4 f4 ~@5",
  C: "~ g4 f4 g4 e4 bb4 a4 g4 f4 e4 d4 ~@5", D: "~ f5 e5 f5 a4 ~@2 f5 g5 f5 g5 ~@5",
  E: "~ g5 f5 g5 bb4 ~@2 g5 f5 e5 f5 ~@5", F: "~ g5 f5 g5 e5 bb5 a5 g5 f5 e5 d5 ~@5",
  G: "~ f5 e5 f5 ~ f5 e5 f5 ~ e5 d5 e5 ~ e5 d5 e5", H: "~ d5 db5 d5 ~ d5 db5 d5 db5 d5 e5 db5 d5 a4 f4 d4",
  I: "~ f5 e5 f5 a4 f5 e5 f5 g4 e5 d5 e5 g4 e5 d5 e5", J: "f4 d5 db5 d5 f4 d5 db5 d5 f4 d5 db5 d5 f4 d5 db5 d5",
  K: "db5!2 b4 db5 d5!2 db5 d5 e5!2 d5 e5 f5!2 e5 d5",
  L: "db5!2 a4 [b4,db5] d5!2 b4 [db5,d5] e5!2 db5 [d5,e5] f5!2 e5 d5", // Bsus2 Dmaj7 Dsus2
  M: "db5!2 [b4,db5]!2 [db5,d5] d5 [db5,d5]!2 [d5,e5] e5 [d5,e5]!2 [e5,f5] f5 [e5,f5] [d5,e5]", // Bsus2 Dmaj7 Dsus2 Fmaj7 Dsus2
  N: "[db5,d5] db5!7 [a3,e4,db5]@4 ~@4", O: "d4!4 eb4!4 d4!4 db4!4", P: "d4!8", Q: "d4!4 g4!4", R: "g4!8", S: "f4!8",
  T: "e4!8", U: "db4!2 d4!4 db4!2", V: "d4 f5 e5 f5 a4 ~@4 f5 e5 f5 a4 ~@3", W: "~ f5 e5 f5 a4 ~@4 f5 e5 f5 a4 ~@3",
  X: "~ f5 e5 f5 a4 ~@4 f5 e5 f5 a4 f4 e4 f4", Y: "a3 f5 e5 f5 d5@12", Z: "~ eb5 d5 eb5 c5@12", AA: "~ d5 c5 d5 bb4@12",
  AB: "~ c5 bb4 c5 a4@12", AC: "~ bb4 a4 bb4 g4@12", AD: "g5 e5!2 db5 e5 db5!2 bb4 db5 bb4!2 g4 bb4 g4!2 e4",
  AE: "d4 f4 e4 f4 a3 ~@2 f4 g4 f4 g4 ~@5", AF: "f5 ~@7 gb5 ~@2 gb5!5", AG: "g5!8 a5!8", AH: "b5!8 db6!8",
  AI: "b5!8 a5!8", AJ: "d6 a5 gb5 a5 d5 a5 gb5 a5 d6 a5 gb5 a5 d5 a5 gb5 a5", AK: "gb5",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "1st B♭ Clarinet" · soft notes
const clarinet_soft = note("<~@26 A B C D E A F ~@42 G ~@6>".pickRestart({
  A: "d4!8", B: "d4!4 g4!4", C: "g4!8", D: "f4!8", E: "e4!8", F: "db4!2 d4!4 db4!2", G: "~ f5!7 ~ gb5!2 ~@5",
})).s("gm_clarinet").gain(0.2)

// chords · clarinet · "2ndB♭ Clarinet"
const clarinet_2 = note(`<
  ~@2 A B A C D E D F G H I J K L M N A B A C D E D F ~@7 O P Q R S T U V W X@2 Y Z AA AB AC AD AE AF B A C D E D F G H
  I J K L M N A B A C D E D F AG AH AI AJ AK@2 AL
>`.pickRestart({
  A: "~ [a3,f4] [g3,e4] [a3,f4] a3@2 ~ [a3,f4] [bb3,g4] [a3,f4] [bb3,g4] ~@5", // Dm C Dm Eb Dm Eb
  B: "~ [bb3,g4] [a3,f4] [bb3,g4] g3@2 ~ [bb3,g4] [a3,f4] [g3,e4] [a3,f4] ~@5, ~@4 bb3 ~@11", // Eb Dm Eb Dm C Dm
  C: "~ [bb3,g4] [a3,f4] [bb3,g4] [g3,e4] [d4,bb4] [db4,a4] [bb3,g4] [a3,f4] [g3,e4] f3@2 ~@4, ~@10 d4 ~@5", // Eb Dm Eb C Gm Gbm Eb Dm …
  D: "~ a4 g4 a4 f4 ~@2 a4 bb4 a4 bb4 ~@5", E: "~ bb4 g4 bb4 g4 ~@2 bb4 a4 g4 a4 ~@5",
  F: "~ bb4 a4 bb4 g4 d5 db5 bb4 a4 g4 f4 ~@5", G: "~ a4 g4 a4 ~ a4 g4 a4 ~ g4 f4 g4 ~ g4 f4 g4",
  H: "~ f4 e4 f4 ~ f4 e4 f4 e4 f4 g4 e4 a4 f4 d4 a3", I: "~ a4 g4 a4 f4 a4 g4 a4 e4 g4 f4 g4 db4 g4 f4 g4",
  J: "d4 f4 e4 f4 d4 f4 e4 f4 d4 f4 e4 f4 d4 f4 e4 f4", K: "e4!2 d4 e4 f4!2 e4 f4 g4!2 f4 g4 a4!2 g4 f4",
  L: "e4!2 db4 [d4,e4] f4!2 d4 [e4,f4] g4!2 e4 [f4,g4] a4!2 g4 f4", // Dsus2 Fmaj7 Fsus2
  M: "e4!2 [d4,e4]!2 [e4,f4] f4 [e4,f4]!2 [f4,g4] g4 [f4,g4]!2 [g4,a4] a4 [g4,a4] [f4,g4]", // Dsus2 Fmaj7 Fsus2 Gsus2 Fsus2
  N: "[e4,f4] e4!7 [e4,a4]@4 ~@4", O: "bb3!8 a3!8", P: "c4!4 bb3!4, c5 bb4", Q: "c4!4 d4!4, c5 d5", R: "d4!4 e4!4, g5",
  S: "c4!4 d4!4, f5", T: "bb3!4 c4!4, e5", U: "a3!4 bb3!4, d5", V: "a3!8, db5 d5@2 db5",
  W: "[bb3,d4]!4 [bb3,eb4]!4 [a3,d4]!4 [a3,db4]!4", X: "a3 ~@4 f4 e4 f4 a3 ~@4 f4 e4 f4",
  Y: "a3 ~@4 f4 e4 f4 a3 f5 e5 f5 a4 f4 e4 f4", Z: "a3@2 ~@3 f4 e4 f4 d4@8", AA: "~@5 eb4 d4 eb4 c4@8",
  AB: "~@5 d4 c4 d4 bb3@8", AC: "~@5 c4 bb3 c4 a3@8", AD: "~@5 bb3 a3 bb3 g3@8",
  AE: "e5 db5!2 bb4 db5 bb4!2 g4 bb4 g4!2 e4 g4 e4!2 db4",
  AF: "d4 [a3,f4] [g3,e4] [a3,f4] a3@2 ~ [a3,f4] [bb3,g4] [a3,f4] [bb3,g4] ~@5", // Dm C Dm Eb Dm Eb
  AG: "[f4,a4] ~@7 [gb4,b4] ~@2 [gb4,b4]!5", AH: "[g4,b4]!8 [a4,d5]!8", AI: "[b4,d5]!8 [db5,gb5]!8",
  AJ: "[d5,gb5]!8 [e5,a5]!8", AK: "[d5,d6]!2", AL: "[gb4,d5]",
})).s("gm_clarinet").gain(0.3)

// chords · clarinet · "2ndB♭ Clarinet" · soft notes
const clarinet_soft_2 = note("<~@26 A B C D E F G ~@42 H ~@6>".pickRestart({
  A: "c4!4 bb3!4", B: "c4!4 d4!4", C: "d4!4 e4!4, g4", D: "c4!4 d4!4, f4", E: "bb3!4 c4!4, e4", F: "a3!4 bb3!4, d4",
  G: "a3!8, db4 d4@2 db4", H: "~ [f4,a4]!7 ~ [gb4,b4]!2 ~@5",
})).s("gm_clarinet").gain(0.2)

// other · clarinet · "3rd B♭ Clarinet"
const clarinet_3 = note(`<
  ~@2 A B A C D@4 E F G H I J@2 K A B A C D@4 ~@7 L M N O N P Q R S T U V W X Y Z AA AB AC B A C D@4 E F G H I J@2 K A B
  A C D@4 AD AE AF AG AH@2 AI
>`.pickRestart({
  A: "~ a3 g3 a3!2 ~@2 a3 bb3 a3 bb3 ~@5", B: "~ bb3 a3 bb3 g3 ~@2 bb3 a3 g3 a3 ~@5",
  C: "~ bb3 g3 bb3 g3 d4 db4 bb3 a3 g3 f3 ~@5", D: "d4!16", E: "d4 ~ d4 ~ bb3 ~ bb3 ~ c4 ~ c4 ~ a3 ~ a3 ~",
  F: "bb3 ~ bb3 ~ g3 ~ g3 ~ a3 ~ a3 ~ d4 ~ d4 ~", G: "d4!2 ~ d4 f4!2 ~ f4 e4!2 ~ e4 db4!2 ~ db4",
  H: "bb3!2 ~ bb3 g3!2 ~ g3 ab3 ~ ab3 ~ ab3 ~ ab3 ~", I: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~", J: "a3!16",
  K: "a3!8 [a3,db4]@4 ~@4", L: "f3!4 g3!4 e3!8", M: "a3!4 g3!4", N: "a3!4 bb3!4", O: "bb3!4 c4!4", P: "g3!4 a3!4",
  Q: "f3!4 g3!4", R: "g3!2 f3!2 e3!2 g3!2", S: "bb3!4 g3!4 a3!8", T: "f3 ~@4 f4 e4 f4 a3 ~@4 f4 e4 f4",
  U: "a3 ~@4 f4 e4 f4 a3 ~@4 f4 e4 f4", V: "a3 ~@4 f4 e4 f4 a3 f5 e5 f5 a4 f4 e4 f4", W: "a3 ~@3 f4@4", X: "~ gb4",
  Y: "~ g4", Z: "~ c4", AA: "~ d4", AB: "a4!16", AC: "a3!2 g3 a3!2 ~@2 a3 bb3 a3 bb3 ~@5",
  AD: "[a3,d4] ~@7 eb4 ~@2 eb4!5", AE: "e4!8 gb4!8", AF: "[b3,g4]!8 [bb3,gb4]!8", AG: "[d4,b4]!8 [db4,a4]!8",
  AH: "gb4 d4 a3 d4 gb3 d4 a3 d4 gb4 d4 a3 d4 gb3 d4 a3 d4", AI: "[d4,a4]",
})).s("gm_clarinet").gain(0.3)

// other · clarinet · "3rd B♭ Clarinet" · soft notes
const clarinet_soft_3 = note("<~@26 A B C B D E F ~@42 G ~@6>".pickRestart({
  A: "a3!4 g3!4", B: "a3!4 bb3!4", C: "bb3!4 c4!4", D: "g3!4 a3!4", E: "f3!4 g3!4", F: "g3!2 f3!2 e3!2 g3!2",
  G: "~ [a3,d4]!7 ~ eb4!2 ~@5", // D5
})).s("gm_clarinet").gain(0.2)

// bass · clarinet · "1st Bass Clarinet"
const bass = note(`<
  A@6 B@4 C D E F G@2 H I B@8 J K L M N O P Q J K L M R S T U V W X J@5 Y B@8 C D E F G@2 H I B@8 Z AA AB AC AD@2 AE
>`.pickRestart({
  A: "d3 ~ d3 ~ d3 ~ d3 ~", B: "d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~ d3 ~",
  C: "d3 ~ d3 ~ bb2 ~ bb2 ~ c3 ~ c3 ~ a2 ~ a2 ~", D: "bb2 ~ bb2 ~ g2 ~ g2 ~ a2 ~ a2 ~ d3 ~ d3 ~",
  E: "d3!2 ~ d3 bb2!2 ~ bb2 c3!2 ~ c3 a2!2 ~ a2", F: "bb2!2 ~ bb2 g2!2 ~ g2 ab2 ~ ab2 ~ ab2 ~ ab2 ~",
  G: "a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~ a3 ~", H: "a3!16", I: "a3!8 e3@4 ~@4", J: "d3!8", K: "d3!4 g3!4",
  L: "f3!4 e3!4", M: "e3!4 d3!4", N: "d3!4 c3!4", O: "c3!4 bb2!4", P: "a2!2 bb2!2 a2!4", Q: "bb2!4 g2!4 a2!8",
  R: "d4!4 c4!4", S: "c4!4 bb3!4", T: "a3!2 bb3!2 a3!4", U: "f3!4 g3!4 e3!8", V: "d3!2 a2!2 bb2!2 b2!2",
  W: "c3@2 c3@2 db3@2 db3@2 d3!4 a2!4", X: "bb2!4 b2!4 c3!4 db3!4", Y: "a2!8", Z: "d3!8 gb3!8", AA: "b3!8 a3!8",
  AB: "d3!8 db3!8", AC: "gb3!8 e3!8", AD: "e2 d3!7 e2 d3!7", AE: "a3",
})).s("gm_electric_bass_finger").gain(0.3)

// bass · clarinet · "2nd Bass Clarinet"
const bass_2 = note(`<
  A@6 B@4 C D E F G@2 H I B@8 J K L M N O P Q J K L M N R S T U V W X@5 Y B@8 C D E F G@2 H I B@8 Z AA AB AC AD@2 AE
>`.pickRestart({
  A: "d2 ~@3 d2 ~@3", B: "d2 ~ d2 ~ d2 ~ d2 ~", C: "d3 ~ d3 ~ bb2 ~ bb2 ~ c3 ~ c3 ~ a2 ~ a2 ~",
  D: "bb2 ~ bb2 ~ g2 ~ g2 ~ a2 ~ a2 ~ d2 ~ d2 ~", E: "d3!2 ~ d3 bb2!2 ~ bb2 c3!2 ~ c3 a2!2 ~ a2",
  F: "bb2!2 ~ bb2 g2!2 ~ g2 ab2 ~ ab2 ~ ab2 ~ ab2 ~", G: "a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", H: "a2!16",
  I: "a2!8 a2@4 ~@4", J: "d2!8", K: "d2!4 g2!4", L: "f2!4 e2!4", M: "e2!4 d2!4", N: "d3!4 c3!4",
  O: "c3@2 c3@2 c3@2 c3@2 d2 f2 g2 bb2 d3 e3 f3 g3", P: "a3!2 bb3!2 a3!4", Q: "bb3!4 g3!4 a3!8", R: "c3!4 bb2!4",
  S: "a2!2 bb2!2 a2!4", T: "bb2!4 g2!4 a2!8", U: "d3!2 a2!2 bb2!2 b2!2", V: "c3!2 db3!2 d3!2 a2!2",
  W: "bb2!2 b2!2 c3!2 db3!2", X: "d3!8", Y: "a2!8", Z: "d3!8 b2!8", AA: "e3!8 d3!8", AB: "g2!8 gb2!8",
  AC: "b2!4 b3!4 a2!4 a3!4", AD: "d4!2", AE: "gb4",
})).s("gm_electric_bass_finger").gain(0.3)

// bass · contrabass
const bass_3 = note(`<
  A@6 B@4 C D E F G@2 H I B@8 J K L M N O P Q J K L M N O P R S T U J@5 V B@8 C D E F G@2 H I B@8 W X Y Z ~@3
>`.pickRestart({
  A: "d2 ~@3 d2 ~@3", B: "d2 ~ d2 ~ d2 ~ d2 ~", C: "d2 ~ d2 ~ bb1 ~ bb1 ~ c2 ~ c2 ~ a1 ~ a1 ~",
  D: "bb1 ~ bb1 ~ g1 ~ g1 ~ a1 ~ a1 ~ d2 ~ d2 ~", E: "d2!2 ~ d2 bb1!2 ~ bb1 c2!2 ~ c2 a1!2 ~ a1",
  F: "bb1!2 ~ bb1 g1!2 ~ g1 ab1 ~ ab1 ~ ab1 ~ ab1 ~", G: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~", H: "a1!16",
  I: "a1!8 a1@4 ~@4", J: "d2!8", K: "d2!4 g2!4", L: "f2!4 e2!4", M: "e2!4 d2!4", N: "d2!4 c2!4", O: "c2!4 bb1!4",
  P: "a1!2 bb1!2 a1!4", Q: "bb2!4 g2!4 a2!8", R: "bb1!4 g1!4 a1!8", S: "d2!2 a1!2 bb1!2 b1!2",
  T: "c2!2 db2!2 d2!2 a1!2", U: "bb1!2 b1!2 c2!2 db2!2", V: "a1!8", W: "d2!8 b1!8", X: "e2!8 d2!8", Y: "g1!8 gb1!8",
  Z: "b1!4 b2!4 a1!4 a2!4",
})).s("gm_contrabass").gain(0.3)

// other · tremolo strings
const tremolo_strings = note("<~@79 [d2!2]!2 d2>").s("gm_tremolo_strings").gain(0.5)

stack(
  clarinet, clarinet_soft, clarinet_2, clarinet_soft_2, clarinet_3, clarinet_soft_3, bass, bass_2, bass_3,
  tremolo_strings
)