0:00/0:00
// Maneater — Hall & Oates
// 180 bpm, 4/4, key C minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 161 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(180/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.
// chords · drawbar organ · "ORGAN 1"
const drawbar_organ = note(`<
~@16 A@2 B@2 C@2 D@2 E@2 F G H@2 I@2 A@2 B@2 C@2 D@2 E@2 F G H@2 J@2 ~@20 A@2 B@2 C@2 D@2 E@2 F G H@2 J@2 ~@77
>`.pickRestart({
A: "[[bb4,eb5,g5]@7 ~]/2", B: "[[bb4,d5,f5]@7 ~]/2", C: "[[ab4,db5,f5]@7 ~]/2", D: "[[g4,c5,e5]@7 ~]/2",
E: "[[f4,ab4,c5,eb5]@7 ~]/2", F: "[bb4,d5,f5]@3 ~", G: "[b4,d5,f5]@3 ~", H: "[[c5,eb5,g5]@5 ~ [bb4,d5,f5] ~]/2",
I: "[[c5,eb5,g5]@7 ~]/2", J: "[[c5,e5,g5]@7 ~]/2",
})).s("gm_drawbar_organ").gain(0.31)
// bass · acoustic bass · "ACOU BASS"
const bass = note(`<
A@2 B C D E F G H I J@2 K@2 L@2 M@2 N O P Q H R S T U V W@2 X@2 Y Z N O AA@2 AB@2 AC@2 U AD AE AF AE AG H AH F AI AJ
AK AL AM H AN AO@2 AP AQ AR AS AT AU H AV AW AX N O P AY AZ BA AP BB U BC AE BD BE AH H AH F AI AJ BF AL AM H AN AO@2
AP AQ AR AS H AG H BG H BH B BI BJ BK BL@2 H BM F BN BJ BO BP@2 H BQ BR@2 AP BS BT BU H BM B BV BJ E BW@2 H BX B BY BZ
AQ CA CB H BH F AI AJ AK AL AM H AN AO@2 AP AQ AR AS CC
>`.pickRestart({
A: "[c2@3 ~@3 c2@3 ~@3 c2@6 ~@4 c2@4 ~@2 c2@3 ~@3 c2 ~ c2@3 ~@3 c2@6]/2", B: "bb1@3 ~@3 bb1@3 ~@3 bb1@6 ~@4 bb1@2",
C: "~@2 bb1@2 ~ bb1 bb1@2 ~ bb1@3", D: "ab1@3 ~@3 ab1@3 ~@3 ab1@7 ~@3 ab1@2",
E: "~@4 ab1@3 ~@3 ab1 ~ ab1@4 ~@2 ab1@6", F: "bb1@3 ~@3 bb1@3 ~@3 bb1@7 ~@3 bb1@2",
G: "~@4 bb1@3 ~@3 bb1@2 c2@6 d2@6", H: "c2@3 ~@3 c2@3 ~@3 c2@6 ~@4 c2@2", I: "~@4 c2@3 ~@3 c2 ~ c2@5 ~ c2@6",
J: "[bb1@3 ~@3 bb1@3 ~@3 bb1@6 ~@4 bb1@4 ~@2 bb1@4 ~@2 bb1 ~ bb1@4 ~@2 bb1@6]/2",
K: "[ab1@3 ~@3 ab1@3 ~@3 ab1@7 ~@3 ab1@4 ~@2 ab1@4 ~@2 ab1@2 ab1@4 ~@2 ab1@6]/2",
L: "[bb1@3 ~@3 bb1@3 ~@3 bb1@6 ~@4 bb1@4 ~@2 bb1@3 ~@3 bb1 ~ bb1@9 ~@3]/2",
M: "[eb2@3 ~@3 eb2 ~@5 eb2@6 ~@4 eb2@4 ~@2 eb2@3 ~@3 eb2@2 eb2@10 ~@2]/2", N: "d2@3 ~@3 d2@3 ~@3 d2@6 ~@4 d2@2",
O: "~@4 d2@3 ~@3 d2 ~ d2@12", P: "db2@3 ~@3 db2@3 ~@3 db2@6 ~@4 db2@2", Q: "~@4 db2@3 ~@3 db2 ~ db2@4 ~@2 db2@6",
R: "~@4 bb1@3 ~@3 bb1@2 ab1@6 g1@4 ~@2", S: "f1@3 ~@3 f1 ~@5 f1@7 ~@3 f1@2", T: "~@4 f1@3 ~@3 f1@2 g1@6 c2@6",
U: "bb1@3 ~@3 bb1@3 ~@3 bb1@9 ~ b1@2", V: "~@4 b1@3 ~@3 b1 ~ b1@4 ~@2 b1@6",
W: "[c2@3 ~@3 c2@3 ~@3 c2@7 ~@3 c2@4 ~@2 c2@4 ~@2 c2@2 g1@3 ~@3 g1@6]/2",
X: "[c2@3 ~@3 c2@3 ~@3 c2@7 ~@3 c2@4 ~@2 c2@4 ~@2 c2 ~ c2@6 d2@4 ~@2]/2", Y: "eb2@3 ~@3 eb2@3 ~@3 eb2@7 ~@3 eb2@2",
Z: "~@4 eb2@3 ~@3 eb2 ~ eb2@12",
AA: "[db2@3 ~@3 db2@3 ~@3 db2@7 ~@3 ab1@4 ~@2 db2@3 ~@3 db2 ~ bb1@3 ~ bb1@2 db2@6]/2",
AB: "[c2@3 ~@3 c2@3 ~@3 c2@6 ~@4 c2@4 ~@2 bb1@3 ~@3 bb1@2 ab1@6 g1@6]/2",
AC: "[f1@3 ~@3 f1@3 ~@3 f1@7 ~@3 f1@4 ~@2 f1@3 ~@3 f1@2 g1@6 c2@6]/2", AD: "~@4 b1@3 ~@3 b1 ~ b1@4 ~@2 b1@4 ~@2",
AE: "c2@3 ~@3 c2@3 ~@3 c2@7 ~@3 c2@2", AF: "~@4 c2@3 ~@3 c2 ~ c2@9 ~@3", AG: "~@4 c2@3 ~@3 c2 ~ c2@7 ~@5",
AH: "~@4 c2@3 ~@3 c2 ~ c2@12", AI: "~@4 bb1@3 ~@3 bb1 ~ bb1@10 ~@2", AJ: "ab1 ~@5 ab1@3 ~@3 ab1@6 ~@4 ab1@2",
AK: "~@4 ab1@3 ~@3 ab1@2 ab1@12", AL: "g1@3 ~@3 g1@3 ~@3 g1@9 ~ b1@2", AM: "~@4 b1@3 ~@3 b1@2 d2@3 ~@3 d2@6",
AN: "~@4 c2@4 ~@2 c2 ~ c2@10 ~@2", AO: "[bb1@3 ~@3 bb1@3 ~@3 bb1@6 ~@4 bb1@4 ~@2 bb1@3 ~@3 bb1@2 ab1@6 g1@6]/2",
AP: "f1@3 ~@3 f1@3 ~@3 f1@6 ~@4 f1@2", AQ: "~@4 f1@3 ~@3 f1 ~ f1@6 g1@6", AR: "ab1@3 ~@3 ab1@3 ~@3 ab1@9 ~ bb1@2",
AS: "~@4 bb1@3 ~@3 bb1 ~ bb1@9 ~@3", AT: "c2 ~@5 c2@3 ~@3 c2@6 ~@4 c2@2", AU: "~@4 c2@3 ~@3 c2@2 c2@7 ~@5",
AV: "~@4 c2@3 ~@3 c2 ~ c2@6 d2@6", AW: "eb2@3 ~@3 eb2@3 ~@3 eb2@6 ~@4 eb2@2", AX: "~@4 eb2@3 ~@3 eb2@2 eb2@10 ~@2",
AY: "~@4 db2@3 ~@3 db2 ~ db2@3 ~@3 db2@4 ~@2", AZ: "c2@3 ~@3 c2@3 ~@3 c2@7 ~@3 c3@2",
BA: "~@4 bb2@3 ~@3 bb2 ~ ab2@3 ~ ab2@2 g2@4 ~@2", BB: "~@4 f1@3 ~@3 f1@2 g1@3 ~@3 g1@6",
BC: "~@4 b1@3 ~@3 b1 ~ b1@6 d2@6", BD: "~@4 c2@3 ~@3 c2@2 g1@4 ~@2 g1@4 ~@2", BE: "c2@4 ~@2 c2@3 ~@3 c2@7 ~@3 c2@2",
BF: "~@4 ab1@3 ~@3 ab1 ~ ab1@12", BG: "~@4 c2@3 ~@3 c2 ~ c2@4 ~@2 g1@6", BH: "~@4 c2@3 ~@3 c2@2 c2@12",
BI: "~@4 bb1@3 ~@3 bb1 ~ bb1@12", BJ: "ab1@3 ~@3 ab1@3 ~@3 ab1@6 ~@4 ab1@2",
BK: "~@4 ab1@3 ~@3 ab1@2 ab1@4 ~@2 ab1@6",
BL: "[bb1@4 ~@2 bb1@3 ~@3 bb1@7 ~@3 bb1@4 ~@2 bb1@3 ~@3 bb1@2 c2@6 d2@4 ~@2]/2",
BM: "~@4 c2@3 ~@3 c2 ~ c2@4 ~@2 c2@6", BN: "~@4 bb1@4 ~@2 bb1 ~ bb1@4 ~@2 bb1@6",
BO: "~@4 ab1@3 ~@3 ab1 ~ ab1@3 ~@3 ab1@6",
BP: "[bb1@3 ~@3 bb1@3 ~@3 bb1@6 ~@4 bb1@4 ~@2 bb1@4 ~@2 bb1 ~ bb1@3 ~ b1@8]/2", BQ: "~@2 c2@2 ~ c2 c2@2 ~ c2@3",
BR: "[bb1@3 ~@3 bb1@3 ~@3 bb1@6 ~@4 bb1@4 ~@2 bb1@4 ~@2 bb1@2 ab1@6 g1@6]/2", BS: "~@4 f1@3 ~@3 f1 ~ f1@6 gb1@6",
BT: "g1@3 ~@3 g1@3 ~@3 g1@6 ~@4 g1@2", BU: "~@4 g1@3 ~@3 b1@4 ~@2 d2@4 ~@4",
BV: "~@4 bb1@3 ~@3 bb1 ~ bb1@3 ~@3 bb1@4 ~@2",
BW: "[g1@3 ~@3 g1@3 ~@3 g1@9 ~ b1@6 b2@2 b1@4 b2 ~ d2@3 ~ d3@2 d2@6]/2", BX: "~@4 c2@3 ~@3 c2 ~ c2@4 ~@2 c2@4 ~@2",
BY: "~@4 bb1@3 ~@3 bb1@2 ab2@4 ~@2 g2@4 ~@2", BZ: "f2@2 c2 f1@2 ~ f1@3 ~@2 f1",
CA: "ab1@3 ~@3 ab1@3 ~@3 ab1@10 bb1@2", CB: "~@4 bb1@3 ~@3 bb1 ~ bb1@6 b1@4 ~@2", CC: "c2@2 bb1 g1@2 c1@4 ~@3",
})).s("gm_acoustic_bass").gain(0.4)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
~@8 A@2 B@2 A@2 B@2 ~@16 C@2 D@2 E@2 F@2 G@2 B H A I F@2 A@2 B@2 A@2 H@2 A@2 B@2 A@3 B ~@3 J C@2 D@2 E@2 F@2 A@2 B H A
I F@2 A@2 B@2 A@2 H@2 A@2 B@2 A@3 B ~@4 K ~ L ~ K ~ L ~ K ~ L ~ K ~ L ~ A@2 B@2 A@2 H ~ A@2 B@2 A@2 H@2 A@2 B@2 A@3 B
A@2 B@2 A@2 H@2 A@2 B@2 A@3 B ~
>`.pickRestart({
A: "~@2 [eb5,g5,c6] ~@3 [eb5,g5,c6] ~", B: "~@2 [d5,f5,bb5] ~@3 [d5,f5,bb5] ~",
C: "~@2 [g5,bb5,eb6] ~@3 [g5,bb5,eb6] ~", D: "~@2 [f5,bb5,d6] ~@3 [f5,bb5,d6] ~",
E: "~@2 [f5,ab5,db6] ~@3 [f5,ab5,db6] ~", F: "~@2 [e5,g5,c6] ~@3 [e5,g5,c6] ~",
G: "~@2 [c5,eb5,ab5] ~@3 [c5,eb5,ab5] ~", H: "~@2 [d5,g5,b5] ~@3 [d5,g5,b5] ~",
I: "~@2 [eb5,g5,c6] ~@3 [d5,f5,bb5] ~", J: "~@6 [f5,bb5,d6] ~", K: "~@2 [eb5,g5,c6] ~@5", L: "~@2 [d5,f5,bb5] ~@5",
})).s("gm_acoustic_guitar_steel").gain(0.22)
// chords · rock organ · "ORGAN 3"
const rock_organ = note(`<
~@8 A@2 B@2 C@2 D@2 E@2 B@2 F@2 G@2 H@2 I J K@2 A@2 E@2 B@2 F@2 G@2 H@2 I J K@2 L@2 A@2 B@2 C@2 M J A@2 B@2 N@2 O I
A@2 ~@2 E@2 B@2 F@2 G@2 H@2 I J K@2 L@2 A@2 B@2 C@2 M J A@2 B@2 N@2 O I A@2 ~@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2
B@2 H@2 P@2 A@2 B@2 C@2 M J A@2 B@2 N@2 O I A@2 B@2 C@2 M J A@2 B@2 N@2 O I Q
>`.pickRestart({
A: "[[c5,eb5,g5]@7 ~]/2", B: "[[bb4,d5,f5]@7 ~]/2", C: "[[ab4,c5,eb5]@7 ~]/2", D: "[[d5,f5,bb5]@7 ~]/2",
E: "[[bb4,eb5,g5]@7 ~]/2", F: "[[ab4,db5,f5]@7 ~]/2", G: "[[g4,c5,e5]@7 ~]/2", H: "[[f4,ab4,c5,eb5]@7 ~]/2",
I: "[bb4,d5,f5]@3 ~", J: "[b4,d5,f5]@3 ~", K: "[[c5,eb5,g5]@5 ~ [bb4,d5,f5] ~]/2", L: "[[c5,e5,g5]@7 ~]/2",
M: "[g4,b4,d5]@3 ~", N: "[[f4,ab4,c5]@7 ~]/2", O: "[ab4,c5,eb5]@3 ~", P: "[[g4,b4,d5]@5 ~@3]/2", Q: "[c5,eb5,g5]@3 ~",
})).s("gm_rock_organ").gain(0.39)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<~@48 A@8 ~@7 B@5 ~@16 C@7 D@8 E@8 D@8 ~@2 F@2 D@8 ~ G@32 ~>".pickRestart({
A: "[c7@95 c7]/8", B: "[~@23 c7@94 ~@3]/5", C: "c7/7", D: "[~@23 c7@169]/8", E: "[~@11 c7@85]/8", F: "[~@23 c7@25]/2",
G: "c7/8",
})).s("gm_string_ensemble_1").gain(0.2)
// other · english horn · "ENGL.HORN"
const english_horn = note("<~@10 A ~@55 B ~@39 A ~@7 A ~@6 A ~@39>".pickRestart({
A: "c6@3 ~", B: "c6@19 ~@5",
})).s("gm_english_horn").gain(0.31)
// drums · kick
const kick = s("bd").struct(`<
A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A
B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B
A B A B A B A B C D A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B E
>`.pickRestart({
A: "x ~@5 x ~@4 x", B: "~ x ~ x ~@2", C: "x!2", D: "~@2 x ~@2 x ~@2 x ~@3", E: "x ~@4 x ~@6",
})).gain(0.46)
// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!127 x [~ x ~ x]!32 ~>").gain(0.46)
// drums · low tom
const low_tom = s("lt").struct("<~@160 [~ x ~@2]>").gain(0.41)
// drums · hihat
const hihat = s("hh").struct("<~@16 A@11 B A@3 B A@7 B A@3 B A@19 B A@15 B A@3 B A@7 B A@35 C A@32 ~>".pickRestart({
A: "x!4", B: "x!3 ~", C: "x ~@6 x ~@5 x ~@5 x ~@4",
})).gain(0.36)
// drums · mid tom
const mid_tom = s("mt").struct("<~@160 [~ x ~@4]>").gain(0.41)
// drums · open hat
const open_hat = s("oh").struct("<~@27 A ~@3 A ~@7 A ~@3 A ~@19 A ~@15 A ~@3 A ~@7 A ~@35 B ~@33>".pickRestart({
A: "~@3 x", B: "~@2 x ~@2 x ~@2 x ~@3",
})).gain(0.31)
// drums · crash
const crash = s("cr").struct("<~@100 x ~@60>").gain(0.41)
stack(
drawbar_organ, bass, acoustic_guitar_steel, rock_organ, string_ensemble_1, english_horn, kick, snare, low_tom, hihat,
mid_tom, open_hat, crash
)
More by Hall & Oates
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.