Strudelify

Anima latina

Battisti

KeyD majorTempo112 bpm
0:00/0:00
// Anima latina — Battisti
// 111.6 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 45 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(111.6/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.

// chords · electric guitar clean · "Chit."
const electric_guitar_clean = note("<A@2 B@4 C@4 D@4 E@3 F G B@4 C@2 E H A@2 B@4 C@4 D@2 I@2 E H J K>".pickRestart({
  A: "[e4,g4,b4,e5]@2 [e4,g4,b4,e5] [e4,g4,b4,e5]@2 [e4,g4,b4,e5]!2 ~", // Em
  B: "[e4,g4,b4,d5,e5]@2 [e4,g4,b4,d5,e5] [e4,g4,b4,d5,e5]@2 [e4,g4,b4,d5,e5]!2 ~", // Em7
  C: "[d4,f#4,b4,d5,e5]@2 [d4,f#4,b4,d5,e5] [d4,f#4,b4,d5,e5]@2 [d4,f#4,b4,d5,e5]!2 ~", // Bm
  D: "[d4,g4,b4,d5]@2 [d4,g4,b4,d5] [d4,g4,b4,d5]@2 [d4,g4,b4,d5]!2 ~", // G
  E: "[d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4,d5,f#5] [d4,f#4,a4,d5,f#5]@2 [d4,f#4,a4,d5,f#5]!2 ~", // D
  F: "[f#4,a4,d5]@3 [e4,a4,d5]@2 [d4,a4,d5]@3 [f#4,a4,d5]@3 [e4,a4,d5]@2 [d4,a4,d5]@3", // D Dsus2 D5 D Dsus2 D5
  G: "[e4,a4,c#5]@3 [d4,a4,b4]@2 [c#4,a4,c#5]@3 [b3,g4,b4]@8", // A Bm7 F#m Em
  H: "[e4,a4,c#5,e5]@2 [e4,a4,c#5,e5] [e4,a4,c#5,e5]@2 [e4,a4,c#5,e5]!2 ~", // A
  I: "[c#4,f#4,a4,c#5,e5]@2 [c#4,f#4,a4,c#5,e5] [c#4,f#4,a4,c#5,e5]@2 [c#4,f#4,a4,c#5,e5]!2 ~", // F#m7
  J: "e4!2 [e4,g4,b4,e5] e4!2 [e4,g4,b4,e5]!2 e4, [g4,b4,e5]@2 ~ [g4,b4,e5]@2 ~@3", // Em
  K: "[e4,g4,b4,e5]!2 ~@3 [e4,g4,b4,e5] ~@2", // Em
})).s("gm_electric_guitar_clean").gain(0.08)

// bass · electric bass pick · "Basso"
const bass = note("<A@6 B@4 C@4 D@3 E F A@4 B@2 D G A@6 B@4 C@2 G@2 D G A H>".pickRestart({
  A: "e2", B: "b1", C: "g2", D: "d2", E: "f#3@3 e3@2 d3@3 f#3@3 e3@2 d3@3", F: "e3@3 d3@2 c#3@3 b2@8", G: "a1",
  H: "e2@2 ~@3 e2 ~@2",
})).s("gm_electric_bass_pick").gain(0.34)

// drums · bongos
const bongos = s("bongo:18").struct(`<
  [~@2 x ~@3 x ~@3 x ~@2 x ~@2]!17
  ~@2
  [~@2 x ~@3 x ~@3 x ~@2 x ~@2]!25
  [~ x ~@3 x ~@2]
>`).gain(1.68)

// drums · congas
const congas = s("conga:33").struct(`<
  [x ~ x ~ x ~@2 x ~ x ~@2 x ~ x ~]!17
  ~@2
  [x ~ x ~ x ~@2 x ~ x ~@2 x ~ x ~]!25
  [x!2 ~@3 x ~@2]
>`).gain(2.05)

// drums · mt
const mt = s("mt").struct("<[~@2 x ~ x ~@2 x]!17 ~@2 [~@2 x ~ x ~@2 x]!25 ~>").gain(0.64)

// drums · agogo bells
const agogo_bells = s("agogo:2").struct("<~@44 [~@5 x ~@2]>").gain(4.08)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<[x!2]!17 ~@2 [x!2]!25 x>").gain(3.24)

stack(electric_guitar_clean, bass, bongos, congas, mt, agogo_bells, cabasa)

More by Battisti