Strudelify
Le canzoni di domani cover art

Musicadentro

Le canzoni di domani

Pooh

KeyD majorTempo112 bpm
0:00/0:00
// Le canzoni di domani — Pooh
// 112 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 133 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(112/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 · rock organ
const rock_organ = note(`<
  ~@5 A B@2 C D C D C E F C@2 E F C D C D C D C D C E F C@2 E F C D C D G H I J K@2 I J L@2 M E N O J L@2 C D C D C E F
  P@2 E F C D C D G H I J K@2 I J L@2 M E N O J L@2 Q R S C Q R T U J K@2 I J V@2 W J K@2 ~@2 X@2 Y Z@2 C AA C AB C AA C
  AB C AA C AB C AA C AA AC@4
>`.pickRestart({
  A: "~@13 f#4 [g4,a4,b4] [c5,d5,e5,f#5]", // G D7
  B: "[[g5,a5,b5,g#6] ~@15 e6@11 [d6,e6] [g5,a5,b5] [d5,e5,f#5] [g4,a4,b4,c5] ~, a6@13 ~@3, [d6,f#6]@8 c6@7 ~]/2", // Dsus2 G D Cmaj7 D
  C: "[d5,f#5,a5]", D: "[c5,e5,g5]@3 [b4,d5]@3 [c5,e5]@2", E: "[b4,d5,g5]", F: "[a4,c#5,e5] [c5,e5,g5]",
  G: "[d5,f5,a#5]", H: "[e5,g5,c6]", I: "[f#5,a5,d6]", J: "[g5,b5,d6] [f#5,b5,d6]",
  K: "[~@14 [a4,b4] [c5,d5,e5,f#5] g5 ~@4 d#6 e6@10, c#6, a5@15 ~, e6@11 ~@5, ~ a6]/2", // Asus2 D7
  L: "[~@14 [a4,b4] [c5,d5,e5,f#5] a6@16, [c#6,e6], a5@15 ~, ~@16 g5 ~@15]/2", M: "[b4,e5,g5]",
  N: "[b4,e5,g5]@8 c#5@6 [a4,b4] [c5,d5,e5,f#5], ~ [e5,a5]", O: "[f#5,a5,d6], g5 ~@15",
  P: "[a5@8 [g5,g#5] ~ g5 ~ f5@2 ~@2 [f#5,a5]@16, d5@7 d5@9, f#5@3 ~@5]/2", Q: "[a#4,d5,f5]", R: "[c5,e5,g5]",
  S: "[a#4,d5,f5] [c5,e5,g5]", T: "[a#4,d5,f5]@8 c5@6 [a4,b4] [c5,d5,e5,f#5], ~ [e5,g5]", U: "[a5,d6], [f#5,g5] ~@15",
  V: "[~@14 [a4,b4] [c5,d5,e5,f#5] a6@16, [a5,c#6,e6], ~@16 g5 ~@15]/2", W: "[a5,d6], f#5 ~@15", X: "[a4,c#5,e5,a5]",
  Y: "[g5,b5,d6,g6]@3 [f#5,a5,d6,f#6]@3 [g5,b5,d6,g6]@2", Z: "[a5,c#6,e6,a6]/2",
  AA: "[c5,e5,g5]@3 [b4,d5,g5]@3 [c5,e5,g5]@2", AB: "[c5,e5,g5]@3 [b4,d5,g5]@3 [g4,b4,d5]@2",
  AC: "[[d5,f#5,a5]@14 [d5,f#5,a5]@39 ~@11]/4", // D
})).s("gm_rock_organ").gain(0.22).pan(0.8)

// chords · string ensemble 1
const string_ensemble_1 = note(`<
  ~@40 A B C@2 A B C@2 D E F A B C@2 ~@17 A B C@2 A B C@2 D E F A B C@2 G H I J G H I A B C@2 A B C@2 A B C@2 ~@27
>`.pickRestart({
  A: "[d3,f#3,d4]", B: "[g2,g3,b3] [b2,f#3,d4]", C: "[a2,a3,c#4]/2", D: "[g3,e4]", E: "[g3,d4]",
  F: "[g3,e4] [a2,a3,c#4]", G: "[a#3,f4]", H: "[c4,g4]", I: "[a#3,f4] [g3,e4]", J: "[f#3,d4]",
})).s("gm_string_ensemble_1").gain(0.43)

