Strudelify
0:00/0:00
// Il Silenzio — Adattamento per piccolabanda senza solistadi Alberto Zamolo
// 70 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (4/4 at bar 1, 2/4 at bar 39) are rendered on a constant 4/4 grid of one bar per cycle
// note: duplicate parts dropped: ch 6 "Eufonio CB" tuba (copy of ch 2 "Eufonio CA" tuba)
// note: Transcription provider: pdmx. https://musescore.com/score/6390521; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 42 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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.

// other · baritone sax · "Ottavino"
const baritone_sax = note("<~@13 A B C D E F A G D E F H I J K H L M N ~@4 O@2 P@2 Q@2>".pickRestart({
  A: "f7 d7 bb6 f7 d7 bb6", B: "c7@9 d7 eb7 d7 c7@9 d7 eb7 d7", C: "c7@3 ~", D: "eb7 c7 a6 eb7 c7 a6",
  E: "bb6@9 c7 d7 c7 bb6@9 c7 d7 c7", F: "bb6@3 ~", G: "f6!2", H: "~ bb5 c6 d6", I: "eb6", J: "~ c6 d6 eb6",
  K: "f6 eb6 d6@6", L: "eb6 d6 c6@6", M: "~ a5 bb5 c6", N: "bb5@3 ~", O: "[~ f6@6 bb6@12 bb6@12 bb6@17]/2",
  P: "[~@14 bb6@4 ~@4 bb6@2 ~ bb6@2 ~@2 bb6@4 ~@4 bb6@4 ~@4 d7@30 f6@4 ~@5 f6@2 ~@2 f6@2 ~@3 f6@3]/2",
  Q: "[~@6 f6@4 ~@5 bb5@40 bb6@40 ~]/2",
})).s("gm_baritone_sax").gain(0.2)

// other · flute · "Flauto"
const flute = note("<A B C D E ~@8 F G H I J K F L I J K M N O P M Q R S T U@3 V@2 W@2 X@2>".pickRestart({
  A: "~@36 f5@11 ~", B: "bb5@34 ~@2 f5@9 bb5@3", C: "d6@23 ~", D: "bb5@23 ~ d6@17 ~ bb5@6", E: "f5@17 ~@7",
  F: "f6 d6 bb5 f6 d6 bb5", G: "c6@9 d6 eb6 d6 c6@9 d6 eb6 d6", H: "c6@17 ~@7", I: "eb6 c6 a5 eb6 c6 a5",
  J: "bb5@9 c6 d6 c6 bb5@9 c6 d6 c6", K: "bb5@17 ~@7", L: "f5@23 ~ f5@23 ~", M: "~ bb4 c5 d5", N: "eb5@23 ~",
  O: "~ c5 d5 eb5", P: "f5@3 eb5@3 d5@17 ~", Q: "eb5@3 d5@3 c5@17 ~", R: "~ a4 bb4 c5", S: "bb4@17 ~@7",
  T: "~@2 f5@11 ~ bb5@34", U: "[~@2 f5@9 bb5@3 d6@46 ~@2 bb5@23 ~ d6@17 ~ bb5@6 f5@34]/3",
  V: "[~@2 f5@11 ~ bb5@24 bb5@24 bb5@34]/2",
  W: "[~@14 bb5@4 ~@4 bb5@2 ~ bb5@2 ~@2 bb5@4 ~@4 bb5@4 ~@4 d6@30 f5@4 ~@5 f5@2 ~@2 f5@2 ~@3 f5@3]/2",
  X: "[~@6 f5@4 ~@5 bb5@40 bb5@38 ~@3]/2",
})).s("gm_flute").gain(0.15)

