Strudelify

Rotta x casa di Dio

883

KeyF majorTempo121 bpm
0:00/0:00
// Rotta x casa di Dio — 883
// 121 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 125 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(121/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.

// bass · fretless bass
const bass = note(`<
  A B A B C D C D C D C D E F E G E F E G E F E G E F E G C D C D C D C H I J I J I K L M E F E G E F E G E F E G E F E
  G C D C D C D C H I J I J I K L M C D C D C D C D E F E G E F E G E F E G E F E G C D C D C D C H I J I J I K L M C D
  C D C D C D N
>`.pickRestart({
  A: "f3@3 c3 c3@3 bb2", B: "bb2@3 bb2 bb2@2 c3@2", C: "f1@3 c2 c2@3 bb1", D: "bb1@3 bb1 bb1@2 c2@2", E: "f1!8",
  F: "f1!3 bb1@2 f1 bb1 f1", G: "f1!3 c2 f1!2 c2 f1", H: "bb1@3 bb1 bb1@2 f1@2", I: "c2!8", J: "bb1!3 f1@2 f1 bb1 c2",
  K: "bb1!3 f1@2 f1 c2 bb1", L: "bb1!8", M: "c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2@2 c2 ~", N: "f1@7 ~",
})).s("gm_fretless_bass").gain(0.52)

// other · electric guitar muted
const electric_guitar_muted = note("<A B C D ~@40 E@2 F@2 E@2 F@2 E@2 F@2 E@2 G@2 ~@65>".pickRestart({
  A: "~ c3!7", B: "c3!6 bb2!2", C: "c3!8", D: "c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3 ~",
  E: "[~@3 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 bb3@2 bb3@2 bb3 ~ a3]/2",
  F: "[~ a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3]/2",
  G: "[~ a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3@2 g3]/2",
})).s("gm_electric_guitar_muted").gain(0.12).pan(0.1)

// other · electric guitar clean
const electric_guitar_clean = note("<A B@2 ~@41 C D E F C D E F C D E F C D E F ~@65>".pickRestart({
  A: "~@3 [g3,c4,g4]@11 ~@2", B: "[g4 a4@11 ~@2 a4 g4@11 ~@6]/2", C: "~ c3!7", D: "c3!6 bb2!2", E: "c3!8",
  F: "c3@2 c3 ~ c3@2 c3@2 c3@2 c3@2 c3@2 c3 ~",
})).s("gm_electric_guitar_clean").gain(0.12).pan(0.2)

// chords · distortion guitar
const distortion_guitar = note(`<
  ~@4 A B A B A B A B C@12 D@4 A B A B A B A E F G@4 H@2 I C@12 J@4 A B A B A B A E F G@4 H@2 I A B A B A B A B K@4 C@8
  D@4 A B A B A B A E F G@4 H@2 I A B A B A B A B L
>`.pickRestart({
  A: "[f3,c4,f4]@3 [c3,g3,c4] [c3,g3,c4]@3 [bb2,f3,bb3]", B: "[bb2,f3,bb3]@3 [bb2,f3,bb3] [bb2,f3,bb3]@2 [c3,g3,c4]@2",
  C: "[[f2,c3,f3,a3,c4,f4]@54 ~@9 [a3,c4,f4], ~@31 [f2,c3,f3,a3,c4,f4]]/4", // F
  D: "[[f2,c3,f3,a3,c4]@52 ~@4 [c3,g3,c4]@2 [c3,g3,c4]@2 [c3,g3,c4]@2 ~ [a3,c4,f4], f4@24 ~@7 [f2,c3,f3,a3,c4,f4]]/4", // F C5 F
  E: "[bb2,f3,bb3]@3 [bb2,f3,bb3] [bb2,f3,bb3]@2 [f3,c4,f4]@2", F: "[c3,g3,c4]",
  G: "[[bb2,f3,bb3]@3 [f2,c3,f3]@3 [bb2,f3,bb3] [c3,g3,c4]@9]/2", H: "[[bb2,f3,bb3]@3 [f2,c3,f3]@4 [bb2,f3,bb3]@9]/2",
  I: "[c3,g3,c4]@15 ~", // C5
  J: "[[f2,c3,f3,a3,c4]@52 ~@2 c3 ~ [c3,g3]@2 [c3,g3,c4]@2 [c3,g3,c4]@2 ~ [c4,f4], f4@24 ~@7 [f2,c3,f3,c4,f4]]/4", // F C5 F5
  K: "[[f2,c3,f3,a3,c4,f4]@54 ~@9 [c4,f4], ~@31 [f2,c3,f3,a3,c4,f4]]/4", L: "[f3,c4,f4]@13 ~@3",
})).s("gm_distortion_guitar").gain(0.24)

// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~@12 A B A C A B A C A B A C A B A D ~@56 A B A C A B A C A B A C A B A D ~@25
>`.pickRestart({
  A: "[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 ~ f4 [a3,c4,f4]@2 ~ f4 [a3,c4,f4] ~ a3 [a3,c4,f4], ~@6 [a3,c4,f4]@2 ~@2 [a3,c4,f4]@2 ~ [a3,c4,f4]@2 ~", // F
  B: "[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [bb3,d4,f4]@3 bb3 ~ f4 [a3,c4,f4] ~ a3 [a3,c4,f4], ~@10 [bb3,d4,f4]@2 ~ [a3,c4,f4]@2 ~", // F Bb F Bb F
  C: "[a3,c4,f4]@2 [a3,c4,f4]@2 [a3,c4,f4]@2 [g3,c4,e4]@4 ~ e4 [g3,c4,e4] ~ g3 [g3,c4,e4], ~@10 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~", // F C
  D: "[a3,c4,f4]@2 [g3,c4,e4]@2 [g3,c4,e4]@2 [g3,c4,e4]@4 ~ e4 [g3,c4,e4] ~ g3 [g3,c4,e4], ~@10 [g3,c4,e4]@2 ~ [g3,c4,e4]@2 ~", // F C
})).s("gm_acoustic_guitar_steel").gain(0.15)

// chords · piano
const piano = note(`<
  A@4 B C B C B C B C ~@16 B C B C B C B D E F@2 G@2 H@2 I ~@16 B C B C B C B D E F@2 G@2 H@2 J B C B C B C B C ~@16 B C
  B C B C B D E F@2 G@2 H@2 K B C B C B C B C L
>`.pickRestart({
  A: "[~@4 a4@6 ~@2 bb4@2 g4@4 ~ c5@7 ~@2 f4@3 ~]/4", B: "[c4,f4,a4]@4 ~@2 [c4,e4,g4] ~ [c4,e4,g4]@3 ~@3 [bb3,d4,f4] ~",
  C: "[bb3,d4,f4]@3 ~@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [c4,e4,g4]@3 ~", // Bb C
  D: "[bb3,d4,f4]@3 ~@3 [bb3,d4,f4] ~ [bb3,d4,f4]@3 ~ [c4,f4,a4]@3 ~", E: "[c4,e4,g4]@13 ~@3",
  F: "[[d4,f4,bb4]@5 ~ [c4,f4,a4]@5 ~ [d4,f4] ~ [c4,e4,g4]@17 ~, ~@6 bb4 ~@9]/2", // Bb F Dm C
  G: "[[d4,f4,bb4]@5 ~ [c4,f4,a4]@5 ~ [d4,f4] ~ [c4,e4,g4]@16 ~@2, ~@6 bb4 ~@9]/2", // Bb F Dm C
  H: "[[d4,f4,bb4]@5 ~ [c4,f4,a4]@5 ~ [c4,f4,a4] ~ [d4,f4,bb4]@17 ~]/2", // Bb F Bb
  I: "[e4,g4,c5]@9 ~ [e4,g4,c5]@2 [e4,c5]@2 [e4,g4,c5] ~, ~@12 g4 ~@3", // C
  J: "[e4,g4]@10 [e4,g4,c5]@2 [e4,c5]@2 [e4,g4,c5] ~, c5@8 ~@4 g4 ~@3", // Em C
  K: "[e4,g4,c5]@8 ~@2 [e4,g4,c5]@2 [e4,c5]@2 [e4,g4,c5] ~, ~@12 g4 ~@3", L: "[a3,c4,f4]@15 ~",
})).s("gm_piano").gain(0.53)

// other · distortion guitar
const distortion_guitar_2 = note("<~@76 A@2 B@2 A@2 C@2 ~@32 D@2 E@2 D@2 E@2 ~>".pickRestart({
  A: "[c4 f4@2 c4 g4@2 c4 f4@4 c4 f4@2 g4@2]/2", B: "[a4@3 bb4@2 a4@2 ~ g4@4 a4@2 f4@11 c4@2 c4 ~ d4 f4@2]/2",
  C: "[a4@3 bb4@3 a4@2 g4@4 c5@20]/2", D: "[c5@3 c5 c5@2 c5 bb4@4 f4 bb4@2 c5@2]/2", E: "[c5@6 c5@2 c5@4 f5@19 ~]/2",
})).s("gm_distortion_guitar").gain(0.19)

// other · electric guitar muted
const electric_guitar_muted_2 = note("<A@5 ~@120>".pickRestart({
  A: "[~@5 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 bb2@2 bb2@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 ~@15]/5",
})).s("gm_electric_guitar_muted").gain(0.11).pan(1)

// other · electric guitar clean
const electric_guitar_clean_2 = note("<A B C ~@41 D@16 ~@65>".pickRestart({
  A: "~@3 [g3,c4,g4]@5", B: "~@3 g4 a4@11 ~", C: "~ a4 g4@11 ~@3",
  D: "[~@5 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 bb2@2 bb2@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3!2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 ~@4 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 bb2@2 bb2@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3!2 c3@2 c3@2 c3@2 c3@2 c3@2 c3@2 c3]/8",
})).s("gm_electric_guitar_clean").gain(0.06).pan(1)

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

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

// drums · hihat
const hihat = s("hh").struct(`<
  A B@3 C D E F C D E G H I J I J I J I K I L I L I L M C D E F C D E G E N E N E N E O P Q R S R Q R T P Q R Q R Q R U
  E D E G E D E G E N E N E N E V E D E F C D E G ~@16 E D E G E D E W E N E N E N E O E D E G E D E X ~
