Strudelify

Memorie

Ramazzotti

KeyG♯ minorTempo117 bpm
0:00/0:00
// Memorie — Ramazzotti
// 117 bpm, 4/4, key G# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 116 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(117/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: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A@2 B@3 C@4 D@2 E@8 F@3 G@8 H I J K@2 L M N@4 O@3 P@2 Q R S@2 T@2 U V W@2 X@4 Y@2 Z@2 AA@2 AB@2 AC AD AE@2 AF@2 AG@2
  AH@2 AI AJ@4 AK@3 AL@8 AM@4 AN@4 AO@3 AP@2 AQ@8 ~
>`.pickRestart({
  A: "[~@24 d5@8 [d#4,c5]@16 ~@9 g4@7, g2, d6@33 ~@16 d4@15]/2", // Cm
  B: "[~@10 c4@7 ~@10 a#3@8 c4@20 ~@41, ~ d#4@16 ~ g2@70 ~@8, ~@6 d4@5 ~@21]/3",
  C: "[~@5 g3@30 ~@2 a#3 a3@30 ~@3 g3@32 ~ [a3,d4,d#4,a4,c5,d5]@8 ~@5 g4@11, ~@2 d4@33 d4@34 d4@34 ~@25, ~@3 a#3@33 c4@3 ~@29 g4@35 ~@25, ~@4 [g1,g2,a3]@32 ~ [f1,f2]@32 ~ [d#2,a#2,c4]@33 ~@25]/4", // Adim Gsus2 F Cm7
  D: "[~@8 a3 g3 f#3@31 ~ e3 g3@15 ~ a2@5, ~@7 [a2,c3]@34 ~ a#2@17 ~@5, ~@7 a#3@2 d2@32 ~@23]/2", // Am
  E: "[~@44 [g2,f#4]@33 ~@23 d4@5 [d4,a#4]@5 ~ [f2,a#3,a4]@33 [d#2,c4,d4,g4]@32 ~@10 [c4,d#4]@8 ~@8 d#4@8 c4@33 ~@13, ~@12 d3@32 ~@34 [g2,a#3]@33 ~@87 d#3@12 ~@46, ~@33 [a#3,d4]@44 ~ d4@22 ~@11 d4@22 ~@44 d4@33 ~@46, ~@38 a4@39 ~ a#4@27 ~@89 d#4@8 ~@54, ~@94 g3@17 ~@33 d#3@17 ~@33 [c4,g4]@16 ~@46]/8", // Gmaj7 Gm A#maj7 Cm Gm A# C5
  F: "[~@7 g1@22 c2@3]/3",
  G: "[~@24 [f2,d4]@33 [a#1,a#2,a3,d4,f#4]@20 ~@2 [f2,g#3,c#4,f#4]@9 ~@3 [d#2,g3]@32 ~@17 g4@16 c4@33 ~ g4@24 ~@8 g5@34, ~@77 f1@7 ~@105 d3@17 ~@50, ~@78 c2@7 ~@38 [a2,c4,d#4]@33 ~@33 d4@64 ~@3]/8", // Dm D C# D# Adim
  H: "~@21 [b3,d#4]@5 [b3,d#4,b4]@5 ~, [g#2,d#3,g#4]@31 ~, [b3,d#4]@21 ~@11, ~ g#3", // B G#5 B
  I: "f#3@16 ~@5 [a#3,d#4]@5 [a#3,d#4,a#4]@5 ~, f#2, a#4@13 ~@3, [a#3,d#4]@21 ~@11, ~ f#3", // D#5
  J: "e3@2 ~ d#4, [e2,g#3,g#4], d#4@3 ~, ~@16 e3@15 ~", // E
  K: "[~@16 c#4@13 b3@2 ~@22 [a#3,c#4]@5 [c#4,g4]@5 ~, [a#2,g#3,d#4,e4]@31 g#3@2 ~@15 d#3@8 ~@8, ~@32 [d#2,a#2,g3]@31 ~]/2", // A#m C#dim D#sus4 D#
  L: "~ e4 [d#2,d#4]@2, [e2,e3,g#3,c#4,f#4] ~", // D# C#m
  M: "f#3@16 ~@5 [b3,d#4]@5 [b3,d#4,a#4]@5 ~, [g#2,g#3]@31 ~, b3@21 ~@11, ~@16 f#3@15 ~", // B Bmaj7 G#
  N: "[~@17 a#5@14 ~@27 [b4,d#5,b5]@5 ~ a#4@16 d#4@7 ~ d#4@7 ~@25 d#4@7 ~, [c#2,g#2,c#3,b3,d#4]@16 [d#5,g5]@16 b4@16 g#3@15 ~@17 [f#3,a#3,a#4]@15 ~ [g#3,g#4]@32, g4@14 g4@17 ~ [d#3,d#4]@31 f#2@24 f#2@8 e2@32 ~, ~@8 f3@23 b3@32 ~ [d#5,a#5]@31 ~ d#4@24 ~@8, ~@15 b4@16 ~ g#2@21 [b4,d#5]@3 g#2@8 ~@48 e3@15 ~]/4", // B G#m D# F# G# D# D#5 B
  O: "[~@16 c#4@13 ~@29 [a#3,c#4,g4]@5 ~@8 e4@8 ~@9 c#4@7 ~, [a#2,g#3,d#4,e4]@29 b3@2 a#2@31 ~@34, ~@30 [g#3,a#3]@2 g3@31 ~@33, ~@32 d#2@21 [a#3,c#4]@3 d#2@7 [e2,g#3,c#4,f#4]@16 ~ [d#2,g3,a#3,d#4]@16, ~@16 d#3@5 ~@11]/3", // Gdim D#sus4 G#sus2 A#m C#m D#
  P: "[g#3@16 ~@10 [b3,d#4,a#4]@5 ~@27 [c#4,a#4]@5 ~, [d#3,f#3]@31 ~ a#4@21 [b3,g#4]@10 ~, g#2@23 g#2@8 [c#2,c#3,d#4]@32 ~, b3@20 [b3,d#4]@5 ~@6 b3@17 f3@16, ~@16 g#3@15 ~ g4@32]/2", // Bmaj7 F# D#m E C#sus2 B
  Q: "~@13 e5@3, [c#2,b3], [e4,g#4,b4]@21 [e4,g#4,b4]@11, ~ c#3", // C#7 E
  R: "~@25 f#4@6 ~, [f#2,b3,e4,g#4], ~@15 [f#3,a#3]@17, ~@21 c#4@11", // E F#
  S: "[[b2,d#3,f#3,a#3,d#4,f#4,g#4,a#4,c#5]@18 ~@2 [f#2,e3,a3,d4]@11 ~ [g#3,c#4]@32, ~@18 f#1@13 [e1,e2,f#4]@32 ~, ~@19 c#2@12 ~@33]/2", // Bmaj7 D C#5 Esus2
  T: "[~@16 c#4@15 ~ e4@15 ~ d#4@16, [a#1,g#3,d#4,e4]@31 [d#2,a#3,c#4]@33]/2", // D#sus4 D#7
  U: "f#3@8 ~@16 [f#3,g#3,a#3,c#4]@7 ~, [g#2,b3,d#4]@31 ~, g#3 ~, ~ f#3 [f#3,g#3,a#3,c#4] ~, ~@3 d#3@2 d#3@3", // F# G#m F#
  V: "~@26 [c#4,a#4]@5 ~, [g#2,f#3,d#4]@24 g#3@7 ~, b3@20 b3@11 ~, g#3@16 g#3@5 g#4@11, ~@8 d#3@23 ~", // F# G#7
  W: "[~@29 g#2@2 ~ b3@8 ~@13 c#4@10 ~, [c#2,d#4]@31 f#2@32 ~, b4@15 e4 c#3@8 [e4,f#4,g#4,b4]@8 [e4,g#4]@32, ~ g#3@3 ~@2 [f#3,a#3]@2, ~@15 [b3,c#4]@16 ~@9 b3@24]/2", // C#sus2 E F# Bsus2
  X: "[[b2,d#3,f#3,a#3,d#4,f#4,g#4,a#4,c#5]@13 ~ [c#2,f#2,e3,a3,d4]@16 ~ [e1,c#4]@32 ~@17 c#4@15 ~@17 d#4@15 ~, ~@13 f#1@17 e2@33 a#1@32 d#2@32 ~, ~@2 [g#3,d#4,e4] [c#4,e4]]/4", // Bmaj7 Dmaj7 C#m Emaj7 C#m
  Y: "[d#4@16 d#4@15 ~@2 b4@22 ~@5 c#5@4, [e2,c#4], f#4@24 ~@7 [d#4,f#4]@33, b3@8 ~@47 b4@8 ~]/2", // C#m D#m
  Z: "[~@4 c#5!2 ~@9 e5, b2@7 d#5, d#5@2 d#5@5 e5@4 b3@5, ~ f#4@2 f#4@13, ~@3 b3@3 c#5@10]/2",
  AA: "[~@16 g#5@4 g#5@4 ~@32 d#5@2 ~ d#5@3 c#5@2, [b2,f#5]@58 e5@5 ~, ~@4 a4@8 [c#4,a4]@51 ~, ~@8 c#5@16 g#5@39 ~, ~@16 f#4@12 c#5@16 f#4@19 ~]/2", // B5 F#m
  AB: "[b4@4 b4@4 b4@4 ~@4 e5@4 e5@4 ~@20 e4@4 ~@8 [f#3,f#4]@7 ~, b2@7 b4@2 e4 b4@2 a#4@2 ~@2, ~@12 g#3@36 ~@4 c#4@11 ~, ~@3 b4 e4@2 e5@6 ~@4, ~@16 b3@32 a#3@15 ~]/2", // F#
  AC: "~@12 b3@4 f#3@5 ~@3 f#3@8, g#2, [g#3,g#4] ~, ~ d#3@3 [d#3,g#3,a#3,c#4]@4, ~ b3 d#4@2 ~@4", // G# D#sus4
  AD: "g#3@8 g#3@8 b3@7 ~ b3@6 ~@2, g#2@31 ~, [d#3,b3,d#4]@16 [g#3,d#4,g#4]@15 ~", // G#m G#5
  AE: "[f#3@3 ~@9 f#3@2 [b3,c#4,e4]@4 [b3,c#4,e4]@2 [b3,c#4,e4]@2 [b3,c#4,e4]@2 ~@6 f#1@2, [f#1,d#4]@7 f#1@8 ~, b3@4 [b3,c#4]@3 ~@5 [b3,c#4,e4]@4, f#2@3 f#2@2 f#2@2 f#2@6 f#2@3, ~ f#3!2 ~@4 e3]/2", // C#m7 D#m Bsus2 C#m7
  AF: "[e3@2 e3@2 e3@2 e3 [a3,c#4]@2 [a3,c#4,e4]!3 ~@3 f#1, f#1@7 f#1@7 a3@2, [f#2,a3,c#4]@4 [f#2,b3,c#4]@3 e3@9, ~@7 f#2@5 a3 f#2@3, ~@3 [c#4,e4]]/2", // A F#m F#sus4 C#m
  AG: "[e3@3 ~@9 e3@2 e3@6 ~@3 f1 [f#1,f#3,g#3,a#3,c#4]@8, e1@28 e1@17 e1@3 ~@16, [a3,b3,e4]@4 [a3,b3,e4]@3 [g#3,b3,e4]@5 ~@4, ~ e3@2 ~@2 e3 ~@2]/2", // F# Asus2 E
  AH: "[[g#3,b3,d#4]@15 ~ [f#3,g#3,a#3,c#4]@16 [g#3,b3,d#4]@32, [g#1,g#2]@63 ~]/2", // G#m F# G#m G#
  AI: "~@21 [b3,d#4]@5 [b3,d#4,b4]@5 ~, g#2@31 ~, b4@13 ~@3, d#4@21 ~@11, ~@16 g#3@15 ~", // B
  AJ: "[[f#2,f#3,a#3,d#4,a#4]@29 ~@2 g#3@31 g#2 ~@17 c#4@12 ~ a3 ~ g#3 g3@30 ~ d#2, ~@29 g#4@33 g#3@30 a#3@2 ~ a#2@32 ~, ~@30 [e2,b2,d#4]@33 [a#2,d#4]@31 d#2@33 ~, ~@32 e4@15 ~@16 d2]/4", // D#m Emaj7 D#5
  AK: "[[e2,e3,g#3,c#4]@8 ~@20 g#4@3 ~@14 [c#4,a#4]@3, ~@16 [d#2,g3,c#4]@32 [b3,d#4,a#4]@14 d#4@33 ~, ~@24 g4@38 ~@2 a#4@21 [b3,g#4]@11, ~@32 [g#2,g#3]@30 ~ [c#2,g4]@33, ~@16 [b3,d#4]@4 d#3@11 ~@9 f3@8]/3", // C#m F# D#7 Bmaj7 E G# C#dim B
  AL: "[b3@7 ~@16 b4@7 ~@26 f#4@5 ~@5 d#4@6 ~@2 [f#2,a3,d4,g4]@16 g#3@14 ~@8 d#4@10 g#3@6 ~@17 g#3@7 g3@8 g3@7 ~@12 g3@4 ~@19 [b3,d#4]@5 [b3,d#4,g#4]@5 ~@26 [c#4,a#4]@5 b3@7 ~ b3@5, [c#2,g#4]@30 [f#2,b3,e4,g#4]@31 [b2,f#3,a#3,f#4,g#4,a#4,c#5]@13 ~@32 g#3@15 ~@8 g#3@15 ~@23 [d#3,c#4,d#4,f#4]@15 ~@8 d#3@22 ~ a#4@7 b3@8 [c#4,a#4]@5 [b3,g#4]@10 ~@13, b4@22 ~@115 c#4@15 [c#4,d#4,f#4]@15 g3@11 ~@5 [b3,d#4]@19 a#4@10 d#4@31 ~@13, e4@15 e4@15 ~@21 c#4@10 ~@12 c#2@18 ~@31 [a#2,d#4,e4]@30 d#2@30 ~ [g#2,f#3,f#4]@29 ~ [c#2,c#3,g4]@30 [c#2,e4,g#4,b4]@13, ~@7 b3@22 ~@16 a#3@15 ~@12 f#1@18 [e1,e2,c#4,f#4]@32 ~@53 f3@8 g#3@14 g#3@15 b3@8 f3@23 ~@13]/8", // D B G#m F# C#5 E F# D#m7 …
  AM: "[~@9 e5@7 b3@7 ~@7 a#3@12 ~@2 [b2,a#3,c#4,d#4,f#4]@11 ~@2 [f#2,e3,a3,d4]@15 ~@16 e3@14 g#3@7 g#3@7 g#3@7 g#3@4 a#2, ~@2 [e4,g#4,b4]@14 ~@7 b3@19 a2@2 ~@11 f#1@16 ~ [e1,e2,g#3,c#4,f#4]@30 e4@14 e4@12, ~@5 c#3@11 [f#2,e4,f#4,g#4]@27 a#2@2 ~@11 c#2@16 ~@30 [a#2,d#4]@26]/4", // Bmaj7 D E C#m D#5
  AN: "[~@2 g3@7 ~@18 d#2@3 ~ b3@7 b3@7 b3@7 b3@4 ~@7 b3@4 ~@14 b3@7 b3@7 b3@7 b3@7 ~ b3@3 ~@7 b3@4 b3@3 g#2, ~@2 d#2@25 ~@4 e2@57 g#2@29 g#2@10 ~, ~@2 [c#4,d#4,f#4]@14 ~ [c#4,d#4,f#4]@14 [c#4,d#4,f#4]@14 [c#4,d#4,f#4]@11 [b3,c#4,d#4,f#4]@7 [c#4,d#4,f#4]@11 [c#4,d#4,f#4]@14 [c#4,d#4,f#4]@14 [c#4,d#4,f#4]@11 ~@7 [c#4,d#4,f#4]@8, ~@10 g3@7 g3@7 g3@7 ~@36 b3@7 b3@7 ~@32 [b3,c#4,d#4,f#4]@7 ~@8, ~@13 d#3@7 d#3@10 ~@30 e3@10 e3@7 e3@10 ~@41]/4", // D#m7 B D#m7 B
  AO: "[~@3 b3@7 b3@7 ~@29 f#6@50, ~@3 [f#2,c#4,d#4,f#4]@14 [e2,e3]@79, ~@17 f#5@41 ~@38, ~@8 g#4@13 ~@11]/3", // D#m7 E
  AP: "[~@45 [f#3,f#4]@19, ~ g#2@3, ~@4 c#4@11 ~, ~@15 g#4@17]/2", // F#
  AQ: "[~@104 g#6@33 ~ [g#1,g#2,g#5,g#6]@118, ~@3 g#4@37 f#5@22 g#5@24 b5@51 ~@119, ~@7 f#4@11 c#5@14 g#3@45 c#6@60 ~@119, ~@10 g#2@59 g#4@67 ~@120, ~@10 c#4@15 b4@44 f#5@26 d#6@42 ~@119]/8", // G#
})).s("gm_piano").gain(0.47)

// chords · piano · soft notes
const piano_soft = note(`<
  A B C@4 ~@2 D@2 E@4 ~ F G@8 H@6 ~@3 I J K ~@14 L@2 ~@2 M ~ N@2 O@2 P@2 ~@22 Q@2 ~@17 R@8 ~@5
