Strudelify

Mi domando

Gianni Bella

KeyC minorTempo136 bpm
0:00/0:00
// Mi domando — Gianni Bella
// 136 bpm, 12/8, key C 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: duplicate parts dropped: ch 12 epiano2 (copy of ch 13 epiano2)
// note: Full arrangement: all 96 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(136/6)

// 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.

// bass · electric bass finger
const bass = note(`<
  ~@16 A B C D E ~@8 F G H I H G H J K L K M K L K M N O P Q R O S T K L K U K L K V K L K W X Y Z AA AB AC AB AD AE@2 ~
  AF ~@3 AG AH AI K AJ K L K AK AL AM AN AO@2 ~@2
>`.pickRestart({
  A: "~@5 bb2", B: "g2 bb2@5 c3@6", C: "f2 g2", D: "c2 g1", E: "f1 g1", F: "c2 bb2", G: "a2@5 ab2@7", H: "c3 bb2",
  I: "a2@3 ab2 bb2 ab2", J: "a2@6 ~ f2@2 ab2@3", K: "c1@4 ~ c1 g1@6", L: "f1@4 ~ f1 g1@4 bb1 c2",
  M: "f1@8 ~@2 f1 ~ g1@2 bb1@2 g1@4 bb1@2 g1@2", N: "c2@9 ~ c2@2 bb1@12", O: "a1@5 ab1@7", P: "c2@4 ~ c2 bb1@6",
  Q: "a1@12 ab1@3 ~ eb1@3 ~ f1@3 ~", R: "c1@9 ~ g1 ~ bb1@12", S: "c2 bb1", T: "a1@9 ~ a1 ~ a1@3 ~ a1 ~ a1@2 a1@2 a1@2",
  U: "f2@10 f2@2 g2 ~ f2 ~ g2@4 f2@2 g1@2", V: "f1@8 ~@2 f1 ~ g1 ~@3 g1@4 bb1@2 g1@2",
  W: "f1@10 ~@2 g1 ~ bb1 ~ g1@4 eb2@2 c2@2", X: "c2@8 ~@2 c2 ~ bb1@11 ~", Y: "a1@8 ~@2 a1 ~ ab1@11 ~",
  Z: "c2@4 ~ c2 g1@6", AA: "f1@8 ~@2 f1 ~ g1@2 bb1@2 g1@2 eb1@5 ~", AB: "c1@9 ~ c1@2 g1@12",
  AC: "f1@9 ~ f1 ~ g1@10 ~@2", AD: "f1@2 g1 gb1", AE: "c1/2", AF: "~ c5", AG: "~@4 g1 c2 bb1@3 g1 f1 eb1",
  AH: "c1@5 ~@5 c1@2 g1@12", AI: "f1@4 ~ f1 g1@4 bb1 g1", AJ: "f1@6 eb2@4 f2@2 g2 ~ f2 ~ g2@4 f2@2 g1@2",
  AK: "f1@11 ~ f1@4 ab1@4 f1@4", AL: "c1 g1", AM: "~@6 g1@5 ~", AN: "c1@3 ~ g1@4", AO: "[~@13 g1@21 ~@14]/2",
})).s("gm_electric_bass_finger").gain(0.48)

// bass · electric bass finger · soft notes
const bass_soft = note(`<
  ~ A B A C A B A B D B A B A B A E ~@4 F G F G F G F H ~@46 I J K L M N ~@9 O P Q R@3
>`.pickRestart({
  A: "c2@5 g2@7", B: "f2@11 ~ g2@11 ~", C: "f2@6 g2 ~", D: "c2@9 ~ g2@14", E: "f2@11 ~ g2@6 ~@6", F: "c2@5 g1@7",
  G: "f1@11 ~ g1@11 ~", H: "f1@11 ~ g1@12", I: "c3@11 g2@13", J: "f2 ~", K: "~ c3@6 g2@5", L: "f2 g2", M: "c3 g2",
  N: "f2 ~@2", O: "f1@7 ~ f1@3 ~@13", P: "~@5 c1 ~@6", Q: "f1@13 ~@11", R: "[~ c1@4 ~]/3",
})).s("gm_electric_bass_finger").gain(0.24)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~@17 A@4 B ~@3 C D E@2 F@8 ~@2 G H ~@2 I@2 J@4 K@4 L M N M L O L P Q R S T U V W X Y Z@2 AA ~@8 L M N M AB AC AD AE@3
  AF@2 ~@3
