Strudelify

Due mondi

Battisti

KeyG majorTempo100 bpm
0:00/0:00
// Due mondi — Battisti
// 100 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 8 "Batt." taiko drum (copy of ch 7 "Batt." melodic tom)
// note: Full arrangement: all 113 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/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.

// chords · synth brass 2 · "Synt."
const synth_brass_2 = note("<A B C D E B F@2 A B C D E B F@2 ~@97>".pickRestart({
  A: "[e3,e4,g4,b4]", B: "[g3,d4,g4,b4]", C: "[d3,d4,f#4,a4]", D: "[b2,d#4,f#4,a4,b4]", E: "[c3,c4,e4,g4]",
  F: "[f3,c4,f4,a4]/2", // F
})).s("gm_synth_brass_2").gain(0.35)

// chords · acoustic guitar steel · "Chit."
const acoustic_guitar_steel = note(`<
  ~@16 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 D A B C D E B F D A B C D E B F D
  A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2
>`.pickRestart({
  A: "[e4,g4,b4]@4 [e4,g4,b4]@2 [e4,g4,b4] [e4,g4,b4]@2 [e4,g4,b4] [e4,g4,b4]@2 [e4,g4,b4]@2 [e4,g4,b4]@2", // Em
  B: "[d4,g4,b4]@4 [d4,g4,b4]@2 [d4,g4,b4] [d4,g4,b4]@2 [d4,g4,b4] [d4,g4,b4]@2 [d4,g4,b4]@2 [d4,g4,b4]@2", // G
  C: "[d4,f#4,a4]@4 [d4,f#4,a4]@2 [d4,f#4,a4] [d4,f#4,a4]@2 [d4,f#4,a4] [d4,f#4,a4]@2 [d4,f#4,a4]@2 [d4,f#4,a4]@2", // D
  D: "[d#4,f#4,a4,b4]@4 [d#4,f#4,a4,b4]@2 [d#4,f#4,a4,b4] [d#4,f#4,a4,b4]@2 [d#4,f#4,a4,b4] [d#4,f#4,a4,b4]@2 [d#4,f#4,a4,b4]@2 [d#4,f#4,a4,b4]@2", // B7
  E: "[c4,e4,g4]@4 [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 [c4,e4,g4]@2", // C
  F: "[c4,f4,a4]@4 [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4] [c4,f4,a4]@2 [c4,f4,a4]@2 [c4,f4,a4]@2", // F
})).s("gm_acoustic_guitar_steel").gain(0.23)

// other · overdriven guitar · "Chit.2"
const overdriven_guitar = note(`<
  ~@16 A B C D E F G@2 ~@57 A B C D E F G@2 A B C D E F G@2 A B C D E F G@2 A B C D E F G@2
>`.pickRestart({
  A: "e4", B: "g4@2 a4 b4", C: "d5!2", D: "a4", E: "e4@2 f#4 g4", F: "b4", G: "f4/2",
})).s("gm_overdriven_guitar").gain(0.64)

// bass · electric bass finger · "Basso"
const bass = note(`<
  ~@16 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 D A B C D E B F D A B C D E B F D
  A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2 A B C D E B F@2
>`.pickRestart({
  A: "e3", B: "g3", C: "d3", D: "b2", E: "c3", F: "f3",
})).s("gm_electric_bass_finger").gain(0.64)

// other · electric guitar muted · "Chit.mut."
const electric_guitar_muted = note("<~@55 [~@4 g5!4] ~@57>").s("gm_electric_guitar_muted").gain(0.64)

// chords · melodic tom · "Batt." · E5
const melodic_tom = note(`<
  ~@16
  [[e4,b4]@2 [e4,b4]@2 [e4,b4] ~ [e4,b4] [e4,b4]@2 [e4,b4] [e4,b4]@2 [e4,b4]@2 [e4,b4]!2]!97
>`).s("gm_melodic_tom").gain(0.13)

stack(synth_brass_2, acoustic_guitar_steel, overdriven_guitar, bass, electric_guitar_muted, melodic_tom)

More by Battisti