0:00/0:00
// Life Is a Flower — Ace of Base
// 105.2 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 82 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(105.2/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 · electric bass finger · "MIDI"
const bass = note(`<
~@6 A B C D E@2 F@2 G H I J K@2 L@3 M@3 N O@2 P Q R S@2 T U@2 V@2 W X Y Z@2 AA@2 ~@8 AB@2 AC@2 AD@3 AE AF AG AH AI@2
AJ@2 AK@3 AL@2 AM X Y AN@2 AO@2 ~
>`.pickRestart({
A: "~@10 a1@8 ~ a1@6 ~ b1@4 b1 ~", B: "b1@2 ~@3 b1@2 ~@2 b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@3",
C: "~ d2 ~ d2@2 ~@3 d2@2 ~@2 d2@2 ~@2 a1@8 ~ a1@5 ~@2", D: "b1@4 b1 ~ b1@2 ~@3 b1@2 ~@2 b1@2 ~@2 g1@7 ~@2 g1@4",
E: "[~@3 d2@4 d2 ~ d2@2 ~@3 d2@2 ~@2 d2@2 ~@3 a1@8 a1@6 ~ b1@4 b1 ~ b1@2 ~@3 b1@2 ~@2 b1@2 ~@3 g1@6]/2",
F: "[~@2 g1@5 ~@2 d2@4 d2 ~ d2@2 ~@3 d2@2 ~@2 d2@2 ~@3 a1@8 a1@5 ~@2 b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@3]/2",
G: "g1@7 ~ g1@5 ~@2 d2@4 ~ d2 ~ d2@2 ~@2 d2@2 ~@2 d2@2", H: "~@3 b1@4 ~@5 b1@8 a1@7 ~@2 a1@3",
I: "~ a1@3 ~@2 g1@4 ~@5 g1@8 d2@8 ~", J: "c#2@3 ~@2 c#2@3 ~ b1@4 ~@5 b1@8 a1@6",
K: "[~@3 a1@3 ~@2 a1@3 ~ g1@4 ~@5 g1@8 ~ d2@7 ~ c#2@3 ~@2 c#2@3 ~ b1@4 ~@5 b1@8]/2",
L: "[~ a1@7 ~ a1@3 ~@2 a1@3 ~ g1@4 ~@5 g1@8 ~ d2@8 d2@3 ~@6 a1@8 ~ a1@6 b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 g1@7 ~]/3",
M: "[~ g1@5 ~@2 d2@4 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2 ~@2 a1@8 ~ a1@5 ~@2 b1@4 b1 ~ b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2 ~]/3",
N: "~ a1@8 ~ a1@6 ~ b1@4 b1 ~ b1@2 ~@3 b1@2 ~@2",
O: "[b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2 ~ d2@2 ~@3 d2@2 ~@2 d2@2 ~@2 a1@8 ~ a1@5 ~@2 b1@4 b1 ~ b1@2 ~]/2",
P: "~@2 b1@2 ~@2 b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2 ~", Q: "d2@2 ~@3 d2@2 ~@7 b1@4 ~@5 b1@8 ~",
R: "a1@7 ~@2 a1@3 ~ a1@3 ~ g1@4 ~@5 g1@6",
S: "[~@3 d2@8 ~ c#2@3 ~ c#2@3 ~@2 b1@4 ~@4 b1@8 ~ a1@7 ~@2 a1@3 ~ a1@3 ~@2 g1@4 ~@4]/2",
T: "g1@8 ~ d2@7 ~@2 c#2@3 ~ c#2@3 ~@2 b1@4 ~",
U: "[~@3 b1@8 ~ a1@7 ~@2 a1@3 ~ a1@3 ~@2 g1@4 ~@4 g1@8 ~ d2@8 ~ d2@3 ~@5]/2",
V: "[~ a1@8 a1@6 ~ b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@3 g1@7 ~ g1@5 ~@2 d2@4 ~ d2 ~ d2@2 ~@2 d2@2]/2",
W: "~@2 d2@2 ~@3 a1@8 ~ a1@5 ~ b1@4 ~ b1 ~ b1@2 ~", X: "~ b1@2 ~@2 b1@2 ~@3 g1@7 ~@2 g1@5 ~ d2@4 ~ d2 ~",
Y: "d2@2 ~@2 d2@2 ~@2 d2@2 ~@3 a1@8 ~ a1@6 b1@4",
Z: "[~ b1 ~ b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 g1@7 ~@2 g1@5 ~ d2@4 ~ d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2 ~@2 a1@8 ~ a1@4]/2",
AA: "[~@3 b1@4 b1 ~ b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2 ~ d2@2 ~@2 d2@2 ~@14]/2",
AB: "[~@16 a1@8 ~ a1@6 b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@3 g1@7 ~@2 g1@4]/2",
AC: "[~@2 d2@4 ~ d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2 ~@2 a1@8 ~ a1@5 ~ b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 g1@7]/2",
AD: "[~@2 g1@5 ~ d2@4 ~ d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2 ~@2 a1@8 ~ a1@6 ~ b1@4 b1 ~ b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2]/3",
AE: "~@2 a1@8 ~ a1@5 ~@2 b1@4 b1 ~ b1@2 ~@2 b1@2 ~@2", AF: "~ b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2 ~ d2@2 ~@3",
AG: "d2@3 ~@5 a1@8 ~ a1@6 ~ b1@4 b1 ~ b1@2", AH: "~@3 b1@2 ~@2 b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2",
AI: "[~ d2@2 ~@3 d2@2 ~@2 d2@2 ~@2 a1@8 ~ a1@5 ~@2 b1@4 b1 ~ b1@2 ~@3 b1@2 ~@2 b1@2 ~@3 g1@7 ~ g1@5 ~]/2",
AJ: "[~ d2@4 d2 ~ d2@2 ~@3 d2@2 ~@2 d2@2 ~@3 a1@8 a1@6 ~ b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@3 g1@7 ~]/2",
AK: "[g1@5 ~@2 d2@4 ~ d2 ~ d2@2 ~@2 d2@2 ~@2 d2@2 ~@3 a1@8 ~ a1@5 ~ b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@2 b1@2 ~@3 g1@7 ~@2 g1@5 ~ d2@4 ~ d2 ~ d2@2 ~@2 d2@2 ~@6]/3",
AL: "[~ a1@8 a1@6 ~ b1@4 b1 ~ b1@2 ~@3 b1 ~@3 b1@2 ~@3 g1@7 ~ g1@5 ~@2 d2@4 ~ d2 ~ d2@2 ~@2 d2@2]/2",
AM: "~@2 d2@2 ~@3 a1@8 a1@5 ~@2 b1@4 ~ b1 ~ b1@2 ~",
AN: "[~ b1 ~ b1@2 ~@2 b1@2 ~@3 b1 ~@3 g1@7 ~@2 g1@5 ~ d2@4 ~ d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2 ~@2 a1@8 ~ a1@4]/2",
AO: "[~@2 b1@4 ~ b1 ~ b1@2 ~@2 b1@2 ~@3 b1@2 ~@2 g1@7 ~@2 g1@5 ~@2 d2@4 d2 ~ d2@2 ~@18]/2",
})).s("gm_electric_bass_finger").gain(0.5)
// other · string ensemble 1 · "MIDI"
const string_ensemble_1 = note("<~@15 A ~ B ~ C ~@10 D ~ E@2 F@2 ~@46>".pickRestart({
A: "~@2 d5@2 ~@3 b4@2 ~@2 d5@2 ~ b4@2 ~@16", B: "~@9 d5@2 ~@2 b4@2 ~@2 d5@2 ~ b4@2 ~@10",
C: "~@15 d5@2 ~@2 b4@2 ~@2 d5@2 ~ b4@2 ~@4", D: "~@14 d5@2 ~@2 b4@2 ~@3 d5@2 b4@2 ~@5",
E: "[~@20 d5@2 ~@3 b4@2 ~@2 d5@2 b4@2 ~@31]/2", F: "[~@26 d5@2 ~@3 b4@2 ~@2 d5@2 b4@2 ~@25]/2",
})).s("gm_string_ensemble_1").gain(0.39).pan(0.4)
// chords · synth strings 1 · "MIDI"
const synth_strings_1 = note(`<
~ A@3 B@2 C@3 D@6 E@5 F G@5 H@6 I@5 J K@5 L@6 M N@5 O@6 P@6 Q@5 J R@5 S@3 ~
>`.pickRestart({
A: "[~@23 [a3,c#4,e4]@18 [b3,d4,f#4]@18 [g3,a3,d4]@18 ~ g4@9 f#4@9, ~@13 [a3,d4]@3]/3", // A Bm Gsus2 D5
B: "[[a3,c#4,e4]@18 [b3,d4,f#4]@18 ~ [g3,a3,d4]@20 ~@7]/2", // A Bm Gsus2
C: "[~@9 [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@16, ~@62 [a3,d4]@17 ~@17]/3", // A Bm G A D5
D: "[~ [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@7, ~@36 [a3,d4]@17 ~@53 [a3,d4]@17 ~@53 [a3,d4]@16]/6", // Bm G A Bm G A Bm G …
E: "[~@2 [b3,d4,f#4]@17 ~ [a3,c#4,e4]@17 [g3,b3,d4]@17 ~ [a3,d4,f#4]@8 [a3,c#4,e4]@8 ~ [b3,d4,f#4]@17 ~ [a3,c#4,e4]@17 [g3,b3,d4]@17 ~ [a3,d4,f#4]@8 [a3,c#4,e4]@8 ~ [b3,d4,f#4]@17 ~]/5", // Bm A G D A Bm A G …
F: "[a3,c#4,e4]@17 [g3,b3,d4]@15", // A G
G: "[~@3 [a3,d4,f#4]@15 ~@2 [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ g4@8 ~ f#4@8 [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ g4@8 ~ f#4@8, ~@73 [a3,d4]@17 ~@53 [a3,d4]@17]/5", // D A Bm G A Bm G D5
H: "[[a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@8 ~@2 [b3,d4,f#4]@17 [a3,c#4,e4]@17 ~ [g3,b3,d4]@15, ~@53 [a3,d4]@17 ~@53 [a3,d4]@17 ~@52]/6", // A Bm G A Bm G Bm A …
I: "[~@2 [a3,d4,f#4]@8 ~ [a3,c#4,e4]@8 ~ [b3,d4,f#4]@17 [a3,c#4,e4]@17 ~ [g3,b3,d4]@17 [a3,d4,f#4]@8 ~ [a3,c#4,e4]@8 ~ [b3,d4,f#4]@17 [a3,c#4,e4]@17 ~ [g3,b3,d4]@17 ~ [a3,d4,f#4]@15 ~@2]/5", // D A Bm A G D A Bm …
J: "[a3,c#4,e4]@17 [b3,d4,f#4]@15", // A Bm
K: "[~@3 [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ g4@8 f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17, ~@20 [a3,d4]@17 ~@54 [a3,d4]@17 ~@52]/5", // G A Bm G A Bm G D5
L: "[~ g4@8 f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,a3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@16, ~ [a3,d4]@17 ~@53 [a3,d4]@17 ~@53 [a3,d4]@17 ~@34]/6", // A Bm G A Bm Gsus2 A Bm …
M: "~@2 [g3,a3,d4]@19 ~@11", // Gsus2
N: "[~@3 [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,a3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,a3,d4]@18 [a3,d4]@17 [a3,c#4,e4]@17, ~@55 [a3,d4]@17 ~@54 g4@8 ~@26]/5", // A Bm Gsus2 A Bm Gsus2 D5 A …
O: "[~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ g4@8 f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ g4@8 f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ g4@8 ~ f#4@7, ~@36 [a3,d4]@17 ~@53 [a3,d4]@17 ~@53 [a3,d4]@16]/6", // Bm G A Bm G A Bm G …
P: "[~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ [f#4,g4]@9 f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@15, ~@54 [a3,d4]@17 ~@53 [a3,d4]@17 ~@51]/6", // A Bm G Gmaj7 A Bm G A …
Q: "[~@2 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 ~ g4@8 ~ f#4@8, ~@2 [a3,d4]@17 ~@53 [a3,d4]@17 ~@54 [a3,d4]@17]/5", // A Bm G A Bm G D5
R: "[~@3 [g3,b3,d4]@17 g4@8 ~ f#4@8 ~ [a3,c#4,e4]@17 [b3,d4,f#4]@17 ~ [g3,b3,d4]@17 ~ g4@8 f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17, ~@20 [a3,d4]@17 ~@54 [a3,d4]@17 ~@52]/5", // G A Bm G A Bm G D5
S: "[~ g4@8 f#4@8 ~ [a3,c#4,e4]@17 ~ [b3,d4,f#4]@17 [g3,b3,d4]@17 ~ [f#4,g4]@10 f#4@8 ~@7, ~ [a3,d4]@17 ~@53 [a3,d4]@17 ~@8]/3", // A Bm G Gmaj7 D5
})).s("gm_synth_strings_1").gain(0.12)
// chords · string ensemble 2 · "MIDI"
const string_ensemble_2 = note(`<
~ A@3 B@2 C@3 D E@5 ~@6 F@5 G@4 ~@7 H@4 I@4 J@5 K@4 L M@6 N@2 O@4 P@5 Q R@3 S@5 ~
>`.pickRestart({
A: "[~@23 [c#4,e4]@18 [d4,f#4]@18 ~ a3@18 g4@9 f#4@9, ~@5 d4@3]/3", // C#m D
B: "[[c#4,e4]@18 f#4@18 ~ a3@13 ~@14, ~@9 d4@16 ~@7]/2", // C#m
C: "[~@9 [c#4,e4]@18 [d4,f#4]@17 ~ a3@17 g4@9 f#4@9 [c#4,e4]@16, ~@45 d4@34 ~@17]/3", D: "~ f#4@18 a3@12 ~, ~ d4@31",
E: "[~@22 [c#4,e4]@17 [d4,f#4]@17 ~ a3@17 ~ g4@8 f#4@9 [c#4,e4]@18 f#4@17 a3@12 ~@21, ~@57 d4@34 ~@19 d4@31 ~@19]/5", // C#m D C#m
F: "[~@20 [c#4,e4]@18 [d4,f#4]@17 a3@17 ~ g4@9 f#4@9 [c#4,e4]@17 f#4@18 a3@12 ~@22, ~@55 d4@34 ~@19 d4@31 ~@21]/5", // C#m D C#m
G: "[~ [c#4,e4]@17 [d4,f#4]@17 ~ a3@17 g4@9 f#4@9 [c#4,e4]@17 f#4@18 a3@12 ~@10, ~@36 d4@34 ~@18 d4@31 ~@9]/4", // C#m D C#m
H: "[[c#4,e4]@18 [d4,f#4]@17 a3@17 ~ g4@8 f#4@9 [c#4,e4]@18 f#4@17 a3@12 ~@11, ~@35 d4@34 ~@19 d4@31 ~@9]/4", // C#m D C#m
I: "[~@12 [c#4,e4]@18 [d4,f#4]@17 a3@17 ~ g4@9 f#4@8 [c#4,e4]@18 f#4@17 a3@11, ~@47 d4@34 ~@19 d4@28]/4", // C#m D C#m
J: "[~@25 [c#4,e4]@17 [d4,f#4]@17 ~ a3@17 g4@9 f#4@9 [c#4,e4]@17 f#4@18 a3@12 ~@18, ~@60 d4@34 ~@18 d4@31 ~@17]/5", // C#m D C#m
K: "[~@3 [c#4,e4]@18 [d4,f#4]@17 a3@17 ~ g4@8 f#4@9 [c#4,e4]@18 f#4@17 a3@12 ~@8, ~@38 d4@34 ~@19 d4@31 ~@6]/4", // C#m D C#m
L: "~@15 [c#4,e4]@17", // C#m
M: "[~ [d4,f#4]@17 a3@17 ~ g4@9 f#4@8 [c#4,e4]@18 f#4@17 a3@12 ~@23 [c#4,e4]@18 [d4,f#4]@17 a3@17 ~ g4@9 f#4@7, ~@18 d4@34 ~@19 d4@31 ~@56 d4@34]/6", // D C#m D
N: "[~@2 [c#4,e4]@17 f#4@18 a3@12 ~@15, ~@19 d4@31 ~@14]/2", // C#m
O: "[~@8 [c#4,e4]@17 [d4,f#4]@17 ~ a3@17 g4@9 f#4@9 [c#4,e4]@17 f#4@18 a3@12 ~@3, ~@43 d4@34 ~@18 d4@31 ~@2]/4", // C#m D C#m
P: "[~@20 [c#4,e4]@18 [d4,f#4]@17 a3@17 ~ g4@8 f#4@9 [c#4,e4]@18 f#4@17 a3@12 ~@23, ~@55 d4@34 ~@19 d4@31 ~@21]/5", // C#m D C#m
Q: "[c#4,e4]@17 [d4,f#4]@15", // C#m D
R: "[~@3 a3@17 ~ g4@8 f#4@9 [c#4,e4]@17 ~ f#4@17 a3@12 ~@11, ~@3 d4@34 ~@19 d4@31 ~@9]/3", // C#m
S: "[~@12 [c#4,e4]@18 [d4,f#4]@17 a3@17 ~ g4@9 f#4@8 [c#4,e4]@17 ~ f#4@17 a3@12 ~@31, ~@47 d4@34 ~@19 d4@31 ~@29]/5", // C#m D C#m
})).s("gm_string_ensemble_2").gain(0.19)
// bass · synth bass 1 · "MIDI"
const bass_2 = note(`<
~@6 A@2 B C D@2 E@2 F G@2 H I J K L@2 M N O P@3 Q R S T U V@2 W X Y Z AA AB@2 AC@3 ~@8 AD AE AF@2 AG@3 AH@2 AI AJ AK
AL AM@2 AN AO AP X AQ Z AA AR@5 ~
>`.pickRestart({
A: "[~@10 a2@7 ~@2 a2@7 ~@2 b2@7 ~@2 b2@7 ~ g2@2 ~@3 g2@2 ~@2 g2@3 ~@2 g2 ~ g2@2 ~]/2",
B: "~ d2 ~ d2@2 ~@3 d2@2 ~@2 d2@3 ~ a2@7 ~@2 a2@7", C: "~@2 b2@7 ~@2 b2@7 ~@2 g2@2 ~@2 g2@2 ~@2 g2@3 ~",
D: "[~ g2 ~ g2@2 ~@2 d2 ~ d2@2 ~@3 d2@2 ~@2 d2@3 ~@2 a2@7 ~ a2@7 ~@2 b2@7 ~@2 b2@7 ~@2 g2@2 ~@2 g2@2]/2",
E: "[~@2 g2@3 ~@2 g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~@2 a2@7 ~ a2@7 ~@2 b2@7 ~@2 b2@7 ~@2]/2",
F: "g2@2 ~@2 g2@2 ~@3 g2@3 ~ g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 ~@2 d2@2",
G: "[~@7 b2@3 ~@4 b2@6 a2@3 ~@6 a2@6 ~@7 g2@3 ~@4 g2@4 ~@2 d2@2 ~@3 d2@3 ~]/2",
H: "d2@3 ~@2 c#2@3 ~@5 b2@3 ~@4 b2@6 a2@3 ~@3", I: "~@3 a2@6 ~@7 g2@3 ~@4 g2@4 ~@3 d2@2",
J: "~@2 d2@3 ~ d2@3 ~@2 c#2@3 ~@5 b2@3 ~@4 b2@6", K: "~ a2@3 ~@5 a2@6 ~@8 g2@3 ~@3 g2@3",
L: "[~@4 d2@2 ~@2 d2@3 ~ d2@3 ~@6 a2@7 ~@2 a2@7 ~@2 b2@7 ~ b2@7 ~@2 g2@2 ~@2 g2@2 ~@2]/2",
M: "~ g2@3 ~ g2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@3 ~ a2@5", N: "~@4 a2@7 ~@2 b2@7 ~ b2@7 ~@2 g2@2",
O: "~@3 g2@2 ~@2 g2@3 ~ g2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@3 d2@2 ~@2 d2@3",
P: "[~ a2@7 ~@2 a2@7 ~@2 b2@7 ~@2 b2@7 ~ g2@2 ~@3 g2@2 ~@2 g2@3 ~@2 g2 ~ g2@2 ~@2 d2 ~ d2@2 ~@3 d2@2 ~@2 d2@3 ~ a2@7 ~@2 a2@7 ~@2 b2@7]/3",
Q: "~@2 b2@7 ~ g2@2 ~@3 g2@2 ~@2 g2@3 ~@2 g2 ~ g2@2 ~@2 d2 ~", R: "d2@2 ~@3 d2@2 ~@12 b2@3 ~@4 b2@6",
S: "a2@3 ~@6 a2@6 ~@7 g2@3 ~@4 g2@3", T: "~@3 d2@2 ~@2 d2@3 ~@2 d2@3 ~ c#2@3 ~@6 b2@3 ~@4",
U: "b2@6 a2@3 ~@6 a2@6 ~@7 g2@3 ~",
V: "[~@3 g2@4 ~@2 d2@2 ~@3 d2@3 ~ d2@3 ~ c#2@3 ~@6 b2@3 ~@4 b2@6 a2@3 ~@6 a2@6 ~@5]/2",
W: "~@2 g2@3 ~@4 g2@4 ~@2 d2@2 ~@3 d2@3 ~ d2@3 ~@5", X: "~ a2@7 ~ a2@7 ~@2 b2@7 ~@2 b2@5",
Y: "~@4 g2@2 ~@2 g2@2 ~@3 g2@3 ~ g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2", Z: "~@2 d2@3 ~@2 a2@7 ~@2 a2@7 ~ b2@7 ~",
AA: "~ b2@7 ~@2 g2@2 ~@2 g2@2 ~@3 g2@3 ~ g2 ~ g2@2 ~@3 d2 ~",
AB: "[d2@2 ~@2 d2@2 ~@3 d2@3 ~ a2@7 ~@2 a2@7 ~ b2@7 ~@2 b2@7 ~@2 g2@2 ~@2 g2@2 ~@3 g2@3 ~ g2 ~@2]/2",
AC: "[g2@2 ~@2 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@3 ~ a2@7 ~@2 a2@7 ~@2 b2@7 ~ b2@7 ~@2 g2@2 ~@3 g2@2 ~@2 g2@3 ~ g2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2 d2@3 ~@13]/3",
AD: "~@16 a2@7 ~@2 a2@7", AE: "~ b2@7 ~@2 b2@7 ~@2 g2@2 ~@2 g2@2 ~@3 g2@3 ~",
AF: "[g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@3 ~ a2@7 ~@2 a2@7 ~@2 b2@7 ~ b2@7 ~@2 g2@2 ~@2 g2@2 ~]/2",
AG: "[~@2 g2@3 ~ g2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@3 ~ a2@7 ~@2 a2@7 ~@2 b2@7 ~ b2@7 ~@2 g2@2 ~@3 g2@2 ~@2 g2@3 ~ g2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@2]/3",
AH: "[~@2 a2@7 ~@2 a2@7 ~@2 b2@7 ~@2 b2@7 ~ g2@2 ~@3 g2@2 ~@2 g2@3 ~ g2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@3]/2",
AI: "d2@3 ~@5 a2@7 ~@2 a2@7 ~@2 b2@6", AJ: "~@3 b2@7 ~ g2@2 ~@3 g2@2 ~@2 g2@3 ~@2 g2 ~ g2@2 ~@2 d2",
AK: "~ d2@2 ~@3 d2@2 ~@2 d2@3 ~@2 a2@7 ~ a2@7 ~@2", AL: "b2@7 ~@2 b2@7 ~@2 g2@2 ~@2 g2@2 ~@2 g2@3 ~@2 g2",
AM: "[~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~@2 a2@7 ~ a2@7 ~@2 b2@7 ~@2 b2@7 ~@2 g2@2 ~@2 g2@2 ~@2]/2",
AN: "~ g2@3 ~ g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 ~@2 d2@3 ~@2 a2@5", AO: "~@4 a2@7 ~ b2@7 ~@2 b2@7 ~@2 g2@2",
AP: "~@2 g2@2 ~@3 g2@3 ~ g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 ~@6",
AQ: "~@4 g2@2 ~@2 g2@2 ~@2 g2@3 ~@2 g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2",
AR: "[d2@2 ~@2 d2@2 ~@3 d2@3 ~ a2@7 ~@2 a2@7 ~ b2@7 ~@2 b2@7 ~@2 g2@2 ~@2 g2@2 ~@3 g2@3 ~ g2 ~ g2@2 ~@3 d2 ~ d2@2 ~@2 d2@2 ~@3 d2@3 ~ a2@7 ~@2 a2@7 ~@2 b2@7 ~ b2@7 ~@2 g2@2 ~@2 g2@2 ~@3 g2@3 ~ g2 ~@2 g2@2 ~@2 d2 ~ d2@2 ~@2 d2 d2@3 ~@12]/5",
})).s("gm_synth_bass_1").gain(0.24).pan(0.7)
// other · clavinet · "MIDI"
const clavinet = note("<~@6 A ~@14 B ~@14 C@2 ~@25 D ~@16 E ~>".pickRestart({
A: "~@5 a2@2 ~ a2@2 ~@22", B: "~@17 a2@2 a2@2 ~@11", C: "[~@28 a2@2 ~ a2@2 ~@31]/2", D: "~@4 a2@2 a2 a2@2 ~@23",
E: "~@21 [d2,d3] ~ [d2,d3]@2 ~@7", // D
})).s("gm_clavinet").gain(0.29).pan(0.4)
// chords · epiano1 · "MIDI"
const epiano1 = note("<~@15 A B C D E F G ~@8 H I J K L@2 M ~@25 N ~@17 O ~>".pickRestart({
A: "~@7 [f#5,b5,d6]@2 ~@5 [f#5,b5,d6]@2 ~@4 [e5,a5,c#6]@2 ~@5 [e5,a5,c#6]@2 ~@3", // Bm A
B: "~@2 [e5,a5,c#6]@2 ~@6 [d5,g5,b5]@2 ~@5 [d5,g5,b5]@2 ~@4 [d5,f#5,a5]@2 ~@5 [d5,f#5,a5]@2", // A G D
C: "~@5 [d5,f#5,a5]@2 ~@6 [f#5,b5,d6]@2 ~@5 [f#5,b5,d6]@2 ~@4 [e5,a5,c#6]@2 ~@4", // D Bm A
D: "~ [e5,a5,c#6]@2 ~@5 [e5,a5,c#6]@2 ~@6 [d5,g5,b5]@2 ~@5 [d5,g5,b5]@2 ~@5 [d5,f#5,a5]@2", // A G D
E: "~@4 [d5,f#5,a5]@2 ~@5 [d5,f#5,a5]@2 ~@6 [f#5,b5,d6]@2 ~@5 [f#5,b5,d6]@2 ~@4", // D Bm
F: "~ [e5,a5,c#6]@2 ~@4 [e5,a5,c#6]@2 ~@5 [e5,a5,c#6]@2 ~@7 [d5,g5,b5]@2 ~@4 [d5,g5,b5]@2 ~", // A G
G: "~@2 [d5,f#5,a5] ~@2 [d5,f#5,a5] ~@10", H: "~@19 [f#5,b5,d6]@2 ~@5 [f#5,b5,d6]@2 ~@4",
I: "[e5,a5,c#6]@2 ~@5 [e5,a5,c#6]@2 ~@4 [e5,a5,c#6]@2 ~@7 [d5,g5,b5]@2 ~@5 [d5,g5,b5]@2 ~", // A G
J: "~@3 [d5,f#5,a5]@2 ~@5 [d5,f#5,a5]@2 ~@4 [d5,f#5,a5]@2 ~@7 [f#5,b5,d6]@2 ~@5", // D Bm
K: "[f#5,b5,d6]@2 ~@4 [e5,a5,c#6]@2 ~@5 [e5,a5,c#6]@2 ~@4 [e5,a5,c#6]@2 ~@7 [d5,g5,b5]@2 ~@2", // Bm A G
L: "[~@3 [d5,g5,b5]@2 ~@4 [d5,f#5,a5]@2 ~@5 [d5,f#5,a5]@2 ~@4 [d5,f#5,a5]@2 ~@7 [f#5,b5,d6]@2 ~@5 [f#5,b5,d6]@2 ~@4 [e5,a5,c#6]@2 ~@5 [e5,a5,c#6]@2 ~@4 [e5,a5,c#6]@2 ~@5]/2", // G D Bm A
M: "~@2 [d5,g5,b5]@2 ~@5 [d5,g5,b5]@2 ~@4 [d5,f#5,a5]@2 ~@5 [d5,f#5,a5]@2 ~@8", N: "~@15 [d5,f#5,a5]",
O: "~@7 [d5,f#5,a5] ~@8", // D
})).s("gm_epiano1").gain(0.24).pan(0.9)
// chords · acoustic guitar steel · "MIDI"
const acoustic_guitar_steel = note(`<
~ A@3 B@2 C@8 D ~@6 E@5 F@5 ~@6 G@6 H@5 I J K@5 L@6 M@5 N@6 O@6 P@3 ~
>`.pickRestart({
A: "[~@33 e4@4 ~@14 f#4@8 ~@10 g4@8 ~@11 f#4@8, ~@24 a2@12 ~ c#4@13 ~@28 g4@10 ~@8, ~@28 e3@22 ~@15 b2@13 ~@18, ~@42 b2@17 ~ g2@17 ~ d2@18, ~@46 f#3@12 ~@25 a3@13]/3",
B: "[~@10 e4@4 ~@14 f#4@7 ~@3 g4@25 ~, ~ a2@12 ~ c#4@13 ~@37, ~@5 e3@22 ~@8 g2@29, ~@19 b2@17 ~@28, ~@24 f#3@12 [a3,d4]@27 ~]/2", // D5
C: "[~@19 e4@4 ~@14 f#4@8 ~@9 g4@8 ~@10 f#4@8 ~@9 e4@5 ~@13 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@8 e4@5 ~@13 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@8 e4@5 ~@13 f#4@8 ~, ~@10 a2@12 ~ c#4@13 ~@27 g4@10 ~@21 c#4@13 ~@26 g4@10 ~@21 c#4@13 ~@26 g4@10 ~@21 c#4@13 ~@9, ~@15 e3@21 ~@14 b2@12 ~@18 a2@12 ~@6 b2@17 g2@17 ~ d2@18 ~@21 f#3@12 ~@24 a3@13 ~@4 e3@21 ~@10, ~@28 b2@17 g2@17 ~ d2@18 ~@21 f#3@12 ~@23 a3@13 ~@5 e3@21 ~@14 b2@12 ~@19 a2@12 ~@5 b2@17 ~, ~@32 f#3@12 ~@23 a3@13 ~@5 e3@21 ~@14 b2@12 ~@19 a2@12 ~@5 b2@17 ~ g2@17 d2@18 ~@22 f#3@12 ~]/8",
D: "~@9 g4@8 g4@10 ~@5, g2@17 ~@15, ~ b2@3 ~@4",
E: "[~@30 e4@4 ~@13 f#4@8 ~@10 g4@8 ~@9 f#4@9 ~@9 e4@4 ~@13 f#4@8 ~@10 g4@8 ~@10 f#4@7, ~@21 a2@12 ~ c#4@13 ~@27 g4@10 ~@20 c#4@13 ~@27 g4@10 ~@6, ~@25 e3@21 ~@14 b2@12 ~@19 a2@12 ~@6 b2@17 g2@17 ~ d2@16, ~@39 b2@17 g2@17 ~ d2@18 ~@21 f#3@12 ~@23 a3@12, ~@43 f#3@12 ~@23 a3@13 ~@5 e3@21 ~@14 b2@12 ~@17]/5",
F: "[~@10 e4@4 ~@14 f#4@8 ~@9 g4@8 ~@10 f#4@8 ~@9 e4@5 c#4@3 ~@10 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@18, ~ a2@12 ~ c#4@13 ~@27 g4@10 ~@60 g4@10 ~@26, ~@6 e3@21 ~@14 b2@12 ~@18 a2@12 ~@6 b2@17 g2@17 ~@37, ~@19 b2@17 g2@17 ~ d2@18 ~@52 d2@18 ~@18, ~@23 f#3@12 ~@23 a3@13 ~@5 e3@12 ~@5 f#3@12 ~@6 b2@12 ~@5 a3@13 ~@19]/5",
G: "[~@9 e4@5 c#4@3 ~@10 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~@9 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@7, ~ a2@12 ~@5 b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@17 ~ g2@16, ~@5 e3@12 ~@6 f#3@12 ~@5 b2@12 ~ g4@10 ~@60 g4@10 ~@59, ~@58 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12 ~@6 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12]/6",
H: "[~@10 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~ d2@17 ~@9 e4@5 c#4@3 ~@10 f#4@8 ~@9 g4@8 ~@10 f#4@9, ~ d2@18 a2@12 ~@6 b2@17 g2@17 ~@18 a2@12 ~@6 b2@17 g2@17 ~ d2@18, ~ g4@10 ~@61 g4@10 ~@60 g4@10 ~@8, ~@6 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12 ~@24 e3@12 ~@5 f#3@12 ~@6 b2@12 ~@5 a3@13 ~]/5",
I: "~@8 e4@5 c#4@3 ~@10 f#4@6, a2@12 ~@5 b2@15, ~@4 e3@12 ~@5 f#3@11",
J: "~@3 g4@24 ~@5, g2@27 ~@5, ~ a3@26 ~@5, ~ d4@13 ~@2",
K: "[~@12 e4@5 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~@9 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@6 ~@3 g4@17 ~@5 a3@13 ~@9 e4@4 c#4@3, ~@4 a2@12 ~@5 b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@16 a3@19 g4@10 ~@24, ~@8 e3@12 ~@6 f#3@12 ~@5 b2@12 ~ g4@10 ~@40 g2@27 ~@11 a2@12 ~@4, ~@61 a3@13 ~@4 e3@12 ~@6 f#3@12 d4@26 ~@14 e3@12, ~@63 d2@9 ~@8]/5",
L: "[~@10 f#4@8 ~@10 g4@8 ~@9 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~@9 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~@9 f#4@7, ~ b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@17 ~ g2@17 ~ d2@18 ~@3 e3@12 ~@6 f#3@12 ~@6 b2@12 ~@5 a3@11, ~@6 f#3@12 ~@5 b2@12 ~ g4@10 ~@61 g4@10 ~@60 g4@10 ~@5, ~@41 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12 ~@6 a3@13 a2@12 ~@6 b2@17 g2@17 ~ d2@15]/6",
M: "[~@11 e4@4 c#4@3 ~@11 f#4@8 ~@9 g4@8 ~@10 f#4@8 ~@9 e4@5 c#4@3 ~@10 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@8 e4@5 c#4@3 ~, ~@2 a2@12 ~@6 b2@17 g2@17 ~ d2@18 ~@4 e3@12 ~@5 f#3@12 ~@6 b2@12 ~@5 a3@13 ~@5 e3@12 ~, ~@7 e3@12 ~@5 f#3@12 ~@6 b2@12 ~ g4@10 ~@60 g4@10 ~@25, ~@59 a3@13 a2@12 ~@6 b2@17 g2@17 ~ d2@18 a2@12 ~@5]/5",
N: "[~@9 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@8 e4@5 c#4@3 ~@10 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~@10 f#4@7, b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@17 ~ g2@17 ~ d2@16, ~@4 f#3@12 ~@6 b2@12 ~ g4@10 ~@60 g4@10 ~@60 g4@10 ~@7, ~@40 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12 ~@6 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12 ~@6 a3@12]/6",
O: "[~@9 e4@5 c#4@3 ~@10 f#4@8 ~@9 g4@8 ~@10 f#4@9 ~@8 e4@5 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~@9 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@7, ~ a2@12 ~@5 b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@17 ~ g2@17 d2@18 a2@12 ~@5 b2@17 ~ g2@16, ~@5 e3@12 ~@6 f#3@12 ~@5 b2@12 ~ g4@10 ~@60 g4@10 ~@59, ~@58 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12 ~@6 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12]/6",
P: "[~@10 f#4@9 ~@9 e4@4 c#4@3 ~@10 f#4@8 ~@10 g4@8 ~@9 f#4@9 ~@7, ~ d2@18 a2@12 ~@6 b2@17 g2@17 ~ d2@18 ~@6, ~ g4@10 ~@61 g4@10 ~@14, ~@6 a3@13 ~@4 e3@12 ~@6 f#3@12 ~@5 b2@12 ~@6 a3@13 ~@7]/3",
})).s("gm_acoustic_guitar_steel").gain(0.21).pan(0.3)
// chords · acoustic guitar steel · "MIDI"
const acoustic_guitar_steel_2 = note(`<
~@6 A B C D E@2 F@2 G H I J K L M@3 N@3 O P@2 Q R S@6 T U@2 V W X Y Z@2 ~@7 AA AB@2 AC@2 AD@3 AE@2 AF AG@2 AH AI@2
AJ@3 T AK@2 V W AL@2 AM@2 ~
>`.pickRestart({
A: "~@10 [a3,c#4,e4]@9 [a3,c#4,e4]@6 ~ [b3,d4,f#4]@2 ~@2 [b3,d4,f#4]@2", // A Bm
B: "[b3,d4,f#4] ~@4 [b3,d4,f#4]@6 [b3,d4,f#4]@2 [b3,d4,g4]@8 ~ [b3,d4,g4]@6 ~ [a3,d4,g4]@3", // Bm G Dsus4
C: "~ [a3,d4,g4]@2 [a3,d4,g4] ~@4 [a3,d4,f#4]@7 ~ [a3,c#4,e4]@8 ~ [a3,c#4,e4]@6 ~", // Dsus4 D A
// … 278 more lines
More by Ace of Base
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.