Strudelify

summertime

RP

KeyG minorTempo92 bpm
0:00/0:00
// summertime — RP
// 92 bpm, 4/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5855018; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 53 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(92/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 · clarinet · "Clarinetto in Si♭"
const clarinet = note(`<
  A B@2 C@2 D@2 E F G@2 H I J K L@2 M N ~@6 O P ~@4 Q R S@5 T U V W X S@3 Y Z AA AB R ~ AC
>`.pickRestart({
  A: "~@2 d5 bb4", B: "[d5@10 c5 bb4 c5 d5 bb4@2]/2", C: "[g4@2 d4@4 d5 bb4]/2", D: "[c5@2 c5@8 bb4 g4 bb4 g4 bb4@2]/2",
  E: "a4 ~@7", F: "~@5 d5@2 bb4", G: "[d5 d5@9 c5 bb4 c5 d5 bb4@2]/2", H: "g4 d4", I: "~@2 gb4 d4",
  J: "f4@2 d4 f4 g4@2 bb4@2", K: "d5 c5@3 bb4@4, db5 ~@15", L: "[g4 g4@4 ~ gb4@2]/2", M: "g4!2", N: "g4 ~", O: "~ db4",
  P: "d4 ~@3", Q: "~ d4", R: "e4 eb4", S: "e4 gb4", T: "e4@2 gb4 e4", U: "eb4@6 g4@7 gb4 ~ f4", V: "eb4@2 d4 db4",
  W: "gb4 db4", X: "~@3 gb4", Y: "bb3@3 c4 d4 e4 ~ gb4@5 ~@4", Z: "d4@2 d4 f4", AA: "c4 eb4", AB: "d4",
  AC: "d4 e4 a4 bb4 d5@4, ~@8 db5 ~@7",
})).s("gm_clarinet").gain(0.3)

// other · trombone
const trombone = note(`<
  A B@2 C@2 D@2 E F G@2 H I J K L@2 M N ~@6 O P ~@4 Q R S@5 T U V W X S@3 Y Z AA AB R ~ AC
>`.pickRestart({
  A: "~@2 d4 bb3", B: "[d4@10 c4 bb3 c4 d4 bb3@2]/2", C: "[g3@2 d3@4 d4 bb3]/2", D: "[c4@2 c4@8 bb3 g3 bb3 g3 bb3@2]/2",
  E: "a3 ~@7", F: "~@5 d4@2 bb3", G: "[d4 d4@9 c4 bb3 c4 d4 bb3@2]/2", H: "g3 d3", I: "~@2 gb3 d3",
  J: "f3@2 d3 f3 g3@2 bb3@2", K: "d4 c4@3 bb3@4, db4 ~@15", L: "[g3 g3@4 ~ gb3@2]/2", M: "g3!2", N: "g3 ~", O: "~ db3",
  P: "d3 ~@3", Q: "~ d3", R: "e3 eb3", S: "e3 gb3", T: "e3@2 gb3 e3", U: "eb3@6 g3@7 gb3 ~ f3", V: "eb3@2 d3 db3",
  W: "gb3 db3", X: "~@3 gb3", Y: "bb2@3 c3 d3 e3 ~ gb3@5 ~@4", Z: "d3@2 d3 f3", AA: "c3 eb3", AB: "d3",
  AC: "d3 e3 a3 bb3 d4@4, ~@8 db4 ~@7",
})).s("gm_trombone").gain(0.3)

