Strudelify

Fugeela

Fugees

KeyC minorTempo92 bpm
0:00/0:00
// Fugeela — Fugees
// 92 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 92 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(92/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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.

// other · sitar
const sitar = note("<A@2 ~@90>".pickRestart({
  A: "[~@5 db4@16 ~@11]/2",
})).s("gm_sitar").gain(0.46)

// bass · electric bass finger · "bass"
const bass = note(`<
  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 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: "c2@3 c2", B: "g1@6 c2@6 g1@2 a1 b1",
})).s("gm_electric_bass_finger").gain(0.51)

// chords · whistle
const whistle = note("<~@4 A@43 B A@23 C D ~@6 E F A@11>".pickRestart({
  A: "~@2 [c5,eb5] [d5,f5] [eb5,g5] [d5,f5] [c5,eb5] ~ [eb5,g5]@6 ~@2", // Cm Dm Eb Dm Cm Eb
  B: "~@2 [c5,eb5] [d5,f5] [eb5,g5] [d5,f5] [eb5,g5]@6 ~@4", // Cm Dm Eb Dm Eb
  C: "~@2 [c5,eb5] [d5,f5] [eb5,g5] [d5,f5] [eb5,g5]@6 ~@2 c5 d5", D: "eb5 ~@15", E: "~@14 c5 d5",
  F: "eb5 ~ [c5,eb5] [d5,f5] [eb5,g5] [d5,f5] [c5,eb5] ~ [eb5,g5]@6 ~@2", // Cm Dm Eb Dm Cm Eb
})).s("gm_whistle").gain(0.46)

// other · pad bowed · "sound1"
const pad_bowed = note("<~@30 A@2 ~@22 A@2 ~@22 A@2 ~@6 A@2 ~@4>".pickRestart({
  A: "g4/2",
})).s("gm_pad_bowed").gain(0.41)

// other · english horn · "pras"
const english_horn = note("<~@30 A B ~@22 A B ~@22 A B ~@6 A C ~@4>".pickRestart({
  A: "~@7 g4 c5 bb4 c5 bb4 c5 bb4 c5 bb4", B: "g4 ~@6 c5 ~@8", C: "g4 ~@6 c5 ~@3 c5 ~@3 c5",
})).s("gm_english_horn").gain(0.46)

// drums · kick
const kick = s("bd").struct(`<
  ~@3 A B@5 C B D E B@6 D F@2 E B@37 D@2 B G F@2 E D F@2 E H B@7 C B@6 G A B@4
>`.pickRestart({
  A: "~@15 x", B: "x ~@6 x!2 ~ x ~@4 x", C: "x ~@14 x", D: "x ~@6 x!2 ~ x ~@5", E: "~@7 x!2 ~ x ~@4 x",
  F: "~@7 x!2 ~ x ~@5", G: "x", H: "x ~@9 x ~@4 x",
})).gain(0.46)

// drums · snare
const snare = s("sd").struct("<~@3 A B@29 C B@22 C@2 B@5 C B@22 ~ A B@4>".pickRestart({
  A: "~@3 x", B: "~ x ~ x", C: "~ x ~@2",
})).gain(0.46)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@4 [x!8]!56 [x!7 ~]!2 [x!8]!30>").gain(0.46)

// drums · agogo bells
const agogo_bells = s("agogo:4").struct(`<
  ~@4 A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A ~ A
  ~ A ~ A ~ A ~ A ~ A ~@9 A ~ A ~ A ~ A ~ A ~ A ~
>`.pickRestart({
  A: "x ~@2 x",
})).gain(1.96)

stack(sitar, bass, whistle, pad_bowed, english_horn, kick, snare, pedal_hat, agogo_bells)

More by Fugees