Strudelify
Siamo ancora sulla strada cover art

1987 · Il colore dei pensieri

Siamo ancora sulla strada

Pooh

KeyG majorTempo89 bpm
0:00/0:00
// Siamo ancora sulla strada — Pooh
// 89 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 98 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(89/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(`<
  A B C D E F C G E H I J K H I J K L@2 M N O P@2 F C G E H I J K Q I J K L@2 M N O P@2 R S T U H V H W X Y X Z AA AB F
  C D E F C AC AD AE AF AG AH AI AF AG AH AJ@2 AK AG N AL AK AG N AM AF AN AO AP AK AG AO AM AQ AR AS AT AQ AR ~
>`.pickRestart({
  A: "~@12 c4 [c#4,d4,e4] [f4,f#4,g4] [g#4,a4,b4]", B: "g5@3 a5, [g4,b4], c5 ~@15", C: "f#5@3 g5, [f#4,b4]",
  D: "e5@12 ~ d5 e5 g5, [e4,g4]", E: "b5 c6 b5 c6 b5 c6 b5 c6 b5 c6 b5 c6 b5 g5 e5 d5, [g4,c5]@15 ~",
  F: "g5@3 a5, [g4,b4]", G: "e5@12 ~ d5 e5 g5, [e4,g4]@15 ~", H: "[b4,d5,g5]@15 ~", I: "[b4,d5,f#5]", J: "[g4,c5,e5]",
  K: "[g4,c5]", L: "[g4,b4,e5]@15 ~", M: "[b4,d5,f#5]@15 ~", N: "[a4,d5,f#5]", O: "[a4,c5,e5]@15 ~", P: "[f#4,a4,d5]",
  Q: "d5 e5, [b4,g5]", R: "g5@3 a5, [b4,d5]", S: "g5@3 a5, [c5,e5]@15 ~", T: "g5@11 ~ a5@4, [b4,d5]@15 ~",
  U: "[c5,e5,g5]", V: "[c5,e5,g5]@7 ~ [d5,f#5]@8", W: "[c5,e5,g5] [d5,f#5,a5]", X: "[b4,d5,g5]@7 ~ [a4,d5,f#5]@8",
  Y: "[a4,c5,e5]@8 [c5,e5,g5]@4 [d5,f#5,a5]@3 ~", Z: "[b4,e5,g5]@7 ~ [b4,d5,f#5]@7 ~", AA: "[c5,e5,g5]@15 ~",
  AB: "[a4,c5,e5]@8 [c5,e5,g5]@3 ~ [d5,f#5,a5]@4", AC: "[e4,g4,e5]@9 ~@7", AD: "[g4,c5]@2 ~ [g4,c5] ~@12",
  AE: "[g4,c5]@2 ~ [g4,c5] ~@2 [a4,d5] ~@9", AF: "[c#5,e5,a5]@15 ~", AG: "[c#5,e5,g#5]@15 ~", AH: "[a4,d5,f#5]@15 ~",
  AI: "[e5,g#5]@4 e5 f#5 a5 b5, b4", AJ: "[b4,e5,g#5]/2", AK: "[c#5,e5,a5]", AL: "[b4,e5,g#5]", AM: "[e5,g#5,b5]",
  AN: "[c#5,e5,g#5]", AO: "[d5,f#5,a5]", AP: "[e5,g#5,b5]@15 ~", AQ: "a5@3 b5, [a4,c#5]", AR: "g#5@3 a5, [g#4,c#5]",
  AS: "f#5@12 ~ e5 f#5 a5, [f#4,a4]", AT: "c#6 d6 c#6 d6 c#6 d6 c#6 d6 c#6 d6 c#6 d6 c#6 a5 f#5 e5, [a4,d5]@15 ~",
})).s("gm_rock_organ").gain(0.2)

// bass · fretless bass
const bass = note(`<
  ~ A B C D A B C E F G H I F J K L M N O P Q R S A T C U V W H I X Y Z AA AB N AC P AD P AE AF AG AH AI AJ AK AJ AK AL
  AM AN AO C AP A T AQ AR A G AQ AS AT AU AV AW AX AU AV AY AX AZ BA AV BB BC BD AV AW BE BF BG R BH BI AV R BJ AU BK R
  BC AU AV ~