>`.pickRestart({
  A: "x ~ x ~ x ~@3 x ~ x ~ x ~ x!2", B: "x!3 ~ x!4", C: "x!8", D: "x!6 ~@2", E: "~ x!7",
  F: "x ~ x ~ x ~ x ~ x!3 ~@2 x!2 ~", G: "x ~ x ~ x ~ x ~ x!3 ~@5", H: "~ x!8 ~ x!2 ~ x!3", I: "x ~ x!10 ~@4",
  J: "x!9 ~ x!2 ~ x!3", K: "~ x!7 ~@2 x!6", L: "x!8 ~@2 x!6", M: "x ~ x!8 ~@6", N: "~ x!2 ~ x!2 ~@2",
  O: "~@2 x ~ x ~ x ~ x!3 ~@5", P: "~ x!3 ~ x!4 ~ x!2 ~ x!3", Q: "x ~ x!2 ~ x!7 ~ x!2 ~", R: "x!4 ~ x!4 ~ x!2 ~ x!3",
  S: "x ~ x!2 ~ x!7 ~ x!3", T: "x ~ x!2 ~ x!7 ~@4", U: "x ~ x!2 ~ x!6 ~@5", V: "~ x!2 ~@5", W: "x!4 ~@4",
  X: "x ~ x ~ x ~ x ~ x!3 ~@3 x ~",
})).gain(0.36)

// drums · hihat · soft notes
const hihat_soft = s("hh").struct(`<
  A@4 B C D ~ B C D@2 E F E F E F E F E F E F E F E F B C D ~ B C D@2 B C B C B C D@2 E G E F E G E F E G E G E G E F B
  C D ~ B C D@2 B C B C B C D@2 B C D ~ B C D@2 ~@16 C@2 D ~ C@2 D@2 B C B C B C D@2 B C D ~ B C D@2 ~
>`.pickRestart({
  A: "~@3 x ~@4", B: "~@3 x ~@7 x ~@4", C: "~@11 x ~@4", D: "~@3 x ~@12", E: "~@9 x ~@6", F: "~ x ~@14",
  G: "~ x ~@13 x",
})).gain(0.21)

// drums · low tom
const low_tom = s("lt").struct("<~@3 [~@7 x] ~@23 [~@15 x] ~@97>").gain(0.36)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~@3 A ~@7 B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@15 C ~@39 D E ~ E ~ E ~ E ~ F ~ F ~ F ~ F ~@8 B ~@7 C ~@9
>`.pickRestart({
  A: "~@12 x!2 ~@2", B: "~@7 x", C: "~@15 x", D: "~@14 x!2", E: "x ~@2 x!2 ~@3", F: "x ~@2 x ~@4",
})).gain(0.43)

// drums · high tom
const high_tom = s("ht").struct("<~@43 [~@7 x] ~@63 [~@13 x ~@2] ~@7 [~@7 x] ~@9>").gain(0.5)

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

stack(
  bass, electric_guitar_muted, electric_guitar_clean, distortion_guitar, acoustic_guitar_steel, piano,
  distortion_guitar_2, electric_guitar_muted_2, electric_guitar_clean_2, kick, snare, hihat, hihat_soft, low_tom,
  mid_tom, high_tom, crash
)

More by 883