Strudelify

Pretty Noose

Soundgarden

KeyE♭ majorTempo74 bpm
0:00/0:00
// Pretty Noose — Soundgarden
// 74 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 8, 4/4 at bar 9, 2/4 at bar 32, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 2 "Wah Guitar" named as a guitar, played on electric guitar clean (its pad sweep patch is not one)
// note: duplicate parts dropped: ch 3 "Guitar II" electric guitar clean (copy of ch 4 "Guitar III" distortion guitar)
// note: Full arrangement: all 77 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(74/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.

// other · electric guitar clean · "Wah Guitar"
const electric_guitar_clean = note(`<
  A B C D A B C E F@8 ~@7 G@2 H@4 I J K L M L N L M L O ~@3 P@3 ~ P ~ P Q R S T U V W X Y ~@7 G@10 ~
>`.pickRestart({
  A: "e3@2 g4@2 bb4 b4 bb4@2 f4@2 e4@2 bb3@2 c4@2", B: "e3@2 g4@2 bb4 b4 c5@2 e4@2 f4@2 c5@3 db5",
  C: "c5@2 g4@2 bb4 b4 bb4@2 f4@2 e4@2 bb3@2 c4@2", D: "e3@2 g4@2 bb4 b4 bb4@2 e4@2 f4@2 f4@3 gb4",
  E: "e3@2 g4@2 bb4 b4 bb4@2 e4@2 f4@2 c5@4", F: "db5/8", G: "[~@12 ab5@8 a5@3 ~@9]/2",
  H: "[~@20 a5@3 ~@29 a5@3 ~@9, ~@3 ab5@10 ~@3]/4", I: "~@10 g4@2 bb4 b4 bb4@2",
  J: "f4@2 e4@2 bb3@2 c4@2 e3@2 g4@2 bb4 b4 bb4@2", K: "e4 f4 c5@2 ~@4",
  L: "~@2 g4@2 bb4 c5 bb4@2 bb4@2 a4@2 g4@2 a4@2", M: "a4@2 g4@2 bb4 c5 bb4@2 c5@2 f4@2 c5@2 d5@2",
  N: "a4@2 g4@2 bb4 c5 bb4@3 c5 bb4@3 ~ bb4 g4", O: "a4@2 g4@2 bb4@6 c5@5 ~", P: "~@4 ab5@8 a5@3 ~",
  Q: "d6 bb5 eb6!6 eb6@2 d6@2 d6 c6 d6 c6", R: "bb5@7 ~ c6@3 ~@5", S: "g4 bb4 ~ c5@5 ~@2 c5@5 ~",
  T: "[bb4,c5] g4@2 bb4@4 ~@5 f4@3 ~", U: "eb6!5 c6 bb5!2 c6@3 ~ bb5 c6 bb5 f5",
  V: "g5!4 g5@3 ~ g4 [g4,bb4] f4 bb4 d5 eb5 d5@2", W: "g4@3 g4 g4@2 g4@2 g4@2 f5@2 f5!2 f5@2",
  X: "a5@7 ~ f5 a5 g5@2 bb5@2 a5@2", Y: "g5@7 ~@9",
})).s("gm_electric_guitar_clean").gain(0.56)

