0:00/0:00
// Because I Love You (The Postman Song) — Stevie B
// 88 bpm, 4/4, key Db major. Source: mcgill + midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 73 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(88/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 · fretless bass · "FRETLESS"
const bass = note(`<
~@8 A B C D E F G H I J K L I J I H A B C D E F G H I J K L I J I H A B C D E F G H A B C D E F G H I J K L I J I H I
J K L I J I H ~
>`.pickRestart({
A: "gb2@7 ~ f3@8", B: "bb2@4 c3@3 ~ db3@8", C: "gb2@7 ~ f2@8", D: "bb2@4 c3@11 ~", E: "gb2@7 ~ f2@4 f3@4",
F: "bb2@4 c3@3 ~ db3@7 ~", G: "gb2 f3", H: "bb2@7 ~", I: "eb3@5 ~ eb3@2 ab2@7 ~", J: "db3@7 ab2 db3@6 db3@2",
K: "eb3 ab2", L: "bb2@6 bb3@2 ab3@7 ~",
})).s("gm_fretless_bass").gain(0.38)
// chords · piano · "A.PIANO 1"
const piano = note(`<
A B C D A B E F A B C D A B E F G H I J G K G F A B C D A B E F G H I J G K G F A B C D A B E F A B C D A B E F G H I
J G K G F G L I M G L G N ~
>`.pickRestart({
A: "~@3 [bb3,bb4] [f2,c3,f3,bb3,f4,db5]@2 [f2,f3,a3,c4,f4,a4,c5]@2, [gb2,db4,gb4] ~, [bb3,bb4]@5 [gb3,db5]@3 ~@8, ~ [db3,gb5] ~@2", // Bb Bbm F Gb5 Bb Gb5
B: "[bb2,f3,bb3,db4,f4,f5]@4 [ab2,c3,ab3,c4,eb4,eb5]@4 [db3,ab3,db4,gb4,db5,gb5]@4 f5 eb5 db5 ab4, ~@12 [db3,ab3,db4,f4]@3 ~", // Bbm Ab Dbsus4 Db
C: "[db4,bb4]@4 ~@3 gb5 [f2,f3,bb3,db5]@4 [f2,f3,a3,c4,c5]@4, [gb2,gb3,bb3] ~, ~ [db4,gb4] ~@2, ~@5 bb4@3 ~@8, ~@3 db5 ~@4", // Gb Bbm F Gb Gb5
D: "~@2 ab5@2 ~@8 ab5@3 gb5, [bb2,f3,bb3,db4,db5]@4 [ab2,ab3,c4,eb4,eb5]@11 ~", // Bbm Ab
E: "[db4,bb4]@4 ~@2 db5 gb5 [f2,f3,bb3,db5]@3 ~ [f2,f3,a3,c4,c5]@4, [gb2,gb3,bb3]@7 ~@9, ~@4 [db4,gb4]@3 ~@9, ~@5 bb4@2 ~@9", // Gb Bbm F Gb Gb5
F: "~@12 bb5@3 ~, [bb2,f3,bb3,d4,f4]@15 ~, ~@4 bb4@11 ~, ~@8 f5@7 ~", // Bb
G: "bb3@4 ~@2 gb4 ~@5 ab4@3 ~, [eb3,gb3,db4,gb4,bb4]@7 ~ [ab2,ab3,c4,eb4]@7 ~, ~@4 bb3@3 ~@9, ~@5 eb4@2 ~@9", // Ebm7 Ab
H: "[ab3,db4]@4 ~@2 ab4@2 f4@4 [f4,ab4]@3 ~, [db3,gb4]@8 [db3,ab3,db4]@7 ~, ~ ab3 ~@2, ~@5 db4@3 ~@8", // Db5 Fm Gb5 Db5
I: "gb4@4 ~@2 bb4 ~ ab3@2 ~@2 bb3@2 c4 ~, [eb3,gb3,bb3,db4,bb4]@7 ~ [ab2,c4,eb4]@7 ~, ~@4 eb4@3 ~@3 eb3@5 ~, ~@5 gb4@2 ~@4 ab3@4 ~", // Ebm7 Ab
J: "~@6 [db4,f4]@2 [ab3,c4,eb4]@7 ~, bb2 ~, [bb3,db4,f4]@5 bb3@3 ~@8, ~ f3 ~@2", // Db Ab Bbm
K: "[ab3,db4]@4 ~@2 ab4 ~ [db4,f4]@3 ~ [f4,ab4]@3 ~, [db3,gb4]@7 ~ [db3,ab3]@7 ~, ~@4 ab3@3 ~@9, ~@5 db4@2 ~@9", // Db5 Db Fm Gb5 Db5
L: "[ab3,db4]@4 ~@2 ab4 ~ f4@4 [f4,ab4]@3 ~, [db3,gb4]@7 ~ [db3,ab3,db4]@7 ~, ~@4 ab3@3 ~@9, ~@5 db4@2 ~@9", // Db5 Fm Gb5 Db5
M: "bb3@4 ~@2 [db4,f4] ~ [ab3,c4,eb4]@7 ~, [bb2,db4,f4]@7 ~@9, ~@4 f3@3 ~@9, ~@5 bb3@2 ~@9", N: "[bb2,f3,bb3,d4,f4]",
})).s("gm_piano").gain(0.36)
// other · pad new age · "FANTASY"
const pad_new_age = note("<~@40 A B A C A B A D ~@16 E F G@2 H I J K ~>".pickRestart({
A: "~@2 gb5 ~ gb5 ab5 bb5@2 ~@2 a5 ~ a5 bb5 c6 ~", B: "bb5@3 ~ c6@3 ~ db6@8", C: "bb5@4 ab5@11 ~", D: "bb5 ~@3",
E: "~@2 c6 db6 ~@2 bb5 ~ ab5@2 ~@2 eb6@3 ~", F: "ab6@8 ~@2 gb6 ~ f6 ~ db6 ~",
G: "[eb6@4 bb5@3 ~ c6@4 ab5@10 ~@4 db6@3 ~ eb6 ~]/2", H: "gb6 ~ f6 ~ db6@3 ~ eb6@5 ~ ab5 ~",
I: "bb6@3 ~ ab6@3 ~ gb6 ~ f6 ~ eb6 ~ db6 ~", J: "eb6 ~ bb5@5 ~ c6@6 ab5@2", K: "f5@15 ~",
})).s("gm_pad_new_age").gain(0.33)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
A B C D A B C E A B C D A B C E F G H I F G F E A B C D A B C E F G H I F G F E A B C D A B C E A B C D A B C E F G H
I F G F E F G H I F G F J ~
>`.pickRestart({
A: "gb2@2 ~ [a3,c4], [bb3,db4]@3 ~, ~ f2", B: "[bb2,bb3,f4] [c3,eb4] gb4 [f3,f4], ~ ab3@2 ~, ~ db3",
C: "gb2@2 ~ c4, db4@3 ~, ~ f2", D: "[bb2,db4]@4 [c3,eb4,ab4]@11 ~", E: "[bb2,f3,d4]@7 ~",
F: "[bb3,eb4,gb4] [c4,eb4,ab4]", G: "~ f4, db4", H: "[eb3,gb3,bb3] [ab3,c4,eb4]",
I: "[bb3,db4,f4]@7 ~ [ab3,c4,eb4]@7 ~", J: "[bb2,f3,d4]@7 ~, f4",
})).s("gm_string_ensemble_1").gain(0.31)
// drums · hihat
const hihat = s("hh").struct("<[~ x ~ x]!7 [~@4 x ~@5 x!2 ~ x!2 ~] [~ x ~ x]!62 [~@4 x ~@5 x!2 ~ x!2 ~] ~@2>")
.gain(0.45)
// drums · open hat
const open_hat = s("oh").struct("<~@7 [~@12 x ~@2 x] ~@62 [~@12 x ~@2 x] x ~>").gain(0.5)
// drums · ride
const ride = s("rd").struct("<~@71 x ~>").gain(0.5)
stack(bass, piano, pad_new_age, string_ensemble_1, hihat, open_hat, ride)
More by Stevie B
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.