Strudelify

Tranqi Funky

Articolo 31

KeyG minorTempo107 bpm
0:00/0:00
// Tranqi Funky — Articolo 31
// 107 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 90 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(107/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 · synth drum · "Colpetti di batteria"
const synth_drum = note(`<
  ~@4 A B A B ~@4 C ~@2 D E ~@2 D E ~@2 D E ~@2 D ~@8 C ~ C ~@2 D E ~@2 D E ~ C ~ C ~@2 D ~@8 C ~@2 D E ~@2 D E ~@19
>`.pickRestart({
  A: "e7@4 ~@6 a7@2 ~ c8 ~@2", B: "e7 ~ e7 ~", C: "e7 ~@3", D: "~@10 f7@2 ~ f7 ~@2", E: "f7 ~@3",
})).s("gm_synth_drum").gain(0.44)

// other · shanai · "Voci"
const shanai = note(`<
  [d5@2 ~ d5 ~@6 f5 ~ f5 ~ e5 ~]!12
  ~@16
  [d5@2 ~ d5 ~@6 f5 ~ f5 ~ e5 ~]!8
  ~@18
  [d5@2 ~ d5 ~@6 f5 ~ f5 ~ e5 ~]!8
  ~@8
  [d5@2 ~ d5 ~@6 f5 ~ f5 ~ e5 ~]!19
  ~
>`).s("gm_shanai").gain(0.16)

// other · synth strings 1 · "Violini"
const synth_strings_1 = note(`<
  ~@8 A B ~ C ~@4 D E F G D E F G ~@4 A B ~ C A B ~ C ~@6 D E F G ~@2 H G D E F G A B ~ C A B ~ C ~@4 D E F G A B ~@2 A
  B ~ C ~@7 C A B ~ C
>`.pickRestart({
  A: "bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~@5 bb5@2", B: "bb5 ~ bb5 ~ bb5 ~ bb5 ~ bb5 ~@5 bb5 ~",
  C: "d5!2 f5 gb5 g5 f5 d5 f5@2 ~@7", D: "g4", E: "a4", F: "a4@3 bb4@5", G: "d5@3 eb5@3 bb4@2", H: "~@3 bb4@5",
})).s("gm_synth_strings_1").gain(0.29)

// bass · fretless bass · "Bassi 1"
const bass = note(`<
  ~@12 A B C D A B C D A B C D A B C D ~@10 A B C D A B C D ~@2 C D A B C D ~@8 A B C D A B C D ~@20
>`.pickRestart({
  A: "g1@4 ~ g1 ~ ab1 a1@6 ~@2", B: "a1@4 ~ a1 ~ bb1 b1@2 ~ g1 b1@2 g1 ~", C: "e1@4 ~ e1 ~ f1 gb1@6 ~@2",
  D: "d1@4 ~ d1 ~ eb1 e1@2 ~ e1 g1@2 e1 ~",
})).s("gm_fretless_bass").gain(0.64)

// bass · electric bass finger · "Bassi 2"
const bass_2 = note(`<
  ~@8 A B C D ~@16 A B C D A B C D ~@18 A B C D A B C D ~@12 A B C D A B C D A B C D A B C ~
>`.pickRestart({
  A: "g1 ~ g1@2 ~@4 g1 a1 ~ bb1@3 g1 ~", B: "[eb1,g1] ~ eb1@4 ~@2 eb1 f1 ~ g1@3 eb1 ~",
  C: "c1 ~ c1@4 ~@2 c1 d1 ~ eb1@3 c1 ~", D: "bb1 ~ bb1@3 ~ bb1!2 g1 bb1@2 ~ bb1@2 ~@2",
})).s("gm_electric_bass_finger").gain(0.35)

// other · marimba
const marimba = note(`<
  ~@12 A B C D A B C D A B C D A B C D ~@10 A B C D A B C D ~@2 D ~ A B C D ~@8 A B C D A B C D ~@20
>`.pickRestart({
  A: "g4", B: "a4", C: "e4", D: "d4",
})).s("gm_marimba").gain(0.18)

// other · electric guitar muted · "Chitarra"
const electric_guitar_muted = note(`<
  ~@8 A@2 B@2 ~@16 A@2 B@2 A@2 B@2 ~@18 A@2 B@2 A@2 B@2 ~@8 A@2 C@2 A@2 B@2 A@2 B@2 A@2 B@2 A@2 B ~
>`.pickRestart({
  A: "~@8 g4!2 ~@6", B: "~@8 g3!2 ~@6", C: "f3 ~ d3 ~ f3 ~ d3 ~ f3!2 d3 f3 ~ d3 f3 ~",
})).s("gm_electric_guitar_muted").gain(0.56)

// other · lead 1 square · "Coriste"
const lead_1_square = note("<~@26 A ~@13 B C ~@9 D E ~@9 F G H ~@25>".pickRestart({
  A: "g4@4 bb4 a4 g4 a4", B: "~@4 d5 ~ bb4 g4 bb4@6 d5@2", C: "c5@7 ~@9", D: "~@7 bb4", E: "a4 bb4",
  F: "~@4 bb4 f4 g4@2", G: "~@10 bb4 ~ bb4@2 f4@2", H: "g4@5 ~@11",
})).s("gm_lead_1_square").gain(0.31)

// drums · kick
const kick = s("bd").struct("<A@7 B C@19 B C@9 B C@9 B C@25 B C@15 ~>".pickRestart({
  A: "x!4", B: "x", C: "x!2",
})).gain(0.72)

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

// drums · low tom
const low_tom = s("lt").struct("<~@7 [~@10 x!3 ~@3] ~@82>").gain(0.64)

// drums · hihat
const hihat = s("hh").struct("<~@8 A@15 B A@3 ~ A@9 ~ A@9 B A@5 B A@19 B A@15 ~>".pickRestart({
  A: "~ x ~ x ~ x ~ x", B: "~ x ~ x ~@4",
})).gain(0.72)

// drums · mid tom
const mid_tom = s("mt").struct("<~@7 [~ x!4 ~@3 x ~@7] ~@19 [x!4 ~@4 x ~@7] ~@9 [~@10 x!3 ~@3] ~@52>").gain(0.64)

// drums · high tom
const high_tom = s("ht").struct("<~@37 [x!5 ~@11] ~@52>").gain(0.64)

stack(
  synth_drum, shanai, synth_strings_1, bass, bass_2, marimba, electric_guitar_muted, lead_1_square, kick, snare,
  low_tom, hihat, mid_tom, high_tom
)

More by Articolo 31