Strudelify

Shout (Rio mix)

Depeche Mode

KeyD majorTempo119 bpm
0:00/0:00
// Shout (Rio mix) — Depeche Mode
// 118.5 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 4 "Bass" named as a bass, played on electric bass finger (its pad poly patch is not one)
// note: Full arrangement: all 224 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(118.5/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 · oboe · "Intro"
const oboe = note("<A@8 ~@216>".pickRestart({
  A: "d5/8",
})).s("gm_oboe").gain(0.06).pan(1)

// other · lead 2 sawtooth · "Lead"
const lead_2_sawtooth = note(`<
  ~ A@4 B C D@2 B C D@2 B C ~@78 A@4 B C D@2 B C E@2 ~@39 F@2 ~@49 G H ~@6 B I B J B J K@2 B I B I B I B I B ~@4
>`.pickRestart({
  A: "[~@12 d5@7 a4@15 ~@10 d5@6 a4@14]/4", B: "~@3 d5", C: "a4@7 ~", D: "[~@6 d5@3 a4@7]/2", E: "[~@6 d5@3 ~@7]/2",
  F: "[a4!2 g4@2 a4@2 g4@2 a4@2 g4@2 a4@2 g4 a4@2 ~ g4 a4@2 ~@11]/2", G: "~@8 d5@2 c5@3 ~ [b4,d5]@2",
  H: "~@2 b4@3 ~ b4@3 ~ b4@3 ~ b4@2", I: "~ a4@15", J: "~ a4@14 ~", K: "[~@12 d5@6 a4@13 ~]/2",
})).s("gm_lead_2_sawtooth").gain(0.07)

// other · lead 2 sawtooth · "Lead" · soft notes
const lead_2_sawtooth_soft = note("<~@104 A B C ~@38 D ~@49 E F G H ~@21 I B I ~>".pickRestart({
  A: "~ a4@7", B: "~@3 d5", C: "a4@7 ~", D: "~@3 g4 a4 g4 a4 g4", E: "~@8 [g5,b5]@2 [f#5,a5]@3 ~ g5@2",
  F: "~@2 [d5,g5]@3 ~ [d5,g5]@3 ~ [d5,g5]@3 ~ [d5,g5]@2", // G5
  G: "~@2 [b4,d5,g5]@3 ~ [b4,d5,g5]@3 ~ [b4,d5,g5]@3 ~ [b4,d5,g5]@2", H: "~@2 [b4,d5,g5]@3 ~@11", I: "~ a4@15",
})).s("gm_lead_2_sawtooth").gain(0.02)

// bass · electric bass finger · "Bass"
const bass = note(`<
  ~@16 A@2 B@2 A@2 B@2 C D E@2 F G F G F G F H A@2 B@2 A@2 B@2 C D E@2 F G F G F G F H ~@8 A@2 B@2 A@2 B@2 C D E@2 F G F
  G F G F H F G F G F G F H I@8 J@3 ~@33 K L K L K L K L M N O@2 M P O@2 P Q R@2 K L K L K L K L C D B@2 C D E@2 ~@12 K
  L K L K L K L K L K L K L K L M@18 S ~@5
>`.pickRestart({
  A: "a2/2", B: "g2/2", C: "a2", D: "c3", E: "d3/2", F: "g2 c3", G: "d3 c3", H: "d3", I: "a2/8", J: "a2!4",
  K: "g3@2 g2!2 ~ b2!2 ~ d3 ~ d3 ~ b3@2 ~@2", L: "d4@2 d3!2 ~ f#3!2 ~ a3 ~ a3 ~ c4@2 ~@2",
  M: "a3@2 a2!2 ~ c3!2 ~ e3 ~ e3 ~ a3@2 a2 ~", N: "a3@2 a2!2 ~ c3!2 ~ e3 ~ e3 ~ a3@2 f#2 ~",
  O: "g3@2 g2!2 ~ b2!2 ~ d3 ~ d3 ~ g3@2 ~@2", P: "a3@2 a2!2 ~ c3!2 ~ e3 ~ e3 ~ a3@2 ~@2",
  Q: "c4@2 c3!2 ~ e3!2 ~ g3 ~ g3 ~ c4@2 ~@2", R: "d4@2 d3!2 ~ f#3!2 ~ a3 ~ a3 ~ d4@2 ~@2",
  S: "a3@2 a2!2 ~ c3!2 ~ e3 ~@7",
})).s("gm_electric_bass_finger").gain(0.31)

