Strudelify

Fatte 'na pizza

Daniele

KeyC majorTempo111 bpm
0:00/0:00
// Fatte 'na pizza — Daniele
// 111 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(111/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.

// other · electric guitar jazz
const electric_guitar_jazz = note("<~@4 A B C D ~@80 A B C D>".pickRestart({
  A: "~@2 [g4,g5] ~ [f4,f5]@2 [e4,e5] ~ [f4,f5]@2 [f4,f5] ~@3 [e4,e5] ~", // G F E F E
  B: "[f4,f5]@2 [e4,e5] ~ [f4,f5]@2 [g4,g5] ~ [g4,g5] ~@3 [g4,g5]@3 ~", // F E F G
  C: "~@2 [g4,g5] ~ [f4,f5]@2 [e4,e5] ~ [f4,f5]@2 [e4,e5] ~ [f4,f5]@2 [g4,g5] ~", D: "[g4,g5] ~@7",
})).s("gm_electric_guitar_jazz").gain(0.39).pan(0.7)

// other · electric guitar jazz · soft notes · F# C# F# C#
const electric_guitar_jazz_2 = note(`<
  ~@7
  [~ [f#4,f#5] [d4,d#4,e4,f4,d5,d#5,e5,f5] [c#4,c#5] ~@12]
  ~@83
  [~ [f#4,f#5] [d4,d#4,e4,f4,d5,d#5,e5,f5] [c#4,c#5] ~@12]
>`).s("gm_electric_guitar_jazz").gain(0.19).pan(0.7)

// other · orchestra hit · G
const orchestra_hit = note(`<
  ~@7
  [~@8 [g2,g4,g5] ~@3 [g4,g5] ~@3, ~@6 g2 ~]
  ~@83
  [~@8 [g2,g4,g5] ~@3 [g4,g5] ~@3, ~@6 g2 ~]
>`).s("gm_orchestra_hit").gain(0.48).pan(0.3)

// bass · electric bass finger
const bass = note(`<
  ~@7 A B C B D B C B D B C B D E F E G B C B D B C B D E F E G E F E G B C B D B C B D B C B D E F E G B C B D B C B D
  E F E G E F E G B C B D B C B D B C B D B C B D B C B H
>`.pickRestart({
  A: "~@5 g1 f2@2", B: "f1@2 g1@2 ~@3 g1 f1@2 g1@2 a#1@2 c2@2", C: "f1@2 g1@2 ~@3 g1 f1@2 f#1@2 g1@2 ~@2",
  D: "f1 g1 a#1@2 f1 g1 c2@2", E: "d2@4 g1 a1 c2 d2", F: "f1@7 ~ g1@7 ~, a#1 ~@7 c2 ~@7", G: "f1@7 ~ c2 g1@7, a#1 ~@15",
  H: "f1@2 g1@4 ~@2 g1 ~ g1 ~ g1@2 ~@2",
})).s("gm_electric_bass_finger").gain(0.32)

// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
  ~@8 A@2 B@2 C D E F C D E F ~@4 D@2 G H D@2 G H ~@8 A@2 B@2 I D G H I D G H ~@4 I D G H I D G H ~@8 A@2 B@2 A@2 B@2
  ~@12
>`.pickRestart({
  A: "~@4 [d5,g5]!4 ~@8", B: "~@4 [c5,f5]!4 ~@8", C: "~@4 g4 ~ g4 [d4,g4] ~@8", D: "~@4 g4 [d4,g4]!3 ~@8",
  E: "~@4 f4 ~ f4 [c4,f4] ~@8", F: "~@4 [c4,f4] c4 f4 [c4,f4] ~@8", G: "~@4 [c4,f4]!4 ~@8",
  H: "~@4 [c4,f4]!2 f4 [c4,f4] ~@8", I: "~@4 [d4,g4]!4 ~@8",
})).s("gm_acoustic_guitar_nylon").gain(0.18).pan(0.4)

// chords · acoustic guitar nylon · soft notes
const acoustic_guitar_nylon_2 = note(`<
  ~@12 A B C D A B C D ~@4 B@2 ~ E B@2 ~ E ~@13 B ~ E ~ B ~ E ~@5 B ~ E ~ B ~ E ~@28
>`.pickRestart({
  A: "~@4 d4 [d4,g4] d4 ~@9", B: "~@4 d4 ~@11", C: "~@4 c4 [c4,f4] c4 ~@9", D: "~@5 f4 c4 ~@9", E: "~@6 c4 ~@9",
})).s("gm_acoustic_guitar_nylon").gain(0.11).pan(0.4)

// chords · rock organ
const rock_organ = note(`<
  ~@12 A B C D A B C E F G F G A B C D A B C E F G F G F G F G ~@4 A B C D A B C E F G F G A B C D A B C E F G F G F G F
  ~@21
