Strudelify

misc

Misc

KeyE minorTempo120 bpm
0:00/0:00
// misc — Misc
// 120 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 5/4 at bar 29, 4/4 at bar 30, 5/4 at bar 35, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5905052; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 76 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 · [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.

// other · flute
const flute = note(`<
  ~@3 A B C D E B C D F B C D F B C D@2 F B C D G ~@3 H I J ~@3 K L M ~@16 N ~@15 O P O P Q@2 R
>`.pickRestart({
  A: "~@4 e5 b4 e5 b4", B: "e5 b4 c5 b4 e5 b4 e5 b4", C: "e5 b4 c5 b4 e4 b4 e4 b4", D: "e4 b4 c5 b4 e4 b4 e4 b4",
  E: "e4 ~@3 e5 b4 e5 b4", F: "e4 b4 c5 b4 e5 b4 e5 b4", G: "e4 b4 c5 b4 ~@4", H: "~@8 [e4,e5]@3 ~@3 [e4,e5]@2",
  I: "~@4 [e4,e5] ~ [e4,e5] ~ f5 e5 d5 f5 [e4,e5]@3 ~", J: "~@2 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~@5",
  K: "~@12 [e4,e5]@3 ~", L: "~@2 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~ f5 e5 d5 f5",
  M: "[e4,e5]@3 ~@3 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~", N: "[e4,e5]@8 [e4,e5]@3 [e4,e5]@3 [e4,e5]@2",
  O: "e5!2 b4@2 e4!2 a4 b4 e5!2 b4!2 d5 c5 a4 b4", P: "e5!2 b4@2 e4!2 b4@2 e5!2 b4@2 c5!2 b4!2", Q: "[e4,e5]@15 ~",
  R: "[e4,e5]@8 [e4,e5]@3 [e4,e5]@3 [e4,e5] ~", // E
})).s("gm_flute").gain(0.2)

// other · clarinet · "B♭ Clarinet"
const clarinet = note(`<
  ~@15 A B@3 ~ A B@3 ~@3 C@2 D@2 ~@2 E@2 F G ~@6 H I@2 J H I@2 J K@3 ~@5 H L M K ~@2 H I@2 J H I@2 J K@3
>`.pickRestart({
  A: "~@2 f4 a4", B: "[g4@4 f4@4 d4@4 e4@8 ~@2 a4 [f4,g4] e4@16 ~@8]/3", C: "[~@2 e3@3 e3 f3 a3]/2",
  D: "[g3 f3 d3 e3@2 ~@3]/2", E: "[~@3 e3@3 e3 f3]/2", F: "a3 g3 f3 d3", G: "e3 ~", H: "e3@3 e3",
  I: "[f3@2 a3@2 g3@2 f3@3 d3 e3@4 e3@2]/2", J: "c4 b3 a3 d3", K: "e3", L: "f3 a3 g3 f3", M: "d3@4 e3@8 ~@2 a3 [f3,g3]",
})).s("gm_clarinet").gain(0.45)

// other · alto sax · "Alto Saxophone"
const alto_sax = note("<~@28 A B C ~@3 D E F ~@24 G H ~@6 I@4 ~@2 J>".pickRestart({
  A: "~@8 [e4,e5]@3 ~@3 [e4,e5]@2", B: "~@4 [e4,e5] ~ [e4,e5] ~ f5 e5 d5 f5 [e4,e5]@3 ~",
  C: "~@2 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~@5", D: "~@12 [e4,e5]@3 ~",
  E: "~@2 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~ f5 e5 d5 f5", F: "[e4,e5]@3 ~@3 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~",
  G: "~@14 a3 [f3,g3]", H: "e3", I: "~ e5 ~ e5 ~ e5 ~ e5", J: "[e4,e5]@8 [e4,e5]@3 [e4,e5]@3 [e4,e5] ~",
})).s("gm_alto_sax").gain(0.4)

