Strudelify

Liberi

Dalla

KeyC majorTempo124 bpm
0:00/0:00
// Liberi — Dalla
// 124 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(124/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.

// bass · synth bass 2
const bass = note(`<
  ~@52 A B A B A B A B C D C D C D C D C D C D C D C D C E C D ~@8 A B A B A B A B F B F G C D C D C D C D F B F G C D C
  D C D C D F B ~@3
>`.pickRestart({
  A: "c2@3 c2 c2@2 c2 ~ c2@3 c2 c2@2 c2 ~", B: "a1@2 ~ a1 a1@2 a1@2 a1@3 a1!2 ~ a1@2",
  C: "c2@3 c2!2 ~ c2 ~ c2@3 c2 c2@2 c2 ~", D: "c2@2 ~ c2 c2@2 c2@2 c2@3 c2!2 ~ c2@2", E: "c2@2 ~ c2 c2@2 ~@6 c2 ~ c2@2",
  F: "f1@3 f1 f1@2 f1 ~ f1@3 f1 f1@2 f1 ~", G: "g1@2 ~ g1 g1@2 g1@2 g1@3 g1!2 ~ g1@2",
})).s("gm_synth_bass_2").gain(0.14)

// other · pad halo
const pad_halo = note("<~@8 A B A C ~@16 A B A C ~@28 A B A C ~@32 A B D ~@17 A B ~@7>".pickRestart({
  A: "e4 f4 e4 f4 e4 f4 e4 f4 g4 a4 g4 a4 g4 a4 g4 f4", B: "e4 f4 e4 f4 e4 f4 e4 f4 g4 ~@2 g4 ~@2 g4 ~",
  C: "e4 f4 e4 f4 e4 f4 e4 d4 c4 ~@2 c4 ~@4", D: "e4 f4 e4 f4 e4 f4 e4 f4 g4 a4 g4 a4 g4 ~@3",
})).s("gm_pad_halo").gain(0.36).pan(0.7)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@3 A@8 ~@6 B C B C B C B D B D E F@4 C B C B C B C B G H I J K@4 L@3 M N@3 O P Q R O ~@7 S ~@3 S ~@3 S T U V W K@4
  L@3 M N@3 O P Q R O D B D E X@4 Y@4 G H I J X@4 Y@4 G H I Z@2
>`.pickRestart({
  A: "[~@7 c2@57]/8", B: "a2", C: "c3", D: "f2", E: "g2", F: "c2/4", G: "[c4,e4] [d4,f4], f2", H: "[e4,g4] [d4,f4], a2",
  I: "[c4,e4] [f3,a3], f2", J: "e4@8 d4@7 ~, g2, g3@7 ~", K: "[d3, g4@31 ~@33, a#4 ~@3]/4",
  L: "[[d#4,g4] [f4,g#4] [f4,g#4] a#4 a#4 c5, d#3, ~ g4]/3", M: "[f3,a#3,f4,a#4]", N: "[~ a2 c3, c5@47 ~]/3",
  O: "c5 d5 e5 g5, a2", P: "[c3,c5]", Q: "[a2,a4]", R: "[c3,g4]", S: "[d#5,g5]@13 ~@3", T: "~@10 c3@3 d3@2 ~",
  U: "e3@2 f3 ~ e3 ~ d3 ~ c3@2 ~ d3@2 ~@3", V: "~@10 [g3,g4]@2 ~ [g3,g4]@2 ~",
  W: "a4@2 [g3,g4] ~ [g3,g4] ~ [e3,e4] ~ [g3,g4]@2 ~ [a3,a4]@3 ~@2, a3 ~@15", // G E G A
  X: "[~@8 e5 f5 e5 d5 c5@10 ~@10, c3@63 ~]/4", Y: "[~@8 e5 f5 e5 d5 c5@19 ~, c3@63 ~]/4",
  Z: "[e4 d4 [c2,c4]@2, g3, g2 ~]/2", // C
})).s("gm_string_ensemble_1").gain(0.22)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note("<~@64 A@2 B@2 A@2 B@2 ~@53>".pickRestart({
  A: "[~@5 [e4,e5]@18 ~@5 [d4,f4]@4]/2", B: "[[d#4,g4]@5 ~@3]/2",
})).s("gm_acoustic_guitar_nylon").gain(0.27)

// other · orchestra hit
const orchestra_hit = note("<~@77 [~@8 c4@2 ~ d4@2 ~@3] ~@47>").s("gm_orchestra_hit").gain(0.4)

// other · timpani
const timpani = note(`<
  ~@43 A B ~@7 C ~ C ~ C ~ C ~@18 D ~@2 B ~@7 C ~ C ~ C ~ C ~@5 C ~ C ~ C ~ C ~@5 C ~ C ~ C ~ C ~@6
>`.pickRestart({
  A: "~@14 g2!2", B: "c2 ~@3", C: "c2@5 ~@11", D: "~@8 c2@2 ~ c2 ~@4",
})).s("gm_timpani").gain(0.36)

// other · electric guitar muted
const electric_guitar_muted = note("<~@6 [~@2 c3!2 ~@4 c3!2 ~@2 c#3 d3 d#3 e3] ~@118>")
  .s("gm_electric_guitar_muted").gain(0.11)

// drums · kick
const kick = s("bd").struct("<[x!4]!122 ~@3>").gain(0.44)

// drums · snare
const snare = s("sd").struct(`<
  ~@51
  [~@10 x!6]
  [~@4 x ~@2 x ~@4 x ~@3]!28
  ~@7
  [~@10 x!6]
  [~@4 x ~@2 x ~@4 x ~@3]!34
  ~@3
>`).gain(0.27)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@51 A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@3 B ~@7 A ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B
  ~ B ~ B ~ B ~ B ~@3
>`.pickRestart({
  A: "~@6 x!4 ~@6", B: "~@11 x ~@4",
})).gain(0.16)

// drums · clap
const clap = s("cp").struct("<~@40 [~ x ~ x]!4 ~@8 [~ x ~ x]!28 ~@8 [~ x ~ x]!34 ~@3>").gain(0.33)

// drums · hihat
const hihat = s("hh").struct("<[x!16]!122 ~@3>").gain(0.33)

stack(
  bass, pad_halo, string_ensemble_1, acoustic_guitar_nylon, orchestra_hit, timpani, electric_guitar_muted, kick, snare,
  snare_soft, clap, hihat
)

More by Dalla