0:00/0:00
// Murder On My Mind — Rickey C Battle jr
// 60 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 2 "B♭ Clarinet" clarinet (copy of ch 5 "B♭ Trumpet" trumpet); ch 6 "Horn in F" french horn (copy of ch 3 "Alto Saxophone" alto sax); ch 7 "Mellophone" french horn (copy of ch 3 "Alto Saxophone" alto sax)
// note: Transcription provider: pdmx. https://musescore.com/score/5709908; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 29 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(60/4)
// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord.
// 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("<~@2 A B C D E F G ~@2 H G ~@3 I ~@6 J K D L M N>".pickRestart({
A: "~@12 g5 ab5 bb5 c6", B: "ab5@3 bb5@4 ~", C: "ab5 g5 f5 eb5!2 f5 g5 eb5 f5@4 g5!4", D: "ab5 g5 f5 eb5 ~@6 g5!6",
E: "~@4 [eb5,eb6] [f5,f6] [g5,g6] [eb5,eb6] [f5,f6]@2 ~@6", F: "ab5 g5 f5 eb5!2 f5 g5 ~@3 g5 [eb5,f5] f5@2 eb5@2",
G: "[g5,c6,eb6,eb7] ~@3", H: "~@10 [c6,g6] [d6,eb6,f6] f6@2 eb6@2", I: "[eb5,g5,c6] ~@3", J: "~@12 g5!4",
K: "ab5 g5 f5 eb5 ~@4 f5@4 ~@4", L: "~@4 eb5 f5 g5 eb5 f5@2 ~@2 g5!4",
M: "ab5 g5 f5 eb5!2 f5 g5 ~@3 [c5,eb5] [eb5,g5] [g5,b5]@4", N: "[g5,c6,g6] ~@3",
})).s("gm_flute").gain(0.5)
// other · flute · soft notes
const flute_soft = note("<A B ~@17 C D E F G ~@5>".pickRestart({
A: "~@12 bb5 ab5 g5 ab5", B: "[g5,g6]@6 [f5,f6]@6 [g5,g6] [f5,f6] [eb5,eb6] [d5,d6]", C: "~@12 g5!4",
D: "ab5 g5 f5 eb5 ~@4 f5@4 ~@4", E: "ab5 g5 f5 eb5 ~@6 g5!6", F: "~@4 eb5 f5 g5 eb5 f5@2 ~@2 g5!4",
G: "ab5 g5 f5 eb5!2 f5 g5 eb5 f5@2 ~@6",
})).s("gm_flute").gain(0.2)
// other · alto sax · "Alto Saxophone"
const alto_sax = note("<~@2 A B C D E F G ~@2 H G ~@3 I ~@7 J K L M N>".pickRestart({
A: "~@12 g4 ab4 bb4 c5", B: "ab4@3 bb4@4 ~", C: "ab4 g4 f4 eb4!2 f4 g4 eb4 f4@4 g4!4", D: "ab4 g4 f4 eb4 ~@6 g4!6",
E: "~@4 [eb4,eb5] [f4,f5] [g4,g5] [eb4,eb5] [f4,f5]@2 ~@6", // Eb F G Eb F
F: "~@4 [eb4,eb5] [f4,f5] [g4,g5] [eb4,eb5] ~@2 eb5@2 d5@2 ~@2", G: "[c5,eb5] ~@3",
H: "~@10 [c5,g5] [d5,eb5,f5] f5@2 eb5@2", I: "[c5,g5] ~@3", J: "ab4 g4 f4 eb4 ~@4 f5@4 g4!4",
K: "ab4 g4 f4 eb4 ~@4 f5@2 g4!6", L: "ab4 ~ [f4,g4,f5] [eb4,eb5]!2 [f4,f5] [g4,g5] [eb4,eb5] [f4,f5]@2 ~@6",
M: "~@4 [eb4,eb5] [f4,f5] [g4,g5] [eb4,eb5] f5@2 ~@2 [d5,g5]@4", N: "[c5,eb5,g5] ~@3",
})).s("gm_alto_sax").gain(0.5)
// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note(`<
[~@12 bb4 ab4 g4 ab4]
[g4@6 f4@6 g4 f4 eb4 d4]
~@18
[ab4 g4 f4 eb4 ~@8 g4!4]
[ab4 g4 f4 eb4 ~@6 g4!6]
[~@4 eb4 f4 g4 eb4 f4@2 ~@6]
[~@4 eb4 f4 g4 eb4 ~@8]
~@5
>`).s("gm_alto_sax").gain(0.2)
// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@2 A B C D E F G ~@2 H G ~@3 G ~@7 C D E I J>".pickRestart({
A: "eb4@3 ~ g4@3 ~", B: "c4@3 ~ g4@2 ~@2", C: "ab4 g4 f4 eb4!2 f4 g4 eb4 f4@4 g4!4", D: "~@4 eb4 f4 g4 eb4 f4@2 ~@6",
E: "ab4 ~ [f4,g4] eb4 ~@4 f4@2 ~@2 [g3,g4]!4", F: "ab4 g4 f4 eb4 ~@6 g4 [eb4,f4] f4@2 eb4@2", G: "[g4,c5] ~@3",
H: "~@10 g4 [eb4,f4] f4@2 eb4@2", I: "ab4 g4 f4 eb4 ~@6 c4 eb4 g4@4", J: "[eb4,g4,c5] ~@3",
})).s("gm_tenor_sax").gain(0.5)
// other · tenor sax · "Tenor Saxophone" · soft notes · Fsus2
const tenor_sax_soft = note(`<
~
[g4@6 f4@6 g4 f4 eb4 d4]
~@18
[ab4 g4 f4 eb4!2 f4 g4 eb4 f4@4 g4!4]
[~@4 eb4 f4 g4 eb4 f4@2 ~@6]
[ab4 ~ [f4,g4] eb4 ~@4 f4@2 ~@2 g3!4]
[ab3 g3 f3 eb3!2 f3 g3 eb3 f3@2 ~@6]
~@5
>`).s("gm_tenor_sax").gain(0.2)
// chords · trombone
const trombone = note("<~@2 A B C D A B E ~@3 F G H D I ~@7 C D A J E>".pickRestart({
A: "[ab3,c4,eb4]@3 [f3,ab3,c4]@4 ~", B: "[f3,ab3,c4]@3 [g3,bb3,d4]@4 ~",
C: "[ab3,c4,eb4]@3 [ab3,c4,eb4] ~@2 [f3,ab3,c4]@8 ~@2", D: "[f3,ab3,c4]@3 [f3,ab3,c4] ~@2 [g3,bb3,d4]@8 ~@2",
E: "[g3,c4,eb4] ~@3", // Cm
F: "[g3,c4,eb4]@2 [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~", // Cm
G: "~@2 [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,c4,eb4] ~ [g3,bb3,d4] ~ [g3,bb3,d4] ~ [g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~", // Cm Gm Gm7
H: "[ab3,c4,eb4]@3 [ab3,c4,eb4] ~ [ab3,c4,eb4] [f3,ab3,c4]@4 [f3,ab3,c4] ~ [f3,ab3,c4]!2 ~@2", I: "[ab3,c4,eb4] ~@3",
J: "[f3,ab3,c4]@3 [g3,bb3,d4]@2 [ab3,c4,eb4] [g3,b3,d4]@2", // Fm Gm Ab G
})).s("gm_trombone").gain(0.5)
// chords · trombone · soft notes · Ab Fm Ab Fm Gm Ab Fm Gm
const trombone_soft = note(`<
[[ab3,c4,eb4]@3 [f3,ab3,c4]@4 ~]
~@19
[[ab3,c4,eb4]@3 [f3,ab3,c4]@4 ~]
[[f3,ab3,c4]@3 [g3,bb3,d4]@4 ~]
[[ab3,c4,eb4]@3 [f3,ab3,c4]@4 ~]
[[f3,ab3,c4]@3 [g3,bb3,d4]@4 ~]
~@5
>`).s("gm_trombone").gain(0.2)
// other · french horn · "Baritone Horn"
const french_horn = note("<~@2 A B C D E F G ~@2 H G ~@3 G ~@7 I J E K L>".pickRestart({
A: "eb4@3 ~ g4@3 ~", B: "c4@3 ~ g4@2 ~@2", C: "~@4 eb4 f4 g4 eb4 f4@4 g3!4", D: "~@4 eb4 f4 g4 eb4 f4@4 ~@4",
E: "ab4 ~ [f4,g4] eb4 ~@4 f4@2 ~@2 [g3,g4]!4", F: "ab4 g4 f4 eb4 ~@6 g4 [eb4,f4] f4@2 eb4@2", G: "[g4,c5] ~@3",
H: "~@10 g4 [eb4,f4] f4@2 eb4@2", I: "ab4 g4 f4 eb4 ~ f4 g4 eb4 f4@4 g4!4", J: "~@4 eb4 f4 g4 eb4 f4@2 ~@6",
K: "ab4 g4 f4 eb4 ~@6 c4 eb4 g4@4", L: "[eb4,g4,c5] ~@3",
})).s("gm_french_horn").gain(0.5)
// other · french horn · "Baritone Horn" · soft notes · Fsus2
const french_horn_soft = note(`<
~
[g4@6 f4@6 g4 f4 eb4 d4]
~@18
[ab3 g3 f3 eb3!2 f3 g3 eb3 f3@4 g3!4]
[~@4 eb3 f3 g3 eb3 f3@2 ~@6]
[ab3 ~ [f3,g3] eb3 ~@4 f3@2 ~@2 g3!4]
[ab3 g3 f3 eb3!2 f3 g3 eb3 f3@2 ~@6]
~@5
>`).s("gm_french_horn").gain(0.2)
// bass · tuba
const bass = note("<A B A C D E D E F G H G F G F I J G H K ~@3 L M N M O P>".pickRestart({
A: "ab2@3 f2@4 ~", B: "c2@3 g2@4 ~", C: "c2@6 g2@6 g3 [eb3,f3] [ab2,bb2,c3,d3] g2",
D: "ab2@2 ~ ab2@2 ~ f2@2 ~@2 f3@2 ~ f3@2 ~", E: "c3@2 ~ c3@2 ~ d3@2 ~@2 g2@2 ~ g2@2 ~",
F: "ab2@2 ~ ab2 ~ g2 f2@2 ~ c3 f3@2 ~ f3@2 g2", G: "c3@2 ~ c3@2 c3 d3@2 ~ d2 g2@2 ~ g2 f2 g2",
H: "ab2@2 ~ ab2 ~ g2 f2@2 ~ c3 f3@2 g3 f3 eb3 d3", I: "c3@2 ~ c3@2 c3 d3@2 ~ d2 g2@2 ~ g3 f3 g3",
J: "ab3@2 ~ ab3 ~ g3 f3@2 ~ c3 f3@2 ~ f3@2 g2", K: "c3@2 ~ c3@2 c3 d3@2 ~@2 g3@2 g3@2 g3@2", L: "~@10 g3@2 ~ g3!3",
M: "ab3@2 ~ ab3 ~ g3 f3@2 ~@2 f3@2 ~ f3 eb3 d3", N: "c3@2 ~ c3@2 f3 g3@2 ~@2 g3@2 ~ g3@2 ~",
O: "[c3,c4]@2 ~ [c3,c4]@2 [c3,c4] [d3,d4]@2 ~@2 [d3,g3]@2 ~ [d3,g3]@2 ~", P: "[c3,g3,c4] ~@3",
})).s("gm_tuba").gain(0.5)
// drums · kick
const kick = s("bd").struct("<~@4 A@4 B C D C B C B C B C D E ~@3 F G A G A H>".pickRestart({
A: "x ~@2 x ~ x!2 ~@3 x ~@2 x ~@2", B: "x ~@2 x ~ x!2 ~@2 x!2 ~@2 x ~ x", C: "x ~@2 x ~ x!2 ~@2 x!2 ~@2 x!3",
D: "x ~@2 x ~ x!2 ~@2 x!2 ~ x!4", E: "x ~@2 x ~ x!2 ~@3 x ~ x ~ x ~", F: "~@10 x ~@2 x!3",
G: "x ~@2 x ~ x!2 ~@3 x ~@2 x!3", H: "x",
})).gain(0.5)
stack(
flute, flute_soft, alto_sax, alto_sax_soft, tenor_sax, tenor_sax_soft, trombone, trombone_soft, french_horn,
french_horn_soft, bass, kick
)
More by Rickey C Battle jr
Ariane Grande God Is A WomanG♭ major · 70 bpmBackstreet Boys The CallD♭ major · 100 bpmbanditA♭ major · 80 bpmBig Sean Go Legend ft Travis ScottC♭ major · 70 bpmGangsta's ParadiseE♭ major · 80 bpmGucci Mane ClassicalA♭ major · 60 bpmkill the lightsC♭ major · 80 bpmLil Baby Life_Goes_OnA♭ major · 70 bpm
Not in the database
That song isn't here.
Nothing in the database matches this link. It may have been renamed, or the address was mistyped. The closest songs to :
Real transcriptions · Editable patterns · Instrumental
Type a song.
Get Strudel code.
Chords, structure, melody, bass and drums compiled from open transcriptions into Strudel live-coding patterns. Play it here, scrub through the bars, then open it in strudel.cc and start hacking.
Smells Like Teen SpiritNirvana
The JokerSteve Miller Band · 1973
Love Me DoThe Beatles · 1964
I Don't MindJames Brown · 1961
- Real transcriptionsMcGill chord charts, Lakh MIDI and quality-filtered PDMX scores. The library includes alternate transcriptions of some songs.
- One bar, one cycleEvery layer follows the same bar timeline, keeping the code, playback and song structure aligned.
- Instrumental by designDetected vocal parts are removed. Guitar riffs, harmonica and other instrumental leads stay.