// chords · distortion guitar · "Guitar III"
const distortion_guitar = note(`<
  ~@8 A B C D E B C D E B C F G H I J K J K J L M@3 N F O P N F O Q R S T U T U T U T U ~@8 V S W@2 X Y J K J K J K J Z
  AA@2 AB AC AD
>`.pickRestart({
  A: "~@8 [g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 [ab3,eb4,ab4,eb5,c6]@2", // G Ab
  B: "[bb3,f4,bb4,f5,d6]@3 [bb3,f4,bb4,f5,d6] [bb3,f4,bb4,f5,d6]@4 [eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 [e3,b3,e4,b4,ab5]@2", // Bb Eb E
  C: "[f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~@2 [c3,g3,c4,g4,e5]@3 [c3,g3,c4,g4,e5] [c3,g3,c4,g4,e5]@2 [db3,ab3,db4,ab4,f5]@2", // F C Db
  D: "[eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 [e3,b3,e4,b4,ab5]@2 [f3,c4,f4,c5,a5]!4 c5 db5@3", // Eb E F
  E: "c5@3 [f3,c4,f4,c5,a5]!3 d5 g4 [g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 [ab3,eb4,ab4,eb5,c6]@2", // F G Ab
  F: "[eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 [e3,b3,e4,b4,ab5]@2 [f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~@2", // Eb E F
  G: "[f3,c4,f4,c5,a5] [gb3,db4,gb4,db5,bb5] [g3,d4,g4,d5,b5]@2 [bb3,f4,bb4,f5,d6]@2 [bb3,e4,bb4,e5,db6]@2 [g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 ~@2", // F Gb G Bb Bbdim G
  H: "[eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 ~@2 [f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~ [ab3,eb4,ab4,eb5,c6]", // Eb F Ab
  I: "[ab3,eb4,ab4,eb5,c6]!6 [ab3,eb4,ab4,eb5,c6]@2 [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]!2 [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]@2", // Ab Eb
  J: "[ab3,eb4,ab4,eb5,c6]@2 [ab3,eb4,ab4,eb5,c6]!2 [ab3,eb4,ab4,eb5,c6]@2 [ab3,eb4,ab4,eb5,c6]@2 [b3,gb4,b4,gb5,eb6]!8", // Ab B
  K: "[b3,gb4,b4,gb5,eb6]!6 [b3,gb4,b4,gb5,eb6]@2 [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]!2 [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]@2", // B Eb
  L: "[b3,gb4,b4,gb5,eb6]!6 [b3,gb4,b4,gb5,eb6]@2 [g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 ~@2", // B G
  M: "[[eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 ~@2 [g3,d4,g4,d5,b5]@39 ~]/3", // Eb G
  N: "[g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 [ab3,eb4,ab4,eb5,c6]@2 [bb3,f4,bb4,f5,d6]@3 [bb3,f4,bb4,f5,d6] [bb3,f4,bb4,f5,d6]@4", // G Ab Bb
  O: "[c3,g3,c4,g4,e5]@3 [c3,g3,c4,g4,e5] [c3,g3,c4,g4,e5]@2 [db3,ab3,db4,ab4,f5]@2 [eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 [e3,b3,e4,b4,ab5]@2", // C Db Eb E
  P: "[f3,c4,f4,c5,a5]!4 c5 db5@3 c5@3 [f3,c4,f4,c5,a5]!3 d5 g4", // F
  Q: "[f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~@2 [f3,c4,f4,c5,a5] [gb3,db4,gb4,db5,bb5] [g3,d4,g4,d5,b5]@2 [bb3,f4,bb4,f5,d6]@2 [bb3,e4,bb4,e5,db6]@2", // F Gb G Bb Bbdim
  R: "[g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 ~@2 [eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 ~@2", // G Eb
  S: "[f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~ [ab3,eb4,ab4,eb5,c6]!7 [ab3,eb4,ab4,eb5,c6]@2", // F Ab
  T: "[eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]!2 [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]@2 [ab3,eb4,ab4,eb5,c6]@2 [ab3,eb4,ab4,eb5,c6]!2 [ab3,eb4,ab4,eb5,c6]@2 [ab3,eb4,ab4,eb5,c6]@2", // Eb Ab
  U: "[b3,gb4,b4,gb5,eb6]!14 [b3,gb4,b4,gb5,eb6]@2", // B
  V: "[g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 [g3,d4,g4,d5,b5]!2 [eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]!2", // G Eb
  W: "[gb3,c4,gb4,db5,bb5] [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 [bb3,f4,bb4,f5,d6] [a3,e4,a4,e5,db6] ~ [f3,c4,f4,c5,a5]@6 ~ [f3,c4,f4,c5,a5] [gb3,db4,gb4,db5,bb5]", // Gb G Bb A F Gb
  X: "[gb3,c4,gb4,db5,bb5] [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 [bb3,f4,bb4,f5,d6] [a3,e4,a4,e5,db6] ~ [f3,c4,f4,c5,a5]@4 ~ [gb3,db4,gb4,db5,bb5] [g3,d4,g4,d5,bb5] ~ [bb3,f4,bb4,f5,d6]", // Gb G Bb A F Gb Gm Bb
  Y: "[bb3,f4,bb4,f5,d6]!2 [a3,e4,a4,e5,db6] [g3,d4,g4,d5,b5]@4 ~ [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]!2 [eb3,bb3,eb4,bb4,g5]@2 [eb3,bb3,eb4,bb4,g5]@2", // Bb A G Eb
  Z: "[b3,gb4,b4,gb5,eb6]!6 [b3,gb4,b4,gb5,eb6]@2 [eb3,bb3,eb4,bb4,g5]@8", // B Eb
  AA: "[[ab3,eb4,ab4,eb5,c6] [b3,gb4,b4,gb5,eb6]@2 [eb3,bb3,eb4,bb4,g5]]/2", // Ab B Eb
  AB: "[ab3,eb4,ab4,eb5,c6]@8 [b3,gb4,b4,gb5,eb6]@3 ~ [b3,gb4,b4,gb5,eb6]!4", // Ab B
  AC: "[b3,gb4,b4,gb5,eb6]!6 [b3,gb4,b4,gb5,eb6]@2 [f3,c4,f4,c5,a5]@2 [gb3,db4,gb4,db5,bb5]@2 [g3,d4,g4,d5,b5] [bb3,f4,bb4,f5,d6] [a3,e4,a4,e5,db6]@2", // B F Gb G Bb A
  AD: "[g3,d4,g4,d5,b5]@15 ~", // G
})).s("gm_distortion_guitar").gain(0.48)

