Strudelify
Harry Lime Theme (Theme From the Third Man) cover art

Der dritte Mann - The Third Man

Harry Lime Theme (Theme From the Third Man)

Karas Anton

KeyG majorTempo145 bpm
0:00/0:00
// Harry Lime Theme (Theme From the Third Man) — Karas Anton
// 145 bpm, 4/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 2 "BASSLINE" named as a bass, played on electric bass finger (its electric guitar muted patch is not one)
// note: Full arrangement: all 80 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(145/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, A@4 for four bars: edit a riff to change every repeat.

// bass · electric bass finger · "BASSLINE"
const bass = note(`<
  A@2 B@4 C A@2 C B@2 D@2 E ~ C@2 D@2 B@2 C@2 F G H I J K E L C@3 M@2 C N@8 E O M C M P N Q N C@4 N@4 C@2 M D N@3 M@2 C
  M N@4 R S
>`.pickRestart({
  A: "c2@3 ~@5 g2@3 ~@5", B: "d2@3 ~@5 g2@3 ~@5", C: "c2 ~ g2 ~", D: "d2@4 ~@4 g2@5 ~@3", E: "c2 ~@7",
  F: "a2@3 ~@5 e2@4 ~@4", G: "a2@3 ~@5 a2@4 ~@4", H: "d2@3 ~@9 a2@2 ~@2", I: "d2 ~ a2 ~ d2 ~@3", J: "g2@3 ~@5 d2@4 ~@4",
  K: "g2 ~ g2 ~", L: "~@8 g2@5 ~@3", M: "c2@5 ~@3 g2@5 ~@3", N: "d2@5 ~@3 g2@5 ~@3", O: "f2@4 g2 ~@3", P: "d2 ~ g2 ~",
  Q: "d2@5 ~@3 g2@4 ~@4", R: "c2 ~@3", S: "~@8 c2@3 ~@5",
})).s("gm_electric_bass_finger").gain(0.28).pan(1)

// chords · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note("<~@16 A@8 B@2 C D E@3 F G@6 H@8 I J K@7 L@8 M ~@15 N>".pickRestart({
  A: "[[c4,e4]@31 ~ [b3,d4,f4]@63 ~ e4@32, g4, ~@96 c4@29 ~@3]/8", B: "[[a3,c#4]@15 ~]/2",
  C: "[a3,d4,f4]@9 ~@3 [g3,a3,c#4,e4] ~@3", D: "[f3,a3,d4] ~", E: "[[b3,f4]@29 ~@3 [c4,e4]@2 ~@14, g3@17 ~@7]/3",
  F: "~@8 [b3,d4,f4,g4]@5 ~@3", // G7
  G: "[g4@13 ~ g#4@2 a4@14 g#4@2 g4@14 g#4@2 a4@16 ~@16 c5@13 ~@3, [c4,e4]@31 ~, ~@76 g4@17 ~@3]/6", // C
  H: "[~@2 b4 ~, [d4,g4], [b3,f4]@125 ~@3, ~ g3@3]/8", I: "[c3,c4,e4]@2 ~@2 c5 b4 a#4 a4",
  J: "~ [f4,c5] [g4,b4,d5] ~, g#4 ~", K: "[[c4,e4]@48 ~@49 b3 b3@12 ~@2, g3, ~@3 f4@4, ~@48 b3@47 ~@17, ~@4 d4@3]/7",
  L: "[~@35 c5@5 c4@22 ~@2 [b3,d4,f4]@63 ~, e4 ~, c4@35 ~@93, ~ g4@7]/8", M: "[c4,e4]@4 ~@4 [b3,d4,f4,g4]@5 ~@3",
  N: "~@8 [c3,g3,c4,e4,g4]@3 ~@5", // C
})).s("gm_string_ensemble_2").gain(0.09)

