Strudelify
Perche Non Torna Piu cover art

1993 · Laura Pausini

Perche Non Torna Piu

Laura Pausini

KeyA minorTempo137 bpm
0:00/0:00
// Perche Non Torna Piu — Pausini laura
// 137 bpm, 4/4, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 146 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(137/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 · fretless bass · "FRETLESS"
const bass = note(`<
  A@2 B C D E F G H I J K L M N O P Q R S T I U V W X Y Z I@2 AA AB AC AD Y AE K AF AG@2 AC AD Y AH T I AI@2 M AJ AK AC
  AL AM H I J AN M@2 N O AC X AO Z I AP AA AQ AC AD Y AE AR AF AK AS AC AD Y AT AU I K AV@2 AW AX@2 AC AY AZ BA K BB AK
  AB AC AD BC BA K BD BE@2 I AC K AF AK BF BE@2 I AC K AF AK BF BE@2 I AC K AF AK BF BE@2 I AC K AF AK BF BG@2 BH E BI
  BJ D BK@2 ~
>`.pickRestart({
  A: "d2/2", B: "c#2", C: "f#1@7 ~", D: "b1", E: "a1", F: "g#1", G: "c#2@4 ~ c#2@3", H: "f#1@4 ~@2 f#1 ~ f#1@4 ~@4",
  I: "e1@4 ~@2 e1 ~ e1@6 ~@2", J: "d2@4 ~@2 d2 ~ d2@4 ~@4", K: "d2@4 ~@2 d2 ~ d2@6 ~@2", L: "c#2@4 ~@2 c#2 ~ c#2@4 ~@4",
  M: "c#2@4 ~@2 c#2 ~ c#2@7 ~", N: "b1@4 ~@2 b1 ~ b1@4 ~@4", O: "c#2@4 ~@2 c#2 ~ c#2@2 b1@6",
  P: "a1@4 ~@2 a1 ~ a1@4 ~@4", Q: "a1@4 ~@2 a1 ~ a1@3 ~ a1@4", R: "g#1@4 ~@2 g#1 ~ g#1@6 ~@2",
  S: "g#1@5 ~ g#1 ~ g#1@3 ~ e1@4", T: "f#1@4 ~@2 f#1 ~ f#1@6 ~@2", U: "d2@4 ~@2 d2 ~ d2@7 ~",
  V: "e2@5 ~ e2 ~ e2@4 b1@4", W: "a1@4 ~@2 a1 ~ a1@3 ~ a1@3 ~", X: "g1@4 ~@2 g1 ~ g1@4 ~@4", Y: "f1@5 ~ f1 ~ f1@7 ~",
  Z: "f2@4 ~@2 f2 ~ c2@3 ~ f1@3 ~", AA: "d#2@5 ~ d#2 ~ d#2@6 ~@2", AB: "e2@5 ~ e2 ~ e2@4 e1@3 ~",
  AC: "a1@4 ~@2 a1 ~ a1@6 ~@2", AD: "g1@5 ~ g1 ~ g1@7 ~", AE: "e1@4 ~@2 e1 ~ e1@7 ~", AF: "c2@4 ~@2 c2 ~ c2@6 ~@2",
  AG: "[b1@5 ~ b1 ~ b1@5 ~@3 e1@5 ~ e1 ~ e1@3 ~ e1@3 ~, ~@14 e2@7 ~@11]/2", AH: "b1@5 ~ b1 ~ e1@4 c#2@3 ~",
  AI: "[d2@4 ~@2 d2 ~ d2@5 ~ d2@7 ~ d2 ~ d2@7 ~]/2", AJ: "f#1@4 ~@2 f#1 ~ f#2@4 f#1@4", AK: "b1@4 ~@2 b1 ~ b1@6 ~@2",
  AL: "g#1@4 ~@2 g#1 ~ g#1 ~ g#1@2 b1@2 g#1@2", AM: "c#2@4 ~@2 c#2 ~ c#2@4 g#1@4", AN: "d2@4 ~@2 d2 ~ a1@4 d1@4",
  AO: "f1@4 ~@2 f1 ~ f1@4 c2@4", AP: "e1@4 ~@2 e1 ~ e2@3 ~ c2@3 ~", AQ: "e2@5 ~ e2 ~ e2 ~ e2@6",
  AR: "d1@5 ~ d1 ~ d1@7 ~", AS: "e2@5 ~ e2 ~ e2@3 ~ e1@3 ~", AT: "b1@4 ~@2 b1 ~ c#2@4 c#1@4",
  AU: "f#1@2 f#1@2 ~@2 f#1 ~ f#1@7 ~", AV: "[d2@4 ~@2 d2 ~ d2@4 ~@2 c2@5 ~@3 c2 ~ c2@7 ~]/2",
  AW: "f1@4 ~@2 f1 ~ f1@4 f2@3 ~", AX: "[b1@4 ~@2 b1 ~ b1@6 e1@5 ~@3 e1@3 ~ e2@2 b1@2 d2 ~]/2",
  AY: "g1@5 ~ g1 ~ g1@4 g2@4", AZ: "f2@4 ~@2 f2 ~ f2@7 ~", BA: "e2@4 ~@2 e2 ~ e2@8", BB: "c2@4 ~@2 c2 ~ c2@4 ~@4",
  BC: "f1@4 ~@2 f1 ~ f2@8", BD: "e2@5 ~ e2 ~ e2@7 ~", BE: "[f1@4 ~@2 f1 ~ f1@5 ~ f1@6 ~@2 f1 ~ f1@6 ~@2]/2",
  BF: "e2@4 ~@2 e2 ~ b1@4 f1@4", BG: "f1/2", BH: "e1", BI: "d2", BJ: "c2", BK: "[e1@31 ~]/2",
})).s("gm_fretless_bass").gain(0.52)

