Strudelify

Ammassati e distanti

Cocciante

KeyC majorTempo66 bpm
0:00/0:00
// Ammassati e distanti — Cocciante
// 66 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 79 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(66/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// other · lead 8 bass lead · "Seq-1"
const lead_8_bass_lead = note(`<
  A B A B A B A B A B C A B D E D E F D G B A B A B A B C A B D E D E F D G B A B A B A B C A B H I H I H I J K L M L M
  L M N O P Q P Q P Q R P Q P Q P Q P S ~
>`.pickRestart({
  A: "f2@3 g2@3 g#2@8 a#2 c3", B: "c2", C: "c#2@3 d#2@3 c2@10", D: "g#2", E: "c#2", F: "a#2", G: "f2@3 f3",
  H: "g2@3 a2@3 a#2@8 c3 d3", I: "d2", J: "d#2@3 f2@3 d2@10", K: "g2@3 a2@3 a#2@8 ~@2", L: "a2@3 b2@3 c3@8 d3 e3",
  M: "e2", N: "f2@3 g2@3 e2@10", O: "a2@3 b2@3 c3@8 ~@2", P: "b2@3 c#3@3 d3@8 e3 f#3", Q: "f#2", R: "g2@3 a2@3 f#2@10",
  S: "f#2@15 f#2",
})).s("gm_lead_8_bass_lead").gain(0.32)

// chords · synth strings 1 · "Seq-1"
const synth_strings_1 = note(`<
  A B A C A B A C A B D A C E F E F G E F H I B A B A B D A B E F E F G E F H I B I B I B D I H J K J K J K L J M N M N
  M N O M P Q P Q P Q R P Q P Q P Q P Q ~
>`.pickRestart({
  A: "[c4,f4,g#4]", B: "[c4,f4,g4,a#4]", C: "[c4,f4,g4,a#4]@7 ~", D: "[c#4,f4,g#4]@3 [d#4,g4,a#4]@3 [c4,d#4,g4,a#4]@10",
  E: "[c4,d#4,g#4,c5]", F: "[c4,f4,g#4,c5]", G: "[a#3,d4,f4,a#4]", H: "[f4,g4,a#4,c5]", I: "[f4,g#4,c5]",
  J: "[d4,g4,a#4]", K: "[d4,g4,a4,c5]", L: "[d#4,g4,a#4]@3 [f4,a4,c5]@3 [d4,f4,a4,c5]@10", M: "[c4,e4,a4]",
  N: "[d4,e4,a4,b4]", O: "[c4,f4,a4]@3 [d4,g4,b4]@3 [d4,e4,g4,b4]@10", P: "[d4,f#4,b4]", Q: "[e4,f#4,b4,c#5]",
  R: "[d4,g4,b4]@3 [e4,a4,c#5]@3 [e4,f#4,a4,c#5]@10", // G A F#m7
})).s("gm_synth_strings_1").gain(0.25)

// other · piano · "Seq-1"
const piano = note(`<
  A B A B A B A B A B C A B D E D E F G H I A B A B A B C A B D E D E F G H I A B A B A B C A B J K J K J K L J M N M N
  M N O M P Q P Q P Q R P Q P Q P Q P Q ~
>`.pickRestart({
  A: "c4 f4 g#4 c4 f4 g#4 c4 f4 g#4 c5 f4 g#4 c5 f4 g#4 c4", B: "c4 f4 g4 a#4 f4 g4 a#4 f4 g4 a#4 f4 g4 a#4 f4 a#4@2",
  C: "c#4 f4 g#4 a#3 d#4 g4 g3 c4 d#4 g4 c4 d#4 g4 c4 d#4 g3",
  D: "c4 d#4 g#4 c4 d#4 g#4 c4 d#4 c4 c5 c4 d#4 c5 d#4 c4@2", E: "c5 c4 f4 g#4 c4 f4 g#4 f4 c4 c5 c4 f4 c5 f4 c4@2",
  F: "a#3 d4 a#3 f4 a#3 f4 d4 a#3 d4 a#4 d4 f4 a#4 a#3 f4@2",
  G: "c4 d#4 g#4 c4 d#4 g#4 c5 d#4 c4 c5 c4 d#4 c5 d#4 c4@2", H: "c4 f4 g#4 c4 f4 g#4 c4 f4 c4 g#4 c4 f4 g#4 c4 f4 c4",
  I: "c4 f4 g4 c5 f4 g4 c5 g4 c4 c5 f4 g4 c5 c4 c5@2", J: "d4 g4 a#4 d4 g4 a#4 d4 g4 a#4 d5 g4 a#4 d5 g4 a#4 d4",
  K: "d4 g4 a4 c5 g4 a4 c5 g4 a4 c5 g4 a4 c5 g4 c5@2", L: "d#4 g4 a#4 c4 f4 a4 a3 d4 f4 a4 d4 f4 a4 d4 f4 a3",
  M: "e4 a4 c5 e4 a4 c5 e4 a4 c5 e5 a4 c5 e5 a4 c5 e4", N: "e4 a4 b4 d5 a4 b4 d5 a4 b4 d5 a4 b4 d5 a4 d5@2",
  O: "f4 a4 c5 d4 g4 b4 b3 e4 g4 b4 e4 g4 b4 e4 g4 b3", P: "f#4 b4 d5 f#4 b4 d5 f#4 b4 d5 f#5 b4 d5 f#5 b4 d5 f#4",
  Q: "f#4 b4 c#5 e5 b4 c#5 e5 b4 c#5 e5 b4 c#5 e5 b4 e5@2",
  R: "g4 b4 d5 e4 a4 c#5 c#4 f#4 a4 c#5 f#4 a4 c#5 f#4 a4 c#4",
})).s("gm_piano").gain(0.3).pan(0.8)

