0:00/0:00
// Just a Gigolo — Vaughan Sarah
// 140 bpm, 4/4, key G# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 130 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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.
// chords · brass section
const brass_section = note(`<
~@13 A B C D E F G H I@2 J@2 K@3 L M N O P Q R S ~ T@2 U V W X Y Z T@2 U ~ AA@2 AB AC AD@2 AE@2 AF AG AH ~ T@2 U AI AJ
AK AL AM AN AO AP AQ AR AS AN AT AU AV AW AQ AX AY AZ BA BB BC BD BE BF BG BH ~ BI BJ U BK BL BM BN BO BI BP BQ BR BS
BT BU@2 BV@2 BW@2 BX BY BZ CA CB@2 CC@2 CD CE CF CG CH CI CJ CK@2
>`.pickRestart({
A: "~@5 [ab3,c4,eb4]@7", B: "gb4@12 f4@5 ~ gb4@5 ~, [bb3,db4]@23 ~", C: "[a3,c4,eb4,f4]@12 [c4,eb4,f4,a4]@11 ~",
D: "bb4@12 c5@11 ~, f4@11 ~", E: "bb4@11 ~@11 [db5,eb5]@2, [f4,db5]@23 ~, ~ ab4",
F: "[eb4,ab4,c5]@11 ~ [a4,c5,eb5]@12", G: "[f4,bb4,db5]@11 ~ [g4,bb4,eb5]@12",
H: "[eb4,ab4,c5]@10 [eb4,eb5]@8 [f4,f5]@3 ~@3", I: "[~@16 [ab3,ab4]@2 ~@4 [ab3,c4,eb4,g4]@25 ~]/2",
J: "[ab3@12 [a3,eb4]@11 ~ [ab3,bb3,db4]@16 eb4@3 ~@5, f4@5 ~, c4@23 ~@25]/2", // Adim Bbm7
K: "[~@16 [g3,g4]@2 ~@4 [ab3,db4,f4,ab4]@17 ~ [ab3,db4,f4,ab4]@2 ~@4 [g3,bb3,eb4,g4]@25 ~]/3", // G Db Eb
L: "[ab3,eb4,ab4]@16 [f3,f4]@2 [ab3,ab4]@3 ~@3", M: "[ab3,c4,ab4,ab5], eb4@11 ~", N: "[gb3,bb3,db4,gb4,gb5]",
O: "[c4,f4,f5]@12 [eb4,eb5]@4 ~@2 [c4,c5]@3 ~@3, [f3,a3]", P: "[db4,db5] [f3,eb4,eb5], bb3@23 ~",
Q: "[bb3,f4,f5] [bb3,e4,e5], db4", R: "[ab3,c4,eb4,eb5]@13 ~@3 [a3,c4,eb4,gb4,a4,c5,eb5,gb5]@7 ~",
S: "[bb3,db4,f4,bb4,db5,f5] ~@7", // Bbm
T: "[[eb4,ab4,c5,eb5]@29 ~ [d4,g4,d5]@6 [db4,gb4,bb4,db5]@5 ~ [c4,f4,a4,c5]@5 ~, ~@15 b4@2 ~@7]/2", // Ab G5 Gb F
U: "[c4,f4,a4,c5]@21 ~ [c4,f4]@2", V: "~@5 [d4,d5]@7", W: "[f4,bb4,db5]@3 ~@13 [db4,f4,ab4]@7 ~",
X: "[db4,f4,ab4]@3 ~@13 [db4,f4,ab4]@7 ~", Y: "[ab3,ab4]@3 ~@7 [c4,eb4,ab4]@8 f4@5 ~",
Z: "[ab3,c4,eb4,ab4]@3 ~@7 [ab3,ab4]@12 ~@2", AA: "[~@10 [ab3,ab4]@29 ~ [c4,c5]@8, [f3,f4]@13 ~@3]/2",
AB: "~@12 bb4@11 ~, [db4,f4,ab4]@23 ~", AC: "[eb4,g4,bb4,c5]@9 ~ [g4,bb4,c5,eb5]@8 [g4,bb4,c5]@3 ~@3",
AD: "ab3@3 ~@7 [c4,eb4,ab4]@8 f4@3 ~@3", AE: "ab3@3 ~@7 [db4,f4,ab4]@8 f4@3 ~@3",
AF: "[a3,c4]@3 ~@7 g4@7 ~ f4@4 ~@2, ~@5 [a3,c4]@6 ~", AG: "[a3,c4]@4 ~@6 g4@7 ~ f4@2 ~@4, ~@5 [a3,c4]@5 ~@2",
AH: "[d4,f4,ab4,c5] ~@5", AI: "~@10 [d3,d4,d5]@13 ~",
AJ: "[db4,f4,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@4 ~@2, ~@10 bb3 ~@13", AK: "~@5 [ab3,ab4]@4 [f3,f4]@2 ~",
AL: "[c4,eb4,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@4 ~@2", AM: "[ab3,ab4]@4 ~@2 [f3,f4]@4 ~@2 [eb3,eb4]@5 ~ [f3,f4]@4 ~@2",
AN: "~@4 [c4,eb4,f4,ab4] ~@7 [c4,eb4,f4,ab4]@4 [c4,eb4,f4,ab4] ~@7", AO: "[c4,eb4,f4,ab4]@2 ~@8 [c4,eb4,f4,ab4]@13 ~",
AP: "~@4 [c4,eb4,f4,a4] ~@7 [c4,eb4,f4,a4]@4 [c4,eb4,f4,a4] ~@7", // F7
AQ: "[c4,a4]@2 ~@8 [c4,eb4,f4,a4]@13 ~, [eb4,f4] ~@23", // F F7 Ebsus2
AR: "~@4 [db4,ab4]@2 ~@6 [bb3,db4,f4]@3 ~ [bb3,db4,f4]@2 ~@6, ~@4 [bb3,f4] ~@7 ab4@6 ~@6", // Db5 Bbm Bb5
AS: "[db4,eb4]@2 ~@8 [bb3,db4,eb4,g4]@13 ~, [bb3,g4] ~@23", AT: "[c4,eb4,ab4]@2 ~@8 [ab3,ab4]@13 ~, f4 ~@23",
AU: "~@3 [c4,eb4,ab4] ~@2 [c4,eb4,f4,ab4]@2 [c4,ab4] ~@3, ~@6 f4 ~@9 [eb4,f4] ~@7", // Ab Fm7 Fm Ebsus2
AV: "[c4,eb4,ab4]@2 ~@8 [c4,eb4,f4,ab4]@13 ~, f4 ~@23", // Ab Fm7
AW: "~@6 [c4,eb4,a4]@2 ~@4 [c4,eb4,f4,a4]@4 [c4,f4,a4] ~@7, ~@6 f4 ~@9 eb4@2 ~@6", // Adim F7 F
AX: "~@6 [bb3,d4,f4]@2 ~@4 [bb3,d4,f4]@3 ~ [bb3,d4,f4]@2 ~@6", // Bb
AY: "[bb3,d4,f4,ab4,bb4]@3 ~@7 [bb3,d4,f4,ab4,bb4]@13 ~", // Bb7
AZ: "[f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~ [f4,ab4,bb4,db5] ~", // Bbm7
BA: "[eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4,db5,eb5] ~ [eb4,g4,bb4] ~, ~@11 [db5,eb5]", // Eb7 Eb Dbsus2
BB: "[f4,ab4,c5,eb5,f5]@3 ~@3 [f4,ab4,c5,eb5,f5]@3 ~@3 [f4,ab4,c5,eb5,f5]@5 ~@5 [f4,ab4,c5,eb5,f5]@2", // Fm7
BC: "~@4 [f4,ab4,c5,eb5,f5]@3 ~@3 [f4,ab4,c5,eb5,f5] ~ [f4,ab4,c5,eb5,f5]@3 ~ [f4,ab4,c5,f5] ~ [f4,ab4,c5,eb5,f5]@3 ~@3, ~@8 eb5 ~@3", // Fm7 Fm Fm7
BD: "[f4,a4,c5,eb5,f5]@2 ~@4 [f4,a4,c5,eb5,f5]@3 ~@3 [f4,a4,c5,eb5,f5]@6 ~@4 [f4,c5,eb5,f5]@2, ~@22 a4 ~", // F7
BE: "~@4 [f4,a4,c5,eb5,f5]@2 ~@4 [f4,a4,c5,eb5,f5] ~ [f4,a4,c5,eb5,f5]@3 ~ [f4,a4,c5,eb5,f5] ~ [f4,a4,c5,eb5,f5]@3 ~@3", // F7
BF: "[f4,ab4,bb4,db5,f5]@3 ~@3 [f4,ab4,bb4,db5,f5]@3 ~@3 [f4,ab4,bb4,db5,f5]@7 ~@3 [f4,db5,f5]@2, ~@22 [ab4,bb4] ~", // Bbm7 Db Absus2
BG: "~@4 [f4,ab4,bb4,db5,f5]@2 ~@4 [f4,ab4,bb4,db5,f5] ~ [f4,ab4,bb4,db5,f5]@3 ~ [f4,ab4,bb4,db5,f5] ~ [f4,ab4,bb4,db5,f5]@3 ~ [ab4,bb4,db5,f5] ~, ~@11 f4", // Bbm7
BH: "[eb4,ab4,c5,eb5] ~@7", // Ab
BI: "[eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~ [eb4,ab4,c5,eb5]@3 ~", // Ab
BJ: "[eb4,ab4,c5,eb5]@5 ~ [d4,g4,b4,d5]@5 ~ [db4,gb4,bb4,db5]@5 ~ [c4,f4,a4]@4 ~@2", BK: "~@10 [c4,a4,c5]@13 ~",
BL: "[db4,f4,ab4]@3 ~@7 [f3,f4]@8 [ab3,ab4]@4 ~@2", // Db F Ab
BM: "[ab3,db4,f4,ab4]@3 ~@7 [ab3,db4,f4,ab4]@7 ~ [ab3,db4,f4]@3 ~@3, ~@18 ab4@5 ~", // Db
BN: "[ab3,c4,eb4,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@4 ~@2", BO: "[ab3,ab4]@3 ~@7 [ab3,ab4]@8 [f3,f4]@3 ~@3",
BP: "[eb4,ab4,c5,eb5]@5 ~ [d4,g4,b4,d5]@5 ~ [db4,gb4,bb4,db5]@5 ~ [c4,f4,c5]@5 ~, ~@6 a4 ~", // Ab G Gb F5
BQ: "[c4,eb4,f4,a4,c5]@21 ~ [c4,f4]@2", BR: "~@5 [c4,c5]@4 [c4,c5]@2 ~", BS: "[db4,f4,ab4,c5] ~@3 [f3,f4]@2",
BT: "[ab3,ab4]@3 ~@13 [f3,f4]@8", // Ab F
BU: "[[ab3,db4,f4,ab4]@3 ~@3 [ab3,db4,f4,ab4]@3 ~@3 [ab3,db4,f4,ab4]@4 bb3@2 [ab3,ab4]@3 ~ [bb3,eb4,g4]@26, ~@16 bb4@5 ~@27]/2", // Db Ab Eb
BV: "[ab2,ab3]@2 ~@3 [c4,eb4]@4 f4@2 ~, ~@10 ab4@7 ~@7", BW: "[ab2,ab3]@4 ~@6 [db4,f4,ab4]@8 f4@3 ~@3",
BX: "[c3,c4]@2 ~@3 [c4,eb4,g4]@4 f4@2 ~", BY: "[c3,c4]@5 ~@5 [c4,eb4,g4]@8 f4@3 ~@3",
BZ: "~@4 [ab3,bb3,db4,f4,ab4]@7 ~@5 [ab3,bb3,db4,f4,ab4]@7 ~", CA: "~@4 [bb3,db4,eb4,g4]@7 ~@5 [bb3,db4,eb4,g4]@7 ~",
CB: "~@4 [c4,eb4,f4,ab4]@7 ~@5 [c4,eb4,f4,ab4]@7 ~", CC: "~@4 [c4,eb4,f4,a4]@7 ~@5 [c4,eb4,f4,a4]@7 ~",
CD: "~ ab4, [db4,f4]", CE: "~@6 bb4@5 ~, [eb4,g4]@11 ~",
CF: "[c4,eb4,ab4]@11 ~ [bb3,db4,gb4]@5 ~ [bb3,db4,gb4]@3 ~ [a3,c4,f4]@2", // Ab Gb F
CG: "~@4 [a3,c4,eb4,gb4]@3 ~@3 [a3,c4,eb4,gb4]@3 ~@3 [c4,eb4]@2 [a3,c4,eb4,f4]@4 ~@2, ~@16 [a3,gb4] ~@7", // Adim Cm F7 D
CH: "[bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@4 ~@2", // Bbm7
CI: "[bb3,db4,f4,ab4]@3 ~@3 [bb3,db4,f4,ab4]@4 ~@2 [bb3,db4,f4,ab4]@5 ~ [bb3,db4,f4,ab4]@5 ~", // Bbm7
CJ: "[c4,eb4,f4,ab4]@2 ~ [ab3,ab4] [bb3,bb4] c4 [eb4,eb5]@2 db4 [ab3,ab4]@2 bb3, ~@10 c5 ~@5 db5 ~@5 bb4 ~", // Fm7 Ab Bb Eb Ab
CK: "[[c4,c5]@4 ~@2 [d4,g4,b4]@4 [eb4,ab4,c5]@27 ~@11]/2", // C G Ab
})).s("gm_brass_section").gain(0.22)
// bass · electric bass finger
const bass = note(`<
~ A B A C D@2 E B@2 F G D A H I J K L B D@3 E B@2 F G D A H M N K O P ~ D Q R S T G D U D Q V W X@2 T Y D Z AA AB AC
AD AE ~ D AF AC AG AH AI D U D Z AJ AD T G D U D Z AC AK AL AM AN G D Z AC R AO AN AP AQ D AF AC AR T G D U D AF AC AD
AS T AT Y D Z AA AU AC AD T G D AV R AW T G AX AY AZ G BA BB@2
>`.pickRestart({
A: "ab1@6 c2@6 eb2@5 ~ c2@4 ab1 ~", B: "bb1@5 ~ bb1@5 ~ eb2@5 ~ eb2@5 ~", C: "bb1@5 ~ bb1@5 ~ eb2@5 ~ eb2@3 ~ eb2 ~",
D: "ab1@5 ~ c2@6 eb2@5 ~ f2@4 eb2 ~", E: "ab1@5 ~ ab1@5 ~ a1@5 ~ a1@5 ~", F: "bb1@5 ~ bb1@6 eb2@6 bb1@2 c2@2 db2 ~",
G: "eb2@5 ~ db2@6 c2@6 bb1@6", H: "gb1@6 bb1@6 db2@5 ~ bb1@4 gb1 ~", I: "f1@6 a1@5 ~ c2@6 eb2@6",
J: "db2@5 ~ c2@6 bb1@5 ~ ab1@4 a1 ~", K: "bb1@5 ~ bb1@6 db2@5 ~ db2@6", L: "ab1@5 ~ ab1@4 g1 ~ f1@6 a1@5 ~",
M: "f1@5 ~ a1@5 ~ c2@6 a1@4 f1 ~", N: "bb1@5 ~ bb1@5 ~ f1@5 ~ f1@5 ~", O: "ab1@4 ~@2 ab1@5 ~ f1@2 ~@2 f1@7 ~",
P: "bb1 ~@7", Q: "ab2@6 g2@5 ~ gb2@5 ~ f2@5 ~", R: "f2@6 eb2@5 ~ c2@5 ~ a1@5 ~", S: "f1@6 a1@4 f1@5 ~ f1 ~ g1@4 f1 ~",
T: "bb1@5 ~ db2@6 f2@6 db2@4 d2 ~", U: "ab2@6 f2@5 ~ eb2@5 ~ c2@4 eb2 ~", V: "f2@6 eb2@5 ~ c2@6 a1@4 c2@2",
W: "f1@5 ~ g1@5 ~ ab1@5 ~ a1@6", X: "bb1@6 d2@6 f2@6 d2@4 f2 ~", Y: "eb2@5 ~ db2@6 c2@6 bb1@5 ~",
Z: "ab2@5 ~ f2@6 eb2@6 c2@4 ab1 ~", AA: "db2@6 f2@6 ab2@6 bb2@4 ab2 ~", AB: "db2@5 ~ db2@6 ab1@6 db2@4 ab1 ~",
AC: "f1@5 ~ a1@6 c2@5 ~ d2@4 c2 ~", AD: "f2@5 ~ eb2@6 db2@5 ~ c2@5 ~", AE: "bb1 ~@5",
AF: "ab2@5 ~ g2@5 ~ gb2@5 ~ f2@4 c2 ~", AG: "f2@6 c2@3 ~ f1@6 c2@2 f2@3 ~ f1 ~", AH: "bb1@5 ~ ab1@5 ~ g1@6 f1@6",
AI: "eb1@6 bb1@6 eb2@5 ~ bb1@4 eb1 ~", AJ: "f1@5 ~ a1@6 c2@6 eb2@4 c2 ~", AK: "f2@6 d2@5 ~ c2@5 ~ a1@4 f1 ~",
AL: "bb1@5 ~ d2@6 f2@6 g2@4 f2 ~", AM: "bb2@5 ~ g2@5 ~ f2@6 d2@6", AN: "bb1@5 ~ db2@6 f2@6 db2@4 bb1 ~",
AO: "bb1@5 ~ db2@6 f2@6 db2@6", AP: "ab1@5 ~@19", AQ: "~@16 eb1 ~@5 f1 ~", AR: "f2@6 c2@5 ~ f1@5 ~ c2@4 f2 ~",
AS: "bb1@5 ~ db2@6 f2@6 db2@4 f2 ~", AT: "eb2@5 ~ bb1@6 eb2@6 bb1@4 db2 ~", AU: "db3@6 ab2@6 f2@6 db2@5 ~",
AV: "ab2@5 ~ ab2@5 ~ g2@5 ~ gb2@5 ~", AW: "f1@5 ~ c2@6 f2@4 c2 ~ f1@3 ~ c2 ~",
AX: "ab1@6 eb2@4 ab2 ~ gb1@6 db2@4 gb2 ~", AY: "f1@5 ~ c2@6 f2@6 f1@3 ~ c2 ~", AZ: "bb1@6 c2@5 ~ db2@6 d2@5 ~",
BA: "ab1@3 ~@3 ab1@2 bb1@2 c2 ~ eb2@4 db2@2 ab1@4 bb1@2", BB: "[c2@4 ~@2 g1@3 ~ ab1@26 ~@12]/2",
})).s("gm_electric_bass_finger").gain(0.42)
// other · piano
const piano = note(`<
~ A B C B D@2 E F@2 G H D I J K L M N F D@3 E F@2 G H D I J O P M Q R ~ D S T U V H D W D S X Y Z@2 V AA D AB AC AD AE
AF R ~ D AG AE AH AI AJ D W D AB AK AF V H D W D AB AE AL AM AN AO H D AB AE T AP AO AQ AR D AG AE AS V H D W D AG AE
AF AT V AU AA D AB AC AV AE AF V H D AW T AX V H AY AZ BA H BB BC@2
>`.pickRestart({
A: "ab2@3 c3@3 eb3@3 c3@2 ab2", B: "bb2@5 ~ bb2@5 ~ eb2@5 ~ eb2@6", C: "ab2@6 c3@6 eb3@5 ~ c3@3 ~ ab2 ~",
D: "ab2@5 ~ c3@6 eb3@5 ~ f3@4 eb3 ~", E: "ab2@5 ~ ab2@5 ~ a2@5 ~ a2@5 ~", F: "bb2@5 ~ bb2@5 ~ eb3@5 ~ eb3@5 ~",
G: "bb2@5 ~ bb2@6 eb3@6 bb2@2 c3@2 db3 ~", H: "eb3@5 ~ db3@6 c3@6 bb2@6", I: "ab2@6 c3@6 eb3@6 c3@4 ab2 ~",
J: "gb2@6 bb2@6 db3@5 ~ bb2@4 gb2@2", K: "f2@5 ~ a2@5 ~ c3@6 eb3@6", L: "db3@5 ~ c3@6 bb2@5 ~ ab2@4 a2 ~",
M: "bb2@5 ~ bb2@6 db3@5 ~ db3@6", N: "ab2@5 ~ ab2@4 g2 ~ f2@6 a2@5 ~", O: "f2@5 ~ a2@5 ~ c3@6 a2@4 f2 ~",
P: "bb2@5 ~ bb2@5 ~ f2@5 ~ f2@5 ~", Q: "ab2@4 ~@2 ab2@5 ~ f2@2 ~@2 f2@8", R: "bb2 ~@5",
S: "ab3@6 g3@5 ~ gb3@5 ~ f3@5 ~", T: "f3@6 eb3@5 ~ c3@5 ~ a2@5 ~", U: "f2@6 a2@4 f2@5 ~ f2 ~ g2@4 f2 ~",
V: "bb2@5 ~ db3@6 f3@6 db3@4 d3 ~", W: "ab3@5 ~ f3@5 ~ eb3@6 c3@4 eb3 ~", X: "f3@6 eb3@5 ~ c3@6 a2@4 c3@2",
Y: "f2@5 ~ g2@5 ~ ab2@5 ~ a2@6", Z: "bb2@6 d3@6 f3@6 d3@4 f3 ~", AA: "eb3@5 ~ db3@6 c3@6 bb2@5 ~",
AB: "ab3@5 ~ f3@6 eb3@6 c3@4 ab2 ~", AC: "db3@6 f3@6 ab3@6 bb3@4 ab3 ~", AD: "db3@5 ~ db3@6 ab2@6 db3@4 ab2 ~",
AE: "f2@5 ~ a2@6 c3@5 ~ d3@4 c3 ~", AF: "f3@5 ~ eb3@6 db3@5 ~ c3@5 ~", AG: "ab3@5 ~ g3@5 ~ gb3@5 ~ f3@4 c3 ~",
AH: "f3@6 c3@3 ~ f2@6 c3@2 f3@3 ~ f2 ~", AI: "bb2@5 ~ ab2@5 ~ g2@6 f2@5 ~", AJ: "eb2@6 bb2@6 eb3@5 ~ bb2@4 eb2 ~",
AK: "f2@5 ~ a2@6 c3@6 eb3@4 c3 ~", AL: "f3@6 d3@5 ~ c3@5 ~ a2@4 f2 ~", AM: "bb2@5 ~ d3@6 f3@6 g3@4 f3 ~",
AN: "bb3@6 g3@5 ~ f3@6 d3@6", AO: "bb2@5 ~ db3@6 f3@6 db3@4 bb2 ~", AP: "bb2@5 ~ db3@6 f3@6 db3@6", AQ: "ab2@5 ~@19",
AR: "~@16 eb2 ~@5 f2 ~", AS: "f3@6 c3@5 ~ f2@5 ~ c3@4 f3 ~", AT: "bb2@5 ~ db3@6 f3@6 db3@4 f3 ~",
AU: "eb3@5 ~ bb2@6 eb3@6 bb2@4 db3@2", AV: "db4@6 ab3@6 f3@6 db3@5 ~", AW: "ab3@5 ~ ab3@5 ~ g3@5 ~ gb3@5 ~",
AX: "f2@5 ~ c3@6 f3@4 c3 ~ f2@3 ~ c3 ~", AY: "ab2@6 eb3@4 ab3 ~ gb2@6 db3@4 gb3@2",
AZ: "f2@5 ~ c3@6 f3@6 f2@3 ~ c3 ~", BA: "bb2@6 c3@5 ~ db3@6 d3@5 ~",
BB: "ab2@3 ~@3 ab2@2 bb2@2 c3 ~ eb3@4 db3@2 ab2@4 bb2@2", BC: "[c3@4 ~@2 g2@3 ~ ab2@26 ~@12]/2",
})).s("gm_piano").gain(0.21).pan(0.1)
// chords · piano
const piano_2 = note(`<
~ A B A B C D E B F@2 G H C I J F K L B A C M E B F@2 G H C I N F O P Q ~ C R S@2 F@2 T A C R S@2 U@2 F V H W X@2 Y Z
AA ~ AB AC S@2 F@2 C@2 A@2 N@2 F AD A@4 N@2 U AE ~@2 A@2 N@2 F AF AG ~ AB AC S@2 F AH C@2 AB AC S@2 F@2 AH@2 AI@2 X@2
Y@2 AJ AH AI@2 Y@2 AK AL AM AN AJ@2 AO AP@2
>`.pickRestart({
A: "~@4 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~", // Fm7
B: "~@4 [ab3,bb3,db4] ~@5 [ab3,bb3,db4,f4] ~@5 [g3,bb3,eb4] ~@5 [g3,bb3,eb4] ~, ~@2 f4 ~@9", // Bbm7 Eb
C: "~@4 [ab3,c4,eb4,ab4] ~@5 [ab3,c4,eb4,ab4] ~@5 [ab3,c4,eb4,ab4] ~@5 [ab3,c4,eb4,ab4] ~", // Ab
D: "~@4 [c4,eb4]@2 ~@4 [c4,eb4]@2 ~@4 [c4,eb4]@2 ~@4 [ab3,c4,eb4,g4] ~, ~@4 [ab3,g4] ~@5 [ab3,g4] ~@5 [ab3,g4] ~@7", // Cm Abmaj7
E: "~@4 [ab3,c4,eb4,f4] ~@5 [ab3,c4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~, ~@5 eb4 ~@6", // Fm7 Fm F7
F: "~@4 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~", // Bbm7
G: "~@4 [bb3,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~@5 [bb3,eb4,g4] ~, ~@2 eb4 ~@9", // Eb
H: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~", // Ab
I: "~@4 [db4,gb4]@2 ~@4 [gb3,bb3,db4] ~@5 [gb3,bb3,db4] ~@5 [gb3,bb3,db4,gb4] ~, ~@4 [gb3,bb3] ~@5 gb4@2 ~@4 gb4@2 ~@6", // Gb5 Gb
J: "~@4 [f3,a3,c4,eb4] ~@5 [f3,a3,c4] ~@5 [f3,a3,c4] ~@5 [f3,a3,c4,eb4] ~, ~@5 eb4 ~@2 eb4 ~@3", // F7 F F7
K: "~@4 [ab3,bb3,db4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,db4,e4] ~@5 [ab3,db4,e4] ~, ~@2 f4 ~@9", // Bbm7 Dbm
L: "~@4 [ab3,c4,eb4] ~@5 eb4@2 c4 ~@3 [a3,c4,eb4,f4] ~@5 [a3,c4,f4] ~, ~@10 ab3 ~@11 eb4@2", // Ab F7 F
M: "~@4 [ab3,c4,eb4,g4] ~@5 [ab3,c4,g4] ~@5 [ab3,c4,g4] ~@5 [ab3,c4,g4] ~, ~@5 eb4 ~@2 eb4 ~@2 eb4", // Abmaj7
N: "~@4 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~", // F7
O: "~@4 [bb3,db4,f4] ~@5 [bb3,f4] ~@5 [bb3,db4,e4] ~@5 [bb3,db4,e4] ~, ~@5 db4 ~@6", // Bbm Bb5 Bbdim
P: "~@4 [ab3,c4,eb4] ~@5 [ab3,c4] ~@5 [a3,c4,eb4,gb4]@6 ~@2, ~@5 eb4 ~@6", Q: "[ab3,bb3,db4,f4] ~@11",
R: "~@4 [ab3,c4,eb4,ab4] ~@5 [g3,b3,d4,g4] ~@5 [gb3,bb3,db4,gb4] ~@5 [f3,a3,c4,f4] ~", // Ab G Gb F
S: "~@4 [f3,a3,c4,eb4,f4] ~@5 [f3,a3,c4,eb4,f4] ~@5 [f3,a3,c4,eb4,f4] ~@5 [f3,a3,c4,eb4,f4] ~", // F7
T: "~@4 [ab3,c4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~@5 [ab3,c4,eb4,f4] ~, ~@2 eb4 ~@9", // Fm Fm7
U: "~@4 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~", // Bb7
V: "~@4 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@3 eb4 ~ [bb3,db4,eb4,g4] ~", // Eb7
W: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [c4,eb4,gb4,ab4] ~", // Ab Ab7
X: "~@4 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~@5 [db4,f4,ab4] ~", // Db
Y: "~@4 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~", // F7
Z: "~@4 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [c4,eb4,f4,a4] ~@5 [eb4,f4,a4] ~", AA: "[d4,f4,ab4,c5] ~@7",
AB: "~@4 [ab3,c4,eb4,f4,ab4] ~@5 [ab3,c4,eb4,f4,ab4] ~@5 [ab3,c4,eb4,f4,ab4] ~@5 [ab3,c4,eb4,f4,ab4] ~", // Fm7
AC: "~@4 [ab3,c4,eb4,f4,ab4] ~@5 [g3,b3,d4,e4,g4] ~@5 [gb3,bb3,db4,eb4,gb4] ~@5 [f3,a3,c4,eb4,f4] ~", // Fm7 Em7 Ebm7 F7
AD: "~@4 [g3,bb3,db4,eb4] ~@5 [g3,bb3,db4,eb4] ~@5 [g3,bb3,db4,eb4] ~@5 [g3,bb3,eb4] ~, ~@11 db4", // Eb7 Eb
AE: "~@4 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4,f4] ~@5 [ab3,bb3,d4] ~", // Bb7
AF: "~@4 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,bb3,db4,f4] ~@5 [ab3,db4] ~", AG: "[c4,eb4,ab4] ~@7",
AH: "~@4 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~@5 [bb3,db4,eb4,g4] ~", // Eb7
AI: "~@4 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~@5 [c4,eb4,f4,ab4] ~", // Fm7
AJ: "~@4 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4] ~@5 [bb3,db4,f4,ab4] ~@5 [bb3,db4,f4,ab4] ~, ~@5 ab4 ~@6", // Bbm7 Bbm Bbm7
AK: "~@4 [db4,f4,bb4] ~@5 [db4,f4,ab4,bb4] ~@5 [db4,f4,ab4,bb4] ~@5 [db4,f4,ab4,bb4] ~, ~@2 ab4 ~@9", // Bbm Bbm7
AL: "~@4 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4] ~@5 [db4,eb4,g4,bb4] ~@5 [db4,eb4,g4,bb4] ~, ~@5 bb4 ~@6", // Eb7
AM: "~@4 [c4,eb4,ab4] ~@5 [c4,eb4,ab4] ~@5 [bb3,db4,gb4] ~@5 [bb3,db4,gb4] ~", // Ab Gb
AN: "~@4 [a3,c4,eb4,g4] ~@5 [a3,c4,eb4,g4] ~@5 [a3,c4,eb4,f4] ~@5 [a3,c4,eb4,f4] ~", // Am7b5 F7
AO: "[c4,eb4,f4,ab4]@3 ~@3 ab4 ~ bb4@2 c5 ~ eb5@3 ~ db5 ~ ab4@3 ~ bb4 ~", // Fm7
AP: "[c5@3 ~@3 [d4,g4,b4]@4 [eb4,ab4,c5]@28 ~@10]/2", // G Ab
})).s("gm_piano").gain(0.14).pan(0.9)
// drums · kick
const kick = s("bd").struct(`<
~ A B A B C@2 D@2 C D C D C D C@3 D C D B A@2 B A B A@7 E C ~ A@3 F A@11 B A@6 C ~ A@3 F A B A@24 C ~ A@33 G C H ~
>`.pickRestart({
A: "x!2", B: "x ~@5 x ~@4 x", C: "x", D: "x ~@10 x", E: "x ~ x", F: "x ~@4 x ~@5 x", G: "x ~ x!2", H: "~@3 x ~ x ~@6",
})).gain(0.4)
// drums · snare
const snare = s("sd").struct(`<
A B C B D B@7 C B@7 D B@7 D B@5 E F ~ B D B G B@3 D B@7 H B@5 D F A B D B G B@3 D B D B D B@3 D B@5 I J K L B@2 D B H
F ~ B D B M B@3 D B D B N B@3 D B D B D B@2 O P B D B D B@3 Q B R F S ~
>`.pickRestart({
A: "~@8 x!2 ~@2", B: "~ x ~ x", C: "~@3 x ~@5 x ~ x", D: "~@3 x ~@4 x!2 ~@2", E: "~@3 x ~@4 x ~@3", F: "x",
G: "~@3 x ~ x ~@2 x!2 ~ x", H: "~@3 x ~@4 x!2 ~ x", I: "~@3 x ~@4 x!4", J: "x!12",
K: "x!3 ~ x ~ x ~ x ~ x ~ x ~ x ~ x ~ x!6", L: "x!2 ~ x", M: "~@3 x ~ x ~@3 x ~@2", N: "~@3 x ~ x ~@5 x",
O: "~ x ~@2 x ~", P: "~@2 x ~@5 x!2 ~@2", Q: "~@2 x ~@2 x ~@2 x!2 ~ x", R: "~ x!3", S: "~@3 x ~ x ~@6",
})).gain(0.35)
// drums · hihat
const hihat = s("hh").struct(`<
~ A@2 B A@3 B A@2 B A@2 B A@2 B ~@4 A@4 B A@3 B A@4 C D ~ A@4 B A@2 C B A@3 B A@9 D ~ A@16 B A@2 E A@2 ~ F G H G H G I
D J A@34 D K ~
>`.pickRestart({
A: "~ x ~ x", B: "x!2 ~ x", C: "~@3 x ~@4 x ~@3", D: "x", E: "~@3 x ~@4 x!2 ~@2", F: "x!4", G: "x ~@2 x ~@2 x ~@4 x",
// … 30 more lines
More by Vaughan Sarah
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.