// other · french horn · "Horn in F"
const french_horn = note(`<
  ~@3 A@4 B@4 C@5 D@3 E@2 D@3 ~@3 E@2 F@2 ~@2 G@2 H I ~@6 J K@2 L J K@2 L M@2 N ~@5 J O P M ~@2 J K@2 L J K@2 L M@2 Q
>`.pickRestart({
  A: "[~ e4@2 e4@2 e4@2 ~]/4", B: "[~@2 e4@4 e4@4 e3@3 e3 f3 a3]/4",
  C: "[g3@4 f3@4 d3@4 e3@12 d3@4 e3@8 ~@2 a3 f3 e3@12 ~@4 e3@12 e3@4 f3@4 a3@4]/5", D: "[g3 f3 d3 e3@3 e3@4 ~@2]/3",
  E: "[~@2 e3@3 e3 f3 a3]/2", F: "[g3 f3 d3 e3@2 ~@3]/2", G: "[~@3 e3@3 e3 f3]/2", H: "a3 g3 f3 d3", I: "e3 ~",
  J: "e3@3 e3", K: "[f3@2 a3@2 g3@2 f3@3 d3 e3@4 e3@2]/2", L: "c4 b3 a3 d3", M: "e3", N: "e4@8 e4@3 e4@3 e4@2",
  O: "f3 a3 g3 f3", P: "d3 e3@3", Q: "[e4,e5]@8 [e4,e5]@3 [e4,e5]@3 [e4,e5] ~",
})).s("gm_french_horn").gain(0.45)

// other · trumpet · "B♭ Trumpet"
const trumpet = note(`<
  ~@6 A B ~@6 C@2 ~@2 D@3 ~@2 E@2 F G F G H I J K J K L M ~@13 N O@2 P ~@15 Q@3 R O@2 P
>`.pickRestart({
  A: "~@4 e4 b4 e4 b4", B: "e4 ~@7", C: "[~@8 [e4,e5] ~ [e4,e5]@12 [e4,e5] ~@9]/2",
  D: "[~@8 [e4,e5] ~ [f4,f5]@12 [e4,e5] ~ [e4,e5] ~ [e4,e5]@12 [e4,e5] ~@9]/3", // E F E
  E: "[~@8 [e4,e5] ~ [f4,f5]@12 [e4,e5] ~ [e4,e5]@3 ~@3 [e4,e5]@2]/2", F: "~@4 [e4,e5] ~ [e4,e5] ~@9",
  G: "~@8 [e4,e5]@3 ~@3 [e4,e5]@2", H: "~@4 [e4,e5] ~ [e4,e5] ~ f5 e5 d5 f5 [e4,e5]@3 ~",
  I: "~@2 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~ [e4,e5]@3 ~", J: "~@2 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~@5",
  K: "~@12 [e4,e5]@3 ~", L: "~@2 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~ f5 e5 d5 f5",
  M: "[e4,e5]@3 ~@3 [e4,e5]@3 ~@3 [e4,e5] ~ [e4,e5] ~", N: "~@8 e4@3 e4@3 e4@2", O: "[e4,e5]",
  P: "[e4,e5]@8 [e4,e5]@3 [e4,e5]@3 [e4,e5]@2", Q: "~ e5 ~ e5 ~ e5 ~ e5",
  R: "~@2 e5@2 ~@2 e5@2 [e4,e5]@3 [d4,e5]@3 [e4,e5]@2", // E Dsus2 E
})).s("gm_trumpet").gain(0.4)

// other · trombone
const trombone = note("<~@24 A@2 B@6 C@4 D ~@6 E F@2 G E F@2 G H@3 ~@11 E F@2 G E F@2 G H@2 I>".pickRestart({
  A: "[~@2 e2@3 e2 f2 e2]/2", B: "[f2 d2 e2@4 e2@3 ~ e2@3 e2 d2 e2@2 ~@2 e2@3 e2 f2]/6",
  C: "[e2 f2 d2 e2@4 e2@3 ~ e2@3 e2 d2]/4", D: "e2 ~", E: "e3@3 e3", F: "[f3@2 a3@2 g3@2 f3@3 d3 e3@4 e3@2]/2",
  G: "c4 b3 a3 d3", H: "e3", I: "e2",
})).s("gm_trombone").gain(0.3)

