Strudelify

Tutto cio che ho

883

KeyG majorTempo89 bpm
0:00/0:00
// Tutto cio che ho — 883
// 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 94 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 · acoustic guitar steel
const acoustic_guitar_steel = note(`<
  ~ A B A C A B A C A B A C D E F G E D E G H I@2 J H I@2 J A B A C A B A C D E F G E D E K H I@2 J H I@2 J H I@2 J H
  I@2 J L@3 M L@3 M D E F G E D E K H I@2 J H I@2 J H I@2 J H I@2 N@2
>`.pickRestart({
  A: "[g3,b3,d4,g4]@3 [b3,d4,g4] [g3,b3,d4]@2 [g3,b3,d4,g4]@3 [g3,c4,e4] [c4,e4]@2 [c4,e4,g4]@2 e4 [d4,g4], ~@9 g4@3 ~@4, ~@5 [c3,g3]@2 ~", // G C G5 C5
  B: "[g3,b3,d4]@3 [g3,b3,d4] b3@2 [b3,d4] [b3,d4,g4]@2 [c4,e4,g4] [g3,c4,e4,g4]@2 [c4,e4,g4]@2 e4 [c4,e4,g4], ~@3 g4@4 ~@9, ~ g3 ~ g3, ~@4 d4 ~@11", // G Bm G C
  C: "[f#3,a3,d4]@3 [f#3,a3,d4] d4@2 [f#3,d4]@3 [e3,g3,c4] [e3,g3,c4]@2 [e3,g3,c4]@2 e3 [e3,g3,c4], ~ a3 ~@2, ~@4 f#3 ~@11", // D C
  D: "[g3,b3,e4,g4]@3 [b3,e4,g4] [g3,b3,e4]@2 [g3,b3,e4,g4]@3 [g3,b3,e4] [b3,e4,g4] ~ [e4,g4]@2 [e4,g4] [b3,e4,g4]", // Em
  E: "[g3,c4,e4]@3 [c4,e4] [c4,e4]@2 [c4,e4] [c4,e4,g4]@2 [c4,e4,g4] [c4,e4,g4]@2 [c4,e4,g4]@2 e4 [c4,e4,g4], ~@3 g4@4 ~@9, ~ g3 ~ g3", // C
  F: "[b3,d4,g4]@3 [b3,d4,g4] [g3,b3,d4]@2 [b3,d4,g4] [g3,b3,d4,g4]@2 [b3,d4,g4] [g3,b3,d4]@2 [b3,d4,g4]@3 [b3,d4,g4]", // G
  G: "[f#3,a3,d4]@3 [f#3,a3,d4] [f#3,a3,d4]@2 [f#3,d4] [f#3,a3,d4]@2 [f#3,a3,d4] [f#3,a3,d4]@2 [f#3,d4] [f#3,a3,d4]@2 ~", // D
  H: "[g3,b3,d4,g4]@3 [b3,d4,g4] [g3,b3,d4]@2 [b3,d4,g4] [c4,e4,g4]@2 [g3,c4,e4] [c4,e4]@2 [c4,e4,g4]@2 e4 [c4,e4,g4], ~@9 g4@3 ~@4, ~@5 [c3,g3]@2 ~", // G C C5
  I: "[g3,b3,d4]@3 [b3,d4,g4] [g3,b3,d4]@2 [b3,d4,g4] [c4,e4,g4]@2 [g3,c4,e4] [c4,e4]@2 [c4,e4,g4]@2 e4 [c4,e4,g4], g4 ~@8 g4@3 ~@4, ~@5 [c3,g3]@2 ~", // G C C5
  J: "[f#3,a3,d4]@3 [f#3,a3,d4] d4@2 [f#3,d4] [f#3,d4]@2 [f#3,a3,d4] d4@2 [f#3,d4]@2 [f#3,d4]!2, ~@2 a3@2 ~ a3@2 ~, ~@4 f#3 ~@5 f#3 ~@5", // D
  K: "[f#3,a3,d4]@3 [f#3,a3,d4] [f#3,a3,d4]@2 [f#3,d4] [f#3,a3,d4] [f#3,a3,d4]@7 ~", // D
  L: "~ d3 b3 ~@2 c4 c3 e3, g2@2 ~ c3@2 ~@3, ~@2 g3 ~",
  M: "~@3 d4@2 ~ a3@2 ~@3 c4@3 e3@2, d3@5 ~@4 c3@6 ~, ~@2 a3@3 ~@5 g3@5 ~",
  N: "[[f#3,a3,d4]@3 [f#3,a3,d4] d4@2 [f#3,d4] [f#3,d4]@2 [f#3,a3,d4] d4@2 [f#3,d4]@3 ~ [b2,d3,g3]@15 ~, ~@2 a3@2 ~ a3@2 ~@9, ~@4 f#3 ~@5 f#3 ~@4 g2@13 ~@4]/2", // D G
})).s("gm_acoustic_guitar_steel").gain(0.44).pan(0.6)