>`.pickRestart({
  A: "g1@6 ~ g1 g1@4 a1@4", B: "b1@7 b1 b1@7 ~", C: "c2@6 ~ c2 c2@8", D: "d2@7 d2 d3 e3 g3@2 g2@4",
  E: "d2@7 d2 d3 e3 g3@2 a2@2 ~@2", F: "g1", G: "b1@7 b1 b1@8", H: "c2", I: "d2@12 a2@3 ~", J: "b1@7 b1 b1@4 b2@4",
  K: "c3", L: "d3@15 ~", M: "e3", N: "c3@3 c3", O: "b2", P: "d3", Q: "a2", R: "d2@6 ~ d2 d2@8",
  S: "d2@8 e3 c3 a2 g2 e2 d2 b1 a1", T: "b1@6 ~ b1 b1@8", U: "d2@6 ~ d2 d3 e3 g3 ~ a2@4", V: "g1@3 a1", W: "b1@3 b1",
  X: "g2 e2", Y: "b2@7 b2 b2@8", Z: "c3@7 ~ c3@8", AA: "d3@15 d3", AB: "e3@3 g3", AC: "b2@6 b2 c3",
  AD: "a2@6 ~ a2 a2@8", AE: "d3@7 d3 d3@3 a2 d2@3 a1", AF: "g1@6 ~ g1 g1@7 ~", AG: "g1@10 f#3 g3 f#3 e3 d3@2",
  AH: "g1@6 ~ g1 g1@8", AI: "g1@6 ~ g1 g3@7 ~", AJ: "g2", AK: "g2@15 ~", AL: "g2 f#2", AM: "a1@2 c2 d2",
  AN: "g2@6 ~ g2 f#2@8", AO: "e2@6 ~ e2 d2@8", AP: "a1@7 ~ c2@4 d2@3 ~", AQ: "c2@6 ~ c2!2 ~@7",
  AR: "d2@7 d2 d3@2 a2 ~ a2@3 ~", AS: "d1@3 d1 ~@12", AT: "d1@3 d1@2 ~ e1@10", AU: "a1@6 ~ a1 a1@4 b1@4",
  AV: "c#2@6 ~ c#2 c#2@4 c#2@3 ~", AW: "d2@6 ~ d2 d2@4 d2@4", AX: "e2@2 e2!2", AY: "d2@6 ~ d2 d2@4 d2@3 ~",
  AZ: "d3 c#3 b2@2 e2@4 b2@4 e2@4", BA: "a1@7 a1 a1@4 a1@4", BB: "d2@6 ~ d2 d2@4 d2 ~@3", BC: "e2@6 ~ e2 e2@4 e2@4",
  BD: "a1@6 ~ a1 a1@4 b1@3 ~", BE: "e2@6 ~ e2 b2@4 e2@4", BF: "a1@7 a1 a1@8", BG: "c#2@6 ~ c#2 c#2@4 c#2@4",
  BH: "e2@6 ~ e2 e2@4 e2 ~@3", BI: "a1@7 a1 a1@4 b1@4", BJ: "a3 g#3 a3 g#3 a3 g#3 a3 g#3 e3@8",
  BK: "c#2@6 ~ c#2 c#2@7 ~",
})).s("gm_fretless_bass").gain(0.54)

// other · alto sax
const alto_sax = note("<~@23 A B@2 C ~@15 A D@3 ~ E@5 ~@4 A B@2 C ~@18 F G ~@2 F H ~@2 F H ~@10>".pickRestart({
  A: "~@2 g5 a5", B: "[g5@2 d5 d5@21 e5@4 d5@4]/2", C: "b4@2 g4 g4@8 ~@5", D: "[g5@2 d5 d5@44 ~]/3",
  E: "[~@6 g5 a5 b5@2 g5 b5@2 g5 b5@4 b5@2 ~@2 e6!2 d6@2 e6 f#6@2 d6@2 b5@4 b5@2 ~ g5 a5 b5@2 g5 b5@2 g5 b5@4 b5@2 ~@2 e6!2 d6@2 e6 f#6@3 d6 d6@3 d6@2 ~@12]/5",
  F: "~@2 a5 b5", G: "a5@2 e5 e5@13", H: "a5@2 e5 e5@12 ~",
})).s("gm_alto_sax").gain(0.45).pan(0.6)

// chords · string ensemble 2
const string_ensemble_2 = note(`<
  ~ A B C@2 D E C@2 F G C@2 F H I C J@2 G K L M@2 A B C@2 F G C N O H C N J@2 G K L P@2 Q R Q C S T S T U V U W C V X B
  Y C A H C Z AA AB AC N AD AB AC N AE@2 AB AC N AD AB AC N AD AB AC N AD AB AC N AD AF AG K N AF AG ~