// chords · pad poly · "Seq-1"
const pad_poly = note("<~@13 A B A B C A B D ~@9 E F E F G H F I ~@41>".pickRestart({
  A: "[g#3,c4] ~ [c4,d#4]!2 ~ [c4,d#4] ~@2 [c4,d#4] ~ [c4,d#4]!2 ~@2 [c4,d#4] ~", // G# Cm
  B: "[g#3,f4] ~ [g#3,f4]!2 ~ [g#3,f4] ~@2 [g#3,f4] ~ [g#3,f4]!2 ~@2 [g#3,f4] ~", // C#
  C: "[a#3,d4] ~ [a#3,d4]!2 ~ [a#3,d4] ~@2 [a#3,d4] ~ [a#3,d4]!2 ~@2 [a#3,d4] ~", // A#
  D: "[c4,f4] ~ [c4,f4]!2 ~ [c4,f4] ~@2 [c4,f4] ~ [c4,f4]!2 ~@2 [c4,f4] ~", // F5
  E: "~ [c4,d#4] ~@2 [c4,d#4] ~@4 [c4,d#4] ~@3 [c4,d#4]!2 ~", // Cm
  F: "~ [c4,g#4] ~@2 [c4,g#4] ~@4 [c4,g#4] ~@3 [c4,g#4]!2 ~", // Fm
  G: "~ [f4,a#4] ~@2 [f4,a#4] ~@4 [f4,a#4] ~@3 [f4,a#4]!2 ~", H: "~ [c4,e4] ~@2 [c4,d#4] ~@4 [c4,d#4] ~@3 [c4,d#4]!2 ~",
  I: "~ [c4,g4] ~@2 [c4,g4] ~@4 [f4,c5] ~@3 [f4,c5]!2 ~", // C5 F5
})).s("gm_pad_poly").gain(0.46).pan(1)

// other · electric guitar muted · "Seq-1"
const electric_guitar_muted = note(`<
  ~@21 A B C B A B D A E ~@8 A B C B A B D A E F G H G F G I F J K L K J K M J N O P O N O Q N R N R N R N R ~
>`.pickRestart({
  A: "~ f3 ~ f3 c3 ~ f4!2 ~ f3 ~ f3 c3 f4 ~@2", B: "~ f3 ~ f3 c3 ~@2 c4!3 ~ f3 c3 ~@3",
  C: "f4 f3 ~ f3 c3 f4!3 ~ f3 ~ f3 c3 f4 ~@2", D: "~ c#3 ~ d#3!3 c3 ~@2 g3 ~ g3 c4!2 ~@2",
  E: "~ f3 ~ f3 c3 ~@2 c4!3 ~ f3 c3 ~ c3 ~", F: "~ g3 ~ g3 d3 ~ g4!2 ~ g3 ~ g3 d3 g4 ~@2",
  G: "~ g3 ~ g3 d3 ~@2 d4!3 ~ g3 d3 ~@3", H: "g4 g3 ~ g3 d3 g4!3 ~ g3 ~ g3 d3 g4 ~@2",
  I: "~ d#3 ~ f3!3 d3 ~@2 a3 ~ a3 d4!2 ~@2", J: "~ a3 ~ a3 e3 ~ a4!2 ~ a3 ~ a3 e3 a4 ~@2",
  K: "~ a3 ~ a3 e3 ~@2 e4!3 ~ a3 e3 ~@3", L: "a4 a3 ~ a3 e3 a4!3 ~ a3 ~ a3 e3 a4 ~@2",
  M: "~ f3 ~ g3!3 e3 ~@2 b3 ~ b3 e4!2 ~@2", N: "~ b3 ~ b3 f#3 ~ b4!2 ~ b3 ~ b3 f#3 b4 ~@2",
  O: "~ b3 ~ b3 f#3 ~@2 f#4!3 ~ b3 f#3 ~@3", P: "b4 b3 ~ b3 f#3 b4!3 ~ b3 ~ b3 f#3 b4 ~@2",
  Q: "~ g3 ~ a3!3 f#3 ~@2 c#4 ~ c#4 f#4!2 ~@2", R: "~ b3 ~ b3 f#3 ~@2 f#4!3 ~ b3 f#3 ~ f#3 ~",
})).s("gm_electric_guitar_muted").gain(0.38).pan(0.3)