>`.pickRestart({
  A: "[g5@83 [bb3,f4]@13]/4", B: "g3", C: "c4 d4", D: "eb4 f4", E: "[g4@23 ~]/2",
  F: "[eb4@12 d4@12 ~@17 f3@4 ~ g3 eb4@11 ~ d4@12 c4@16 ~@7 g5 ~@13 [d4,bb5]@11 ~@18 f3@4 g3@2 ~ eb4@11 ~@7 eb6@5 ~@18 f3@4 g3@2 ~, g5@71 g5@19 ~@3 g3@2 ~ g3@42 ~@5 g3@42 ~@7, g3@42 ~@5 g3@42 [f3,f5]@5 ~@26 c4@24 ~@12 d4@12 c6@21 ~@3, ~@24 c4@24 ~@40 d4@4 eb4@3 [eb4,g5]@13 ~@11 c6@24 c6@12 d6@6 ~@6 c4@23 ~@2]/8", // Gm F Eb
  G: "c5@7 d5@2 ~ eb5@2 f5@8 g5 f5@3", H: "g5@3 ~",
  I: "[c5@4 d5 eb5 [bb3,d4,g4]@6 [ab3,c4,eb4]@6 [bb3,d4,f4,g4]@5 ~, ~@12 f5@31 ~@5]/2", // Gm Ab Gm7
  J: "[c4 bb3 a3 ab3 c4 bb3 a3 ab3, [eb4,g4,c5]@95 ~]/4", // Cm
  K: "[[c4,c6] [bb3,bb5] [a3,c6] [ab3,f6] [c4,g6] [bb3,d6] a3 ab3, [eb4,g4,c5]@95 ~, ~@36 c6@11 ~]/4", // C Bb Am Db C5 Bb Cm
  L: "[c4,eb4] [bb3,d4]", M: "[ab3,c4] [bb3,d4]", N: "c4 [bb3,d4]", O: "[ab3,c4] d4",
  P: "f3 g3 ab3 bb3 c4 d4 eb4@3 d4@3, c4 ~ bb3@2", Q: "c5@3 c5 d5 eb5 f5@3 d5@3, eb4 d4",
  R: "[ab3,c4,eb5]@3 d5 f5 bb5, ~ d4", S: "eb5@4 d5 c5 d5@4 c5 bb4, ~ d4", T: "ab4 c5 d5 bb4, c4 [bb3,d4]",
  U: "g5@3 g5 f5 eb5 f5@3 d5@3, c4 [bb3,g4]", V: "c5@3 c5 d5 eb5 eb5@2 f5@2 eb5@2, c4 ~",
  W: "g5@4 f5 eb5 f5@3 bb5@3, c4 bb3", X: "g5@3 g5 c6@2 g5 bb5@2 bb5 c6 g5, c4 [bb3,d4]", Y: "[g3,g5] [f3,f5]",
  Z: "[eb3 f3 g3 [f3,d5,f5], g5@3 ~]/2", AA: "eb3 d3, c5@23 ~", AB: "[c4,eb4,c5] [bb3,d4,d5]",
  AC: "[ab3,c4,eb5] [d4,f5]", AD: "c5@4 d5 eb5 [bb3,d4,f5]@6, [c4,eb4] ~",
  AE: "[g5@7 bb5@2 ~ g5@2 [eb4,c6]@6 [d4,bb5]@5 ~@24 ab5@13 ~@6 bb3@6, [ab3,c4]@12 bb3@11 c6@24 ~@25, ~@4 c4@7 ~]/3", // Cm Gm Ab
  AF: "c4/2",
})).s("gm_string_ensemble_2").gain(0.27)

// chords · string ensemble 2 · soft notes
const string_ensemble_2_soft = note("<~@3 A@3 ~@49 B ~@2 C ~@4 B ~@2 D ~ E F@3 G ~@10 B ~@2 C ~@2 H I@6>".pickRestart({
  A: "[~@9 bb3@43 ~@20]/3", B: "eb4 ~", C: "~ bb3", D: "~ [ab3,g4]", E: "ab3@11 ~@13", F: "[~@2 eb5@3 ~, c5@5 ~]/3",
  G: "eb5@23 ~", H: "~ bb5",
  I: "[~@35 f5@12 ~@29 g4@8 [c4,c5,g5]@49 ~@11, ~@12 g5@35 eb5@14 d5@23 ~@60, ~@4 g5@3 ~@5, ~@6 bb3 ~@5]/6", // C5
})).s("gm_string_ensemble_2").gain(0.13)

// other · pad metallic
const pad_metallic = note("<~@5 [c6 bb5] [g5@12 eb6@7 d6@5] [~ c6@23] [g5@23 ~] ~@87>").s("gm_pad_metallic").gain(0.12)

// other · overdriven guitar
const overdriven_guitar = note("<~ A@2 ~@33 B ~@4 C ~@5 D ~@48>".pickRestart({
  A: "[g4@19 ~@5]/2", B: "~ [f3,f4]@18 ~@5", C: "[c3,c4]", D: "f6@5 ~ f6@7 ~@11",
})).s("gm_overdriven_guitar").gain(0.29)

// chords · piano
const piano = note("<~@53 A@2 B@4 C@2 D@2 E F@2 G H I@2 ~@7 J@2 K ~ L@2 M@4 N@2 O ~@6>".pickRestart({
  A: "[eb4@4 f4 g4 f4@2 d4@2 bb3 eb4@7 d4@6]/2",
  B: "[eb4@2 bb3@2 f4 g4 f4@2 d4@2 bb3 eb4@5 d4 eb4 d4@8 ~@2 f4 g4 f4@2 d4@2 bb3 eb4@7 d4@6]/4",
  C: "[eb4@2 bb3 eb4 f4 g4 f4@2 d4@2 bb3 eb4@7 g4@3 f4@3]/2", D: "[eb4@4 eb5@3 d5@6 eb5@2 c5@8 ~]/2",
  E: "~@3 c5@2 eb5 d5@4 eb5 f5", F: "[eb5@4 f5 g5 f5@8 ~@2 f5@3 eb5@4 d5]/2", G: "f5@2 eb5 d5@2 eb5 c5@4 d5 eb5",
  H: "d5@2 c5@2 bb4 c5@3 bb4 c5@3", I: "[bb4@3 g4@2 bb4 g4@8 ~@10]/2", J: "[~@4 f5 g5 f5@2 d5@2 bb4 eb5@7 d5@6]/2",
  K: "eb5 g4@4 ~", L: "[[eb4,c5]@4 [f4,d5] [g4,eb5] [f4,d5]@2 [d4,bb4]@2 [bb3,g4] [eb4,c5]@7 [d4,bb4]@6]/2",
  M: "[[eb4,c5]@2 [bb3,c4]@2 [f4,d5] [g4,eb5] [f4,d5]@2 [d4,bb4]@2 [bb3,g4] [eb4,c5]@5 [d4,bb4] [eb4,c5] [d4,bb4]@8 ~@2 [f4,d5] [g4,eb5] [f4,d5]@2 [d4,bb4]@2 [bb3,g4] [eb4,c5]@7 [d4,bb4]@6]/4", // Cm Bbsus2 Dm Cm Dm Gm Eb Cm …
  N: "[[eb4,c5]@2 [bb3,c4] [eb4,c5] [f4,d5] [g4,eb5] [f4,d5]@2 [d4,bb4]@2 [bb3,g4] [eb4,c5]@7 [g4,eb5]@3 [f4,d5]@3]/2", // Cm Bbsus2 Cm Dm Cm Dm Gm Eb …
  O: "[eb4,c5] ~@5", // Cm
})).s("gm_piano").gain(0.05)

// chords · piano
const piano_2 = note(`<
  ~@5 A B A B C D E F G D E F A B A B C D E F G D E F H I H J H I H I K D L F M D L F H I H J H I H N K D L F M D L F M
  D L F O P Q F A B A B A B A R@2 S T S K D L F M D L F A B A U@4
