Strudelify

Misc Tunes

Misc tunes

KeyE♭ majorTempo145 bpm
0:00/0:00
// Misc Tunes — Misc tunes
// 145 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 2, 2/4 at bar 24, 4/4 at bar 25, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 12 "Saw (Bass)" named as a bass, played on electric bass finger (its lead 5 charang patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/2793591; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 66 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(145/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.

// bass · electric bass finger · "Saw (Bass)"
const bass = note(`<
  A B C D A B E@2 F G@2 H G@2 I@2 J A K@2 J L J M@2 N@2 O P Q R Q S A B C D A B E@2 F G@2 H G@2 I@2 J A K@2 J L J M@2
  N@2 O P Q R Q S
>`.pickRestart({
  A: "c3!16, c2", B: "ab2!16, ab1", C: "bb2!12 c3!2 d3!2, bb1@6 c2 d2", D: "eb3!8 d3!8, eb2 d2",
  E: "[bb2!16 bb2!16, bb1]/2", F: "[bb2,c3] c3!15, c2", G: "[eb3!8 ab2!8 ab2!8 bb2!8, eb2 ab1@2 bb1]/2",
  H: "c3!14 d3!2, c2@7 d2", I: "[c3!16 c3!16, c2]/2", J: "e3!16, e2", K: "[a2!16 a2!16, a1]/2", L: "c3!8 d3!8, c2 d2",
  M: "[d3!8 f3!8 f3!8 db3!8, d2 f2@2 db2]/2", N: "[eb3!8 f3!8 f3!8 eb3!8, eb2 f2@2 eb2]/2", O: "g3!16, g2",
  P: "g2!16, g1", Q: "c2 c2@5 ~ eb2", R: "c2 c2@5 ~ g2", S: "c2 c2@5 ~ bb2",
})).s("gm_electric_bass_finger").gain(0.4)

// bass · electric bass finger · "Saw (Bass)" · soft notes
const bass_soft = note(`<
  A B C D E B C D F G F G F G H ~ I J K L M J K N O P Q R S A T E T A B C D E B C D F G F G F G H ~ I J K L M J K N O P
  Q R S A T E T
>`.pickRestart({
  A: "~@2 c5 ~@2 c5 db5 ~ c5 ~@2 c5 ~@2 bb4 ~", B: "eb5 ~ c5 ~@2 c5 ~@2 c5 ~@2 c5!2 ~ eb5 ~",
  C: "c5 ~ bb4 ~@2 bb4 c5 ~ bb4 ~@2 bb4 ~@2 c5 ~", D: "~@2 bb4 ~@2 bb4 ~@2 c5 ~@2 bb4 c5 ~ d5 ~",
  E: "bb4 ~ c5 ~@2 c5 db5 ~ c5 ~@2 c5 ~@2 bb4 ~", F: "bb4 ~ c5 ~@2 c5 ~@2 c5 ~@2 c5 ~@2 bb4 ~",
  G: "eb5 ~ c5 ~@2 c5 ~@2 c5 ~@2 c5 ~@2 d5 ~", H: "bb4 ~ c5 ~@13", I: "~@2 b4 ~@2 b4 c5 ~ b4 ~@2 b4 ~@2 a4 ~",
  J: "d5 ~ b4 ~@2 b4 ~@2 c5 ~@2 c5 b4 ~ c5 ~", K: "a4 ~ b4 ~@2 b4 c5 ~ b4 ~@2 b4 ~@2 a4 ~",
  L: "d5 ~ b4 ~@2 b4 ~@2 b4 ~@2 b4!2 ~ d5 ~", M: "b4 ~ b4 ~@2 b4 c5 ~ b4 ~@2 b4 ~@2 a4 ~",
  N: "d5@2 ~@8 c5 ~@2 c5 db5 ~", O: "c5 ~@2 c5 ~@2 bb4 ~ eb5 ~ c5 ~@2 c5 ~@2",
  P: "db5 ~@2 db5 c5 ~ db5 ~ bb4 ~ c5 ~@2 c5 db5 ~", Q: "c5 ~@2 c5 ~@2 bb4 ~ eb5@2 ~@6",
  R: "~@2 d5 ~@2 d5 eb5 ~ d5 ~@2 d5 ~@2 c5 ~", S: "f5 ~ d5 ~@13", T: "eb5 ~ c5 ~@2 c5 ~@2 db5 ~@2 db5 c5 ~ db5 ~",
})).s("gm_electric_bass_finger").gain(0.25)