// bass · electric bass finger · "Bass" · soft notes
const bass_soft = note(`<
  ~@103
  [a2!4]!5
  ~@110
  [~@10 e3 ~ a3@2 a2 ~]
  [a3@2 a2!2 ~ c3!2 ~ e3 ~ e3 ~ a3@2 a2 ~]!4
  [a3@2 a2!2 ~ c3!2 ~ e3 ~ e3 ~@5]
>`).s("gm_electric_bass_finger").gain(0.1)

// other · lead 5 charang · "Harmony"
const lead_5_charang = note(`<
  ~@28 A B A B A B A C ~@12 A B A B A B A C ~@20 A B A B A B A C A B A B A B A C ~@72 D E F@2 D E G@2 ~@52
>`.pickRestart({
  A: "g2 c3", B: "d3 c3", C: "d3", D: "a2", E: "c3", F: "g2/2", G: "d3/2",
})).s("gm_lead_5_charang").gain(0.27).pan(1)

// other · pad metallic · "Ending"
const pad_metallic = note("<~@92 A B A B A B A B A B A ~@81 C D E F E D E G ~@32>".pickRestart({
  A: "a4@3 ~@3 g4@2", B: "a4@3 ~@2 g4@3", C: "~@3 c4@2 ~@3", D: "f#4@2 ~ c4@2 ~@3", E: "g4@2 ~ c4@2 ~@3",
  F: "f#4@2 ~@3 a4 f#4 d4", G: "f#4 ~@3",
})).s("gm_pad_metallic").gain(0.13).pan(1)

// other · pad metallic · "Ending" · soft notes
const pad_metallic_soft = note(`<
  ~@103
  [a4@3 ~@2 g4@3]
  [a4@3 ~@3 g4@2]
  [a4@3 ~@2 g4@3]
  [a4@3 ~@3 g4@2]
  [a4@3 ~@5]
  ~@116
>`).s("gm_pad_metallic").gain(0.06).pan(1)

// bass · synth bass 1 · "Bass 2"
const bass_2 = note(`<
  ~@136 A B A B A B A B C D E@2 C F E@2 F G H@2 A B A B A B A B ~@20 A B A B A B A B A B A B A B A B C@18 I J ~@4
>`.pickRestart({
  A: "g3@2 [g1,g2]!2 ~ [b1,b2]!2 ~ [d2,d3] ~ [d2,d3] ~ [b2,b3]@2 ~@2, g2 ~@15", // G B D B
  B: "d4@2 [d2,d3]!2 ~ [f#2,f#3]!2 ~ [a2,a3] ~ [a2,a3] ~ [c3,c4]@2 ~@2, d3 ~@15", // D F# A C
  C: "a3@2 [a1,a2]!2 ~ [c2,c3]!2 ~ [e2,e3] ~ [e2,e3] ~ a3@2 [a1,a2] ~, a2 ~@11 a2 ~@3", // A C E A
  D: "a3@2 [a1,a2]!2 ~ [c2,c3]!2 ~ [e2,e3] ~ [e2,e3] ~ a3@2 [f#1,f#2] ~, a2 ~@11 a2 ~@3", // A C E F#
  E: "g3@2 [g1,g2]!2 ~ [b1,b2]!2 ~ [d2,d3] ~ [d2,d3] ~ [g2,g3]@2 ~@2, g2 ~@15", // G B D G
  F: "a3@2 [a1,a2]!2 ~ [c2,c3]!2 ~ [e2,e3] ~ [e2,e3] ~ a3@2 ~@2, a2 ~@11 a2 ~@3", // A C E
  G: "c4@2 [c2,c3]!2 ~ [e2,e3]!2 ~ [g2,g3] ~ [g2,g3] ~ [c3,c4]@2 ~@2, c3 ~@15", // C E G C
  H: "d4@2 [d2,d3]!2 ~ [f#2,f#3]!2 ~ [a2,a3] ~ [a2,a3] ~ [d3,d4]@2 ~@2, d3 ~@15", // D F# A D
  I: "a3@2 [a1,a2]!2 ~ [c2,c3]!2 ~ [e2,e3] ~ e3 ~ a3@2 a2 ~, a2 ~@15", J: "a3@2 a2!2 ~ c3!2 ~ e3 ~ e3 ~@5",
})).s("gm_synth_bass_1").gain(0.24)