>`.pickRestart({
  A: "~@5 eb4 ~@3 g2 [d3,f3]@2, c2@2 c4 ~ bb3@2, ~@2 g2@10 [g1,d4]@11 ~, ~@2 c3@4 g2@3 ~@3, ~ g3 ~@2", // Dm G5
  B: "~@4 [f2,c4]@2 eb4@3 d4@3, [f1,eb3]@11 ~ [g1,g2,f3,bb3]@12, f2@7 ~@17, ~ ab3@2 ~@3", // F5 F7 Gm7
  C: "bb3@2 c4@3 [g2,f3,bb3,d4]@7, [c3,eb3,g3]@5 ~@7", // Gm7 Cm
  D: "ab3@4 eb3@4 ab3@3 ~ eb4@6 d4@5 ~, [f2,c3]@11 ~ [g2,f3,bb3]@12", // F5 Gm7
  E: "eb4@2 c4@3 [g2,f3,bb3,d4]@7, [c3,eb3,g3]@5 ~@7", F: "[f2,c3,ab3]@11 ~ [g2,f3,bb3,d4]@12",
  G: "bb3 ~@3 c4@6 [g2,f3,bb3,d4]@14, [c3,eb3,g3]@5 ~@7", H: "c4 ~@2 [bb2,d4]@3, c3 ~, eb4 c4@2, g3@2 ~@2 g3@19 ~",
  I: "[g3,c4] ~@2 [ab2,eb4]@3, a2 ~, eb4@8 c4@15 ~, ~@4 g3@19 ~", // C5 Ab5
  J: "[g3,c4]@4 ~@4 c4@3 ~ [ab2,c4,eb4]@4 [bb2,d4,f4]@4 [c3,eb4,g4]@4, a2 ~, eb4 ~@2, ~@4 g3@19 ~", // C5 Ab Bb Cm
  K: "bb3 c4@2 [g2,f3,bb3,d4]@3, [c3,eb3,g3] ~", L: "eb4 c4@2 [g2,f3,bb3,d4]@3, [c3,eb3,g3] ~",
  M: "bb3 ~@3 c4@8 [g2,f3,bb3,d4]@12, [c3,eb3,g3] ~", N: "[g3,c4] ~@2 [a2,eb4]@3, a2 ~, eb4@8 c4@15 ~, ~@4 g3@19 ~",
  O: "bb3 ~@3 c4@8 [bb2,eb3,bb3,eb4]@12, [c3,eb3,g3] ~", // Eb5 Cm
  P: "c4@4 a3@4 c4@3 ~ c4@6 c4@5 ~, [a2,eb3]@11 ~ [ab2,eb3,g3]@12", // Adim Abmaj7
  Q: "[eb3,g3] ~@3 c4@8 [g2,f3,bb3,d4]@12, c3 ~, eb4 ~@5", // Eb Gm7
  R: "[[f2,c3,ab3]@11 ~@3 bb3@6 bb3@2 ~@12 eb4@2 [g1,g2,d3,f3,bb3]@12, ~@3 g2@3 c2 c2@2 ~@3, ~@7 f3@5 ~ g2@5 ~@6, ~@11 c4@2 g3@2 g3@3 ~@6, ~@8 c4 ~@3]/2", // Fm Gm7
  S: "[f1,f2,eb3,ab3] [g1,g2,f3,bb3]", T: "~@5 eb4 [g1,g2,d3,f3,bb3]@6, c2@2 c4 ~@3, c4 c3@2 ~@3, ~ g2@5 ~@6, ~ g3 ~@2",
  U: "[~@8 [f2,c4]@5 ~@11 d4@12 [c2,c3,g3,c4,eb4]@48 ~@12, [f1,eb3]@12 ~ [g1,g2]@23 ~@60, f2@7 ~@7 [f3,bb3]@22 ~@60, ~@4 ab3@9 eb4@10 ~@73]/4", // F5 Cm F7 G Bb5
})).s("gm_piano").gain(0.25).pan(0.4)

// chords · epiano2
const epiano2 = note(`<
  ~ A B A C A B A B A B A D@2 B A E A B A B A B A F@2 B A E ~@8 G B G E G B G E ~@8 G B G E G B G E G B G E H I G E ~@12
  G B G E G B G E A B A J@4