// other · vibraphone
const vibraphone = note(`<
  ~@8 A@2 B@2 C@2 D E F@2 G@2 H@3 ~ I@2 J@2 K@2 L@2 M N@2 O@2 P@2 Q M R@2 S@2 T@2 ~@7 A@2 B@2 C@2 D E U@2 J@2 K@2 L@2 M
  N@2 O@2 P@2 Q M R@2 S@2 ~@2 V W@4 M N@2 O@2 P@2 Q M X@2 O@2 Y@2 ~@15 Z ~@25
>`.pickRestart({
  A: "[d4@2 c#4 d4@2 c#4@2 d4@3 c#4 d4@2 c#4@2 ~]/2", B: "[c#4@2 b3 c#4@2 b3@2 c#4@3 ~ b3 c#4@2 b3@2]/2",
  C: "[b3@2 a3 b3@2 a3 b3@4 a3 b3@2 a3@2 ~]/2", D: "a3@2 g#3 g#3@3 ~@2", E: "g#3@2 b3 g#3@3 ~@2",
  F: "[f#4@2 e4 f#4@2 e4@2 f#4@2 e4@2 a4@2 e4@2 ~]/2", G: "[e4@2 d4 e4@2 d4@2 e4@3 ~@3 a3 b3@2]/2",
  H: "[d4@2 c#4 d4@2 c#4@2 d4@2 c#4@2 ~ f#4@2 c#4 b3@3 ~@6]/3", I: "[f4@2 e4 f4@2 e4@2 f4@3 e4 f4@2 e4@2 ~]/2",
  J: "[e4@2 d4 e4@2 d4@2 e4@2 d4@3 ~ c4 d4@2]/2", K: "[e4@2 e4 e4@2 g4@2 f4@2 e4@3 ~@2 a4 b4]/2",
  L: "[c5@2 c5 c5@2 d5@2 c5@3 b4 b4@2 a4@2 ~]/2", M: "c5", N: "[b4@2 a4 g4@2 e4@2 a4@7 ~@2]/2",
  O: "[g4@2 f#4 g4@2 c5@2 f4@5 ~@4]/2", P: "[e4@2 d4 c4@2 d4@2 e4@2 e4@2 ~ e4@2 d4@2]/2", Q: "f4@2 e4 a4@2 b4@3",
  R: "[b4@2 a4 b4@2 c5@2 a4@8 ~]/2", S: "[b4@2 a4 b4@2 c#5@2 a4@7 ~@2]/2", T: "[g#4@2 f#4 g#4@2 a4@2 f#4@5 ~@4]/2",
  U: "[f4@2 e4 f4@2 e4@2 f4@3 e4 a4@2 e4@2 ~]/2", V: "~@5 d4@2 e4",
  W: "[f4@2 e4 f4@2 e4@2 f4@2 e4@3 a4@2 e4 e4@2 d4@2 e4@2 d4@2 f4@2 e4@2 a4@2 b4@3]/4",
  X: "[b4@2 a4 b4@2 c5@2 a4@7 ~@2]/2", Y: "[a4@2 g#4 c5@2 b4@4 a4@4 ~@3]/2", Z: "~ a4@4 ~@3",
})).s("gm_vibraphone").gain(0.4)

// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
  A@2 B@2 C D E F@2 ~@23 G H I J K@2 L M G H I H N@4 O@2 P Q R S ~@16 G H I J K@2 L M G H I ~ T@2 U@6 G H I J K@2 L V G
  H I J W X Y@2 Z@2 AA AB C AC Y@2 Z@2 AA AB C AC Y@2 Z@2 AA AB C AC Y@2 Z@2 AA AB C AC Y@2 Z@2 AA AB C B@2 ~
>`.pickRestart({
  A: "[f#5@13 g#5@3]/2", B: "[e5@31 ~]/2", C: "e5@3 d5@5", D: "d5@3 c#5@5", E: "c#5@3 b4@5", F: "[d5@5 c#5@9 ~@2]/2",
  G: "c6", H: "b5", I: "a5", J: "g5", K: "[f5@15 e5@17]/2", L: "d5", M: "e5", N: "[c#6 f#6]/4", O: "[f#6@6 e6@25 ~]/2",
  P: "e6@3 d6@5", Q: "d6@5 c#6@10 ~", R: "c#6@3 b5@5", S: "d6@3 c#6@5",
  T: "[d6@3 c#6@3 d6@4 c#6@4 d6@4 c#6@6 d6@3 c#6@2 d6@3]/2",
  U: "[c#6@4 b5@2 c#6@4 b5@4 c#6@4 b5@5 d5@4 e5@2 ~ c5@15 a4@16 ~ e4@32 ~@2]/6", V: "e5@3 a5@2 b5@3", W: "f5",
  X: "a5@3 ~ g#5@2 c6@4 b5@6", Y: "[a5@13 b5@3]/2", Z: "g5/2", AA: "g5@3 f5@5", AB: "f5@6 e5@9 ~", AC: "f5@5 e5@3",
})).s("gm_string_ensemble_1").gain(0.08)

// chords · pad warm · "WARM PAD"
const pad_warm = note(`<
  A@2 B@2 C D E F G@4 H@3 I@7 J K@8 L M@2 N@2 O@4 P Q@2 R@3 S@2 T@2 C D E F G@4 H@3 U ~@3 V@4 L M@2 N@2 O@4 P Q@2 W G@4
  X@4 Y@2 N@2 O@4 Z@2 N@2 AA@2 AB@2 AC@2 AD@4 AE@2 AC@2 AD@4 AE@2 AC@2 AD@4 AE@2 AC@2 AD@4 AE@2 AC@2 AF@5 ~