// other · clarinet · "2° Clarinetto"
const clarinet = note("<~@13 A B C D E F A G D E F H I J K L M N F ~@4 O@2 P@4>".pickRestart({
  A: "f5 d5 bb4 f5 d5 bb4", B: "c5@9 d5 eb5 d5 c5@9 d5 eb5 d5", C: "c5@3 ~", D: "eb5 c5 a4 eb5 c5 a4",
  E: "bb4@9 c5 d5 c5 bb4@9 c5 d5 c5", F: "bb4@3 ~", G: "f4!2", H: "~ bb4 a4 ab4", I: "g4", J: "~ a4 bb4 c5",
  K: "d5 c5 bb4@6", L: "~ g4 a4 bb4", M: "c5 bb4 g4@6", N: "~ f4 g4 a4", O: "[~ f4@6 bb4@12 bb4@12 bb4@17]/2",
  P: "[~@14 bb4@4 ~@4 bb4@2 ~ bb4@2 ~@2 bb4@4 ~@4 bb4@4 ~@4 d5@30 c5@18 c5@18 bb4@40 bb5@40 ~]/4",
})).s("gm_clarinet").gain(0.2)

// other · soprano sax · "Sassofono soprano"
const soprano_sax = note("<~@13 A B C D E F A G D E F H I J K H L M F ~@4 N@2 O@4>".pickRestart({
  A: "f5 d5 bb4 f5 d5 bb4", B: "c5@9 d5 eb5 d5 c5@9 d5 eb5 d5", C: "c5@3 ~", D: "eb5 c5 a4 eb5 c5 a4",
  E: "bb4@9 c5 d5 c5 bb4@9 c5 d5 c5", F: "bb4@3 ~", G: "f4!2", H: "~ bb4 c5 d5", I: "eb5", J: "~ c5 d5 eb5",
  K: "f5 eb5 d5@6", L: "eb5 d5 c5@6", M: "~ a4 bb4 c5", N: "[~ f4@6 bb4@12 bb4@12 bb4@17]/2",
  O: "[~@14 bb4@4 ~@4 bb4@2 ~ bb4@2 ~@2 bb4@4 ~@4 bb4@4 ~@4 d5@30 c5@18 c5@18 bb4@40 bb5@40 ~]/4",
})).s("gm_soprano_sax").gain(0.2)

// chords · tuba · "Sassofono contralto"
const tuba = note("<~@4 A B C D E F G H I J K L M N O P Q M N R S T S U V T S R ~@4 W@2 X@4>".pickRestart({
  A: "f2", B: "~@12 f3@3 bb3, bb2", C: "d4@9 c4 bb3 c4 d4@9 c4 bb3 c4, bb2!2", D: "d4@4 ~ bb3 c4 d4, bb2",
  E: "eb4@9 d4 c4 bb3 c4@9 d4 eb4 d4, c3 f2", F: "c4@9 d4 eb4 d4 f2@12, f2@4 c4@3 ~",
  G: "a3@4 bb3@4 c4@4 d4@9 c4 bb3 a3, f2 bb2", H: "bb3@9 c4 d4 c4 bb3@9 c4 d4 c4, g2 bb2", I: "bb2, bb3@3 ~",
  J: "d4 bb4 f4 d4 bb4 f4, bb2!2", K: "f4@9 a4!3 f4@9 a4!3, f2!2", L: "f2, f4@3 ~", M: "f4!6, f2!2",
  N: "f4@9 f4!3 f4@9 f4!3, bb2!2", O: "bb2, f4@3 ~", P: "f4 bb4 f4!2 bb4 f4, bb2!2", Q: "[f2,a4]!2", R: "f4@3 ~",
  S: "f4", T: "~ g4!3", U: "~ f4!3", V: "g4", W: "[~ f4@6 bb3@12 bb3@12 bb3@17]/2",
  X: "[~@14 bb3@4 ~@4 bb3@2 ~ bb3@2 ~@2 bb3@4 ~@4 bb3@4 ~@4 bb3@30 [f2,c4]@18 f2@9 f2@9 [bb2,d4]@40 [bb2,d5]@40 ~, ~@31 c4@6 ~@27]/4", // F5 Bb
})).s("gm_tuba").gain(0.2)

// chords · tuba · "Sassofono contralto" · soft notes
const tuba_soft = note("<~@23 A@2 B C A D E C F ~@4 G@3 ~@3>".pickRestart({
  A: "bb2", B: "eb3", C: "f3", D: "g2", E: "c3", F: "bb2@3 ~", G: "[~ f2@6 bb2@42 ~@23]/3",
})).s("gm_tuba").gain(0.05)

