Strudelify

cinema

James Clinton

KeyF majorTempo120 bpm
0:00/0:00
// cinema — James Clinton
// 120 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/104786; license: https://creativecommons.org/publicdomain/mark/1.0/
// note: Full arrangement: all 40 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · piccolo
const piccolo = note(`<
  [gb5 a5 d6 a5 gb5 a5 d6 a5]!2
  [a5 db6 gb6 db6 a5 db6 gb6 db6]!2
  [db6 e6 a6 e6 db6 e6 a6 e6]!2
  [ab5 b5 e6 b5 ab5 b5 e6 b5]!2
  ~@32
>`).s("gm_piccolo").gain(0.3)

// other · flute
const flute = note(`<
  [gb4 a4 d5 a4 gb4 a4 d5 a4]!2
  [a4 db5 gb5 db5 a4 db5 gb5 db5]!2
  [db5 e5 a5 e5 db5 e5 a5 e5]!2
  [ab4 b4 e5 b4 ab4 b4 e5 b4]!2
  ~@32
>`).s("gm_flute").gain(0.3)

// other · clarinet · "Bb Clarinet"
const clarinet = note("<A@2 B@2 C@2 D@2 ~@19 E F ~@2 G H ~@2 E F ~@3>".pickRestart({
  A: "gb4 a4 d5 a4 gb4 a4 d5 a4", B: "a4 db5 gb5 db5 a4 db5 gb5 db5", C: "db5 e5 a5 e5 db5 e5 a5 e5",
  D: "ab4 b4 e5 b4 ab4 b4 e5 b4", E: "~ db5 b4 db5", F: "gb4 ~", G: "~@4 gb4 a4 b4 e5", H: "db5 ~@3",
})).s("gm_clarinet").gain(0.3)

// bass · clarinet · "Bass Clarinet"
const bass = note("<A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 ~@16>".pickRestart({
  A: "d3", B: "gb3", C: "a3", D: "db3",
})).s("gm_electric_bass_finger").gain(0.3)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<~@8 A@2 B@2 C@2 D@2 E@2 ~@2 F@2 ~@18>".pickRestart({
  A: "[~@5 gb3 a3 b3@2 a3 b3@2 b3@2 gb3@2]/2", B: "[~@5 gb3 a3 b3@2 a3 b3@2 db4@2 a3@2]/2",
  C: "[~@6 gb3 b3@2 b3@2 b3@2 gb3@3]/2", D: "[~@5 gb3 a3 db4@2 b3 a3@2 db4@2 a3@2]/2",
  E: "[~@4 gb4!3 a4@2 gb4@2 gb4@2 e4@3]/2", F: "[~@4 gb4 gb4@2 a4@2 gb4@2 gb4@2 e4@3]/2",
})).s("gm_alto_sax").gain(0.5)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E@2 ~@2 F@2 ~@18>".pickRestart({
  A: "d3", B: "gb3", C: "a3", D: "db3", E: "[~@4 gb4!3 a4@2 gb4@2 gb4@2 e4@3]/2",
  F: "[~@4 gb4 gb4@2 a4@2 gb4@2 gb4@2 e4@3]/2",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note("<A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 ~@16>".pickRestart({
  A: "d2", B: "gb2", C: "a2", D: "db2",
})).s("gm_baritone_sax").gain(0.3)

// other · trumpet · "Bb Trumpet"
const trumpet = note("<~@16 A@2 ~@2 B@2 ~@2 C D E@2 C F G@2 C D H@2 C I J K>".pickRestart({
  A: "[~@4 gb4!3 a4@2 gb4@2 gb4@2 e4@3]/2", B: "[~@4 gb4 gb4@2 a4@2 gb4@2 gb4@2 e4@3]/2", C: "~@2 db5 gb4",
  D: "~@3 gb4 a4!2 gb4@2", E: "[~@2 db4 e4 gb4 e4 db4 gb4@2 e4 ~@6]/2", F: "~@2 a4 gb4",
  G: "[~@2 db4 e4 gb4 a4!2 b4@2 a4@2 ~@5]/2", H: "[~@3 db4 gb4 e4 db4 gb4@2 e4 ~@6]/2", I: "~@2 gb4!2 a4!2 gb4@2",
  J: "~@3 gb4 a4!3 ~", K: "~@3 gb5 a5!3 ~",
})).s("gm_trumpet").gain(0.5)

// other · french horn · "F Mellophone"
const french_horn = note("<~@8 A@2 B@2 C@2 D@2 E@2 F@2 G@2 H@2 I J K@2 I L M@2 I J N@2 I O P@2>".pickRestart({
  A: "[~@5 gb3 a3 b3@2 a3 b3@2 b3@2 gb3@2]/2", B: "[~@5 gb3 a3 b3@2 a3 b3@2 db4@2 a3@2]/2",
  C: "[~@6 gb3 b3@2 b3@2 b3@2 gb3@3]/2", D: "[~@5 gb3 a3 db4@2 b3 a3@2 db4@2 a3@2]/2",
  E: "[~@4 gb4!3 a4@2 gb4@2 gb4@2 e4@3]/2", F: "[~@6 a3 b3@2 b3 a3 b3 db4@2 a3@2]/2",
  G: "[~@4 gb4 gb4@2 a4@2 gb4@2 gb4@2 e4@3]/2", H: "[~@3 gb4!2 a4@2 b4@2 a4 b4!2 b4@2 a4@2]/2", I: "~@2 db4 gb4",
  J: "~@3 gb4 a4!2 gb4@2", K: "[~@2 db4 e4 gb4 e4 db4 gb4@2 e4 ~@6]/2", L: "~@2 a4 gb4",
  M: "[~@2 db4 e4 gb4 a4!2 b4@2 a4@2 ~@5]/2", N: "[~@3 db4 gb4 e4 db4 gb4@2 e4 ~@6]/2", O: "~@2 gb4!2 a4!2 gb4@2",
  P: "~@3 gb4 a4!3 ~",
})).s("gm_french_horn").gain(0.5)

// other · trombone
const trombone = note("<A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 E F G H E F G H E F G H E F G I>".pickRestart({
  A: "d3", B: "gb3", C: "a3", D: "db3", E: "d2", F: "e2", G: "gb2", H: "gb2 e2", I: "db3 ~@3",
})).s("gm_trombone").gain(0.3)

// bass · tuba · "Euphonium"
const bass_2 = note("<A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A E B F A E B F A E B F A E B G>".pickRestart({
  A: "d3", B: "gb3", C: "a3", D: "db3", E: "e3", F: "gb3 e3", G: "db3 ~@3",
})).s("gm_tuba").gain(0.3)

// other · tuba · "C Tuba"
const tuba = note("<A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A@2 B@2 C@2 D@2 A E B F A E B F A E B F A E B G>".pickRestart({
  A: "d2", B: "gb2", C: "a2", D: "db2", E: "e2", F: "gb2 e2", G: "gb2 ~@3",
})).s("gm_tuba").gain(0.3)

stack(piccolo, flute, clarinet, bass, alto_sax, tenor_sax, baritone_sax, trumpet, french_horn, trombone, bass_2, tuba)