>`.pickRestart({
  A: "[[a4,c#5]@7 [f#4,g#4,b4]@9, f#4@13 ~@19]/2", B: "[b4@6 a4@25 ~, [e4,f#4]]/2", C: "[d4,f#4,a4]",
  D: "d5@3 [g#4,c#5]@5, [e4,a4]", E: "c#5@3 b4@4 ~, [d4,f#4]", F: "d5@5 c#5@3, [f4,g#4,b4]", G: "[[a3,c#4,f#4]@63 ~]/4",
  H: "[[a3,c#4,e4]@31 [f#3,b3]@15 ~@2, ~@31 d4@17]/3", // A B5
  I: "[a3@7 g#3@8 ~ a3@31 ~ [g#3,b3]@31 f#4@16 e4@17, c#4@49 ~@30 [a3,c#4]@32 ~, f4@15 ~ e4@63 ~@33]/7", // G#m A
  J: "~@3 b3@4 ~, f4, d4@7 ~",
  K: "[[g#3,b3]@15 ~ a3@63 [g3,e4]@31 ~ [c4,d#4,f#4,a4]@17, e4@79 ~@49, ~@16 c4@95 ~@17]/8", L: "[b3,e4,g#4]",
  M: "[[c4,e4,a4]@15 [b3,d4,g4]@16 ~]/2", N: "[[a3,e4]@15 [g3,e4]@16 ~, c4]/2",
  O: "[~@16 c4@15 [a3,b3,d4]@16 [g#3,b3,e4]@16 ~, [f3,a3,d4]@17 ~@47, ~@15 [g3,e4]@16 ~@33]/4", P: "[a3,c4,e4]",
  Q: "[g3@15 ~ [f3,c4]@15 ~, [b3,d4]@17 ~@15, ~@15 a3@14 ~@3]/2", // F5 Bm
  R: "[f#4@5 f4@10 f#4@17 e4@16, [b3,d4]@14 ~ [a3,c#4]@33]/3", S: "[a3,c#4,f#4]/2", T: "[a3,c#4,e4]/2",
  U: "a3@7 g#3@8 ~, [c#4,f4]@15 ~", V: "[~@15 [g3,e4]@31 ~ [c4,d#4,f#4,a4]@17]/4", W: "[b3,d4,f4]@7 c#4@9",
  X: "[[f3,a3,c4]@31 a3@15 g#3@17 ~, ~@31 [b3,d4]@32 ~]/4", Y: "[~@15 [b3,d4,g4]@16 ~]/2",
  Z: "[a3@15 [b3,d4,g4]@16 ~, [c4,e4]@17 ~@15]/2", AA: "[~@15 [g#3,b3,e4]@16 ~, [f3,a3,d4]@17 ~@15]/2",
  AB: "[[a3,c4,e4]@13 ~ d4@17 ~, ~@13 [a3,b3]@17 ~@2]/2", AC: "[[g3,b3,d4]@13 [g3,c4]@16 ~@3]/2",
  AD: "[~@15 [g3,c4,e4]@16 [a3,b3,d4]@16 [g#3,b3,e4]@16 ~, [f3,a3,d4]@17 ~@47]/4", // C Bm7 E Dm
  AE: "[[a3,c4,e4]@13 a3 d4@17 ~, ~@13 b3@17 ~@2]/2", // Am
  AF: "[~@15 [g3,c4,e4]@16 [a3,b3,d4]@16 [g#3,b3,e4]@33, [f3,a3,d4]@17 ~@63]/5", // C Bm7 E Dm
})).s("gm_pad_warm").gain(0.17)

// chords · epiano2 · "E.PIANO 2"
const epiano2 = note(`<
  A@2 B@2 C D E F G@2 H@3 I J K L@2 M@2 N@2 O P Q R S@2 T U V W X Y Z AA AB AC AD AE AF AG Q AH G AI AJ@2 AK@2 AL AM E F
  G@2 H@3 I J K Q R S@2 T U V W X Y Z AA AB AC AD AE AF AG Q AN G@2 AO@4 AP@2 X Y Z AA AB AC AD AE X Y Z AA AB AQ AR@2
  AS@2 AB AC AD AE AR@2 AS@2 AB AC AD AE AR@2 AS@2 AB AC AD AE AR@2 AS@2 AB AC AD AE AR@2 AS@2 AB AC AD AT@2 ~
>`.pickRestart({
  A: "[[f#3,a3,c#4]@13 ~ [f#3,g#3,b3]@16 ~@2]/2", B: "[b3@3 a3@12 ~, [e3,f#3]@15 ~]/2", C: "[d3,f#3,a3]@3 ~",
  D: "[a3,d4]@5 ~ [g#3,c#4]@8 ~@2, e3@7 ~", E: "c#4@6 b3@7 ~@3, [d3,f#3]@13 ~@3", F: "d4@9 ~ c#4@5 ~, [f3,g#3,b3]@15 ~",
  G: "[a3,c#4,f#4]@7 ~", H: "[[c#4,f#4]@12 ~ f#3 c#4 e4@9, a3@11 ~@13]/3", I: "a4@15 ~", J: "[b3,d4,f#4]@7 ~",
  K: "[c#4,f4,a4]@10 [c#4,f4,g#4]@5 ~", L: "[e4@26 ~@2 e4@3 ~, c#4@31 ~, a3@25 ~ a3@4 ~@2]/2",
  M: "[[b3,e4]@13 a3 b3@2, g#3@3 ~]/2", N: "[[a3,c#4,f#4]@29 ~@3]/2", O: "[b3,d4,f4]@7 ~",
  P: "[g#3,b3,e4]@9 ~ [g#3,b3,d4]@5 ~", Q: "[a3,c4,e4]@13 ~@3", R: "[e4,a4,c5]@13 ~@3",
  S: "[e4@18 ~@4 a4@9 ~, f4@31 ~, a4@20 e4@11 ~, c4@16 ~@2 c4@13 ~]/2", T: "[c4,e4,g4]@15 ~", U: "[e4,g4,c5]@3 ~",
  V: "[c4,d#4,f#4,a4]@13 ~@3", W: "[g#3,b3,e4]", X: "[c4,e4,a4]@15 ~", Y: "[b3,d4,g4]@15 ~", Z: "[a3,c4,e4]@7 ~",
  AA: "[g3,c4,e4]@15 ~", AB: "[a3,d4,f4]@15 ~", AC: "[g3,c4,e4]@7 ~", AD: "[a3,b3,d4]@7 ~",
  AE: "[g#3,b3,d4]@3 [g#3,b3,d4]@4 ~", AF: "[e4,a4,c5]@15 ~", AG: "[d4,g4,b4]@13 ~@3", AH: "[d4,f4,g#4,b4]@3 ~",
  AI: "[b3,c#4,e4,g#4]@5 [c#4,e4]@3, ~@5 b3@2 ~", AJ: "[[a3,c#4]@15 ~@11 g#4@5 ~, f#4@25 ~@7, ~ d4, ~@8 a3@7 ~]/2",
  AK: "[b3@5 ~ a3@9 ~@3 g#3@2 ~@2 e4@8 ~@2, c#4@9 ~ a3@5 ~, e4 ~]/2", AL: "e4@6 d4@9 ~, a3@15 ~, f#3@13 ~@3",
  AM: "d4@3 [g#3,c#4]@4 ~, e3@7 ~, a3@5 ~@11", AN: "d4@7 ~ c#4@8, f4@15 ~, b3@11 ~@5",
  AO: "[[c#4,f#4]@24 ~@2 f#3@2 c#4@2 [f3,a3,c4]@15 ~ [f3,a3,c4]@16 ~@2, a3@11 ~@21]/4", // F#5 F
  AP: "[[a3,b3,d4]@6 ~ [g#3,b3,d4]@7 ~@2]/2", AQ: "[g#3,b3,e4]@7 ~", AR: "[[a3,c4,e4]@13 ~ [a3,b3,d4]@17 ~]/2",
  AS: "[[g3,b3,d4]@13 ~ [g3,c4]@16 ~@2]/2", AT: "[g#3,b3,d4]/2",
})).s("gm_epiano2").gain(0.42)

// drums · kick
const kick = s("bd").struct(`<
  ~@8
  [x ~@2 x!2 ~@3]!53
  [x ~@2 x!2 ~@2 x]
  [x ~@2 x!2 ~@3]!27
  [x ~ x!3 ~@3]
  [x ~@2 x!2 ~@3]!46
  x
  ~@9