// bass · tuba
const bass = note("<~@24 A@2 B@6 C@4 D E@14 ~@3 E@19 F ~ G>".pickRestart({
  A: "[~@2 e2@3 e2 f2 e2]/2", B: "[f2 d2 e2@4 e2@3 ~ e2@3 e2 d2 e2@2 ~@2 e2@3 e2 f2]/6",
  C: "[e2 f2 d2 e2@4 e2@3 ~ e2@3 e2 d2]/4", D: "e2 ~", E: "~ e2!2 ~ e2!2 ~ e2", F: "e3", G: "e2",
})).s("gm_tuba").gain(0.5)

// other · timpani
const timpani = note("<~@14 A@2 ~@3 B@2 ~@3 C ~ D ~ E F G ~ H ~ I ~ J@15 ~@3 J@19 K@2 L>".pickRestart({
  A: "[~@4 e3 e3@4 ~@2 e3 ~@4]/2", B: "[e2!6 ~@2 e3@2 e3@8 ~@4 e3@2 ~@8]/2", C: "e2!6 ~@2 e2@4 ~@4", D: "~ d2 e2 ~",
  E: "a2 d2 e2 ~", F: "~@7 e2", G: "e2 ~ e2!2 ~ e2 e2@2", H: "~@2 d2 e2", I: "~ a2 d2 e2", J: "~ e2!2 ~ e2!2 ~ e2",
  K: "~@8 e2!6 ~@2", L: "~@8 e2!7 ~",
})).s("gm_timpani").gain(0.5)

// other · timpani · soft notes
const timpani_soft = note("<~@18 [~@8 e2!8] ~@4 [~@8 e2!8] ~@49 [e2!8 ~@8]!3>").s("gm_timpani").gain(0.2)

// other · vibraphone
const vibraphone = note(`<
  ~@7 A@3 ~@2 B ~@4 B ~@4 B ~ C B C D C E@3 F@2 G@2 H ~@2 I@12 ~@4 I@2 J K L@4 J K I@4 J K J K M N O
>`.pickRestart({
  A: "[~ e4@2 e4@2 ~]/3", B: "b4@3 b4@2 b4@3 ~@8", C: "~@8 b4@3 b4@2 b4@3", D: "b4@3 b4 ~ b4@3 ~@8",
  E: "[b4@3 b4@2 b4@3 ~@4 b4@3 b4@2 b4@3 b4@3 b4@2 b4@3 b4@3 b4@2 b4@3 b4@3 b4@2 b4@3 ~@4]/3",
  F: "[~@12 b4@3 b4@2 b4@3 b4@3 b4 ~ b4@3 ~@4]/2", G: "[~@12 b4@3 b4@2 b4@3 b4@3 b4@2 b4@3 ~@4]/2",
  H: "b4@3 b4@2 b4@3 b4@3 b4@2 b4@3", I: "e4 b4 e4 b4 e4 b4 c5 b4", J: "e5!2 b4@2 e5@2 b4@2 e5!2 b4!2 d5 c5 a4 b4",
  K: "e5!2 b4@2 e4!2 b4@2 e5!2 b4@2 c5!2 b4!2", L: "e5 b4 e5 b4 e5 b4 c5 b4", M: "[e4,e5] [e4,e5]@7",
  N: "[f4,f5] [e4,e5]@7", O: "[e4,e5]@2 [e4,e5]@4 ~@2 [e4,e5]@3 [e4,e5]@3 [e4,e5]@2",
})).s("gm_vibraphone").gain(0.4)