>`.pickRestart({
  A: "~@2 [g4,c5,f5] ~@3 [a4,d5,g5] ~@3 [g4,c5,f5] ~@3 [c5,e5,a#5] ~", // Csus4 Dsus4 Csus4 C7
  B: "~@2 [c5,f5,a#5] ~@3 [c5,f5,a#5] ~@3 [c5,f5,a#5] ~@3 [c5,f5,a#5] ~", // Fsus4
  C: "~@2 [a4,d5,g5] ~@3 [a4,d5,g5] ~@3 [a4,d5,g5] ~@3 [a4,d5,g5] ~", // Dsus4
  D: "~@2 [d5,g5,c6] ~@3 [d5,g5,c6] ~@3 [d5,g5] ~@3 [d5,g5,c6] ~", // Csus2 G5 Csus2
  E: "~@2 [d5,g5,c6] ~@3 [d5,g5,c6] ~@3 [d5,g5] ~@3 [a4,d5,g5] ~", F: "a4 b4 c5 b4", G: "c5 g4",
})).s("gm_rock_organ").gain(0.19)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@21 A@2 B ~@9 A@2 B ~ A@2 B ~@13 A@2 B ~@9 A@2 B ~ A@2 B ~@20>".pickRestart({
  A: "[~ f4 e4 f4 ~ g4 e4 g4@2 ~@7, c4@7 ~ d4@10 ~@14]/2", B: "~ f4 e4 f4 ~ g4 e4 g4, c4@7 ~ d4@8",
})).s("gm_electric_guitar_clean").gain(0.36).pan(0.7)

// chords · electric guitar clean
const electric_guitar_clean_2 = note(`<
  ~@20 A@2 B@2 ~@8 A@2 B@2 A@2 B@2 ~@12 A@2 B@2 ~@8 C@2 B@2 C@2 B@2 ~@20