>`.pickRestart({
  A: "g4@11 ~ a4@4, [b3,d4]@15 ~", B: "f#4@11 ~ g4@4, [b3,d4]@15 ~", C: "[c4,e4,g4]", D: "g4@3 a4, [b3,d4]",
  E: "f#4@11 ~ g4@4, [b3,d4]", F: "[b3,d4,g4]", G: "[b3,d4,f#4]", H: "f#4@3 g4, [b3,d4]", I: "[c4,e4], g4 ~@15",
  J: "[g3,b3,e4]", K: "[a3,d4,f#4]", L: "[a3,c4,e4]", M: "[f#3,a3,d4]", N: "[d4,f#4,a4]", O: "[b3,d4,g4] [b3,e4,g4]",
  P: "[f#4,a4,d5]", Q: "g4@3 a4, [b3,d4]@15 ~", R: "g4@3 a4, [c4,e4]@15 ~", S: "[g3,b3,d4]",
  T: "[g3,c4,e4] [a3,d4,f#4]", U: "[b3,d4,g4] [a3,d4,f#4]", V: "[a3,c4,e4]@2 [c4,e4,g4] [d4,f#4,a4]",
  W: "[b3,e4,g4] [b3,d4,f#4]", X: "g4@11 ~ a4@4, [b3,d4]", Y: "[g3,c4,e4]",
  Z: "[g3,e4,g4]@2 ~ [g3,c4,e4,g4] ~@12, c4 ~@15", AA: "[g3,c4,e4,g4]@2 ~ [g3,c4,e4,g4]@3 [a3,d4,f#4,a4]@2 ~@8",
  AB: "[e4,a4,c#5]", AC: "[e4,g#4,c#5]", AD: "[e4,g#4,b4]", AE: "[e4,g#4,b4]/2", AF: "a4@3 b4, [c#4,e4]",
  AG: "g#4@11 ~ a4@4, [c#4,e4]@15 ~", // C#m
})).s("gm_string_ensemble_2").gain(0.2)

// chords · electric guitar clean
const electric_guitar_clean = note(`<
  ~ A B C D A B C D A B C E A B C F@2 G@6 A B C H A B C E I B C F@2 G@6 J K J L J M J N O P O Q R S T U V W X U K ~@34
