0:00/0:00
// Affirmation — Savage Garden
// 168 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 1 piano (copy of ch 3 synth strings 1)
// note: Full arrangement: all 172 bars on a 24-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(168/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 · fretless bass
const bass = note(`<
~ A B C D E B C F G B H I G J K L M N C O P Q R O S T C U P N K V W Q X Y Z Q AA AB AC Q AD AE AF AG AH AI AJ Q AK AL
AM AB Q AN S AO C AP AQ N C AR AS Q K AT AU Q AV AW AX Q AB AY AZ BA AB@2 BB Q BC BD BE AB Q AB BF Q AK Q BE AB Q BG
BH BI C BJ BK Q C I BL Q C U BM BN C U BO ~@7 BP N BQ BR BS Q C BT BU Q BV BW BX Q BY AN BZ Q AB AE CA AB Q AB CB Q AB
Q CC AB J CD CE CF AB Q CC AB Q AB CG Q AB CH CI CJ N AY CK@3
>`.pickRestart({
A: "ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1@2 ~",
B: "eb1@2 ~ eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2",
C: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~",
D: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2",
E: "ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1 ~@2",
F: "ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1 ~@2",
G: "ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1 ~@2",
H: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1 ~@2 db1 ~@2",
I: "ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
J: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1 ~@2",
K: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1 ~@2 db1@2 ~",
L: "ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
M: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1@2 ~",
N: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2",
O: "ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
P: "ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1@2 ~",
Q: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
R: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1 ~@2",
S: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~",
T: "[db1,eb1]@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2", // Dbsus2
U: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
V: "ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ f1 ~@2",
W: "g1@2 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1 ~@2 g1@2 ~ g1@2 ~ g1@2 ~",
X: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1 ~@2",
Y: "f1@2 ~ f1 ~@2 f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1@2 ~ f1 ~@2",
Z: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1 ~@2 g1@2 ~ g1@2 ~",
AA: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1@2 ~",
AB: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~",
AC: "bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1@2 ~",
AD: "f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2",
AE: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~",
AF: "bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1@2 ~ bb1@2 ~",
AG: "f1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~",
AH: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1@2 ~",
AI: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~",
AJ: "bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1@2 ~",
AK: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2",
AL: "eb1@2 ~ eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1@2 ~",
AM: "bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1@2 ~",
AN: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ g1@2 ~",
AO: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1 ~@2",
AP: "eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
AQ: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1 ~@2 ab1 ~@2",
AR: "ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
AS: "ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~",
AT: "ab1 ~@2 ab1@2 ~ ab1 ~@2 ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
AU: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~",
AV: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1 ~@2 db1@2 ~ db1@2 ~",
AW: "ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1@2 ~ eb1@2 ~ eb1 ~@2 eb1@2 ~ f1@2 ~",
AX: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1 ~@2 g1 ~@2 g1@2 ~",
AY: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ eb1@2 ~ f1@2 ~",
AZ: "g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~",
BA: "g1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
BB: "bb1 ~@2 bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~",
BC: "f1@2 ~ f1@2 ~ f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2 f1 ~@2 f1@2 ~",
BD: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2",
BE: "bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1@2 ~",
BF: "bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1@2 ~",
BG: "f1 ~@2 f1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ g1@2 ~",
BH: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1 ~@2",
BI: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~@4",
BJ: "eb1@2 ~ eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~",
BK: "ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~, g1 ~@23",
BL: "ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~",
BM: "ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1@2 ~ ab1@2 ~",
BN: "eb1@2 ~ eb1 ~@2 eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~", BO: "ab1 ~@23",
BP: "ab1 ~@2 ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ ab1@2 ~",
BQ: "db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ db1@2 ~ [db1,eb1] ~@2 db1@2 ~", // Dbsus2
BR: "ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1 ~@2",
BS: "ab1 ~@2 ab1@2 ~ ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1 ~@2 ab1 ~@2 ab1@2 ~",
BT: "ab1@2 ~ ab1@2 ~ ab1 ~@2 ab1 ~@2 eb1@2 ~ eb1@2 ~ eb1 ~@2 eb1@2 ~",
BU: "g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2 g1 ~@2",
BV: "f1@2 ~ f1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~",
BW: "f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1 ~@2 f1 ~@2",
BX: "g1@2 ~ g1 ~@2 g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~ g1@2 ~",
BY: "f1 ~@2 f1@2 ~ f1@2 ~ f1 ~@2 f1@2 ~ f1 ~@2 f1@2 ~ f1 ~@2",
BZ: "ab1@2 ~ [ab1,bb1] ~@2 bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1 ~@2 bb1@2 ~", // Absus2
CA: "bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1@2 ~",
CB: "bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1@2 ~",
CC: "bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~",
CD: "f1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~ f1@2 ~",
CE: "bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~",
CF: "f1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~",
CG: "bb1@2 ~ bb1@2 ~ bb1 ~@2 bb1@2 ~ bb1 ~@2 bb1 ~@2 bb1 ~@2 bb1@2 ~",
CH: "eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ eb1@2 ~ f1 ~@2, f1 ~@23",
CI: "bb1 ~@2 bb1 ~@2 bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~ bb1@2 ~",
CJ: "eb1@2 ~ eb1@2 ~ f1 ~@2 f1 ~@2 f1 ~@2 f1@2 ~ f1@2 ~ f1@2 ~", CK: "[bb1@49 ~@23]/3",
})).s("gm_fretless_bass").gain(0.4)
// chords · synth strings 1
const synth_strings_1 = note(`<
~ A B C D E B C D E F C G E B C H E B C G E B C I E B C J K B C L M N O@2 M N O@2 P N Q N P Q B Q P N Q N R Q B Q S B
C T S U C D V B C W X B C Y M Z AA@2 M N O@2 P N AB B P Q B Q P N Q AC P AD AE AF@2 AG AH AI@2 U AH T S AJ AH AK@2 AG
AH T AL ~@6 AM@2 AG AN AO AP@3 AQ@2 N AR@6 AS@3 AT@2 AU AG AV P N AW AX AY AV AG AZ@2 BA@3 P AV AG BB@3 AW BC@2 AV AG
AV BD@2 ~
>`.pickRestart({
A: "[ab1,ab2,eb3,ab3]", B: "[eb2,eb3,g3,bb3,eb4]", C: "[db2,db3,f3,ab3,db4]",
D: "[ab1,eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4], ab2@5 ~@19", E: "[ab1,ab2,eb3,ab3,c4,eb4]",
F: "[eb2,eb3,g3,bb3,eb4], db2 ~@11", G: "[ab1,ab2,eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4]",
H: "[eb3,ab3,c4,eb4] [eb3,g3,bb3,eb4], [ab1,ab2]@5 ~@7 eb2@5 ~@7", // Ab Eb Ab
I: "[eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4], [ab1,ab2]@5 ~@19", // Ab Eb Ab
J: "[ab1,eb3,ab3,c4,eb4] [eb2,eb3,g3,bb3,eb4], ab2@5 ~@7 db4@2 ~@10", K: "[eb3,ab3,c4,eb4], [ab1,ab2]@17 ~@7",
L: "[ab1,eb3,ab3,c4,eb4]@2 [eb2,eb3,g3] ~, ab2@5 ~@7 [bb3,eb4]@12", M: "[g2,g3,bb3,d4]", N: "[eb2,g3,bb3,eb4]",
O: "[f2,f3,a3,c4,f4]/2", P: "[bb1,bb2,f3,bb3,d4]", Q: "[f2,f3,a3,c4,f4]", R: "[bb1,bb2,f3,bb3,d4,f4]",
S: "[ab1,ab2,eb3,ab3,c4]", T: "[ab1,ab2,eb3,ab3,c4] [eb2,eb3,g3,bb3]", U: "[eb2,eb3,g3,bb3]",
V: "[ab1,eb3,ab3,c4,eb4], ab2@3 ~", W: "[ab1,ab2,eb3,ab3,c4,eb4] [eb3,g3,bb3,eb4], ~@12 eb2@5 ~@7",
X: "[ab1,ab2,eb3,ab3,c4], eb4@5 ~@19", // Ab
Y: "[ab1,eb3,ab3,c4,eb4]@12 [eb2,eb3,g3,bb3,eb4]@5 ~@7, ab2@5 ~@7 db2@2 ~@10, f4 ~@11", // Ab Eb
Z: "[g3,bb3,eb4]@3 [g3,bb3,d4], eb2", AA: "[f2,f3,a3,c4]/2", AB: "[f2,f3,a3,c4,f4]@11 ~",
AC: "[eb2,eb3,g3,bb3,eb4], f4 ~@7", AD: "[f2,f3,a3,c4]", AE: "[eb2,eb3,g3,bb3], f2 ~@7",
AF: "[c4@24 ~ [ab2,eb3,ab3,c4]@22 ~, [f2,f3,a3]@23 ~, ~@12 ab1@11 ~]/2", AG: "[eb2,eb3,g3,bb3]@23 ~",
AH: "[db2,db3,f3,ab3]", // Db
AI: "[eb3@11 ~@13 ab2@24, [ab1,ab2,ab3,c4]@12 eb2@13 ~@23, ~@11 [eb3,g3,bb3]@12 [ab1,eb3,ab3,c4]@25]/2", // Ab Eb Ab
AJ: "[eb2,eb3,g3,bb3], db2 ~@23", // Eb
AK: "[[ab1,ab2,eb3,ab3,c4]@11 ~ [eb2,eb3,g3,bb3]@11 ~ [ab1,eb3,ab3,c4]@24, ~@23 ab2@25]/2", // Ab Eb Ab
AL: "[ab1,ab2,eb3,ab3] ~@3", AM: "[~@24 [ab1,ab2,eb3]@23 ~, ~@23 [ab3,c4]@23 ~@2]/2", AN: "[db2,db3,f3,ab3]@23 ~",
AO: "[ab1,ab2,eb3,ab3,c4]@11 ~ [eb2,eb3,g3,bb3]@12", // Ab Eb
AP: "[[ab1,ab2,eb3,ab3,c4]@23 [eb2,eb3,g3,bb3]@24 [db2,db3,f3,ab3]@24 ~]/3", // Ab Eb Db
AQ: "[[ab1,ab2,eb3,ab3,c4]@11 ~@13 [g2,g3,bb3,d4]@23 ~, ~@11 eb3@35 ~@2, ~@11 [g3,bb3]@13 ~@24, ~@12 eb2@35 ~]/2", // Ab Gm
AR: "[[f2,f3,a3,c4,f4]@47 [g2,d3,g3,bb3]@24 ~ [eb2,bb3,eb4]@23 ~ [f3,a3,c4]@47 ~, ~@71 [eb3,g3]@23 ~ [f2,f4]@48 ~]/6", // F Gm Eb5 F Eb F
AS: "[[bb1,bb2,f3,bb3,d4]@23 [eb2,g3,bb3,eb4]@24 ~ [a3,c4]@23 ~, ~@47 [f2,f3,f4]@23 ~@2]/3", // Bb Eb Am F
AT: "[[eb2,eb3,g3,bb3,eb4]@23 ~ [bb2,f3,bb3,d4]@23 ~, ~@23 bb1@24 ~]/2", AU: "[f2,f3,a3,c4]@23 ~, eb2 ~@23",
AV: "[f2,f3,a3,c4]@23 ~", AW: "[f2,f3,a3,c4,f4]@23 ~", AX: "[eb2,g3,bb3,eb4]@23 ~", AY: "[bb1,bb2,f3,bb3,d4]@23 ~",
AZ: "[[f2,f3,a3,c4]@23 ~ [bb1,bb2,f3,d4]@24, ~@23 bb3@24 ~]/2", // F Bb
BA: "[[eb2,g3,bb3,eb4]@23 [f2,f3,a3,c4,f4]@24 ~ [g3,bb3,eb4]@23 ~, ~@47 [eb2,eb3]@23 ~@2]/3", // Eb F Eb
BB: "[[f2,f3,a3,c4]@23 ~ f3@23 ~ g3@24, ~@23 [bb1,bb2,bb3,d4]@24 [eb2,bb3,eb4]@25]/3", // F Bb Eb5
BC: "[[eb2,g3,bb3,eb4]@23 ~ [bb2,bb3]@23 ~, ~@23 [bb1,f3,d4]@23 ~@2, ~@23 ab1@2 ~@23]/2", BD: "[bb1,bb2,f3,bb3]/2",
})).s("gm_synth_strings_1").gain(0.25).pan(0.7)
// bass · synth bass 1
const bass_2 = note(`<
~ A B@2 C D E@10 B F B E B@2 F E@2 F B@3 F E B G H I J@10 K J L@2 I L J L I L@2 M N O P O@2 Q P R Q S T O Q P O U V W
X Y@2 Z AA AB X Y AC AD AE Y AF AG AH AG AI AJ AK AG@2 AL AM AN AO AP AQ AR@9 AS AT AU AV@2 AW AX AY@3 F B@3 F E B G H
I J@10 K J L@2 I L J L I L@2 M J@4 K J L@2 I L J L I L@2 M ~@3
>`.pickRestart({
A: "ab0@2 ~ ab0@2 ~@4 ab0 ~@2 ab0@2 ~ ab0@2 ~@4 ab0 ~@2", B: "ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~@2 ab0@2 ~@4 ab0 ~@2",
C: "ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0@2 ~ ab0@2 ~@4 ab0 ~@2", D: "ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~@2 ab0 ~@5 ab0 ~@2",
E: "ab0 ~@2 ab0 ~@5 ab0 ~@2 ab0 ~@2 ab0 ~@5 ab0 ~@2", F: "ab0 ~@2 ab0 ~@5 ab0 ~@2 ab0 ~@2 ab0@2 ~@4 ab0 ~@2",
G: "ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~@2 ab0@2 ~@4 bb1 ~@2", H: "bb1 ~@2 bb1@2 ~@4 bb1 ~@2 bb1 ~@2 bb1@2 ~@4 bb1 ~@2",
I: "bb1 ~@2 bb1@2 ~@4 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1 ~@2", J: "bb1 ~@2 bb1 ~@5 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1 ~@2",
K: "bb1 ~@2 bb1 ~@5 [bb1,c2] ~@2 bb1 ~@2 bb1 ~@5 bb1 ~@2", L: "bb1 ~@2 bb1 ~@5 bb1 ~@2 bb1 ~@2 bb1@2 ~@4 bb1 ~@2",
M: "bb1 ~@2 bb1@2 ~@4 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1@2 ~", N: "ab1 ~@3 ab1 ~@5 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~",
O: "~ ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~", P: "~ ab1 ~@2 ab1 ~@5 ab1 ~@2 ab1 ~@2 ab1 ~@5 ab1 ~",
Q: "~ ab1 ~@2 ab1 ~@5 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~", R: "ab1 ~@2 ab1 ~@6 ab1 ~@2 ab1 ~@2 ab1 ~@5 ab1 ~",
S: "~ ab1 ~@2 ab1@2 ~@3 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~@2", T: "ab1 ~@2 ab1@2 ~@5 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~",
U: "~ ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 bb1 ~", V: "~ bb1 ~@2 bb1@2 ~@3 bb1 ~@3 bb1 ~@2 bb1@2 ~@4 bb1 ~",
W: "bb1 ~@3 bb1@2 ~@4 bb1 ~@2 bb1 ~@2 bb1 ~@4 bb1 ~@2", X: "bb1 ~@3 bb1 ~@4 bb1 ~@2 bb1 ~@3 bb1 ~@5 bb1 ~",
Y: "~ bb1 ~@2 bb1 ~@5 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1 ~", Z: "~ bb1 ~@2 bb1 ~@4 bb1 ~@2 bb1 ~@3 bb1 ~@5 bb1 ~",
AA: "~ bb1 ~@2 bb1 ~@4 bb1 ~@3 bb1 ~@2 bb1 ~@5 bb1 ~", AB: "~ bb1 ~@2 bb1 ~@5 bb1 ~@2 bb1 ~@2 bb1 ~@4 bb1 ~@2",
AC: "~ bb1 ~@2 bb1 ~@4 bb1 ~@3 bb1 ~@2 bb1 ~@4 bb1 ~@2", AD: "bb1 ~@2 bb1 ~@6 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1 ~",
AE: "~ bb1 ~@2 bb1 ~@5 [bb1,c2] ~@2 bb1 ~@2 bb1 ~@5 bb1 ~", AF: "~ bb1 ~@2 bb1 ~@4 bb1 ~@3 bb1 ~@2 bb1@2 ~@4 bb1 ~",
AG: "~ bb1 ~@2 bb1 ~@5 bb1 ~@2 bb1 ~@2 bb1@2 ~@4 bb1 ~", AH: "~ bb1 ~@2 bb1@2 ~@4 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1 ~",
AI: "~ bb1 ~@2 bb1 ~@4 bb1 ~@2 bb1 ~@2 bb1 ~@6 bb1 ~", AJ: "~ bb1 ~ bb1 ~@5 bb1 ~@2 bb1 ~@3 bb1@2 ~@4 bb1 ~",
AK: "~ bb1 ~@2 bb1@2 ~@4 bb1 ~@2 bb1 ~ bb1 ~@6 bb1 ~", AL: "~ bb1 ~@2 bb1@2 ~@4 bb1 ~@2 bb1 ~@2 bb1 ~@5 bb1@2",
AM: "~ ab0@2 ~ ab0@2 ~@4 ab0 ~@2 ab0@2 ~ ab0@2 ~@4 ab0 ~", AN: "~ ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~ ab0@2 ~@5 ab0 ~",
AO: "~ ab0 ~ ab0@2 ~@5 ab0 ~@2 ab0 ~@2 ab0@2 ~@4 ab0 ~", AP: "~ ab0 ~ ab0@2 ~@5 ab0 ~@2 ab0@2 ~ ab0@2 ~@4 ab0 ~",
AQ: "~ ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~@2 ab0 ~@5 ab0 ~", AR: "~ ab0 ~@2 ab0 ~@5 ab0 ~@2 ab0 ~@2 ab0 ~@5 ab0 ~",
AS: "~ ab0 ~@2 ab0 ~@5 ab0 ~@2 ab0 ~ ab0 ~@6 ab0 ~", AT: "~ ab0 ~@2 ab0@2 ~@4 ab0 ~@2 ab0 ~@2 ab0@2 ~@4 ab0 ~",
AU: "ab1@2 ~ ab1@2 ~@4 ab1 ~@2 ab1@2 ~ ab1@2 ~@4 ab1 ~@2", AV: "ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1 ~@2 ab1@2 ~@4 ab1 ~@2",
AW: "ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1@2 ~ ab1@2 ~@4 ab1 ~@2", AX: "ab1 ~@2 ab1@2 ~@4 ab1 ~@2 ab1 ~@2 ab1 ~@5 ab1 ~@2",
AY: "ab1 ~@2 ab1 ~@5 ab1 ~@2 ab1 ~@2 ab1 ~@5 ab1 ~@2",
})).s("gm_synth_bass_1").gain(0.18)
// chords · electric guitar clean
const electric_guitar_clean = note(`<
A@8 B@5 C@7 D@8 E@4 F@8 G H I@8 J@7 K@7 L@4 M@7 N@2 O@4 P@6 Q@5 R@5 S@6 T@7 U V@4 ~@6 W@3 X@4 Y@8 G H Z@8 AA@7 H AB@8
AC@4 AD@3 ~@3
>`.pickRestart({
A: "[~@24 c5@22 ~@11 eb4@6 [eb4,g4]@7 ~@51 bb4 ~@31 eb4@6 [eb4,g4]@8 ~ [f4,ab4]@23 [ab2,ab3,eb4], ~@22 [ab2,ab3,eb4]@24 ~ [eb2,eb3]@24 [db2,f4]@25 ~@11 eb4@12 [ab2,ab3,eb4]@25 bb4@24 ~@24, ~@23 ab4@23 eb4@11 ab4@14 ~ ab4@24 [ab4,c5]@12 [eb2,g4]@14 ~@21 [eb2,eb3]@25 ~@24, ~@47 g4@16 ~@7 [db3,db4]@25 [ab2,ab3]@14 bb4@11 [ab4,c5]@24 g4@15 ~@8 [db2,db3,db4]@25, ~@48 bb4@23 ~@23 eb4@13 eb3@14 ~@22 eb4@10 ab4@15 ~@24]/8", // Eb Fm Ab5 Eb Db Ab5 Ab Eb …
B: "[~@57 eb4@6 [eb4,g4]@8 ~@38 bb4@11, [ab4,c5]@14 ~@10 [ab2,ab3,ab4,c5]@24 ~@23 [db2,db3,db4]@25 [ab2,ab4]@14 ~@10, ~@11 [eb2,eb3]@14 ~@22 [eb2,eb3,bb4]@25 ~@23 eb4@12 eb4@13, ~@11 eb4@12 eb4@23 eb4@11 ab4@14 ~@24 ab3@13 [eb2,eb3,g4]@12, ~@12 [g4,bb4]@14 ~@21 g4@16 ~@9 [f4,ab4]@25 c5@13 ~@10]/5", // Eb Ab Db Ab Eb Eb5 Eb Gm …
C: "[~ [ab4,c5]@22 ~ bb4@9 [eb4,bb4]@6 [eb4,g4,bb4]@8 ~@49 [ab4,c5]@22 ~@2 bb4@22 ~@25 ab3, [ab2,ab3,eb4]@23 [eb2,eb3]@25 ~@22 eb4@13 [eb2,eb3,eb4]@12 [ab2,ab3,eb4]@24 [eb2,eb3,g4]@24 ~ ab4@24, ~@23 eb4@10 ab4@15 [f4,ab4]@23 [ab2,ab3,ab4]@13 g4@12 ~@22 eb4@24 [db2,db3,db4]@26, ~@24 g4@15 ~@8 [db2,db3,db4]@25 c5@13 bb4@12 ~@46 f4@25, ~@83 eb4]/7", // Ab Eb5 Eb Ab Ab5 Eb Ab5 Eb …
D: "[~@13 bb4@10 ~ [ab4,c5]@22 ~@2 [g4,bb4]@22 ~@2 ab4@23 ~@14 bb4@10 ~ [ab4,c5]@22 ~@2 bb4@22 ~@25 [ab2,ab3], [ab2,ab4]@12 g4@12 ~@22 eb4@25 f4@24 eb4@11 eb4@12 ~ [ab2,ab3,eb4]@24 ~@23 [db2,db3,db4]@25 ~, ~ c5@12 ~@10 [ab2,ab3,eb4]@23 ~@24 [db2,db3,db4]@26 ab4@12 g4@12 ~@22 eb4@25 f4@25, ~@11 [eb2,eb3,eb4]@13 ~@23 [eb2,eb3]@25 ~@23 [ab2,ab3]@12 [eb2,eb3]@13 ~@23 [eb2,eb3,g4]@25 ~@22 eb4@2, ~@97 c5@12 ~@59 ab4@24]/8", // Ab Gm Ab Ab5 Db Ab5 Db Eb …
E: "[~@12 bb4@10 ~@2 c5@22 ~@2 [g4,bb4]@23 ~@24 [ab2,ab4], [ab4,c5]@11 g4@11 eb4@24 eb4@25 [db2,db3,db4]@25, ~@10 [eb2,eb3,eb4]@13 [ab2,ab3,ab4]@24 [eb2,eb3]@25 [f4,ab4]@24, ~@47 [ab3,eb4]]/4", // Gm Ab Db Eb Ab Eb Fm Ab5
F: "[~@12 [g4,bb4]@8 gb2 ~@2 [bb3,d4]@23 ~@27 [a3,c4]@46 ~@2 d4@22 ~@2 eb4@22 ~@2 f4@23, c5@13 ~@9 g3@24 g3@25 [f2,f3]@47 ~ g2@25 ~@24 [f2,a3,c4]@24, ~@11 [eb2,eb3,eb4]@10 ~ g2@25 [eb2,bb3]@26 ~@47 bb3@23 ~@24 f3@25, ~@48 eb4@25 ~@46 g3@23 ~ [eb2,g3,bb3]@25 ~@24]/8", // Gm Bb Am F Eb Eb5 Eb
G: "~@3 [f3,a3,c4,f4]@2 f2 ~@4 f2@2, ~@2 f2@7 ~@3 [f3,a3,c4,f4]@5 [f3,c4,f4]@7, ~@15 f2@5 ~@4, ~@3 a3", // F F5
H: "~@9 [f3,bb3,d4]@14 f3, [f3,bb3,d4]@3 ~@5, ~ bb2@3", // Bb
I: "[~ c4 ~@22 c4@23 ~@2 bb3@21 ~@26 [a3,c4]@23 ~@2 [g3,bb3]@22 ~@24 [bb2,bb3,d4]@25, eb2@23 [f2,a3]@23 ~ [eb2,eb3]@25 ~@23 f2@25 eb2@24 ~@21 f3@27, ~@9 eb3@15 ~@47 [bb2,bb3]@25 ~@23 eb3@25 ~@12 f4@11 ~@25, ~@10 [g3,bb3]@14 ~@24 g3@23 ~ d4@24 ~@49 c4@22 ~@25, ~@22 f3@24 ~@24 f3@24 f3@26 ~@23 [f2,f3,a3]@23 ~@26]/8", // Am Gm Bb F Eb Bb Gm F
J: "[~ bb3@21 ~@2 c4@23 ~@2 bb3@12 eb4@10 ~@50 eb4@22 ~@3 c4@19 ~@3, [eb2,eb3,g3]@22 f3@25 ~@2 g3@23 [bb2,bb3,d4]@24 f2@22 eb3@26 ~ eb4@2 ~@21, ~@23 [f2,a3]@24 [eb2,eb3]@24 f3@24 f3@24 [eb2,g3]@25 [f2,a3]@23 ~, ~@97 [a3,c4]@23 bb3@24 ~ f4@20 ~@3, ~@99 f4@21 ~@23 f3@22 ~@3]/7", // Eb Bb F Eb F Am
K: "[[ab2,ab3,ab4,c5]@23 ~@2 bb4@21 ~@51 [ab4,c5]@22 ~@26 ab4@23, ~@23 [eb2,eb4]@23 db4@26 [ab2,ab3]@12 eb4@11 eb4@23 ~@24 db4@26, ~@24 [eb3,g4]@23 [db2,db3]@26 ~ c5@11 g4@11 [ab2,ab3]@24 ~@23 [db2,db3]@25, ~@48 [f4,ab4]@25 ab4@13 bb4@11 ~@24 [g4,bb4]@23 f4@24, ~@71 eb4@13 [eb2,eb3]@13 ~@22 [eb2,eb3,eb4]@25 ~@24]/7", // Ab Eb Ab Eb Db Ab Db Fm …
L: "[~@13 bb4@10 ~@2 [ab4,c5]@22 ~@26 ab4@22 eb4, [ab2,ab3]@12 [eb2,eb3,g4]@13 ~@22 [eb2,eb3,eb4]@24 [db2,db3]@25, eb4@11 eb4@12 eb4@24 ~ g4@24 f4@24, ~ ab4@13 ~@10 [ab2,ab3]@24 ~@22 db4@26, ~@2 c5@12 ~@35 bb4@23 ~@24]/4", // Ab Eb Db Ab
M: "[~ c5@10 ~@2 bb4@10 ~@2 c5@22 ~@2 bb4@22 ~@2 ab4@22 ~@14 [g4,bb4]@8 gb2 ~@2 d4@23 ~@2 eb4@23, [ab2,ab3,ab4]@12 g4@11 [ab3,eb4]@24 [eb2,eb3,eb4]@24 db4@24 [ab2,ab3]@13 [eb2,eb3]@10 [g2,g3]@26 [eb2,bb3]@24, ~@11 [eb2,eb3,eb4]@13 [ab2,ab4]@24 g4@24 [db2,db3,f4]@24 ab4@14 ~@33 g3@25, ~@95 eb4@12 eb4@11 ~ bb3@25 ~@24, ~@97 c5@13 ~@58]/7", // Gm Ab Ab5 Eb Ab Eb G Eb5 …
// … 126 more lines
More by Savage Garden
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.