Strudelify

Immensamente

Tozzi

KeyC majorTempo110 bpm
0:00/0:00
// Immensamente — Tozzi
// 110 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 124 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): guitar program 29.
setcpm(110/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@4 B@4 C ~@17 D E@2 F@2 G@2 H@2 I@2 J@2 K@2 L@2 ~@18 M@2 N@2 M@2 O@2 P@2 Q@2 R@2 S@2 ~@47
>`.pickRestart({
  A: "[~@12 [g3,c4] ~ [g3,c4]@14 [g3,c4,f4]@2 [g3,c4]@6 [g3,c4,f4]@2 ~@6 f4@2 ~@4 f4@14, ~@6 f4 c3@9 ~@3 [g3,c4,e4]@4 [f3,a#3,c4,d4]@9, ~@7 e4@8 a2@7 ~@10, ~@30 e4@8 ~@2 a1@7 ~ a#1@16]/4", // C5 Csus4 C5 Csus4 C A#
  B: "[[f3,a#3,d4] ~ [f3,a#3,d4] ~ [f3,a#3,d4]@2 ~@2 [f3,a#3,d4]@2 [f3,a#3]@2 [f3,a#3,f4]@2 ~@14 [g3,c4,f4]@2 ~@14 [g3,c4,f4]@2 [a#1,f3,c4,d4]@18, g1@14 ~@2 c2@15 ~ a1@14 ~@18, ~@3 g2@4 [g3,c4]@7 ~ [g3,c4]@7 ~@10, ~@5 e4@2 e4@8 e4@8 ~@9, ~@22 c3@9 ~@7 a2@8 ~@18]/4", // A# A#5 Csus4 A# C5
  C: "[g1,f3,c4,d4]@15 ~", D: "~@8 [d3,g3,b3]@3 [d3,g3,c4]@3 [d3,g3,b3]@2",
  E: "[~ [c3,f3,a3]@23 a3@3 b3@3 c4@2, f2@3 [a2,c3,f3]]/2", // F
  F: "[c4@6 b3@18 b3@3 c4@3 b3@2, [g2,d3,g3]@23 ~ [e2,d3,g3]@8]/2", // G5 Em7
  G: "[[f2,c3,f3,a3]@24 c4@3 e4@3 c4@2, ~@3 [a2,f3,a3]]/2", H: "[[g3,b3,d4]@11 ~ [e2,g3,b3,e4]@4, g2@3 ~]/2",
  I: "[[f2,c3,f3,a3]@3 [d2,c3,f3,a3]]/2", J: "[c4 b3@2 [e2,e3,g3,b3], [g2,d3,g3]@3 ~]/2",
  K: "[[f2,f3,a3,c4]@3 [d2,f3,a3,c4]]/2", L: "[[g2,d3,g3,b3]@31 ~]/2", M: "[[c3,f3,a3]@3 [f3,a3,c4]]/2",
  N: "[c4@6 b3@17 ~ [e3,g3,b3]@8, [d3,g3]@23 ~@9]/2", O: "[[d3,g3,b3]@23 ~ [e3,g3,b3,e4]@8]/2",
  P: "[[f3,a3,c4]@23 ~ c4@3 d4@3 e4@2, ~@3 [f3,a3]]/2", // F
  Q: "[[c4,e4]@6 [b3,d4]@14 ~@4 [g3,b3,e4]@3 [g3,b3,f4]@3 [g3,b3,e4]@2, g3@5 ~@3]/2", // C Bm Em G7 Em
  R: "[[f3,a3,c4]@23 ~ c4@3 e4@3 c4@2, ~@3 [f3,a3]]/2", S: "[g3,b3,d4]/2",
})).s("gm_piano").gain(0.25)

// chords · pad warm
const pad_warm = note("<A@7 B@2 ~@115>".pickRestart({
  A: "[~@14 [g3,e4]@32 [f3,d4]@32 e4@33 [f3,d4], ~ c4@7, ~@39 g3@16 ~]/7", B: "[~@15 [f3,c4,d4]@16 ~]/2",
})).s("gm_pad_warm").gain(0.2)

// chords · piano
const piano_2 = note("<~ A@8 ~@115>".pickRestart({
  A: "[[g3,c4] ~ [g3,c4]@14 [g3,c4,f4]@2 [g3,c4]@6 [g3,c4,f4]@2 ~@6 f4@2 ~@4 f4@14 d4 ~ [f3,d4] ~ [f3,a#3,d4]@2 ~@2 [f3,a#3,d4]@2 [f3,a#3]@2 [f3,a#3,f4]@2 ~@14 [g3,c4,f4]@2 ~@14 [g3,c4,f4]@2 [f3,c4,d4]@18 ~@12, f4 c3@9 ~@3 [g3,c4,e4]@4 [f3,a#3,c4,d4]@9 ~@5 e4@2 e4@8 e4@8 ~@15, ~ e4@8 a2@7 ~@13 g2@4 [g3,c4]@7 ~ [g3,c4]@7 ~@16, ~@18 e4@8 ~@2 a1@7 ~ a#1@16 g1@14 ~@2 c2@15 ~ a1@14 ~@30, ~@74 c3@9 ~@7 a2@8 ~@30]/8", // C5 Csus4 C5 Csus4 Dm A# A#5 Csus4 …
})).s("gm_piano").gain(0.09).pan(0)

// chords · piano · soft notes
const piano_soft = note("<~@4 A ~@2 B@2 ~@115>".pickRestart({
  A: "~@4 [f3,a#3] ~ a#3 ~@9", B: "[~ a#1@9 ~@6]/2",
})).s("gm_piano").gain(0.05).pan(0)

// chords · piano
const piano_3 = note("<~ A@8 ~@115>".pickRestart({
  A: "[~@4 [g3,c4] ~ [g3,c4]@14 [g3,c4,f4]@2 [g3,c4]@6 [g3,c4,f4]@2 ~@6 f4@2 ~@4 f4@14 d4 ~ [f3,d4] ~ [f3,a#3,d4]@2 ~@2 [f3,a#3,d4]@2 [f3,a#3]@2 [f3,a#3,f4]@2 ~@14 [g3,c4,f4]@2 ~@14 [g3,c4,f4]@2 [f3,c4,d4]@18 ~@8, ~@2 f4 c3@9 ~@3 [g3,c4,e4]@4 [f3,a#3,c4,d4]@9 ~@5 e4@2 e4@8 e4@8 ~@13, ~@3 e4@8 a2@7 ~@13 g2@4 [g3,c4]@7 ~ [g3,c4]@7 ~@14, ~@22 e4@8 ~@2 a1@7 ~ a#1@16 g1@14 ~@2 c2@15 ~ a1@14 ~@26, ~@78 c3@9 ~@7 a2@8 ~@26]/8", // C5 Csus4 C5 Csus4 Dm A# A#5 Csus4 …
})).s("gm_piano").gain(0.06).pan(1)

// chords · piano · soft notes
const piano_soft_2 = note("<~@4 A ~@2 B@2 ~@115>".pickRestart({
  A: "~@8 [f3,a#3] ~ a#3 ~@5", B: "[~@3 a#1@9 ~@4]/2",
})).s("gm_piano").gain(0.03).pan(1)

// other · piano
const piano_4 = note("<~@8 [f5 e5 c5 a#4 g4 f4 e4 c4 a#3 g3 f3 e3 c3 a#2 g2 f2] ~@115>").s("gm_piano").gain(0.25)

// other · overdriven guitar
const overdriven_guitar = note(`<
  ~@8 A@2 ~@35 B@3 ~@5 B@3 ~@3 C D ~@18 B@3 ~@5 B@3 ~@3 D ~ B@3 ~@5 B@3 ~@3 D ~ B@3 ~@5 B@3 ~@2
>`.pickRestart({
  A: "g5/2", B: "[~ g5@8 ~@3]/3", C: "d4@2 g3 ~ d4 ~ g3 ~ d4 ~ g3 ~ d4 ~ g3 ~", D: "d4 ~@15",
})).s("gm_overdriven_guitar").gain(0.19)

// other · electric guitar muted
const electric_guitar_muted = note("<~@9 A B C D E F G D E H I D E H I D E F J ~@96>".pickRestart({
  A: "~@4 g3 ~ c4 ~ g3 ~ d4 ~ g3 ~ d4 ~", B: "g3 ~@3 g3 ~ c4 ~ g3 ~ d4 ~ g3 ~ d4 ~",
  C: "~@2 f3 ~ c4 ~ f4 ~ c4 ~@3 f4 ~ c4 ~", D: "f4 ~ f3 ~ c4 ~ f4 ~ c4 ~@3 f4 ~ c4 ~",
  E: "f4 ~ g3 ~ d4 ~ g4 ~ d4 ~@3 g4 ~ d4 ~", F: "g4 ~ g3 ~ d4 ~ g4 ~ d4 ~@3 g4 ~ d4 ~",
  G: "g4 ~ f3 ~ c4 ~ f4 ~ c4 ~@3 f4 ~ c4 ~", H: "g4 ~ g3 ~ d4 ~ g4 ~ d4 ~@3 c4 ~ e4 ~",
  I: "c4 ~ f3 ~ c4 ~ f4 ~ c4 ~@3 f4 ~ c4 ~", J: "g4 ~@15",
})).s("gm_electric_guitar_muted").gain(0.07).pan(1)

// chords · electric guitar muted
const electric_guitar_muted_2 = note("<~@9 A B C D E F G D E H I D E H I D E F J ~@96>".pickRestart({
  A: "~@3 g3 ~ [g3,c4] ~ [g3,c4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4]", // C5 G5
  B: "~ g3 ~ g3 ~ [g3,c4] ~ [g3,c4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4] ~ [g3,d4]", // C5 G5
  C: "~ [f3,g3] ~ [f3,c4] ~ [c4,f4] ~ [c4,f4] ~ c4 ~ f4 ~ [c4,f4] ~ [c4,f4]", // Fsus2 F5
  D: "~ [f3,f4] ~ [f3,c4] ~ [c4,f4] ~ [c4,f4] ~ c4 ~ f4 ~ [c4,f4] ~ [c4,f4]", // F F5
  E: "~ [g3,f4] ~ [g3,d4] ~ [d4,g4] ~ [d4,g4] ~ d4 ~ g4 ~ [d4,g4] ~ [d4,g4]", // G7 G5
  F: "~ [g3,g4] ~ [g3,d4] ~ [d4,g4] ~ [d4,g4] ~ d4 ~ g4 ~ [d4,g4] ~ [d4,g4]", // G G5
  G: "~ [f3,g4] ~ [f3,c4] ~ [c4,f4] ~ [c4,f4] ~ c4 ~ f4 ~ [c4,f4] ~ [c4,f4]", // Fsus2 F5
  H: "~ [g3,g4] ~ [g3,d4] ~ [d4,g4] ~ [d4,g4] ~ d4 ~ c4 ~ [c4,e4] ~ [c4,e4]", // G G5 C
  I: "~ [f3,c4] ~ [f3,c4] ~ [c4,f4] ~ [c4,f4] ~ c4 ~ f4 ~ [c4,f4] ~ [c4,f4]", J: "~ g4 ~@14",
})).s("gm_electric_guitar_muted").gain(0.07).pan(0)

// bass · synth bass 2
const bass = note(`<
  ~@9 A@2 B@2 C@2 D@4 E@2 F@2 E@2 G@2 H@2 I@2 H@2 I@2 J@2 I@2 J@2 K@2 L M N O L M N O L M N O L M N O L P Q R S T Q U S
  T Q R S T Q U S V L M N O L M N O L M N O L M N O L M N O L M N O L M N O L M N O L M N O L M N O L M N O ~@3
>`.pickRestart({
  A: "[[c1,c2]@3 [g1,g2]]/2", B: "[f1,f2]/2", C: "[g1,g2]/2", D: "[[f1,f2]@4 [g1,g2]@3 [e1,e2]]/4",
  E: "[[f1,f2]@3 [a1,a2]]/2", F: "[[g1,g2]@3 [e1,e2]]/2", G: "[[g1,g2]@31 ~]/2", H: "[f1@3 a1]/2", I: "[g1@3 e1]/2",
  J: "[f1@3 d1]/2", K: "g1/2", L: "c2", M: "a1", N: "a#1", O: "g1", P: "c2 ~@2 c2 ~@2 a2@2 e3 g2 f3 g2 e3 g2 a2 g2",
  Q: "f1 ~@2 f1 ~@2 f1@6 ~@4", R: "f1 ~@2 f1 ~@2 f1@2 a1@7 ~", S: "g1@5 ~ g1@6 ~@2 d1 e1",
  T: "g1 ~@2 g1 ~@2 g1@2 e1@7 ~", U: "f1 ~@2 f1 ~@2 f1@2 d1@7 ~", V: "g1 ~@2 g1 ~@2 g1@2 g1@7 ~",
})).s("gm_synth_bass_2").gain(0.38)

// bass · synth bass 2 · soft notes
const bass_soft = note("<~@61 A ~@3 A ~@3 A ~@3 A ~@47 B C D>".pickRestart({
  A: "~@14 c2 d2", B: "c2", C: "a1", D: "a#1",
})).s("gm_synth_bass_2").gain(0.16)

// other · electric guitar muted
const electric_guitar_muted_3 = note(`<
  ~@9 A@2 B@2 C@2 B@2 C D B@2 C D B@2 C@2 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C E ~@18 B@2 C@2 B@2 C@2 B@2 C@2 B@2 C E ~@47
>`.pickRestart({
  A: "~@2 g3 ~ c4 ~ g3 ~ d4 ~ g3 ~ d4 ~ g3 ~", B: "f3 ~ c4 ~ f4 ~ c4 ~@3 f4 ~ c4 ~ f4 ~",
  C: "g3 ~ d4 ~ g4 ~ d4 ~@3 g4 ~ d4 ~ g4 ~", D: "g3 ~ d4 ~ g4 ~ d4 ~@3 c4 ~ e4 ~ c4 ~", E: "g3 ~ d4 ~@13",
})).s("gm_electric_guitar_muted").gain(0.2)

// other · electric guitar clean
const electric_guitar_clean = note("<~@11 A B C@2 A B D@2 A E F@2 G@2 H@2 ~@97>".pickRestart({
  A: "~@8 g4@3 g4@3 g4 ~", B: "~@8 g4@3 g4@5", C: "[~@8 a4@3 a4@13 a4@3 a4@3 a4@2]/2", D: "[~@8 a4@3 a4@3 a4@10 ~@8]/2",
  E: "~ g4", F: "[~@8 a4@3 a4@3 a4@10 a4@3 a4@3 a4@2]/2", G: "[~@8 g4@3 g4@3 g4@9 ~ g4@6 ~@2]/2",
  H: "[~@8 a4@3 a4@3 a4@6 ~@4 a4@3 a4@3 g4@2]/2",
})).s("gm_electric_guitar_clean").gain(0.09).pan(0.7)

// other · distortion guitar
const distortion_guitar = note(`<
  ~@27 A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~@19 A@2 B ~ A@2 B ~ A@2 B ~ A@2 B ~@48
>`.pickRestart({
  A: "~@2 g3 ~@6 g3 ~@6", B: "~@2 a3 ~@6 a3 ~@6",
})).s("gm_distortion_guitar").gain(0.28)

// other · distortion guitar · soft notes
const distortion_guitar_soft = note("<~@35 A@2 B@2 C@2 D@2 ~@26 A@2 B@2 C@2 D@2 ~@47>".pickRestart({
  A: "[~@8 g4@2 ~ g4@3 g4@12 ~@6]/2", B: "[~@8 a4@3 a4@8 ~@13]/2", C: "[~@8 g4@2 ~ g4@3 g4@10 ~@8]/2",
  D: "[~@8 a4@2 ~ a4@2 ~ a4@4 a4 ~@2 a4@2 ~ a4@8]/2",
})).s("gm_distortion_guitar").gain(0.14)

// other · distortion guitar
const distortion_guitar_2 = note(`<
  ~@43 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 C@2 ~@16 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2
  A@2 B@2 A@2 B@2 A@2 D
>`.pickRestart({
  A: "[~ d4@7]/2", B: "[~@4 c4@27 ~]/2", C: "[d4@31 ~]/2", D: "~ c4@3",
})).s("gm_distortion_guitar").gain(0.12).pan(0.4)

// chords · overdriven guitar
const overdriven_guitar_2 = note("<~@43 A@16 B@2 ~@16 A@16 C@4 A@12 C@4 A@8 ~@3>".pickRestart({
  A: "[~@2 [c3,g3]@15 ~ [a#2,f3]@14]/4", B: "[c3,g3]/2", C: "[[c3,g3] ~@3 [c3,g3]@30 ~@2 [a#2,f3]@28]/4",
})).s("gm_overdriven_guitar").gain(0.11).pan(0.7)

// chords · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@121 A@3>".pickRestart({
  A: "[~@2 [c3,g3]@15 ~ [a#2,f3]@6]/3", // C5 A#5
})).s("gm_overdriven_guitar").gain(0.05).pan(0.7)

// other · overdriven guitar
const overdriven_guitar_3 = note("<~@61 [g4 ~@15] ~@62>").s("gm_overdriven_guitar").gain(0.1).pan(0.6)

// chords · pad poly
const pad_poly = note(`<
  ~@43 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I@2 J@2 K@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2
  B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B@2 ~@3
>`.pickRestart({
  A: "[g3,c4,d4,e4]/2", B: "[f3,a#3,c4,d4]/2", C: "[g3,c4,e4]/2", D: "[[a3,c4]@3 [a3,c4,e4]]/2",
  E: "[c4@3 b3@9 ~@4, d4@3 ~]/2", F: "[[f3,a3,c4]@3 [a3,c4,e4]]/2", G: "[b3@3 [g3,b3,e4]]/2",
  H: "[[a3,c4]@3 [a3,c4]]/2", I: "[c4@8 b3@15 ~ [g3,c4,d4]@8, [g3,d4]@23 ~@9]/2", J: "[[f3,a3,c4]@3 [f3,a3,c4]]/2",
  K: "[[g3,b3,d4]@15 ~]/2", // G
})).s("gm_pad_poly").gain(0.11)

// chords · pad poly · soft notes
const pad_poly_soft = note("<~@61 A@2 B@2 ~@2 C@2 D@2 ~@50 E@2 F>".pickRestart({
  A: "[f3@3 ~]/2", B: "[g3@3 [g3,b3,d4]]/2", C: "[[g3,d4]@3 ~]/2", D: "[f3@3 f3]/2", E: "[g3,c4,d4,e4]/2",
  F: "[f3,a#3,c4,d4] ~", // A#
})).s("gm_pad_poly").gain(0.06)

// drums · kick
const kick = s("bd").struct(`<
  ~@27 A@15 B C A@3 C A@3 C A@3 C A@4 D A@15 E C A@3 C A@3 C A@3 C A@2 F C A@3 C A@3 C A@3 C A@3 C A@3 C A@2 E C A@3 C A
  F
>`.pickRestart({
  A: "x ~@2 x!2 ~@3", B: "x", C: "x ~ x!2 ~@2 x ~ x ~@7", D: "x ~@5 x ~ x ~ x ~@2 x ~@2", E: "x ~@2 x!3 ~ x",
  F: "x ~@2 x ~@4",
})).gain(0.35)

// drums · rim
const rim = s("rim").struct("<~@29 A ~ A ~@3 A ~@5 A@2 ~@17 B ~@63>".pickRestart({
  A: "~ x ~@6", B: "~@9 x ~@6",
})).gain(0.25)

// drums · snare
const snare = s("sd").struct("<~@27 A@15 B A@17 C A@7 D A@7 E A@7 D A@7 F A@7 G A@7 H A@7 E A@7>".pickRestart({
  A: "~ x ~ x", B: "~@4 x!2 ~@2 x ~@7", C: "~ x ~@2", D: "~@4 x ~@7 x ~ x!2", E: "~@4 x ~@3 x!2 ~@2 x!2 ~@2",
  F: "~@4 x ~@3 x ~@3 x ~ x!2", G: "~@4 x ~@3 x ~@5 x!2", H: "~@4 x ~@5 x!2 ~@4",
})).gain(0.45)

// drums · low tom
const low_tom = s("lt").struct("<~@42 A ~@17 B ~@39 C ~@7 B ~@15>".pickRestart({
  A: "~@12 x!4", B: "~@14 x!2", C: "~@3 x",
})).gain(0.4)

// drums · hihat
const hihat = s("hh").struct(`<
  ~@27 A B C B C B C B A B C B C B C D E F G F E F G F E F G F E F G F H I A B C B C B C B A B C B C B C B E F G F E F G
  F E F G F E F G F E F G F E F G J E F G F E F G F E F G F E F G F E F G F E D ~
// … 36 more lines

More by Tozzi