// chords · french horn · "1° Tromba"
const french_horn = note(`<
  A B C D E F G H I J K L M N O P Q L M N R Q L S T U V W T X Y Z AA AB@3 AC@2 AD@4
>`.pickRestart({
  A: "~@3 f4", B: "bb4@12 f4@3 bb4", C: "d5", D: "bb4@4 d5@3 bb4", E: "f4@3 f4, a3",
  F: "~@6 bb3@3 bb3@3 bb3@4 ~@2 bb3@4 ~@8 bb3@3 bb3@3 f4@6 bb3@3 bb4@3, bb4@9 bb3 ~@2",
  G: "~@6 bb3@3 bb3@3 bb3@4 ~@2 c5@2 bb4@2 c5@2 ~@6 bb3@3 bb3@3 bb3@4 ~@2 c5@2 bb4@2 c5@2, d5@9 bb3@2 ~ d5@9 bb3@2 ~",
  H: "~@6 bb3@3 bb3@3 bb3@4 ~@2 bb3@4 ~@8 bb3@3 bb3@3 [bb3,c5]@6 [bb3,d5]@6, d5@4 ~ bb4 ~@2", // Bbsus2 Bb
  I: "~@6 c4@3 c4@3 c4@4 ~@2 d5@2 c5@2 bb4@2 ~@6 eb4@3 eb4@3 eb4@4 ~@2 d5@2 eb5@2 d5@2, eb5@9 c4@2 ~ c5@9 eb4@2 ~",
  J: "~@6 eb4@3 eb4@3 eb4@4 ~@2 d5@2 eb5@2 d5@2 ~@6 eb4@3 eb4@3 eb4@4 ~@2 eb4@4 ~@2, c5@9 eb4@2 ~ c5@9 ~@3",
  K: "[eb4,a4]@8 [eb4,bb4]@8 [eb4,c5]@8 ~@6 bb3@3 bb3@3 bb3@4 ~@2 c5@2 bb4@2 a4@2, ~@12 d5@9 bb3@2 ~", // Ebdim Eb5 Cm
  L: "~@6 bb3@3 bb3@3 bb3@4 ~@2 c5@2 d5@2 c5@2 ~@6 bb3@3 bb3@3 bb3@4 ~@2 c5@2 d5@2 c5@2, bb4@9 bb3@2 ~ bb4@9 bb3@2 ~",
  M: "~@6 bb3@3 bb3@3 bb3@4 ~@2 bb3@4 ~@8 bb3@3 bb3@3 bb3@4 ~@2 bb3@4 ~@2, bb4@3 ~",
  N: "[bb3,f5] [bb3,d5] [bb3,bb4] [bb3,f5] [bb3,d5] [bb3,bb4]", // Bb5 Bb Bb5 Bb
  O: "~@6 eb4@3 eb4@3 eb4@4 ~@2 d5@2 eb5@2 d5@2 ~@6 eb4@3 eb4@3 eb4@4 ~@2 d5@2 eb5@2 d5@2, c5@9 eb4@2 ~ c5@9 eb4@2 ~",
  P: "~@6 eb4@3 eb4@3 eb4@4 ~@2 eb4@4 ~@8 eb4@3 eb4@3 eb4@4 ~@2 eb4@4 ~@2, c5@3 ~",
  Q: "[eb4,eb5] [eb4,c5] [eb4,a4] [eb4,eb5] [eb4,c5] [eb4,a4]", // Eb Cm Ebdim Eb Cm Ebdim
  R: "~@6 eb4@3 eb4@3 eb4@4 ~@2 eb4@4 ~@8 eb4@3 eb4@3 eb4@4 ~@2 eb4@4 ~@2, f4!2",
  S: "~@6 bb3@3 bb3@3 bb3@4 ~@2 bb3@4 ~@2 bb3@24, bb4@3 ~", T: "~ bb4 c5 d5, d4", U: "~ eb4!3, eb5",
  V: "~ c5 d5 eb5, c4", W: "f5 eb5 d4@2 d4@2 d4@2, ~ d5@3", X: "eb5 d5 eb4@2 eb4@2 eb4@2, ~ c5@3", Y: "~ a4 bb4 c5, c4",
  Z: "[d4,bb4]@3 ~", AA: "~ f4@6 bb4@17", AB: "[~@2 f4@9 bb4@3 d5@48 bb4@24 d5@18 bb4@6 f4@34]/3",
  AC: "[~ f4@6 bb4@12 bb4@12 bb4@17]/2",
  AD: "[~@14 bb4@4 ~@4 bb4@2 ~ bb4@2 ~@2 bb4@4 ~@4 bb4@4 ~@4 d5@30 f4@4 ~@5 f4@2 ~@2 f4@2 ~@3 a3@9 a3@9 [bb3,bb4]@40 [bb3,bb4,bb5]@40 ~, ~@75 bb3@18 f4@4 ~@5 f4@4 ~@86]/4", // Bb
})).s("gm_french_horn").gain(0.2)