>`.pickRestart({
  A: "[c3,eb3,g3,bb3]@5 [f3,g3,bb3,d4]@7", B: "[eb3,f3,ab3,c4]@11 ~ eb4@6 d4@5 ~, ~@12 [f3,g3,bb3]@11 ~",
  C: "[eb3,f3,ab3,c4]@18 ~ [f3,g3,bb3,eb4]@4 ~", // Fm7 Eb
  D: "[[eb3,f3,ab3,c4]@11 ~ [f3,g3,bb3,d4]@11 ~ [c3,eb3,g3,bb3]@10 [f3,g3,bb3,d4]@14, ~@4 [c4,f4]@9 ~@3]/2", // Fm7 Gm7 Cm7 Gm7 F5
  E: "[eb3,f3,ab3,c4]@11 ~ [f3,g3,bb3,d4]@11 ~", // Fm7 Gm7
  F: "[[eb3,f3,ab3,c4]@11 ~ [f3,g3,bb3,d4]@11 ~ [c3,eb3,g3,bb3]@10 [f3,g3,bb3,d4]@14, ~@4 [c5,f5,g5]@9 ~@3]/2", // Fm7 Gm7 Cm7 Gm7 Csus4
  G: "[c3,eb3,g3,bb3] [f3,g3,bb3,d4]", H: "[c3,eb3,g3,bb3] [bb2,eb3,g3,bb3]",
  I: "[a2,eb3,g3,c4]@11 ~ [ab2,eb3,g3,c4]@11 ~", // Am7b5 Abmaj7
  J: "[[eb3,f3,ab3,c4]@12 ~ eb4@11 d4@8 ~@4 [c3,g3]@48 ~@12, ~@13 [f3,g3,bb3]@19 eb4@52 ~@12, ~@34 d4@51 ~@11, ~@35 bb3@50 ~@11]/4", // Fm7 C5 Gm7
})).s("gm_epiano2").gain(0.15).pan(0.8)

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@3 A@2 B@2 ~@10 C ~@78>".pickRestart({
  A: "[g5 g5@11]/2", B: "[c6@9 ~@7]/2", C: "f5!6",
})).s("gm_electric_guitar_jazz").gain(0.17)

// chords · guitar harmonics
const guitar_harmonics = note("<~ A@2 ~@93>".pickRestart({
  A: "[[bb3,g4]@19 ~@5]/2", // Eb
})).s("gm_guitar_harmonics").gain(0.09)

// other · clarinet
const clarinet = note(`<
  ~@16
  [c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~]
  ~@19
  [~@20 c6@3 ~]
  [c6@3 ~ c6@3 ~ c6@3 ~ c6@3 ~ c6@3 ~@5]
  ~@3
  [c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~ c5@3 ~]
  ~@54
