0:00/0:00
// Medley — James Last
// 103 bpm, 4/4, key D# major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 93 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(103/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
const bass = note(`<
~ A B C D E F G H I J K L M N O P I J K L M N O P Q R Q R S T U@2 V W X Y@2 Z Y AA AB AC AD AE AF AG AH AI AJ AK AL AI
AK@2 AL AC AD AE AF AG AH AM AN AO AN AP AQ AR AS AT AU AV AW AX AY AZ BA BB BC BD BE AX AY AZ BA BB BF BG BH BI BJ BK
>`.pickRestart({
A: "e1@7 ~ f1@7 ~", B: "ab1@3 ~ g1@3 ~ gb1@3 ~ f1@3 ~", C: "e1@3 ~ f1@3 ~ ab1@3 ~ g1@3 ~",
D: "gb1@3 ~ eb1@4 d1@4 a1@4", E: "ab1@3 ~ bb1@3 ~ g1@3 ~ bb1@3 ~", F: "bb1@3 ~ c2@3 ~ a1@3 ~ ab1@3 ~",
G: "g1@3 ~ gb1@3 ~ f1@3 ~ e1@3 ~", H: "eb2@2 ~@2 d2@2 ~@2 db2@2 ~@2 c2 ~ c2@2",
I: "b1@3 ~ b1@3 ~ bb1@3 bb1 c2@2 d2@2", J: "eb2@3 ~ bb1@3 ~ eb2@4 bb1@2 eb2@2",
K: "b1@3 ~ b1@3 ~ bb1@2 ~ bb1 c2@2 d2 ~", L: "eb2@3 ~ bb1@3 ~ eb2@2 ~@2 bb1 ~ eb2@2",
M: "a2@3 ~ a2@2 ~ ab2@4 ~ ab2@3 ~", N: "g2@4 g2@2 ~ gb2@4 ~ gb2@3 ~", O: "f2@3 ~ f2@3 ~ bb1@3 bb2 bb1@2 c2@2",
P: "eb2@3 ~ bb1@3 ~ eb2@3 ~ bb1@3 ~", Q: "gb1@3 ~ db2@4 gb1@2 ~ gb1 gb1@4", R: "eb2@3 ~ bb1@4 eb2@3 ~ bb1@2 eb2 bb1",
S: "a2@4 a2@3 ~ ab2@4 ab2@3 ~", T: "g2@4 g2@3 ~ gb2@4 gb2@3 ~",
U: "[f1@3 ~ f1@3 [ab1,a1] bb1 ~@3 bb1 ~ bb1 eb2@3 ~@2 bb1@2 ~@2 eb2@2 ~@2 bb1@2 ~@2]/2", // Amaj7
V: "eb2@2 ~@2 bb1@2 ~@2 eb2@2 ~@2 bb1@2 db2 ~", W: "eb2 ~ bb1 ~ eb2 ~ bb1 ~", X: "eb2 ~ bb1 ~ eb2@3 ~",
Y: "ab1@11 ~@5", Z: "db2@11 ~@5", AA: "eb2@3 ~", AB: "ab2@2 ~@2 db2@2 ~@2 e2 eb2 ~ d2@5",
AC: "ab1@2 ~ ab1 ab1@2 ~@2 ab1@2 ~ ab1 ab1@2 ~@2", AD: "ab1@2 ~ ab1 ab1@2 ~@2 ab1@2 ~ ab1!3 bb1 c2",
AE: "db2@2 ~ db2 db2@2 ~@2 db2@2 ~ db2!3 db2@2", AF: "ab1@2 ~ ab1 ab1@2 ~@2 ab1@2 ~ ab1!5",
AG: "eb2@2 ~ eb2 eb2@2 ~@2 eb2@2 ~ eb2!5", AH: "ab1@3 ~ db2@3 ~ f2 eb2 ~ ab1@4 ~",
AI: "ab1@3 ~ ab1@3 ~ db2@3 ~ eb2@3 ~", AJ: "ab1@2 ~@2 ab1@3 ~ db2@3 ~ eb2@2 ~@2",
AK: "ab1@3 ~ ab1@3 ~ db2@3 ~ eb2@2 ~@2", AL: "eb2@3 ~ eb2@3 ~ eb2 ~ c2 bb1 ~ ab1@2 ~",
AM: "bb1@2 ~ bb1 bb1@2 ~ bb1 bb1@2 ~ bb1 bb1@2 ~ bb1", AN: "bb1@2 ~ bb1!2 ~@2 bb1 bb1@2 ~ bb1!5",
AO: "eb2 ~@2 eb2@2 ~@2 eb2 eb2@2 ~ eb2!3 eb2@2", AP: "f2@2 ~ f2!2 ~@2 f2 f2@2 ~ f2!5",
AQ: "bb1@3 ~ eb2@3 ~ g2 f2 ~ bb1@4 ~", AR: "ab1@7 ~ a1@7 ~", AS: "c2@3 ~ b1@3 ~ bb1@3 ~ a1@3 ~",
AT: "ab1@3 ~ a1@3 ~ c2@3 ~ b1@3 ~", AU: "bb1@3 ~ ab1@4 f1@3 ~ d1@4", AV: "g2@2 ~@2 d2@3 ~ g2@2 ~@2 d2@2 ~@2",
AW: "g2@3 ~ d2@3 ~ g2@2 ~ g2 d2@2 ~@2", AX: "g2@3 ~ d2@3 ~ g2@3 ~ d2@3 ~", AY: "g2@4 d2@3 ~ c2@3 ~ g1@3 ~",
AZ: "f1@4 c2@3 ~ f1@3 ~ c2@3 ~", BA: "f1@4 f1 g1 ab1 a1 bb1@4 f1@3 ~", BB: "eb2@3 ~ bb1@3 ~ eb2@3 bb1 d2@3 ~",
BC: "g2@4 d2@3 ~ g2@4 d2@4", BD: "g2@2 d2@2 g2 ~@3", BE: "~@2 d2 ~ d2 d2@2 d2 ~@8", BF: "g2@4 d2@3 ~ g2@2 ~@6",
BG: "~@2 d2 ~ a1 a1@2 d2 ~@8", BH: "g1@3 ~ d2@4 g1@4 d2@4", BI: "g1@3 g1 d2@3 ~ g1@4 d2@4",
BJ: "g1@4 d2@3 ~ g1@4 d2@3 g1", BK: "~@4 f1@3 g1@2 ~@7",
})).s("gm_electric_bass_finger").gain(0.45)
// other · trombone
const trombone = note(`<
~ A B C D E F G H I J I K L M N@2 O P O Q L M N@2 R S R T U V W@2 X@3 Y@2 Z Y@2 AA ~@5 AB AC@3 ~ AC@3 ~@6 AB ~@5 AD
~@5 AE AF@2 AG@2 AH AI AJ AK AF@2 AG@2 AL AM AN AO AP AQ AR
>`.pickRestart({
A: "e2@7 ~ f2@7 ~", B: "ab2@3 ~ g2@3 ~ gb2@3 ~ f2@3 ~", C: "e2@3 ~ f2@3 ~ ab2@3 ~ g2@3 ~",
D: "gb2@3 ~ eb2@4 d2@4 a2@4", E: "ab2@3 ~ bb2@3 ~ g2@3 ~ bb2@3 ~", F: "bb2@3 ~ c3@3 ~ a2@3 ~ ab2@3 ~",
G: "g2@3 ~ gb2@3 ~ f2@3 ~ e2@3 ~", H: "eb3 ~ d3 ~ db3 ~ c3 ~", I: "~@4 gb4@2 ~ f4@6 ~@3",
J: "~@2 eb4 ~ bb3 ab3 ~ g3@6 ~@3", K: "~@2 eb4 ~ bb3 ab3 ~ g3@6 c4 ~ c4", L: "c4 ~ c4 ~ c4 ~ c4 b3@4 ~@3 b3 ~",
M: "bb3 ~ bb3 ~ bb3 ~ bb3 ~ a3 ~ a3 a3@2 ~ a3 ~", N: "[ab3 ~ eb3 eb3@4 ~@5 bb4 ~ bb4 bb4@8 ~@9]/2",
O: "~@3 b3 eb4 gb4 f4 eb4 d4@4 ~@4", P: "~@3 bb3 d4 f4 eb4 d4 eb4@4 ~@4", Q: "~@3 bb3 d4 f4 eb4 d4 eb4@4 ~ c4 ~ c4",
R: "gb4@15 ~", S: "g4@15 ~", T: "g4@13 eb3@2 ~", U: "eb3 ~@4 eb3@2 ~ eb3 ~@7", V: "d3 ~@3 d3 ~@3 d3@2 db3 c3@4 ~",
W: "[~@12 bb2 ~ bb2 eb2@3 ~@2 bb1@2 ~@2 eb2@2 ~@2 bb1@2 ~@2]/2", X: "eb2 ~ bb1 ~ eb2 ~ bb1 ~", Y: "eb3@3 ~",
Z: "ab2@3 ~", AA: "eb3@3 ~ f3@2 ~@2 e3 eb3 ~ d3@3 ~@2", AB: "~@8 eb3!2 ~ eb3@4 ~", AC: "ab3 f3 ~ ab3@3 ~@10",
AD: "~@8 f3!2 ~ f3@4 ~", AE: "~@11 d3 g3 ~ a3 ~", AF: "[a3@3 b3@6 ~ d3!2 g3 a3 ~ bb3@8 ~@4 c3 f3 ~ g3 ~]/2",
AG: "[g3@3 a3@6 ~ c3!2 f3 g3 ~ ab3@9 ~@8]/2", AH: "eb3 ~ bb2 ~ eb3 ~ d3 ~", AI: "g3 ~ d3 ~ g3 ~ d3 ~",
AJ: "g3 ~ d3 ~ g3 ~@3", AK: "~@2 d3 ~ d3 d3@2 d3 ~@3 d3 g3 ~ a3 ~", AL: "eb3@3 ~ bb2@3 ~ eb3@3 bb2 d3@3 ~",
AM: "g3@4 d3@3 ~ g3@2 ~@6", AN: "~@2 d3 ~ a2!2 ~ d3 ~@8", AO: "g2@3 ~ d3@4 g2@4 d3@4",
AP: "g2@3 ~ d3@3 ~ g2@4 d3@3 ~", AQ: "g2@4 d3@3 ~ g2@4 d3@3 g2", AR: "~@4 f2@3 g2@2 ~@7",
})).s("gm_trombone").gain(0.52).pan(0.8)
// other · trombone · soft notes
const trombone_soft = note("<~@42 A B C B D E ~@8 A B C B D E F G H G C I ~@25>".pickRestart({
A: "eb3@7 ~", B: "gb3@7 ~", C: "f3@15 ~", D: "eb3@15 ~", E: "eb3@3 ~ eb3@3 ~@9", F: "f3@7 ~", G: "ab3@7 ~",
H: "g3@15 ~", I: "f3@3 ~ f3@3 ~@9",
})).s("gm_trombone").gain(0.32).pan(0.8)
// chords · synth strings 1
const synth_strings_1 = note("<~@31 A@2 B@2 C ~@38 D E F G H I@2 J D E F G H K ~@5>".pickRestart({
A: "[~@15 [g3,bb3,eb4]@5 [f3,ab3,db4]@4 [g3,bb3,eb4]@4 [f3,ab3,db4]@4]/2", // Eb Db Eb Db
B: "[g3,bb3,eb4] [f3,ab3,db4] [g3,bb3,eb4] [f3,ab3,db4]", C: "[g3,bb3,eb4]", D: "[b3,d4,g4]@15 ~",
E: "[bb3,d4,g4]@7 ~ [g3,bb3,c4,e4]@7 ~", F: "[a3,c4,f4]@15 ~", G: "[ab3,c4,f4] [ab3,bb3,d4,f4]",
H: "[bb3,eb4,g4]@11 ~ [a3,d4,gb4]@4", I: "[[bb3,d4,g4]@11 ~ [a3,a4]@3 ~ [b3,g4]@9 ~@7, ~@3 d4@3 ~@2]/2",
J: "~@2 [c4,e4,g4] ~ [c4,e4,g4]!2 ~ [a3,d4,gb4]@3 ~@6", K: "[b3,d4,g4]@9 ~@7",
})).s("gm_synth_strings_1").gain(0.26).pan(0.6)
// other · alto sax
const alto_sax = note(`<
~@5 A B C D E F E G H I J@2 E F E G K ~@5 L M N O P ~@4 Q@2 R Q S T Q@2 R Q S U V@3 W V@3 W Q@2 R Q S U X@2 S X Y Z
~@10 AA@3 AB AC@2 AD@2 AE@2 AF@5
>`.pickRestart({
A: "~@2 eb4 ~ bb4@2 a4 ab4 g4@2 e4@5 ~", B: "~@2 e4 ~ bb4@2 a4 g4 f4@7 ~", C: "eb4@7 ~ d4@7 ~",
D: "g4@3 ~ gb4@3 ~ f4@2 ~@2 e4@2 ~@2", E: "eb4@6 ~ d4@6 ~@3", F: "eb4@3 ~@5", G: "eb4@6 ~@7 eb4@2 eb4",
H: "eb4 ~ eb4 ~ eb4@2 eb4 eb4@5 ~@2 eb4@2", I: "f4 ~ f4 ~ f4 ~ f4 ~ f4@2 e4 eb4@3 d4 ~",
J: "[c4@2 b3 bb3@8 ~ eb4 ~ eb4 eb4@8 ~@9]/2", K: "eb4 ~ eb4 ~ eb4@2 eb4 eb4@5 ~@4",
L: "bb4 b4 ~ bb4 b4 ~ bb4 b4 ~ bb4@6 ~", M: "~@13 [c4,eb4]@2 ~", N: "[c4,eb4] ~@4 [c4,eb4]@2 ~ [b3,eb4] ~@7",
O: "[bb3,d4] ~@3 [bb3,d4] ~@3 [a3,f4]@2 [a3,e4] [a3,eb4]@4 ~", P: "c4@8 bb3 ~@7",
Q: "c4 eb4 ab4 c4 eb4 ab4 c4 eb4 ab4 c4 eb4 ab4@2 ~@3", R: "db4 f4 ab4 db4 f4 ab4 db4 f4 ab4 db4 f4 ab4@2 ~@3",
S: "eb4 g4 bb4 eb4 g4 bb4 eb4 g4 bb4 eb4 g4 bb4@2 ~@3",
T: "[eb4,ab4] ~ [eb4,ab4]!2 [f4,ab4] ~ [f4,ab4]!2 [e4,ab4] [eb4,ab4] ~ [d4,ab4]@2 ~@3", // Ab5 Fm E Ab5 Ddim
U: "[eb4,ab4] ~ [eb4,ab4]!3 ~ [eb4,ab4]!4 ~ [eb4,ab4]@2 ~@3", V: "ab4 f4 ~ [eb4,ab4]@3 ~@10, eb4 ~@7",
W: "eb4!9 b3 ~ bb3@2 ~@3", X: "d4 f4 bb4 d4 f4 bb4 d4 f4 bb4 d4 f4 bb4@2 ~@3",
Y: "f4 a4 c5 f4 a4 c5 f4 a4 c5 f4 a4 c5@2 ~@3", Z: "[f4,bb4] ~ [f4,bb4]!3 ~ [f4,bb4]!4 ~ [f4,bb4]@2 ~@3",
AA: "[eb4 ~ eb4!4 ~ eb4 ~@3 eb4 d4 eb4 d4 g4@9 ~@3 eb4 d4 e4 d4 g4@9 ~@8]/3",
AB: "~@2 g4 ~ g4!2 ~ gb4 ~@3 d4 g4 ~ a4 ~", AC: "[a4@3 b4@6 ~ d4!2 g4 a4 ~ bb4@8 ~@4 c4 f4 ~ g4 ~]/2",
AD: "[g4@3 a4@6 ~ c4!2 f4 g4 ~ ab4@9 ~@8]/2", AE: "[eb4 ~ eb4!4 ~ eb4 ~@3 eb4 d4 e4 d4 g4@9 ~@8]/2",
AF: "[~@2 gb4 ~ e4!2 ~ gb4 ~@2 d5 ~ f5 d5 c5 d5@9 ~@2 d5 ~ f5 d5 c5 d5@9 ~@2 d5 ~ f5 d5 c5 d5@9 ~@2 d5 ~ f5 d5 c5 d5@2 ~@3 f5@2 ~ g5 ~@8]/5",
})).s("gm_alto_sax").gain(0.52).pan(0.7)
// chords · percussive organ
const percussive_organ = note(`<
~@9 A B C D E F G H A B C D E F G H I J K L M N O P@2 Q R ~@6 S T U@2 V W X@3 ~ X@3 ~ S T U@2 V W Y Z AA@2 AB AC AD AE
AF AG AH AI AJ AK AL AM AN AO@2 AP AQ AK AL AM AR@2 AS AT AU ~@2
>`.pickRestart({
A: "~ ab6 eb6!2 b5@2 ~ [db6,d6] ~ f6@6 ~", B: "~ bb5 ~ c6 [db6,d6]!2 ~ d6@5 ~@4, ~@7 db6 ~@8",
C: "~ b5 eb6 gb6 bb6 gb6 eb6 b5 [db6,d6] f6@2 ~@5, ~@9 d6 ~@6", D: "bb5@6 ~ bb5 [db6,d6] bb5@2 ~@5",
E: "~ a5 c6 eb6 g6 eb6 c6 a5 ~@3 ab5 b5 eb6 gb6 ~",
F: "~ g5 bb5 g5 d6!2 ~@3 [gb5,a5,c6] ~ gb5 [gb5,a5,c6] ~ [gb5,a5,c6] ~", // Gbdim
G: "[c6,f6] ~ f6 g6 ab6@2 c6 [d6,f6]@3 d6 ~@5, ~ c6@4 ~@11", H: "~ d6 bb5 c6 d6@2 bb5 [db6,d6] ~ bb5 d6@2 bb5 ~@3",
I: "[bb5,db6]@14 ~ bb5", J: "[bb5,eb6]@9 [bb5,eb6] ~ bb5 [bb5,eb6]@3 ~", K: "[bb5,db6]@12 ~ [bb5,db6] ~@2",
L: "[bb5,eb6]@9 ~ [bb5,eb6] ~ [bb5,eb6]!2 ~@2", M: "g6 b6", N: "bb6@8 a6 ~ [d6,e6,f6,g6] [g5,a5,b5,c6] f5 ~@3",
O: "[c5,eb5,ab5] ~ [c5,eb5,ab5]!2 ~ [c5,eb5,ab5] ~ [bb4,d5,f5,ab5]@2 ~@7", // Ab Bb7
P: "[~@9 [c6,db6]!2 ~ [c6,db6]!2 ~ db6@2 bb5 db6@6 ~ [bb5,db6] [eb6,e6] f6 [e6,f6] f6@2 ~, ~@15 c6 ~@13 e6 ~@2]/2", // Dbmaj7 Bbm Emaj7 Fmaj7
Q: "[e6,f6]!3 f6@10 [c6,db6] c6 db6", R: "bb5@5 ab5 ~ [a5,bb5] eb5@6 ~@2",
S: "[ab5,c6,eb6]@2 [ab5,c6] ~ [ab5,c6] [ab5,c6,eb6] ~ [ab5,c6] ~@2 [ab5,c6,eb6] ~@5, ~@2 eb6@2 ~@3 eb6@2 ~@7", // Ab
T: "~ [ab5,c6,eb6] ~ ab5 [ab5,c6] ~@2 [ab5,c6,eb6,gb6] ~ [ab5,c6,eb6,gb6] ~ [c6,eb6,gb6]@2 ab5 [ab5,c6,eb6] ~, ~@4 eb6@2 ~@5 ab5 ~@4", // Ab Ab7 Cdim Ab
U: "[~@2 [ab5,b5,db6,f6] ~@2 [ab5,b5,db6,f6] ~@2 [ab5,b5,db6,f6]@2 ~ [ab5,b5,db6] ~@3 c6@2 ab5 ~ ab5 ~@2 c6 ~ ab5!2 c6 db6 d6 eb6 ~@2, ~@11 f6@2 ~@2 b5 ~@16]/2", // Db7
V: "[bb5,db6,eb6,g6] ~@2 [bb5,db6,eb6,g6] ~@2 [bb5,db6,eb6,g6]@3 ~ [bb5,db6,eb6,g6] ~@2 [bb5,db6,eb6,g6] ~@2", // Eb7
W: "[ab5,c6,eb6]@3 ~ [ab5,b5,db6]@2 ~@2 [ab5,f6] [ab5,eb6,f6] ~ [ab5,c6,eb6]@3 ~@2, ~@4 b5 ~@3", // Ab Db7 Db Fm7 Ab
X: "~@2 [ab5,c6,eb6] ~@3 [ab5,c6,eb6] ~@3 [ab5,b5,db6,f6] ~@3 [ab5,b5,db6,f6] ~", // Ab Db7
Y: "[bb5,d6,f6]@2 [bb5,d6] ~ [bb5,d6] [bb5,d6,f6] ~ [bb5,d6] ~@2 [bb5,d6,f6] ~@5, ~@2 f6@2 ~@3 f6@2 ~@7", // Bb
Z: "~ [bb5,d6,f6] ~ bb5 [bb5,d6] ~@2 [bb5,d6,f6,ab6] ~ [bb5,d6,f6,ab6] ~ [d6,f6,ab6]@2 bb5 [bb5,d6,f6] ~, ~@4 f6@2 ~@5 bb5 ~@4", // Bb Bb7 Ddim Bb
AA: "[~@2 [bb5,db6,eb6,g6] ~@2 [bb5,db6,eb6,g6] ~@2 [bb5,db6,eb6,g6]@2 ~ [bb5,db6,eb6] ~@3 d6@2 bb5 ~ bb5 ~@2 d6 ~ bb5!2 d6 eb6 e6 f6 ~@2, ~@11 g6@2 ~@2 db6 ~@16]/2", // Eb7
AB: "[c6,eb6,f6,a6] ~@2 [c6,eb6,f6,a6] ~@2 [c6,eb6,f6,a6]@3 ~ [c6,eb6,f6,a6] ~@2 [c6,eb6,f6,a6] ~@2", // F7
AC: "[bb5,d6,f6]@3 ~ [bb5,db6,eb6]@2 ~@2 [bb5,g6] [bb5,f6,g6] ~ [bb5,d6,f6]@3 [db6,d6] d6, ~@4 db6 ~@3", // Bb Eb7 Eb Gm7 Bb Dmaj7
AD: "d6 ~ d6 ~ d6 ~ [db6,d6] d6 a6 d6 ~ d6@2 ~ [db6,d6] d6", // Dmaj7
AE: "d6 ~ d6 ~ [db6,d6] d6 ~ d6@3 ~@3 d5@2 ~, ~@7 db6 ~@5 db5 ~@2", // Dmaj7
AF: "d5 ~ d5 ~ d5@2 db5 d5 a5 [ab5,a5] ~ g5@2 d5@2 ~", AG: "[db5,d5] ~ d5 ~ d5!2 ~ d5@4 [a4,b4,c5] g4 ~@3",
AH: "~ [d4,g4] [g5,c6,f6] [d4,g4] [g5,c6,f6]!2 ~ [c6,f6]@2 [d4,g4] [g5,c6,f6] [d4,g4] [g5,c6,f6] g5 [d4,g4] [g5,c6,f6], ~@7 g5 ~@8", // G5 Csus4 G5 Csus4 F5 G5 Csus4 G5 …
AI: "~@2 [d4,g4] ~ [g5,c6,f6]!2 [d4,g4] [g5,c6,f6] ~ [d4,g4] [g5,c6,f6] [d4,g4] [g5,c6,f6]!2 [a5,b5] [d5,e5,f5]", // G5 Csus4 G5 Csus4 G5 Csus4 G5 Csus4 …
AJ: "[b4,c5] [d4,g4] [b4,d5,g5] [d4,g4] ~ [d4,g4] [b4,d5,g5] [d4,g4] ~ [d4,g4] [b4,d5,g5] [d4,g4] ~ [d4,g4] [b4,d5,g5] [d4,g4]", // Cmaj7 G5 G G5 G G5 G G5 …
AK: "~ [d4,g4] [bb4,d5,g5] [d4,g4] ~ [d4,g4] [bb4,d5,g5] [d4,g4] ~ [c4,g4] [c5,e5,g5] [c4,g4] ~ [c4,g4] [c5,e5,g5] [c4,g4]", // G5 Gm G5 Gm G5 C5 C C5 …
AL: "~ [c4,f4] [a4,c5,f5] [c4,f4] ~ [c4,f4] [a4,c5,f5] [c4,f4] ~ [c4,f4] [a4,c5,f5] [c4,f4] ~ [c4,f4] [a4,c5,f5] [c4,f4]", // F5 F F5 F F5 F F5 F …
AM: "~ [c4,f4] [ab4,c5,f5] [c4,f4] ~ [c4,f4] [ab4,c5,f5] [c4,f4] ~ [bb3,f4] [ab4,d5,f5] [bb3,f4] ~ [bb3,f4] [ab4,d5,f5] [bb3,f4]", // F5 Fm F5 Fm F5 Bb5 Ddim Bb5 …
AN: "[g4,bb4,eb5]@3 [gb4,a4,d5]", AO: "[[bb4,d5,g5]@10 ~@2 [a4,d5,a5] a4 [a4,d5,a5] [b4,d5,g5]@8 ~@9]/2",
AP: "~@2 [g4,c5,e5] ~ [c5,e5,g5]!2 ~ [a4,d5,gb5] ~@8", // C D
AQ: "~ [d4,g4] [b4,d5,g5] [d4,g4] ~ [d4,g4] [b4,d5,g5] [d4,g4] ~ [d4,g4] [b4,d5,g5] [d4,g4] ~ [d4,g4] [b4,d5,g5] [d4,g4]", // G5 G G5 G G5 G G5 G …
AR: "[[g4,bb4,eb5]@9 ~@3 [a4,d5,a5] a4 [a4,d5,a5] [b4,d5,g5]@8 ~@9]/2", // Eb D5 G
AS: "~@2 [a4,d5,gb5] ~ [c5,e5,g5]!2 ~ [d5,gb5,a5] ~@8", // D C D
AT: "~@2 [d5,g5,b5] ~@2 [c5,f5,a5] ~@2 [d5,g5,b5] ~@2 [c5,f5] ~ c5 [b3,c4,c5,f5,a5] [d4,e4,f4,g4,a4], ~@11 a5@2 ~@3", // G F G F5 F Dm
AU: "[b4,c5,d5,e5,f5,g5] [a5,b5,c6,d6,e6] [f6,g6]!10 [d6,e6] [f5,g5,a5,b5,c6] [g4,a4,b4,c5,d5,e5] ~", // Cmaj7 Am Fsus2 Dsus2 F Cmaj7
})).s("gm_percussive_organ").gain(0.32).pan(0.3)
// chords · electric guitar jazz
const electric_guitar_jazz = note(`<
~@9 A B C D E F G H A B C D E F G H I J K L M N O P Q R S T U V W X Y Z AA AB Z AC AD AE@3 AF AE@3 AF Z AA AB Z AC AD
AG AH AI AG AJ AK ~@4 AL@2 AM AN AO AP AQ ~@2 AR AM AN AO AP AQ ~ AS AT@2 AU AV
>`.pickRestart({
A: "[b3,eb4] ~ [b3,eb4,gb4] ~ b3 [b3,eb4,gb4] ~ [bb3,d4,f4]@2 ~ [bb3,d4,f4] ~ bb3 [bb3,d4,f4] ~@2", // B Bb
B: "~@2 [bb3,d4,eb4,g4] ~@2 [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ bb3 [bb3,d4,eb4,g4] ~ bb3 [bb3,d4,eb4,g4] ~@2", // Ebmaj7
C: "[b3,eb4,gb4] ~ [b3,eb4,gb4] ~@2 [b3,eb4,gb4] ~ [bb3,d4,f4]@2 bb3 [bb3,d4,f4] ~@2 [bb3,d4,f4] ~@2", // B Bb
D: "[bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~@2 [bb3,d4,eb4,g4] ~ bb3 [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~ [bb3,d4,eb4,g4] ~", // Ebmaj7
E: "a3@2 [c4,eb4,g4] ~ a3 [a3,c4,eb4] ~ [ab3,b3,eb4,gb4] ~ ab3 [ab3,b3,eb4,gb4] ~ ab3 [ab3,b3,eb4,gb4]@2 ab3, c4 ~@15", // Cm Adim Abm7
F: "[g3,bb3,d4,f4] ~ [g3,bb3,d4,f4] ~ g3 [g3,bb3,d4,f4] ~@2 f4 ~ e4 eb4@2 ~ d4 ~, ~@8 [gb3,a3,c4]@7 ~", // Gm7 Gbdim
G: "[f3,ab3,c4,eb4]@3 [f3,ab3,c4,eb4] ~@3 [f3,ab3,bb3,d4]@3 ~ [f3,ab3,bb3,d4] ~@2 [f3,ab3,bb3,d4] ~", // Fm7 Bb7
H: "~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4]@2 ~ [bb3,eb4,g4] ~ [bb3,eb4,g4] ~ bb3 [bb3,eb4,g4] ~@2", // Eb
I: "~@2 [bb3,db4,gb4] ~ bb3 [bb3,db4,gb4] ~ gb4 ~ bb3 [bb3,db4,gb4] ~@2 [bb3,db4,gb4] ~@2", // Gb
J: "~@2 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~@3 bb3 [bb3,eb4,g4] ~@2 [bb3,eb4,g4] ~ bb3", // Eb
K: "~ bb3 [bb3,db4,gb4] ~ [bb3,gb4] [bb3,db4,gb4] ~ [bb3,db4,gb4] ~ bb3 [bb3,db4,gb4] ~@2 [bb3,db4,gb4] ~@2", // Gb Ebm Gb
L: "~@2 [bb3,eb4,g4] ~ bb3 [bb3,eb4,g4] ~@4 [bb3,eb4,g4] ~ bb3 [bb3,eb4,g4] ~@2", // Eb
M: "[a3,c4,eb4,g4] [ab3,b3,eb4,gb4]", N: "[g3,bb3,d4,f4] [gb3,a3,c4,eb4,f4]",
O: "[f3,ab3,c4,eb4]@8 [f3,ab3,bb3,d4] ~@7", // Fm7 Bb7
P: "eb3@2 [g3,bb3,eb4] g3 eb3 [f3,ab3,db4] ~ f3 eb3 [g3,bb3,eb4] ~ [f3,ab3,db4]@2 eb3 [f3,ab3,db4] f3", // Eb Db Eb Db
Q: "eb3@2 [g3,bb3,eb4] g3 eb3 [f3,ab3,db4] ~ f3 eb3 [g3,bb3,eb4] ~ [f3,ab3,db4] ~ eb3 [f3,ab3,db4] f3", // Eb Db Eb Db
R: "eb3@2 [g3,bb3,eb4] g3 eb3 [f3,ab3,db4] ~ f3 eb3 [g3,bb3,eb4] ~ [f3,ab3,db4] ab3 eb3 [f3,ab3,db4] f3", // Eb Db Eb Db
S: "eb3@2 [g3,bb3,eb4] g3 eb3 [f3,ab3,db4] ~ f3 eb3 [g3,bb3,eb4] ~ [g3,bb3,eb4]@2 eb3 [g3,bb3,eb4] ~", // Eb Db Eb
T: "[ab3,c4,eb4]@7 ~", U: "[ab3,gb4]@15 ~, [c4,eb4]@13 ~@3", V: "[ab3,f4]@15 ~, [b3,db4]@13 ~@3",
W: "[ab3,c4,eb4]@13 ~@3", X: "[g3,bb3,eb4]@13 ~@3",
Y: "[ab3,c4,eb4]@3 ~ [ab3,db4,f4]@2 ~@2 [ab3,c4,e4] [ab3,c4,eb4] ~ [ab3,b3,d4]@4 ~", // Ab Db Abaug Ab Abdim
Z: "~@2 [eb4,ab4,c5,eb5] ~@3 [eb4,ab4,c5,eb5] ~@3 [eb4,ab4,c5,eb5] ~@3 [eb4,ab4,c5,eb5] ~", // Ab
AA: "~@2 [gb4,ab4,c5,eb5] ~@3 [gb4,ab4,c5,eb5] ~@3 [gb4,ab4,c5,eb5] ~@3 [gb4,ab4,c5,eb5] ~", // Ab7
AB: "~@2 [f4,ab4,db5,f5] ~@3 [f4,ab4,db5,f5] ~@3 [f4,ab4,db5,f5] ~@3 [f4,ab4,db5,f5] ~", // Db
AC: "~@2 [eb4,g4,bb4,eb5] ~@3 [eb4,g4,bb4,eb5] ~@3 [eb4,g4,bb4,eb5] ~@3 [eb4,g4,bb4,eb5] ~", // Eb
AD: "[ab3,c4,eb4]@4 [ab3,b3,db4]@3 ~ [ab3,db4,f4] [db4,eb4] ~ [ab3,c4,eb4]@4 ~", // Ab Db7 Db Dbsus2 Ab
AE: "~@2 [ab3,c4,eb4] ~@2 [ab3,c4,eb4] ~ [ab3,c4,eb4] ~@2 [ab3,b3,db4,f4] ~ ab3 [ab3,b3,db4,f4]@2 ab3", // Ab Db7
AF: "[g3,bb3,eb4]@2 [g3,bb3,eb4]!3 ~ [g3,bb3,eb4]!3 ~ [b3,d4] [bb3,db4]@4 ~, ~@10 g3@5 ~", // Eb Bm Bbm
AG: "~@2 [f4,bb4,d5,f5] ~@3 [f4,bb4,d5,f5] ~@3 [f4,bb4,d5,f5] ~@3 [f4,bb4,d5,f5] ~", // Bb
AH: "~@2 [ab4,bb4,d5,f5] ~@3 [ab4,bb4,d5,f5] ~@3 [ab4,bb4,d5,f5] ~@3 [ab4,bb4,d5,f5] ~", // Bb7
AI: "~@2 [g4,bb4,eb5,g5] ~@3 [g4,bb4,eb5,g5] ~@3 [g4,bb4,eb5,g5] ~@3 [g4,bb4,eb5,g5] ~", // Eb
AJ: "~@2 [f4,a4,c5,f5] ~@3 [f4,a4,c5,f5] ~@3 [f4,a4,c5,f5] ~@3 [f4,a4,c5,f5] ~", // F
AK: "[bb3,d4,f4]@4 [bb3,db4,eb4]@3 ~ [bb3,eb4,g4] [eb4,f4] ~ [bb3,d4,f4]@4 ~", // Bb Eb7 Eb Ebsus2 Bb
AL: "~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~@2 [g4,b4,d5] ~", // G
AM: "~@2 [b3,d4,g4] ~@2 [b3,d4,g4] ~@2 [b3,d4,g4] ~@2 [d4,g4] ~ [b3,d4,g4] ~ [b3,d4,g4]", // G G5 G
AN: "~@2 [bb3,d4,g4] ~@2 [bb3,d4,g4] ~@3 [bb3,c4,e4,g4] ~ [bb3,c4,e4,g4] ~@2 [bb3,c4,e4,g4] ~", // Gm C7
AO: "~@2 [a3,c4,f4] ~@2 [a3,c4,f4] ~ [a3,c4,f4] ~@2 [a3,c4,f4] ~@2 [a3,c4,f4] ~ [a3,c4,f4]", // F
AP: "~@2 [ab3,c4,f4] ~@2 [ab3,c4,f4] ~@4 [f3,ab3,bb3,d4] ~@2 [f3,ab3,bb3,d4] ~ [f3,ab3,bb3,d4]", // Fm Bb7
AQ: "[g3,eb4]@2 g3 ~ [g3,d4]@2 ~ [g3,c4]@4 ~@5", AR: "~@2 [g4,c5,e5] ~ [c5,e5,g5]!2 ~ [a4,d5,gb5] ~@8",
AS: "~@2 [gb4,a4,d5] ~ [g4,c5,e5]!2 ~ [a4,d5,gb5] ~@8", // D C D
AT: "[d4,g4,b4]@3 ~ [c4,f4,a4]@3 ~ [d4,g4,b4]@3 ~ [c4,f4,a4]@3 ~", // G F G F
AU: "[d4,g4,b4]@3 ~ [c4,f4,a4]@3 ~ [d4,g4,b4]@3 ~ [c4,f4,a4]@2 ~ [d4,g4,b4]", // G F G F G
AV: "~@4 [c4,f4,a4]@2 ~ [d4,g4,b4]@2 ~@7", // F G
})).s("gm_electric_guitar_jazz").gain(0.26).pan(0.6)
// other · brass section
const brass_section = note(`<
~ A B C D E F G H I J I J K L M N O P O P K L M N Q R S T U V W@2 ~@3 X@2 Y X Z AA X@2 Y X Z AB AC@2 AD ~ AD@3 ~ X@2 Y
X Z AB AE@2 Z AE AF AG ~@10 AH@3 AI ~@4 AJ@2 AK ~@4
>`.pickRestart({
// … 157 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.