// other · trumpet · "2° Tromba"
const trumpet = note("<A B C D E B F G H I J K L M N L O P L Q R O P L S T U V W X Y L Z AA@3 AB@2 AC@4>".pickRestart({
  A: "~@3 f4", B: "f4@12 f4@3 bb4", C: "bb4", D: "bb4@4 bb4@3 bb4", E: "f4@3 f4", F: "bb4@9 a4 f4 a4 bb4@9 a4 f4 a4",
  G: "bb4@4 ~ bb4 a4 bb4", H: "c5@9 bb4 a4 g4 a4@9 bb4 c5 bb4", I: "a4@9 g4 a4 g4 a4@9 ~@3",
  J: "a4@4 f4@4 f4@4 f4@9 a4 g4 a4", K: "f4@9 a4 g4 a4 f4@9 a4 g4 a4", L: "f4@3 ~", M: "d5 bb4 f4 d5 bb4 f4",
  N: "f4@9 a4!3 f4@9 a4!3", O: "f4!6", P: "f4@9 f4!3 f4@9 f4!3", Q: "f4 bb4 f4!2 bb4 f4", R: "a4!2", S: "~ bb4 a4 ab4",
  T: "g4", U: "~ a4 bb4 c5", V: "d5 c5 bb4@6", W: "~ g4 a4 bb4", X: "c5 bb4 g4@6", Y: "~ f4 g4 a4", Z: "~ f4@6 f4@17",
  AA: "[~@2 f4@9 bb4@3 bb4@48 bb4@24 bb4@18 bb4@6 f4@34]/3", AB: "[~ f4@6 bb4@12 bb4@12 bb4@17]/2",
  AC: "[~@14 bb4@4 ~@4 bb4@2 ~ bb4@2 ~@2 bb4@4 ~@4 bb4@4 ~@4 bb4@30 f4@18 f4@9 eb4@9 d4@40 d4@40 ~]/4",
})).s("gm_trumpet").gain(0.07)

// other · trombone
const trombone = note("<~@4 A B@3 C D E F B G D@2 H B@2 G D H B I J K L K J M L N ~@7 O@3>".pickRestart({
  A: "eb3", B: "~@6 f3@3 f3@3 f3@4 ~@2 f3@4 ~@8 f3@3 f3@3 f3@4 ~@2 f3@4 ~@2",
  C: "~@6 eb3@3 eb3@3 eb3@4 ~@2 eb3@4 ~@8 a3@3 a3@3 a3@4 ~@2 a3@4 ~@2",
  D: "~@6 a3@3 a3@3 a3@4 ~@2 a3@4 ~@8 a3@3 a3@3 a3@4 ~@2 a3@4 ~@2", E: "a3@8 a3@8 a3@8 ~@6 f3@3 f3@3 f3@4 ~@2 f3@4 ~@2",
  F: "~@6 g3@3 g3@3 g3@4 ~@2 g3@4 ~@8 f3@3 f3@3 f3@4 ~@2 f3@4 ~@2", G: "f3!6", H: "a3!6",
  I: "~@6 f3@3 f3@3 f3@4 ~@2 f3@4 ~@2 f3@24", J: "bb3", K: "~ bb3!3", L: "a3", M: "~ c4!3", N: "f3@3 ~",
  O: "[~@27 eb3@18 eb3@9 eb3@9 f3@40 f3@40 ~]/3",
})).s("gm_trombone").gain(0.2)