// other · overdriven guitar
const overdriven_guitar = note("<~@113 A B C D E F@2 G@2 H I@2 J K L M N@2 O@2>".pickRestart({
  A: "d5@2 ~ d5@9 ~ g4 f4 d4, ~@6 a4 ~", B: "g4@2 f4@10 ~ g3 ~ d3, ~@6 a3 f3", C: "f3@4 d3@2 d3@4 c4 d4 f4@2 d4 c4",
  D: "d4@2 f4@2 ~@3 d5", E: "d5@3 d5@3 c5 d5",
  F: "[e5@4 a4@2 c5@6 ~@2 a4@4 d5@2 f5 d5 c5 a4 g#4 g4 f4 d4 g4 f4 d4 c4]/2",
  G: "[c4@4 g4 a4 d5 ~ b4@14 b4@2 c5@6 b4@2, ~@7 a4@2 ~@23]/2", H: "c5 b4 c5 b4 c5 d5 c5 b4",
  I: "[c5@4 b4@2 a4@4 g4@2 a4@2 a4@9 ~@3 g5@2 a5@2 c6@2]/2", J: "a5@11 c6 a5@3 c6",
  K: "a5@9 ~ g4 ~ c5@2 [a4,c5]@2, ~@11 a4@2 ~@3", // Am
  L: "g4 a4 [a4,c5]@2 [a4,c5]@2 g4 a4 [a4,c5]@2 [a4,c5]@2 ~ f4 d4@2, ~@6 g4 ~", // Am
  M: "g4 f4 d4 c4 a3 g3 f3 d3 f3@2 d3@2 f3@2 d3@2", N: "[d3@9 ~ f3@2 c3@2 d3@10 c3 d3 f3 g3 a3 g3 f3 d3]/2",
  O: "[g3 f3 d3 c3 f3 d3 c3 a2 d3 c3 a2 g2 a2 f2 [d2,a2]@8 ~@10]/2", // D5
})).s("gm_overdriven_guitar").gain(0.64)

// bass · electric bass finger
const bass = note(`<
  ~@2 A@3 B C@2 D B D E D F G H D F G D I J K D B D B D F G L D F G D I J M N O P Q R S P Q R@2 T U V P Q R S D B D B D
  F G L D F G D I J M N O P Q R S P Q W X T U V P Q Y Z AA AB AC AD AA AB AE P Q R S P Q AF AG P Q R AH ~@2 AF AI AJ AK
  AL D B D AM D B D AM D B D AM D B D AM AN@4
>`.pickRestart({
  A: "[~ d3 a3 d4@4 ~ c4@3 b3@3 d1 d1@9, d1@7 ~@5, ~@16 d4 ~@31]/3", B: "c2@3 b1@3 c2@2", C: "[d2@15 a1]/2",
  D: "d2@5 ~@2 c2 d2 ~ d2@3 ~ d2@2", E: "c2@6 b1@6 c3@3 ~", F: "g1@5 ~@2 f1 g1 ~ g1@3 ~ g1@2",
  G: "a1@5 ~@2 b1 c2 ~ c2@3 ~ c2@2", H: "d2@5 ~@2 d2 g2@2 a2@2 c3@2 a2@2", I: "c2@2 ~@2 c2@2 ~@2 g1@2 ~@2 g1 ~ e1@2",
  J: "d2@2 ~@2 d2@2 ~@2 d2@2 ~@2 d2 ~ a1@2", K: "c2@2 ~@2 c2@2 ~@2 g1 ~ e1@2 g1 ~ e1@2",
  L: "d2@5 ~@2 d2 c3@2 d3@2 e3@2 d3@2", M: "c2@2 ~@2 c2@2 ~@2 g1@2 ~@2 g1 ~ f1@2",
  N: "a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1 ~ a#1@2", O: "c2 ~ c2 ~ c2 ~ c3@2 c3 ~ c3 ~ c3 ~ c3 ~",
  P: "d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ d2 ~ a1@2", Q: "g1 ~ g1 ~ g1 ~ g1 ~ b1 ~ b1 ~ b1 ~ b1@2",
  R: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e1@2", S: "a1 ~ a1@2 e2@2 a2@2 e2@2 a1@2 a1 ~ e2@2",
  T: "e1@4 ~@2 e1 ~ e1@4 ~@2 f#1@2", U: "g1@4 ~@2 g1 ~ g1@4 ~@2 g1@2", V: "e1@2 e1!2 a1@2 ~ a1",
  W: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e2@2", X: "e2 ~ a1@2 ~@2 a1 ~ a1 ~ a1 ~ a1@4, ~ e2@2 ~",
  Y: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ e2@2 a1@2 e1@2", Z: "a1 ~ a1@2 e2@2 a2@6 a1@3 ~", AA: "a#1@3 f2@3 c3@2",
  AB: "c2@3 g2@3 d3@2", AC: "a#1 ~ a#1 ~ a#1 ~ a#1@2 c2 ~ c2 ~ c2 ~ c2@2", AD: "d2@3 ~ d2@2 d3 e3@3 d3@2 a2@2 d2@2",
  AE: "a#1 ~ a#1 ~ a#1 ~ a#1@2 c2 ~ c2 ~ g2@3 ~", AF: "a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1 ~ a1@2",
  AG: "e2 ~ a1@2 e2@2 a1 ~ a1 ~ a2@2 a2@2 a2@2", AH: "a1 ~ a1@2 e2@2 a2@2 e2@2 a1@2 a1 ~ a1@2",
  AI: "a2@2 a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~ a2 ~", AJ: "g1@3 f#1@3 g1@2", AK: "a1", AL: "a2", AM: "c2@3 b1@3 g1@2",
  AN: "[d2@12 c2 ~ d2@38 d2 ~@11]/4",
})).s("gm_electric_bass_finger").gain(0.59)