// other · lead 4 chiff · "String Synthesizer"
const lead_4_chiff = note(`<
  A B C D E B C D F G F G F G H ~ I J K L M J K N O P Q R S T U V W A B C D E B C D F G F G F G H ~ I J K L M J K N O P
  Q R S T U V W
>`.pickRestart({
  A: "~@2 g4 ~@2 g4 ab4 ~ g4 ~@2 g4 ~@2 f4 ~", B: "bb4 ~ g4 ~@2 g4 ~@2 g4 ~@2 g4!2 ~ bb4 ~",
  C: "g4 ~ f4 ~@2 f4 g4 ~ f4 ~@2 f4 ~@2 g4 ~", D: "~@2 f4 ~@2 f4 ~@2 g4 ~@2 f4 g4 ~ a4 ~",
  E: "f4 ~ g4 ~@2 g4 ab4 ~ g4 ~@2 g4 ~@2 f4 ~", F: "f4 ~ g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 f4 ~",
  G: "bb4 ~ g4 ~@2 g4 ~@2 g4 ~@2 g4 ~@2 a4 ~", H: "f4 ~ g4 ~@13", I: "~@2 gb4 ~@2 gb4 g4 ~ gb4 ~@2 gb4 ~@2 e4 ~",
  J: "a4 ~ gb4 ~@2 gb4 ~@2 g4 ~@2 g4 gb4 ~ g4 ~", K: "e4 ~ gb4 ~@2 gb4 g4 ~ gb4 ~@2 gb4 ~@2 e4 ~",
  L: "a4 ~ gb4 ~@2 gb4 ~@2 gb4 ~@2 gb4!2 ~ a4 ~", M: "gb4 ~ gb4 ~@2 gb4 g4 ~ gb4 ~@2 gb4 ~@2 e4 ~",
  N: "a4@2 ~@8 g4 ~@2 g4 ab4 ~", O: "g4 ~@2 g4 ~@2 f4 ~ bb4 ~ g4 ~@2 g4 ~@2",
  P: "ab4 ~@2 ab4 g4 ~ ab4 ~ f4 ~ g4 ~@2 g4 ab4 ~", Q: "g4 ~@2 g4 ~@2 f4 ~ bb4@2 ~@6",
  R: "~@2 a4 ~@2 a4 bb4 ~ a4 ~@2 a4 ~@2 g4 ~", S: "c5 ~ a4 ~@13", T: "~@2 g4 ~@2 g4 ab4 ~ g4 ~@2 g4 ~@2 f4 ~, [c4,c5]",
  U: "g4@2 g4 ~@2 g4 ~@2 ab4 ~@2 ab4 g4 ~ ab4 ~, g5, bb4 ~@15", V: "f4 ~ g4 ~@2 g4 ab4 ~ g4 ~@2 g4 ~@2 f4 ~, [bb4,bb5]",
  W: "bb4 ~ g4 ~@2 g4 ~@2 ab4 ~@2 ab4 g4 ~ ab4 ~, [d5,d6]", // D
})).s("gm_lead_4_chiff").gain(0.25)

// drums · kick
const kick = s("bd").struct("<A@23 B C@3 A@2 D A D A@24 B C@3 A@2 D A D A>".pickRestart({
  A: "x ~@2 x ~@4", B: "x ~@2 x!2 ~@2 x", C: "~@4 x ~@2 x", D: "x",
})).gain(0.16)

// drums · snare
const snare = s("sd").struct(`<
  A B A C A B A C A B A B A C D E A B A C A B A F G H G A E ~ D ~ I A B A C A B A C A B A B A C D E A B A C A B A F G H
  G A E ~ D ~ I
>`.pickRestart({
  A: "~@4 x ~@2 x ~ x ~@2 x ~@2 x", B: "~ x ~@2 x ~@3 x ~@3 x!2 ~ x", C: "~ x ~@2 x ~@3 x!8",
  D: "~@4 x ~@2 x!4 ~ x ~@2 x", E: "x!3 ~ x ~@3 x!8", F: "~ x ~@2 x ~@7 x ~@2 x", G: "~ x ~@2 x ~@2 x ~ x ~@2 x ~@3",
  H: "x ~@3 x!2 ~ x ~@4 x ~@2 x", I: "~ x!2 ~ x ~@2 x!9",
})).gain(0.14)

// drums · hihat
const hihat = s("hh").struct(`<
  A B A C A B A C A B A B A C ~ D A B A C A B A E F E F A D G ~ G H A B A C A B A C A B A B A C ~ D A B A C A B A E F E
  F A D G ~ G H
>`.pickRestart({
  A: "x!3 ~ x ~ x!2 ~@2 x ~@3 x ~", B: "x!2 ~@2 x ~ x!4 ~@2 x ~ x!2", C: "x!2 ~@2 x ~ x!4 ~@6",
  D: "x!2 ~@2 x ~ x!2 ~ x ~ x ~ x ~ x", E: "x!2 ~@2 x ~ x!5 ~ x ~ x!2", F: "~@2 x ~@3 x ~ x!2 ~@2 x ~ x!2",
  G: "x!2 ~@2 x!4 ~@2 x!2 ~@2 x!2", H: "x!2 ~@2 x!4 ~ x ~ x ~ x ~ x",
})).gain(0.14)

// drums · open hat
const open_hat = s("oh").struct(`<
  A B A B A B A B A B A B A B ~ C A B A B A B A D E D E A C F D F C A B A B A B A B A B A B A B ~ C A B A B A B A D E D
  E A C F D F C
>`.pickRestart({
  A: "~@2 x!2", B: "~ x ~@3 x ~@2", C: "~ x ~@2 x!4", D: "~ x ~@6", E: "x ~ x ~@2 x ~@2", F: "~ x ~@2 x ~ x ~",
})).gain(0.14)

// drums · crash
const crash = s("cr").struct("<A ~@19 A ~@2 B ~@3 A ~@5 A ~@19 A ~@2 B ~@3 A ~@5>".pickRestart({
  A: "x", B: "~ x",
})).gain(0.14)

stack(bass, bass_soft, lead_4_chiff, kick, snare, hihat, open_hat, crash)

More by Misc tunes