Strudelify

cold cold man

Guido Lombardo

KeyF♯ majorTempo111 bpm
0:00/0:00
// cold cold man — Lombardo Guido
// 111 bpm, 4/4, key F# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "Sassofono tenore" tenor sax (copy of ch 1 "Sassofono contralto" alto sax); ch 3 "Tromba in Si♭" trumpet (copy of ch 1 "Sassofono contralto" alto sax)
// note: Transcription provider: pdmx. https://musescore.com/score/1947141; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 112 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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.

// chords · epiano1 · "Piano elettrico"
const epiano1 = note(`<
  A B C B A D@2 E@2 F B E@2 F@2 E@2 F@2 E@2 F@2 G H I G@2 J K@2 L M N O E@2 F@2 E@2 F@2 G H I G@2 J K@2 L M N O E@2 F@2
  E@2 F@2 E@2 F@2 E@2 F@2 P Q P R P Q P R E@2 F@2 E@2 F@2 E@2 F@2 E@2 F@2 S@2 T@2 S@2 T@2 P Q P R P Q P R U
>`.pickRestart({
  A: "[d5,f#5,a5]", B: "[e5,g#5,b5]", C: "[f#5,a5,c#6]", D: "[d5,f#5,a5]/2",
  E: "[d5,f#5,a5]@2 [d5,f#5,a5]@2 [d5,f#5,b5]@3 [d5,f#5,a5]@2 [d5,f#5,a5]@2 [d5,f#5,a5] [d5,f#5,c#6]@2 [d5,f#5,b5]@2", // D Bm D Dmaj7 Bm
  F: "[e5,g#5,b5]@2 [e5,g#5,b5]@2 [e5,g#5,c#6]@3 [e5,g#5,b5]@2 [e5,g#5,b5]@2 [e5,g#5,c#6] [e5,g#5,e6]@2 [e5,g#5,b5]@2", // E C#m E C#m E
  G: "[d5,f#5,a5] d5 f#5 a5 f#5 d5 f#5 a5, d3", H: "[a4,c#5,e5] a4 c#5 e5 c#5 a4 c#5 e5, a2",
  I: "[e5,g#5,b5] e5 g#5 b5 [e5,g#5,b5] e5 g#5 b5, e3", J: "[a4,c#5,e5] a4 c#5 e5 [e5,g#5,b5] b5 g#5 e5, a2 e3",
  K: "[e5,g#5,b5] e5 g#5 b5 g#5 e5 g#5 b5, e3", // E
  L: "[b2,b4,d5,f#5]@2 [b2,b4,d5,f#5]@2 [b2,b4,d5,f#5]@2 [b4,d5,f#5]!2, ~@3 b2", M: "~@7 [b4,d5,f#5]",
  N: "[a2,a4,c#5,e5]!4", O: "[e3,e4,g#4,b4]!2 [e3,e4,g#4,b4]@2", P: "[d5,f#5,a5]!4",
  Q: "[d5,f#5,a5] [e5,g#5] [e5,g#5]@2, ~ c#5@3", R: "[c#5,e5,g#5] [e5,g#5] [e5,g#5]@2, ~ c#5@3", S: "[d3,d5,f#5,a5]!4",
  T: "[e3,e5,g#5,b5]!4", U: "[c#5,e5,g#5]",
})).s("gm_epiano1").gain(0.4)

// chords · acoustic guitar steel · "Chitarra acustica"
const acoustic_guitar_steel = note(`<
  ~@15 A@2 B@2 A@2 B@2 C D E C@2 F G@2 H I J K A@2 B@2 A@2 B@2 C D E C@2 F G@2 H I J K A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 L
  M L N L M L N A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 O P Q R O P Q R ~@9
>`.pickRestart({
  A: "[d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,b4]@3 [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4] c#5@2 b4@2", // D Bm D
  B: "[e4,g#4,b4]@2 [e4,g#4,b4]@2 [e4,g#4,c#5]@3 [e4,g#4,b4]@2 [e4,g#4,b4]@2 c#5 e5@2 b4@2", // E C#m E
  C: "[d4,f#4,a4] d4 f#4 a4 f#4 d4 f#4 a4", D: "[a3,c#4,e4] a3 c#4 e4 c#4 a3 c#4 e4",
  E: "[e4,g#4,b4] e4 g#4 b4 [e4,g#4,b4] e4 g#4 b4", F: "[a3,c#4,e4] a3 c#4 e4 [e4,g#4,b4] b4 g#4 e4",
  G: "[e4,g#4,b4] e4 g#4 b4 g#4 e4 g#4 b4", H: "[b3,d4,f#4]!4", I: "~@7 [b3,d4,f#4]", J: "[a3,c#4,e4]!4",
  K: "[e4,g#4,b4]!2 [e4,g#4,b4]@2", L: "[d4,f#4,a4]!4", M: "[d4,f#4,a4] [e4,g#4] [e4,g#4]@2, ~ c#4@3",
  N: "[c#4,e4,g#4] [e4,g#4] [e4,g#4]@2, ~ c#4@3", O: "~ a4 f#4 c#5", P: "b4@3 ~", Q: "~@2 c#5@2 b4@2 f#4!2",
  R: "e4@6 f#4 a4",
})).s("gm_acoustic_guitar_steel").gain(0.3)