>`).gain(0.57)

// drums · snare
const snare = s("sd").struct(`<
  ~@7 A B@15 C B@7 C B@7 C B@3 D B@17 E B@7 C B@19 F B@13 G B@7 G B@7 G B@7 G B@7 G ~@10
>`.pickRestart({
  A: "~@11 x!2 ~@3", B: "~ x ~ x", C: "~@4 x ~@5 x!4 ~@2", D: "~@4 x ~@5 x ~ x ~ x!2", E: "~@4 x ~@5 x!3 ~@3",
  F: "~@2 x!2 ~@4 x!2 ~@2 x ~ x!2", G: "~@4 x ~@7 x ~ x!2",
})).gain(0.57)

// drums · hihat
const hihat = s("hh").struct(`<
  A@8 B C@5 B D B C@5 B E F C@5 B E F C@5 B E F C@2 D F C F C@5 B E B C@5 B D F C@5 B E F C@5 B E F C@2 D F C B D G C@2
  ~ H C@6 D H C@5 H C@7 H C@7 H C@7 H C@7 ~@10
>`.pickRestart({
  A: "~ x ~ x", B: "x ~ x!3 ~ x ~", C: "x!4", D: "x!3 ~", E: "x!2 ~@2", F: "~@2 x!3 ~ x ~", G: "~ x!3",
  H: "~@3 x!2 ~ x ~",
})).gain(0.36)

// drums · open hat
const open_hat = s("oh").struct("<~@23 A ~@7 A ~@7 A ~@13 A ~@15 A ~@7 A ~@11 B ~@56>".pickRestart({
  A: "~ x", B: "x",
})).gain(0.29)

// drums · crash
const crash = s("cr").struct(`<
  ~@15 A ~@8 B ~@7 B ~@7 B ~@3 B ~ B ~@15 B ~@7 B ~@7 B ~@2 C B ~@2 A B ~@3 D ~@6 C D ~@5 B ~@7 B ~@7 B ~@7 B ~@7 B ~@9
>`.pickRestart({
  A: "~@5 x!2 ~", B: "x", C: "~@3 x", D: "x!2 ~@2",
})).gain(0.36)

// drums · shaker
const shaker = s("sh").struct("<[x!16]!144 [x!15 ~] ~>").gain(0.29)

stack(bass, vibraphone, string_ensemble_1, pad_warm, epiano2, kick, snare, hihat, open_hat, crash, shaker)

More by Laura Pausini