>`.pickRestart({
  A: "[b3,d4,g4]!4 ~ [b3,d4,g4] ~ [b3,d4,g4]!2 ~ [b3,d4,g4] ~@5", B: "[b3,d4,f#4]!4 ~ [b3,d4,f#4] ~ [b3,d4,f#4]!2 ~@7",
  C: "[g3,c4,e4]!4 ~ [g3,c4,e4] ~ [g3,c4,e4]!2 ~ [g3,c4,e4] ~@5", // C
  D: "[c4,e4,g4]!4 ~ [c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4] ~ [c4,e4,g4] ~", // C
  E: "[f#3,a3,d4]!4 ~ [f#3,a3,d4] ~ [f#3,a3,d4] d4 ~ e4 ~ g4 ~ a4 ~", // D
  F: "[[f#3,a3,d4]!4 ~ [f#3,a3,d4] ~ [f#3,a3,d4] d4 ~ e4 ~ g4 ~ a4 ~ [g3,b3,e4]@13 ~@3, ~@15 e3@13 ~@4]/2", // D Em
  G: "[[c3,e3,g3,c4]@14 ~@2 [d3,f#3,b3]@13 ~@3 [f#3,a3,d4]@11 ~@5 [e3,a3,c4]@14 ~@2 [f#3,a3,d4]@12 ~@4 [f#4,a4]@15 ~, ~@15 b2@13 ~@3 d3@12 ~@4 c3@14 ~@2 d3@12 ~@4 [a3,d4]@15 ~@2]/6", // C Bm D Am D F#m D5
  H: "[c4,e4,g4]!4 ~ [c4,e4,g4] ~ [c4,e4,g4] d4 ~ e4 ~ g4 ~ a4 ~", // C
  I: "[b3,d4,g4]!4 ~ [b3,d4,g4] ~ [b3,d4,g4] [b3,e4,g4] ~ [b3,e4,g4] ~@5", // G Em
  J: "[b3,d4,g4] ~ [b3,d4,g4]!2 ~ [b3,d4,g4] ~ [b3,d4,g4]!2 ~@7", // G
  K: "[c4,e4,g4]@2 [c4,e4,g4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~@5", // C
  L: "[c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~@5", // C
  M: "[c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4] [d4,f#4,a4] ~@7", // C D
  N: "[c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4] [d4,f#4,a4] ~ [d4,f#4,a4] ~@5", // C D
  O: "[b3,d4,g4] ~ [b3,d4,g4]!2 ~ [b3,d4,g4] ~ [b3,d4,g4] [a3,d4,f#4] ~ [a3,d4,f#4] ~@5", // G D
  P: "[a3,c4,e4] ~ [a3,c4,e4]!2 ~ [a3,c4,e4] ~ [a3,c4,e4] [c4,e4,g4] ~@3 [d4,f#4,a4] ~@3", // Am C D
  Q: "[b3,e4,g4] ~ [b3,e4,g4]!2 ~ [e4,g4] b3 [b3,e4,g4] [b3,d4,f#4] ~ [b3,d4,f#4] ~@5", // Em Bm
  R: "[c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4]!2 ~@7", // C
  S: "[c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~@2 [c4,e4,g4] ~@3 [d4,f#4,a4] ~@3", // C D
  T: "[b3,d4,g4]@2 [b3,d4,g4]!2 ~ [b3,d4,g4] ~ [b3,d4,g4]!2 ~ [b3,d4,g4] ~@5", // G
  U: "[b3,d4,f#4] ~ [b3,d4,f#4]!2 ~ [b3,d4,f#4] ~ [b3,d4,f#4]!2 ~@7", // Bm
  V: "[g3,c4,e4] ~ [g3,c4,e4]!2 ~ [g3,c4,e4] ~ [g3,c4,e4]!2 ~ [g3,c4,e4] ~@5", // C
  W: "[c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~ [c4,e4,g4]!2 ~ [c4,e4,g4] ~@3 [c4,e4,g4] ~", // C
  X: "[b3,d4,g4] ~ [b3,d4,g4]!2 ~ [b3,d4,g4] ~ [b3,d4,g4]!2 ~ [b3,d4,g4] ~@5", // G
})).s("gm_electric_guitar_clean").gain(0.17).pan(0.4)

// other · brass section
const brass_section = note("<~@64 A B C D E F C D E G F C D E F C D E F C D E F C D E F C D E H C D ~>".pickRestart({
  A: "[c4,e4,g4]@2 ~ [c4,e4,g4] ~@12", B: "[c4,e4,g4]@2 ~ [c4,e4,g4] ~@2 [d4,f#4,a4] ~@9",
  C: "a4!4 ~ a4 ~ a4!2 ~ a4 ~@5", D: "g#4!4 ~ g#4 ~ g#4!2 ~@7", E: "f#4!4 ~ f#4 ~ f#4!2 ~ f#4 ~@5",
  F: "e4!4 ~ e4 ~ e4!2 ~ f#4 ~ a4 ~ b4 ~", G: "e4!4 ~ e4 ~ e4!5 ~ e4 ~ e4", H: "e4!5 ~ e4 ~ e4 ~ f#4 ~ a4 ~ b4 ~",
})).s("gm_brass_section").gain(0.45).pan(0.4)

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

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

// drums · low tom
const low_tom = s("lt").struct("<~@23 A ~@18 B ~@8 C ~@12 D E ~@8 A ~@23>".pickRestart({
  A: "~@4 x ~@3 x ~@2 x ~@2 x ~", B: "~@2 x!3 ~@2 x", C: "~@10 x!5 ~", D: "~@15 x", E: "x ~@2 x ~@2 x ~@9",
})).gain(0.57)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 A ~@18 B ~@4 C@4 D ~@4 E ~@17 A ~@23>".pickRestart({
  A: "~@3 x ~@3 x ~ x!2 ~ x!2 ~@2", B: "~@10 x ~ x!2 ~@2", C: "x!4", D: "x ~@3 x ~ x!2 ~@8", E: "~@5 x ~@2",
})).gain(0.57)

// drums · open hat
const open_hat = s("oh").struct("<A B@2 C@2 B@2 C@2 ~@13 D ~@18 D ~@15 B@2 C@2 B@2 C ~@32 D ~>".pickRestart({
  A: "~@3 x", B: "~ x ~@6", C: "~@3 x ~@3 x", D: "~@5 x ~@2",
})).gain(0.29)

// drums · crash
const crash = s("cr").struct(`<
  ~ A ~@3 A ~@3 A ~@3 A ~@3 A ~@6 A ~@3 A ~@3 A ~@3 A ~@6 A@3 B C ~@4 D A ~@3 A ~@3 A ~@2 C E A ~@3 A ~@4 A ~@3 A ~@3 A
  ~@3 A ~@3 A ~@6
>`.pickRestart({
  A: "x", B: "x ~@2 x", C: "~ x", D: "x ~ x!2", E: "~@3 x",
})).gain(0.43)

stack(
  rock_organ, bass, alto_sax, string_ensemble_2, electric_guitar_clean, brass_section, kick, snare, low_tom, hihat,
  mid_tom, open_hat, crash
)

More by Pooh