// chords · electric guitar muted · "BEGL/GITA"
const electric_guitar_muted = note(`<
  A B C D@3 A B A@2 D@4 E ~ A@2 F G D H I J K L M N O P Q R J I J I@3 G@4 S T G@2 E U I@3 H G V G W I@3 G@4 X I@2 F G@3
  I@4 G@2 Y G Z AA
>`.pickRestart({
  A: "c3@3 ~ [c4,e4,g4]@2 ~@2 g3@3 ~ [c4,e4,g4]@2 ~@2", B: "c3 ~ [c4,e4,g4] ~ g3 ~ [c4,e4,g4] ~",
  C: "d3 ~ [b3,d4,f4,g4] ~ g3 ~ [b3,d4,f4,g4] ~", D: "d3@3 ~ [b3,d4,f4,g4]@2 ~@2 g3@3 ~ [b3,d4,f4,g4]@2 ~@2",
  E: "c3 ~@15", F: "d3@3 ~ [b3,d4,f4,g4] ~@3 g3@4 [b3,d4,f4,g4] ~@3",
  G: "d3@4 [b3,d4,f4,g4] ~@3 g3@4 [b3,d4,f4,g4] ~@3", H: "d3@3 ~ [b3,d4,f4,g4] ~@3 g3@3 ~ [b3,d4,f4,g4] ~@3",
  I: "c3@4 [c4,e4,g4] ~@3 g3@4 [c4,e4,g4] ~@3", J: "c3@3 ~ [c4,e4,g4] ~@3 g3@3 ~ [c4,e4,g4] ~@3",
  K: "a3@3 ~ [a3,c#4,e4,g4]@2 ~@2 e3@3 ~ [a3,c#4,e4,g4]@2 ~@2", // A7
  L: "a3@3 ~ [a3,c#4,e4,g4] ~@3 a3@3 ~ [a3,c#4,e4,g4] ~@3", M: "d3@2 ~@10 a3 ~@3", N: "d3 ~@3 a3@2 ~@2 d3@2 ~@6",
  O: "g3@3 ~ [b3,d4,f4,g4]@2 ~@2 d3@3 ~ [b3,d4,f4,g4]@2 ~@2", P: "g3@3 ~ [b3,d4,f4,g4] ~@3 g3@3 ~ [b3,d4,f4,g4] ~@3",
  Q: "[c3,c4,e4,g4] ~@7", R: "~@2 g3 ~", S: "d3@4 [b3,d4,f4,g4]@2 ~@2 g3@4 [b3,d4,f4,g4] ~@3",
  T: "d3@4 [b3,d4,f4,g4] ~@3 g3@4 [b3,d4,f4,g4]@2 ~@2", U: "f3@6 ~@2 g3 ~@7",
  V: "d3@4 [b3,d4,f4,g4] ~@3 g3@3 ~ [b3,d4,f4,g4] ~@3", W: "c3@4 [c4,e4,g4] ~@3 g3@3 ~@5", X: "c3@3 ~@5 g3@3 ~@5",
  Y: "d3@3 ~ [b3,d4,f4,g4] ~@3 g3@4 [b3,c4,d4,f4,g4] ~@3", Z: "c3@3 ~@13", AA: "~@4 [c3,e4,g4,a4,c5] ~@3",
})).s("gm_electric_guitar_muted").gain(0.22)