// chords · acoustic guitar steel · "Chitarra acustica" · soft notes
const acoustic_guitar_steel_2 = note("<~@103 A B A C A B A C D>".pickRestart({
  A: "[d4,f#4,a4]!4", B: "[d4,f#4,a4] [e4,g#4] [e4,g#4]@2, ~ c#4@3", C: "[c#4,e4,g#4] [e4,g#4] [e4,g#4]@2, ~ c#4@3",
  D: "[c#4,e4,g#4]", // C#m
})).s("gm_acoustic_guitar_steel").gain(0.2)

// other · violin · "Violino"
const violin = note(`<
  ~@14 A B A C@2 B A C@2 ~@39 A B A C@2 B A D@2 E F E G E F E G ~@7 A B A C@2 B A C@2 ~@8 E F E G E F E H@2
>`.pickRestart({
  A: "~@5 f#5 a5 f#5", B: "b5 a5 f#5 a5@2 b5@3", C: "[e6 d6 c#6 b5@2 c#6 b5 e5@2 f#5@2 a5 ~ f#5 a5 f#5]/2",
  D: "[e6 d6 c#6 b5@2 c#6 b5 e5@2 f#5@2 a5 b4 c#5 b4 a4]/2", E: "a4!4", F: "a4@2 b4 c#5 b4 a4 ~@2",
  G: "g#4@2 b4 c#5 b4 a4 ~@2", H: "[g#4@2 g#4 a4 g#4@2 f#4@4 ~@6]/2",
})).s("gm_violin").gain(0.4)

// bass · electric bass pick · "Basso elettrico"
const bass = note(`<
  ~@11 A@2 B@2 A@2 B@2 A@2 B@2 C D E C@2 F B E G H I J A@2 B@2 A@2 B@2 C D E C@2 F B E G H I J A@2 B@2 A@2 B@2 A@2 B@2
  A@2 B@2 I K I L I K I L A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 M@2 N@2 M@2 N@2 I K I L I K I L ~
>`.pickRestart({
  A: "d2@6 c#2 b1", B: "e1@6 e2 c#2", C: "d2@6 b1 c#2", D: "a1@6 c#2 a1", E: "e1@6 c#2 e2",
  F: "a1@2 c#2 d2 e2@2 b1 g#1", G: "b1!4", H: "~@3 b1", I: "a1!4", J: "e1!2 e1@2", K: "a1 e1@3", L: "g#1 e1@3",
  M: "d2!4", N: "e1!4",
})).s("gm_electric_bass_pick").gain(0.3)

// drums · kick
const kick = s("bd").struct("<A@6 ~@4 B C@21 ~ C@19 ~ C@18 ~@8 C@24 B@4 D@3 E ~>".pickRestart({
  A: "x!2 ~@6", B: "x!4", C: "x ~@2 x!2 ~@3", D: "x!8", E: "x",
})).gain(0.4)

// drums · snare
const snare = s("sd").struct("<~@10 A B@20 C D B@18 C D B@18 ~@8 B@24 E@7 ~@2>".pickRestart({
  A: "x!2 ~ x ~@12", B: "~ x ~ x", C: "~@2 x ~@3 x!2", D: "~@6 x!2", E: "x!4",
})).gain(0.4)

// drums · low tom
const low_tom = s("lt").struct("<~@10 [~@3 x] ~@101>").gain(0.45)

// drums · hihat
const hihat = s("hh").struct("<~@11 A B@11 A C@8 ~ C@10 A C@8 ~ C@18 ~@8 C@24 D@7 ~@2>".pickRestart({
  A: "~ x!7", B: "x!8", C: "x!7 ~", D: "x!4",
})).gain(0.4)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<[x!16]!6 [~@2 x ~ x ~ x ~ x ~ x ~ x!2 ~@2] [x!16]!3 ~@102>").gain(0.2)

// drums · open hat
const open_hat = s("oh").struct("<~@6 A ~@17 B@8 ~ B@10 ~ B@8 ~ B@18 ~@8 B@24 ~@9>".pickRestart({
  A: "x ~@6 x", B: "~@7 x",
})).gain(0.4)

// drums · mid tom
const mid_tom = s("mt").struct("<~@10 [~@8 x!2 ~ x ~@4] ~@101>").gain(0.45)

// drums · high tom
const high_tom = s("ht").struct("<~@10 [~@4 x!2 ~ x ~@8] ~@101>").gain(0.45)

// drums · crash
const crash = s("cr").struct("<~@11 A ~@11 A ~@19 A ~@27 A ~@3 A ~@27 A@7 B ~>".pickRestart({
  A: "x", B: "x!16",
})).gain(0.4)

stack(
  epiano1, acoustic_guitar_steel, acoustic_guitar_steel_2, violin, bass, kick, snare, low_tom, hihat, hihat_soft,
  open_hat, mid_tom, high_tom, crash
)

More by Guido Lombardo