0:00/0:00
// When I Fall in Love — Lisa Lisa
// 230 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Full arrangement: all 204 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(230/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 · acoustic bass
const bass = note(`<
~@2 A B C D E F G H A I J D K L J M N O P Q R S T U V W X Y Z AA AB I AC@2 AD AE J AF J U A AG AH AI AJ I AK AL AM AN
AD AO AP AQ T AI V AR O AS Z I AT AU A B C D E F G H A L AV M AW AX AY AI N AZ BA AO AT BB T AL AM W AN P BC O AB L BD
BE BA BF AK BG J AI BH AG AY M BI AF AH BJ AM O BK BL AP C AI D A BM O BN BO L AP BA AW I BB M E F BP@2 BH BG AP BJ K
AX AY AL BI AN AD BQ AY BB AL BR AM BS X BK BT BU BV AG BW@2 BX BF BY AG AP D BH AG AP AL BH AG AK D AM X BK AO AP BZ
CA AL V W CB CC Z I AP CD AW BG S BJ CE F CF AW CG CH
>`.pickRestart({
A: "eb2@4 ~@2 eb2@2 bb2@6 eb2 ~", B: "c2@6 ab2 ~ ab2@6 bb1 ~", C: "b1@6 gb2 ~ gb2@6 b1 ~", D: "bb1@6 f2 ~ f2@6 e2 ~",
E: "eb2@6 bb2 ~ bb2@6 eb2 ~", F: "eb2@6 bb2 ~ bb2@4 bb1@2 ~@2", G: "eb3@5 ~ a2@2 bb2@6 d2@2",
H: "eb2@6 a1@2 bb1@5 ~ eb2 ~, ~@8 ab1 ~@7", I: "c2@4 ~@2 c2@2 ab2@6 c2 ~", J: "f2@3 c3 c3@3 f2",
K: "eb2@6 bb2 ~ bb2@6 db2 ~", L: "c2@3 ab2 ab2@3 c2", M: "bb1@5 ~ bb1 ~ bb1@6 bb1 ~", N: "eb2@6 bb2 ~ bb2@6 a2 ~",
O: "ab2@5 ~ ab2@2 eb3@6 ab2 ~", P: "db2@5 ~ db2 ~ db2@6 db2 ~", Q: "c2@6 g2 ~ g2@6 e2 ~", R: "f2@6 c3 ~ c3@6 bb1 ~",
S: "b1@5 ~ b1 ~ b1@6 b1 ~", T: "bb1@6 f2 ~ f2@6 b1 ~", U: "bb1@6 f2 ~ f2@6 d2 ~", V: "eb2@6 bb2 ~ bb2@6 ab1 ~",
W: "a1@6 eb2 ~ eb2@6 g2 ~", X: "ab2@6 eb3 ~ eb3@6 c2 ~", Y: "db2@6 ab2 ~ ab2@6 ab2 ~", Z: "g2@4 ~@2 g2@2 d3@6 g2 ~",
AA: "ab2@5 ~ ab2 ~ ab2@5 ~ ab2 ~", AB: "g2@5 ~ g2 ~ g2@6 g2 ~", AC: "[f2@6 c3@8 ab3@8 c3@4 f3@2 c3@2 f2 ~]/2",
AD: "db2@6 ab2 ~ ab2@6 b1 ~", AE: "c2@4 ~@2 c2@2 g2@6 c2 ~", AF: "c2@6 ab2 ~ ab2@6 e2 ~",
AG: "c2@6 ab2 ~ ab2@6 gb2 ~", AH: "f2@6 c3 ~ c3@6 a1 ~", AI: "bb1@4 ~@2 bb1@2 f2@6 bb1 ~", AJ: "eb2@3 bb2@4 eb2",
AK: "f2@5 ~ f2 ~ f2@6 f2 ~", AL: "bb1@3 f2 f2@3 bb1", AM: "eb2@5 ~ eb2 ~ eb2@6 eb2 ~",
AN: "ab2@4 ~@2 ab2@2 eb3@6 ab2 ~", AO: "c2@6 g2 ~ g2@6 gb2 ~", AP: "f2@4 ~@2 f2@2 c3@6 f2 ~",
AQ: "b1@6 gb2 ~ gb2@6 b1@2", AR: "a1@4 ~@2 a1@2 eb2@6 a1 ~", AS: "d2@3 a2 a2@3 d2", AT: "f2@6 c3 ~ c3@6 c2 ~",
AU: "db2@6 ab2 ~ ab2@6 d2 ~", AV: "f2@6 c3 ~ c3@6 b1 ~", AW: "eb2@5 ~ eb2@2 bb2@6 eb2 ~",
AX: "c2@5 ~ c2@2 ab2@6 c2 ~", AY: "f2@5 ~ f2@2 c3@6 f2 ~", AZ: "ab2@6 eb3 ~ eb3@6 d2 ~", BA: "db2@3 ab2 ab2@3 db2",
BB: "b1@4 ~@2 b1@2 gb2@6 b1 ~", BC: "g2@6 d3 ~ d3@6 a2 ~", BD: "f3@5 ~ b2@2 c3@6 e2@2",
BE: "f2@5 ~ b1@2 c2@5 ~ f2 ~, ~@8 bb1 ~@7", BF: "c2@5 ~ c2@2 g2@6 c2 ~", BG: "c2@5 ~ c2 ~ c2@6 c2 ~",
BH: "eb2@6 bb2 ~ bb2@6 b1 ~", BI: "eb2@3 bb2 bb2@3 eb2", BJ: "bb1@5 ~ bb1@2 f2@6 bb1 ~",
BK: "db2@5 ~ db2@2 ab2@6 db2 ~", BL: "c2@5 ~ c2 ~ c2@5 ~ c2 ~", BM: "a1@5 ~ a1 ~ a1@6 a1 ~",
BN: "d2@4 ~@2 d2@2 a2@6 d2 ~", BO: "g2@3 d3 d3@3 g2", BP: "[eb2@6 bb2@8 g3@8 bb2@4 eb3@2 bb2@2 eb2 ~]/2",
BQ: "c2@3 g2 g2@3 c2", BR: "bb1@6 f2 ~ f2@6 bb1@2", BS: "a1@3 eb2 eb2@3 a1", BT: "g2@6 d3 ~ d3@6 g2 ~",
BU: "ab2@6 eb3 ~ eb3@6 gb2 ~", BV: "g2@5 ~ g2@2 db3@6 g2 ~", BW: "f2@6 c3 ~ c3@6 f2 ~", BX: "db2@6 ab2 ~ ab2@6 db2 ~",
BY: "f2@6 c3 ~ c3@6 db2 ~", BZ: "b1@5 ~ b1 ~ b1@5 ~ b1 ~", CA: "bb1@6 f2 ~ f2@6 a1 ~", CB: "ab2@6 eb3 ~ eb3@6 eb2 ~",
CC: "d2@5 ~ d2 ~ d2@6 d2 ~", CD: "db2@6 ab2 ~ ab2@6 e2 ~", CE: "eb2@3 bb2@4 bb1", CF: "eb2@6 bb2 ~ bb2@6 d2 ~",
CG: "eb2@5 ~ bb2 ~ bb2@4 bb1@4", CH: "eb2",
})).s("gm_acoustic_bass").gain(0.5)
// chords · acoustic guitar nylon
const acoustic_guitar_nylon = note(`<
~@2 A B C D E@4 A F G H I J K L A M N B C@2 G L O P Q R S Q S F T U V B G J G L A B G W A F G D A X N Y Z C AA L A AB
Q X AC F G AD A B C D AE@4 AF AG AH AI AJ AK AH AL AM AN AO AP AQ AR AS AL AT AU AV AW AX AV AY AG AS AZ AO AG AH AG
AH BA AM AK AH AY AT AG AS AL AM BB BC AG BD BE AS BF AT BG AV AN AY AK AH AO BH AG BI BA AE@2 AT BJ BK BL G BM A F K
L BK BN N B C BO K L O P Q AD S BP S B BQ@2 V B K F G BR A B G H A F G L A X N F C BS K L A P BP X BT@6 BS D AT BJ BK
A BU BV
>`.pickRestart({
A: "[g3,c4] ~ [g3,c4] ~@2 [g3,c4] ~@2", B: "~@2 [bb3,e4]@5 ~ [bb3,e4]@2 ~@2 [bb3,e4]@2 ~@2",
C: "[a3,eb4] ~ [a3,eb4] ~@2 [a3,eb4] ~@2", D: "~@2 [ab3,d4]@5 ~ [ab3,d4]@2 ~@2 [ab3,d4]@2 ~@2",
E: "[[c4,f4,bb4]@2 ~@2 [c4,f4]@27 ~, ~@2 bb4@7 ~@7]/2", F: "[bb3,e4] ~ [bb3,e4] ~@2 [bb3,e4] ~@2",
G: "[ab3,eb4] ~ [ab3,eb4] ~@2 [ab3,eb4] ~@2", H: "~@2 d4 f4@2 d4 ~ f3, ~@2 f3@9 ~ bb3@4",
I: "~ [g3,c4]@2 ~ [g3,c4]@2 ~@4 [g3,c4]@2 ~@4", J: "~@2 e4 ab4@2 e4 ~ bb3, ~@2 bb3@9 ~ eb4@4",
K: "~@2 [ab3,eb4]@5 ~ [ab3,eb4]@2 ~@2 [ab3,eb4]@2 ~@2", L: "~@2 d4 f4@2 d4 ~ ab3, ~@2 ab3@9 ~ c4@4",
M: "~ [c4,gb4]@2 ~ [c4,gb4] ~ [c4,gb4] ~", N: "[b3,f4] ~ [b3,f4] ~@2 [b3,f4] ~@2",
O: "~ g3@2 ~ [g3,c4]@2 ~@4 [g3,c4]@2 ~@4, c4 ~@7", P: "~@2 [g3,db4]@5 ~ [g3,db4]@2 ~@2 [g3,db4]@2 ~@2",
Q: "[c4,g4] ~ [c4,g4] ~@2 [c4,g4] ~@2", R: "~@2 f4 ab4@2 f4 ~ b3, ~@2 b3@9 ~ eb4@4",
S: "[bb3,f4] ~ [bb3,f4] ~@2 [bb3,f4] ~@2", T: "[ab3,eb4] ~ [ab3,eb4] ~@2 f2 f3 [ab3,eb4]",
U: "~@2 f2@2 f3@2 [ab3,eb4]@3 ~ f2@2 [f3,ab3,eb4]@2 ~@2", V: "~ [b3,f4]@2 ~ [b3,f4] ~ [b3,f4] ~",
W: "~@2 [f3,d4]@5 ~ [f3,d4]@2 ~@2 [f3,d4]@2 ~@2", X: "~@2 [c4,gb4]@5 ~ [c4,gb4]@2 ~@2 [c4,gb4]@2 ~@2",
Y: "~@2 e4 g4@2 e4 ~ bb3, ~@2 bb3@9 ~ d4@4", Z: "~ [a3,eb4]@2 ~ [a3,eb4]@2 ~@4 [a3,eb4]@2 ~@4",
AA: "~ [ab3,eb4]@2 ~ [ab3,eb4] ~ [ab3,eb4] ~", AB: "[g3,db4] ~ [g3,db4] ~@2 [g3,db4] ~@2",
AC: "~@2 [bb3,f4]@5 ~ [bb3,f4]@2 ~@2 [bb3,f4]@2 ~@2", AD: "~@2 [b3,f4]@5 ~ [b3,f4]@2 ~@2 [b3,f4]@2 ~@2",
AE: "[[c4,f4,bb4]@2 ~@8 d5@4 f5@4 d5@4 bb4@4 g4@2 bb4@2 c5 ~, ~@4 [c4,f4]@27 ~, ~@2 bb4@7 ~@7]/2", // Fsus4 F5
AF: "[g3,c4]@2 ~@2 [g3,c4]@2 ~@4 [g3,c4]@2 ~@2 [g3,c4] ~", AG: "[bb3,e4] ~ [bb3,e4] ~@2 [bb3,e4] ~ [bb3,e4]",
AH: "~@14 [ab3,c4,eb4] ~, f3@5 f2@3, ~ ab3@5 f3@2, ~ c4@2 ~, ~@3 eb4@3 ~@2", // Ab
AI: "~@14 [bb3,d4,f4] ~, f3@5 bb2@3, ~ bb3@5 f3@2, ~ d4@2 ~, ~@3 f4@3 ~@2", // Bb
AJ: "~@14 [g3,bb3,c4] ~, eb3@5 eb2@3, ~ g3@5 eb3@2, ~ bb3@2 ~, ~@3 c4@3 ~@2", // C7
AK: "~@14 [bb3,eb4,e4] ~, ab3@5 c3@3, ~ bb3@5 ab3@2, ~ eb4@2 ~, ~@3 e4@3 ~@2", // Eb
AL: "[ab3,d4] ~ [ab3,d4] ~@2 [ab3,d4] ~ [ab3,d4]", AM: "[c4,f4,bb4] ~@4 d5@2 f5, ~ [c4,f4,bb4]@3",
AN: "[c4,gb4] ~ [c4,gb4] ~@2 [c4,gb4] ~ [c4,gb4]", // Cdim
AO: "~@14 [b3,eb4,f4] ~, ab3@5 db3@3, ~ b3@5 ab3@2, ~ eb4@2 ~, ~@3 f4@3 ~@2", // Fm7b5
AP: "[bb3,e4] ~@3 [bb3,e4]@2 ~@4 [bb3,e4]@2 ~@2 [bb3,e4]@2", AQ: "[a3,eb4] ~ [a3,eb4] ~@2 f2 f3 [a3,eb4]",
AR: "~@14 [a3,db4,eb4] ~, gb3@5 b2@3, ~ a3@5 gb3@2, ~ db4@2 ~, ~@3 eb4@3 ~@2", // Ebm7b5
AS: "[ab3,eb4] ~ [ab3,eb4] ~@2 [ab3,eb4] ~ [ab3,eb4]", AT: "[g3,c4] ~ [g3,c4] ~@2 [g3,c4] ~ [g3,c4]",
AU: "[g3,db4] ~ [g3,db4] ~@2 a2 eb3 [g3,db4]", AV: "[c4,g4] ~ [c4,g4] ~@2 [c4,g4] ~ [c4,g4]",
AW: "[b3,f4] ~ [b3,f4] ~@2 [b3,f4] ~ [b3,f4]", AX: "[bb3,f4] ~ [bb3,f4] ~@2 g2 g3 [bb3,f4]",
AY: "[bb3,f4] ~ [bb3,f4] ~@2 [bb3,f4] ~ [bb3,f4]", AZ: "~@8 [ab3,eb4] ~ f2 ~ [ab3,eb4] ~@3",
BA: "[ab3,d4] ~ [ab3,d4] ~@2 bb2 f3 [ab3,d4]", // Abdim
BB: "~@14 [c4,eb4,gb4] ~, bb3@5 ab2@3, ~ c4@5 bb3@2, ~ eb4@2 ~, ~@3 gb4@3 ~@2", // Cdim
BC: "[b3,f4] ~ [b3,f4] ~@2 db3 ab3 [b3,f4]", // Bdim
BD: "~@14 [a3,c4,eb4] ~, f3@5 f2@3, ~ a3@5 f3@2, ~ c4@2 ~, ~@3 eb4@3 ~@2", // Adim
BE: "[a3,eb4] ~ [a3,eb4] ~@2 [a3,eb4] ~ [a3,eb4]", // Adim
BF: "~@14 [ab3,c4,d4] ~, f3@5 bb2@3, ~ ab3@5 f3@2, ~ c4@2 ~, ~@3 d4@3 ~@2", // Dm7b5
BG: "~@14 [g3,a3,db4] ~, eb3@5 a2@3, ~ g3@5 eb3@2, ~ a3@2 ~, ~@3 db4@3 ~@2", // A7
BH: "[g3,c4] ~ [g3,c4] ~@2 eb2 eb3 [g3,c4]", BI: "[a3,eb4] ~ [a3,eb4] ~@2 b2 gb3 [a3,eb4]",
BJ: "~@8 [g3,c4] ~ eb2 ~ [g3,c4] ~@3", BK: "~@2 [g3,c4]@5 ~ [g3,c4]@2 ~@2 [g3,c4]@2 ~@2",
BL: "~ [bb3,e4]@2 ~ [bb3,e4] ~ [bb3,e4] ~", BM: "[f3,d4] ~ [f3,d4] ~@2 [f3,d4] ~@2",
BN: "~@2 gb4 bb4@2 gb4 ~ c4, ~@2 c4@9 ~ eb4@4", BO: "~@2 eb4 gb4@2 eb4 ~ a3, ~@2 a3@9 ~ db4@4",
BP: "~@2 [c4,g4]@5 ~ [c4,g4]@2 ~@2 [c4,g4]@2 ~@2", // C5
BQ: "[~@14 [ab3,c4,eb4] ~@3 [ab3,c4,eb4]@4 f3@2 [ab3,c4,eb4]@2 f3@2 [ab3,c4,eb4]@2 ~@2, f3@10 f2@9 ~@13, ~@2 ab3@10 f3@7 ~@13, ~ c4@2 ~@5, ~@3 eb4@3 ~@10]/2", // Ab
BR: "[ab3,d4] ~ [ab3,d4] ~@2 [ab3,d4] ~@2", BS: "~@2 [a3,eb4]@5 ~ [a3,eb4]@2 ~@2 [a3,eb4]@2 ~@2",
BT: "[~@4 [bb3,f4]@2 ~@4 [bb3,f4]@2 ~@4 [bb3,e4]@2 ~@2 [bb3,e4]@2 ~@4 [bb3,e4]@2 ~@6 [ab3,eb4]@5 ~ [ab3,eb4]@2 ~@2 [ab3,eb4]@2 ~@6 f4@2 ~@4 f4@2 ~@2 b3@2 ~ g3@2 ~ [g3,c4]@2 ~@4 [g3,c4]@2 ~@8 e4@2 ~@4 e4@2 ~@2 bb3@2, ab4@27 ab4@18 ~ eb4@2, ~@50 b3@9 ~ eb4@4 c4@2 ~@16 bb3@9 ~@5]/6", // Bb5 Bbdim Ab5 C5
BU: "[c4,g4] ~@3 [c4,g4] ~@5 [c4,g4] ~@5", BV: "[c4,g4]@3 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.44).pan(0.2)
// chords · synth strings 1
const synth_strings_1 = note(`<
~@2 A@2 B@2 C@3 ~@65 D E F G H I F J K L M N O P F Q K R S T U S U V W@2 X Y Z V AA AB AC AD AA AE AF AG AA Q D AH AI
AJ AK AL AA AE AM AN AO AP AQ AD AR T AS AT AU AB AV@2 AW@2 ~@66
>`.pickRestart({
A: "[~ bb4@7 eb5@7 ab5@7 ~@2 g5@8]/2", B: "[eb5@11 ~ f5@20]/2", C: "[eb5@37 ~@11]/3", D: "~ c4@15, g3", E: "[e4,bb4]",
F: "~ [eb4,ab4]@15", G: "~ d4@15, bb4", H: "~ g3@7 bb3@7 ~, c4@15 ~", I: "[e4,ab4]", J: "~ [ab3,d4]@15",
K: "~ [c4,eb4]@15", L: "~ [gb4,c5]@15", M: "~ b3@7 eb4@7 ~, ~ f4@15", N: "~ e4@15, g4", O: "[eb4,g4]",
P: "~ [eb4,a4]@15", Q: "[d4,ab4]", R: "~ [g3,db4]@15", S: "~ [g4,c5]@15", T: "~ [f4,ab4]@15", U: "~ [bb3,f4]@15",
V: "~ [bb3,e4]@15", W: "[ab3@15 ~ c4@16, f4]/2", X: "~ f4@15, ab4", Y: "~ bb3@7 d4@7 ~, ~ e4@15", Z: "~ eb4@15, f4",
AA: "[eb4,f4]", AB: "~ [d4,ab4]@15", AC: "~ g3@7 bb3@7 ~, ~ c4@15", AD: "bb3@8 eb4@7 ~, e4@15 ~", AE: "[d4,f4]",
AF: "~ [g3,c4]@15", AG: "~ [e4,bb4]@15", AH: "[gb4,bb4]", AI: "~ [b3,f4]@15", AJ: "~ [e4,g4]@15", AK: "[eb4,a4]",
AL: "~ eb4@15, a3", AM: "~ [c4,g4]@15", AN: "~ g3@7 a3@7 ~, db4@15 ~", AO: "[g4,c5]", AP: "[gb4,a4]", AQ: "[f4,bb4]",
AR: "[eb4,ab4]", AS: "[c4,eb4]", AT: "~ [e4,ab4]@15", AU: "~ [f4,gb4]@15", AV: "[[g3,c4]@31 ~]/2",
AW: "[g3@15 ~ bb3@16, eb4]/2",
})).s("gm_synth_strings_1").gain(0.58).pan(0.7)
// other · flute
const flute = note(`<
~@73 A@3 B C D E@2 ~ F G H@4 I@2 J@2 K L@2 M@2 N@3 O P Q R S T U V@2 ~ W@2 X@2 Y Z AA@3 AB AC AD AE AF AG AH AI@5 AJ@2
AK@4 ~@67
>`.pickRestart({
A: "[~@9 g5@2 eb5@2 c5@2 bb4@8 ~ eb5@3 g5@3 ~ ab5@2 ~ g5@3 ~ ab5@3 g5@2 ab5@2 ~ g5@2, ~@4 bb5 ~@19]/3",
B: "eb5@3 d5@2 ~ eb5@2 ~@8", C: "~@12 bb5 ~ eb5@2, ~@11 g5@2 ~ g5 ~", D: "bb4@5 ~ eb5@3 ~ g5@2 ~@2 ab5@2",
E: "[~@2 g5@2 ~@2 ab5@3 g5@2 f5@2 eb5@2 f5@2 ~ eb5@3 gb5 ~ f5@3 ~@6]/2",
F: "bb4 c5 db5 d5 ~ eb5@2 ~ g5@2 ~@2 bb5@2 c6@2", G: "~@2 bb5@2 ~@2 c6@2 ~ bb5@2 ~ c6 ~ bb5@2",
H: "[ab5@21 ~@3 bb5 a5 ab5@2 g5@2 ~ f5@9 ~ eb6 f6@2 ~ eb6@2 c6@2 ab5@2 f5@2 eb5@2 c5@2 eb5@2 ~ f5@2 ab5@2, ~@15 gb5 ~@16]/4",
I: "[f5 ab5 f5 eb5@2 c5@2 bb4@2 ab4@2 f4@2 ~@2 c4@6 ~ [f4,g4] [a4,b4] [c5,d5] [d5,e5,f5] [f5,g5,a5,b5] [g5,a5,c6,d6] e6 ~@3, ~@7 eb4 ~@8]/2", // Fsus2 Asus2 Csus2 Dm G7 Gsus4
J: "[~ bb5@20 d5@2 eb5@4 eb5@2 eb5 ~@2]/2", K: "g5 f5 ~ g5 f5 ~ g5 f5",
L: "[~@2 g5@2 ~ f5@3 g5@3 ~ ab5@2 bb5@5 ~ a5 ab5 ~ g5@3 ab5@2 ~ bb5@3]/2",
M: "[~ g5@2 ab5@2 ~ bb5 ~@2 c6@2 ~ bb5 ~ ab5 c6@2 bb5@2 g5@2 e5@2 eb5@2 d5@2 db5@2 c5@2 ~, ~@4 d6 ~@11]/2",
N: "[bb5@2 g5 ~ e5 ~ c5@2 ab5@2 ~ bb5@2 ~ c6@15 f5@2 f5@2 f5 ~ f5@2 f5@2 ~ f5 f5@3 ~@2 ab5@2]/3",
O: "~ bb5 ~ ab5 g5@2 g5@2 ~@2 g5@2 ~@4", P: "~@8 ab5 ~ bb5@2 b5@2 c6@2", Q: "~@2 f5@3 ~ ab5@2 ~@2 bb5 ~@3 c6@2",
R: "~@2 f5@2 ~ eb6@2 ~@2 c6@2 ab5@2 f5@2 bb5", S: "~ d6 bb5@2 ab5 ~ f5 ~ c6@2 ab5 f5@2 ~ eb6@2",
T: "~ f5@2 ~ d6 ~ bb5 ab5@2 ~ f5@2 eb5 d5@2 ~", U: "bb4@6 ~ eb5@2 ~ g5@2 ~@2 ab5@2",
V: "[~@3 g5@2 ~ ab5@2 ~ g5@2 ab5 ~ g5 ~ eb5@2 ~ eb5@2 ~ eb5@2 eb5@2 eb5 ~@6]/2",
W: "[~@6 bb4@2 eb5 ~ g5@2 ab5 g5@2 ab5@2 ~ g5@2 ab5 g5@2 ab5@2 ~ g5@2 ~ eb5@2 ~, ~@14 f5 ~]/2",
X: "[f5@6 ~ f5@2 ~ eb5@2 ~ f5@9 e5 [c5,d5] b4 ~@7, ~@3 eb5 ~@12]/2", Y: "~@9 bb4@2 eb5@2 g5@2 ~",
Z: "c6@7 ~ bb5 c6 bb5@2 ~@2 ab5 bb5", AA: "[ab5@21 bb5 ab5 g5@6 ~ gb5 f5@9 ~ eb6 f6@2 ~ eb6 ~ c6]/3",
AB: "~ ab5@2 f5@2 f6@2 eb6@2 c6 ~ ab5@2 f5@2 ~", AC: "eb5@2 c5 ~ eb5@2 f5 ~ ab5 ~ f5 ab5 f5@2 eb5@2",
AD: "c5@6 ~ g5!3 ~@2 ab5@3 ~", AE: "bb5@11 ~ eb5@2 eb5 ~", AF: "eb5 ~ eb5@2 ~ eb5 ~ eb5 ~ eb5@2 eb5 ~ eb5 ~ db6",
AG: "d6@2 ~ c6@2 ~ eb5@2 ~@2 d6@2 ~@2 c6@2", AH: "~@2 eb5@2 ~ d5@2 ~ db5@2 c5@3 ~ c6@2",
AI: "[~ c6@5 bb5@14 b5@2 c6@4 ~ bb5 c6 bb5@2 ab5@19 ~ g5@2 gb5@2 f5@2 eb5@2 d5 ~ b4@2 bb4@7 ~ eb5@2 ~ g5@3 ab5@2 ~]/5",
AJ: "[~ g5@3 ~ ab5@2 ~ g5@2 f5@2 ~ eb5@16 ~@2 f5]/2", AK: "[g5 ~ f5 ~@2 f5 g5 f5 ~@3 f5 g5@2 ~ eb5@37 ~@12]/4",
})).s("gm_flute").gain(0.64)
// chords · epiano1
const epiano1 = note(`<
~@2 A B C D E@2 F@2 G B H I G B H D J K L M N O P Q R S G L T G U B ~ V L W X B X D Y Z AA AB R AC AA AD G K L W AE C
X Q R S G AF T AC AG L AH@8 AI@8 AJ@8 AK@5 AL@8 B X D AM@4 AN@5 AO@8 AP AQ@6 AR@6 AS@2 AT@4 AU@4 AV@8 AW@2 AX@3 AY@8
AC H Q AZ@3 BA BB@5 BC@7 BD@2 BE@8 BF Q ~ BG J BH BI@2
>`.pickRestart({
A: "~@6 bb4@3 ~ [c4,bb4]@2 bb4@2 ~@2, g3@8 ~@2 [g3,eb4] ~@5, ~@2 c4@7 ~@7, ~ eb4 ~@2", B: "[bb3,e4,ab4,eb5]@7 ~",
C: "~@6 db5@3 ~ [eb4,db5]@2 ~@4, a3@8 ~@2 [a3,gb4] ~@5, ~@2 eb4@7 ~@7, ~ gb4 ~@2", D: "[ab3,d4,f4,c5]@7 ~",
E: "[[g3,bb3,c4,eb4]@26 c4@2 ~@2 eb5 ~, ~@14 g4 ~, ~@29 bb4@2 ~]/2", // Cm7
F: "[c4@2 ~@4 eb5@12 [ab3,b3,db4,e4]@2 [g3,bb3,c4,eb4]@9 ~@3, ~@2 g4@15 ~@15, ~@4 bb4@13 ~@15]/2", // Dbm7 Cm7
G: "[g3,c4,eb4,bb4]@7 ~", H: "[eb3,ab3,c4,f4]@7 ~",
I: "~@6 bb4@3 ~ [d4,bb4]@2 ~@4, f3@8 ~@2 [f3,f4] ~@5, ~@2 d4@7 ~@7, ~ f4 ~@2", J: "[g3,bb3,c4,eb4]@7 ~",
K: "~@6 eb5@3 ~ [gb4,eb5]@2 ~@4, c4@8 ~@2 [c4,bb4] ~@5, ~@2 gb4@7 ~@7, ~ bb4 ~@2", // Ebm C7
L: "~@6 eb5@3 ~ [f4,eb5]@2 ~@4, b3@8 ~@2 [b3,ab4] ~@5, ~@2 f4@7 ~@7, ~ ab4 ~@2", M: "[e3,g3,bb3,eb4]@7 ~",
N: "~@6 c5@3 ~ [eb4,c5]@2 ~@4, a3@8 ~@2 [a3,g4] ~@5, ~@2 eb4@7 ~@7, ~ g4 ~@2", O: "[a3,eb4,gb4,db5]@7 ~",
P: "[ab3,eb4,f4,c5]@7 ~", Q: "~@6 c5@3 ~ [d4,c5]@2 ~@4, ab3@8 ~@2 [ab3,f4] ~@5, ~@2 d4@7 ~@7, ~ f4 ~@2",
R: "~@6 bb4@3 ~ [c4,bb4]@2 ~@4, g3@8 ~@2 [g3,eb4] ~@5, ~@2 c4@7 ~@7, ~ eb4 ~@2", S: "[g3,db4,eb4,a4]@7 ~",
T: "[f3,bb3,d4,g4]@7 ~", U: "~@6 db5@3 ~ [f4,db5]@2 ~@4, bb3@8 ~@2 [bb3,g4] ~@5, ~@2 f4@7 ~@7, ~ g4 ~@2",
V: "~@10 f4@5 ~, f6@15 ~, ~@2 c6@13 ~, ~@4 ab5@11 ~, ~@6 eb5@9 ~", W: "[e3,bb3,d4,g4]@7 ~",
X: "~@6 c5@3 ~ [eb4,c5]@2 ~@4, ab3@8 ~@2 [ab3,f4] ~@5, ~@2 eb4@7 ~@7, ~ f4 ~@2", Y: "[c4,g4,bb4,eb5]@7 ~",
Z: "[e3,bb3,eb4,ab4]@7 ~", AA: "[eb4,ab4,c5,f5]@7 ~", AB: "[bb3,d4,f4,bb4]@7 ~",
AC: "~@6 eb5@3 ~ [e4,eb5]@2 ~@4, bb3@8 ~@2 [bb3,ab4] ~@5, ~@2 e4@7 ~@7, ~ ab4 ~@2", AD: "[ab3,d4,g4,c5]@7 ~",
AE: "[eb4,a4,c5,g5]@7 ~", AF: "[gb3,c4,f4,a4]@7 ~", AG: "[eb3,f3,ab3,c4]@7 ~",
AH: "[~@6 bb4@3 ~ [c4,bb4]@2 ~@4 [bb3,e4,ab4,eb5]@14 ~@8 db5@3 ~ [eb4,db5]@2 ~@4 [ab3,d4,f4,c5]@14 ~@2 [g3,bb3,c4,eb4]@26 c4@2 ~@2 eb5 ~ c4@2 ~@4 eb5@12 [ab3,b3,db4,e4]@2 [g3,bb3,c4,eb4]@9 ~@3, g3@8 ~@2 [g3,eb4] ~@21 a3@8 ~@2 [a3,gb4] ~@85, ~@2 c4@7 ~@25 eb4@7 ~@87, ~@4 eb4@4 ~@4 bb4@81 bb4@7 bb4@28, ~@36 gb4@4 ~@52 g4@2 ~@4 g4@15 ~@15]/8", // C7 Ebsus4 Eb7 Dm7b5 Cm7 Dbm7 Cm7 Cm …
AI: "[[g3,c4,eb4]@14 ~@8 eb5@3 ~ [e4,eb5]@2 ~@4 [eb4,ab4,c5,f5]@14 ~@8 bb4@4 [f3,f4] ~@11 bb4@4 [g3,eb4] ~@11 eb5@3 ~ [e4,eb5]@2 ~@10 c5@3 ~ [eb4,c5]@2 ~@4 [ab3,d4,f4,c5]@14 ~@2, bb4@27 ~@2 bb4@6 ~@2 bb4@27, ~@16 bb3@8 ~@2 [bb3,ab4] ~@21 f3@8 ~@8 g3@8 ~@12 ab4@4 ~@12 f4@4 ~@24, ~@18 e4@7 ~@25 d4@7 ~ d4@2 ~@6 c4@7 ~ c4@2 ~@4 bb3@8 ~@2 [bb3,ab4] ~@5 ab3@8 ~@2 [ab3,f4] ~@21, ~@20 ab4@4 ~@28 f4@4 ~@12 eb4@4 ~@10 e4@7 ~@9 eb4@7 ~@23]/8", // Cm Emaj7 Fm7 F Cm Emaj7 Cm Dm7b5 …
AJ: "[[c4,g4,eb5]@14 ~@2 [gb3,bb3,c4,eb4]@14 ~@2 [b3,f4,ab4,eb5]@14 ~@2 [e3,bb3,eb4,g4]@14 ~@8 c5@3 ~ [eb4,c5]@2 ~@4 [a3,eb4,gb4,db5]@14 ~@2 [ab3,c4,eb4,f4]@14 ~@2 [ab3,c4,d4,f4]@14 ~@2, bb4, ~@64 a3@8 ~@2 [a3,g4] ~@53, ~@66 eb4@7 ~@55, ~@17 g4 ~@14]/8", // Cm Cm7b5 Fm7b5 Eb Cm Ebm7b5 Fm7 Dm7b5 …
AK: "[~@6 bb4@4 [g3,eb4] ~@5 [g3,a3,db4,eb4]@14 ~@8 eb5@3 ~ [g4,eb5]@2 ~@4 [b3,f4,ab4,eb5]@14 ~@8 d5@3 ~ [f4,d5]@2 ~@4, g3@8 ~@26 g4@7 ~@25 f4@7 ~@7, ~@2 c4@7 ~ c4@2 ~@20 c4@8 ~@2 c4 ~@21 bb3@8 ~@2 [bb3,g4] ~@5, ~@2 eb4@2 ~ bb4@13 bb4@3 bb4@19, ~@17 g4 ~@2]/5", // Cm Eb7 Cm Fm7b5 Dm Eb
AL: "[[g3,c4,eb4]@14 ~@8 db5@3 ~ [f4,db5]@2 ~@4 [e3,bb3,eb4,ab4]@14 ~@28 f4@5 ~ [f3,b3,eb4,ab4]@14 ~@2 [bb3,e4,g4,d5]@14 ~@2 [eb4,ab4,c5,f5]@14 ~@2, bb4, ~@16 bb3@8 ~@2 [bb3,g4] ~@41 ab5@2 eb5@9 ~@49, ~@18 f4@7 ~@41 c6@13 ~@49, ~@20 g4@4 ~@40 f6@15 ~@49]/8", // Cm Db Emaj7 Fm7b5 Em7b5 Fm7 Eb
AM: "[~@6 bb4@4 [g3,eb4] ~@11 eb5@3 ~ [e4,eb5]@2 ~@10 c5@3 ~ [eb4,c5]@2 ~@10 bb4@4 [f3,f4] ~@5, g3@8 ~@10 e4@7 ~@9 eb4@7 ~@9 d4@7 ~ d4@2 ~@4, ~@2 c4@7 ~ c4@2 ~@4 bb3@8 ~@2 [bb3,ab4] ~@5 ab3@8 ~@2 [ab3,f4] ~@5 f3@8 ~@8, ~@2 eb4@2 ~ bb4@22 ~@2 bb4@3, ~@5 ab4 ~@3 f4 ~@3 f4 ~@2]/4", // Cm Emaj7 Cm F Bb7 Db
AN: "[[c4,g4,eb5]@14 ~@2 [bb3,e4,ab4,eb5]@14 ~@8 c5@3 ~ [eb4,c5]@2 ~@10 c5@3 ~ [d4,c5]@2 ~@10 bb4@4 [g3,eb4] ~@5, bb4@35 ~@2 bb4@3, ~@32 ab3@8 ~@2 [ab3,f4] ~@5 ab3@8 ~@2 [ab3,f4] ~@5 g3@8 ~@8, ~@34 eb4@7 ~@9 d4@7 ~@9 c4@7 ~ c4@2 ~@4, ~@9 f4 ~@3 f4 ~@3 eb4 ~@2]/5", // Cm Ebsus4 Cm D7 Cm Db
AO: "[~@6 eb5@3 ~ [gb4,eb5]@2 ~@4 [b3,f4,ab4,eb5]@14 ~@2 [e3,bb3,d4,g4]@14 ~@8 c5@3 ~ [eb4,c5]@2 ~@4 [a3,eb4,gb4,db5]@14 ~@8 c5@3 ~ [eb4,c5]@2 ~@10 c5@3 ~ [d4,c5]@2 ~@4 [g3,bb3,c4,eb4]@14 ~@2, c4@8 ~@2 c4 ~@37 a3@8 ~@2 [a3,g4] ~@21 ab3@8 ~@2 [ab3,f4] ~@5 ab3@8 ~@2 [ab3,f4] ~@21, ~@2 gb4@7 ~@41 eb4@7 ~@25 eb4@7 ~@9 d4@7 ~@23, ~@2 bb4@3 bb4@59, ~@13 g4 ~@7 f4 ~@3 f4 ~@6]/8", // Ebm Fm7b5 Em7b5 Cm Ebm7b5 Cm D7 Cm7 …
AP: "~@6 a4@3 ~ [db4,a4]@2 ~@4, g3@8 ~@2 [g3,eb4] ~@5, ~@2 db4@7 ~@7, ~ eb4 ~@2", // Gbm Cm
AQ: "[[g3,c4,eb4]@14 ~@2 [c4,gb4,a4,f5]@14 ~@2 [f3,bb3,d4,g4]@14 ~@8 eb5@3 ~ [e4,eb5]@2 ~@10 c5@3 ~ [eb4,c5]@2 ~@4 [b3,f4,ab4,eb5]@14 ~@2, bb4, ~@48 bb3@8 ~@2 [bb3,ab4] ~@5 ab3@8 ~@2 [ab3,f4] ~@21, ~@50 e4@7 ~@9 eb4@7 ~@23, ~@13 ab4 ~@3 f4 ~@6]/6", // Cm F Gm7 Emaj7 Cm Fm7b5 Bb7 Db
AR: "[~@6 bb4@4 [g3,eb4] ~@5 [e3,ab3,bb3,eb4]@14 ~@2 [a3,eb4,gb4,db5]@14 ~@2 [ab3,d4,f4,c5]@14 ~@28 eb4@5 ~, g3@8 ~@74 bb5@4 c5@9 ~, ~@2 c4@7 ~ c4@2 ~@68 eb6@15 ~, ~@2 eb4@2 ~ bb4@43, ~@84 g5@11 ~]/6", // Cm Emaj7 Ebm7b5 Dm7b5
AS: "[[g4,eb5]@23 ~@7 eb5 ~, bb4@7 bb4, c4@21 ~@3 c4@7 ~, ~@26 g4@5 ~]/2", // Cm
AT: "[[g3,c4,eb4]@14 ~@2 [e3,ab3,bb3,eb4]@14 ~@2 [eb4,ab4,c5,f5]@14 ~@8 bb4@4 [f3,f4] ~@5, bb4@27 ~@2 bb4@3, ~@6 f3 ~, ~@50 d4@7 ~ d4@2 ~@4, ~@13 f4 ~@2]/4", // Cm Emaj7 Fm7 F
AU: "[[c4,g4,eb5]@14 ~@8 eb5@3 ~ [e4,eb5]@2 ~@4 [eb4,ab4,c5,f5]@14 ~@8 c5@3 ~ [d4,c5]@2 ~@4, bb4, ~@16 bb3@8 ~@2 [bb3,ab4] ~@21 ab3@8 ~@2 [ab3,f4] ~@5, ~@18 e4@7 ~@25 d4@7 ~@7, ~@5 ab4 ~@7 f4 ~@2]/4", // Cm Emaj7 Fm7 D7 Bb7 Db
AV: "[[g3,c4,eb4]@14 ~@8 eb5@3 ~ [gb4,eb5]@2 ~@4 [f3,b3,eb4,ab4]@14 ~@2 [bb3,e4,g4,eb5]@14 ~@8 c5@3 ~ [eb4,c5]@2 ~@4 [a3,eb4,gb4,db5]@14 ~@2 [ab3,eb4,f4,c5]@14 ~@8 c5@3 ~ [d4,c5]@2 ~@4, bb4@10 bb4@3 bb4@51, ~@16 c4@8 ~@2 c4 ~@37 a3@8 ~@2 [a3,g4] ~@37 ab3@8 ~@2 [ab3,f4] ~@5, ~@18 gb4@7 ~@41 eb4@7 ~@41 d4@7 ~@7, ~@17 g4 ~@11 f4 ~@2]/8", // Cm Ebm Fm7b5 Eb Cm Ebm7b5 Fm7 D7 …
AW: "[[g3,c4,eb4]@7 ~ [g3,db4,eb4,a4]@7 ~, bb4]/2", // Cm Eb7
AX: "[[g3,c4,eb4]@7 ~ [b3,f4,ab4,eb5]@7 ~ [f3,bb3,d4,g4]@7 ~, bb4]/3", // Cm Fm7b5 Gm7
AY: "[[g3,c4,eb4]@14 ~@2 [f3,bb3,db4,g4]@14 ~@2 [bb3,e4,ab4,eb5]@14 ~@2 [ab4,c5,f5]@23 ~@5 c5@2 f5 ~@7 eb5@3 ~ [f4,eb5]@2 ~@4 [e3,bb3,d4,g4]@14 ~@2 [eb3,f3,ab3,c4]@14 ~@2, bb4, ~@48 eb4@21 ~@3 eb4@7 ~ b3@8 ~@2 [b3,ab4] ~@37, ~@74 ab4@5 ~@3 f4@7 ~@39, ~@21 ab4 ~@10]/8", // Cm Gm7b5 Ebsus4 Fm F7 Em7b5 Fm7 E
AZ: "[~@6 bb4@4 [g3,eb4] ~@11 eb5@3 ~ [e4,eb5]@2 ~@10 c5@3 ~ [eb4,c5]@2 ~@4, g3@8 ~@10 e4@7 ~@9 eb4@7 ~@7, ~@2 c4@7 ~ c4@2 ~@4 bb3@8 ~@2 [bb3,ab4] ~@5 ab3@8 ~@2 [ab3,f4] ~@5, ~@2 eb4@2 ~ bb4@19, ~@5 ab4 ~@3 f4 ~@2]/3", // Cm Emaj7 Cm Bb7 Db
BA: "[bb3,d4,f4]@7 ~, bb4", // Bb
BB: "[[c4,g4,eb5]@14 ~@2 [bb3,eb4,e4,ab4]@14 ~@2 [eb4,ab4,c5,f5]@14 ~@2 [ab3,d4,f4,c5]@14 ~@8 bb4@4 [g3,eb4] ~@5, bb4@35 ~@2 bb4@3, ~@8 g3 ~, ~@66 c4@7 ~ c4@2 ~@4, ~@17 eb4 ~@2]/5", // Cm Ebsus4 Fm7 Dm7b5 Cm
BC: "[~@6 eb5@3 ~ [gb4,eb5]@2 ~@4 [f3,b3,eb4,ab4]@14 ~@8 d5@3 ~ [e4,d5]@2 ~@4 [eb3,g3,a3,c4]@14 ~@2 [a3,eb4,gb4,db5]@14 ~@8 c5@3 ~ [eb4,c5]@2 ~@4 [ab3,d4,f4,c5]@14 ~@2, c4@8 ~@2 c4 ~@21 bb3@8 ~@2 [bb3,g4] ~@37 ab3@8 ~@2 [ab3,f4] ~@21, ~@2 gb4@7 ~@25 e4@7 ~@41 eb4@7 ~@23, ~@2 bb4@3 bb4@51, ~@9 g4 ~@11 f4 ~@6]/7", // Ebm Fm7b5 E7 Am7b5 Ebm7b5 Cm Dm7b5 Eb …
BD: "[[c4,g4,eb5]@7 ~ [g3,db4,eb4,a4]@7 ~, bb4]/2", // Cm Eb7
BE: "[[g3,c4,eb4]@14 ~@8 f5@3 ~ [gb4,f5]@2 ~@4 [f3,bb3,d4,g4]@14 ~@2 [bb3,e4,ab4,eb5]@14 ~@2 [eb3,ab3,c4,f4]@14 ~@8 eb5@3 ~ [f4,eb5]@2 ~@4 [g3,bb3,c4,eb4]@14 ~@2 [bb3,e4,ab4,eb5]@14 ~@2, bb4, ~@16 c4@8 ~@2 [c4,a4] ~@53 b3@8 ~@2 [b3,ab4] ~@37, ~@18 gb4@7 ~@57 f4@7 ~@39, ~@5 a4 ~@15 ab4 ~@10]/8", // Cm Gbmaj7 Gm7 Ebsus4 Fm7 F7 Cm7 Ebsus4 …
BF: "[a3,f4,gb4,db5]@7 ~", BG: "~@10 eb4@5 ~, eb6@15 ~, ~@2 bb5@13 ~, ~@4 g5@11 ~, ~@6 c5@9 ~",
BH: "[c4,g4,eb5]@7 ~, bb4", // Cm
BI: "[[g3,c4,f4]@2 ~@2 [g3,c4,f4]@2 ~@2 g4@2 ~@2 c5 ~ f5 ~ [g3,c4,f4]@8 ~@8, bb4 bb4@5 ~@2]/2", // Csus4
})).s("gm_epiano1").gain(0.35).pan(0.4)
// drums · kick
const kick = s("bd").struct("<~@2 A@23 B A@63 B A@15 B A@63 B A@31 B A B>".pickRestart({
// … 110 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.