Strudelify
Tu puoi cover art

1995 · Lungo Le Vie Del Vento

Tu puoi

Nomadi

KeyD minorTempo127 bpm
0:00/0:00
// Tu puoi — Nomadi
// 127 bpm, 4/4, key D minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 126 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(127/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass pick
const bass = note(`<
  A B C D A B C D E F E G E F E G E F E G H I H G H I H J H I H J H I H J H I E G H I H K H I H L H I H K A B C D A B C
  D E F E G E F E G E F E G H I H G H I H J H I H J H I H J H I E G H I H K H I H L H I H K A B C D A B C D H I H J H I
  H J A B C M ~@2
>`.pickRestart({
  A: "d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2 ~@3", B: "g1 ~ g1 ~@3 g1 ~ g1@2 ~@2 g1@2 ~@2",
  C: "d2 ~ d2@2 ~@2 d2 ~ d2@2 ~@2 d2@2 ~@2", D: "c2 ~ c2@2 ~@2 c2 ~ c2@2 ~@2 c2@2 ~@2", E: "d2@2 f2@2 d2 f2 d2@2",
  F: "g1@5 ~ d2@2 g2@2 g2@2 a2@4", G: "c2@6 a1@2 c2 ~ c2@2 a1@4", H: "d2@2 f2@2 a2 f2 d2@2", I: "g1@3 d2@2 g2 a2@2",
  J: "c2@3 a1@2 c2 a1@2", K: "c2@3 a1 c2!2 a1@2", L: "c2@3 a1 c2!2 a1 c2", M: "c2",
})).s("gm_electric_bass_pick").gain(0.64)

// other · electric guitar muted
const electric_guitar_muted = note(`<
  ~@8 A B C D A B C D A B C D A B C D A B C D A E C D A E C D A E C D A E C D A E C D ~@4 F ~@7 A B C D A B C D A B C D
  A B C D A B C D A E C D A E C D A E C D A E C D A E C D ~@12 A B C D A E C D F ~@5
>`.pickRestart({
  A: "c4 ~ d4 ~ d4 ~@5 c4 ~ d4 ~ f4 ~", B: "g4 ~ g4 ~ g4 ~@5 f4 ~ g4 ~ f4 ~", C: "c4 ~ d4 ~ d4 ~@5 d4 ~ f4 ~ d4 ~",
  D: "c4 ~ c4 ~ c4 ~@3 c5!5 ~ c4 ~", E: "g4 ~ g4 ~ f4 ~@5 f4 ~ g4 ~ f4 ~", F: "c4 ~ d4 ~@13",
})).s("gm_electric_guitar_muted").gain(0.45).pan(0.1)

