0:00/0:00
// Affirmation — Savage Garden
// 168 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 1 piano (copy of ch 3 synth strings 1)
// note: Full arrangement: all 172 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(168/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, A@4 for four bars: edit a riff to change every repeat.
// bass · fretless bass
const bass = note(`<
~ A B C D A B C D A B C D A B C D A B C D A B C D A E C D A B C F G B H@2 G B H@2 I B H B I H B H I B H B I H B J A B
C B A B C D A B C D A B C F G B H K G L H@2 I B H M I H B H I B H B I H B J N O C B P B C D A B C D A B C D Q ~@7 A B
R D A B C D G B H@2 G B H J S B H B I H B H I B H B I H B H I T H B I H B H I B H U I V B K W@3
>`.pickRestart({
A: "ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1 ~@2",
B: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
C: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~",
D: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
E: "[db1,eb1]@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2", // Dbsus2
F: "ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ f1 ~@2",
G: "g1@2 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2 g1@2 ~ g1@2 ~ g1@2 ~",
H: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~",
I: "bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1@2 ~",
J: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ g1@2 ~",
K: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ eb1@2 ~ f1@2 ~",
L: "g1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
M: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2",
N: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~",
O: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~@4",
P: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~, g1 ~@23", Q: "ab1 ~@23",
R: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ [db1,eb1] ~@2 db1@2 ~", // Dbsus2
S: "ab1@2 ~ [ab1,bb1] ~@2 bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1 ~@2 bb1@2 ~", // Absus2
T: "f1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
U: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ f1 ~@2, f1 ~@23",
V: "eb1@2 ~ eb1@2 ~ f1 ~@2 f1 ~@2 f1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~", W: "[bb1@49 ~@23]/3",
})).s("gm_fretless_bass").gain(0.4)
// chords · synth strings 1
const synth_strings_1 = note(`<
~ A B C D E B C D E F C G E B C H E B C G E B C I E B C J K B C L M N O@2 M N O@2 P N Q N P Q B Q P N Q N R Q B Q S B
C T S U C D V B C W X B C Y M Z AA@2 M N O@2 P N AB B P Q B Q P N Q AC P AD AE AF@2 U AG AH@2 U AG T S AI AG AJ@2 U AG
T AK ~@6 AL@2 U AG T AM@3 AN@2 N AO@6 AP@3 AQ@2 AR U AD P N Q N P AD U AS@2 AT@3 P AD U AU@3 Q AV@2 AD U AD AW@2 ~
>`.pickRestart({
A: "[ab1,ab2,eb3,ab3]", B: "[eb2,eb3,g3,bb3,eb4]", C: "[db2,db3,f3,ab3,db4]",
D: "[ab1,eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4], ab2@5 ~@19", E: "[ab1,ab2,eb3,ab3,c4,eb4]",
F: "[eb2,eb3,g3,bb3,eb4], db2 ~@11", G: "[ab1,ab2,eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4]",
H: "[eb3,ab3,c4,eb4] [eb3,g3,bb3,eb4], [ab1,ab2]@5 ~@7 eb2@5 ~@7", // Ab Eb Ab
I: "[eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4], [ab1,ab2]@5 ~@19", // Ab Eb Ab
J: "[ab1,eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4], ab2@5 ~@7 db4@2 ~@10", K: "[eb3,ab3,c4,eb4], [ab1,ab2]@17 ~@7",
L: "[ab1,eb3,ab3,c4,eb4]@2 [eb2,eb3,g3] ~, ab2@5 ~@7 [bb3,eb4]@12", M: "[g2,g3,bb3,d4]", N: "[eb2,g3,bb3,eb4]",
O: "[f2,f3,a3,c4,f4]/2", P: "[bb1,bb2,f3,bb3,d4]", Q: "[f2,f3,a3,c4,f4]", R: "[bb1,bb2,f3,bb3,d4,f4]",
S: "[ab1,ab2,eb3,ab3,c4]", T: "[ab1,ab2,eb3,ab3,c4] [eb2,eb3,g3,bb3]", U: "[eb2,eb3,g3,bb3]@23 ~",
V: "[ab1,eb3,ab3,c4,eb4], ab2@3 ~", W: "[ab1,ab2,eb3,ab3,c4,eb4] [eb3,g3,bb3,eb4], ~@12 eb2@5 ~@7",
X: "[ab1,ab2,eb3,ab3,c4], eb4@5 ~@19", // Ab
Y: "[ab1,eb3,ab3,c4,eb4]@12 [eb2,eb3,g3,bb3,eb4]@5 ~@7, ab2@5 ~@7 db2@2 ~@10, f4 ~@11", // Ab Eb
Z: "[g3,bb3,eb4]@3 [g3,bb3,d4], eb2", AA: "[f2,f3,a3,c4]/2", AB: "[f2,f3,a3,c4,f4]@11 ~",
AC: "[eb2,eb3,g3,bb3,eb4], f4 ~@7", AD: "[f2,f3,a3,c4]@23 ~", AE: "[eb2,eb3,g3,bb3], f2 ~@7",
AF: "[c4@24 ~ [ab2,eb3,ab3,c4]@22 ~, [f2,f3,a3]@23 ~, ~@12 ab1@11 ~]/2", AG: "[db2,db3,f3,ab3]",
AH: "[eb3@11 ~@13 ab2@24, [ab1,ab2,ab3,c4]@12 eb2@13 ~@23, ~@11 [eb3,g3,bb3]@12 [ab1,eb3,ab3,c4]@25]/2", // Ab Eb Ab
AI: "[eb2,eb3,g3,bb3], db2 ~@23", // Eb
AJ: "[[ab1,ab2,eb3,ab3,c4]@11 ~ [eb2,eb3,g3,bb3]@11 ~ [ab1,eb3,ab3,c4]@24, ~@23 ab2@25]/2", // Ab Eb Ab
AK: "[ab1,ab2,eb3,ab3] ~@3", AL: "[~@24 [ab1,ab2,eb3]@23 ~, ~@23 [ab3,c4]@23 ~@2]/2",
AM: "[[ab1,ab2,eb3,ab3,c4]@23 [eb2,eb3,g3,bb3]@24 [db2,db3,f3,ab3]@24 ~]/3", // Ab Eb Db
AN: "[[ab1,ab2,eb3,ab3,c4]@11 ~@13 [g2,g3,bb3,d4]@24, ~@11 eb3@35 ~@2, ~@11 [g3,bb3]@13 ~@24, ~@12 eb2@35 ~]/2", // Ab Gm
AO: "[[f2,f3,a3,c4,f4]@47 [g2,d3,g3,bb3]@24 ~ [eb2,bb3,eb4]@23 ~ [f3,a3,c4]@47 ~, ~@71 [eb3,g3]@23 ~ [f2,f4]@48 ~]/6", // F Gm Eb5 F Eb F
AP: "[[bb1,bb2,f3,bb3,d4]@23 [eb2,g3,bb3,eb4]@24 ~ [a3,c4]@23 ~, ~@47 [f2,f3,f4]@23 ~@2]/3", // Bb Eb Am F
AQ: "[[eb2,eb3,g3,bb3,eb4]@23 ~ [bb2,f3,bb3,d4]@23 ~, ~@23 bb1@24 ~]/2", AR: "[f2,f3,a3,c4]@23 ~, eb2 ~@23",
AS: "[[f2,f3,a3,c4]@23 ~ [bb1,bb2,f3,d4]@24, ~@23 bb3@24 ~]/2", // F Bb
AT: "[[eb2,g3,bb3,eb4]@23 [f2,f3,a3,c4,f4]@24 ~ [g3,bb3,eb4]@23 ~, ~@47 [eb2,eb3]@23 ~@2]/3", // Eb F Eb
AU: "[[f2,f3,a3,c4]@23 ~ f3@23 ~ g3@24, ~@23 [bb1,bb2,bb3,d4]@24 [eb2,bb3,eb4]@25]/3", // F Bb Eb5
AV: "[[eb2,g3,bb3,eb4]@23 ~ [bb2,bb3]@23 ~, ~@23 [bb1,f3,d4]@23 ~@2, ~@23 ab1@2 ~@23]/2", AW: "[bb1,bb2,f3,bb3]/2",
})).s("gm_synth_strings_1").gain(0.25).pan(0.7)
// bass · synth bass 1
const bass_2 = note(`<
~ A@2 B@29 C D@12 E D@11 F G@14 H D@12 E D@11 A@2 B@9 I@3 B@2 J@2 K@6 B@7 C D@12 E D@15 E D@11 ~@3
>`.pickRestart({
A: "ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~@2 ab0@2 ~@4 ab0 ~@2", B: "ab0 ~@2 ab0 ~@5 ab0 ~@2 ab0 ~@2 ab0 ~@5 ab0 ~@2",
C: "ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~@2 ab0@2 ~@4 bb1 ~@2", D: "bb1 ~@2 bb1 ~@5 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1 ~@2",
E: "bb1 ~@2 bb1 ~@5 [bb1,c2] ~@2 bb1 ~@2 bb1 ~@5 bb1 ~@2", F: "ab1 ~@3 ab1 ~@5 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~",
G: "~ ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~", H: "~ ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 bb1 ~",
I: "~ ab0 ~@2 ab0 ~@5 ab0 ~@2 ab0 ~@2 ab0 ~@5 ab0 ~", J: "ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~@2",
K: "ab1 ~@2 ab1 ~@5 ab1 ~@2 ab1 ~@2 ab1 ~@5 ab1 ~@2",
})).s("gm_synth_bass_1").gain(0.18)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
A@8 B@5 C@7 D@8 E@4 F@8 G H I@8 J@7 K@7 L@4 M@7 N@2 O@4 P@6 Q@5 R@5 S@6 T@7 U V@4 ~@6 W@3 X@4 F@8 G H I@8 J@7 H Y@8
Z@4 AA@3 ~@3
>`.pickRestart({
A: "[~@24 c5@22 ~@11 eb4@6 [eb4,g4]@7 ~@51 bb4 ~@31 eb4@6 [eb4,g4]@8 ~ [f4,ab4]@23 [ab2,ab3,eb4], ~@22 [ab2,ab3,eb4]@24 ~ [eb2,eb3]@24 [db2,f4]@25 ~@11 eb4@12 [ab2,ab3,eb4]@25 bb4@24 ~@24, ~@23 ab4@23 eb4@11 ab4@14 ~ ab4@24 [ab4,c5]@12 [eb2,g4]@14 ~@21 [eb2,eb3]@25 ~@24, ~@47 g4@16 ~@7 [db3,db4]@25 [ab2,ab3]@14 bb4@11 [ab4,c5]@24 g4@15 ~@8 [db2,db3,db4]@25, ~@48 bb4@23 ~@23 eb4@13 eb3@14 ~@22 eb4@10 ab4@15 ~@24]/8", // Eb Fm Ab5 Eb Db Ab5 Ab Eb …
B: "[~@57 eb4@6 [eb4,g4]@8 ~@38 bb4@11, [ab4,c5]@14 ~@10 [ab2,ab3,ab4,c5]@24 ~@23 [db2,db3,db4]@25 [ab2,ab4]@14 ~@10, ~@11 [eb2,eb3]@14 ~@22 [eb2,eb3,bb4]@25 ~@23 eb4@12 eb4@13, ~@11 eb4@12 eb4@23 eb4@11 ab4@14 ~@24 ab3@13 [eb2,eb3,g4]@12, ~@12 [g4,bb4]@14 ~@21 g4@16 ~@9 [f4,ab4]@25 c5@13 ~@10]/5", // Eb Ab Db Ab Eb Eb5 Eb Gm …
C: "[~ [ab4,c5]@22 ~ bb4@9 [eb4,bb4]@6 [eb4,g4,bb4]@8 ~@49 [ab4,c5]@22 ~@2 bb4@22 ~@25 ab3, [ab2,ab3,eb4]@23 [eb2,eb3]@25 ~@22 eb4@13 [eb2,eb3,eb4]@12 [ab2,ab3,eb4]@24 [eb2,eb3,g4]@24 ~ ab4@24, ~@23 eb4@10 ab4@15 [f4,ab4]@23 [ab2,ab3,ab4]@13 g4@12 ~@22 eb4@24 [db2,db3,db4]@26, ~@24 g4@15 ~@8 [db2,db3,db4]@25 c5@13 bb4@12 ~@46 f4@25, ~@83 eb4]/7", // Ab Eb5 Eb Ab Ab5 Eb Ab5 Eb …
D: "[~@13 bb4@10 ~ [ab4,c5]@22 ~@2 [g4,bb4]@22 ~@2 ab4@23 ~@14 bb4@10 ~ [ab4,c5]@22 ~@2 bb4@22 ~@25 [ab2,ab3], [ab2,ab4]@12 g4@12 ~@22 eb4@25 f4@24 eb4@11 eb4@12 ~ [ab2,ab3,eb4]@24 ~@23 [db2,db3,db4]@26, ~ c5@12 ~@10 [ab2,ab3,eb4]@23 ~@24 [db2,db3,db4]@26 ab4@12 g4@12 ~@22 eb4@25 f4@25, ~@11 [eb2,eb3,eb4]@13 ~@23 [eb2,eb3]@25 ~@23 [ab2,ab3]@12 [eb2,eb3]@13 ~@23 [eb2,eb3,g4]@25 ~@22 eb4@2, ~@97 c5@12 ~@59 ab4@24]/8", // Ab Gm Ab Ab5 Db Ab5 Db Eb …
E: "[~@12 bb4@10 ~@2 c5@22 ~@2 [g4,bb4]@23 ~@24 [ab2,ab4], [ab4,c5]@11 g4@11 eb4@24 eb4@25 [db2,db3,db4]@25, ~@10 [eb2,eb3,eb4]@13 [ab2,ab3,ab4]@24 [eb2,eb3]@25 [f4,ab4]@24, ~@47 [ab3,eb4]]/4", // Gm Ab Db Eb Ab Eb Fm Ab5
F: "[~@12 [g4,bb4]@8 gb2 ~@2 [bb3,d4]@23 ~@27 [a3,c4]@46 ~@2 d4@22 ~@2 eb4@22 ~@2 f4@23, c5@13 ~@9 g3@24 g3@25 [f2,f3]@47 ~ g2@25 ~@24 [f2,a3,c4]@24, ~@11 [eb2,eb3,eb4]@10 ~ g2@25 [eb2,bb3]@26 ~@47 bb3@23 ~@24 f3@25, ~@48 eb4@25 ~@46 g3@23 ~ [eb2,g3,bb3]@25 ~@24]/8", // Gm Bb Am F Eb Eb5 Eb
G: "~@3 [f3,a3,c4,f4]@2 f2 ~@4 f2@2, ~@2 f2@7 ~@3 [f3,a3,c4,f4]@5 [f3,c4,f4]@7, ~@15 f2@5 ~@4, ~@3 a3", // F F5
H: "~@9 [f3,bb3,d4]@14 f3, [f3,bb3,d4]@3 ~@5, ~ bb2@3", // Bb
I: "[~ c4 ~@22 c4@23 ~@2 bb3@21 ~@26 [a3,c4]@23 ~@2 [g3,bb3]@22 ~@24 [bb2,bb3,d4]@25, eb2@23 [f2,a3]@23 ~ [eb2,eb3]@25 ~@23 f2@25 eb2@24 ~@21 f3@27, ~@9 eb3@15 ~@47 [bb2,bb3]@25 ~@23 eb3@25 ~@12 f4@11 ~@25, ~@10 [g3,bb3]@14 ~@24 g3@23 ~ d4@24 ~@49 c4@22 ~@25, ~@22 f3@24 ~@24 f3@24 f3@26 ~@23 [f2,f3,a3]@23 ~@26]/8", // Am Gm Bb F Eb Bb Gm F
J: "[~ bb3@21 ~@2 c4@23 ~@2 bb3@12 eb4@10 ~@50 eb4@22 ~@3 c4@19 ~@3, [eb2,eb3,g3]@22 f3@25 ~@2 g3@23 [bb2,bb3,d4]@24 f2@22 eb3@26 ~ eb4@2 ~@21, ~@23 [f2,a3]@24 [eb2,eb3]@24 f3@24 f3@24 [eb2,g3]@25 [f2,a3]@23 ~, ~@97 [a3,c4]@23 bb3@24 ~ f4@20 ~@3, ~@99 f4@21 ~@23 f3@22 ~@3]/7", // Eb Bb F Eb F Am
K: "[[ab2,ab3,ab4,c5]@23 ~@2 bb4@21 ~@51 [ab4,c5]@22 ~@26 ab4@23, ~@23 [eb2,eb4]@23 db4@26 [ab2,ab3]@12 eb4@11 eb4@23 ~@24 db4@26, ~@24 [eb3,g4]@23 [db2,db3]@26 ~ c5@11 g4@11 [ab2,ab3]@24 ~@23 [db2,db3]@25, ~@48 [f4,ab4]@25 ab4@13 bb4@11 ~@24 [g4,bb4]@23 f4@24, ~@71 eb4@13 [eb2,eb3]@13 ~@22 [eb2,eb3,eb4]@25 ~@24]/7", // Ab Eb Ab Eb Db Ab Db Fm …
L: "[~@13 bb4@10 ~@2 [ab4,c5]@22 ~@25 [f4,ab4]@23 eb4, [ab2,ab3]@12 [eb2,eb3,g4]@13 ~@22 [eb2,eb3,eb4]@24 [db2,db3]@25, eb4@11 eb4@12 eb4@24 ~ g4@24 ~@24, ~ ab4@13 ~@10 [ab2,ab3]@24 ~@22 db4@26, ~@2 c5@12 ~@35 bb4@23 ~@24]/4", // Ab Fm Ab Eb Db Ab
M: "[~ c5@10 ~@2 bb4@10 ~@2 c5@22 ~@2 bb4@22 ~@2 ab4@22 ~@14 [g4,bb4]@8 gb2 ~@2 d4@23 ~@2 eb4@23, [ab2,ab3,ab4]@12 g4@11 [ab3,eb4]@24 [eb2,eb3,eb4]@24 db4@24 [ab2,ab3]@13 [eb2,eb3]@10 [g2,g3]@26 [eb2,bb3]@24, ~@11 [eb2,eb3,eb4]@13 [ab2,ab4]@24 g4@24 [db2,db3,f4]@24 ab4@14 ~@33 g3@25, ~@95 eb4@12 eb4@11 ~ bb3@25 ~@24, ~@97 c5@13 ~@58]/7", // Gm Ab Ab5 Eb Ab Eb G Eb5 …
N: "[~ [a3,c4]@46 ~, [f2,f3]@47 ~]/2", // Am F
O: "[~ [bb3,d4]@22 ~@2 eb4@22 ~@35 f2@3 ~@8 f2@3, g2@24 [eb2,bb3]@24 [a3,c4]@30 ~@13 a3@5, g3@23 g3@25 f2@26 ~ f2@7 ~@6 f2@5 ~@3, ~@47 f3@31 ~ [f3,a3,c4,f4]@5 ~ [f3,a3,c4,f4]@5 [f3,c4,f4]@6, ~@49 f4@29 ~@18]/4", // Bb Eb5 Am F F5
P: "[~@10 f3@14 ~@2 c4 ~@22 c4@22 ~@50 [a3,c4]@23, ~ [f3,bb3,d4]@9 [bb3,d4]@17 ~@8 bb3@13 [f2,a3]@23 ~@23 f3@24 ~ f3@25, ~@7 bb2@18 eb2@24 ~@23 eb2@24 ~@24 f2@24, ~@24 f3@2 ~@8 [eb3,g3]@15 ~@22 eb3@25 [bb2,bb3,d4]@25 ~@23, ~@47 f3@24 ~@2 [g3,bb3]@23 ~@48]/6", // Am Bb F Eb Bb Gm
Q: "[~ [eb2,g3,bb3]@22 ~@74 c4@23, eb3@24 [f2,a3]@23 ~ [bb2,d4]@26 ~@46, ~@23 f3@23 f3@28 ~@20 f3@25 ~, ~@25 c4@22 bb3@26 [eb2,g3,bb3]@23 [f2,a3]@24, ~@37 f4@11 ~@24 eb3@23 ~@25]/5", // Eb F Bb Eb F
R: "[~ bb3@12 eb4@10 ~@28 f4@20 ~@2 [bb3,eb4]@23 ~@3 c4@19 ~@2, [eb2,eb3]@23 f3@25 f3@24 [eb2,g3]@25 ~ eb4@2 ~@20, ~ g3@23 ~ [bb2,bb3,d4]@24 [f2,a3]@24 ~@24 [f2,a3]@23, ~@50 c4@23 ~@23 f3@22 ~@2, ~@71 eb3@26 ~ f4@20 ~@2]/5", // Eb5 Eb Bb F
S: "[~ c5@22 ~@11 eb4@6 [eb4,g4]@7 ~@39 bb4@10 ~ bb4 ~@32 eb4@6 [eb4,g4]@8, ab4@23 eb4@11 ab4@14 [f4,ab4]@25 c5@12 g4@13 ~@22 g4@16 ~@8, ~@12 [eb2,eb3]@12 ~@12 [ab2,ab3,ab4]@7 ~@5 [ab2,ab3,eb4]@12 eb4@5 ab4@7, ~@24 g4@16 ~@7 [db2,db3,db4]@25 ~@12 [eb2,eb3]@14 ~@22 [eb2,eb3]@24, ~@25 bb4@23 ~@23 eb4@13 eb4@12 ~ [ab4,c5]@24 bb4@23]/6", // Eb Fm Eb Ab Ab5 Db Eb Ab
T: "[~ ab4@22 ~@59 eb4@6 [eb4,g4]@7 ~@2 ab4@23 ~@26 c5@22, [db2,db3,db4,f4]@24 [ab2,ab3,ab4]@13 bb4@13 ~@21 eb4@11 ab4@14 ~@24 [ab2,ab3]@14 bb4@13 ~@21, ~@23 eb4@12 ~ [eb2,eb3,g4]@14 ~@21 [eb2,eb3]@25 [db2,db3,f4]@25 ~@12 [eb2,eb3,g4]@14 ~@21, ~@25 c5@13 ~@11 [ab4,c5]@23 g4@16 ~@7 db4@26 [ab4,c5]@14 ~@33, ~@36 eb4@12 [ab2,ab3,eb4]@24 bb4@24 ~@24 eb4@12 eb4@13 [ab2,ab3,eb4,ab4]@23]/7", // Eb Db Ab Eb Db Eb Ab Ab5
U: "~ bb4@9 [eb4,bb4]@6 [eb4,g4,bb4]@8, [eb2,eb3], g4@2 ~, eb4@5 ab4@7", // Eb5 Eb
V: "[~ ab4@22 ~@15 bb4@48 ~@10, [db2,db3,db4,f4]@24 [ab2,ab4]@13 g4@48 ~@11, ~@23 ab3@13 [eb2,eb3]@48 ~@12, ~@23 eb4@12 eb4@48 ~@13, ~@25 c5@13 ~@58]/4", // Db Ab Eb
W: "[~ c5@22 ~ [g4,bb4]@22 ~@25 [ab2,ab3], ab4@23 [eb2,eb3,eb4]@24 f4@25, ~@23 [db2,db3,db4]@13, ~@2 ab4, ~@35 eb4]/3", // Gm Ab Eb Db
X: "[~@24 [ab4,c5]@22 ~@2 [g4,bb4]@23 ~@24 [ab2,ab4], [ab4,c5]@11 [eb2,eb3]@12 [ab2,ab3]@25 ~@23 [db2,db3,db4]@25, ~@10 eb4@12 eb4@24 eb4@25 ~ [f4,ab4]@24, ~@12 [g4,bb4]@12 ~@23 [eb2,eb3]@25 ~@22 [ab3,eb4]@2]/4", // Ab Gm Ab Eb Ab Db Fm Gm …
Y: "[~@2 c4 ~@21 [a3,c4]@23 ~@49 [a3,c4]@23 ~@2 [g3,bb3]@22 ~@25 d4@24, eb2@23 [f2,f3]@24 ~ [eb2,g3]@24 ~@23 f2@25 eb2@24 [f2,a3]@23 [bb2,bb3]@25, ~@9 eb3@15 ~@23 eb3@25 [bb2,bb3,d4]@25 ~@22 eb3@25 ~@12 f4@11 ~@25, ~@10 g3@14 ~@46 f3@24 f3@26 ~@23 f3@22 f3@27, ~@11 bb3@14 ~@24 bb3@23 ~@73 c4@22 ~@25]/8", // Am Gm F Eb F Bb
Z: "[~ bb3@21 ~@2 [a3,c4]@23 ~@2 bb3@12 eb4@10 ~ [bb2,bb3,d4]@24, [eb2,eb3,g3]@22 f3@25 eb3@24 f3@25, ~@23 f2@24 ~ eb2@24 ~@24, ~@49 g3@23 ~@24]/4", // Am Bb Eb
AA: "[~@3 f4@20 ~@2 eb4@23 ~@3 c4@19 ~@2, [f2,f3]@24 [eb2,g3,bb3]@25 ~ eb4@2 ~@20, ~ a3@22 eb3@26 ~ f4@20 ~@2, ~@2 c4@23 ~@23 [f2,f3,a3]@22 ~@2]/3", // F Eb F
})).s("gm_electric_guitar_clean").gain(0.16).pan(0.1)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
A@8 B@5 C@7 D@8 E@4 F@8 G H I@8 J@7 K@7 L@4 M@7 N@2 O@4 P@6 Q@5 R@5 S@6 T@7 U V@4 ~@6 W@3 X@4 F@8 G H I@8 J@7 H Y@8
Z@4 AA@3 ~@3
>`.pickRestart({
A: "[~@24 c4@22 ~@11 eb3@6 [eb3,g3]@7 ~@51 bb3 ~@31 eb3@6 [eb3,g3]@8 ~ [f3,ab3]@23 [ab1,ab2,eb3], ~@22 [ab1,ab2,eb3]@24 ~ [eb1,eb2]@24 [db1,f3]@25 ~@11 eb3@12 [ab1,ab2,eb3]@25 bb3@24 ~@24, ~@23 ab3@23 eb3@11 ab3@14 ~ ab3@24 [ab3,c4]@12 [eb1,g3]@14 ~@21 [eb1,eb2]@25 ~@24, ~@47 g3@16 ~@7 [db2,db3]@25 [ab1,ab2]@14 bb3@11 [ab3,c4]@24 g3@15 ~@8 [db1,db2,db3]@25, ~@48 bb3@23 ~@23 eb3@13 eb2@14 ~@22 eb3@10 ab3@15 ~@24]/8", // Eb Fm Ab5 Eb Db Ab5 Ab Eb …
B: "[~@57 eb3@6 [eb3,g3]@8 ~@38 bb3@11, [ab3,c4]@14 ~@10 [ab1,ab2,ab3,c4]@24 ~@23 [db1,db2,db3]@25 [ab1,ab3]@14 ~@10, ~@11 [eb1,eb2]@14 ~@22 [eb1,eb2,bb3]@25 ~@23 eb3@12 eb3@13, ~@11 eb3@12 eb3@23 eb3@11 ab3@14 ~@24 ab2@13 [eb1,eb2,g3]@12, ~@12 [g3,bb3]@14 ~@21 g3@16 ~@9 [f3,ab3]@25 c4@13 ~@10]/5", // Eb Ab Db Ab Eb Eb5 Eb Gm …
C: "[~ [ab3,c4]@22 ~ bb3@9 [eb3,bb3]@6 [eb3,g3,bb3]@8 ~@49 [ab3,c4]@22 ~@2 bb3@22 ~@25 ab2, [ab1,ab2,eb3]@23 [eb1,eb2]@25 ~@22 eb3@13 [eb1,eb2,eb3]@12 [ab1,ab2,eb3]@24 [eb1,eb2,g3]@24 ~ ab3@24, ~@23 eb3@10 ab3@15 [f3,ab3]@23 [ab1,ab2,ab3]@13 g3@12 ~@22 eb3@24 [db1,db2,db3]@26, ~@24 g3@15 ~@8 [db1,db2,db3]@25 c4@13 bb3@12 ~@46 f3@25, ~@83 eb3]/7", // Ab Eb5 Eb Ab Ab5 Eb Ab5 Eb …
D: "[~@13 bb3@10 ~ [ab3,c4]@22 ~@2 [g3,bb3]@22 ~@2 ab3@23 ~@14 bb3@10 ~ [ab3,c4]@22 ~@2 bb3@22 ~@25 [ab1,ab2], [ab1,ab3]@12 g3@12 ~@22 eb3@25 f3@24 eb3@11 eb3@12 ~ [ab1,ab2,eb3]@24 ~@23 [db1,db2,db3]@26, ~ c4@12 ~@10 [ab1,ab2,eb3]@23 ~@24 [db1,db2,db3]@26 ab3@12 g3@12 ~@22 eb3@25 f3@25, ~@11 [eb1,eb2,eb3]@13 ~@23 [eb1,eb2]@25 ~@23 [ab1,ab2]@12 [eb1,eb2]@13 ~@23 [eb1,eb2,g3]@25 ~@22 eb3@2, ~@97 c4@12 ~@59 ab3@24]/8", // Ab Gm Ab Ab5 Db Ab5 Db Eb …
E: "[~@12 bb3@10 ~@2 c4@22 ~@2 [g3,bb3]@23 ~@24 [ab1,ab3], [ab3,c4]@11 g3@11 eb3@24 eb3@25 [db1,db2,db3]@25, ~@10 [eb1,eb2,eb3]@13 [ab1,ab2,ab3]@24 [eb1,eb2]@25 [f3,ab3]@24, ~@47 [ab2,eb3]]/4", // Gm Ab Db Eb Ab Eb Fm Ab5
F: "[~@12 [g3,bb3]@8 gb1 ~@2 [bb2,d3]@23 ~@27 [a2,c3]@46 ~@2 d3@22 ~@2 eb3@22 ~@2 f3@23, c4@13 ~@9 g2@24 g2@25 [f1,f2]@47 ~ g1@25 ~@24 [f1,a2,c3]@24, ~@11 [eb1,eb2,eb3]@10 ~ g1@25 [eb1,bb2]@26 ~@47 bb2@23 ~@24 f2@25, ~@48 eb3@25 ~@46 g2@23 ~ [eb1,g2,bb2]@25 ~@24]/8", // Gm Bb Am F Eb Eb5 Eb
G: "~@3 [f2,a2,c3,f3]@2 f1 ~@4 f1@2, ~@2 f1@7 ~@3 [f2,a2,c3,f3]@5 [f2,c3,f3]@7, ~@15 f1@5 ~@4, ~@3 a2", // F F5
H: "~@9 [f2,bb2,d3]@14 f2, [f2,bb2,d3]@3 ~@5, ~ bb1@3", // Bb
I: "[~ c3 ~@22 c3@23 ~@2 bb2@21 ~@26 [a2,c3]@23 ~@2 [g2,bb2]@22 ~@24 [bb1,bb2,d3]@25, eb1@23 [f1,a2]@23 ~ [eb1,eb2]@25 ~@23 f1@25 eb1@24 ~@21 f2@27, ~@9 eb2@15 ~@47 [bb1,bb2]@25 ~@23 eb2@25 ~@12 f3@11 ~@25, ~@10 [g2,bb2]@14 ~@24 g2@23 ~ d3@24 ~@49 c3@22 ~@25, ~@22 f2@24 ~@24 f2@24 f2@26 ~@23 [f1,f2,a2]@23 ~@26]/8", // Am Gm Bb F Eb Bb Gm F
J: "[~ bb2@21 ~@2 c3@23 ~@2 bb2@12 eb3@10 ~@50 eb3@22 ~@3 c3@19 ~@3, [eb1,eb2,g2]@22 f2@25 ~@2 g2@23 [bb1,bb2,d3]@24 f1@22 eb2@26 ~ eb3@2 ~@21, ~@23 [f1,a2]@24 [eb1,eb2]@24 f2@24 f2@24 [eb1,g2]@25 [f1,a2]@23 ~, ~@97 [a2,c3]@23 bb2@24 ~ f3@20 ~@3, ~@99 f3@21 ~@23 f2@22 ~@3]/7", // Eb Bb F Eb F Am
K: "[[ab1,ab2,ab3,c4]@23 ~@2 bb3@21 ~@51 [ab3,c4]@22 ~@26 ab3@23, ~@23 [eb1,eb3]@23 db3@26 [ab1,ab2]@12 eb3@11 eb3@23 ~@24 db3@26, ~@24 [eb2,g3]@23 [db1,db2]@26 ~ c4@11 g3@11 [ab1,ab2]@24 ~@23 [db1,db2]@25, ~@48 [f3,ab3]@25 ab3@13 bb3@11 ~@24 [g3,bb3]@23 f3@24, ~@71 eb3@13 [eb1,eb2]@13 ~@22 [eb1,eb2,eb3]@25 ~@24]/7", // Ab Eb Ab Eb Db Ab Db Fm …
L: "[~@13 bb3@10 ~@2 [ab3,c4]@22 ~@25 [f3,ab3]@23 eb3, [ab1,ab2]@12 [eb1,eb2,g3]@13 ~@22 [eb1,eb2,eb3]@24 [db1,db2]@25, eb3@11 eb3@12 eb3@24 ~ g3@24 ~@24, ~ ab3@13 ~@10 [ab1,ab2]@24 ~@22 db3@26, ~@2 c4@12 ~@35 bb3@23 ~@24]/4", // Ab Fm Ab Eb Db Ab
M: "[~ c4@10 ~@2 bb3@10 ~@2 c4@22 ~@2 bb3@22 ~@2 ab3@22 ~@14 [g3,bb3]@8 gb1 ~@2 d3@23 ~@2 eb3@23, [ab1,ab2,ab3]@12 g3@11 [ab2,eb3]@24 [eb1,eb2,eb3]@24 db3@24 [ab1,ab2]@13 [eb1,eb2]@10 [g1,g2]@26 [eb1,bb2]@24, ~@11 [eb1,eb2,eb3]@13 [ab1,ab3]@24 g3@24 [db1,db2,f3]@24 ab3@14 ~@33 g2@25, ~@95 eb3@12 eb3@11 ~ bb2@25 ~@24, ~@97 c4@13 ~@58]/7", // Gm Ab Ab5 Eb Ab Eb G Eb5 …
N: "[~ [a2,c3]@46 ~, [f1,f2]@47 ~]/2", // Am F
O: "[~ [bb2,d3]@22 ~@2 eb3@22 ~@35 f1@3 ~@8 f1@3, g1@24 [eb1,bb2]@24 [a2,c3]@30 ~@13 a2@5, g2@23 g2@25 f1@26 ~ f1@7 ~@6 f1@5 ~@3, ~@47 f2@31 ~ [f2,a2,c3,f3]@5 ~ [f2,a2,c3,f3]@5 [f2,c3,f3]@6, ~@49 f3@29 ~@18]/4", // Bb Eb5 Am F F5
P: "[~@10 f2@14 ~@2 c3 ~@22 c3@22 ~@50 [a2,c3]@23, ~ [f2,bb2,d3]@9 [bb2,d3]@17 ~@8 bb2@13 [f1,a2]@23 ~@23 f2@24 ~ f2@25, ~@7 bb1@18 eb1@24 ~@23 eb1@24 ~@24 f1@24, ~@24 f2@2 ~@8 [eb2,g2]@15 ~@22 eb2@25 [bb1,bb2,d3]@25 ~@23, ~@47 f2@24 ~@2 [g2,bb2]@23 ~@48]/6", // Am Bb F Eb Bb Gm
Q: "[~ [eb1,g2,bb2]@22 ~@74 c3@23, eb2@24 [f1,a2]@23 ~ [bb1,d3]@26 ~@46, ~@23 f2@23 f2@28 ~@20 f2@25 ~, ~@25 c3@22 bb2@26 [eb1,g2,bb2]@23 [f1,a2]@24, ~@37 f3@11 ~@24 eb2@23 ~@25]/5", // Eb F Bb Eb F
R: "[~ bb2@12 eb3@10 ~@28 f3@20 ~@2 [bb2,eb3]@23 ~@3 c3@19 ~@2, [eb1,eb2]@23 f2@25 f2@24 [eb1,g2]@25 ~ eb3@2 ~@20, ~ g2@23 ~ [bb1,bb2,d3]@24 [f1,a2]@24 ~@24 [f1,a2]@23, ~@50 c3@23 ~@23 f2@22 ~@2, ~@71 eb2@26 ~ f3@20 ~@2]/5", // Eb5 Eb Bb F
S: "[~ c4@22 ~@11 eb3@6 [eb3,g3]@7 ~@39 bb3@10 ~ bb3 ~@32 eb3@6 [eb3,g3]@8, ab3@23 eb3@11 ab3@14 [f3,ab3]@25 c4@12 g3@13 ~@22 g3@16 ~@8, ~@12 [eb1,eb2]@12 ~@12 [ab1,ab2,ab3]@7 ~@5 [ab1,ab2,eb3]@12 eb3@5 ab3@7, ~@24 g3@16 ~@7 [db1,db2,db3]@25 ~@12 [eb1,eb2]@14 ~@22 [eb1,eb2]@24, ~@25 bb3@23 ~@23 eb3@13 eb3@12 ~ [ab3,c4]@24 bb3@23]/6", // Eb Fm Eb Ab Ab5 Db Eb Ab
T: "[~ ab3@22 ~@59 eb3@6 [eb3,g3]@7 ~@2 ab3@23 ~@26 c4@22, [db1,db2,db3,f3]@24 [ab1,ab2,ab3]@13 bb3@13 ~@21 eb3@11 ab3@14 ~@24 [ab1,ab2]@14 bb3@13 ~@21, ~@23 eb3@12 ~ [eb1,eb2,g3]@14 ~@21 [eb1,eb2]@25 [db1,db2,f3]@25 ~@12 [eb1,eb2,g3]@14 ~@21, ~@25 c4@13 ~@11 [ab3,c4]@23 g3@16 ~@7 db3@26 [ab3,c4]@14 ~@33, ~@36 eb3@12 [ab1,ab2,eb3]@24 bb3@24 ~@24 eb3@12 eb3@13 [ab1,ab2,eb3,ab3]@23]/7", // Eb Db Ab Eb Db Eb Ab Ab5
U: "~ bb3@9 [eb3,bb3]@6 [eb3,g3,bb3]@8, [eb1,eb2], g3@2 ~, eb3@5 ab3@7", // Eb5 Eb
V: "[~ ab3@22 ~@15 bb3@48 ~@10, [db1,db2,db3,f3]@24 [ab1,ab3]@13 g3@48 ~@11, ~@23 ab2@13 [eb1,eb2]@48 ~@12, ~@23 eb3@12 eb3@48 ~@13, ~@25 c4@13 ~@58]/4", // Db Ab Eb
W: "[~ c4@22 ~ [g3,bb3]@22 ~@25 [ab1,ab2], ab3@23 [eb1,eb2,eb3]@24 f3@25, ~@23 [db1,db2,db3]@13, ~@2 ab3, ~@35 eb3]/3", // Gm Ab Eb Db
X: "[~@24 [ab3,c4]@22 ~@2 [g3,bb3]@23 ~@24 [ab1,ab3], [ab3,c4]@11 [eb1,eb2]@12 [ab1,ab2]@25 ~@23 [db1,db2,db3]@25, ~@10 eb3@12 eb3@24 eb3@25 ~ [f3,ab3]@24, ~@12 [g3,bb3]@12 ~@23 [eb1,eb2]@25 ~@22 [ab2,eb3]@2]/4", // Ab Gm Ab Eb Ab Db Fm Gm …
Y: "[~@2 c3 ~@21 [a2,c3]@23 ~@49 [a2,c3]@23 ~@2 [g2,bb2]@22 ~@25 d3@24, eb1@23 [f1,f2]@24 ~ [eb1,g2]@24 ~@23 f1@25 eb1@24 [f1,a2]@23 [bb1,bb2]@25, ~@9 eb2@15 ~@23 eb2@25 [bb1,bb2,d3]@25 ~@22 eb2@25 ~@12 f3@11 ~@25, ~@10 g2@14 ~@46 f2@24 f2@26 ~@23 f2@22 f2@27, ~@11 bb2@14 ~@24 bb2@23 ~@73 c3@22 ~@25]/8", // Am Gm F Eb F Bb
Z: "[~ bb2@21 ~@2 [a2,c3]@23 ~@2 bb2@12 eb3@10 ~ [bb1,bb2,d3]@24, [eb1,eb2,g2]@22 f2@25 eb2@24 f2@25, ~@23 f1@24 ~ eb1@24 ~@24, ~@49 g2@23 ~@24]/4", // Am Bb Eb
AA: "[~@3 f3@20 ~@2 eb3@23 ~@3 c3@19 ~@2, [f1,f2]@24 [eb1,g2,bb2]@25 ~ eb3@2 ~@20, ~ a2@22 eb2@26 ~ f3@20 ~@2, ~@2 c3@23 ~@23 [f1,f2,a2]@22 ~@2]/3", // F Eb F
})).s("gm_electric_guitar_jazz").gain(0.16).pan(0.9)
// chords · distortion guitar
const distortion_guitar = note("<~@8 A B@3 C D@4 ~@39 A E@4 ~@35 F G@3 H I@3 J K@3 L@5 ~@15 M@5 ~@39>".pickRestart({
A: "~@3 eb4", B: "[gb4@51 ~@3 eb4@5 ~ f4@5 ab4@5 ~@2]/3", C: "bb4@6 ab4@5 ~", D: "[ab4@95 ~]/4", E: "gb4/4",
F: "~@19 eb4@5", G: "[gb4@51 ~@4 f4@5 ab4@5 ~@2 [bb4,c5]@4 ~]/3", H: "~ bb4@11 ~ f4@4 ~@7, ~@12 g4@11 ~",
I: "[ab4@53 ~ ab4@10 ~ [eb4,bb4]@6 ~, ~@53 eb4@10 ~@2 ab4@3 ~@4]/3", // Eb5
J: "~@9 bb4@2 ~@2 a4 ~@10, [eb4,c5]@12 [eb4,g4]@11 ~", K: "[[eb4,ab4]@23 ~]/3",
L: "[bb4@12 [eb4,g4]@10 ~ [eb4,ab4]@94 ~@3, f4@11 ~@109]/5", M: "[~@16 f4@43 ~@2 [d5,g5]@52 ~@7]/5",
})).s("gm_distortion_guitar").gain(0.25).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~ A@39 B C A@13 D A@4 E A@13 E A@5 B F A@12 E D E A@24 B ~@15 C A@13 D A C A@13 D A B ~@2
>`.pickRestart({
A: "x ~@2 x!2 ~@3", B: "x", C: "x ~ x!3 ~@3", D: "x!2", E: "~ x ~@8 x ~@2 x ~@10", F: "x ~@6 x ~@2 x ~@2 x ~@10",
})).gain(0.46)
// drums · snare
const snare = s("sd").struct(`<
A B@39 C B@15 D B@8 E B@7 E B@6 C B@12 E B@2 F B@24 ~@14 G@2 B@15 D B@15 D ~@3
>`.pickRestart({
A: "x!8", B: "~ x ~ x", C: "~ x!7", D: "~@2 x ~@2 x!3", E: "~@7 x ~@11 x ~@4", F: "~@7 x ~@8 x ~@2 x ~@2 x ~",
G: "x!2 ~ x!2 ~ x ~ x!3 ~ x!2 ~ x!2 ~ x!2 ~ x ~ x",
})).gain(0.46)
// drums · low tom
const low_tom = s("lt").struct("<[~@5 x!3] ~@39 [~ x!7] ~@39 [~ x!7] ~@55 [x!8] ~@35>").gain(0.4)
// drums · low tom · soft notes
const low_tom_soft = s("lt").struct("<[x!5 ~@3] ~@171>").gain(0.12)
// drums · hihat
const hihat = s("hh").struct(`<
~ A B@2 C B@15 C B@19 D A B@2 C B@7 C B@7 C B@19 D A B@2 C B@7 C B@4 A B@2 C B@12 A B@2 C B@4 ~@16 A B@2 C B@7 C B@4 A
B@2 C B@7 C B@4 ~@3
>`.pickRestart({
A: "~ x!7", B: "x!8", C: "x!7 ~", D: "x",
})).gain(0.29)
// drums · open hat
const open_hat = s("oh").struct(`<
~@4 A ~@15 A ~@23 A ~@7 A ~@7 A ~@23 A ~@7 A ~@7 A ~@15 A ~@23 A ~@7 A ~@7 A ~@7 A ~@7
>`.pickRestart({
A: "~@7 x",
// … 14 more lines
More by Savage Garden
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.