// other · orchestra hit
const orchestra_hit = note("<~@76 [~@8 d4 ~@3 d4 ~@3] ~@17>").s("gm_orchestra_hit").gain(0.47)

// bass · synth bass 2
const bass = note(`<
  ~ A@3 B A@3 B A@3 B C D E F G H D F A@3 I A@3 I A@3 B A@3 B C D E F G H D J A@3 I A@3 I A@3 I A@3 ~ K ~@7 C D E F G H
  D L A@3 I A@3 I A@3 I A@3 M N
>`.pickRestart({
  A: "g2@2 d2!2 g2 ~ d2 g2 ~@2 c2!2 c3@4", B: "d2@2 d2!3 ~ d2!2 ~@2 c2!2 c3@4", C: "e2 ~ e2!2 ~@2 e2!2 ~@2 d2 ~ d2@4",
  D: "c2 ~ c2!2 ~@2 c2!2 ~@2 c2 ~ c2@4", E: "g2 ~ g2!2 ~@2 g2!2 ~@2 g2 ~ g2@2 d2 g2",
  F: "d2 ~ d2!2 ~@2 d2!2 ~@2 d2 ~ d2@4", G: "c2 ~ c2!2 ~@2 c2!2 ~@2 c2 ~ c2@3 ~", H: "e2 ~ e2!2 ~@2 e2!2 ~@2 d2 ~ e2@4",
  I: "d2@2 d2!3 ~ d2 d2@3 d2 c2 c3@4", J: "d2 ~ d2!2 ~@2 d2 ~ d2@3 ~ d2@4", K: "g1",
  L: "d2 ~ d2!2 ~@2 d2 ~ d2@2 ~@2 d2@2 ~@2", M: "d2@2 d2!3 ~ d2!2 d3@3 ~ c3@4", N: "g1@15 ~",
})).s("gm_synth_bass_2").gain(0.59)

// other · pad warm
const pad_warm = note(`<
  ~@17 A B C D E@3 F E@3 F ~@12 A B C D E@3 F E@3 F E@3 F E@3 F G@3 H G@3 H I J K L A B C D E@3 F E@3 F E@3 F E@3 F ~
>`.pickRestart({
  A: "c4@15 ~", B: "[b3,e4]@15 ~", C: "c4", D: "[a3,d4]", E: "g4/3", F: "a4", G: "g2@3 c3@5", H: "d3@3 c3@5",
  I: "e3@15 ~", J: "c3@7 ~", K: "g3@15 ~", L: "d3@7 ~",
})).s("gm_pad_warm").gain(0.32).pan(0.6)

// chords · electric guitar clean
const electric_guitar_clean = note("<~@21 A@8 ~@16 A@15 B ~@16 A@15 B C>".pickRestart({
  A: "~ g3 ~@2 c4@4, ~ d4 ~@2, ~@3 g3@5", B: "~ a3 ~@4 d4@2, ~@4 d4@4 ~@2 a3@5 ~, ~@3 c4@5", C: "[g3,d4]@15 ~",
})).s("gm_electric_guitar_clean").gain(0.44)

// other · guitar harmonics
const guitar_harmonics = note("<[~@11 d4 e3@4] ~@93>").s("gm_guitar_harmonics").gain(0.44)

// other · piano
const piano = note("<~@24 A B ~@2 C ~@19 A B ~@2 C ~@27 A B ~@2 C D@8 ~>".pickRestart({
  A: "[a3,d4]@3 ~", B: "g3 ~@3", C: "[a3,d4]",
  D: "[~@8 c5@7 b4@3 ~@6 c5@7 b4@3 ~@6 c5@7 d5@3 ~@6 d5@7 b4@3 ~@6 c5@7 b4@3 ~@6 c5@7 b4@3 ~@6 c5@7 d5@3 ~@14]/8",
})).s("gm_piano").gain(0.05)