// chords · acoustic guitar nylon · "BEGL/GITA"
const acoustic_guitar_nylon = note(`<
  A@2 B@4 C@2 A@2 B@2 D@2 E ~ C@2 F@4 C@2 G H I@2 F@2 E J K L@2 M A@2 F@2 N@2 O@2 P Q R S T M U Q V Q W X Y M T Q V Z@2
  AA AB@2 B@4 C@2 A@2 B@4 E AC
>`.pickRestart({
  A: "[~@4 [g4,c5] ~@7 [g4,c5] ~@7 [g4,c5] ~@7 [g4,c5] ~@3, e5@29 ~@3]/2", // C5
  B: "[~@4 [g4,b4] ~@7 [g4,b4] ~@7 [g4,b4] ~@7 [g4,b4] ~@3, f5@29 ~@3]/2", // G
  C: "[~@4 [g4,c5] ~@7 [g4,c5] ~@7 [g4,c5] ~@3 [g4,c5] ~@3 [g4,c5] ~@3, e5@29 ~@3]/2", // C5
  D: "[~@4 [g4,b4] ~@7 [g4,b4] ~@7 [g4,b4] ~@7 [g4,b4] ~@3, d5@29 ~@3]/2", E: "[g4,c5,e5] ~@7",
  F: "[~@4 [g4,b4] ~@7 [g4,b4] ~@7 [g4,b4] ~@3 [g4,b4] ~@3 [g4,b4] ~@3, f5@29 ~@3]/2", // G
  G: "[g4,c#5,e5] ~@3 [g4,c#5,e5]@6 ~@2 [g4,c#5,e5]@2 ~@2", H: "~@4 [g4,c#5,e5] ~@3 [g4,c#5,e5] ~@3 [g4,c#5,e5] ~@3",
  I: "[[f4,a4,d5] ~@11 [g4,c#5]@4 [f4,d5]@8 ~@8, ~@3 a4@3 ~@2]/2", J: "~@4 [g4,b4,f5]@3 ~",
  K: "[g4,c5,e5]@2 ~@2 [g4,c5,e5]@2 ~@6 [g4,c5,e5] ~@3", L: "~@4 [g4,c5,e5] ~@7 [g4,c5,e5] ~@3",
  M: "~@4 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3 [g4,c5,e5] ~@3", // C
  N: "[~@4 [g4,f5]@2 ~@6 [g4,f5]@2 ~@6 [g4,f5]@2 ~@6 [g4,f5] ~@3, b4@15 ~]/2", // G7
  O: "[~@4 [g4,f5]@2 ~@6 [g4,f5]@2 ~@6 [g4,f5] ~@3 [g4,f5] ~@3 [g4,f5] ~@3, b4@15 ~]/2", // G7
  P: "[g4,b4,f5] ~@3 [g4,b4,f5] ~@7 [g4,b4,f5] ~@3", Q: "~@4 [g4,b4,f5] ~@3 [g4,b4,f5] ~@3 [g4,b4,f5] ~@3",
  R: "[g4,c5,e5]@2 ~@6 c5@2 ~ b4 a#4@3 a4", S: "~@4 [c5,f5]@2 ~@2 [g4,b4,f5]@3 ~@5, g#4@3 ~@5",
  T: "~@4 [g4,c5] ~@7 [g4,c5]@2 ~@2, e5@7 ~", U: "~@2 [g4,c5] ~@3 [g4,c5] ~, e5@7 ~",
  V: "~@4 [g4,b4] ~@7 [g4,b4] ~@3, f5@7 ~", W: "~@4 [g4,f5] ~@3 [g4,f5] ~@3 [g4,f5] ~@3, b4@13 ~@3",
  X: "~@4 g4 ~@3 [g4,e5] ~@3 [g4,e5] ~@3, e5@3 ~@5", Y: "~@4 [g4,c5] ~@7 [g4,c5] ~@3, e5@7 ~",
  Z: "~@4 [g4,f5] ~@7 [g4,f5] ~@3, b4@13 ~@3", AA: "[g4,c5,e5] ~@7 [g4,b4,f5]@5 ~@3",
  AB: "[~@4 [g4,c5]@2 ~@6 [g4,c5]@2 ~@6 [g4,c5] ~@7 [g4,c5] ~@3, e5@29 ~@3]/2", AC: "~@4 [c3,c4,g4,c5,e5] ~@3",
})).s("gm_acoustic_guitar_nylon").gain(0.35)

// drums · kick
const kick = s("bd").struct("<A@14 B ~ A@10 B@2 A@2 B C A@14 B A@31 B C>".pickRestart({
  A: "x!2", B: "x", C: "~ x",
})).gain(0.21)

// drums · tambourine
const tambourine = s("tb").struct(`<
  A@7 B A@6 C ~ A@7 B A@2 D C A@2 C E A@3 B A@3 B A@3 B A@2 C F A B A B A B@3 A B A B A@3 G A@7 B A@6 C E
>`.pickRestart({
  A: "~ x ~ x", B: "~ x!3", C: "x", D: "x ~@2 x", E: "~ x", F: "~ x!2 ~", G: "x!2",
})).gain(0.26)

stack(bass, string_ensemble_2, electric_guitar_muted, acoustic_guitar_nylon, kick, tambourine)