0:00/0:00
// Too Much Heaven — Bee Gees
// 84 bpm, 4/4, key C# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 11, 4/4 at bar 12, 2/4 at bar 16, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 105 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(84/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.
// chords · epiano1 · "E.PIANO 1"
const epiano1 = note(`<
A@5 B C D E F G@6 H@2 I J K@2 L M N O P Q@2 R@2 S T U V@8 W X ~@4 N Y P Q@2 Z@2 AA AB AC AD@6 AE AF AG AH AI AJ@3 AK
AL AM AN AO AP AQ@6 AR AS AN AO AP AQ@6 AN AO AP AQ@6 AT
>`.pickRestart({
A: "[~@16 [bb3,db4,f4]@6 [gb3,bb3,db4,f4]@2 [gb3,bb3,db4,f4]@22 ~@2 [bb3,db4,f4]@7 ~ [gb3,bb3,db4,f4]@4 [gb3,bb3,db4,f4]@11 ~ [gb3,bb3,db4]@3 ~ [gb3,bb3,db4]@4, ~@15 gb3@6 ~@26 gb3@7 ~@26]/5", // Bbm Gbmaj7 Bbm Gbmaj7 Gb
B: "[ab3,c4,f4,ab4]@15 ~", C: "[ab3,c4,f4,ab4]@4 ~@2 [gb3,bb3,db4]@9 ~", D: "~@3 ab4@5, db3, ~ db4@7, ~ f4@3",
E: "~@2 f4 [eb4,ab4]@5, f3, ~@2 c4@13 ~", F: "~@2 gb4 [f4,bb4]@4 ~, gb3@15 ~, ~ db4@6 ~",
G: "[~@2 [f4,ab4]@2 ~@2 [gb3,bb3,db4,eb4]@2 [gb3,bb3,db4,eb4]@8 [gb4,bb4,db5]@4 [gb4,bb4]@4 ~@6 ab4@10 ~@4 f4@2 [eb4,ab4]@9 ~@5 gb4@2 [f4,bb4]@8 ~@4 [db4,f4,ab4]@2 ~@2 [gb3,bb3,db4,eb4]@2 [gb3,bb3,db4,eb4]@15 ~, [db3,db4]@2 ~ ab2@8 ~ db3@8 f3@8 gb3@7 ~ db3@2 ~ ab2@9, ~@26 db4@14 ~@2 c4@13 ~@3 db4@12 ~@26, ~@7 f4@3 ~@14]/6", // Fm Ebm7 Gb Ab5 Bb5 Db Ebm7 Db
H: "[~@6 [gb3,ab3,db4] ~ [gb3,ab3,db4]@3 ~ [gb3,ab3,db4] ~ [gb3,ab3,db4]@10 ~@2 [gb3,ab3,db4] ~ [gb3,ab3,db4]@2 ~ [gb3,ab3,db4]]/2", // Gbsus2
I: "[gb3,ab3,db4] ~ [gb3,ab3,db4]@5 ~ [gb3,ab3,db4]@5 ~ [gb3,ab3,db4] ~", // Gbsus2
J: "[gb3,ab3,db4]@3 [gb3,ab3,db4]!2 ~ [gb3,ab3,db4]@3 ~ [gb3,ab3,db4]@3 ~ [gb3,ab3,db4] ~", // Gbsus2
K: "[~@5 bb4@2 ab4@6 ~@3, [ab3,c4,f4]]/2", // Fm
L: "~@2 [ab3,c4,f4] ~@3 [ab3,c4,f4] ~ ab3@2 c4@2 ab3@2 f3 ~, ~@4 f4@3 ~, ~@8 c4 ~@7", M: "[gb3,bb3,db4]",
N: "[db4,gb4,bb4] [eb4,ab4,c5]", O: "[c4,f4,ab4]", P: "[db4,f4,bb4]@15 ~",
Q: "[ab2,gb3,ab3,db4] ~@5 [ab2,gb3,ab3,db4]@9 ~", R: "[[ab2,gb3,ab3,db4] ~@9 [ab2,gb3,ab3,db4]@22]/2",
S: "~@6 db4@6 [db4,f4]@3 ~, db3, ~ db4@2 ab4@5, ~@4 f4@7 ~@5", T: "~ f4 ab4 [f4,ab4]@3 [f4,ab4]@2, f3, ~@3 c5@5",
U: "~@3 db5@3 [gb4,bb4] ~, gb3, ~@2 gb4@4 gb4@5 ~@5, ~@4 bb4@7 ~@5", // Gb
V: "[ab4@2 db4@2 ab4 ~@13 [gb4,bb4]@5 ~@5 f4@2 [db4,f4]@5 ~ [db4,f4]@3 ~@3 f4@2 ab4@2 [f4,ab4]@5 ~ [f4,ab4]@4 ~@2 gb4@2 bb4@2 [gb4,db5]@6 gb4@2 ~@4 f4@2 ab4 ~@15 bb4@5 ~@5 [ab2,gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@2 ~ [ab2,gb3,ab3,db4] [gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@10 ~@2 [ab2,gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@2 ~ [ab2,gb3,ab3,db4], [db3,f4]@5 ~ [gb4,bb4]@12 ~@8 db4@4 ~@48 [ab3,gb4]@19 ~@31, db4 ~@5 ab3@18 db3@16 f3@16 gb3@16 [db3,db4]@5 ~@9 db5@10 ~@32, ~@14 db5@8 ~@8 ab4@9 ~@7 c5@9 ~@7 bb4@4 ~@2 bb4 ~@5 ab4 ~@3 bb4@14 ~@36]/8", // Gb Db Fm Gb5 Dbsus4 Gbsus2 Dbsus4 Db …
W: "[ab2,gb3,ab3,db4] ~ [ab2,gb3,ab3,db4]@10 ~@2 [ab2,gb3,ab3,db4] ~", // Dbsus4
X: "[ab2,gb3,ab3,db4]@2 ~ [ab2,gb3,ab3,db4]!2 ~ [ab2,gb3,ab3,db4]@3 ~ [ab2,gb3,ab3,db4]@2 ~@2 [ab2,gb3,ab3,db4] ~", // Dbsus4
Y: "[c4,f4,ab4]@6 eb5 c5", Z: "[[ab2,gb3,ab3,db4] ~@9 [ab2,gb3,ab3,db4]@21 ~]/2",
AA: "~@3 ab4@5, db3@15 ~, ~@2 db4@13 ~, ~@4 f4@11 ~", AB: "~@3 c5@5, f3, ~@2 f4@13 ~, ~@4 ab4@11 ~",
AC: "~@6 db5@7 ~@3, gb3@7 ~, ~@2 gb4@11 ~@3, ~@4 bb4@9 ~@3",
AD: "[[db3,db4,f4,ab4]@4 ~@2 [ab3,db4,gb4]@17 ~@7 ab4@9 ~@7 c5@10 ~@6 db5@6 ~@4 [db3,db4,f4,ab4]@4 ~@2 [ab3,db4,gb4]@17 ~, ~@12 db3@8 f3@8 gb3@7 ~@13, ~@26 db4@13 ~@5 ab4@12 ~@4 bb4@8 ~@28, ~@28 f4@11 ~@3 f4@14 ~@2 gb4@10 ~@28]/6", // Db Dbsus4 Db Dbsus4
AE: "~@4 ab4 bb4 c5@2 ab4@3 ~ bb4 ab4 ~ f4", AF: "ab4@10 ~@2 bb4@3 ~, f4 ~@15", AG: "bb4@2 ab4@2 gb4@2 f4 ~",
AH: "[db4,gb4,bb4]@8 [eb4,ab4,c5]@7 ~", AI: "[c4,f4]@10 ~@3 [f4,ab4]@3, ab4@13 ~@3, ~@5 c4@3",
AJ: "[gb3,ab3,db4] ~@5 [gb3,ab3,db4]@8 ~@2", AK: "[gb3,ab3,db4] ~@5 [gb3,ab3,db4]@6 [gb3,ab3,db4] ~@3",
AL: "[a3,b3,e4] ~@5 [a3,b3,e4]@7 ~@3", AM: "[a4,b4,e5] ~@5 [b4,e5]@4 db5@2 ~@2 db5@2, ~@3 a4@5, ~@3 e5",
AN: "~@6 e4@6 [e4,ab4]@3 ~, ~ e4@2 b4@5, ~@4 ab4@7 ~@5", AO: "~ ab4 b4 [ab4,b4]@3 [ab4,b4]@2, ab3, ~@3 eb5@5",
AP: "~@3 e5@3 [a4,db5] ~, a3, ~@2 a4@4 a4@5 ~@5, ~@4 db5@7 ~@5", // A
AQ: "[b4@2 e4@2 b4 ~@13 [a4,db5]@5 ~@5 ab4@2 [e4,ab4]@5 ~ [e4,ab4]@3 ~@3 ab4@2 b4@2 [ab4,b4]@5 ~ [ab4,b4]@4 ~@2 a4@2 db5@2 [a4,e5]@6 a4@2 ~@4 ab4@2 b4 ~@15 db5@4, [e3,ab4]@5 ~ [a4,db5]@12 ~@8 e4@4 ~@48 [b3,a4]@18, e4 ~@5 b3@18 e3@16 ab3@16 a3@16 [e3,e4]@5 ~@9 e5@10, ~@14 e5@8 ~@8 b4@9 ~@7 eb5@9 ~@7 db5@4 ~@2 db5 ~@5 b4 ~@3 db5@14 ~@4]/6", // A E Abm A5 E A B7 E
AR: "[a3,b3,e4] ~@5 [a3,b3,e4]@8 b4@2", AS: "[a4,b4,e5]@5 ~ [a4,b4,e5]@4 [a4,b4,e5]@3 ~ [a4,b4,e5] ~", AT: "ab4",
})).s("gm_epiano1").gain(0.33).pan(0.6)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP AQ T U AR AS AT
AU AV AW AX AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ BR BS BT BU BV BW BX@2 BY BZ CA CB CC CD CE CF CG
CH CI CJ CK CL CM CN CO CP CQ CR CS CT CU CV ~
>`.pickRestart({
A: "ab1@3 ab1 ab1@4", B: "ab1@5 ~ ab1@2 ab1@6 eb1 f1", C: "ab1@5 ~ ab1@2 ab1@4 eb2 ~@2 eb2",
D: "ab1@2 ab1@6 ab1@6 ab1 a1", E: "bb1@4 bb1@3 f1", F: "bb1@4 ~@2 ab1@9 ~", G: "db1@6 db1@2 db1@5 ~ db1@2",
H: "f1@3 f1 f1@3 f1", I: "gb1@6 db1 ~ db1@2 gb1@3 ~ gb1@2", J: "db2@6 ab1@2 ab1@7 ~",
K: "ab1@5 ~ ab1@2 db1@5 ~ db1@2", L: "db1@3 db1 f1@3 f1", M: "f1@5 ~ f1@2 gb1@6 db1@2", N: "db1!2 gb1 ~ db2@3 ab1",
O: "ab1@8 ab1@6 eb1 f1", P: "ab1@5 ~ ab1 ~ ab1@3 ab1!2 ~ ab1 ~", Q: "ab1@9 ~ ab1 ~ ab1@2 ~ ab1",
R: "ab1 ~ ab1@4 eb1 f1 ab1@5 ~ ab1 ~", S: "ab1@2 ~ ab1!2 ~ ab1@2 ab1@2 ab1@3 ~ ab1 ~", T: "db2@6 ab2 ~ ab2@4 ab1@3 ~",
U: "db2@3 ab2!3 ab1 ~", V: "db2@6 ab2 ~ ab2@2 db2 ~ db2@2 ~@2", W: "gb1@6 db2 ~ db2@4 ~@2 db2@2",
X: "gb2@4 gb2 gb2@2 gb2", Y: "f2@7 ~ f2@2 c2@4 f1@2", Z: "bb1@3 bb1@2 bb1 ~ bb1",
AA: "ab1@2 ~@4 ab1@2 ab1@2 ab1@4 eb1 f1", AB: "ab1@3 ~@3 ab1@2 ab1 ~ ab1@2 f2 ab2@2 db2",
AC: "ab1@2 ~@8 ab1@3 ~ ab1!2", AD: "ab1 ~ ab1@3 ~ ab1@9 ~", AE: "db2@5 ~ db2@2 db2@5 ~ db2@2",
AF: "f1@6 f1@2 f1@5 ~ f1 ~", AG: "gb1@2 gb1@4 db2@2 gb1 db2 gb2@4 gb2 ~", AH: "db2@4 ~@2 ab1 ~ ab1@7 ~",
AI: "ab1@2 ab1@3 ~ ab1 ~ db2@5 ~ db2 ~", AJ: "db2@4 db2@2 ~@2 f1@5 ~ f1@2", AK: "f1@2 f1@2 ~@2 f1@2 gb1@5 ~ gb1@2",
AL: "db2@4 gb1@3 ~ db2@5 ~ ab1 ~", AM: "ab1@7 ~ ab1 ~ ab1@4 eb1 f1", AN: "ab1@6 ~@2 ab1@3 ab1!2 ~ ab1@2",
AO: "ab1@8 ~@2 ab1 ~ ab1@3 ab1", AP: "ab1 ~ ab1@4 eb1 f1 ab1@6 ~@2", AQ: "ab1@3 ab1!2 ~ ab1 ~ ab1@3 ~ ab1@3 ~",
AR: "db2@6 ab2 ~ ab2@4 db2@3 ~", AS: "gb1@6 db2 ~ db2@6 gb2 ~", AT: "gb2@6 gb2@2 gb2@4 gb2@3 ~",
AU: "f2@6 f2@4 c2@4 f1 ab1", AV: "bb1@5 ~ bb1@4 bb1 ~@3 bb1@2", AW: "ab1@2 ab1@3 ~ ab1 ~ ab1@5 ~ eb1 f1",
AX: "ab1@2 ab1@3 ~ ab1 ~ ab1@4 ~@2 eb1@2", AY: "ab1@2 ~@5 ab1 ab1@2 ab1@4 eb1 f1", AZ: "ab1@3 ab1",
BA: "db2@4 db1@2 db1 ~ db1@5 ~ db1@2", BB: "f1@6 f1@2 f1@5 ~ f1@2", BC: "gb1@2 gb1@3 ~ gb1@2 gb1@2 db2 ~@3 gb1 ~",
BD: "db2@2 db2@3 ~ ab1@2 ab1@7 ~", BE: "ab1 ~ ab1@4 ab1 bb1 db2@5 ~ db2@2", BF: "db2@4 f1@3 f1",
BG: "f1@4 gb1 gb1@2 db2", BH: "db2@2 db2@2 gb1@3 ~ db2@2 ~@4 ab1@2", BI: "ab1@8 ab1 ~ ab1@3 ~ ab1@2",
BJ: "db2@6 ab2 ~ ab2@4 ab1@2 ~ ab1", BK: "db2@3 ab2!3 ab1!2", BL: "gb1@2 gb1@4 db2 ~ db2@7 ~",
BM: "gb2@3 gb2!2 gb2@2 gb2", BN: "f2@5 ~ f2@2 f2@2 c2@3 ~ f1@2", BO: "ab1@3 ~@3 ab1@2 ab1@2 ab1@4 eb1 f1",
BP: "ab1@2 ~@4 ab1 ~ ab1@3 ~ eb2 ab2 ab1 eb2", BQ: "ab1@2 ~@4 ab1 ~ ab1@4 ~@2 eb1 f1",
BR: "ab1@2 ~@4 ab1@2 ab1@2 ab1 ~ ab1@2 ~@2", BS: "b1@2 ~@4 b1@2 b1@4 ~@2 gb1 ab1",
BT: "b1@2 ~@4 b1 ~ b1@3 ~ gb1 ~ ab1 ~", BU: "e1@2 e1@3 ~ e1 ~ e1@5 ~ e1 gb1", BV: "ab1 ab1@2 ab1 ab1@4",
BW: "a1@2 a1@4 e2 ~ e2@2 e2@2 a1@2 a1@2", BX: "[e1 ~@5 b1@2 b1@14 gb1 b1 e1@2 e1@3 ~ e1 ~]/2",
BY: "e1@5 ~ e1 gb1 ab1@2 ab1@3 ~ ab1 ~", BZ: "ab1@4 ab1@4 a1@6 e2 ~", CA: "e2 ~ e2@2 a1 ~ a1@2 e1 ~@5 b1 ~",
CB: "b1@5 ~ b1 ~ b1 ~ b1@4 gb1 ab1", CC: "b1@5 ~ b1 ~ b1@5 ~ gb1 ab1", CD: "b1@2 ~@4 b1 ~ b1 b2@3 a1 b1 ~ b1",
CE: "e1@2 e1@3 ~ e1@2 e2@4 ~@2 e1 gb1", CF: "ab1@2 ab1@3 ~ ab1 ~ ab1@4 ab1@4", CG: "a1 ~ a1@2 ~@2 a1@2 e2@4 a1@4",
CH: "e1 ~ e1@2 ~@2 b1 ~ b1@2 b1@4 ~@2", CI: "b1@2 ~@2 gb2 ~ b1 ~ e1 ~ e1@3 ~ e1@2",
CJ: "e2@6 b1@2 ab1 ~ ab1@3 ~ ab1@2", CK: "eb2@4 ab1@3 ~ a1 ~ a1@4 a1@2", CL: "e2@2 a1@2 ~@2 a1@2 e1 ~ e1@2 ~@2 b1 ~",
CM: "b1@8 b1@2 b1 gb1 a1 b1!2 ~", CN: "e1 ~ e1@3 ~ e1 ~ e1@5 ~ e1 gb1", CO: "ab1 ~ ab1@4 ab1@2 ab2@4 ab1@4",
CP: "a1@5 ~ a1@2 e2@2 a1@3 ~ a1@2", CQ: "e1@2 ab1@2 a1@2 b1 ~ b1@8", CR: "b1@2 b1@3 ~ b1@2 e1@2 e1@3 ~ e1 ~",
CS: "e1@5 ~ e1 gb1 ab1@2 ab1@3 ~ ab1@2", CT: "ab2@2 ab1@2 a1@2 ~ a1", CU: "e2@2 a1@3 ~ a1@2 e1@2 ab1@2 a1@2 b1 ~",
CV: "b1@7 ~ b1 ~ b1@3 ~ b1 ~",
})).s("gm_fretless_bass").gain(0.49)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
~ A B C D E F G H I J K L@3 M N O P@2 Q R S T U V W X Y Z@2 G H I J K L@3 M N O P@2 Q R S T U V W AA AB Z@2 G H I J K
L@3 M AC S T U V X Y Z@2 AD@2 AE AF AG AH AI AJ@3 AK AL AM AE AF AG AH AI AJ@3 AK AE AF AG AH AI AJ@3 AK ~
>`.pickRestart({
A: "[gb3,db4,gb4]@3 gb4!2 gb4@3 [db4,gb4] [db4,gb4]@2 gb4 [db4,gb4] [db4,gb4]@2 [bb3,db4,gb4], bb3 ~, ~@3 db4@5 ~@8, ~ gb3 [gb3,bb3]!2", // Gb5 Gb
B: "[bb3,db4,gb4]@4 [bb3,gb4] [bb3,db4,gb4]@3 [db4,gb4] [db4,gb4]@3 gb4 gb4@2 [gb3,bb3,db4,gb4], gb3@8 [gb3,bb3]@4 [gb3,bb3,db4]@3 ~", // Gb Ebm Gb Gb5 Gb
C: "[gb3,bb3,db4,gb4]@3 [bb3,db4,gb4]!2 [bb3,db4,gb4]@3 [db4,gb4] [db4,gb4]@3 [bb3,db4,gb4] [bb3,db4,gb4]@2 [bb3,db4,gb4], ~ gb3 [gb3,bb3] gb3", // Gb Gb5 Gb
D: "[gb3,bb3,db4,gb4]@3 ~ [bb3,gb4] [bb3,db4,gb4]@3 [bb3,db4] [bb3,db4,gb4]@3 [bb3,db4,gb4] [bb3,db4,gb4]@2 [db4,gb4], ~@3 [db4,gb4]@2 ~@11, ~ gb3!3", // Gb Ebm Gb Bbm Gb Gb5
E: "[ab3,c4,eb4,ab4]@3 [c4,eb4,ab4] [eb4,ab4] [eb4,ab4]@3 [eb4,ab4] [eb4,ab4]@3 [c4,eb4,ab4] [c4,eb4,ab4]@2 [eb4,ab4], ~ [ab3,c4]!2 ab3", // Ab Ab5 Ab Ab5 Ab
F: "[ab3,c4,eb4,ab4]@5 ~ [gb3,bb3,db4,gb4]@9 ~", // Ab Gb
G: "[ab3,db4,f4]@2 ~ f4 ab3@2 ab3@2 [ab3,db4,f4]@2 f4!2 ab3@2 [f3,ab3]@2, ~ [ab3,db4,f4] [db4,f4]@2 ~ [ab3,db4] [db4,f4]@2", // Db Fm Db Db5 Db
H: "[f3,c4]@2 ~ f4 [ab3,c4,f4]@2 [ab3,c4]@2 [f3,ab3,c4]@2 [c4,f4]!2 [ab3,c4,f4]@2 [ab3,c4] ~, [ab3,f4]@2 ~@3 ab3 ~@2, ~ c4 ~ f4@2 ~@3", // F5 Fm Ab Fm F5 Fm Ab Db
I: "[gb3,bb3,db4,gb4]@2 ~ [db4,gb4] [bb3,db4,gb4]@2 [bb3,db4]@2 [bb3,db4]@2 [db4,gb4]!2 [bb3,db4,gb4]@2 [bb3,db4] ~, ~ [bb3,db4] ~ gb4@2 bb3 ~@2", // Gb Gb5 Gb Bbm Gb5 Gb Bbm
J: "[ab3,db4]@3 ~ db4@4 [eb3,db4]@4 [eb3,ab3,db4]@3 [ab3,db4], f3@3 ~@5, ~@3 f4@3 ~@10, ~@2 ab3 ~ ab3 ~@3", // Db5 Eb7 Dbsus2 Db5
K: "[eb3,ab3,db4]@2 [ab3,db4]@2 ~ db4 [eb3,ab3,db4] ~ [ab3,db4,f4]@3 [ab3,f4] [ab3,db4,f4]@2 [f3,ab3,db4,f4]@2, ~ eb3@2 ~ f3@3 ~, ~@2 [ab3,db4] ~@5", // Dbsus2 Db5 Dbsus2 Db Db5
L: "[db4 [db4,f4] [ab3,db4,f4]@2 [f3,ab3,db4]@2 [f3,ab3,db4]@2 ab3@2 ~ f4 [ab3,c4]@2 [ab3,c4]@2 ~ f4 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,f4] ~ [bb3,db4,gb4]@2 [bb3,db4] [bb3,db4,gb4] [bb3,db4]@2 [bb3,db4]@2 ~ [db4,gb4] [bb3,db4,gb4]@2 [bb3,db4,gb4]@2 [bb3,db4] ~ [db4,f4]@3 [db4,f4] [ab3,f4] ~ eb3@2, ab3@2 ~@2 f4@4 [f3,c4,f4]@4 ~@2 f3@8 ~@2 gb3@5 ~ gb3@4 gb3@4 ~@2 [f3,ab3]@5 ~@3, ~@5 ab3 f4@2 [ab3,c4] ~@5 gb4@2 [bb3,db4] ~@5 db4@2]/3", // Db Ab Fm Db Gb Bbm Gb Bbm …
M: "[eb3,ab3,db4]@3 [ab3,db4] [eb3,ab3]@2 [eb3,ab3]@2 [ab3,db4]@2 [ab3,db4]!2 ab3@2 [eb3,ab3]@2, ~@2 db4@2 eb3@3 ~, ~@3 db4", // Dbsus2 Db5 Ab5 Db5 Ab5
N: "[db4,eb4,ab4]@4 [db4,eb4,ab4]@2 ~ [eb4,ab4] [db4,eb4,ab4]@2 ~ [eb4,ab4] ~ ab4 [db4,eb4,ab4]@2, ~@3 [db4,eb4] ~ [db4,eb4] [db4,eb4,ab4] ~", // Dbsus2 Ab5 Dbsus2 Ab5 Dbsus2
O: "[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ~ [eb4,ab4] [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4!2 [db4,eb4,ab4]@2, ~@3 [db4,eb4,ab4] ~@2 [db4,eb4] ~", // Dbsus2 Ab5 Dbsus2
P: "[[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4!2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb4,ab4]!2 ab4@2 [db4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4 [eb4,ab4] [db4,eb4,ab4] [eb4,ab4] [db4,eb4,ab4]@2 [eb4,ab4]!2 [db4,eb4,ab4]@2, ~@3 [db4,eb4] ~@2 db4@2 ~@3 db4 ~@2 ab3@2, ~@7 eb4@2 ~@5 db4 ~]/2", // Dbsus2 Ab5 Db5 Dbsus2 Ab5 Dbsus2 Ab5 Dbsus2 …
Q: "[ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4]@2 [ab3,c4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [f3,ab3,c4,f4]@2 ~ [c4,f4], db3@11 ~@3 [f3,ab3,c4,f4]@2, ~ f4 ~@2", // Fm Ab Fm F5 Fm
R: "[ab3,c4,f4]@2 [ab3,c4]@2 [ab3,c4,f4]@2 [ab3,c4]@2 [f3,ab3,c4,f4]@2 ~ [c4,f4] [ab3,c4,f4]@2 [ab3,c4]@2, ~ f3 db3 [db3,f3], ~@5 [f3,ab3,c4,f4] ~@2", // Fm Ab Fm Ab Fm F5 Fm Ab …
S: "[c4,f4]@2 [c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [f3,ab3,c4,f4]@2 [db3,f3,ab3,c4,f4] [ab3,c4,f4] [ab3,c4]@2 [ab3,c4]@2, db3@5 ~ [db3,f3,f4]@2, [f3,ab3] f3 ~@2", // F5 Fm Dbmaj7 Fm Ab Db Fm
T: "[gb3,bb3,db4,f4]@2 [bb3,db4,f4]@2 [gb3,bb3,db4,f4]@3 [bb3,db4,f4] [gb3,bb3,db4,f4]@3 [bb3,db4,f4] [db4,f4]!2 [bb3,db4,f4] ~, ~@6 bb3 ~", // Gbmaj7 Bbm Gbmaj7 Bbm Gbmaj7 Bbm Db Bbm
U: "[bb3,db4,gb4]@3 [bb3,db4,gb4] [bb3,db4,gb4]@2 [db4,gb4] ~ [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [c4,eb4,ab4]@2 [eb4,ab4] ~, gb3@7 ~@9", // Gb Gb5 Ab Ab5
V: "[ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]@2 [ab3,c4,f4]!2 [ab3,c4,f4]@2 [c4,f4]@2 [c4,f4] ~, ~ f3!2 [f3,ab3]", // Fm F5 Fm
W: "[bb2,db4,f4]@2 [db4,f4]!2 [ab3,db4,f4]@2 [ab3,db4,f4]@2 [db4,f4]!2 [ab3,db4,f4]@2 [ab3,db4,f4]@2 [ab3,db4,f4]@2, ab3 ~ f3@2, ~ bb2@7, ~@4 ab3 ~@3", // Bbm Db
X: "[eb3,eb4,ab4]@2 [eb3,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [eb4,ab4] [eb3,gb3,eb4,ab4]@2 [eb3,eb4,ab4] ab4 gb3@2, [gb3,db4]@4 ~@5 db4@3 db4@4, ~@6 gb3 ~, ~@13 [eb3,eb4]@3", // Ab5 Ebm7 Dbsus2 Ebm7 Ab5 Ab7 Ab5 Gb5 …
Y: "[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb4,ab4]@2 [eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [gb3,db4,eb4,ab4] [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]!2 [gb3,db4,eb4,ab4]@2, [eb3,gb3] [eb3,gb3,db4] ~ eb3, ~@6 gb3 ~", // Dbsus2 Ab5 Ebm7 Gbsus2 Ebm7 Dbsus2 Gbsus2 Ebm …
Z: "[[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [db4,eb4,ab4]@2 ab4 ~ [eb3,gb3]@2 ~@2 [gb3,db4,eb4]@2 [gb3,db4,eb4,ab4]@2 [eb4,ab4] [db4,eb4,ab4] [eb4,ab4]@2 ~@2 eb4@2 [eb3,gb3,eb4,ab4]@2 [gb3,eb4,ab4]@2 [gb3,db4,eb4,ab4]@2, [eb3,gb3]@4 db4@2 ~@4 [gb3,db4]@3 db4@2 ~, ~@4 [eb3,gb3] ~ [eb3,gb3,db4,eb4,ab4] eb3@2 eb3@2 [eb3,ab4]@2 ~ eb3@2, ~@9 [eb4,ab4]@3 ~ ab4@3 ~@16]/2", // Dbsus2 Ebm Ebm7 Gbsus2 Ab5 Dbsus2 Ab5 Ab7 …
AA: "[eb3,eb4,ab4]@2 [eb3,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [eb4,ab4] [eb3,gb3,eb4,ab4]@2 [eb3,eb4,ab4] ab4 gb3@2, [gb3,db4]@4 ~@5 db4@3 db4@4, ~@13 [eb3,eb4]@3", // Ab5 Ebm7 Dbsus2 Ebm7 Ab5 Ab7 Ab5 Gb5 …
AB: "[db4,eb4,ab4]@2 [db4,eb4,ab4]@2 [eb4,ab4]@2 [eb4,ab4]@2 [eb3,gb3,db4,eb4,ab4] [gb3,db4,eb4,ab4] [eb3,gb3,db4,eb4,ab4]@2 [db4,eb4,ab4]!2 [gb3,db4,eb4,ab4]@2, [eb3,gb3] [eb3,gb3,db4] ~ eb3", // Dbsus2 Ab5 Ebm7 Gbsus2 Ebm7 Dbsus2 Gbsus2 Ebm …
AC: "[c4,f4]@2 [ab3,c4]@2 [ab3,c4,f4]@2 [ab3,c4]@2 [f3,ab3,c4,f4]@2 ~ [c4,f4] [ab3,c4,f4]@2 [ab3,c4]@2, ~ f3 db3 [db3,f3], ~@5 [f3,ab3,c4,f4] ~@2", // F5 Ab Fm Ab Fm F5 Fm Ab …
AD: "[b4@2 [e4,gb4,b4]@2 [e4,gb4,b4]@2 [e4,gb4,b4]@2 b4 ~ [gb3,a3]@2 ~@2 [a3,e4,gb4]@2 [a3,e4,gb4,b4]@2 [gb4,b4] [e4,gb4,b4] [gb4,b4]@2 ~@2 gb4@2 [gb3,a3,gb4,b4]@2 [a3,gb4,b4]@2 [a3,e4,gb4,b4]@2, ~@4 e4@2 ~@4 [a3,e4]@3 e4@2 ~, ~@4 [gb3,a3] ~ [gb3,a3,e4,gb4,b4] gb3@2 gb3@2 [gb3,b4]@2 ~ gb3@2, ~@9 [gb4,b4]@3 ~ b4@3 ~@16]/2", // Esus2 Gbm Gbm7 Asus2 B5 Esus2 B5 B7 …
AE: "[b3,e4,ab4]@2 ~ ab4 b3@2 b3@2 [b3,e4,ab4]@2 ab4!2 b3@2 [ab3,b3]@2, ~ [b3,e4,ab4] [e4,ab4]@2 ~ [b3,e4] [e4,ab4]@2", // E Abm E E5 E
AF: "[ab3,eb4]@2 ~ ab4 [b3,eb4,ab4]@2 [b3,eb4]@2 [ab3,b3,eb4]@2 [eb4,ab4]!2 [b3,eb4,ab4]@2 [b3,eb4] ~, [b3,ab4]@2 ~@3 b3 ~@2, ~ eb4 ~ ab4@2 ~@3", // Ab5 Abm B Abm Ab5 Abm B E
AG: "[a3,db4,e4,a4]@2 ~ [e4,a4] [db4,e4,a4]@2 [db4,e4]@2 [db4,e4]@2 [e4,a4]!2 [db4,e4,a4]@2 [db4,e4] ~, ~ [db4,e4] ~ a4@2 db4 ~@2", // A A5 A Dbm A5 A Dbm
AH: "[b3,e4]@3 ~ e4@4 [gb3,e4]@4 [gb3,b3,e4]@3 [b3,e4], ab3@3 ~@5, ~@3 ab4@3 ~@10, ~@2 b3 ~ b3 ~@3", // E5 Gb7 Esus2 E5
AI: "[gb3,b3,e4]@2 [b3,e4]@2 ~ e4 [gb3,b3,e4] ~ [b3,e4,ab4]@3 [b3,ab4] [b3,e4,ab4]@2 [ab3,b3,e4,ab4]@2, ~ gb3@2 ~ ab3@3 ~, ~@2 [b3,e4] ~@5", // Esus2 E5 Esus2 E E5
AJ: "[e4 [e4,ab4] [b3,e4,ab4]@2 [ab3,b3,e4]@2 [ab3,b3,e4]@2 b3@2 ~ ab4 [b3,eb4]@2 [b3,eb4]@2 ~ ab4 [b3,eb4,ab4]@2 [b3,eb4,ab4]@2 [b3,ab4] ~ [db4,e4,a4]@2 [db4,e4] [db4,e4,a4] [db4,e4]@2 [db4,e4]@2 ~ [e4,a4] [db4,e4,a4]@2 [db4,e4,a4]@2 [db4,e4] ~ [e4,ab4]@3 [e4,ab4] [b3,ab4] ~ gb3@2, b3@2 ~@2 ab4@4 [ab3,eb4,ab4]@4 ~@2 ab3@8 ~@2 a3@5 ~ a3@4 a3@4 ~@2 [ab3,b3]@5 ~@3, ~@5 b3 ab4@2 [b3,eb4] ~@5 a4@2 [db4,e4] ~@5 e4@2]/3", // E B Abm E A Dbm A Dbm …
AK: "[gb3,b3,e4]@3 [b3,e4] [gb3,b3]@2 [gb3,b3]@2 [b3,e4]@2 [b3,e4]!2 b3@2 [gb3,b3]@2, ~@2 e4@2 gb3@3 ~, ~@3 e4", // Esus2 E5 B5 E5 B5
AL: "[e4,gb4,b4]@4 [e4,gb4,b4]@2 ~ [gb4,b4] [e4,gb4,b4]@2 ~ [gb4,b4] ~ b4 [e4,gb4,b4]@2, ~@3 [e4,gb4] ~ [e4,gb4] [e4,gb4,b4] ~", // Esus2 B5 Esus2 B5 Esus2
AM: "[e4,gb4,b4]@2 [e4,gb4,b4]@2 [e4,gb4,b4]@2 ~ [gb4,b4] [e4,gb4,b4]@2 [e4,gb4,b4]@2 b4!2 [e4,gb4,b4]@2, ~@3 [e4,gb4,b4] ~@2 [e4,gb4] ~", // Esus2 B5 Esus2
})).s("gm_acoustic_guitar_steel").gain(0.27)
// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
~@7 A B C D ~ E F G ~ H I J K L@2 ~ M N O P Q ~@2 R A B C D ~ E F G ~ H I J K L@2 ~ M N O P Q ~@2 R A B C D ~ E F G ~
S ~ M N O Q ~@2 R ~ T U V W X ~ Y Z AA ~ AB AC U V W X ~ Y Z AA ~ U V W X ~ Y Z AA ~@2
>`.pickRestart({
A: "f3@4 f3@3 ~ f3@2 f3@4 ~@2", B: "~@2 f3@2 f3@4 ~@2 f3@5 ~", C: "~@2 gb3@2 gb3@2 gb3@2 gb3@2 gb3@4 gb3 ~",
D: "f4@3 ~@13", E: "f3@2 ~@4 f3 ~", F: "~@6 f3 ~@9", G: "~@6 gb3 ~@7 ab3@2", H: "ab3 ab3@3",
I: "ab3@2 ab3!2 ab3@2 ab3@2", J: "ab3@2 ab3 ab3@3 ab3@2", K: "ab3@3 ab3@3 ~@2",
L: "[f3@4 f3@2 ~@2 f3 [f3,f4] ~@5 f4, ~@12 db3@6 db3@5 ~@9]/2", M: "~@2 gb3@2 ~@8 gb3@3 ~",
N: "~@8 ab3@2 ab3@2 ab3@3 ~", O: "f3 ~@3", P: "f3!2 ~@2", Q: "~@3 [eb3,gb3] ~@3 ab4", R: "~ gb3 ~@6",
S: "~ [f3,f4] ~@5 f4, ~@2 db3@5 ~@9", T: "~ a3 ~@6", U: "ab3@4 ab3@3 ~ ab3@2 ab3@4 ~@2",
V: "~@2 ab3@2 ab3@4 ~@2 ab3@5 ~", W: "~@2 a3@2 a3@2 a3@2 a3@2 a3@4 a3 ~", X: "ab4@3 ~@13", Y: "ab3@2 ~@4 ab3 ~",
Z: "~@6 ab3 ~@9", AA: "~@6 a3 ~@7 b3@2", AB: "b3 b3@3", AC: "b3@2 b3!2 b3@2 b3@2",
})).s("gm_acoustic_guitar_steel").gain(0.16)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
~@7 A B C D E F G@2 H ~@8 I J ~@4 K A L C D E F M@2 H ~@8 I J ~@4 K N O P Q R S T@2 U ~@3 I V ~@6 W X Y Z AA AB AC@2
AD ~@2 W X Y Z AA AB AE@2 AD W X Y Z AA AB AC@2 AD ~
>`.pickRestart({
A: "[ab3,db4]@2 [ab3,db4]@2 [ab3,db4]@2 [ab3,db4]@3 ~ [ab3,c4]@3 ~ [f3,ab3]@2", // Db5 Ab Fm
B: "[c4,f4]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@3 ~ eb4@3 ~ [c4,f4]@2", // F5
C: "[db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@4 [db4,f4]@3 ~ [bb3,db4]@2", // Gb5 Db Bbm
D: "[ab3,db4] [ab3,c4] [f3,bb3] [ab3,db4]@5", E: "~@4 [ab3,db4]!4",
F: "~@2 [ab3,c4]@3 ~ [f3,ab3]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@2", // Ab Fm F5
G: "[~@2 eb4@3 ~ [c4,f4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@4 [db4,f4]@3 ~ [bb3,db4]@2 [ab3,db4]@2 [ab3,eb4]@2 [ab3,db4]@2 [ab3,db4]@2]/2", // F5 Gb5 Db Bbm Db5 Ab5 Db5
H: "[ab3,db4] [ab3,db4]@4 ~@3", I: "[gb4,db5]!5 [f4,c5] [eb4,bb4] [gb4,db5]", J: "[gb4,db5] [f4,c5]@5 ~@2",
K: "[db4,ab4]!2 [db4,ab4]@5 ~", L: "[c4,f4]@2 [c4,f4]@2 [c4,f4]@2 [c4,f4]@3 ~ [c4,eb4]@3 ~ [c4,f4]@2",
M: "[~@2 [c4,eb4]@3 ~ [c4,f4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@2 [db4,gb4]@4 [db4,f4]@3 ~ [bb3,db4]@2 [ab3,db4]@2 [ab3,eb4]@2 [ab3,db4]@2 [ab3,db4]@2]/2", // Cm F5 Gb5 Db Bbm Db5 Ab5 Db5
N: "[db4,ab4]@2 [db4,ab4]@2 [db4,ab4]@2 [db4,ab4]@3 ~ [db4,gb4]@3 ~ [ab3,f4]@2", // Db5 Gb5 Db
O: "[f4,c5]@2 [f4,c5]@2 [f4,c5]@2 [f4,c5]@3 ~ bb4@3 ~ [f4,c5]@2", // F5
P: "[gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@4 [f4,c5]@3 ~ [db4,bb4]@2", // Gb5 F5 Gb
Q: "[db4,ab4] [db4,gb4] [db4,f4] [db4,gb4]@5", R: "~@4 [db4,ab4]!4",
S: "~@2 [f4,db5]@3 ~ [ab3,ab4]@2 [f4,c5]@2 [f4,c5]@2 [f4,c5]@2 [f4,c5]@2", // Db Ab F5
T: "[~@2 [c4,ab4]@3 ~ [f4,c5]@2 [gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@2 [gb4,db5]@4 [f4,c5]@3 ~ [bb3,db4]@2 [ab3,db4]@2 [bb3,eb4]@2 [ab3,db4]@2 [ab3,db4]@2]/2", // Fm F5 Gb5 F5 Bbm Db5 Eb5 Db5
U: "[ab3,db4] [ab3,db4]@5 ~@2", V: "[gb4,db5] [f4,c5]@3 ~@4",
W: "[e4,b4]@2 [e4,b4]@2 [e4,b4]@2 [e4,b4]@3 ~ [e4,a4]@3 ~ [b3,ab4]@2", // E5 A5 E
X: "[ab4,eb5]@2 [ab4,eb5]@2 [ab4,eb5]@2 [ab4,eb5]@3 ~ db5@3 ~ [ab4,eb5]@2", // Ab5
Y: "[a4,e5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@4 [ab4,eb5]@3 ~ [e4,db5]@2", Z: "[e4,b4] [e4,a4] [e4,ab4] [e4,a4]@3 ~@2",
AA: "~@4 [e4,b4]!4", AB: "~ [ab4,e5]@2 [b3,b4] [ab4,eb5]!4",
AC: "[~@2 [eb4,b4]@3 ~ [ab4,eb5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@4 [ab4,eb5]@3 ~ [db4,e4]@2 [b3,e4]@2 [db4,gb4]@2 [b3,e4]@2 [b3,e4]@2]/2", // Abm Ab5 A5 Ab5 Dbm E5 Gb5 E5
AD: "[b3,e4] [b3,e4]@5 ~@2", // E5
AE: "[~@2 [eb4,b4]@3 ~ [ab4,eb5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@2 [a4,e5]@4 [ab4,eb5]@2 ~@2 [db4,e4]@2 [b3,e4]@2 [db4,gb4]@2 [b3,e4]@2 [b3,e4]@2]/2", // Abm Ab5 A5 Ab5 Dbm E5 Gb5 E5
})).s("gm_acoustic_guitar_nylon").gain(0.25)
// chords · epiano1 · "E.PIANO 1"
const epiano1_2 = note(`<
A@5 B@2 ~@16 C D E F ~@17 G@2 H I ~@7 J K L ~ M@3 N@2 ~@3 O P ~@21 Q@2 ~@2 R@2 ~@9
>`.pickRestart({
A: "[~@14 eb5 db5@3 f5@4 db5@4 ~@4 db5@4 eb5@4 db5@4 eb5@4 ab4@4 db5 eb5@3 f5@2 db5@2 ~@2 ab4@6 f5 db5@11 ~@2, ~@26 f5@5 ~@49, ~@27 eb5@5 ~@26 [eb5,f5]@6 ~@16, ~@27 db5@2 ~@30 db5@4 ~@17, ~@14 ab4@9 ~@17]/5", // Ebsus2
B: "[f5@10 ~@4 eb5@7 ~ [ab4,db5]@9 ~, ~@5 f4@2 ~@9, ~@12 bb4@9 ~@11]/2", C: "~@2 db5 gb5", D: "db5@9 ~@7",
E: "~@2 ab5 eb5@5", F: "f5@7 ~", G: "[~@10 f5@2 ab5@2 f5@12 ab5@2 f5@2 c5 db5]/2",
H: "c5@4 db5@2 c5@4 db5@2 c5@2 bb4 ~", I: "bb4@7 ~", J: "db5", K: "eb5", L: "db5@15 ~",
M: "[eb6@2 db6@2 gb5@4 f5@15 ~ [eb5,f5]@16 ~@8, ~@23 c5@17 ~@8]/3", // Ebsus2
N: "[~@8 [ab4,f5] ~@5 [gb4,ab4]@10 bb4@4 db4@4, ~@14 eb5@17 ~]/2", O: "[bb4,db5]@8 [c5,eb5]@7 ~",
P: "c5@3 ~@2 c5@3, ab4, ~@3 f5@5", Q: "[~@4 e5@2 gb5@2 e5@11 ~@13, ~ db5@2 ~@13]/2",
R: "[~ db5 e5 gb5 ab5 b5 db6 e6@3 ~@6]/2",
})).s("gm_epiano1").gain(0.33).pan(0.1)
// chords · electric guitar clean · "CLEAN GTR"
const electric_guitar_clean = note(`<
~ A B C D E F G H I J@6 ~@11 K L M ~ N O ~@2 P Q R ~@13 K L M ~ N O ~@2 P Q R ~@13 S T ~@2 U V W ~@4 S T ~@2 U V W ~@2
S T ~@2 U V W ~@3
>`.pickRestart({
A: "~@2 [gb4,bb4,eb5] ~@2 [bb4,eb5] ~@2 [gb4,bb4,eb5] ~@2 [gb4,bb4,eb5] ~ [bb4,eb5]!2 [gb4,bb4,eb5], ~@3 [bb4,eb5]@2 ~@11, ~@2 [gb4,eb5] ~@5", // Ebm Eb5 Ebm Eb5 Ebm Eb5 Ebm
// … 160 more lines
More by Bee Gees
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.