// chords · distortion guitar
const distortion_guitar = note(`<
  A B C D@2 B A B A B A E F G H I F G H J B K B A B K B F G H I F G H J B K B L@2 M N O P M N Q R S T U M N Q R A B K B
  F G H I F G H J B K B L@2 M N O P M N Q R S T U M N Q R V W X Y V W Z M N O P M N Q R M N O P ~ AA@3 AB AC@2 AD B AD
  AE AD B AD AE AD B AD AE AD B AD AF AG@4
>`.pickRestart({
  A: "~@2 a3@2 ~@2 a3@4 ~@4 a2 b2, d3@6 d3@9 ~, ~@2 d4@3 [a3,d4]@3", // D5
  B: "~ e3 ~@2 d3 ~@2 e3, c3@3 b2@3 c3@2, ~@2 g3@2 ~ g3@3",
  C: "~@4 a3@2 a3@2 ~@6 a2 b2, d3@7 ~, ~@2 f#3@4 d4@4 d4@5 ~, ~@2 a3!2",
  D: "[~@2 e3@2 ~@4 d3@2 ~@2 c3@2 ~@6 a3@2 a3@2 ~@4 a3@2 a2 b2, c3@3 b2@3 ~ d3@8 ~, ~@4 g3@4 ~@2 g3@4 a3@6 ~@2 d4@4 d4@5 ~, ~@9 f#3@2 ~ a3@2 ~@2]/2",
  E: "~ e3 ~@5 e3, c3@3 b2@3 c3@2, ~ g3 d3 ~, ~@5 g3@3", F: "[d3,a3,d4]@15 ~", G: "[d3,g3,d4]",
  H: "[a2,e3,a3] [c3,g3,c4]", I: "~@3 a3@2 a3@2 [d3,a3], d3@3 d3@4 ~, d4@2 d4@3 d4@3, ~ a3@2 ~@5",
  J: "~@3 a3@2 [a3,d4]@3, d3@3 d3@5, d4@2 d4@3 ~@3, ~ a3@2 ~@5", // D5
  K: "~@2 a3@2 ~@2 f#4 g4 f#4@2 ~@4 a2 b2, d3@6 d3@9 ~, ~@2 d4@3 d4@3, ~@3 a3",
  L: "[[a#2,f3,a#3]@14 ~ c4@8 ~ [g3,c4]@8, ~@14 c3@17 ~, ~@14 g3@9 ~@9]/2", M: "[d3,a3,d4]", N: "[g3,d4] [f#3,b3]",
  O: "~@2 c#4@3 d4@3, [a2,a3,e4]", P: "~@3 a4@5, [a2,a3], e4 ~", Q: "~@3 e3 a3 ~ e3 a3, [a2,e4], a3 ~, ~@2 c#4@3 d4@3",
  R: "a3 ~ e3@2 ~@2 a4@10, [a2,e4], ~ a3@3", S: "[e3,b3,e4]", T: "[g3,d4,g4]", U: "[e3,b3,e4] [e3,a3,e4]",
  V: "~@2 f3!2 a#3!2 f4!2 a#4!2 f4!2 a#3!2 f3!2, [f2,a#2]", W: "~@2 g3!2 c4!2 g4!2 c5!2 g4!2 c4!2 g3!2, [g2,c3]",
  X: "~@2 f3!2 a#3!2 f4!2 c3 ~ g3!2 c4!2 g4!2, [f2,a#2] g2, ~@9 c3@7", // A#5
  Y: "~@2 a3!2 d4!2 a4!2 d5!2 a4!2 d4!2 a3!2, [a2,d3]", // D5
  Z: "~@2 f3!2 a#3!2 f4!2 c3 ~ g3!2 c4!2 [g3,c4]@2, [f2,a#2]@4 g2@3 ~, ~@9 c3@7", // C5 A#5
  AA: "[~@15 a3@15 ~ a3@15 ~@2, ~@14 [a2,e3]@15 ~ [a2,e3]@16 ~@2]/3", AB: "[g2,d3,g3]@6 [f#2,d3,f#3]@6 [g2,d3,g3]@3 ~",
  AC: "[a2,e3,a3]/2", AD: "~ a3 ~ a3@2 [a3,d4]@3, d3@3 d3@5, ~@2 d4@3 ~@3",
  AE: "~ e3 ~@2 d3 ~ g2@2, c3@3 b2@3 ~@2, ~@2 g3@2 ~ g3@3", AF: "~ e3 ~@2 d3 ~ c3@2, c3@3 b2@3 ~@2, ~@2 g3@2 ~ g3@3",
  AG: "[[d3,a3,d4]@12 [d3,a3] ~ d4@39 ~@11]/4", // D5
})).s("gm_distortion_guitar").gain(0.36).pan(0.3)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A ~@2 B ~ C D C D C@7 E F@3 C D C D C@7 E F@5 E@2 G@2 E@2 G@2 H@3 E@2 G@2 C D C D C@7 E F@5 E@2 G@2 E@2 G@2 H@3
  E@2 G E F@6 I E@2 G@2 E@2 G@2 E@2 G@2 ~@2 G J K B ~ C D C D C D C D C D C D C D C L M ~@2 N