// other · pad choir
const pad_choir = note(`<
  ~@7 A@2 B C ~@2 D@3 ~ E@2 F ~ G@3 ~ H I@2 ~ J K@2 ~ L M N ~ O P Q ~ R@2 N ~ S T N ~ S T N ~@7 A@2 U V W ~ B X Y ~ Z@3
  ~ AA AB F ~ AC AD ~@2 AE AF ~@2 AE AG ~@2 AH P Q ~ AI@2 N ~ AJ T N ~ AK AL@2 ~@9 AK AM@2 ~ AK AM@2 ~@6
>`.pickRestart({
  A: "[~@6 c5@3 a4@2 ~@5]/2", B: "~@2 a4 ~ a4 ~ a4@2 g4 ~ g4@2 c5 ~ c5@2", C: "a4 ~ a4 ~ a4 ~ a4 ~ a4 ~ a4@3 ~ a4@2",
  D: "[~@2 a4@2 a4@2 a4 ~ g4@2 g4@2 c5@2 c5 a4@3 a4@2 a4@2 a4 a4@3 a4@2 a4@3 a4@2 ~@15]/3",
  E: "[~@2 a4 ~ a4 ~ a4 ~ g4 ~ g4 ~ c5 ~ c5 a4@3 a4 ~ a4 ~ a4 ~ a4 ~ a4 a4@2 ~ a4@2]/2", F: "~ a4@10 ~@5",
  G: "[~@2 a4 ~ a4 ~ a4 ~ g4 ~ g4@2 c5 ~ c5@6 ~@2 a4@2 ~ a4 ~@2 a4 ~ a4@6 ~ a4@10 ~, ~@7 a4@2 ~@39]/3",
  H: "~@2 d5 ~ d5 ~ d5 ~ f5 ~ f5 ~ f5@2 g5@2", I: "[f5@2 d5!3 ~ d5 ~ d5@2 d5 ~ d5 ~ d5 d5@2 ~ d5@2 ~@12]/2",
  J: "~@2 d5 ~ d5 ~ d5@2 f5 ~ f5!2 f5@2 g5@2", K: "[f5@2 d5 ~ d5 ~ d5 ~ d5 ~ d5 ~ d5 ~ d5 d5@2 ~ d5@2 ~@12]/2",
  L: "~@2 d5 ~ d5 ~ d5@2 f5 ~ f5 ~ f5@2 g5@2", M: "f5@2 d5!3 ~ d5 ~ d5@2 d5@2 ~ d5@2 ~", N: "d5@2 ~ d5@2 ~@11",
  O: "~ d5 c5@3 ~ c5 ~ bb4 ~ bb4@2 a4 g4@3", P: "a4@2 d4@2 a4 ~ a4@2 a4 ~ a4@2 a4 ~ a4@2", Q: "~ a4@3 ~ a4@3 ~@8",
  R: "[~@2 d5@6 f5 ~ f5 ~ f5@2 g5 f5@3 d5@2 d5 ~ d5 ~ d5 ~ d5 ~ d5 d5@2 ~]/2", S: "~@4 d5 ~ d5@2 f5 ~ f5 ~ f5@2 g5@2",
  T: "f5@2 d5@2 ~@2 d5 ~ d5 ~ d5 ~ d5 ~ d5 ~", U: "~@2 a4 ~ a4 ~ a4 ~ g4 ~ g4 ~ c5 ~ c5 ~",
  V: "a4 ~ a4 ~ a4 ~ a4 a4@3 ~@3 a4@2 ~", W: "a4@3 ~@13", X: "a4 ~ a4 ~ a4 ~ a4 a4@2 ~ a4@2 ~@2 a4@2", Y: "~ a4@4 ~@11",
  Z: "[~@2 a4 ~ a4 ~ a4 ~ g4 ~ g4 ~ c5 ~ c5 a4@2 a4@2 ~@5 a4 ~ a4 ~ a4 ~ a4 a4@2 ~ a4@3 ~ a4@9 ~]/3",
  AA: "~@2 a4 ~ a4 ~ a4!2 g4 ~ g4@2 c5 ~ c5 ~", AB: "~ a4@2 g4 a4 a4@3", AC: "~@2 d5 ~ d5@2 d5 f5@2 f5@2 f5@2 g5@2 ~",
  AD: "f5@2 d5 ~ d5 ~ d5 d5@3 d5@2 ~@4", AE: "~@2 d5 ~ d5 ~ d5 f5@2 ~ f5@2 f5@2 g5 ~",
  AF: "f5@2 d5 ~ d5@2 ~ d5@3 d5 d5@3 d5@2", AG: "~ d5@2 d5@2 ~ d5@2 ~ d5@2 d5 ~@2 d5@2, f5 ~@7",
  AH: "~@2 c5@4 bb4@3 ~ bb4@2 a4@2 g4 ~", AI: "[~@4 d5@4 f5 ~ f5 ~ f5 g5@2 f5@2 d5@2 ~ d5 ~ d5 ~ d5 ~ d5!2 ~ d5@2 ~]/2",
  AJ: "~@4 d5 ~ d5@2 f5 ~ f5 ~ f5 g5@3", AK: "~@4 d5 ~ d5@2 [f5,g5] ~ f5 ~ f5@2 g5@2",
  AL: "[f5@2 d5@2 ~@2 d5 ~ d5 ~ d5 ~ d5 ~ d5 d5@2 ~ d5@2 ~@12]/2",
  AM: "[f5@2 d5@2 ~@2 d5 ~ d5 ~ d5 ~ d5 ~ d5 d5@3 ~ d5@2 ~@11]/2",
})).s("gm_pad_choir").gain(0.31)

