Strudelify

The Adventures of Tintin theme

Ray Parker Jim Morgan and Tom Szczesniak

KeyC minorTempo140 bpm
0:00/0:00
// The Adventures of Tintin theme — Ray Parker Jim Morgan and Tom Szczesniak
// 140 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5955109; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 47 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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
const piano = note(`<
  A@2 B C D E F G H I J K L M N O P Q@2 R S T U R V W@2 X Y Z AA AB AC AD@2 AE AF AG ~@2 AH ~ AI@5
>`.pickRestart({
  A: "[g1@15 ~]/2", B: "a1 ~@6 e1", C: "a1 ~@3", D: "a1 [a2,e3] ~ [a2,e3]!3 ~ e1",
  E: "a1 [a2,e3] ~ [a2,e3]!3 ~ [a2,e3]", F: "[ab2,b2,eb3]!2 ~ [ab2,b2,eb3]!3 ~@2",
  G: "[ab2,b2,eb3]!2 ~ [ab2,b2,eb3]!3 ~ [a1,c2,e2,a2]", H: "[a1,d2,a2]!2 ~ [a1,d2,a2]!3 ~ [a1,d2,a2]",
  I: "[a1,d2,a2]!2 ~ [a1,d2,a2]!3 ~@2", J: "a1 ~@2 [a2,c3]!3 ~ e1", K: "a1 [a2,c3,e3] ~ [a2,c3,e3]!3 ~ e1",
  L: "a1 [a2,c3,e3] ~ [a2,c3,e3]!3 ~@2", M: "~ [g2,c3,eb3] ~ [g2,c3,eb3]!3 ~@2",
  N: "c2 [g2,c3,eb3] ~ [g2,c3,eb3]!3 ~ [g2,c3,eb3]", O: "[f2,bb2,d3]!2 ~ bb1!3 ~ f1",
  P: "~ [f2,bb2,d3] ~ [f2,bb2,d3]!3 ~@2", Q: "~ [eb2,ab2,c3,eb3] ~ [eb2,ab2,c3,eb3]!3 ~@2",
  R: "[c2,eb2,g2,c3]!2 ~ [c2,eb2,g2,c3]!3 ~ g1", S: "c2 [c2,eb2,g2,c3] ~ [c2,eb2,g2,c3]!3 ~ g1",
  T: "[ab2,c3,eb3]!2 ~ [ab2,c3,eb3]!3 ~ eb1", U: "~ [ab2,b2,eb3] ~ [ab2,b2,eb3]!3 ~ ab1",
  V: "c2 [c2,eb2,g2,c3] ~ [c2,eb2,g2,c3]!3 ~ [c2,eb2,g2,c3]", W: "[b1,eb2,ab2]!2 ~ [b1,eb2,ab2]!3 ~ [b1,eb2,ab2]",
  X: "[bb1,eb2,g2]!2 ~ [bb1,eb2,g2]!3 ~ [bb1,eb2,g2]", Y: "[bb1,eb2,g2]!2 ~ [bb1,eb2,g2]!3 ~@2",
  Z: "eb1 [g2,bb2,f3] ~ [g2,bb2,f3]!3 ~ [bb0,bb1]", AA: "[eb1,eb2] [g2,bb2,f3] ~ [g2,bb2,f3]!3 ~ [g2,bb2,f3]",
  AB: "[f2,a2,c3,f3]!2 ~ [f2,a2,c3,f3]!3 ~ c2", AC: "f2 [f2,a2,c3,f3] ~ [f2,a2,c3,f3]!3 ~ [c1,c2]",
  AD: "[bb1,eb2,gb2,bb2]!2 ~ [bb1,eb2,gb2,bb2]!3 ~ [bb1,eb2,gb2,bb2]", AE: "[f2,bb2]!2 ~ [f2,bb2,d3]!3 ~ [f2,bb2,d3]",
  AF: "[f2,bb2,eb3]!2 ~ [f2,bb2,eb3]!3 ~ [f2,bb2,eb3]", AG: "[f2,d3] ~@3", AH: "bb0@15 ~",
  AI: "[~ bb1@2 f2@2 bb2@2 ~ c3@2 d3@27 ~ c2@2 g2@2 ~ c3@2 d3@2 e3@27 ~@6]/5",
})).s("gm_piano").gain(0.3)

stack(piano)