// bass · synth bass 1 · "Bass 2" · soft notes · A C E A C E
const bass_soft_2 = note(`<
  ~@218
  [~@10 e2 ~ a2 ~ a1 ~]
  [a2 ~ a1!2 ~ c2!2 ~ e2 ~ e2 ~ a3@2 [a1,a2] ~, ~@12 a2 ~@3]
  [a3@2 [a1,a2]!2 ~ [c2,c3]!2 ~ [e2,e3] ~ [e2,e3] ~ a3@2 [a1,a2] ~, a2 ~@11 a2 ~@3]!3
  [a3@2 [a1,a2]!2 ~ [c2,c3]!2 ~ [e2,e3] ~ [e2,e3] ~@5, a2 ~@15]
>`).s("gm_synth_bass_1").gain(0.07)

// other · timpani
const timpani = note("<A@56 B@8 A@28 B@9 C D E ~@4 A@109 D E@2 ~@4>".pickRestart({
  A: "~@2 g6 c6 ~@2 d6 ~@2 c6 ~ b5 ~@2 d6 ~", B: "~@2 g6 c6 ~@2 d6 ~@2 c6 ~ b5 ~@2 d6 ~, d2!4",
  C: "~@2 g6 c6 ~@2 d6 ~@2 c6 ~ b5 ~@2 d6 ~, d2!2 ~@2", D: "~@2 g6 ~@3 d6 ~@4 b5 ~@2 d6 ~", E: "~@2 g6 ~@3 d6 ~@9",
})).s("gm_timpani").gain(0.19)

// other · timpani · soft notes
const timpani_soft = note("<A@4 B A@11 ~@85 C D E F@4 ~@109 G H@2 I@3 J>".pickRestart({
  A: "d2", B: "d2 d2@3", C: "~@2 d2!2", D: "d2@3 c6 d2@4 ~ c6 ~@2 d2@4, ~@2 d2 ~",
  E: "d2@3 c6 d2@4 ~ c6 ~ b5 ~@2 d6 ~, ~@2 d2!2", F: "~@2 g6 c6 ~@2 d6 ~@2 c6 ~ b5 ~@2 d6 ~, d2!4",
  G: "~@3 c6 ~@5 c6 ~@6", H: "~@3 c6 ~@5 c6 ~ b5 ~@2 d6 ~", I: "~@2 g6 c6 ~@2 d6 ~@2 c6 ~ b5 ~@2 d6 ~",
  J: "~@2 g6 c6 ~@2 d6 ~@2 c6 ~@6",
})).s("gm_timpani").gain(0.06)

// other · lead 2 sawtooth · "Effect 1"
const lead_2_sawtooth_2 = note("<~@202 A@2 ~ B@2 ~@17>".pickRestart({
  A: "[a4@2 ~ a4@2 g#4@2 ~ g#4@2 a4@2 ~ a4@2 g#4@2 ~ g#4@2 a4@2 g#4@2 ~@8, ~@2 g#4@2 ~@3 a4@2 ~@3 g#4@2 ~@3 a4@2 ~@13]/2",
  B: "[d5@2 ~ d5@2 c#5@2 ~ c#5@2 d5@2 ~ d5@2 c#5@2 ~ c#5@2 d5@2 c#5@2 ~@8, ~@2 c#5@2 ~@3 d5@2 ~@3 c#5@2 ~@3 d5@2 ~@13]/2",
})).s("gm_lead_2_sawtooth").gain(0.09).pan(0)

// other · electric guitar clean · "Effect 2"
const electric_guitar_clean = note("<~@202 A@2 ~ B@2 ~@5 C ~@6 D ~@4>".pickRestart({
  A: "[a4@2 ~ a4@2 g#4@2 ~ g#4@2 a4@2 ~ a4@2 g#4@2 ~ g#4@2 a4@2 g#4@2 ~@8, ~@2 g#4@2 ~@3 a4@2 ~@3 g#4@2 ~@3 a4@2 ~@13]/2",
  B: "[d5@2 ~ d5@2 c#5@2 ~ c#5@2 d5@2 ~ d5@2 c#5@2 ~ c#5@2 d5@2 c#5@2 ~@8, ~@2 c#5@2 ~@3 d5@2 ~@3 c#5@2 ~@3 d5@2 ~@13]/2",
  C: "a4 ~", D: "d5@2 ~ d5@2 c#5@2 ~ c#5@2 d5@2 c#5@2 ~@2, ~@2 c#5@2 ~@3 d5@2 ~@7",
})).s("gm_electric_guitar_clean").gain(0.07).pan(0)