// chords · piano
const piano = note(`<
  A B C D E B C F G H G I G J G K G J G I L J M N ~@12 O P G Q O J O R O J O S ~@4 A B C D E B C F G H G I G J G K G J G
  I L J M N ~@12 O P G Q O J O R O J O S ~@4 A B C D E B C F ~@8 A B C T@3
>`.pickRestart({
  A: "[d4,f4] ~ [d4,f4] ~@3 [d4,f4,a4] ~ [d4,f4,a4] ~@3 [f4,a4]@4, a4 ~@5 d4 ~", // Dm F
  B: "[d4,g4,bb4] ~ [d4,g4,bb4] ~@3 [d4,g4,bb4] ~ [d4,g4,bb4] ~@3 [d4,g4,bb4]@3 ~", // Gm
  C: "[d4,f4,a4] ~ [d4,f4,a4] ~@3 [d4,f4,a4] ~ [d4,f4,a4] ~@3 [d4,a4]@4, ~@6 f4 ~", // Dm D5
  D: "[c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4]@2 ~@2, ~@3 g4", // C
  E: "[d4,f4,a4] ~ [d4,f4,a4] ~@3 [d4,f4,a4] ~ [d4,f4,a4] ~@3 [d4,f4,a4]@4", // Dm
  F: "[c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4] ~ [c4,e4,g4] ~@3 [c4,e4,g4]@3 ~", // C
  G: "~ [d4,f4,a4] ~ [d4,f4,a4] d2 [f2,d4,f4,a4] ~ [d4,f4,a4], d2 f2 ~ d2", // Dm
  H: "g1@2 [d4,g4,bb4]@2 ~@2 [d4,g4,bb4]@3 ~ [d4,g4,bb4]@2 ~@2 [d4,g4,bb4]@2", // Gm
  I: "~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~@2 [c4,e4] ~, c2@2 ~@5 g4", // C
  J: "~@2 [d4,g4,bb4]@2 ~@2 [d4,g4,bb4]@3 ~ [d4,g4,bb4]@3 ~ [d4,g4,bb4]@2, g1 ~@3", // Gm
  K: "~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~@2 [c4,e4] ~, c2@5 ~@9 g4@2", // C
  L: "~ [d4,f4] ~ [d4,f4] a2 [f2,d4,f4,a4] ~ [d4,f4,a4], d2 f2 ~ d2, ~@2 a4 ~@3 a4 ~@9", // Dm
  M: "~ [d4,f4,a4] ~@3 [d4,f4,a4] d2 [d4,a4], d2@4 ~@10 f4 ~", // Dm D5
  N: "~@2 [c4,e4,g4] ~@7 [c4,e4,g4]@2 ~@2 [c4,e4,g4] ~, c2 ~@3", // C
  O: "~ [d4,f4,a4] ~ [d4,f4,a4] a2 [f2,d4,f4,a4] ~ [d4,f4,a4], d2 f2 ~ d2", // Dm
  P: "~@2 [d4,g4,bb4]@2 ~@2 [d4,g4,bb4]@3 ~ [d4,g4,bb4]@2 ~@2 [d4,g4,bb4]@2, g1 ~@3", // Gm
  Q: "~@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~@4 [c4,e4,g4]@3 ~, c2 ~@3", // C
  R: "~ [c4,e4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4], c2 ~@3, ~@2 g4 ~@13", // C
  S: "c2@2 [c4,e4,g4]@2 ~@2 [c4,e4,g4]@3 ~ [c4,e4,g4]@2 ~@2 [c4,e4,g4]@2", // C
  T: "[~@16 e7@31 ~, c2@5 c4@5 g5@5 c7@32 ~, ~ c3@5 g4@5 c6 e6@32 ~@4, ~@2 g3@5 c5 e5@5 c6@32 ~@3, ~@3 c4 e4@5 c5@5 g6@32 ~@2]/3",
})).s("gm_piano").gain(0.64).pan(0.4)

