Strudelify

Coronation Street

Television Theme Songs

KeyA♭ majorTempo78 bpm
0:00/0:00
// Coronation Street — Television Theme Songs
// 78 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 18 bars on a 24-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 · piano · "Ac Piano"
const piano = note("<A B C D E F G H A B C D E F G ~@3>".pickRestart({
  A: "ab2@6 ~@4 c4@2 c4 ~ c4@2 ~@6 ab2@2, eb4!2, c4@5 ~ f3@4 f3@2, g3@8 g3@5 ~@3 c4@8, ~@3 ab2@3 ab2@3 ab2@2 ~",
  B: "~@6 [bb3,f4]@2 ~@3 db3, f3@2 [bb3,f4], db3@3 db3@2 db3@4 db3@2 ~, ~ c4@5, ~@2 f4 ~ f3!2", // Bb5
  C: "[gb2,ab3,bb3,e4]@10 [ab3,bb3,e4] ~ gb2@4 ~@2 gb2@2 ~@2 gb2 ~, ~@8 bb3@3 ~, ~@4 ab3!2", // Gb7 Bbm7b5
  D: "[b2,gb3]@4 ~@2 b2@3 ~@3 [gb3,a3,eb4] ~@3 gb3@2 b2@2 gb3@2 b2@2, [bb3,eb4]@9 ~@7 [a3,eb4]@5 ~@3, ~@4 gb3@6 b2@7 ~@7", // B5 Ebdim Eb5 Adim
  E: "[gb3,ab3]@3 ~ [gb3,ab3,d4] ~@5 gb3@5 ~ gb3@2 e2@2 gb3 ~ eb2 ~, e2@2 ~, ~@10 [ab3,d4]@11 ~@3", // Gbsus2 Abm7b5 Abdim
  F: "~@4 [bb3,db4] ~@13 eb2@2 ~@2 eb2@2, eb2@16 eb4@7 ~, ~@10 [bb3,db4]@13 ~", // Bbm
  G: "~@10 ab2 ~@5 [eb3,c4] ~@5 a2 ~, ab2@8 ~@4 a2@9 ~@3, ~ [eb3,c4] ~@2", H: "[eb3,db4] ~@23, bb2 ~@11",
})).s("gm_piano").gain(0.35)

// bass · acoustic bass · "El Bass"
const bass = note("<A B C D E F G H A B C D E F G I J@2>".pickRestart({
  A: "ab2@5 ~ eb2@6 ab1@5 ~ c2@5 ~", B: "db2@5 ~ ab2@5 ~ db3@5 ~ db2@5 ~", C: "gb2@5 ~ db2@5 ~ bb1@6 gb2@6",
  D: "b1@6 eb2@5 ~ gb2@5 ~ b2@5 ~", E: "e2@5 ~ e2@5 ~ b2@5 ~ e2@5 ~", F: "eb2@5 ~ eb2@6 bb2@6 eb2@5 ~",
  G: "ab2@5 ~ ab2@5 ~ a2@5 ~ a2@5 ~", H: "bb2@18 eb2@5 ~", I: "bb2@5 ~ eb2@18", J: "[~@2 ab2@27 ab1 ~@18]/2",
})).s("gm_acoustic_bass").gain(0.48)

// chords · french horn · "Fr Horn"
const french_horn = note("<A B C D E@2 F@2 A B C D E@2 G@2 H@2>".pickRestart({
  A: "[g3,c4,eb4]@11 ~ [gb3,c4,eb4]@12", B: "[f3,ab3,bb3,db4]@8 ~@2 [f3,ab3,bb3,db4] ~@5 [f3,ab3,bb3,db4]@7 ~",
  C: "f3@10 ~@2 [bb3,db4]@11 ~, [bb3,db4] ~, ~@5 e3@6 ~", // Bbm
  D: "[eb3,gb3,ab3,b3]@9 ~ [eb3,gb3,ab3,b3] ~@5 [eb3,gb3,ab3,b3]@8", E: "[[gb3,ab3,d4]@11 [g3,db4]@13]/2",
  F: "[[eb3,c4]@11 ~ c4@10 [g3,db4]@26, ~@3 gb3@2 ~@7]/2", // Cm Gdim
  G: "[[eb3,c4]@11 ~ c4@10 [g3,db4]@8 ~@6 [g3,db4] ~@3 [gb3,c4] ~@2 [g3,db4] ~@4, ~@3 gb3@2 ~@7]/2", // Cm Gdim Gbdim Gdim
  H: "[~@2 [eb3,c4]@27 ~@19]/2", // Cm
})).s("gm_french_horn").gain(0.4)

// other · clarinet
const clarinet = note("<A B C D E@2 F G H I J K E@2 F L M@2>".pickRestart({
  A: "eb4@5 gb4@7", B: "f4@11 ~ f5@2 ab5@2 f5@8", C: "db4@9 ~ e4@14", D: "eb4@11 ~ eb5@2 gb5@2 eb5@8",
  E: "[d5@18 ~@4 db5@15 ~@11]/2", F: "eb4@11 ~ gb4@3 ~ gb4 ~@5 g4 ~",
  G: "~@4 bb4@2 c5@3 ~ db5@2 g4@3 ~ bb4@2 f4@3 ~ eb4@2", H: "g4@11 ~ gb4@12", I: "f4@7 ~@5 f5@2 ab5@2 f5@8",
  J: "db4@11 ~ e4@12", K: "eb4@5 ~ eb5 gb5 eb5@4", L: "~@12 bb4 ~@3 a4 ~@2 g4 ~@3 db5", M: "[~ ab4@14 ~@9]/2",
})).s("gm_clarinet").gain(0.31)

stack(piano, bass, french_horn, clarinet)

More by Television Theme Songs