Strudelify
Dimmi dove sei cover art

1997 · Mangio Troppa Cioccolata

Dimmi dove sei

Giorgia

KeyE majorTempo68 bpm
0:00/0:00
// Dimmi dove sei — Giorgia
// 68 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 65 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: The whole transcription plays 37 ms behind the beat; the grid follows it, so its parts stay together.
setcpm(68/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 finger
const bass = note(`<
  ~ A B@2 C D@2 E@2 F G E@2 H I J K L M@2 N@2 O P@2 Q R S@2 T@2 U V T@2 W X Y@8 Z AA AB@2 Q R AC@2 T@2 U V T@2 W AD U V
  AE ~
>`.pickRestart({
  A: "~ c2@3 ~@3 g1@2 c2@2 c#2@2 d2@4 ~@14 b1", B: "[~ e1@30 g1@2 c2@5 ~ g1 ~ c2@2 c#2@2 d2@4 ~@8 a1@7]/2",
  C: "~ e1@30 ~", D: "[~ e2@48 ~@2 e1 ~ e1@3 ~@8]/2", E: "~ e1@16 ~@2 e1 ~ e1@3 ~@8", F: "~ e1@16 ~@2 e1 ~ e1@3 ~@7 b1",
  G: "~ e2@14 e1 ~ e1 ~ e1 ~ e1@10 ~", H: "~ e1@8 f#1@8 g1@8 g#1@7", I: "~ a1@31", J: "~ f#1@14 f#2@2 e2@15",
  K: "~ c#2@16 a1@14 ~", L: "~ g#1@14 ~@2 f#1@8 a1@7", M: "[~ e1@29 ~ f#2@2 e1@6 e2@25]/2",
  N: "[~ e2@8 ~@4 c#2@16 b1 ~ a#1@2 a1@16 f#1@8 b1@7]/2", O: "~ e1@8 d#1@4 c#1@12 c#3@7",
  P: "[~ b1@11 ~ e1@16 f#1@2 e1@2 a1@6 a2@2 e2@2 a1@2 g#1@19]/2", Q: "~ f#1@9 ~@3 g#1@12 d2@7",
  R: "~ a1@10 ~@2 g#1@15 ~ b1@3", S: "[~ f#1@13 ~ f#1@2 b1@8 b2@4 a1@2 b1@2 c2@4 ~@2 g1@2 c2@2 c#2@2 d2@17 ~ b1]/2",
  T: "[~ e1@30 g1@2 c2@5 ~ g1 ~ c2@2 c#2@2 d2@5 ~@7 a1@7]/2", U: "~ e1@10 b1@2 f#2@2 e2@17",
  V: "~ c2@4 ~@2 g1@2 c2@2 c#2@2 d2@17 ~ b1", W: "~ e1@13 ~ b0@2 e1 ~ e1@2 c#1@2 b0@2 e1@7", X: "~ e2@30 ~",
  Y: "[~ e2@12 f#3@6 e1 ~ e1@9 ~ a1@2 e2@17 ~ e1 ~ e1@9 ~ a1@2 e2@14 e3@4 b1@2 e1@10 b1@2 e2@14 e2@2 ~@2 e1@2 e1@10 b1@2 e2@12 f#3@6 e1 ~ e1@9 ~ a1@2 e2@17 ~ e1 ~ e1@9 ~ a1@2 e2@14 e2@4 b1@2 e1 ~@9 b1@2 e2@6 f#2@5 ~ c#2@16 b1 ~ a#1]/8",
  Z: "~ a1@16 f#1@8 b1@7", AA: "~ e1@8 d#1@4 c#1@19",
  AB: "[~ b1@8 b1@4 c#2@4 c4@8 e1@6 e1@2 a1@6 a2@2 e2@2 a1@2 g#1@19, ~@17 f#2 ~@46]/2",
  AC: "[~ f#1@13 ~ f#1@2 b1@8 b2@4 a1@2 b1@2 c2 ~@5 g1@2 c2@2 c#2@2 d2@17 ~ b1]/2",
  AD: "~ c2@5 ~ g1 ~ c2@2 c#2@2 d2@5 ~@7 a1@7", AE: "~ e1@31",
})).s("gm_electric_bass_finger").gain(0.51)

// other · lead 2 sawtooth
const lead_2_sawtooth = note("<~ A B A B ~@25 A B A B A B ~@18 A B A B A B A B A C ~>".pickRestart({
  A: "~@13 d5@8 ~@4 d5@7, ~@8 d6@13 d6@11", B: "~@5 d5@8 ~@19, ~ d6@12 ~@19", C: "~@5 d5@27, ~ d6@31",
})).s("gm_lead_2_sawtooth").gain(0.1).pan(0.8)

// other · lead 2 sawtooth
const lead_2_sawtooth_2 = note("<A@6 ~@23 B@8 ~@16 C@7 D@5>".pickRestart({
  A: "[~@17 g#3@4 a3@2 b3@4 f#4@4 e4@14 e3@35 ~ g#4@4 a4@2 b4@4 f#5@4 e5@14 e4@52 ~@31]/6",
  B: "[~@17 g#3@4 a3@2 b3@4 f#4@4 ~@14 e3@35 ~ g#4@4 a4@2 b4@4 f#5@4 e5@14 ~@36 g#3@4 a3@2 b3@4 f#4@4 ~@14 e3@35 ~@48, ~@31 e4@66 ~@12 e4@50 e4@66 ~@31]/8",
  C: "[~@17 g#3@4 a3@2 b3@4 f#4@4 ~@14 e3@35 ~ g#4@4 a4@2 b4@4 f#5@4 e5@14 ~@36 g#3@4 a3@2 b3@4 f#4@4 ~@14 e3@35 ~ g#4@4 a4@2 b4@4 f#5@4 e5, ~@31 e4@66 ~@12 e4@50 e4@65]/7",
  D: "[~@13 e4@36 g#3@4 a3@2 b3@4 f#4@4 e4@14 e3@52 ~@31]/5",
})).s("gm_lead_2_sawtooth").gain(0.27).pan(0.7)

// other · synth strings 1
const synth_strings_1 = note("<~ A@4 B@2 ~@7 C@3 D E@2 F@3 G H@4 A@8 I@8 F@3 G J@4 A@8 K@2 G L ~>".pickRestart({
  A: "[d4@29 b3@36 d4@27 b3@36]/4", B: "[~ e2@48 ~@15]/2", C: "[~ e4@79 c#4@16]/3", D: "b3@17 a3@15",
  E: "[~ b3@31 a3@31 ~, ~ e4@62 ~]/2", F: "[g#3@12 c#4@52 d#4@13 c#4@19]/3", G: "d4",
  H: "[g#3@13 f#3@32 g#3@31 ~@32 c#4@20, ~@19 f#3@13]/4", I: "[~ e2@255]/8",
  J: "[g#3@13 f#3@32 g#3@31 ~@32 c#4@18 ~@2, ~@38 f#3@25 ~]/4", K: "[~ d4@27 b3@36]/2", L: "~ [b3,d#4,g#4]@31",
})).s("gm_synth_strings_1").gain(0.15).pan(0.7)

// chords · string ensemble 2
const string_ensemble_2 = note("<~ A@4 B@8 C@4 D@3 E@2 F@2 G@4 H@8 B@8 I@2 F@2 G@4 H@8 J@5>".pickRestart({
  A: "[~ b5@28 g#5@36 b5@28 g#5@34 ~, ~ e4@127]/4",
  B: "[~ [b3,d#4,g#4,a#5]@32 [a3,c#4,f#4,a4,a5]@64 ~@64 [a3,c#4,f#4,a4,a5]@64 [b3,d#4,g#4,b4,b5]@31, ~ e3@128 e3@127, ~@97 [b3,d#4,g#4,b4,b5]@65 ~@94]/8", // G#m F#m G#m
  C: "[~ [e3,b3,b4]@8 f#3@8 g3@8 [g#3,b3,b4]@8 a3@32 [f#3,a5]@15 ~ b5@16 [b3,f#5]@16 d#5@6 e5@6 d#5@3, ~ e5@96 ~@31, ~ g#4@30 ~@2 [f#4,c#5]@64 [g#4,b4]@31, ~@9 [c#4,c#5]@18 ~@53 g#3@17 ~@16 g#3@15]/4", // E5 G#m F#m B5 F#5 G#m C#
  D: "[~ [f#4,c#5]@32 [b3,b4,d#5,g#5]@32 [c#4,a4,c#5]@31, ~ [f#3,f#5]@95]/3", // F#5 G#m F#m F#
  E: "[~@33 e4@16 c#5@8 [d#5,f#5]@7, g#5@32 b5@25 ~@7, b5@12 ~ e5@37 ~@14, ~ g#4@32 ~@16 f#4@15]/2", // D#m
  F: "[~@13 e5@18 ~@2 f#4@11 ~ g4@11 ~ f4@7, b5@12 ~@19 d5@33, ~ [g#4,g#5]@33 ~@22 f5@8, ~@31 a5@12 ~ a5@13 ~@7]/2", // G#
  G: "[~@13 b5@19 ~ e4@10 ~@54 [a4,a5]@12 b4@4 b4@14 ~, g#4@12 f#4@20 a5@11 f#4@20 g#4@13 f#4@51 ~, ~ e5@126 ~, ~ c#5@97 ~@30, ~@45 b5@20 c#6@32 ~@12 b5@19]/4", // A
  H: "[~ b5@28 g#5@36 b5@28 g#5@36 b5@28 g#5@36 b5@28 g#5@34 ~, ~ e4@128 e4@127]/8",
  I: "[~ g#5@12 ~@20 e4@16 c#5@8 [d#5,f#5]@7, ~ g#4@31 b5@25 ~@7, ~@13 e5@36 f#4@15]/2", // D#m
  J: "[~ b5@28 g#5@36 b5@32 g#5@32 ~@31, ~@65 e4@64 ~@31]/5",
})).s("gm_string_ensemble_2").gain(0.2)

// drums · kick
const kick = s("bd").struct(`<
  A B@3 C D@8 E F@4 G@2 B H B C B C B I B@3 C B@3 C D@8 B H B C B C B H B@3 C B@3 C B C J K ~
>`.pickRestart({
  A: "~@21 x ~@10", B: "~ x ~@11 x ~@17 x", C: "~ x ~@11 x ~@18", D: "~ x ~@17 x ~ x ~@10",
  E: "~ x ~@7 x ~@7 x ~@7 x ~@6", F: "~ x ~@5 x ~@5 x ~@5 x ~ x ~@10", G: "~ x ~@13 x ~@3 x ~ x ~@10",
  H: "~ x ~@11 x ~@3 x ~@14", I: "~ x ~@11 x ~@3 x ~@3 x ~@10", J: "~ x ~@5 x ~@5 x ~@5 x ~@12", K: "~ x ~@30",
})).gain(0.57)

// drums · snare
const snare = s("sd").struct(`<
  A B C@2 D E F E F E F E F ~ G@3 H G H G H G I G I G J B C@2 K B C@3 E F E F E F E F G H G I G I G H B C@2 K B C@4 K L
  ~@2
>`.pickRestart({
  A: "~@23 x ~@3 x ~ x ~@2", B: "~@9 x ~@11 x ~@3 x ~@6", C: "~@3 x ~@5 x ~@11 x ~@3 x ~@6",
  D: "~@3 x ~@5 x ~@11 x ~@10", E: "~@9 x ~@21 x", F: "~@9 x ~@22", G: "~@9 x ~@15 x ~@6", H: "~@9 x ~@15 x ~@3 x ~ x",
  I: "~@9 x ~@15 x ~@5 x", J: "~@9 x ~@13 x ~ x ~ x ~ x ~ x", K: "~@3 x ~@5 x ~@11 x ~@3 x ~@3 x ~ x",
  L: "~@9 x ~ x ~@9 x ~@3 x ~ x ~ x ~ x",
})).gain(0.45)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~ A@4 B C B C B C B C ~@15 A@8 B C B C B C B C ~@8 A@10 ~@3>".pickRestart({
  A: "~@19 x ~@12", B: "~@15 x ~@16", C: "~@15 x ~@15 x",
})).gain(0.28)

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