// other · electric guitar muted · "Seq-1"
const electric_guitar_muted_2 = note(`<
  ~@30 A@2 B@2 C B@2 D E F E F E F E F G H I H I H I H I J K J K J K J K L M L M L M L@2 M L M L M L M ~
>`.pickRestart({
  A: "~@9 g#3!4 ~@3", B: "~@11 g#3!2 ~@3", C: "~@11 f3!2 ~@3", D: "~@11 c4!2 ~@3", E: "~@9 c4!3 ~ c4 ~@2",
  F: "~@8 c4!2 ~@3 c4 ~@2", G: "~@8 c4!2 ~ c4 ~ c4 ~@2", H: "~@9 d4!3 ~ d4 ~@2", I: "~@8 d4!2 ~@3 d4 ~@2",
  J: "~@9 e4!3 ~ e4 ~@2", K: "~@8 e4!2 ~@3 e4 ~@2", L: "~@9 f#4!3 ~ f#4 ~@2", M: "~@8 f#4!2 ~@3 f#4 ~@2",
})).s("gm_electric_guitar_muted").gain(0.44).pan(0.9)

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

// drums · rim
const rim = s("rim").struct("<~@13 [~ x ~ x ~ x ~ x]!8 ~@58>").gain(0.64)

// drums · snare
const snare = s("sd").struct("<~@21 [~ x ~ x ~ x ~ x]!57 ~>").gain(0.72)

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

// drums · mid tom
const mid_tom = s("mt").struct("<~@20 A ~@16 B ~@8 B ~@7 B ~@16 C ~@3 D ~ B ~>".pickRestart({
  A: "~@7 x", B: "~@11 x!2 ~@3", C: "~@3 x", D: "~@11 x ~@4",
})).gain(0.72)

// drums · open hat
const open_hat = s("oh").struct(`<
  ~@12 A ~@3 B ~@3 C ~@3 D ~@3 B E ~@3 B ~ B ~ F G B ~ B ~ B ~ H I G B ~ J ~ B ~ K L B ~ B J B ~ M ~ J ~ B G B ~ J K N K
  J I N K ~
>`.pickRestart({
  A: "~@13 x!2 ~", B: "~@13 x ~@2", C: "~@11 x ~@4", D: "~@9 x ~@6", E: "~@11 x ~@2 x ~", F: "~@7 x!2 ~@4 x!2 ~",
  G: "~@15 x", H: "~@7 x", I: "~@7 x!2 ~@5 x ~", J: "~@7 x ~@8", K: "~@7 x!2 ~@7", L: "~@6 x ~@6 x ~@2",
  M: "~@11 x!2 ~@3", N: "~@2 x ~@4 x ~@8",
})).gain(0.48)

// drums · open hat · soft notes
const open_hat_soft = s("oh").struct("<~@12 [~@10 x!3 ~@3] ~@66>").gain(0.16)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@20 A ~ B ~ B ~ B ~@2 B ~ B ~ B ~ B ~ C ~ B ~ B ~ B ~@2 C ~ B ~ B ~ B ~ C ~ B ~ B ~ B ~ B ~ B ~ B ~ B ~@2 C ~ B ~ C ~
  C ~
>`.pickRestart({
  A: "~@13 x ~@2", B: "~@13 x!2 ~", C: "~@9 x ~@3 x!2 ~",
})).gain(0.64)

// drums · crash
const crash = s("cr").struct(`<
  ~@13 A ~@7 A ~@8 A ~@7 A ~@7 A@2 ~@7 A ~@3 A ~@3 A ~@3 A ~@3 A@2 ~ A ~ A B ~
>`.pickRestart({
  A: "x", B: "~@15 x",
})).gain(0.4)

// drums · tambourine
const tambourine = s("tb").struct("<~@13 [~@13 x!2 ~]!16 ~ [~@13 x!2 ~]!48 ~>").gain(0.48)

// drums · congas
const congas = s("conga:13").struct("<~@13 [~@13 x!2 ~]!65 ~>").gain(1.79)

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

// drums · congas
const congas_3 = s("conga:33").struct("<~@13 [~ x ~ x]!65 ~>").gain(1.79)

// drums · cabasa
const cabasa = s("cabasa:4").struct("<A B C D A E@2 F E@4 G A E@2 F E@7 F E@5 ~@49>".pickRestart({
  A: "~@2 x ~@3 x ~@3 x!2 ~@2 x ~", B: "~ x!2 ~@3 x ~@3 x!2 ~ x!3", C: "~@2 x!2 ~@2 x ~@3 x!2 ~@2 x ~",
  D: "x ~ x!2 ~@2 x!2 ~@2 x!2 ~ x!3", E: "~@2 x!2 ~@2 x!2 ~@2 x!2 ~ x!3", F: "~@2 x!2 ~@2 x!3 ~ x!6",
  G: "~ x!3 ~ x!3 ~@2 x!2 ~ x!3",
})).gain(0.81)

stack(
  lead_8_bass_lead, synth_strings_1, piano, pad_poly, electric_guitar_muted, electric_guitar_muted_2, kick, rim, snare,
  hihat, mid_tom, open_hat, open_hat_soft, high_tom, crash, tambourine, congas, congas_2, congas_3, cabasa
)

More by Cocciante