Strudelify
In Bloom cover art

Nevermind

In Bloom

Nirvana

KeyG minorTempo78 bpm
0:00/0:00
// In Bloom — Nirvana
// 78 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 83 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(78/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 · distortion guitar · "guitar 1- Kurt"
const distortion_guitar = note(`<
  A B A C D E D E ~@7 F G H I H J@2 G H I H J@2 A B K L ~@7 F G H I H J@2 G H I H J@2 A B K L M N O P Q@2 R S G H I H
  J@2 G H I H J@4 A B A T U
>`.pickRestart({
  A: "[bb2,f3,bb3]@3 [bb2,f3,bb3] [bb2,f3,bb3]@2 [g2,d3,g3]@3 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3]!3 [f2,c3,f3]", // Bb5 G5 F5
  B: "[f2,c3,f3]@3 [f2,c3,f3] [f2,c3,f3]@2 [ab2,eb3,ab3]@3 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3] f2 ab2 d3", // F5 Ab5
  C: "[f2,c3,f3]@3 [f2,c3,f3] [f2,c3,f3]@2 [ab2,eb3,ab3]@2 ~@8", // F5 Ab5
  D: "[bb2,f3,bb3]!5 ~ [bb2,f3,bb3]!2 [gb2,db3,gb3]!5 ~ [gb2,db3,gb3]!2", // Bb5 Gb5
  E: "[eb3,bb3,eb4]!5 ~ [eb3,bb3,eb4]!2 [b2,gb3,b3]!4 [a2,e3,a3]!4", F: "~@2 [b2,f3,b3] [d3,a3,d4]",
  G: "[bb2,f3,bb3]@3 [bb2,f3,bb3] [bb2,f3,bb3]@2 [bb2,f3,bb3]@2 [g2,d3,g3]@2 [g2,d3,g3]!2 [g2,d3,g3]@2 [g2,d3,g3]!2", // Bb5 G5
  H: "[bb2,f3,bb3]@3 [bb2,f3,bb3]!5 [g2,d3,g3]@2 [g2,d3,g3]!6", // Bb5 G5
  I: "[bb2,f3,bb3]@3 [bb2,f3,bb3] [bb2,f3,bb3]@2 [bb2,f3,bb3]!2 [g2,d3,g3]@2 [g2,d3,g3]!6", // Bb5 G5
  J: "[c3,g3,c4]@2 [c3,g3,c4]!2 [c3,g3,c4]@2 [c3,g3,c4] [eb3,bb3,eb4]@2 [eb3,bb3,eb4]!3 [eb3,bb3,eb4]@2 [eb3,bb3,eb4]!2", // C5 Eb5
  K: "[bb2,f3,bb3]@3 [bb2,f3,bb3]!2 [a2,d3,g3] [g2,d3,g3]@3 [g2,d3,g3] [g2,d3,g3]@2 [g2,d3,g3]!3 [f2,c3,f3]", // Bb5 Dsus4 G5 F5
  L: "[f2,c3,f3]@3 [f2,c3,f3] [f2,c3,f3]@2 [ab2,eb3,ab3]@3 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3]!3 eb2", M: "eb4",
  N: "ab4@3 db4@5", O: "db4@4 db4 eb4 db4 eb4@2 eb4 ab3 bb3 db4 eb4 eb4@2",
  P: "~ eb4@2 db4 eb4@2 ~ db4 eb4 eb4@2 db4 eb4!2 d3@2", Q: "[f4@6 f4@4 g4 f4 g4 ab4 g4 ab4@2 ab4!2 bb4@4 bb4@9]/2",
  R: "ab4@8 db4@4 db4 g4@3", S: "g4@2 db4 g4@2 gb4@2 f4 [b2,f3,b3]@4 [d3,a3,d4]@4",
  T: "[f2,c3,f3]@3 [f2,c3,f3] [f2,c3,f3]@2 [ab2,eb3,ab3]@3 [ab2,eb3,ab3] [ab2,eb3,ab3]@2 [ab2,eb3,ab3] f2 ab2 a2", // F5 Ab5
  U: "[bb2,f3,bb3]@3 ~@13", // Bb5
})).s("gm_distortion_guitar").gain(0.8)