>`.pickRestart({
  A: "~@6 x!2", B: "x", C: "x ~@4 x ~@2", D: "x ~@2 x ~ x ~@2", E: "x!2", F: "x!4", G: "x ~@3 x!2 ~@2",
  H: "x ~@2 x!2 ~@3", I: "x ~ x!5 ~", J: "x ~@3 x!2 ~ x", K: "x ~@2 x ~@2 x ~", L: "x ~@2 x ~@3 x", M: "x ~@5 x!2",
  N: "~ x ~@2",
})).gain(0.62)

// drums · snare
const snare = s("sd").struct(`<
  ~@6 A B C@11 D E F@2 G@11 H E F@3 I J@3 D J@2 D K J@2 D J@3 D G@4 L@7 H E F@3 I J@3 D J@2 D J@3 D J@3 M E F@3 E F N
  J@3 D J@2 D@2 J@3 D ~@2 J@2 O ~ P L@3 Q L@11 R ~@3 S
>`.pickRestart({
  A: "~@14 x!2", B: "x!16", C: "~@4 x ~@4 x ~@2 x ~@3", D: "~@2 x ~@2 x!3", E: "~ x!3", F: "x!4",
  G: "~@4 x ~@4 x ~@2 x ~@2 x", H: "~@4 x ~ x!9 ~", I: "x ~ x ~ x!4", J: "~ x ~ x", K: "~ x ~@2",
  L: "~@4 x ~@2 x ~ x ~@2 x ~@2 x", M: "~@4 x ~@2 x!9", N: "x ~ x ~@2 x!3", O: "~ x!2 ~ x!2 ~@2", P: "x!2 ~ x!13",
  Q: "~@4 x ~@2 x ~ x ~@2 x ~@3", R: "~@4 x ~@2 x ~ x!2 ~ x ~@3", S: "~ x ~@6",
})).gain(0.35)

// drums · snare · soft notes
const snare_soft = s("sd").struct(`<
  ~@8 A B C B A@7 D ~@3 E F G F E@7 ~@21 E F G F H@7 ~@46 I J F J B J F J F J F J F J F J K ~@4
