Strudelify
Mr Vain (Mr Trance) cover art

Serenity

Mr Vain (Mr Trance)

Culture Beat

KeyA majorTempo128 bpm
0:00/0:00
// Mr Vain (Mr Trance) — Culture Beat
// 128 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "Synth Bass" named as a bass, played on synth bass 1 (its cello patch is not one); ch 3 "guitar thang" named as a guitar, played on electric guitar clean (its orchestra hit patch is not one); ch 5 "strings" named as a string part, played on string ensemble 1 (its agogo patch is not one); ch 6 "strings oct." named as a string part, played on string ensemble 1 (its agogo patch is not one)
// note: Full arrangement: all 141 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(128/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// bass · synth bass 1 · "Synth Bass"
const bass = note(`<
  ~@4 A B A B A B A B A B A B A B A B A B A B A B A B C D C D C D C D C D C D C D C D A B A B A B A B A B A B A B A B A
  B A B A B A B C D C D C D C D C D C D C D C D C D C D C D C D A B A B A B A B A B A B A B A B A B A B A B A B A B A B
  A B A B A B A B A B A B A B A B A B A B ~
>`.pickRestart({
  A: "e3 ~@2 e3!2 ~ e3 ~ a2 ~@2 a2!2 ~ a2 ~", B: "d3!5 ~ d3 ~ e3 ~@2 e3!2 ~ e3 ~",
  C: "c3@2 ~ c3!2 ~ c3 ~ c3@2 ~ c3!2 ~ c3 ~", D: "c3@2 ~ c3!2 ~ c3 ~ c3!4 c3@2 c3 ~",
})).s("gm_synth_bass_1").gain(0.62)

// other · electric guitar clean · "guitar thang"
const electric_guitar_clean = note("<A B C B C B C B C B C B C B C B C B C B C B C B C B C B ~@113>".pickRestart({
  A: "~@2 e5@2 a4@2 e5 f4 ~ f4 c5@2 f4!2 c5@2", B: "g4@2 d5@2 g4@2 d5 a4 ~ a4 e5@2 a4!2 e5@2",
  C: "a4@2 e5@2 a4@2 e5 f4 ~ f4 c5@2 f4!2 c5@2",
})).s("gm_electric_guitar_clean").gain(0.41)

// other · slap bass 1 · "synth thang"
const slap_bass_1 = note(`<
  ~@44 A B A B A B A B A B A B A B A B A B A B A B A B ~@24 A B A B A B A B ~@16 A B A B A B A B A B A B A B A B A B A B
  A B A B ~
>`.pickRestart({
  A: "a4@2 e5@2 a4@2 e5 f4 ~ f4 c5@2 f4!2 c5@2", B: "g4@2 d5@2 g4@2 d5 a4 ~ a4 e5@2 a4!2 e5@2",
})).s("gm_lead_8_bass_lead").gain(0.41)

// other · string ensemble 1 · "strings oct."
const string_ensemble_1 = note("<~@60 A B C D A B C D E ~@55 A B C D A B C D A B C D A B C D E>".pickRestart({
  A: "e5 a4", B: "d5@8 e5@7 ~", C: "e5 d5 a4@2", D: "d5@7 e5 e5@7 ~", E: "e5 ~",
})).s("gm_string_ensemble_1").gain(0.4)

// other · agogo · "synth fill"
const agogo = note("<~@36 A@6 B C ~@24 A@6 B C ~@8 A@6 B C ~@49>".pickRestart({
  A: "e4 a3 d4 a3 e4 a3 d4 a3", B: "e4 a3 d4 a3 e4 a3 d4 a3, ~@14 g3 ~",
  C: "e4@2 a3@2 d4@2 a3@2 e4@2 ~ d4@2 ~ a3@2, ~@10 a3@2 ~@2 g3 ~",
})).s("gm_agogo").gain(0.72)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~@4 A@7 ~ A@15 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@16 ~@9
>`.pickRestart({
  A: "x!4",
})).gain(0.41)

// drums · bongos
const bongos = s("bongo:18").struct("<~@11 A ~@15 A ~@15 A ~@7 A ~@15 A ~@7 A ~@15 A ~@7 A ~@15 A ~@25>".pickRestart({
  A: "~ x ~ x!2 ~ x ~",
})).gain(1.21)

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

// drums · cabasa
const cabasa = s("cabasa:4").struct(`<
  ~@4 A@7 ~ A@15 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@7 ~ A@15 ~ A@23 ~@2
>`.pickRestart({
  A: "~ x ~ x ~ x ~ x",
})).gain(2.34)

// drums · lt
const lt = s("lt").struct("<~@20 A@7 B ~@8 A@7 B A@7 B A@15 B A@7 B A@15 B A@7 B A@15 B A@16 ~@9>".pickRestart({
  A: "~ x ~ x", B: "~@3 x ~@2 x ~ x ~@3 x ~@3",
})).gain(0.46)

stack(bass, electric_guitar_clean, slap_bass_1, string_ensemble_1, agogo, high_tom, bongos, congas, cabasa, lt)

More by Culture Beat