Strudelify

Una montagna

Battisti

KeyF majorTempo140 bpm
0:00/0:00
// Una montagna — Battisti
// 140.4 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 133 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140.4/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.

// other · piano · "Coro"
const piano = note(`<
  ~@34 A B C@2 A D E ~@33 A B C@2 A D E ~ A B C@2 A D E ~@20 A B C@2 A D E ~ A B C@2 A D E ~ A B C@2 A D C@2
>`.pickRestart({
  A: "~@3 g5 a5 g5 a5 g5", B: "a5 ~@7", C: "[~@3 g5 a5 g5 e5 a5@2 ~@7]/2", D: "g5 ~@7", E: "~@3 g5 a5 g5 e5 a5",
})).s("gm_piano").gain(0.64)

// chords · piano
const piano_2 = note(`<
  ~@7 A@2 B C A@2 B C A@2 B D E A@2 B C A@2 B C A@2 B D E A@3 B A@3 B ~@2 F G ~@2 A@2 B C A@2 B C A@2 B D E A@2 B C A@2
  B C A@2 B D E A@3 B A@3 B A@3 B A@3 B ~@2 F G ~@2 A@2 B C A@2 B C A@2 B D E A@3 B A@3 B A@3 B A@3 B A@3 B A@3 B A
>`.pickRestart({
  A: "[c4,e4,g4,c5]", B: "[c4,f4,a4,c5]", C: "[bb3,d4,g4,bb4] [a3,c4,f4,a4]", D: "[c4,f4,a4,c5] [bb3,d4,f4,bb4]",
  E: "eb5 d5 c5@2 bb4 c5 d5@2", F: "eb5 f5", G: "bb4 d5 ab4 g4",
})).s("gm_piano").gain(0.13)

// other · string ensemble 1 · "Orch."
const string_ensemble_1 = note(`<
  ~ A B C@4 D E F G D E F G D E F H B D E F G D E F G D E F H B ~@10 I J ~@2 D E K G D E K G D E L H B D E K G D E K G D
  E L H B ~@16 M@2 I J M@2 N E F G D E F G D E F H B ~@25
>`.pickRestart({
  A: "f5", B: "eb5 d5 c5@2 bb4 c5 d5@2", C: "c5@2 c5@2 c5!2 ~@2", D: "g4 ~@3", E: "g4 e5 g4 ~@5", F: "a4 f5 a4 ~@5",
  G: "bb4 f5 bb4 ~ c5 f5 c5 ~", H: "a4 f5 a4 ~ bb4 f5 bb4 ~", I: "eb5 f5", J: "bb4 d5 ab4 g4",
  K: "g5@2 f5 e5 f5@2 a4@2", L: "g5@2 f5 e5 f5@2 c5@2", M: "[c5,eb5]/2", N: "g4",
})).s("gm_string_ensemble_1").gain(0.64)

// bass · electric bass finger · "Basso"
const bass = note(`<
  ~@3 A@5 B C D A B C D A B C@2 E A B C D A B C D A B C@2 E A@3 C A@3 C ~@2 F G ~@2 A B C D A B C D A B C@2 E A B C D A
  B C D A B C@2 E A@3 C A@3 C A@3 C A@3 C ~@2 F G ~@2 A B C D A B C D A B C@2 E A@3 C A@3 C A@3 C A@3 C A@3 C A@3 C H
>`.pickRestart({
  A: "c2!8", B: "e2!8", C: "f2!8", D: "g2!4 a2!4", E: "eb4 d4 c4@2 bb3 c4 d4@2", F: "eb4 f4", G: "bb3 d4 ab3 g3",
  H: "c2",
})).s("gm_electric_bass_finger").gain(0.23)

// other · epiano2 · "Synth."
const epiano2 = note("<~@41 A B ~@2 A B ~@42 A B ~@2 A B ~@38>".pickRestart({
  A: "~ c5 c6 ~@2 c5 c6 ~", B: "~ c5 c6 [c5,c6]@5",
})).s("gm_epiano2").gain(0.64)

// drums · congas
const congas = s("conga:13").struct("<A ~@40 B C@3 B C ~@42 B C@3 B C ~@38>".pickRestart({
  A: "~@6 x!2", B: "x ~ x!6", C: "x!8",
})).gain(2.05)

// drums · ht
const ht = s("ht").struct("<[~ x!2 ~ x!2 ~@2] [x!4]!2 ~@130>").gain(0.64)

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

stack(piano, piano_2, string_ensemble_1, bass, epiano2, congas, ht, cabasa)

More by Battisti