0:00/0:00
// Post Malone ft Young Thug Goodbyes — Rickey C Battle Jr
// 75 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 7 "Horn in F" french horn (copy of ch 3 "Alto Saxophone" alto sax); ch 8 "Mellophone" french horn (copy of ch 3 "Alto Saxophone" alto sax); ch 11 "Baritone Horn" french horn (copy of ch 4 "Tenor Saxophone" tenor sax); ch 12 "Euphonium" tuba (copy of ch 4 "Tenor Saxophone" tenor sax)
// note: Transcription provider: pdmx. https://musescore.com/score/5711896; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 49 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(75/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 · flute
const flute = note("<~@11 A B C@4 D E F G H G I B J@4 ~@7 K ~@3 L M N A B O@4>".pickRestart({
A: "~@9 f5 bb5!6", B: "a5@2 ~@7 f5 bb5!6",
C: "[a5@2 ~@2 g5@2 a5!2 ~@2 [f5,f6] [d5,d6] [f5,f6] [g5,g6] [a5,a6] [c6,c7]@5 g5@4 ~@2 [f5,f6] [d5,d6] [f5,f6] [g5,g6] [a5,a6] [c6,c7]@3 ~ [bb5,bb6] [g5,g6]@4 ~@2 f5 e5 f5!2 e5 f5@3 ~@2 a5!2 g5 a5 ~@2 f5!2 c6!4, ~@36 [a5,a6] ~@27]/4", // F D F G A C F D …
D: "a5@2 ~@2 a5!2 g5 a5 ~@2 f5!2 c6!4", E: "a5@2 ~@2 a5!2 g5 a5 ~@2 a5 g5 a5 g5 a5 bb5",
F: "~ a5 ~ f5@2 ~@2 f5 bb5 a5 ~ f5@3 g5 a5", G: "~@2 f5!4 f5@2 f5@2 d5 c5 d5@2 bb4 a4",
H: "~@2 f5@2 f5@2 f5!4 d5 c5 d5@2 bb4 a4", I: "~ c5!3 d5@2 bb4 a4 ~ f5 bb5!6",
J: "[a5@2 ~@2 g5@2 a5!2 ~@2 [f5,f6] [d5,d6] [f5,f6] [g5,g6] [a5,a6] [c6,c7]@5 g5@4 ~@2 [f5,f6] [d5,d6] [f5,f6] [g5,g6] [a5,a6] [c6,c7]@3 ~ [bb5,bb6] [g5,g6]@4 ~@2 f6 e6 f6!2 e6 f6@3 ~@14, ~@36 [a5,a6] ~@27]/4", // F D F G A C F D …
K: "f5 ~@3", L: "~@3 [g5,g6] [a5,a6]!3 [bb5,bb6] [a5,a6] g6 f6!2 f6@2 ~@2", M: "~@3 g5 a5!3 g5 f5!2 a5 f5 g5@2 ~@2",
N: "~@3 g5 a5 g5 f5!4 a5 f5 g5@2 [c5,c6]@2", // C
O: "[a5@2 ~@2 g5@2 a5!2 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@5 [g4,g5]@4 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@3 ~ [bb4,bb5] [g4,g5,g6]@4 ~@2 [f5,f6] [e5,e6] [f5,f6]!2 [e5,e6] [f5,f6]@3 ~@6 [f5,a5,f6]@8, ~@36 [a4,a5] ~@27]/4", // F D F G A C G F …
})).s("gm_flute").gain(0.5)
// other · flute · soft notes
const flute_soft = note("<A B A@2 C D E F G H@2 I ~@37>".pickRestart({
A: "[f5,f6]@15 ~", B: "[e5,e6]@15 ~", C: "~@2 a5 g5 a5!2 g5 a5 ~@2 f5!2 c6!4",
D: "a5@2 a5 g5 a5!2 g5 a5 ~@2 f5!2 c6!4", E: "a5@2 a5 g5 a5!2 g5 a5 ~@2 a5 g5 a5 g5 a5 bb5",
F: "~ a5 ~ f5@2 ~@2 f5 bb5 a5 ~ f5@3 g5 a5", G: "~@5 c6 f6@2 f6@2 d6@2 c6@2 bb5@2",
H: "a5@2 ~@3 c6 f6@2 f6@2 d6@2 c6@2 bb5@2", I: "a5@3 bb5 a5@2 g5@2 ~@8",
})).s("gm_flute").gain(0.3)
// other · clarinet · "B♭ Clarinet"
const clarinet = note("<~@11 A B C@4 D E F G H G I B J@4 ~@7 K ~@3 L M N O P Q@4>".pickRestart({
A: "~@9 f5 bb5!6", B: "a5@2 ~@7 f5 bb5!6",
C: "[a5@2 ~@2 g5@2 a5!2 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@5 g4@4 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@3 ~ [bb4,bb5] [g4,g5]@4 ~@2 f5 e5 f5!2 e5 f5@3 ~@2 a4!2 g4 a4 ~@2 f4!2 c5!4, ~@36 [a4,a5] ~@27]/4", // F D F G A C F D …
D: "a4@2 ~@2 a4!2 g4 a4 ~@2 f4!2 c5!4", E: "a4@2 ~@2 a4!2 g4 a4 ~@2 a4 g4 a4 g4 a4 bb4",
F: "~ a4 ~ f4@2 ~@2 f4 bb4 a4 ~ f4@3 g4 a4", G: "~@2 f5!4 f5@2 f5@2 d5 c5 d5@2 bb4 a4",
H: "~@2 f5@2 f5@2 f5!4 d5 c5 d5@2 bb4 a4", I: "~ c5!3 d5@2 bb4 a4 ~ f5 bb5!6",
J: "[a5@2 ~@2 g5@2 a5!2 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@5 g4@4 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@3 ~ [bb4,bb5] [g4,g5]@4 ~@2 f5 e5 f5!2 e5 f5@3 ~@14, ~@36 [a4,a5] ~@27]/4", // F D F G A C F D …
K: "f5 ~@3", L: "~@3 [g4,g5] [a4,a5]!3 [bb4,bb5] [a4,a5] g5 f5!2 f5@2 ~@2", M: "~@3 g5 a5!3 g5 f5!2 a5 f5 g5@2 ~@2",
N: "~@3 g5 a5 g5 f5!4 a5 f5 g5@2 [c5,c6]@2", O: "~@9 [f4,f5] [bb4,bb5]!6", P: "[a4,a5]@2 ~@7 f4 bb4!6",
Q: "[a4@2 ~@2 g4@2 a4!2 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@5 [g4,g5]@4 ~@2 [f4,f5] [d4,d5] [f4,f5] [g4,g5] [a4,a5] [c5,c6]@3 ~ [bb4,bb5] [g4,g5,g6]@4 ~@2 [f5,f6] [e5,e6] [f5,f6]!2 [e5,e6] [f5,f6]@3 ~@6 [f5,a5,f6]@8, ~@36 [a4,a5] ~@27]/4", // F D F G A C G F …
})).s("gm_clarinet").gain(0.5)
// other · clarinet · "B♭ Clarinet" · soft notes
const clarinet_soft = note("<A B A@2 C D E F G H I J ~@37>".pickRestart({
A: "[f4,f5]", B: "[e4,e5]", C: "~@2 a5 g5 a5!2 g5 a5 ~@2 f5!2 c6!4", D: "a5@2 a5 g5 a5!2 g5 a5 ~@2 f5!2 c6!4",
E: "a5@2 a5 g5 a5!2 g5 a5 ~@2 a5 g5 a5 g5 a5 bb5", F: "~ a5 ~ f5@2 ~@2 f5 bb5 a5 ~ f5@3 g5 a5",
G: "~@5 c5 f5@2 f5@2 d5@2 c5@2 bb4@2", H: "a4@2 ~@3 c5 f5@2 f5@2 d5@2 c5@2 bb4@2",
I: "a4@2 ~@3 c5 f5@2 f5@2 d5@2 c5@2 bb5@2", J: "a5@3 bb5 a5@2 g5@2 ~@8",
})).s("gm_clarinet").gain(0.3)
// other · alto sax · "Alto Saxophone"
const alto_sax = note("<~@12 A B@4 C D E F G F H A I@4 ~@7 J ~@3 K L M N A O@4>".pickRestart({
A: "a4@8 bb4@6 ~ c5",
B: "[a4@8 ~@2 [f4,f5] [d4,d5] [f4,f5] ~@2 c5@5 [g4,g5]@4 ~@2 [f4,f5] [d4,d5] [f4,f5] ~@2 c5@3 ~@2 [g4,g5]@4 ~@2 f5 e5 f5!2 e5 f5@3 ~@2 a4!2 g4 a4 ~@2 f4!2 c5!4, bb4 ~@63]/4", // F D F G F D F G
C: "a4@2 ~@2 a4!2 g4 a4 ~@2 f4!2 c5!4", D: "a4@2 ~@2 a4!2 g4 a4 ~@2 a4 g4 a4 g4 a4 bb4",
E: "~ a4 ~ f4@2 ~@2 f4 bb4 a4 ~ f4@3 g4 a4", F: "~@2 f5!4 f5@2 f5@2 d5 c5 d5@2 bb4 a4",
G: "~@2 f5@2 f5@2 f5!4 d5 c5 d5@2 bb4 a4", H: "~ c5!3 d5@2 bb4 a4 ~@8",
I: "[a4@8 ~@2 [f4,f5] [d4,d5] [f4,f5] ~@2 c5@5 [g4,g5]@4 ~@2 [f4,f5] [d4,d5] [f4,f5] ~@2 c5@3 ~@2 [g4,g5]@4 ~@2 f5 e5 f5!2 e5 f5@3 ~@14, bb4 ~@63]/4", // F D F G F D F G
J: "f5 ~@3", K: "~@3 g4 a4!3 bb4 a4 g5 f5!2 f5@2 ~@2", L: "~@3 g4 a4!3 g4 f4!2 a4 f4 g4@2 ~@2",
M: "~@3 g4 a4 g4 f4!4 a4 f4 g4@2 c5@2", N: "~@6 [f4,f5] [g4,g5] [a4,a5] [g4,g5] ~ [f4,f5]@3 bb4!2",
O: "[a4@8 ~@2 [f4,f5] [d4,d5] [f4,f5] ~@2 c5@5 [g4,g5]@4 ~@2 [f4,f5] [d4,d5] [f4,f5] ~@2 c5@3 ~@2 [g4,g5]@4 ~@2 f5 e5 f5!2 e5 f5@3 ~@6 [c5,f5]@8, bb4 ~@63]/4", // F D F G F D F G …
})).s("gm_alto_sax").gain(0.5)
// other · alto sax · "Alto Saxophone" · soft notes
const alto_sax_soft = note(`<
a4!3
bb4
a4!3
bb4
[~@5 c5 f5@2 f5@2 d5@2 c5@2 bb4@2]
[a4@2 ~@3 c5 f5@2 f5@2 d5@2 c5@2 bb4@2]!2
[a4@3 bb4 a4@2 g4@2 ~@8]
~@37
>`).s("gm_alto_sax").gain(0.3)
// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note("<~@11 A B C D E F@2 G H I J I K B C D L@2 ~@7 M ~@3 N O P Q B C D R@2>".pickRestart({
A: "~@9 f4 bb4!3 ~ bb4!2", B: "a4@2 ~@7 f4 bb4!3 ~ bb4!2", C: "a4@2 ~@2 g4@2 a4!2 ~@2 f4 d4 f4 g4 a4 ~",
D: "~@4 g4@4 ~@2 f4 d4 f4 g4 a4 ~", E: "~@3 bb4 g4@4 ~@8, ~@4 a4 ~@11", F: "~@2 a4 g4 a4!2 g4 a4 ~@2 f3!2 c4!4",
G: "~@2 a4 g4 a4!2 g4 a4 ~@2 a4 g4 a4 g4 a4 bb4", H: "~ a4 ~ f4@2 ~@2 f4 bb4 a4 ~ f4@3 g4 a4",
I: "~@2 f4!4 f4@2 f4@2 ~@4 bb4 a4", J: "~@2 f4@2 f4@2 f4!4 ~@4 bb4 a4", K: "~ c4!3 d4@2 bb4 a4 ~ f4 bb4!3 ~ bb4!2",
L: "[~@3 bb4 g4@4 ~@2 f4 e4 f4!2 e4 f4@3 ~@14, ~@4 a4 ~@27]/2", M: "[f4,a4] ~@3",
N: "~@3 g4 a4!3 bb4 a4 g4 f4!2 f4@2 ~@2", O: "~@3 g4 a4!3 g4 f4!2 a4 f4 g4@2 ~@2",
P: "~@3 g4 a4 g4 f4!4 a4 f4 g4@2 [c4,c5]@2", Q: "~@6 f4 g4 a4 g4 ~ f4@3 bb4!2",
R: "[~@3 bb4 g4@4 ~@2 f4 e4 f4!2 e4 f4@3 ~@6 [a4,c5]@8, ~@4 a4 ~@27]/2", // Am
})).s("gm_tenor_sax").gain(0.5)
// other · tenor sax · "Tenor Saxophone" · soft notes
const tenor_sax_soft = note("<A B C@2 D E F G H I@2 J ~@37>".pickRestart({
A: "c4", B: "db4", C: "d4", D: "~@2 a3 g3 a3!2 g3 a3 ~@2 f3!2 c4!4", E: "a3@2 a3 g3 a3!2 g3 a3 ~@2 f3!2 c4!4",
F: "a3@2 a3 g3 a3!2 g3 a3 ~@2 a3 g3 a3 g3 a3 bb3", G: "~ a3 ~ f3@2 ~@2 f3 bb3 a3 ~ f3@3 g3 a3",
H: "~@5 c4 f4@2 f4@2 d4@2 c4@2 bb3@2", I: "a3@2 ~@3 c4 f4@2 f4@2 d4@2 c4@2 bb3@2", J: "a3@3 bb3 a3@2 g3@2 ~@8",
})).s("gm_tenor_sax").gain(0.3)
// chords · trombone
const trombone = note("<~@12 A B C@2 D E F C D G F C A B C@2 ~@4 H I J K L ~@3 D M F C A B C@2 D>".pickRestart({
A: "[f3,a3,d4] [f3,bb3,d4]", B: "[a3,c4,e4] [f3,a3,d4]", C: "[bb3,d4,f4]", D: "[a3,c4,f4]", E: "[a3,c4,e4]",
F: "[a3,d4,f4]", G: "[a3,db4,f4]", H: "[a3,c4,f4]@3 [a3,c4,f4] ~@2 [a3,c4,f4]!2 ~@2 [a3,c4,f4] ~ [a3,c4,f4]!2 ~@2",
I: "[a3,c4,e4]@3 [a3,c4,e4] ~@2 [a3,c4,e4]@4 ~@2 [a3,c4,e4] ~ [a3,c4,e4] ~", // Am
J: "[a3,d4,f4]@3 [a3,d4,f4] ~@2 [a3,d4,f4]!2 ~@2 [a3,d4,f4] ~ [a3,d4,f4]!2 ~@2", // Dm
K: "bb3 [bb3,d4] ~ [bb3,d4,f4] [bb3,d4,f4,a4]@4 ~@4 [a3,c4,e4,g4]@4", L: "[a3,c4,f4] ~@3", M: "[a3,db4,e4]",
})).s("gm_trombone").gain(0.5)
// chords · trombone · soft notes
const trombone_soft = note("<A B C D A B C D A B C D ~@37>".pickRestart({
A: "[a3,c4,f4]", B: "[a3,db4,e4]", C: "[a3,d4,f4]", D: "[bb3,d4,f4]",
})).s("gm_trombone").gain(0.2)
// bass · tuba · "B♭ Tuba"
const bass = note("<~@8 A B C D E F G H I J K L I J K L M N O P Q R S T I J K L Q R S T ~@4 U N V W X>".pickRestart({
A: "f3", B: "e3", C: "d3", D: "[a1,a2]@3 [bb1,bb2] [a1,a2]@2 [g1,g2]@2 ~@8", E: "g2 c3", F: "a2@8 d3@4 f3 e3 d3 c3",
G: "bb2@6 bb2 f2", H: "bb1@6 ~ g3 bb3@2 ~@6, ~@8 a3 ~@7", I: "f2@2 ~ f2@2 ~ f2@2 ~@2 f2@2 ~ f2@2 ~",
J: "a2@2 ~ a2@2 ~ a2@2 ~@2 a2@2 ~ a2!2 ~", K: "d3@2 ~ d3@2 ~ d3@2 ~@2 d3@2 ~ d3@2 ~",
L: "bb2@2 ~ bb2@2 ~ bb2@2 ~@2 bb2@2 ~ bb2!2 ~", M: "g2@3 g2@2 ~ g2 bb2 c3@4 c3 bb2 a2 c3",
N: "a2@6 c3 db3 d3@4 f3 e3 d3 c3", O: "bb2@2 ~ bb2@2 ~ bb2@2 ~@4 f2 g2 a2 c3", P: "bb2@6 ~ g3 bb3@2 ~@6, ~@8 a3 ~@7",
Q: "f2@2 ~ f2@2 ~ c3 f3 ~ c3 f2@2 ~ f2 g2 ab2", R: "a2@2 ~ a2@2 ~ a2!2 ~ a2!2 ~@2 a2 bb2 c3",
S: "d3@2 ~ d3@2 ~ d3!2 ~ d3!2 ~ f3 e3 d3 c3", T: "bb2@2 ~ bb2@2 ~ a3 bb3 ~ d3 bb2@2 ~ bb2 g2 a2",
U: "g3@3 g3@2 ~ g2 bb2 c3@4 c3 bb2 a2 c3", V: "bb3@2 ~ bb3@2 ~ bb3@2 ~@4 f2 g2 a2 c3",
W: "bb2@6 bb3 ~ bb3@2 ~@2 bb2 a2 g2 a2", X: "f2",
})).s("gm_tuba").gain(0.5)
// drums · kick
const kick = s("bd").struct("<~@16 A B A B A B A B A B A C D@2 E D A B A B F D E D ~@4 A B A B G>".pickRestart({
A: "x ~@2 x ~@2 x ~@3 x ~@2 x ~@2", B: "x ~@2 x ~@2 x ~@3 x ~@2 x!2 ~", C: "x ~@12 x!2 ~",
D: "x ~@2 x ~@2 x!2 ~ x!2 ~@2 x!3", E: "x ~@2 x ~@2 x!2 ~ x!2 ~ x!4", F: "~@13 x!3", G: "x",
})).gain(0.5)
stack(
flute, flute_soft, clarinet, clarinet_soft, alto_sax, alto_sax_soft, tenor_sax, tenor_sax_soft, trombone,
trombone_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.