// drums · kick
const kick = s("bd").struct("<~@24 A ~ B ~ C D E ~ F ~ G H I@15 J K L I@19 J K M>".pickRestart({
  A: "~@8 x!3 ~@5", B: "~@4 x ~@3 x!3 ~@5", C: "~@8 x!2 ~@4 x!2", D: "~@4 x ~ x ~ x!7 ~",
  E: "x ~ x!3 ~ x ~ x ~ x ~ x!3 ~", F: "~@8 x ~@3 x!3 ~", G: "~@12 x!2 ~@2", H: "~@2 x!2 ~@4 x ~ x ~ x!4",
  I: "x!3 ~ x ~ x!3 ~ x ~ x ~ x ~", J: "x!3 ~@5 x ~@7", K: "x!3 ~@5 x ~ x ~@5", L: "x!3 ~@5 x!3 ~@5",
  M: "x ~ x ~ x ~ x ~ x!7 ~",
})).gain(0.5)

// drums · kick · soft notes
const kick_soft = s("bd").struct("<~@12 A B@2 C D E B F C D E B G ~@51>".pickRestart({
  A: "~@3 x!2 ~@3", B: "~@4 x!2 ~@2", C: "~@3 x!4 ~", D: "~@2 x ~@2 x ~@2 x ~ x ~@5", E: "~@2 x ~ x!2 ~@2",
  F: "~@3 x!3 ~@2", G: "~@3 x ~@4",
})).gain(0.3)

// drums · rim
const rim = s("rim").struct("<~@6 [~@2 x!2] ~@69>").gain(0.3)

// drums · snare
const snare = s("sd").struct("<~@6 A B ~@16 C ~ D ~ E F G ~ H ~ I J K@14 L M@3 K@18 L M@2 N>".pickRestart({
  A: "~@5 x ~ x", B: "x", C: "~@8 x!3 ~@5", D: "~@3 x!2 ~@2 x!4 ~@5", E: "~@3 x!2 ~@2 x!2 ~@5 x ~", F: "~@4 x!3 ~ x!8",
  G: "x!11 ~ x!3 ~", H: "~@7 x!2 ~@2 x!4 ~", I: "~@7 x!2 ~@2 x!2 ~@3", J: "~@2 x ~@5 x!3 ~ x!4", K: "x!15 ~", L: "x!16",
  M: "x!3 ~@13", N: "x!3 ~@3 x!3 ~ x!2 ~ x!2 ~",
})).gain(0.3)

// drums · tambourine
const tambourine = s("tb").struct("<~@29 A B ~@5 C@15 ~@3 C@19 ~@2 D>".pickRestart({
  A: "~@3 x", B: "x!2 ~ x!2 ~@3", C: "x ~ x!2 ~ x!2 ~", D: "x!9 ~@2 x ~@2 x ~",
})).gain(0.5)

// drums · tambourine · soft notes
const tambourine_soft = s("tb").struct(`<
  ~
  [~@2 x!2]
  [x ~ x!3 ~ x ~]!5
  [x ~ x!2]
  [x ~ x!3 ~ x ~]!16
  [x ~ x!2 ~@4]
  ~@51
>`).gain(0.2)

// drums · triangle
const triangle = s("triangles:35").struct("<~@24 A ~ B ~@3 C ~ D ~@5 E ~@15 E ~@4 E@6 ~@10 F>".pickRestart({
  A: "~ x", B: "~ x!2 ~", C: "~@3 x", D: "~@2 x!2", E: "x!3 ~", F: "x",
})).gain(2.59)

// drums · triangle · soft notes
const triangle_soft = s("triangles:35").struct("<~@2 A@4 ~@2 A@6 B A@3 B@2 A@3 B A ~@51>".pickRestart({
  A: "~@3 x ~@4", B: "~@3 x!2 ~@3",
})).gain(1.73)

stack(
  flute, clarinet, alto_sax, french_horn, trumpet, trombone, bass, timpani, timpani_soft, vibraphone, kick, kick_soft,
  rim, snare, tambourine, tambourine_soft, triangle, triangle_soft
)

More by Misc