// chords · electric guitar clean · "guitar 1- Kurt"
const electric_guitar_clean = note("<~@12 A B C D@8 ~@13 E F@2 G ~@43>".pickRestart({
  A: "[bb2,f3,bb3,d4,f4]@3 [bb2,f3,bb3,d4,f4]!2 ~ [f3,b3,d4,f4] [d3,g3,b3,e4] [gb2,db3,gb3,bb3,db4,gb4]@3 [gb2,db3,gb3,bb3,db4,gb4]!2 ~ [gb3,bb3,db4,gb4]!2", // Bb Bdim Em7 Gb
  B: "[eb3,bb3,eb4,g4]@4 [eb3,bb3,eb4,g4] ~ [bb3,eb4,g4,b4] [eb3,bb3,eb4] [b2,gb3,b3]@2 [b3,eb4,gb4] [gb3,b3,eb4] [a2,e3,a3]@2 [a3,db4,e4] [e3,a3,db4]", // Eb Eb5 B5 B A5 A
  C: "[bb2,f3,bb3]@4 [bb3,d4,f4] ~ [bb3,d4,f4] [g3,b3,e4] [gb2,db3,gb3,bb3,db4]!5 ~ [gb2,db3,gb3,bb3,db4]!2", // Bb5 Bb Em Gb
  D: "[[eb3,bb3,eb4,g4]!4 [eb3,bb3,eb4,g4]@2 [eb3,bb3,eb4,g4] [eb3,bb3,eb4,g4]@121]/8", // Eb
  E: "[bb2,f3,bb3,d4,f4]@3 [bb2,f3,bb3,d4,f4] [bb2,f3,d4,f4] ~ [f3,b3,d4,f4] [d3,g3,b3,e4] [gb2,db3,gb3,bb3,db4,gb4]@3 [gb2,db3,gb3,bb3,db4,gb4]!2 ~ [gb3,bb3,db4,gb4]!2, ~ bb3 ~@2", // Bb Bdim Em7 Gb
  F: "[[eb3,bb3,eb4,g4]@4 [eb3,bb3,eb4,g4]@2 [bb3,eb4,b4] ~ [b2,gb3,b3]@2 [b3,eb4,gb4] [gb3,b3] [a2,e3,a3]@2 [a3,db4,e4] [e3,a3,db4] [bb2,f3,bb3]@4 [bb3,d4,f4] ~ [bb3,d4,f4] [g3,b3,e4] [gb2,db3,gb3,bb3,db4]!5 ~ [gb2,db3,gb3,bb3,db4]!2, ~@3 g4@13, ~@7 eb3@25, ~@7 bb3@9 ~@16, ~@7 eb4@3 ~ eb4@21]/2", // Eb Bmaj7 B5 B B5 A5 A Bb5 …
  G: "[eb3,bb3,eb4,g4]!4 [eb3,bb3,eb4,g4]@3 ~@9", // Eb
})).s("gm_electric_guitar_clean").gain(0.8)

// bass · electric bass pick · "bass- Krist"
const bass = note(`<
  A B A C D E D E D E D E D E D E F G H G I@2 F G H G I@2 A B A J D E D E D E D E F G H G I@2 F G H G I@2 A B A J D E D
  E D E D E F G H G I@2 F G H G I@4 A B A B K
>`.pickRestart({
  A: "bb1@3 bb1 bb1@2 g1@3 g1 g1@2 g1!3 f1", B: "f1@3 f1 f1@2 ab1@3 ab1 ab1@2 ab1 f1 ab1 d2",
  C: "f1@3 f1 f1@2 ab1@3 ~@7", D: "bb1!5 ~@2 bb1 gb1!5 ~@2 gb1", E: "eb2!5 ~@2 eb2 b1!4 a1!4",
  F: "bb1@3 bb1 bb1@2 bb1@2 g1@2 g1!2 g1@2 g1!2", G: "bb1@3 bb1!5 g1@2 g1!6", H: "bb1@3 bb1 bb1@2 bb1!2 g1@2 g1!6",
  I: "c2@2 c2!2 c2@2 c2 eb2@2 eb2!3 eb2@2 eb2!2", J: "f1@3 f1 f1@2 ab1@3 ab1 ab1@2 ab1!3 eb1", K: "bb1@3 ~@13",
})).s("gm_electric_bass_pick").gain(0.8)

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

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

// drums · low tom
const low_tom = s("lt").struct("<A@4 ~@16 A ~@5 A ~ A@4 ~@12 A ~@5 A ~ A@4 ~@12 A ~@5 A ~ A ~ A@4 ~>".pickRestart({
  A: "~@14 x!2",
})).gain(0.8)

// drums · hihat
const hihat = s("hh").struct("<~@8 [x!16]!7 [x!8 ~@8] ~@16 [x!16]!7 [x!8 ~@8] ~@43>").gain(0.8)

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

// drums · crash
const crash = s("cr").struct("<A@4 B ~@11 B@12 A@4 ~@8 B@12 A@4 B ~@7 B@14 A@4 B>".pickRestart({
  A: "x ~@2 x ~@4", B: "x",
})).gain(0.8)

stack(distortion_guitar, electric_guitar_clean, bass, kick, snare, low_tom, hihat, open_hat, crash)

More by Nirvana