0:00/0:00
// Knock Three Times — Tony Orlando
// 122 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (4/4 at bar 1, 2/4 at bar 23, 4/4 at bar 24, 2/4 at bar 31, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: pitch bends are ignored
// note: Full arrangement: all 110 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(122/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(`<
~@2 A@5 B C B D E F G H I J K L M N@3 O P Q R S T U V W X@4 Y Z Y AA AB@4 AC@3 AD@3 AE@2 AF@2 AG AH AI AJ AK AL AM AN
AO AP@4 AQ AR AS AT@2 AU@3 AV@2 AW AX AY AZ BA@5 BB BC BD BE BF BG BH BI BJ BC BK BL BM BN BO BB BC BD BP BQ BR BS BT
BU
>`.pickRestart({
A: "[~@16 f2@18 ~@3 f2@3 bb2@18 ~@3 bb2@3 c3@10 ~@2 c3@10 ~@2 c3@10 ~@2 c3@10 ~@2 f2@6 ~@2]/5",
B: "~ f2 ~@2 f2@6 ~@3 f2 ~@2 f2@6 ~@2", C: "~ f2 ~@2 f2@3 c2@3 d2@3 c2@3 f2@6 ~@2",
D: "~ f2 ~@2 f2@3 a2@3 bb2@3 b2@3 c3@6 ~@2", E: "~ c3 ~@2 c3@6 a2@3 g2 ~@2 c2@6 ~@2",
F: "~ c2 ~@2 c2 ~@2 c2@3 e2@3 g2@3 c3@6 ~@2", G: "~ c3 ~@2 c3 ~@2 c3@3 a2@3 g2@3 ~ c2@6 ~",
H: "~@2 c2 ~@2 e2@3 f2@3 gb2@3 g2@3 c2@4 ~@3", I: "~@2 c2 ~@2 c2 ~@2 c2@3 e2@3 g2@3 c3@6 ~",
J: "~@2 c3 ~@2 c3 ~@2 c3@3 a2@3 g2@3 c3@6 ~", K: "~@2 c3 ~@2 c3@6 a2@3 g2 ~@2 c2 ~@2 c2 ~@3",
L: "~@2 c2@3 c3@3 bb2@3 a2@3 g2@3 f2@6 ~", M: "~@2 f2 ~@2 f2@6 ~@3 f2 ~@2 f2@6 ~",
N: "[~@2 f2@2 ~ f2@3 f2@3 g2@3 a2@3 bb2@3 ~@3 bb2@3 ~@3 bb2@3 ~@6 bb1@3 bb1@3 c2@3 d2@3 e2@3 f2@3 f2 ~@5 f2 ~@2 f2@3 ~ f2 ~@2]/3",
O: "~@3 f2 ~@2 f2@3 f2 ~@5 f2 ~@2 f2@3 a2@3", P: "bb2@3 b2@3 c3@3 c3 ~@5 c3 ~@2 c3@3 c3 ~@2",
Q: "~@3 c3 ~@2 c3@3 c3 ~@5 c3@3 d3@3 c3@3", R: "a2@3 g2@3 f2@3 f2 ~@5 f2 ~@2 f2@3 f2 ~@2",
S: "~@3 f2 ~@2 f2@3 f2 ~@5 f2@3 f3@3 ~ eb3@2", T: "~ d3@3 c3 ~@2 bb2@3 ~@3 bb2@3 ~@3 bb2@3 ~@2",
U: "~@7 bb1@3 c2@3 d2@3 e2@3 f2@3 f2 ~", V: "~@4 f2 ~@2 f2@3 f2 ~@5 f2 ~@2 f2@3 f2 ~",
W: "~@4 f2 ~@2 f2@3 a2@3 bb2@3 b2@3 c3@3 c3 ~",
X: "[~@4 c3 ~@2 c3@3 c3 ~@5 c3 ~@2 c3@21 c2@3 f2@18 ~@3 f2@3 bb2@9 bb2@3 c3@3 c2@3 d2@2 ~ e2@3 f2@5]/4",
Y: "~@4 f2 ~@2 f2@6 ~@3 f2 ~@2 f2@5", Z: "~@4 f2 ~@2 f2@3 c2@3 d2@3 c2@3 f2@5",
AA: "~@4 f2 ~@2 f2@3 a2@3 bb2@3 b2@3 c3@5",
AB: "[~@4 c3 ~@2 c3@6 ~ a2@3 g2 ~@2 c2@6 ~@3 c2 ~@2 c2 ~@2 c2@3 e2@3 g2@3 c3@6 ~@3 c3 ~@2 c3 ~@2 c3@3 a2@3 g2@3 c2@6 ~@3 c2 ~@2 e2@3 f2@3 gb2@3 g2@3 c2@4]/4",
AC: "[~@5 c2 ~@2 c2 ~@2 c2@3 e2@3 g2@3 c3@6 ~@3 c3 ~@2 c3 ~@2 c3@3 a2@3 g2@3 c3@6 ~@3 c3 ~@2 c3@6 a2@3 g2 ~@2 c2 ~@2 c2]/3",
AD: "[~@5 c2@3 c3@3 bb2@3 a2@3 g2@3 f2@6 ~@3 f2 ~@2 f2@6 ~@3 f2 ~@2 f3@2 ~ f3@3 eb3@3 eb3@3 d3@3 d3@3 c3@3 c3@3 bb2@3 ~]/3",
AE: "[~@2 bb2@3 ~@3 bb2@3 ~@6 bb1@3 bb1@3 c2@3 d2@3 e2@3 f2@3 f2 ~@5 f2 ~@2 f2@3 f2]/2",
AF: "[~@5 f2 ~@2 f2@3 f2 ~@5 f2 ~@2 f2@3 a2@3 bb2@3 b2@3 c3@3 c3 ~@6 c3 ~@2 c3@3]/2",
AG: "c3 ~@5 c3 ~@2 c3@3 c3 ~@5 c3@3 d3@3", AH: "c3@3 a2@3 g2@3 f2@3 f2 ~@5 f2 ~@2 f2@3",
AI: "f2 ~@5 f2 ~@2 f2@3 f2 ~@5 f2@3 f3@3", AJ: "eb3@3 d3@3 c3 ~@2 bb2@3 ~@3 bb2@3 ~@3 bb2@3",
AK: "~@3 bb1 c2 d2 e2 f2", AL: "f2 ~@5 f2 ~@2 f2@3 f2 ~@5 f2 ~@2 f2@3", AM: "f2 ~@5 f2 ~@2 f2@3 a2@3 bb2@3 b2@3 c3@3",
AN: "c3 ~@5 c3 ~@2 c3@3 c3 ~@2 a2@3 g2 ~@2 c3@3", AO: "c3 ~@5 c3 ~@2 c3@3 c3 ~@2 a2@3 g2 ~@2 f3 ~@2",
AP: "[f3@6 ~ d3 ~ f3 ~ f3@6 ~ c3 d3 gb2@6 ~@3 gb2 ~@2 gb2@6 ~@3 gb2 ~@2 gb2@6 ~@3 gb2 ~@2 gb2@3 db2@3 eb2@3 db2@3 gb2@6 ~@3 gb2 ~@2 gb2@6 ~@2 gb2 ~@2 gb2@5, ~@3 c3 ~@44]/4",
AQ: "~@4 gb2 ~@2 gb2@3 bb2@3 b2@3 c3@3 db3@5", AR: "~@4 db3 ~@2 db3@6 bb2@3 ab2 ~@2 db2@5",
AS: "~@4 db2 ~@2 db2 ~@2 db2@3 f2@3 ab2@3 db3@5",
AT: "[~@4 db3 ~@2 db3 ~@2 db3@3 bb2@3 ab2@3 ~ db2@6 ~@3 db2 ~@2 f2@3 gb2@3 g2@3 ab2@3 db2@4]/2",
AU: "[~@5 db2 ~@2 db2 ~@2 db2@3 f2@3 ab2@3 db3@6 ~@3 db3 ~@2 db3 ~@2 db3@3 bb2@3 ab2@3 db3@6 ~@3 db3 ~@2 db3@6 bb2@3 ab2 ~@2 db2 ~@2 db2]/3",
AV: "[~@5 db2@3 db3@3 b2@3 bb2@3 ab2@3 ~ gb2@6 ~@3 gb2 ~@2 gb2@6 ~@3 gb2 ~@2 gb2@3]/2", AW: "~@2 gb2!3 ab2 bb2 b2",
AX: "~@3 b2@3 ~@3 b2@3 ~@6 b1@3 ~ b1@2", AY: "~ db2@3 eb2@3 f2@3 gb2@3 gb2 ~@5 gb2 ~@2 gb2@2",
AZ: "~ gb2 ~@5 gb2 ~@2 gb2@3 gb2 ~@5 gb2 ~@2 gb2@2",
BA: "[~ bb2@3 b2@3 c3@3 ~ db3@3 db3 ~@5 db3 ~@2 db3@3 db3 ~@5 db3 ~@2 db3@3 db3 ~@5 db3@3 eb3@3 db3@3 bb2@3 ab2@3 gb2@3 gb2 ~@5 gb2 ~@2 gb2@3 gb2 ~@5 gb2 ~@2 gb2@3 gb2 ~@5 gb2@3 gb3@3 e3@3 eb3@3 db3 ~@3 b2@3 ~@3 b2@3 ~@3]/5",
BB: "b2 ~@3 b1 db2 eb2 f2", BC: "gb2@3 gb2 ~@5 gb2 ~@2 gb2@3 gb2 ~@5 gb2 ~@2",
BD: "gb2@3 gb2 ~@5 gb2 ~@2 gb2@3 bb2@3 b2@3 c3@3", BE: "db3@3 db3@3 ~@3 db3 ~@2 db3@3 db3 ~@2 bb2@3 ab2@3",
BF: "db2@3 db2 ~@5 db2@3 db2@3 f2@3 gb2@3 ab2@3", BG: "gb2@6 ~@3 gb2 ~@2 gb2@6 ~@3 gb2 ~@2",
BH: "gb2@4 ~@5 gb2@3 gb2@3 gb2@3 ab2@3 bb2@3", BI: "b2 ~ b2 ~ b2 ~@2 b1",
BJ: "b1@3 db2@3 eb2@3 f2@3 gb2@3 gb2 ~@5 gb2 ~@2", BK: "gb2@3 bb2@3 b2@3 c3@3 db3@3 db3 ~@5 db3 ~@2",
BL: "db3@3 db3 ~@5 db3 ~@2 db3@3 db3 ~@5 db3@3", BM: "eb3@3 db3@3 bb2@3 ab2@3 gb2@3 gb2 ~@5 gb2 ~@2",
BN: "gb2@3 gb2 ~@5 gb2 ~@2 gb2@3 gb2 ~@5 gb2@3", BO: "gb3@3 e3@3 eb3@3 db3 ~@2 b2@3 ~@3 b2@3 ~@3",
BP: "db3@3 db3 ~@5 db3 ~@2 db3@3 db3 ~@5 db3 ~@2", BQ: "db3@3 db2", BR: "gb2@6 ~ gb2", BS: "b2@6 ~ b2",
BT: "gb2@6 ~ db2", BU: "gb2@3 ~@3 gb2 ~@2 gb2 ~@2 gb2 ~@11",
})).s("gm_fretless_bass").gain(0.45)
// chords · epiano2
const epiano2 = note("<~@2 A@4 B@7 C D E F@5 ~@12 G@3 ~@5 H I@2 J@6 ~@19 K L@2 M@6 ~@13 N@2 ~@13 O P O ~>".pickRestart({
A: "[~@16 [a3,c4,f4]@23 ~ [bb3,d4]@23 ~ [c4,e4]@12 [c4,e4]@10 ~@2 [c4,e4]@8]/4", // F Bb C
B: "[~@4 [c4,e4]@10 ~@2 [f4,a4,c5]@46 ~@2 a5@4 g5@4 ~ a5@3 g5@4 f5@4 ~ g5@3 f5@4 e5@4 ~ f5@3 e5@4 d5@4 ~ c5@3 [c5,d5]@6 ~@3 c5@38 ~ [e5,g5] ~@2 [e5,g5] ~@2 [e5,g5] ~, ~@64 a4@48 g4@47 ~@9, ~@64 c5@45 ~@59]/7", // C F Csus2 Em
C: "~ [e5,g5] ~@2 [e5,g5]@4 ~@2 [d5,f5] ~@2 [d5,f5]@5 ~@2 [c5,e5]@3 ~", D: "~@17 [e5,g5] ~@2 [e5,g5] ~@2 [e5,g5]",
E: "~@2 [e5,g5] ~@2 [e5,g5]@4 ~@2 [d5,f5] ~@2 [d5,f5]@5 ~ [c5,e5]@3 ~", // Em Dm C
F: "[~@17 [c4,bb4,d5]@23 ~ [c4,e5,g5]@23 ~ [a4,f5]@24 [a4,eb5]@22 ~@9, ~@65 c5@46 ~@9]/5", // Gm C Dm Adim
G: "[~@19 [a3,c4,f4]@24 [d4,bb4]@24 ~@5]/3", H: "~@20 [e5,g5] ~@2 [e5,g5]",
I: "[~@2 [e5,g5] ~@2 [e5,g5] ~@2 [e5,g5]@4 ~@2 [d5,f5] ~@2 [d5,f5]@5 ~ [c5,e5]@3 ~@18 [e5,g5] ~@2 [e5,g5]]/2", // Em Dm C Em
J: "[~@2 [e5,g5] ~@2 [e5,g5] ~@2 [e5,g5]@4 ~@2 [d5,f5] ~@2 [d5,f5]@5 ~ [c5,e5]@3 ~@18 [bb4,d5]@24 [c4,e5,g5]@24 [a4,f5]@24 [a4,eb5]@22 ~@6, ~@22 c4@11 ~@13 c5@23 ~@3]/6", // Em Dm C Bb C Dm Adim
K: "~@19 [f5,ab5] ~@2 [f5,ab5] ~", // Fm
L: "[~ [f5,ab5] ~@2 [f5,ab5] ~@2 [f5,ab5]@4 ~@2 [eb5,gb5] ~@2 [eb5,gb5]@5 ~@2 [db5,f5]@3 ~@18 [f5,ab5] ~@2 [f5,ab5]]/2", // Fm Ebm Db Fm
M: "[~@2 [f5,ab5] ~@2 [f5,ab5] ~@2 [f5,ab5]@4 ~@2 [eb5,gb5] ~@2 [eb5,gb5]@5 ~ [db5,f5]@3 ~@18 [db4,b4,eb5]@24 [db4,f5,ab5]@24 ~ [bb4,gb5]@24 [bb4,e5]@23 ~@4, ~@93 db5@47 ~@4]/6", // Fm Ebm Db Abm Db Ebm Bbdim
N: "[[bb4,gb5]@12 [bb4,e5]@11 ~, db5@23 ~]/2", O: "[bb3,db4,gb4]@23 ~", P: "[b3,eb4]@11 ~",
})).s("gm_epiano2").gain(0.4)
// chords · acoustic guitar steel
const acoustic_guitar_steel = note(`<
~@6 A B C@2 D E@2 F G@2 H ~ I J K@2 L M N O P Q R S T U V@4 W@3 X Y@2 Z@4 ~ AA@3 AB AC@3 AD AE AF AG AH AI AJ AD AK AL
AM@2 AN AO AP@2 AQ@4 ~ AR AS AT AU AV AW AX@5 ~ AY@2 AZ BA AY BB BC BD AY BE BF BG BH BI ~ AY@2 AZ BJ ~@3 BK
>`.pickRestart({
A: "~@16 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@3", // F
B: "~ [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4] ~@4", // F
C: "~ [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@3", // F
D: "~ [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@7 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@3", // F C
E: "~ [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@3", // C
F: "~ [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 ~ [e4,g4,c5]@3 [e4,g4,c5]@2 ~@2", // C
G: "~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@2", // C
H: "~@2 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@14", I: "~@17 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@2",
J: "~@2 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4] ~@5 [a3,c4,f4]@3 [a3,c4,eb4]@3 [a3,c4,eb4]@2 ~@2", // F Adim
K: "[~@2 [a3,c4,eb4]@3 [a3,c4,eb4]@3 [a3,c4,eb4]@2 ~@4 [a3,c4,eb4]@3 [d4,f4,bb4]@3 ~@3 [d4,f4,bb4]@3 ~@3 [d4,f4,bb4]@3 ~@16]/2", // Adim Bb
L: "~@5 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 ~ [a3,c4,f4]@2 ~", // F
M: "~@3 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~", // F
N: "~@3 [a3,c4,f4]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~", // F C
O: "~@3 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~", // C
P: "~@3 [e4,g4,c5]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~", // C F
Q: "~@3 [a3,c4,f4]@3 [a3,c4,eb4]@3 [a3,c4,eb4]@2 ~@4 [a3,c4,eb4]@3 [a3,c4,eb4]@3 ~ [a3,c4,eb4]@2", // F Adim
R: "~@4 [a3,c4,eb4]@3 ~@17", S: "~@19 [a3,c4,f4]@3 [a3,c4,f4]@2",
T: "~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4] ~@5 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2", // F
U: "~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [e4,g4,c5]@3 [e4,g4,c5]@2", // F C
V: "[~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@7 [e4,g4,c5]@24 [a3,c4,f4]@24 [d4,bb4]@24 [a3,c4,f4]@3 [a3,c4,f4]@2]/4", // C F Gm F
W: "~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2", // F
X: "~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@7 [e4,g4,c5]@3 [e4,g4,c5]@2", // F C
Y: "[~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 ~ [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]]/2", // C
Z: "[~@5 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5] ~@12]/4", // C
AA: "[~@20 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,eb4]@3 [a3,c4,eb4]@2 ~@4 [a3,c4,eb4]@3 [a3,c4,eb4]@3 [a3,c4,eb4] ~@5 [a3,c4,eb4]@3 [d4,f4,bb4]@3 ~]/3", // F Adim Bb
AB: "~@2 [d4,f4,bb4]@3 ~@3 [d4,f4,bb4]@3 ~@13", // Bb
AC: "[~@8 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@5 [e4,g4,c5]@3 [e4,g4,c5]@3]/3", // F C
AD: "[e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3", // C
AE: "[e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3", // C F
AF: "[a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,eb4]@3 [a3,c4,eb4]@2 ~@4 [a3,c4,eb4]@3 [a3,c4,eb4]@3", // F Adim
AG: "[a3,c4,eb4] ~@5 [a3,c4,eb4]@3 ~@15", AH: "~@7 [a3,c4,f4]",
AI: "[a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3", // F
AJ: "[a3,c4,f4]@2 ~@4 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4] ~@5 [a3,c4,f4]@3 [e4,g4,c5]@3", // F C
AK: "[e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [e4,g4,c5]@3 [e4,g4,c5]@2 ~@4 [e4,g4,c5]@3 [a3,c4,f4]@3", // C F
AL: "[a3,c4,f4] ~@5 [a3,c4,f4]@3 [a3,c4,f4]@3 [a3,c4,f4] ~@5 [a3,c4,f4]@2 [bb3,db4,gb4]@3 [bb3,db4,gb4]", // F Gb
AM: "~@5 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4] ~@5 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]", // Gb
AN: "~@5 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 [bb3,db4,gb4] ~@5 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4] ~", // Gb
AO: "~@4 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4] ~@8 [f4,ab4,db5]@3 [f4,ab4,db5]@2", // Gb Db
AP: "~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2", // Db
AQ: "[~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 ~ [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@11]/4", // Db
AR: "~@7 [bb3,db4,gb4]", // Gb
AS: "[bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,e4]@3", // Gb Bbdim
AT: "[bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3 [bb3,db4,e4]@3 [bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3 [eb4,gb4,b4]@3", // Bbdim B
AU: "~ [eb4,gb4,b4] ~ [eb4,gb4,b4] ~@4", // B
AV: "~@10 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2", // Gb
AW: "~ [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2", // Gb
AX: "[~ [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 ~ [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,e4]@3 [bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3 [bb3,db4,e4]@3 [bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3 ~@13]/5", // Gb Db Gb Bbdim
AY: "[bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3", // Gb
AZ: "[f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5] ~@8", // Db
BA: "[f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@7", // Db
BB: "[bb3,db4,e4]@3 [bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3 [bb3,db4,e4]@3 [bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3", // Bbdim
BC: "[eb4,gb4,b4] ~ [eb4,gb4,b4] ~ [eb4,gb4,b4] ~@3", BD: "~@12 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3",
BE: "[bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3", // Gb Db
BF: "[f4,ab4,db5]@3 [f4,ab4,db5] ~@5 [f4,ab4,db5]@3 [f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3", // Db
BG: "[f4,ab4,db5]@3 [f4,ab4,db5]@2 ~@4 [f4,ab4,db5]@3 [bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3", // Db Gb
BH: "[bb3,db4,gb4]@3 [bb3,db4,gb4]@2 ~@4 [bb3,db4,gb4]@3 [bb3,db4,e4]@3 [bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3", // Gb Bbdim
BI: "[bb3,db4,e4]@3 [bb3,db4,e4]@2 ~@4 [bb3,db4,e4]@3 ~@12", BJ: "[f4,ab4,db5]",
BK: "~@6 [db5,gb5] ~@2 [db5,gb5] ~@2 [db5,gb5] ~@11", // Gb5
})).s("gm_acoustic_guitar_steel").gain(0.3)
// chords · acoustic guitar steel
const acoustic_guitar_steel_2 = note(`<
~@11 A B C D E@2 F@4 ~ G H I J K L M ~ N O ~@7 P Q@2 R S@2 T ~@6 U ~@3 V W ~ X Y@2 ~@8 Z@6 ~@4 AA ~@3 AB@2 ~@2 AC AD
~@5 AE AF ~@2 AG AH ~@2 AC AD ~@5
>`.pickRestart({
A: "~ c5@3 e5@3 c5@3 e5@3 c5@3 e5@3 c5@3 e5@2", B: "~ c5@3 d5@3 bb4@3 d5@3 bb4 ~@2 [e5,g5] ~@2 [e5,g5] ~@2 [e5,g5] ~",
C: "~ [e5,g5] ~@2 [e5,g5]@4 ~@2 [d5,f5] ~@2 [d5,f5]@5 ~@2 [c5,e5]@3 [c5,e5]", // Em Dm C
D: "~@2 [c5,e5] ~@2 [c5,e5]@5 ~ [bb4,d5]@3 [c5,e5]@3 [e5,g5] ~@2 [e5,g5] ~@2 [e5,g5]", // C Bb C Em
E: "[~@2 [e5,g5] ~@2 [e5,g5]@4 ~@2 [d5,f5] ~@2 [d5,f5]@5 ~ [c5,e5]@3 [c5,e5]@3 [c5,e5]@3 [c5,e5]@6 [d5,f5]@6 ~@7]/2", // Em Dm C Dm
F: "[~@17 [g4,c5]@24 f5@3 c5@3 f5@3 c5@3 f5@3 c5@3 f5@3 c5@3 eb5@3 c5@3 eb5@3 c5@3 eb5@3 c5@3 eb5@3 c5@3 ~@7]/4", // C5
G: "~@14 [d5,f5] ~@2 [d5,f5]@4 ~ [e5,g5]@2", H: "~@3 [e5,g5] ~@2 [e5,g5]@3 [f5,a5]@3 ~@3 [f5,a5]@3 [f5,a5]@6",
I: "~@2 c5 g4 e4 d5 c5 g4", J: "c5 d5@2 c5 g4 e4 d5 c5", K: "g4 e4 ~@6",
L: "~@6 a4@3 [c5,eb5]@6 a4@3 [c5,eb5]@3 ~ a4@2", M: "~ [c5,eb5]@3 ~@20", N: "~@19 [bb4,d5]@3 [a4,c5]@2",
O: "~@4 [bb4,d5]@3 [a4,c5]@3 ~@14", P: "~@11 e5", Q: "[~ f5@3 g5@6 ~ g5@6 g5@6 f5@6 e5@3 f5@6 e5@3 d5@3 ~@4]/2",
R: "~@23 [c5,e5]", S: "[~@2 [c5,e5] ~@2 [c5,e5] ~@2 [c5,e5]@6 [bb4,d5]@3 [c5,e5]@10 ~@20 [e5,g5]]/2",
T: "~@2 [e5,g5] ~@2 [e5,g5] ~@2 [e5,g5]@6 [c5,e5]@6 ~@4", U: "~@8 [bb4,d5]@3 [a4,c5] ~@5 [bb4,d5]@3 [a4,c5] ~@3",
V: "~@3 [f4,a4] [g4,bb4] ~ [f4,a4] [a4,c5]", W: "~@3 [g4,bb4]@3 [f4,a4] ~@17", X: "~@7 [bb4,d5]",
Y: "[[a4,c5] ~@5 [bb4,d5]@3 [a4,c5] ~@5 [f4,a4]@6 [e4,g4]@12 ~@15]/2", // Am Bb Am F Em
Z: "[~@23 [db5,f5]@2 ~ [db5,f5]@2 ~ [db5,f5]@2 ~ [db5,f5]@6 [eb5,gb5]@3 [f5,ab5]@11 ~@19 [db5,f5]@2 ~ [db5,f5]@2 ~ [db5,f5]@2 ~ [db5,f5]@6 [db5,f5] ~@5 [b3,eb4,gb4]@24 [ab3,db4,f4]@24 ~@4]/6", // Db Ebm Fm Db B Db
AA: "~@10 [b4,eb5]@3 [bb4,db5] ~@5 [b4,eb5]@3 [bb4,db5] ~", // B Bbm B Bbm
AB: "[~@11 [gb4,bb4]@3 [ab4,b4]@3 ~@3 [gb4,bb4]@3 [bb4,db5]@3 ~@3 [ab4,b4]@3 [gb4,bb4] ~@15]/2", // Gb Abm Gb Bbm Abm Gb
AC: "[b4,eb5]@3 [bb4,db5] ~@5 [b4,eb5]@3 [bb4,db5] ~@5 [gb4,bb4]@6", AD: "[f4,ab4] ~",
AE: "~@12 [b4,eb5]@3 [bb4,db5] ~@5 [b4,eb5]@3", AF: "[bb4,db5] ~@23", AG: "~@4 [gb4,bb4] [ab4,b4] ~ [gb4,bb4]",
AH: "[bb4,db5]@3 ~@3 [ab4,b4]@3 [gb4,bb4] ~@14", // Bbm Abm Gb
})).s("gm_acoustic_guitar_steel").gain(0.4)
// other · french horn
const french_horn = note("<~@2 A B C@3 ~@61 D E ~@36 F G H ~>".pickRestart({
A: "~@19 f5 ~@4", B: "~ f5@3 g5@3 f5@3 e5@3 d5 g4 ~@4 d5 ~@4",
C: "[~ d5@3 e5@3 d5@3 c5@3 bb4@3 d5@12 c5@12 d5@12 ~ e5@10 ~@9]/3", D: "~@19 ab4 ~ bb4 ab4 ~",
E: "gb4 f4 ~ gb4 f4 ~ eb4 db4@12 ~@5", F: "~@3 gb5 ~@5 gb5@3 ab5@3 gb5@3 f5@3 eb5 ab4 ~",
G: "~@3 eb5 ~@5 eb5@3 f5@3 eb5@3 db5@3 b4@3", H: "~@3 gb5 ~@5 gb5@3 ab5@3 gb5@3 f5@3 eb5 ~@2",
})).s("gm_french_horn").gain(0.4)
// chords · trombone
const trombone = note(`<
~@2 A@5 ~@13 B C ~ D E@2 ~@4 F G@2 H I J@2 K L M@3 N@8 O ~ P Q@2 ~@4 R S@2 T@4 ~@4 U@6 V@2 W ~ X Y@2 ~@5 Z ~@2 AA AB
AC ~ AD AE@2 ~@5 Z ~@2 AF AG AF AH
>`.pickRestart({
A: "[~@16 f3@15 ~@9 bb3@15 ~@15 c3@6 ~@6 c3@6 ~@6 c3@6 [c3,e4]@12 ~@8, ~@16 d4@3 c4@3 d4@3 ~@5]/5", // C
B: "~@17 [f4,bb4] ~@5 [f4,bb4]", C: "~@5 [f4,bb4] ~@18", D: "~@6 [bb4,d5]@3 [a4,c5] ~@5 [bb4,d5]@3 [a4,c5] ~@5",
E: "[[f4,a4] [e4,g4]@5 ~@2]/2", F: "~@19 [bb4,d5]@3 [a4,c5] ~",
G: "[~@4 [bb4,d5]@3 [a4,c5] ~@5 [d5,f5]@6 [c5,e5]@24 ~@5]/2", H: "~@22 [f4,a4] ~",
I: "~@4 [f4,a4]@3 [g4,bb4]@3 [f4,a4]@3 [e4,g4]@3 [d4,f4] ~@5 [g4,bb4] ~", // F Gm F Em Dm Gm
J: "[~@4 [g4,bb4]@3 [a4,c5]@4 [g4,bb4]@4 ~ [e4,g4]@3 [f4,a4]@24 ~@5]/2", K: "~@19 [d5,f5]@4 ~",
L: "[c5,e5]@4 [d5,f5]@3 [c5,e5]@4 ~ [bb4,d5]@4 [c5,e5]@3 [bb4,d5]@4 ~", // C Dm C Bb C Bb
M: "[[a4,c5]@4 [bb4,d5]@3 [a4,c5]@4 ~ [g4,bb4]@4 [f4,a4]@3 [g4,bb4]@9 [a4,c5]@3 [a4,c5]@24 ~@17]/3", // Am Bb Am Gm F Gm Am
N: "[~@23 g3@4 a3@4 ~ bb3@4 c4@4 ~ d4@3 e4@27 a3@4 bb3@4 ~ c4@4 d4@4 ~ e4@3 [d4,f4]@24 [e4,g4]@24 f4@3 a4@6 a4@3 bb4@3 a4@3 g4@3 f4@3 a4@24 [f4,bb4] ~@3]/8", // Dm Em Bb5
O: "~@2 [f4,bb4] ~@5 [f4,bb4] ~@15", P: "~@8 [bb4,d5]@3 [a4,c5] ~@5 [bb4,d5]@3 [a4,c5] ~@3",
Q: "[~ [f4,a4]@3 [e4,g4]@15 ~@5]/2", R: "~@7 [bb4,d5]",
S: "[[a4,c5] ~@5 [bb4,d5]@3 [a4,c5] ~@5 [d5,f5]@6 [c5,e5]@24 ~@3]/2", // Am Bb Am Dm C
T: "[~@21 [f3,c4]@6 [c4,f4]@6 [f4,c5]@6 [c5,f5]@5 gb5@7 ~@2 gb5 ~@2 gb5@4 ~@2 bb5@6 b5@3 bb5@3 ab5@3 gb5 ~@18]/4", // F5
U: "[~@23 ab3@4 bb3@4 ~ b3@4 db4@4 ~ eb4@3 f4@27 bb3@4 b3@4 ~ db4@4 ~ eb4@4 f4@3 [eb4,gb4]@24 [f4,ab4]@24 ~ gb4@3]/6", // Ebm Fm
V: "[bb4@6 bb4@3 b4@3 bb4@3 ab4@3 gb4@3 bb4@24 [gb4,b4] ~@2]/2", W: "~@3 [gb4,b4] ~@5 [gb4,b4] ~@14",
X: "~@10 [b4,eb5]@3 [bb4,db5] ~@5 [b4,eb5]@3 [bb4,db5] ~", Y: "[~@4 [gb4,bb4]@6 ~ [f4,ab4]@30 ~@7]/2",
Z: "[b4,eb5]@3 [bb4,db5] ~@5 [b4,eb5]@3 [bb4,db5] ~@5 [eb5,gb5]@6", AA: "~@3 bb4 b4 bb4 ab4 gb4", AB: "bb4",
AC: "[gb4,b4] ~@5 [gb4,b4] ~@5 [gb4,b4] ~@11", AD: "~@12 [b4,eb5]@3 [bb4,db5] ~@5 [b4,eb5]@3",
// … 151 more lines
More by Tony Orlando
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.