>`.pickRestart({
  A: "~@6 x!3 ~@5 x!2", B: "~@2 x ~@5 x ~@5 x!2", C: "~@2 x ~@3 x!3 ~@5 x!2", D: "~@6 x!4 ~@6", E: "~@6 x!3 ~@5 x ~",
  F: "~ x ~@2 x ~@2 x", G: "~@2 x ~@3 x!3 ~@5 x ~", H: "~@3 x!2 ~@2 x", I: "~ x ~@6", J: "~ x ~ x!2 ~@2 x",
  K: "~ x ~@2 x ~@3",
})).gain(0.14)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@47 [~@3 x] ~@31 [~@3 x] ~@53>").gain(0.62)

// drums · open hat
const open_hat = s("oh").struct("<~@19 A ~@14 B ~@3 C D ~@10 A ~@15 B ~@3 C D ~@10 A ~@10 E ~@34 F ~@4>".pickRestart({
  A: "~ x", B: "~ x ~@2", C: "~@2 x!6", D: "x!5 ~@3", E: "~ x!4 ~@3", F: "~@7 x",
})).gain(0.41)

// drums · crash
const crash = s("cr").struct(`<
  ~@3 A ~@2 B ~ B ~@2 C B ~@7 B ~@2 B ~@2 C B ~@7 B ~@2 B ~ B ~@3 B ~@3 B ~@2 B ~@3 B ~@2 C B ~@7 B ~@2 B ~ B ~@3 B ~@3
  B ~@2 B ~@3 B ~@3 B ~ B@2 ~@3 D ~@3 B ~@5 B E F B ~ B ~@14 F G H I J
>`.pickRestart({
  A: "~@6 x!2", B: "x", C: "~@7 x", D: "x!2 ~@2", E: "x ~@6 x", F: "x ~@2 x ~@2 x ~", G: "x ~@5 x!2", H: "~@14 x!2",
  I: "x!16", J: "x!3 ~ x ~@11",
})).gain(0.35)

// drums · crash · soft notes
const crash_soft = s("cr").struct("<~@130 [~@4 x!10 ~@2] ~@2>").gain(0.21)

// drums · ride
const ride = s("rd").struct(`<
  ~@40 A B@2 C A B@2 D ~@3 A B@2 D ~@17 A B@2 C A B@2 D ~@3 A B@2 D ~@7 A B@2 C E B@2 D A B@2 C ~@2 A@2 ~@23
>`.pickRestart({
  A: "~ x!7", B: "x!8", C: "x!5 ~@3", D: "x!7 ~", E: "~ x ~ x!5",
})).gain(0.35)

// drums · tambourine
const tambourine = s("tb").struct(`<
  ~@3 A B ~@15 C@3 D ~@11 C@13 D ~@2 C@4 D ~@11 C@13 D ~@2 C@23 ~@2 C@2 D C ~ C@19 E
>`.pickRestart({
  A: "~@15 x", B: "x!15 ~", C: "x!16", D: "x", E: "x!5 ~@11",
})).gain(0.28)

stack(
  rock_organ, string_ensemble_1, overdriven_guitar, bass, distortion_guitar, kick, snare, snare_soft, hihat, mid_tom,
  open_hat, crash, crash_soft, ride, tambourine
)

More by Pooh