>`.pickRestart({
  A: "~ d4, ~@7 g3@25", B: "~@9 a4@7 ~ a#4@15",
  C: "[~ a3@16 ~@10 d3@8 ~@10 a3@10 ~ d3@64 ~@8, ~@35 d#3@20 g3@46 ~@27, ~@55 a#3@43 ~@30]/4",
  D: "[~@21 [a3,c4,d#4,c5]@18 c4@2 ~@23]/2", // Adim
  E: "[~@9 d#3 d#2@17 [d2,c3,f#3]@16 ~@17 f3@15 ~ [c2,c3]@33 ~@19, ~@9 d3@18 ~@16 g3@32 ~@53, ~@43 f3@17 ~@68, ~@11 [g2,a3]@8 ~@13, ~@44 [a#3,d4]@21 ~@63]/4", // D7 C Gsus2 A#
  F: "~@5 d4@11 ~@16, f3@17 ~@15",
  G: "[~ d#3@16 [a2,a3]@33 [d2,c3,f#3]@33 ~ [d#2,a#2,g3,c4]@16 [d2,c3,f#3,c4]@17 f3@33 e3@32 ~@17 g4@16 ~ [a3,d#4,f#4]@33 ~@7, ~@17 d#3@21 ~@79 [g2,g3,a3,a#3,d4]@64 ~@2 [a#3,d4,d#4]@32 ~@41]/8", // A D7 Cm7 D7 D#dim Gm D#maj7
  H: "[~@27 [d#1,a#1,c4,f4]@32 g3@33 [d2,d3,f#3,f#4]@33 ~@33 g3@33 ~, ~@125 [g2,a#3]@64 ~@3, ~@71 d3@25, ~@25 g4@7]/6", // D#sus2 D Gm
  I: "~@15 a#3", J: "~@26 a#3@5 ~, ~@24 d#3@7 ~", K: "~@3 c#4, ~ [g3,a#3]", L: "[~@31 g3@33]/2", M: "~@7 c#3",
  N: "[~@31 [g#3,f#4]@33]/2", O: "[~@31 a#3@32 ~, ~@30 g3@33 ~]/2", P: "[~@24 f#4@7 [e3,b3]@33, ~@8 b3@23 ~@33]/2",
  Q: "[f#3@30 b3@23 ~@11]/2",
  R: "[~@47 b3@33 b3@7 b3@15 b3@14 ~@8 c#4@14 ~@52 f#4@64 ~@2, b4@18 f#4@32 ~@30 f#4@11 [d#4,c#5]@32 ~@5, ~@6 b5@35 d#4@64 ~@11 b3@51 ~ b3@64 ~@24, ~@26 f#5@61 d#3@64 ~@2 f#3@64 ~@39, ~@31 g#4@63 ~@81 c#4@64 ~@17]/8", // D#7
})).s("gm_piano").gain(0.23)

stack(piano, piano_soft)

More by Ramazzotti