// chords · tuba · "Sassofono tenore"
const tuba_2 = note("<~@4 A B C B D E F G B H I J K L M N O K L P Q R S T U V W X ~@7 Y@3>".pickRestart({
  A: "f2", B: "bb1", C: "bb1!2", D: "c2 f2", E: "f2!2", F: "f2 bb1", G: "g2 bb1", H: "d4 bb3 f3 d4 bb3 f3, bb1!2",
  I: "[f2,f3]!2", J: "[f2,f3]", K: "f3!6, f2!2", L: "[bb1,f3]!2", M: "[bb1,f3]", N: "f3 bb3 f3!2 bb3 f3, bb1!2",
  O: "[f2,a3]!2", P: "f3", Q: "bb3 d4 c4 bb3", R: "bb3", S: "f3 c4 bb3 c4", T: "d4 c4 bb3@6", U: "g3 d4 c4 bb3",
  V: "c4 g3 eb3@6", W: "f3 c4 d4 eb4", X: "f4@3 ~",
  Y: "[~@27 [f2,f3]@18 [f2,f3]@9 [f2,eb3]@9 [bb1,d3]@40 [bb1,d3]@40 ~]/3", // F F7 Bb
})).s("gm_tuba").gain(0.2)

// chords · tuba · "Sassofono tenore" · soft notes
const tuba_soft_2 = note("<~@23 A@2 B C A D E C F G H@3 I@4 ~@2>".pickRestart({
  A: "bb1", B: "eb2", C: "f2", D: "g2", E: "c2", F: "bb1@3 ~", G: "~ f3@6 bb3@17",
  H: "[~@2 f3@9 bb3@3 bb3@48 bb3@24 bb3@18 bb3@6 f3@34]/3",
  I: "[~@2 [f2,f3]@12 bb3@24 bb3@24 bb3@36 ~@12 bb3@4 ~@4 bb3@2 ~ bb3@2 ~@2 bb3@4 ~@4 bb3@4 ~@4 bb3@31 ~@20, ~@7 bb1@42 ~@47]/4", // F
})).s("gm_tuba").gain(0.05)

// bass · tuba · "Eufonio CA"
const bass = note("<~@4 A B C D E F G H I J H I K H I L M K H I N O P Q R S T U ~@7 V@3>".pickRestart({
  A: "~@3 f3", B: "f3@12 f3@3 bb3", C: "bb3!2", D: "bb3@4 ~ bb3 a3 bb3", E: "c4 a3", F: "a3@4 a3@3 ~",
  G: "a3 f3!2 f3@3", H: "f3!2", I: "f3", J: "d4 bb3 f3 d4 bb3 f3", K: "f3!6", L: "f3 bb3 f3!2 bb3 f3", M: "a3!2",
  N: "bb3 f3 eb3 f3", O: "g3", P: "f3!4", Q: "bb3 f3 d3@6", R: "g3 bb3 a3 g3", S: "g3 eb3 c3@6", T: "f3 c4 eb3 f3",
  U: "f3@3 ~", V: "[~@27 f3@18 f3@9 eb3@9 d3@40 d3@40 ~]/3",
})).s("gm_tuba").gain(0.2)

// bass · tuba · "Eufonio CA" · soft notes
const bass_soft = note("<A B C D E ~@27 F G@3 H@2 I@2 ~@2>".pickRestart({
  A: "~@3 f3", B: "bb3@12 f3@3 bb3", C: "bb3", D: "bb3@4 bb3@3 bb3", E: "f3@3 ~", F: "~ f3@6 bb3@17",
  G: "[~@2 f3@9 bb3@3 bb3@48 bb3@24 bb3@18 bb3@6 f3@34]/3", H: "[~ f3@6 bb3@12 bb3@12 bb3@17]/2",
  I: "[~@14 bb3@4 ~@4 bb3@2 ~ bb3@2 ~@2 bb3@4 ~@4 bb3@4 ~@4 bb3@31 ~@20]/2",
})).s("gm_tuba").gain(0.05)

stack(
  baritone_sax, flute, clarinet, soprano_sax, tuba, tuba_soft, french_horn, trumpet, trombone, tuba_2, tuba_soft_2,
  bass, bass_soft
)