// chords · percussive organ
const percussive_organ = note(`<
  ~@11 A B ~@2 A B ~@2 A B ~@3 C@3 D E@2 F D E@2 F D G ~@2 A B ~@2 A B ~@3 H@3 I ~@11 A B ~@2 A B ~@2 A B ~@3 C@3 D E@2
  F D E@2 F D G ~@2 A B ~@2 A B ~@3 H@3 I ~@8 C@3 D E@2 F D ~@6
>`.pickRestart({
  A: "~@3 [g4,c5,e5]", B: "[a4,d5,f5] ~@3", C: "[[a4,f5]@15 ~ [bb4,g5]@16 [a4,f5]@16, d5]/3", D: "[g4,c5,e5]",
  E: "[[a4,d5,f5]@11 ~ [a4,f5]@4 [bb4,g5]@11 ~ [bb4,d5,g5]@4, ~@12 d5@15 ~@5]/2", F: "[a4,d5,f5]@3 [a4,d5,f5]",
  G: "[a4,d5,f5] ~@15", // Dm
  H: "[[a4,d5,f5]@11 ~ [a4,f5]@4 [bb4,g5]@11 ~ [bb4,g5]@4 [a4,f5]@12 [a4,d5,f5]@4, ~@12 d5@15 ~ d5@16 ~@4]/3", // Dm Eb Dm
  I: "[g4,c5,e5]@11 ~ [g4,c5,e5]@3 ~", // C
})).s("gm_percussive_organ").gain(0.29).pan(0.4)

// other · overdriven guitar
const overdriven_guitar = note(`<
  A B@2 C D E F@2 G ~@43 A B@2 C D E H I J ~@43 K L@2 M@3 N@3 ~@7 O@2 P Q@3
>`.pickRestart({
  A: "c5 a4 c5 a4 [a4,c5] c5 a4 c5 [a4,c5] a4 c5 [a4,c5] a4 c5 [a4,c5] a4", // Am
  B: "[c5 a4 c5 [a4,c5] a4 c5 a4 c5 [a4,c5] a4 ~ g5@14 g5@7, ~@5 c5 ~@10]/2", // Am
  C: "c5@2 f5 c5@2 f5 c5@2 f5 c5@2 f5 [c5,f5]@2 c5@2", // F5
  D: "d5 ~ e5 ~ f5@2 d5 c5 ~ d5@3 db5 [bb4,b4,c5] [gb4,g4,ab4,a4] [e4,f4]", E: "[d5,f5] a5@5 d6@2 ~ g5@7",
  F: "[~@2 f5 [c5,d5] a4 g4 [g4,a4] a4 f4 e4 [c4,d4] e4 d4@2 g4@12 f4@2 g4@3 [f4,gb4]]/2", G: "[eb4,e4] [db4,d4] ~@14",
  H: "f5 d5 [a4,c5] d5 c5 a4 [a4,d5] g4 a4 g4 [e4,f4] d4 a4 g4 [e4,f4] c4", I: "c4@2 g4@12 [f4,gb4] [eb4,e4]",
  J: "[db4,d4] ~@15", K: "c5 a4 c5 [a4,c5] a4 c5 [a4,c5] a4 [a4,c5] c5 a4 [a4,c5] c5 a4 c5 [a4,c5]",
  L: "[a4 c5 [a4,c5] a4@2 ~ g5@8 g5@12 [ab3,a3] [f3,gb3,g3] [d3,eb3,e3] db3 ~@2]/2", // Am Amaj7
  M: "[c5 d5 f5 c5 ~ f5 [c5,d5] f5 c5 d5 [c5,f5] d5@2 ~@9 d5 c5 d5@4 d5 a5@8 d6 a5 g5@7 ~ f5, ~@4 d5@2 ~@7 e5@11 ~@24]/3", // Csus2 F5
  N: "[d5!2 [c5,d5] c5 a4!2 [g4,a4] g4 f4 e4 [d4,g4] c4 f4 ~ g4@16 f4@18]/3", // Csus2 Gsus2 G5
  O: "[~@11 g5@9 f5 [c5,e5] a4 g4 a4@6 g4 ~]/2", P: "~@2 [e4,f4] d4 a4 c5 [f4,a4] d4 c5@6 d5@2", Q: "c5/3",
})).s("gm_overdriven_guitar").gain(0.48).pan(0.4)