// chords · percussive organ
const percussive_organ = note(`<
  ~ A B C D A E F D A E F D G@3 H@3 I J K@3 L K@3 L M@3 J M@3 J N@3 O P@2 Q R S@3 L K@3 L S@3 L K@3 L T@8 N@3 O P@2 Q U
  V S@2 L K@3 L S@3 L S@3 L W
>`.pickRestart({
  A: "~@8 d6@7 c6, g5@15 ~", B: "~ d6, g5", C: "~@8 d6@7 e6, g5@15 ~", D: "a5@8 a5@7 b5, d6", E: "~ d6, [d5,g5]",
  F: "~@8 d6@7 e6, [d5,g5]@15 ~", G: "[a5 ~@31 d6@14 ~ d6, g5@47 ~]/3", H: "[e6 ~@39 a5@8, d6@2 e5, ~@2 g5@3 ~]/3",
  I: "d6@3 b5, g5, ~@12 a5 ~@3", J: "[a5,d6]", K: "[d5,g5,b5]@7 [e5,g5,c6]@9", L: "[f#5,a5,d6]", M: "[[d5,g5]@47 e6]/3",
  N: "[e5@8 c5@8 d6@7 ~, g5@47 ~]/3", O: "[d5,a5]", P: "[~@3 a5, g5@3 ~, ~ e5]/2", Q: "d6@3 b5, g5",
  R: "~@12 d5!3 ~, [a5,d6]", S: "[g5,b5,d6]@7 [g5,c6,e6]@9", T: "[g5@63 ~]/4", U: "[a5,d6]@3 g5",
  V: "[b5,d6]@7 [g5,c6,e6]@9, g5 ~@15", W: "[g5,b5,d6]@13 ~@3",
})).s("gm_percussive_organ").gain(0.28).pan(0.4)

// other · synth drum
const synth_drum = note("<~ A@16 ~@4 A@20 ~@4 A@28 ~@4 A@16 ~>".pickRestart({
  A: "~@6 g6 ~",
})).s("gm_synth_drum").gain(0.4).pan(0.6)

// other · tuba
const tuba = note("<~@16 A B ~@22 A B ~@10 C D E F G H@2 I J ~@11 A B ~@11 K@2 L M N O P Q R>".pickRestart({
  A: "~@2 d5 e5 d5@2 a4 g4", B: "a4@7 ~@9", C: "~@12 d4 e4 g4@2", D: "g4@3 g4@3 g4@5 ~ d4 e4 g4 ~",
  E: "g4@3 g4@3 g4@3 ~@3 d4 e4 g4 ~", F: "g4@3 g4@2 ~ g4@3 ~@5 d5 e5", G: "d5@3 a4@2 g4 a4@6 d4 e4 g4 ~",
  H: "[d4,b4] [c4,a4] [b3,g4]@9 ~ d4 e4 g4 e4", I: "[d4,b4] [c4,a4] [b3,g4]@9 ~@3 d5 e5",
  J: "[a3,d5]@3 [d4,a4]@2 g4 c4@9 ~, ~@3 a4@3 ~@2", K: "[~@14 d5@4 e5 d5 ~@12]/2", L: "c5 b4 ~ a4 ~@12",
  M: "~@10 a4@5 ~", N: "~@7 a4@2 ~@5 b4 ~", O: "~@3 c5 d5@4 ~@7 g5, ~@4 c#5 ~@11", P: "a5 ~ a5 a5@6 ~@7",
  Q: "~@12 d4 e4 g4 ~", R: "b4 a4 g4@12 ~@2",
})).s("gm_tuba").gain(0.39).pan(0.6)

// chords · string ensemble 2
const string_ensemble_2 = note("<~@61 A B C D A E C D F G H I J G K L ~@17>".pickRestart({
  A: "d4 [c4,d5], g4", B: "[b3,d4] [c4,d5], g4", C: "d4@8 ~@6 e5 ~, g4, ~ [c4,d5]", D: "[d4,d5]@8 c4@7 b4, a4@15 ~",
  E: "[b3,d4]@8 [c4,d5]@7 c5, g4", F: "[g3,g4] ~ [d4,g4]@3 ~ [g3,g4]@6 ~@4", G: "d5@2 g4@5 ~", H: "[d4,g4]",
  I: "~@2 d5 e5 d5@2 a4 g4", J: "~@2 [c4,g4] ~@3 [c4,g4]@8 ~@2, a4@7 ~@9", K: "[d4,g4] ~ [d4,g4]@11 ~@3", L: "a4@7 ~@9",
})).s("gm_string_ensemble_2").gain(0.44)

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

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

// drums · hihat
const hihat = s("hh").struct("<~@44 [~@2 x!2] ~@7 [~@4 x!4] ~@23 [~@2 x!2] ~@17>").gain(0.42)

// drums · mid tom
const mid_tom = s("mt").struct("<~@92 [~@13 x!2 ~] ~>").gain(0.49)

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

// drums · crash
const crash = s("cr").struct("<~@61 x ~@31 x>").gain(0.35)

// drums · ride
const ride = s("rd").struct("<~@61 [x!2 ~@6]!3 [x ~ x ~@2 x!2 ~@9] [x!2 ~@6]!4 ~@25>").gain(0.35)

stack(
  acoustic_guitar_steel, orchestra_hit, bass, pad_warm, electric_guitar_clean, guitar_harmonics, piano,
  percussive_organ, synth_drum, tuba, string_ensemble_2, kick, snare, hihat, mid_tom, open_hat, crash, ride
)

More by 883