// other · electric guitar clean · "Effect 2" · soft notes
const electric_guitar_clean_2 = note("<~@219 A@2 ~@3>".pickRestart({
  A: "[~@13 d5@2 c#5@2 ~ c#5@2 d5@2 c#5@2 ~@8, ~@17 d5@2 ~@13]/2",
})).s("gm_electric_guitar_clean").gain(0.05).pan(0)

// other · pad halo · "Effect 3"
const pad_halo = note("<~@206 A@4 B@4 ~@2 B@2 ~ C ~@4>".pickRestart({
  A: "[a4@20 ~@11 a4@21 ~@12]/4", B: "[a4@5 ~@3]/2",
  C: "d5@2 ~ d5@2 c#5@2 ~ c#5@2 d5@2 ~ d5@2 ~, ~@2 c#5@2 ~@3 d5@2 ~@3 c#5@2 ~@2",
})).s("gm_pad_halo").gain(0.15).pan(0)

// other · pad halo · "Effect 3" · soft notes
const pad_halo_soft = note("<~@219 A@2 ~ B@2>".pickRestart({
  A: "[~@15 c#5@2 ~ c#5@2 d5@2 c#5@2 ~@8, ~@17 d5@2 ~@13]/2", B: "[a4@5 ~@3]/2",
})).s("gm_pad_halo").gain(0.05).pan(0)

// other · sitar · "Effect 4"
const sitar = note("<~@214 A@4 ~@6>".pickRestart({
  A: "[a4@2 ~ a4@2 g#4@2 ~ g#4@2 a4@2 ~ a4@2 g#4@2 ~ g#4@2 a4@2 g#4@2 ~@8, ~@2 g#4@2 ~@3 a4@2 ~@3 g#4@2 ~@3 a4@2 ~@13]/2",
})).s("gm_sitar").gain(0.19).pan(0)

// drums · kick
const kick = s("bd").struct("<x!4 [x!2 ~@2] x!11 [x!4]!207 [x!3 ~]>").gain(0.8)

// drums · snare
const snare = s("sd").struct("<~@16 [~ x ~ x]!86 [~ x ~@2] ~@81 [~ x ~ x]!34 ~@6>").gain(0.8)

// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@102 [~@3 x] [~ x ~ x]!5 ~@110 [~ x ~ x]!5 [~ x ~@2]>").gain(0.24)

// drums · cowbell
const cowbell = s("cb").struct("<[~@11 x ~@4]!223 ~>").gain(0.48)

// drums · congas
const congas = s("conga:13").struct("<~@136 [~ x ~@6]!28 ~@20 [~ x ~@6]!35 ~@5>").gain(2.05)

// drums · congas · soft notes
const congas_soft = s("conga:13").struct("<~@219 [~ x ~@6]!5>").gain(0.51)

// drums · congas
const congas_2 = s("conga:18").struct(`<
  [~@4 x!2 ~ x ~@8]!103
  ~@13
  [~@4 x!2 ~ x ~@8]!56
  ~@12
  [~@4 x!2 ~ x ~@8]!34
  [~@4 x!2 ~@10]
  ~@5
>`).gain(2.05)

// drums · congas · soft notes
const congas_soft_2 = s("conga:18").struct("<~@103 [~@4 x!2 ~ x ~@8]!5 ~@110 [~@7 x ~@8] [~@4 x!2 ~ x ~@8]!5>")
  .gain(0.51)

// drums · congas
const congas_3 = s("conga:33").struct(`<
  [~@2 x ~@7 x ~@3 x!2]!102
  [~ x ~@3 x ~@2]
  ~@13
  [~@2 x ~@7 x ~@3 x!2]!56
  ~@12
  [~@2 x ~@7 x ~@3 x!2]!34
  [~ x ~@6]
  ~@5
>`).gain(2.05)

// drums · congas · soft notes
const congas_soft_3 = s("conga:33").struct(`<
  ~@102
  [~@14 x!2]
// … 35 more lines

More by Depeche Mode