0:00/0:00
// I Promised Myself — Nick Kamen
// 120 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 135 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/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 · synth bass 2 · "SYNTH BASS"
const bass = note(`<
~@31 A@2 B@2 C@2 B@2 A@2 B@2 C@2 D@2 E@2 F@2 C@2 D@2 E@2 F@2 C@2 B@2 G ~@3 A@2 B@2 C@2 B@2 E@2 F@2 C@2 D@2 E@2 F@2 C@2
B@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@2 B@2 C@2 B@2 A@4 G ~@7
>`.pickRestart({
A: "ab1!16", B: "eb1!16", C: "bb1!16", D: "eb2!16", E: "c2!16", F: "f1!16", G: "ab1 ~@15",
})).s("gm_synth_bass_2").gain(0.36)
// bass · piano · "FLUTE"
const bass_2 = note("<db-1 ~@134>").s("gm_piano").gain(0.05)
// chords · flute
const flute = note(`<
~@3 A B C D E F G H I J G K L B 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 AR AS
AT AU AV AW AX AY AZ BA BB W BC BD BE BF BG BH BI BJ@2 BK@2 BL@2 BM@2 S@2 U BN W BO BD BP S@2 U BN W BQ BD BP BR BS BT
BU BV BW BT BX BY BS BZ BX CA BW CB CC BY BI CD BX CE CF BT CG BH BI BT CG CH CI CJ CK BY BI BY BI CL ~@7
>`.pickRestart({
A: "[eb5,c6] ~ [eb5,ab5,c6] ~ [eb5,ab5,bb5] ~ [eb5,ab5,bb5] ~, ab5 ~@15", // Cm Ab Ebsus4
B: "[eb5,ab5,db6] ~ [eb5,ab5,db6] ~ [eb5,ab5,c6] ~ [eb5,ab5,c6] ~", // Dbsus2 Ab
C: "[eb5,ab5,c6]@2 ~@2 [eb5,ab5,c6]@3 ~ [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2", // Ab Ebsus4
D: "[eb5,ab5,db6]@2 ~@2 [eb5,ab5,db6]@3 ~ [eb5,ab5,c6]@2 ~@2 [eb5,ab5,c6]@2 ~@2", // Dbsus2 Ab
E: "[eb5,ab5,c6] ~ [eb5,ab5,c6] ~ [eb5,ab5,bb5] ~ [eb5,ab5,bb5] ~", // Ab Ebsus4
F: "[eb5,ab5,db6]@2 ~@2 [eb5,ab5,db6]@2 ~@2 [eb5,ab5,c6]@2 ~@2 [ab5,c6] ~@3, ~@6 eb5 ~", // Dbsus2 Ab
G: "[bb4,eb5,ab5] ~ [bb4,eb5,ab5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Ebsus4 Eb
H: "[bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5] ~@3, ~@6 g5 ~", // Bbsus4 Eb Eb5
I: "[f5,db6]@2 ~@2 [f5,bb5,db6]@2 ~@2 [f5,bb5,c6]@2 ~@2 [f5,bb5,c6]@3 ~, bb5 ~@15", // Db Bbm Fsus4
J: "[f5,bb5,eb6]@3 ~ [f5,bb5,eb6]@3 ~ [f5,bb5,db6]@2 ~@2 [f5,bb5,db6]@2 ~@2", // Ebsus2 Bbm
K: "[bb4,eb5,f5]@2 ~@2 [bb4,eb5,f5]@2 ~@2 [bb4,eb5,g5]@3 ~ [bb4,eb5,g5]@2 ~@2", // Bbsus4 Eb
L: "[eb5,ab5] ~@3 [eb5,ab5,c6]@3 ~ [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2, c6 ~@7", // Ab5 Ab Ebsus4
M: "[bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@3 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@3 ~", // Ebsus4 Eb
N: "[eb5,f5]@2 ~@2 [bb4,eb5,f5]@2 ~@2 [bb4,g5]@2 ~@2 [bb4,eb5] ~@3, ~@8 eb5 ~@3 g5@2 ~@2", // Ebsus2 Bbsus4 Eb Eb5
O: "[f5,bb5,db6]@2 ~@2 [bb5,db6]@2 f5 ~ [f5,bb5,c6]@2 ~@2 [bb5,c6]@2 f5 ~, ~@12 f5 ~@3", // Bbm Fsus4 Bbsus2
P: "[f5,bb5,eb6]@2 ~@2 [bb5,eb6]@3 ~ [f5,bb5,db6]@2 ~@2 [bb5,db6] ~@3, ~@4 f5 ~@7 f5@2 ~@2", // Ebsus2 Eb5 Bbm
Q: "[bb4,eb5,ab5] ~@3 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 bb4 ~", // Ebsus4 Eb
R: "[bb4,eb5,f5]@2 ~@2 [bb4,eb5,f5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 bb4 ~", // Bbsus4 Eb
S: "[c5,eb5,g5] ~ [c5,eb5,g5] ~ [c5,eb5,g5] ~ [c5,eb5,g5] ~", // Cm
T: "[c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2 [c5,eb5,g5] ~@3", // Cm
U: "[c5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,a5] ~", // Fsus4 F
V: "[c5,f5,a5]@3 ~ [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2", // F
W: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~", // Bbm
X: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~", // Bbm
Y: "[eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2 [eb5,ab5] ~@3, ~@6 bb5 ~", // Ebsus4 Ab5
Z: "[eb5,g5,bb5]@2 ~@2 [eb5,g5,bb5]@2 ~@2 [eb5,g5,bb5]@2 eb5 ~ [g5,bb5]@2 eb5 ~", // Eb Gm
AA: "[ab5,c6]@2 ~@2 [ab5,c6]@2 eb5 ~ [eb5,ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@3 ~", // Ab Ebsus4
AB: "[ab5,db6]@2 eb5 ~ [ab5,db6]@2 eb5 ~ [eb5,ab5,c6]@2 ~@2 [eb5,ab5,c6]@2 ~@2", // Db5 Ab
AC: "[bb4,eb5,ab5]@2 ~@2 [eb5,ab5]@2 bb4 ~ [eb5,g5]@2 ~@2 [eb5,g5]@2 ~@2", // Ebsus4 Ab5 Eb
AD: "[eb5,f5]@2 ~@2 [eb5,f5]@2 bb4@2 [eb5,g5]@2 ~@2 [bb4,g5] ~@3, ~@6 eb5 ~", // Ebsus2 Eb
AE: "[f5,bb5,db6]@2 ~@2 [f5,bb5,db6]@3 ~ [bb5,c6]@2 f5 ~ [bb5,c6]@2 f5 ~", // Bbm Bbsus2
AF: "[f5,bb5,eb6]@2 ~@2 [bb5,eb6]@3 ~ [f5,bb5,db6]@3 ~ [bb5,db6] ~@3, ~@4 f5 ~@7 f5@2 ~@2", // Ebsus2 Eb5 Bbm
AG: "[bb4,eb5,ab5]@2 ~@2 [eb5,ab5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 bb4 ~", // Ebsus4 Ab5 Eb
AH: "[bb4,eb5,f5]@2 ~@2 [eb5,f5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 ~@2, ~@12 bb4 ~@3", // Bbsus4 Ebsus2 Eb
AI: "[eb5,ab5,c6]@2 ~@2 [ab5,c6]@2 eb5 ~ [ab5,bb5]@2 ~@2 [eb5,ab5,bb5]@2 ~@2", // Ab Absus2 Ebsus4
AJ: "[eb5,ab5,db6]@3 ~ [eb5,ab5,db6]@2 ~@2 [eb5,ab5,c6]@2 ~@2 [ab5,c6] ~@3, ~@6 eb5 ~", // Dbsus2 Ab
AK: "[bb4,eb5,ab5]@2 ~@2 [eb5,ab5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 bb4 ~", // Ebsus4 Ab5 Eb
AL: "[eb5,f5]@2 ~@2 [bb4,eb5,f5]@3 ~ [bb4,eb5,g5]@2 ~@2 [eb5,g5]@2 ~@2, ~@12 bb4 ~@3", // Ebsus2 Bbsus4 Eb
AM: "[f5,db6]@3 ~ [bb5,db6]@2 f5 ~ [f5,bb5,c6]@2 ~@2 [f5,bb5,c6]@3 ~, bb5 ~@15", // Db Bbm Fsus4
AN: "[f5,bb5,eb6]@3 ~ [f5,bb5,eb6]@3 ~ [f5,bb5,db6]@3 ~ [f5,bb5,db6]@2 ~@2", // Ebsus2 Bbm
AO: "[bb4,eb5,ab5]@3 ~ [eb5,ab5]@2 bb4 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@3 ~", // Ebsus4 Ab5 Eb
AP: "[bb4,eb5,f5]@3 ~ [bb4,eb5,f5]@3 ~ [bb4,eb5,g5]@3 ~ [bb4,eb5,g5]@2 ~@2", // Bbsus4 Eb
AQ: "[c5,eb5,g5]@2 ~@2 [eb5,g5]@2 c5 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2", // Cm Eb Cm
AR: "[c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2", // Cm
AS: "[c5,f5,bb5]@3 ~ [c5,f5,bb5]@3 ~ [c5,f5,bb5]@2 ~@2 [c5,f5,a5]@2 ~@2", // Fsus4 F
AT: "[f5,a5]@2 c5 ~ [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2 [c5,f5,a5]@2 ~@2", // F
AU: "[db5,f5,bb5]@3 ~ [db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~ [f5,bb5]@2 db5@2", // Bbm Bb5
AV: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [f5,bb5]@2 db5 ~ [db5,f5]@2 ~@2, ~@12 bb5 ~@3", // Bbm Bb5 Db
AW: "[bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@3 ~ [bb4,eb5,g5]@3 ~", // Ebsus4 Eb
AX: "[bb4,eb5,g5]@3 ~ [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2", // Eb
AY: "[c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@3 ~", // Cm
AZ: "[c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2 [c5,eb5,g5]@3 ~ [c5,eb5,g5]@2 ~@2", // Cm
BA: "[c5,f5,bb5]@3 ~ [c5,f5,bb5]@2 ~@2 [c5,f5,bb5]@2 ~@2 [c5,f5,a5]@3 ~", // Fsus4 F
BB: "[f5,a5]@2 c5 ~ [c5,f5,a5]@3 ~ [c5,f5,a5]@2 ~@2 [f5,a5]@2 c5 ~", // F
BC: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~ [f5,bb5]@2 db5 ~ [db5,bb5]@2 ~@2, ~@12 f5 ~@3", // Bbm Bb5 Gb
BD: "[bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,g5]@2 ~@2", // Ebsus4 Eb
BE: "[bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5]@2 ~@2 [bb4,eb5,g5] ~@3", // Eb
BF: "[c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@3 ~", // Ab Ebsus4
BG: "[db5,eb5,ab5]@3 ~ [db5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2", // Dbsus2 Ab
BH: "[c5,eb5,ab5] ~ [c5,eb5,ab5] ~ [bb4,eb5,ab5] ~ [bb4,eb5,ab5] ~", // Ab Ebsus4
BI: "[db5,eb5,ab5] ~ [db5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5,ab5] ~", BJ: "ab5/2",
BK: "[eb5@21 ~ eb5@2 eb6@2 db6@2 ~@2 c6@2]/2", BL: "[db6@21 ~ eb5@2 eb6@2 db6@3 ~ c6@2]/2", BM: "[bb5@15 ~]/2",
BN: "[c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~ [c5,f5,a5] ~", // F
BO: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5] ~, ~@12 bb5 ~@3", // Bbm Db
BP: "[bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~ [bb4,eb5,g5] ~", // Eb
BQ: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,bb5] ~, ~@12 f5 ~@3", // Bbm Gb
BR: "[c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@3 ~ [bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@3 ~", // Ab Ebsus4
BS: "[db5,eb5,ab5] ~ [db5,eb5,ab5] ~ [c5,eb5,ab5] ~ [c5,eb5] ~, ~@12 ab5 ~@3", // Dbsus2 Ab Cm
BT: "[ab4,bb4,eb5] ~ [ab4,bb4,eb5] ~ [g4,bb4,eb5] ~ [g4,bb4,eb5] ~", // Absus2 Eb
BU: "[f4,bb4,eb5]@2 ~@2 [f4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2 [g4,bb4,eb5] ~@3", // Ebsus2 Eb
BV: "[db5,bb5] ~ [db5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,bb5] ~, f5 ~@15", // Gb Bbm Fsus4
BW: "[eb5,f5,bb5] ~ [eb5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,bb5] ~, ~@12 f5 ~@3", // Ebsus2 Bbm Gb
BX: "[f4,bb4,eb5]@2 ~@2 [f4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2 [g4,bb4] ~@3, ~@6 eb5 ~", // Ebsus2 Eb Gm
BY: "[c5,eb5,ab5]@2 ~@2 [c5,eb5,ab5]@2 ~@2 [bb4,eb5,ab5]@3 ~ [bb4,eb5,ab5]@2 ~@2", // Ab Ebsus4
BZ: "[ab4,bb4,eb5]@2 ~@2 [ab4,bb4,eb5]@2 ~@2 [g4,eb5]@3 ~ [g4,bb4,eb5]@2 ~@2, ~@8 bb4 ~@7", // Absus2 Cm Eb
CA: "[db5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [c5,f5,bb5]@3 ~ [c5,f5,bb5]@2 ~@2, f5 ~@15", // Gb Bbm Fsus4
CB: "[ab4,bb4,eb5]@2 ~@2 [ab4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@2 ~@2", // Absus2 Eb
CC: "[f4,bb4,eb5]@2 ~@2 [f4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@3 ~ [bb4,eb5]@2 ~@2, ~@12 g4 ~@3", // Ebsus2 Eb Eb5
CD: "[ab4,bb4,eb5]@3 ~ [ab4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2 [g4,bb4,eb5]@2 ~@2", // Absus2 Eb
CE: "[db5,f5,bb5] ~ [db5,f5,bb5] ~ [c5,f5,bb5] ~ [c5,f5,bb5] ~", // Bbm Fsus4
CF: "[eb5,f5,bb5] ~ [eb5,f5,bb5] ~ [db5,f5,bb5] ~ [db5,f5,bb5] ~", // Ebsus2 Bbm
CG: "[f4,bb4,eb5] ~ [f4,bb4,eb5] ~ [g4,bb4,eb5] ~ [bb4,eb5] ~, ~@12 g4 ~@3", // Ebsus2 Eb Eb5
CH: "[db5,f5,bb5]@2 ~@2 [db5,f5,bb5]@2 ~@2 [c5,f5,bb5]@2 ~@2 [c5,f5,bb5]@3 ~", // Bbm Fsus4
CI: "[eb5,f5,bb5]@2 ~@2 [eb5,f5,bb5]@2 ~@2 [db5,f5,bb5]@3 ~ [f5,bb5] ~@3, ~@6 db5 ~", // Ebsus2 Bbm Bb5
CJ: "[ab4,bb4,eb5]@2 ~@2 [ab4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~ [g4,bb4,eb5]@2 ~@2", // Absus2 Eb
CK: "[f4,bb4,eb5]@3 ~ [f4,bb4,eb5]@3 ~ [g4,bb4,eb5]@3 ~ [g4,bb4] ~ ab5 ~, ~@6 eb5 ~", CL: "[c5,eb5,ab5] ~@7",
})).s("gm_flute").gain(0.25).pan(0.2)
// chords · synth strings 2 · "SYN STRING"
const synth_strings_2 = note(`<
~@3 A@6 B@2 C@2 D@4 E@2 F@2 G@2 H@2 I@4 J@6 C@2 K@6 C@2 L@6 M@2 N@2 O@2 P@4 Q@2 R@8 C@2 S@8 T@2 O@2 U@2 M@2 V@2 W@2
X@2 Y@2 Z@6 AA@2 AB@4 AC@2 C@2 AD@6 AE@2 AF@7 ~@7
>`.pickRestart({
A: "[c5@8 bb4@7 db5@9 c5@16 bb4@7 db5@9 c5@16 bb4@8 db5@8 c5@8, [eb4,ab4]@95 ~]/6", // Ab5
B: "[ab4@7 g4@7 ~@2 f4@8 g4@6 ~@2, bb3, eb4@15 ~]/2", C: "[db5 c5 eb5 db5, [f4,bb4]@15 ~]/2",
D: "[ab4@7 g4@8 f4@8 g4@6 ~@3 c5@8 bb4@8 db5@8 c5@8, bb3@33 ~@31, eb4@31 ~ [eb4,ab4]@31 ~]/4", // Ab5
E: "[ab4@4 g4@3 ~ f4@4 g4@4, [bb3,eb4]]/2", F: "[db5@8 c5@8 eb5@7 db5@9, [f4,bb4]@15 ~]/2",
G: "[ab4@8 g4@8 f4@8 g4@7 ~, [bb3,eb4]]/2", H: "[[c4,g4], eb4@15 ~]/2",
I: "[bb4@13 a4@18 ~ [f4,bb4]@32, [c4,f4]@31 db4@31 ~@2]/4", // Bb5 F5
J: "[ab4@14 g4@16 ~ c5@9 bb4@8 db5@8 c5@8 ~@8 g4@7 f4@8 ~ g4@7 ~, eb4@95 ~, bb3@31 ab4@40 ~@25, ~@2 bb3]/6",
K: "[ab4@8 g4@8 f4@8 g4@6 ~ c5@8 ~ bb4@8 db5@8 c5@8 ~@8 g4@8 f4@8 g4@8, eb4@95 ~, bb3@33 ~@31 bb3@32, ~@31 ab4@41 ~@24]/6",
L: "[ab4@8 g4@8 f4@8 ~@40 bb4@13 a4@18 ~, eb4@63 ~ f4@31 ~, bb3@16 c4@31 ~, ~@3 g4@5 ~@4]/6", M: "[db4,f4,bb4]/2",
N: "[ab4@14 g4@17 ~, bb3, eb4@15 ~]/2", O: "[[c4,eb4,g4]@31 ~]/2",
P: "[bb4@14 a4@17 ~ f4@31 ~, [c4,f4]@31 [db4,bb4]@31 ~@2]/4", Q: "[ab4@7 g4@8 ~, [bb3,eb4]]/2",
R: "[c5@8 bb4@8 db5@7 ~ c5@16 bb4@8 db5@8 c5@16 bb4@8 db5@8 c5@8 ~@8 g4@8 f4@8 g4@8, ab4@13 ~@3, eb4@3 [bb3,eb4]]/8", // Eb5
S: "[ab4@8 g4@8 f4@7 g4@7 ~@2 eb4@30 ~ bb4@14 ~ a4@17 ~ f4@31 ~, bb3@32 c4@62 ~ db4@31 ~@2, eb4@30 ~ g4@32 f4@31 ~ bb4@33]/8",
T: "[ab4@14 g4@17 ~, [bb3,eb4]]/2", U: "[bb4@13 a4@18 ~, [c4,f4]@31 ~]/2", V: "[ab4@14 g4@15 ~@3, bb3, eb4@15 ~]/2",
W: "[c5 bb4 db5 c5, [eb4,ab4]@31 ~]/2", X: "[ab4@8 g4@7 f4@8 g4@6 ~@3, [bb3,eb4]]/2",
Y: "[db5 c5 eb5 db5, bb4, f4@15 ~]/2",
Z: "[ab4@8 g4@8 f4@8 g4@6 ~@2 c5@8 bb4@8 db5@8 c5@8 ~@8 g4@8 f4@8 g4@7 ~, eb4@63 ~ bb3@32, bb3@4 ab4@5 ~@3, ~@32 eb4@15 ~]/6",
AA: "[db5 c5 eb5 db5, [f4,bb4]@31 ~]/2", // Bb5
AB: "[ab4@8 g4@8 f4@8 g4@5 ~@3 c5@8 bb4@8 db5@8 c5@8, eb4@63 ~, bb3@32 ab4@31 ~]/4",
AC: "[ab4@7 g4@8 f4@8 g4@6 ~@3, bb3, eb4@15 ~]/2",
AD: "[ab4@8 g4@8 f4@8 g4@5 ~@3 c5@8 bb4@8 db5@8 c5@8 ab4@8 g4@7 f4@8 ~ g4@7 ~, eb4@47 ~, bb3@31 ab4@31 ~@2 bb3@32]/6",
AE: "[db5@8 c5@7 ~ eb5@8 db5@8, f4@15 ~, bb4@15 bb4@14 ~@3]/2",
AF: "[ab4@7 g4@8 ~ f4@8 g4@6 ~@2 c5@8 bb4@8 db5@8 c5@16 bb4@8 db5@8 c5@16 ~@8, eb4@101 ~@11, bb3@16 ab4@35 ~@5]/7",
})).s("gm_synth_strings_2").gain(0.28).pan(0.7)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@23 A@2 B@2 C@2 D@3 ~@15 E F B@2 G H I@2 E F B@2 G H I@2 ~@4 J@2 K@2 L M N O P@2 Q@6 R@4 S@4 ~@8 T U V W U X V W T U
V W U X V W Y L Z AA L M Z AA Y AB@2 AC@2 ~@7
>`.pickRestart({
A: "[c3,c4]/2", B: "[f3,f4]/2", C: "[bb2,bb3]/2", D: "[[eb3,eb4]@11 ~@5]/3", E: "[c3,c4]",
F: "[eb3,eb4] [c3,c4] [eb3,eb4] [c3,c4]", G: "[bb2,bb3]", H: "[db3,db4] [bb2,bb3] [db3,db4] [bb2,bb3]",
I: "[eb3,eb4]/2", J: "[ab4,ab5]/2", K: "[bb4,bb5]/2", L: "[db5,db6] [c5,c6]", M: "[eb5,eb6] [db5,db6]",
N: "[bb4,bb5]", O: "[db5,db6]", P: "[c5,c6]/2", Q: "[[bb4,bb5]@14 ~ a4@17 [bb4,bb5]@64, ~@14 a5@19 ~@63]/6",
R: "[c5,c6]/4", S: "[bb4,bb5]/4", T: "c5 bb4", U: "db5 c5", V: "ab4 g4", W: "f4 g4", X: "eb5 db5",
Y: "[c5,c6] [bb4,bb5]", Z: "[ab4,ab5] [g4,g5]", AA: "[f4,f5] [g4,g5]", AB: "[[db5,db6] [c5,c6]@2 [bb4,bb5]]/2",
AC: "[[db5,db6]@4 c5@4 ab4@3 ~@5, ~@8 c6@13 ~@11]/2", // Db
})).s("gm_string_ensemble_1").gain(0.16).pan(0.8)
// other · string ensemble 2 · "STRINGS"
const string_ensemble_2 = note(`<
~@22 A B@2 C@2 D@2 E@2 ~@16 F G H@2 I J K@2 L M H@2 I J E@2 N ~@11 F G C@2 I J K@2 F O H@2 I J K@2 ~@44
>`.pickRestart({
A: "~@7 eb4", B: "c4/2", C: "f4/2", D: "bb4/2", E: "eb4/2", F: "c4", G: "eb4@4 c4@4 eb4@4 c4@3 ~", H: "[f4@31 ~]/2",
I: "bb3", J: "db4 bb3 db4 bb3", K: "[eb4@31 ~]/2", L: "c4@15 ~", M: "eb4@4 c4@3 ~ eb4@4 c4@3 ~", N: "ab3 ~",
O: "eb4 c4 eb4 c4",
})).s("gm_string_ensemble_2").gain(0.4)
// chords · electric guitar muted · "MUTED GTR"
const electric_guitar_muted = note(`<
~@3 A B A B A C D E F G D E A B H E F G D E I@2 J K L@2 D E A C D M F G D E A C D E N O P E Q R S T U V W X Y Z AA T
AB AC AD AE AF C AG C A C AH E F G D E AI Z AJ AK AL AM AN AO Y AI AP AQ AL AR AS AT AU AV AW AX AY AZ BA E BB C BC BD
N BE D BF BG C P BH BI G D BJ BK BL BM E BN BO BM E BP C BQ BR@2 ~@7
>`.pickRestart({
A: "[eb4,ab4,c5] ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,bb4] ~ [eb4,ab4,bb4]!2 ~ [eb4,ab4,bb4]!2 ~", // Ab Ebsus4
B: "[eb4,ab4,db5] ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,c5] ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,c5]!3", // Dbsus2 Ab
C: "[eb4,ab4,db5] ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,db5]!2 ~ [eb4,ab4,c5] ~ [eb4,ab4,c5]!2 ~ [eb4,ab4,c5]!2 ~", // Dbsus2 Ab
D: "[bb3,eb4,ab4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Ebsus4 Eb
E: "[bb3,eb4,f4] ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Bbsus4 Eb
F: "[f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!2 ~ [f4,bb4,c5] ~ [f4,bb4,c5]!2 ~ [f4,bb4,c5]!2 ~", // Bbm Fsus4
G: "[f4,bb4,eb5] ~ [f4,bb4,eb5]!2 ~ [f4,bb4,eb5]!2 ~ [f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!2 ~", // Ebsus2 Bbm
H: "[bb3,eb4,g4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Eb Ebsus4 Eb
I: "[c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~", // Cm
J: "[c4,f4,bb4] ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~", // Fsus4 F
K: "[c4,f4,a4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~ [c4,f4,a4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~", // F
L: "[db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4]!2 ~", // Bbm
M: "[bb3,eb4,f4] ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,f4]!2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] eb5 ~ [bb3,eb4,g4]!2 ~", // Bbsus4 Eb
N: "[f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!3 [f4,bb4,c5] ~ [f4,bb4,c5]!2 ~ [f4,bb4,c5]!2 ~", // Bbm Fsus4
O: "[f4,bb4,eb5] ~ [f4,bb4,eb5]!2 ~ [f4,bb4,eb5]!3 [f4,bb4,db5] ~ [f4,bb4,db5]!2 ~ [f4,bb4,db5]!2 ~", // Ebsus2 Bbm
P: "[bb3,eb4,ab4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!3 [bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~", // Ebsus4 Eb
Q: "[c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~ [c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~", // Cm
R: "[c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~ [c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [eb4,g4] [c4,eb4,g4] ~", // Cm Eb Cm
S: "[c4,f4,bb4] ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4] ~@2 [c4,f4,bb4] ~@2 [c4,f4,bb4] ~", // Fsus4
T: "[c4,f4,a4] ~ [c4,f4,a4]!2 ~ [c4,f4,a4]!2 ~ [c4,f4,a4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~", // F
U: "~@2 f4 [db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~", // Bbm
V: "[db4,f4,bb4] ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4]!2 ~ [db4,f4,bb4] ~@2 [db4,f4,bb4] ~@2 [db4,f4,bb4] ~", // Bbm
W: "[bb3,eb4,ab4] ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4]!2 ~ [bb3,eb4,ab4] ~ [bb3,eb4,ab4] ~ [bb3,eb4,ab4] ~ [bb3,eb4,g4] ~", // Ebsus4 Eb
X: "[bb3,eb4,g4] ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4]!2 ~ [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~", // Eb
Y: "~@2 [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~@2 [c4,eb4,g4] ~@2 [c4,eb4,g4] ~", // Cm
Z: "[c4,eb4,g4] ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~@2 [c4,eb4,g4]!2 ~ [c4,eb4,g4] ~", // Cm
AA: "[c4,f4,bb4] ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4]!2 ~ [c4,f4,bb4] ~@2 [c4,f4,a4] ~@2 [c4,f4,a4] ~", // Fsus4 F
// … 111 more lines
More by
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.