// drums · open hat
const open_hat = s("oh").struct("<~ A B A B@10 C D C D C D C D@3 C D@11 B@8 D@4 C D@13 E ~@2>".pickRestart({
  A: "~@13 x ~@15 x ~@2", B: "~@29 x ~@2", C: "~ x ~@7 x ~@7 x ~@7 x ~@5 x", D: "~@9 x ~@7 x ~@7 x ~@5 x",
  E: "~@9 x ~@9 x ~@12",
})).gain(0.28)

// drums · ride
const ride = s("rd").struct("<~@13 [~ x ~@7 x ~@7 x ~@7 x ~@6] ~@51>").gain(0.28)

// drums · splash
const splash = s("cr").struct(`<
  ~ A ~ A ~ A ~@8 A ~ A ~ A ~ A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~@3 A ~@3 A ~@3 A ~ A ~ A ~ A ~ A ~ A ~ A ~ B A ~
>`.pickRestart({
  A: "~ x ~@30", B: "~ x ~@11 x ~@18",
})).gain(0.45)

// drums · splash · soft notes
const splash_soft = s("cr").struct("<~@5 A ~@12 A ~@17 A ~@3 A ~@24>".pickRestart({
  A: "~ x ~@30",
})).gain(0.23)

// drums · congas
const congas = s("conga:13").struct("<~@36 [~@7 x ~@17 x ~ x ~@4]!8 [~@7 x ~@15 x ~ x ~@6]!8 ~@13>").gain(0.91)

stack(
  bass, lead_2_sawtooth, lead_2_sawtooth_2, synth_strings_1, string_ensemble_2, kick, snare, snare_soft, hihat,
  open_hat, ride, splash, splash_soft, congas
)

More by Giorgia