>`).s("gm_clarinet").gain(0.02).pan(0)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@29 A B A C A B A D ~@8 A B A C A B A D ~@43>".pickRestart({
  A: "c4 ~ c4 d4@3, ~ g3@5", B: "c4 g3 c4 eb4@3", C: "c4@4 ~@8 eb4@11 ~, ~@4 g3@19 ~, ~@8 c4@15 ~",
  D: "c4 ~@2 eb4 ~@2, ~ g3@3 ~@2, ~ c4 ~",
})).s("gm_electric_guitar_clean").gain(0.2).pan(0.3)

// other · epiano1 · C
const epiano1 = note("<~@30 [~@3 g5@2 bb5] [[c6,c7]@3 ~] ~@2 [~@3 g5@2 bb5] [[c6,c7]@3 ~] ~@60>")
  .s("gm_epiano1").gain(0.2).pan(0.8)

// chords · french horn
const french_horn = note("<~@37 A ~@3 A ~@11 A ~@3 A ~@38>".pickRestart({
  A: "~ [g3,bb3,d4,g4]", // Gm
})).s("gm_french_horn").gain(0.24)

// other · electric guitar muted
const electric_guitar_muted = note("<~@37 A B A C A C A C ~@51>".pickRestart({
  A: "~@4 c4 ~ eb4 ~ c4 ~ g3 ~ eb3 ~@3 g3 ~@3 c4 ~@3", B: "~@8 ab3 ~ eb3 ~ d3 ~@3 f3 ~ d4 ~ bb3 ~ g3 ~",
  C: "~@6 c4 ~ ab3 ~ f3 ~ d3 ~ f3 ~ d3 ~ d4 ~ bb3 ~ g3 ~",
})).s("gm_electric_guitar_muted").gain(0.24).pan(0.6)

// chords · distortion guitar
const distortion_guitar = note("<~@53 A B C B A B C B A B C B D E F G ~@27>".pickRestart({
  A: "~@3 [eb4,g4,c5] ~@5 [g4,bb4,d5] ~@2", B: "~@3 [f4,ab4,c5] ~@5 [g4,bb4,d5]@2 ~",
  C: "~@6 [c5,eb5,g5]@3 ~@9 [g4,bb4,d5]@2 ~@4", D: "~@3 [g3,c4,eb4] ~@5 [bb3,c4,eb4] ~@2",
  E: "~@3 [a3,c4,eb4] ~@5 [ab3,c4,g4] ~@2", F: "~@3 [g4,c5,eb5] ~@5 [g4,bb4,d5] ~@2",
  G: "~@6 [f4,ab4,c5]@2 ~@8 [f4,ab4,c5] ~ [g4,bb4,d5]@4 ~@2", // Fm Gm
})).s("gm_distortion_guitar").gain(0.23)

// other · distortion guitar
const distortion_guitar_2 = note("<~@53 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~@28>".pickRestart({
  A: "~@4 bb3 ~ c4 ~ bb3 ~ c4 ~@13",
})).s("gm_distortion_guitar").gain(0.4).pan(0.8)

// other · agogo
const agogo = note("<~@57 [bb4 a4 ab4 g4 ab4 a4 bb4 a4 ~ ab4 g4 ab4 a4 bb4@2 ~@9] ~@38>")
  .s("gm_agogo").gain(0.14).pan(0)

// other · string ensemble 2
const string_ensemble_2_2 = note("<~@61 A B A C D E F G H@4 ~@23>".pickRestart({
  A: "c4@4 bb3 c4 bb3@3 g3@3", B: "eb3@4 bb3 c4 bb3@2 c4@2 bb3@2", C: "ab3@3 c4 bb3 g3 f3@3 eb4@3",
  D: "eb4@4 d4 c4 d4@6", E: "f4@2 eb4 d4@2 eb4@2 c4@2 c4 bb3 g3", F: "eb4 d4", G: "eb4 f4",
  H: "[g4@11 f4@12 eb4@12 f4@12 g4@13 f4@11 eb4@12 d4@12 ~]/4",
})).s("gm_string_ensemble_2").gain(0.31).pan(0.7)

// other · lead 1 square
const lead_1_square = note("<~@72 A@2 B@2 ~@2 C@2 D@2 ~@14>".pickRestart({
  A: "[c5@19 ~@5]/2", B: "[~@5 f4@30 ~@13]/2", C: "[~@11 gb4@27 ~@10]/2", D: "[~@11 c6@22 ~@15]/2",
})).s("gm_lead_1_square").gain(0.16)

// chords · string ensemble 1
const string_ensemble_1 = note("<~@81 A ~ A ~ A ~ A ~@8>".pickRestart({
// … 85 more lines

More by Gianni Bella