// drums · kick
const kick = s("bd").struct("<A@8 B@44 A@8 B@44 A@8 B@8 A@3 C ~@2>".pickRestart({
  A: "x ~ x!2", B: "x!2", C: "x",
})).gain(0.8)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<[~ x ~ x ~@4]!8 ~@44 [~ x ~ x ~@4]!8 ~@44 [~ x ~ x ~@4]!8 ~@8 [~ x ~ x ~@4]!3 ~@3>")
  .gain(0.48)

// drums · snare
const snare = s("sd").struct("<A@8 B@44 A@8 B@44 A@7 C B@8 A@2 C D ~@2>".pickRestart({
  A: "x ~ x!2", B: "~ x ~ x", C: "x ~@7 x ~@3 x ~ x!2", D: "x",
})).gain(0.72)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<A B@7 ~@44 A B@7 ~@44 A B@7 ~@8 A B@2 ~@3>".pickRestart({
  A: "~@2 x ~@3 x ~@7 x!2", B: "~ x ~ x ~@4",
})).gain(0.32)

// drums · hihat
const hihat = s("hh").struct(`<
  A@8 B C@3 B C@3 B C@3 B C@3 ~@12 B C@3 B C@3 B C@3 ~@4 A@8 B C@3 B C@3 B C@3 B C@3 ~@12 B C@3 B C@3 B C@3 ~@4 A@8 ~@8
  A@3 ~@3
>`.pickRestart({
  A: "~ x ~ x!2 ~ x ~", B: "~ x!3", C: "x!4",
})).gain(0.64)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct("<A ~@7 B@16 ~@12 B@12 ~@4 A ~@7 B@16 ~@12 B@12 ~@4 A ~@15 A ~@5>".pickRestart({
  A: "x", B: "~ x ~ x ~ x ~ x",
})).gain(0.32)

// drums · mid tom
const mid_tom = s("mt").struct("<~@47 [~ x] ~@51 [~ x] ~@26>").gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  ~@8 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B A ~@3 A ~@3 A ~@3 A ~@3 A ~@11 A ~@3 A ~@3 A ~@3 A ~@3 A ~@3 A ~@2 B A ~@3 A
  ~@3 A ~@3 A ~@3 A ~@11 A ~ A ~ A ~ A B ~@3 A ~@2
>`.pickRestart({
  A: "x", B: "~@7 x",
})).gain(0.56)

// drums · ride
const ride = s("rd").struct(`<
  ~@24 A B@3 A B@2 C A B@3 ~@12 A B@3 ~@24 A B@3 A B@2 C A B@3 ~@12 A B@3 ~@8 A B A B A B A C ~@6
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x!7 ~",
})).gain(0.48)

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

stack(
  bass, electric_guitar_muted, pad_choir, piano, percussive_organ, overdriven_guitar, kick, kick_soft, snare,
  snare_soft, hihat, hihat_soft, mid_tom, crash, ride, lt
)

More by Nomadi