// chords · distortion guitar · "Guitar III" · soft notes
const distortion_guitar_soft = note("<~@50 A B C A@2 B C D ~@19>".pickRestart({
  A: "[g3,d4,g4,d5,b5]@3 [g3,d4,g4,d5,b5] [g3,d4,g4,d5,b5]@2 ~@2 [eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 ~@2", // G Eb
  B: "[f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~@2 [f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~@2", // F
  C: "[c3,g3,c4,g4,e5]@3 [c3,g3,c4,g4,e5] [c3,g3,c4,g4,e5]@2 [db3,ab3,db4,ab4,f5]@2 [eb3,bb3,eb4,bb4,g5]@3 [eb3,bb3,eb4,bb4,g5] [eb3,bb3,eb4,bb4,g5]@2 ~@2", // C Db Eb
  D: "[f3,c4,f4,c5,a5]@3 [f3,c4,f4,c5,a5] [f3,c4,f4,c5,a5]@2 ~@2 [f3,c4,f4,c5,a5] [gb3,db4,gb4,db5,bb5] [g3,d4,g4,d5,b5]@2 [bb3,f4,bb4,f5,d6]@2 [bb3,e4,bb4,e5,db6]@2", // F Gb G Bb Bbdim
})).s("gm_distortion_guitar").gain(0.32)

// bass · electric bass pick · "Bass"
const bass = note("<A B A B C ~ D@3 E F ~@66>".pickRestart({
  A: "c2@15 ~", B: "[g2,c3]@15 ~", C: "c4@3 ~@13", D: "[[c2,g2,c4]@39 ~ [g3,d4]@3 [g3,d4] [g3,d4]@2 [ab3,eb4]@2]/3",
  E: "[bb3,f4]@3 [bb3,f4] [bb3,f4]@2 [bb3,f4]@2 [eb3,bb3]@3 [eb3,bb3] [eb3,bb3]@2 [e3,b3]@2", // Bb5 Eb5 E5
  F: "[f3,c4]@3 [f3,c4] [f3,c4]@2 [f3,c4]@2 ~@8", // F5
})).s("gm_electric_bass_pick").gain(0.56)

stack(electric_guitar_clean, distortion_guitar, distortion_guitar_soft, bass)

More by Soundgarden