>`.pickRestart({
  A: "[~@3 f3@2 c4@2 ~@3 c4 ~@3 g3@2, a3@9 ~@6 [a3,c4]@2 ~ a3@4 ~ g3@4 ~@5, ~@4 c4@5 ~@7 g4@6 ~ b3@2 ~ d4@4 ~@2, ~@24 e4@7 ~]/2", // Am
  B: "[~@6 f3@4 ~@2 f3 ~@3 g4@4 a3@2 ~@8 b3@2, a3@13 ~@2 a3@2 ~@5 g3@3 d4@6 ~, ~@4 c4@5 ~ c4@4 ~ c4@5 ~@3 b3@3 ~@2 g3@4, ~@16 f4 ~@7 e4@8]/2",
  C: "[~@6 f3@4 c4@4 ~@6 c4@2 ~@8 b3 ~, a3@9 ~@6 [a3,c4]@2 ~ a3@4 ~ g3@4 ~ g3@4, ~@4 c4@5 ~@7 g4@6 ~ b3@2 ~ d4@4 ~@2, ~@24 e4@7 ~]/2", // Am
})).s("gm_electric_guitar_clean").gain(0.22).pan(0.4)

// chords · electric guitar clean · soft notes
const electric_guitar_clean_3 = note("<~@20 A B ~@10 A B ~@2 A B ~@14 A B ~@10 A ~@3 A ~@23>".pickRestart({
  A: "~@6 f3 ~", B: "~@14 b3 ~",
})).s("gm_electric_guitar_clean").gain(0.11).pan(0.4)

// other · overdriven guitar
const overdriven_guitar = note("<~@56 A@2 B@3 C@2 D ~@17 E@2 F@2 G@2 H I J K@2>".pickRestart({
  A: "[~@12 c4 a#3@5 ~@10 f3 g3@3]/2", B: "[~@12 c4 a#3@5 ~@8 f3 ~ f3 g3@5 ~@10 c4 a#3@3]/3",
  C: "[~@12 f3 g3@5 ~@10 c4 ~@3]/2", D: "~@12 f2 g2@3", E: "[~@10 g3 ~ a#3 g3@12 ~@7]/2", F: "[~@10 c4@11 ~@11]/2",
  G: "[~@8 c4 ~ c4 ~ c4 a#3@9 ~@10]/2", H: "~@10 f3 g3 a#3 g3@3", I: "~@8 c3 d3 ~@2 a#2 c3 a#2@2", J: "~ c3@13 ~@2",
  K: "[~@8 c3 d3 ~@2 a#2 c3 a#2 g2@9 ~@8]/2",
})).s("gm_overdriven_guitar").gain(0.26).pan(0.7)

// other · overdriven guitar · soft notes
const overdriven_guitar_soft = note("<~@57 A ~@4 B@2 ~@28>".pickRestart({
  A: "~@10 f3 ~@5", B: "[~@10 f3 ~@2 a#3@5 ~@8 f2 ~@5]/2",
})).s("gm_overdriven_guitar").gain(0.13).pan(0.7)

// bass · slap bass 2
const bass_2 = note("<~@80 A B C@2 D E F@2 ~@4>".pickRestart({
  A: "~@8 c3 d3 ~@2 a#2 c3 a#2@2", B: "~ c3@2 ~@13", C: "[~@8 c3 d3 ~@2 a#2 c3 a#2@4 g2@5 ~@6 f3 ~@2]/2",
  D: "f3 g3@7 c3 d3 ~@2 a#2 c3 a#2@2", E: "~ c3@7 ~@8", F: "[~@8 c3 d3 ~@2 a#2 c3 a#2@4 g2@5 ~@9]/2",
})).s("gm_slap_bass_2").gain(0.42).pan(0.3)

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

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@8 A@15 ~ A@11 ~ A@3 ~ A@15 ~ A@11 ~ A@3 ~ A@7 ~ A@7 ~ A@4>".pickRestart({
  A: "~@7 x ~@8",
})).gain(0.4)

// drums · clap
const clap = s("cp").struct("<~@3 [~ x] ~@88>").gain(0.64)

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

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@3 A ~@3 B ~@3 C ~@39 D ~@40>".pickRestart({
  A: "~@6 x!2 ~@2 x!2 ~@4", B: "~@3 x ~@4", C: "~@5 x ~@2", D: "~@9 x!3 ~@4",
})).gain(0.32)

// drums · low tom
const low_tom = s("lt").struct("<~@23 [~@11 x ~@4] ~@68>").gain(0.48)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@23 A ~@7 B ~@7 C ~@31 C ~@15 B ~@4>".pickRestart({
  A: "~@5 x ~@2", B: "~@7 x", C: "~@13 x!2 ~",
})).gain(0.64)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@3 A ~@11 B ~@4 B ~ B ~@2 B ~ B ~@4 B ~ B ~ B ~ B ~@6 B ~@6 B ~ B ~@2 B ~@3 B@2 C B ~ B A B ~ B ~ B ~@3 D ~@13 B ~
>`.pickRestart({
  A: "~@5 x ~@2", B: "~@7 x", C: "~@3 x ~@4", D: "~ x ~@2",
})).gain(0.48)

// drums · high tom
const high_tom = s("ht").struct("<~@11 A ~@11 B ~@7 A ~@7 C ~@11 D ~@19 C ~@15 A ~@4>".pickRestart({
  A: "~@5 x ~@2", B: "~@9 x ~@6", C: "~@5 x ~@10", D: "~@11 x ~@4",
})).gain(0.72)

// drums · crash
const crash = s("cr").struct(`<
  A ~@3 A ~@2 B A ~@3 A ~@7 A B ~@2 A ~@7 C B ~@2 A D A ~ A ~@3 A ~@2 D A ~@3 A ~ A ~ A ~@3 E ~@3 C F A D A D A G C ~@3
  A ~@3 A ~@2 B A ~@3 A ~@2 B
>`.pickRestart({
  A: "x", B: "~@3 x", C: "x!2 ~@2", D: "~@7 x", E: "~ x ~@2", F: "~@5 x ~@2", G: "~@15 x",
})).gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct("<~@4 A@4 B@3 ~@21 C@8 B@3 ~@21 C@8 B@3 ~ B@3 ~@13>".pickRestart({
  A: "~ x ~ x", B: "~@3 x", C: "x!16",
})).gain(0.32)

// drums · congas
const congas = s("conga:13").struct("<~@80 [~@3 x ~@12]!8 ~@4>").gain(1.79)

// drums · congas
const congas_2 = s("conga:18").struct("<~@80 [~@11 x ~@4]!8 ~@4>").gain(1.79)

// drums · congas
const congas_3 = s("conga:33").struct("<~@80 A B A B A B A B ~@4>".pickRestart({
  A: "~@6 x!2 ~@8", B: "~@7 x ~@8",
})).gain(1.79)

// drums · congas · soft notes
const congas_soft = s("conga:33").struct("<~@81 A ~ A ~ A ~ A ~@4>".pickRestart({
  A: "~@3 x ~@4",
})).gain(1.02)

stack(
// … 5 more lines

More by Daniele