// other · trombone
const trombone_2 = note(`<
  A B@2 C D E@2 F G B@2 H ~ I J K@2 J C L@3 M N O P Q L@3 R ~@3 S T U V@2 W X Y@2 Z AA AB@2 AC AD AE@2 ~@2
>`.pickRestart({
  A: "~ d4", B: "[d4@3 d4]/2", C: "d4 ~", D: "~@2 d4!2", E: "[eb4@5 d4!2 db4]/2", F: "d4 gb4@3 g4@4", G: "~@5 d4@3",
  H: "d4", I: "d4!2", J: "e4 eb4", K: "[d4@5 ~ d4@2]/2", L: "e3 gb3", M: "e3@2 gb3 e3",
  N: "eb3@5 f3 ~ gb3 g3@5 ab3 ~ a3", O: "eb3!2 d3 db3", P: "~ a2 d3 db3 c3 a2 e3 eb3", Q: "d3@4 ~ c3@3",
  R: "bb3@3 c4 d4 e4 ~ gb4@5 ~@4", S: "~@5 d4!2 bb3", T: "d4 d4@3", U: "~ d4 c4 bb3 c4 d4 bb3@2",
  V: "[g3@2 d3@4 d4 bb3]/2", W: "c4 c4@2 c4@5", X: "~@2 bb3 g3 bb3 g3 bb3@2", Y: "[a3@24 ~@2 d4@2 g4@2 b3 [a3,bb3]]/2",
  Z: "d4@2 g4 gb4 f4 ~ e4 eb4 d4@8", AA: "~@2 c4 bb3 c4 d4 bb3@2", AB: "[g3@2 d3@4 ~ d3]/2",
  AC: "f3@2 d3 f3 g3@2 bb3@2", AD: "d4 c4@3 bb3@4", AE: "g3/2",
})).s("gm_trombone").gain(0.2)

// other · trombone
const trombone_3 = note(`<
  A B@3 C D E F G B@3 H I J K@2 J L B@3 M N O P Q B@3 R S T I ~ B@3 U V T W X B@3 R Y@2 Z O T@2
>`.pickRestart({
  A: "~ c4", B: "bb3 c4", C: "bb3@2 c4 bb3", D: "g3@8 g3@3 ab3@2 a3@3", E: "bb3 g3!3", F: "gb3 a3 d4 db4 c4 a3 e4 eb4",
  G: "d4@5 c4@3", H: "g3 bb3", I: "bb3", J: "c4 bb3", K: "[bb3@5 ~ bb3@2]/2", L: "bb3 gb3", M: "bb3@2 a3 g3",
  N: "g3@5 ab3 ~ a3 bb3@5 f3 ~ eb3", O: "g3!2", P: "gb3 g3", Q: "gb3@2 ~@3 gb3@3", R: "bb3@3 c4 d4 e4 ~ d4@5 bb3@4",
  S: "eb4 c4 bb3 a3 g3@2 g3@2", T: "g3", U: "bb3@2 c4 g3", V: "g3@6 bb3@7 a3 ~ ab3", W: "~ a3 d4 db4 c4 a3 e4 eb4",
  X: "d4@2 ~ c4", Y: "[eb4 c4 bb3 a3 g3@12]/2", Z: "~@2 c4 bb3 c4 d4 bb3@2",
})).s("gm_trombone").gain(0.2)

// bass · tuba
const bass = note(`<
  A B C B D E@2 F G B C B H I J K@2 J L B@3 D M N F O B@3 H P J L@2 B@3 D Q R S T B@3 H U V W M W X
>`.pickRestart({
  A: "~ d2", B: "g2 a2", C: "g2@2 a2 d2", D: "g2@2 a2 g2", E: "[c2@5 eb2!2 a2]/2", F: "d2 a1", G: "d2@4 a2 ab2@3",
  H: "g2 c2", I: "f2@2 bb2 a2 g2@4", J: "c2 f2", K: "[g2@5 ~@3]/2", L: "g2 d2", M: "c2", N: "eb2",
  O: "d2!2 b1 bb1 a1 ab2@3", P: "f2@2 bb2 g2", Q: "c2@3 eb2 eb2@4", R: "eb2!4", S: "d2@2 b2 bb2 a2 ~ ab2@2",
  T: "d2@5 ~ ab2@2", U: "f2@4 bb2 a2 g2 f2", V: "e2 f2", W: "g2", X: "g1",
})).s("gm_tuba").gain(0.3)

stack(clarinet, trombone, trombone_2, trombone_3, bass)

More by RP