0:00/0:00
// Paper Sun — Traffic
// 128 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: Full arrangement: all 142 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(128/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.
// chords · piano · "A.PIANO 2"
const piano = note(`<
~ A B C D E F C D G H I J K L M N O P I Q R L S N ~@8 A B C D E F C D G H I J K L M N O P I Q R L S N ~@8 A B C D E F
C D A B C D E F C D T U V W G H I J K L M N O P I Q R L S N ~@8 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AN AO AP
AQ AR AS AH AT AU AV AW AX AU AY AZ@2 ~
>`.pickRestart({
A: "~@4 [a4,d5]@3 ~@3 [c5,d5]@3 ~@3", B: "[b4,f5]@3 ~@3 [a4,d5]@6 ~@4", C: "~@4 [a4,d5]@4 ~@2 [c5,d5]@3 ~@3",
D: "[b4,f5]@4 ~@2 [a4,d5]@7 ~@3", E: "~@2 [a4,d5]@2 ~ [c5,d5]@2 ~", F: "b4@6 [a4,d5]@7 ~@3, f5 ~@3",
G: "[g4,b4]@2 d4@2 [g4,b4] ~ [a4,c5] ~ [b4,d5]@2 ~@2 [b4,d5]@2 [a4,c5] ~", // G Am Bm Am
H: "b4@2 d4@2 [g4,b4] ~ [a4,c5] ~ d5@2 ~@2 b4@2 ~@2, g4 ~@7 b4 ~@3 g4 ~@3", // G Am
I: "b4@2 e4 ~ [g#4,b4] ~ [a4,c#5] ~ [b4,d5]@2 ~@2 [b4,d5] ~ [a4,c#5] ~, g#4 ~@15", // G#m A Bm A
J: "b4@2 e4@2 b4@2 [a4,c#5] ~ [b4,d5] ~@3 g#4@2 ~@2, g#4 ~@3 g#4 ~@7 b4 ~@3", // A Bm
K: "a#4@2 d4 ~ [g4,a#4] ~ [a4,c5] ~ [a#4,d5]@2 ~@2 [a#4,d5] ~ [a4,c5] ~, g4 ~@15", // Gm Am A# Am
L: "[g4,a#4]@2 d4@2 [g4,a#4] ~ [a4,c5] ~ [a#4,d5] ~@3 a#4@2 ~@2, ~@12 g4 ~@3", // Gm Am A#
M: "[f#4,a4]@2 d4@2 [f#4,a4]@2 [g4,a#4] ~ [a4,c5]@2 ~@2 [a4,c5] ~ [g4,a#4] ~", // F#m Gm Am Gm
N: "a4@2 d4@2 [f#4,a4] ~ [g4,a#4] ~ [a4,c5] ~@3 a4@2 ~@2, f#4 ~@11 f#4 ~@3", // F#m Gm Am
O: "b4@2 d4@2 [g4,b4] ~ [a4,c5] ~ [b4,d5]@2 ~@2 d5@2 [a4,c5] ~, g4 ~@11 b4 ~@3", // G Am Bm Am
P: "b4@2 d4@2 [g4,b4] ~ [a4,c5] ~ [b4,d5] ~@3 b4@2 ~@2, g4 ~@11 g4 ~@3", // G Am Bm
Q: "b4@2 e4@2 [g#4,b4] ~ [a4,c#5] ~ [b4,d5] ~@3 b4@2 ~@2, g#4 ~@11 g#4 ~@3", // G#m A Bm
R: "a#4@2 d4@2 [g4,a#4] ~ [a4,c5] ~ [a#4,d5]@2 ~@2 [a#4,d5]@2 a4@2, g4 ~@13 c5 ~", // Gm Am A#
S: "a4@2 d4@2 [f#4,a4] ~ [g4,a#4] ~ [a4,c5]@2 ~@2 c5@2 [g4,a#4] ~, f#4 ~@11 a4 ~@3", // F#m Gm Am Gm
T: "[d3,d4,f#4]@3 [f3,c4,f4]@3 [g3,b4]@2, a3@3 ~@3 a4@3 ~@3 [d4,g4]@2 ~@2", U: "[d3,a3,d4,f#4]@7 ~",
V: "[d3,d4,f#4]@3 [f3,c4,f4]@3 [g3,b4]@2, a3@2 ~@4 a4@3 ~@3 [d4,g4]@2 ~@2", W: "[d3,a3,d4,f#4]@15 ~",
X: "a3@4 ~@2 a3 ~ a3@6 ~@2, [e4,a4,d5]@13 ~@3", Y: "a3@4 ~@2 a3 ~ a3@7 ~, [e4,a4,d5]@7 ~",
Z: "a3@4 ~@2 a3 ~ a3@6 ~@2, [e4,a4,c#5]@7 ~", AA: "a3@4 ~@2 a3 ~ a3@6 ~@2, [e4,a4,c#5]@13 ~@3",
AB: "a3@4 ~@2 a3 ~ a3@4 ~@4, [e4,a4,d5]@11 ~@5", AC: "a3@4 ~@2 a3 ~ a3@3 ~ [a3,a4,d5,f#5]@3 ~, [a4,d5,f#5]@5 ~@3",
AD: "a3@4 ~@2 a3 ~ a3@6 ~@2, [a4,c#5,e5]@13 ~@3", AE: "a3@4 ~@2 a3 ~ a3@3 ~ a3@2 ~@2, [a4,c#5,e5]@3 ~",
AF: "[a3,e4,a4,d5]@5 ~ [a3,e4,a4,d5] ~ [e4,a4,d5]@5 ~@3, ~@8 a3@3 ~@5", // Asus4 Dsus2
AG: "[a4,d5,f#5]@4 ~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@6 ~@2", AH: "[a4,c#5,e5]@5 ~ [a4,c#5,e5] ~ [a4,c#5,e5]@6 ~@2",
AI: "[a4,c#5,e5]@5 ~ [a4,c#5,e5] ~ [a4,c#5,e5]@4 ~@4", AJ: "[d4,e4,a4]@5 ~ [d4,e4,a4] ~ [d4,e4,a4]@5 ~@3",
AK: "[a4,d5,f#5]@4 ~@2 [a4,d5,f#5] ~ [a4,d5,f#5]@5 ~@3", AL: "[a4,c#5,e5]@4 ~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@5 ~@3",
AM: "[a4,c#5,e5]@4 ~@2 [a4,c#5,e5] ~ [a4,c#5,e5]@3 ~ [e4,a4,c#5]@3 ~", // A
AN: "[d4,g4,b4]@5 ~ [d4,g4,b4] ~ [g4,b4,d5]@3 ~@3 [g4,b4,d5] ~", // G
AO: "[b4,d5,f#5]@4 ~@2 [g4,b4,d5] ~ [g4,b4]@5 ~@3, ~@8 d5@7 ~", // Bm G
AP: "[e4,a4,c#5]@4 ~@2 [e4,a4,c#5] ~ [e4,a4]@2 ~@2 [c#4,e4,a4]@3 ~, ~@2 c#5 ~", // A A5 A
AQ: "[e4,a4,c#5]@4 ~@2 [e4,a4,c#5] ~ [e4,a4]@2 ~@2 [c#4,e4]@4, ~@8 c#5@4 a4 ~@3", // A A5 C#m
AR: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [g4,b4,d5]@4 [d4,g4,b4] ~ b4 d5", // G
AS: "[b4,d5,g5]@5 ~ [b4,d5,g5] ~ [b4,g5]@7 ~, ~@2 d5 ~", // G Em
AT: "[a4,c#5,e5]@4 ~@2 [a4,c#5,e5] ~ e5@4 a4@3 ~, ~@4 a4 ~@3, ~@8 c#5 ~@7", // A
AU: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [d4,g4,b4]@6 ~@2", AV: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [d4,g4,b4]@7 ~",
AW: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4] ~ c#4@2 ~ c#4@2 ~@3, ~@4 [e4,a4]@3 ~", // A A5
AX: "[c#4,e4,a4]@4 ~@2 [c#4,e4,a4] ~ [c#4,e4,a4]@5 ~@3", // A
AY: "[d4,g4,b4]@4 ~@2 [d4,g4,b4] ~ [g4,b4]@5 ~@3, ~@8 d4@7 ~", // G
AZ: "[[c#4,e4,a4]@4 ~@2 [c#4,e4,a4] ~ [c#4,e4,a4]@24]/2", // A
})).s("gm_piano").gain(0.38).pan(0.4)
// bass · fretless bass · "FRETLESS"
const bass = note(`<
~ A B C D E D F D G H I J K L M N O P Q R S T M U V W X Y Z AA AB AC A B C D E D F D G H I AD K L M N O P Q R S T M U
V W X Y Z AA AB AC A B C D E D F D A B C D E D F D AE AF AE AG G H I J K L M N O P Q R S T M U V W X Y Z AA AB AC AB@3
AC AB@18 AH AB@8 AI@2
>`.pickRestart({
A: "d2 ~ d2@2 d3@2 d2 ~ d2@2 c3@4 d2@2, ~@4 c3 ~@11", B: "b2@4 d2@2 a2@4 d2 ~ d2@2 ~@2",
C: "d2 ~ d2 ~ c3 ~ d2 ~ d2@2 c3@4 d2@2, ~ d3 ~@2", D: "b2@4 d2@2 a2@4 d2 ~ d2@3 ~",
E: "d2 ~ d2@2 d3@2 d2 ~ d2 ~ c3@4 d2@2, ~@4 c3 ~@11", F: "d2 ~ d2 ~ d3@2 d2 ~ d2@2 c3@4 d2@2, ~@4 c3 ~@11",
G: "g2@4 ~@2 g2@2 d2@3 ~@3 d2@2", H: "g2@3 ~@3 g2 ~ f#2@4 f2@4", I: "e2@2 ~ e2 b1@2 ~ b1",
J: "e2@4 ~@2 e2@2 e2@3 ~ f2@2 f#2@2", K: "g2@3 ~@3 g2@2 d2@2 a#1@6", L: "g1@2 ~ g2 d2@2 a#1@2",
M: "d2@2 ~ d2 a1@2 ~ a1", N: "d2@2 ~ d2 a1@2 f#1@2", O: "g1@2 ~ g1 d2@2 ~ d2", P: "g2@4 ~@2 g2@2 f#2@4 f2@3 ~",
Q: "e2!2 ~ e2 b1@2 ~ b1", R: "e2 b1 g#1 b1 e1 b1 e2 b1", S: "d2@4 ~@2 d2@2 g2 ~ g2@2 ~@2 d2@2",
T: "g2@3 ~@3 g2@2 a#2@4 g2@3 ~", U: "d2@4 ~@2 a1@2 d2@3 ~ d2@4", V: "c2@4 ~@2 c2 ~ c2 ~ c2 ~ c2 ~ c2 ~",
W: "a#1@4 ~@2 a#1@2 g1@4 ~@2 g1 ~", X: "a1@3 e2 a2 e2 a2 e2", Y: "~ e2 ~ e2 a2 ~ a2 e2", Z: "c2@3 g1 c2 g1 c2 g1",
AA: "a#1@5 ~ a#1@2 g1@3 ~ g1@2 ~@2", AB: "a1 e2 a2 e2 a1 e2 a2 e2", AC: "a1 e2 a2 e2 a1 e2 a2@2",
AD: "e2@2 ~ e2 f2@2 f#2@2", AE: "d2@3 f2@3 g2@2", AF: "d2@13 ~@3", AG: "d2@15 ~",
AH: "a1 ~ e2@2 a2@2 e2@2 a1@2 e2@2 a2@2 e2@2", AI: "[a1@9 ~@7]/2",
})).s("gm_fretless_bass").gain(0.44)
// chords · acoustic guitar nylon · "NYLON GTR"
const acoustic_guitar_nylon = note(`<
~ A B@2 C D E F@2 G@2 H@2 I J K L M N O@3 P Q R S T U V W T U X A B@2 C D E F@2 G@2 H@2 I J K L M N O@3 P Q R S T U V
W T U Y A B@2 C D E F@2 Z B@2 C D E AA@2 AB AC AD AE G@2 H@2 I J K L M N O@3 P Q R S T U V W T U X ~@33
>`.pickRestart({
A: "~@4 a3 ~@2 a3, d3@2 d4@2 ~ d4@2 ~, ~ a3@2 d3@2 ~ d3@2",
B: "[d4 ~ a3 d4 ~ a3 d4 ~ a3 ~@2 a3 d4 ~ a3 d4, ~ [d3,g3]@2 ~ d3@2 ~ d3@2 d4@2 ~@5, ~@10 d3@2 ~ d3@2 ~]/2", // G5
C: "~ a3 ~@2 a3 ~ d3 a3, d3@2 d4@2 ~ d4@2 ~, ~@3 d3@2 ~@3", D: "d4 d3 a3 ~ d3 a3 ~ d3, ~@3 d4@2 ~ d4@2",
E: "a3 ~@2 a3 ~@2 a3 d4, ~ d4@2 ~ d4@2 ~@2, ~@2 d3@2 ~ d3@2 ~",
F: "[~ g3 a3 d4 ~ a3 ~@2 a3 ~@2 a3 ~@2 a3 d4, d3@5 ~@3 d3@4 d4@4 ~@2 d4@4 ~@2 d4@4 ~@4, ~@7 d3@2 ~ d3@2 ~ d3@2 ~]/2",
G: "[~@2 d4 ~ c4 ~@5 b3 ~@2 b3 ~ d3, g3@5 ~ g3@5 ~ g3@4 d4@4 ~@2 d4@4 ~@2 d4@4, ~ b3@2 ~@2 d4@2 b3@2 g3@2 ~ g3@3 ~]/2",
H: "[~@5 d4 ~@7 g#3 b3 d3, e3@2 b3@2 g#3@2 ~ g#3@2 e3@2 b3@2 ~@3, ~@2 g#3@4 e3@5 ~ e3@4 c#4@4 g#3@4 e3@4 ~@4]/2",
I: "g3 a#3 d4 ~ a#3 d4 ~ a#3, ~@3 d3@2 ~ g3@2", J: "~@2 d3@2 g3@2 a#3@2 g3@2 d3@2 f3@2 d3 ~, [d4,g4] ~@3",
K: "a3 ~ a3@2 d4@2 g3@2 a3@2 d4@2 d3@2 f#4@2, d3@3 ~@5", L: "~ a3 c4 ~ a3 d4 d3 a3, d3@2 ~ d3@2 ~@3",
M: "~@4 c4 ~@2 b3, g3@2 d4@2 ~ d4@2 ~, ~ b3@2 g3@2 ~ g3@2",
N: "~@2 b3 ~@2 b3 ~ d3, d4@2 ~ d4@2 ~ d4@2, ~@2 g3@4 ~@2 g3@5 ~@3",
O: "[~ g#3 b3 ~ g#3 d4 ~@7 g#3 b3 ~ g3 a#3 ~@2 a#3 d4 ~ g3, e3@2 ~ e3@2 ~ e3@2 c#4@2 g#3@2 e3@3 d3@2 ~@2 d3@2 ~ d3@2, ~@7 g#3@2 e3@2 b3@2 ~@5 d4@2 ~@4]/3",
P: "[d4,g4] ~ g3 a#3 g3 d3 f3 d3, ~ d3@2 ~@5", Q: "[d3,g3] a3 d4 g3 a3 ~ d3 f#4, ~@5 d4@2 ~",
R: "~ a3 c4 a3 ~ a3 d4 a3, d3 ~ d4 ~", S: "c3 b2 c3 d3 d#3 f3 g3 c4", T: "d4 c4 a#3 f3 g3 a3 b3 d4",
U: "c#4@6 d4 c#4", V: "a3", W: "c3 b2 c3 d3 d#3 f3 g3 a#3", X: "a3@13 ~@3", Y: "~ d4 c#4 a3 d4 c#4 a3@2, a3 ~@3",
Z: "~@4 a3 ~@2 a3, [d3,g3]@2 d4@2 ~ d4@2 ~, ~ a3@2 d3@2 ~ d3@2", // G5
AA: "[~@2 g3@2 a3@2 d4@2 ~@2 a3@2 ~@4 a3@2 ~@4 a3@2 ~@4 a3@3 ~, d3@5 ~@3 d3@4 d4@4 ~@2 d4@4 ~@2 d4@4 ~@4, ~@7 d3@2 ~ d3@2 ~ d3@2 ~]/2",
AB: "[d3,d4,f#4]@6 [f3,a3,c4,f4]@5 ~ [b3,g4]@4, a3@3 ~@9 [g3,d4]@2 ~@2", AC: "[d3,a3,d4,f#4]@13 ~@3",
AD: "[d3,d4,f#4]@6 [f3,a3,c4,f4]@5 ~ [g3,b3,g4]@4, a3@3 ~@9 d4 ~@3", AE: "[d3,a3,d4,f#4]@15 ~",
})).s("gm_acoustic_guitar_nylon").gain(0.33)
// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
~@25 A@2 B@2 A@2 B@2 ~@24 A@2 B@2 A@2 B@2 ~@8 C@4 D@4 ~@20 A@2 B@2 A@2 B@2 ~@33
>`.pickRestart({
A: "[[d#4,g4]@2 f4 [b3,g4], a#4@3 ~, ~ d4]/2", B: "[c#4,e4,a4]/2",
C: "[[a3,c4,e4,c5]@9 [g3,b4]@6 [f#3,a3,a4]@15 ~@2, ~@9 d4@21 ~@2, ~@9 b3@4 ~@19]/4", // Am G F#m
D: "[[a3,c4,e4,c5]@9 [g3,b3,b4]@7 [f#3,a3,a4]@15 ~, ~@9 d4@21 ~@2]/4", // Am G F#m
})).s("gm_synth_strings_1").gain(0.32)
// other · tremolo strings · "TREMOLOSTR"
const tremolo_strings = note(`<
~@12 A@3 ~@5 B@3 ~@21 C@3 ~@5 D@3 ~@26 E F G H ~@3 I@3 ~@5 I@3 ~@10 J@2 K@2 L@2 K@2 M@2 N@4 K@2 M@2 K@2 M@2 K@2 M@2
K@2 M@2 O@3
>`.pickRestart({
A: "[~@8 b3 ~ b3@4 a#3@26 ~@8]/3", B: "[~@8 b3@3 ~ b3@2 a#3@30 ~@4]/3", C: "[~@4 b3 b3@2 a#3@15 ~@2]/3",
D: "[~@4 b3!2 ~ a#3@16 ~]/3", E: "f#4 ~ f#4@4 [c4,f4,a4]@6 [d4,g4,b4]@4, [a3,d4]@3 ~@5",
F: "[a3,d4]@15 ~, f#4@13 ~@3", G: "f#4 ~ f#4@4 [c4,f4,a4]@6 [g4,b4]@4, [a3,d4]@3 ~@3 d4 ~", H: "[a3,d4,f#4]@15 ~",
I: "[~@8 b3 ~ b3@4 a#3@33 ~]/3", J: "[d5@15 ~]/2", K: "[c#5@31 ~]/2", L: "d5/2", M: "[d5@31 ~]/2",
N: "[c#5@31 d5@31 ~@2]/4", O: "[c#5@11 ~@5]/3",
})).s("gm_tremolo_strings").gain(0.45)
// chords · sitar
const sitar = note(`<
~ A@2 B@2 C@2 D@4 ~@14 E F G@2 H F I@2 A@2 B@2 C@2 D@4 ~@14 E F G@2 H F I@2 A@2 B@2 C@2 J@2 K@2 B@2 C@2 L@4 M@2 N@2
~@14 E F G@2 H F I@2 O@8 P@8 Q@6 R@3 S@5 T@3
>`.pickRestart({
A: "[~@7 d3 ~@3 a3@5, d3@3 ~ d3@2 ~@2 b3@8, ~@2 d4@9 ~@5, ~@10 c4@17 ~@5, ~@20 d3@9 ~@3]/2",
B: "[d3@2 ~@9 a3@5, ~@2 d4@7 ~@7, ~@8 d3@4 ~@2 d3@4 ~@2 d3@9 ~@3, ~@5 c4@6 ~@5, ~ b3]/2",
C: "[d3@2 ~@5 d3 ~@3 a3@5, ~ d4@3 b3@4, ~@8 d3@4 ~@8 d3@9 ~@3, ~@5 c4@6 ~@5]/2",
D: "[d3@2 ~@5 d3 ~@3 a3@5 g2@12 ~@4, ~@4 d4@13 ~@3 d3@28 ~@16, ~@2 d3 ~ b3@4 ~@8, ~@5 c4@6 ~@21]/4",
E: "~@4 g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~", F: "f3 ~ f3 ~ f3@2 d3 ~ d3 ~ d3 ~ d3 ~ d3@2",
G: "[~@2 a2@2 ~ a2 ~ a2@6 ~@3 a2@4 ~@2 a2 ~ a2@8, e3]/2", H: "~@2 g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~ g3 ~",
I: "[a2@3 ~@3 a2 ~ a2@5 ~@3 a2@4 ~@2 a2 ~ a2@7 ~, e3@31 ~]/2",
J: "[d3@2 ~@5 d3 ~@3 a3@5, ~@4 d4@13 ~@3 d3@12, ~@2 d3 ~ b3@4, ~@5 c4@6 ~@5]/2",
K: "[~@7 d3 ~@3 a3@5, d3@4 d3@3 ~ b3@8, ~@2 d4@9 ~@5, ~@10 c4@17 ~@5, ~@20 d3@9 ~@3]/2",
L: "[d3@4 ~@10 d3@2 ~@6 a3@10 ~@6 c4@6 ~@4 a3@13 ~@3, ~@4 d4@13 ~@3 d3@28 ~@16, ~@4 d3@2 ~@2 b3@8 a3@7 ~@9, ~@5 c4@6 ~@11 d4@10]/4",
M: "[~@3 c4@3 ~@2 a3@8, a3@7 ~@9, ~@3 d4@5]/2", N: "[g2@3 ~]/2",
O: "[~@3 d4 ~@7 d4 ~@7 c#4 ~@4 a2@3 a2 ~@7 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@2 a3@2, d4@3 ~ d4@4 d4@3 ~ d4@4 c#4@3 ~ c#4@4 c#4@16 ~@8 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4, ~ a3@2 a3@2 a3@2 a3@2 a3@2 a3@6 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 ~, ~@7 a2@4 ~@5, ~@32 d4@3 ~ d4@4 d4@3 ~ d4@4 ~@16]/8",
P: "[~@3 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@7 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@2 a3@2, d4@3 ~ d4@4 d4@3 ~ d4@4 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4 d4@3 ~ d4@4 d4@3 ~ d4@5 ~@15, ~@2 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@4 a3@3 ~ a3@4 a3@4 a3@4 ~@2, ~@48 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4]/8",
Q: "[~@3 d4 ~@7 d4 ~@7 c#4 ~@7 c#4 ~@7 d4 ~@7 d4 ~@2 a3@2, d4@3 ~ d4@4 d4@3 ~ d4@4 c#4@3 ~ c#4@4 c#4@3 ~ c#4@4 d4@3 ~ d4@4 d4@3 ~ d4@4, ~@4 a3@8 a3@8 a3@8 a3@8 a3@8 a3@7 a3@8 a3@8 ~ a3@8 a3@8 a3@8 ~@4]/6",
R: "[~@3 c#4 ~@7 c#4 ~@7 d4 ~@2 a3@2, c#4@3 ~ c#4@4 c#4@3 ~ c#4@4 d4@3 ~ d4@4, ~ a3@2 a3@2 a3@2 a3@2 a3@2 ~]/3",
S: "[~@3 d4 ~@7 c#4 ~@7 c#4 ~@7 d4 ~@7 d4 ~@2 a3@2, d4@6 ~@2 d4@7 ~ c#4@6 ~@2 c#4@8 c#4@6 ~@2 c#4@8 d4@6 ~@2 d4@8 d4@6 ~@2 d4@7 ~, ~ a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 a3@2 ~]/5",
T: "[~@3 c#4 ~@2 a3@16 ~@2, c#4@3 ~ c#4@16 ~@4, ~ a3@2 ~@9]/3",
})).s("gm_sitar").gain(0.33)
// other · flute
const flute = note(`<
~ A B C D E F G H I@2 J@2 K@2 L@2 M N O@2 P@2 Q@2 R S T@2 R S T@2 A B C D E F G H I@2 J@2 K@2 L@2 M N O@2 P@2 Q@2 R S
T@2 R S T@2 A B C D E F G H A B C D E F G H ~@4 I@2 J@2 K@2 L@2 M N O@2 P@2 Q@2 R S T@2 R S T@2 U@2 V@2 W X@3 Y Z@4 AA
AB@2 AC@2 AD@4 AE AF AG AH AI AJ AK AL AM@2 ~
>`.pickRestart({
A: "d6@2 ~@2 a5@2 ~@4 a5 ~@5", B: "a5 ~@5 a5@7 ~@3", C: "d6@2 ~@2 a5 ~@5 a5@2 ~@4", D: "b5@3 ~@3 a5@7 ~@3",
E: "d6 ~@3 a5@2 ~@4 a5 ~@5", F: "b5 ~@2 a5@3 ~@2", G: "d6@2 a5@2 d6@2 ~@4 d6 ~@5", H: "d6@2 ~@4 d6@9 ~",
I: "[g5@8 a5@13 ~@9 g5@2]/2", J: "[g#5@5 g5 f#5 f5 e5@15 ~@5 g#4@2 a#4@2]/2", K: "[g5@3 a5 a#5@2 d5@6 g5@2 a5 g5]/2",
L: "[f#5@3 ~ f#5@2 d5@21 ~@5]/2", M: "g5 a5", N: "d5@5 ~@3 g5@7 ~", O: "[g#5@6 g5 [f5,f#5] e5@20 ~@4]/2",
P: "[g5@3 d5@9 g5@2 a5 g5]/2", Q: "[f#5@3 d5@11 ~@2]/2", R: "c6", S: "a#5 g5", T: "a5/2", U: "[~ d6@3]/2",
V: "[c#6@5 a5 e5 c#5]/2", W: "~ e5 a5 e5 ~ e5 g5 ~", X: "[~@2 e5@2 a5@2 e5@2 ~@2 e5@2 a5@35 ~]/3", Y: "e5",
Z: "[a5@51 ~@5 e5@8]/4", AA: "a5@7 ~",
AB: "[~@2 c6@2 a5@2 e5@2 a5@4 c#6@2 a5@4 c#6@2 a5@2 e5 ~ c#6@2 a5@2 e5@3 ~, ~@12 b5 ~@5 b5 ~@13]/2",
AC: "[~@2 g5@2 b5@2 g5@2 d5@14 ~@2 a5@2 e5 ~ e5@4]/2",
AD: "[a5@37 ~ e6@2 d6@12 c#6@2 d6@2 c#6@2 d6@2 c#6@2 d6@2, ~@56 b5 ~@7]/4", AE: "c#6@3 a5 e5@2 c#5@2, b5 ~@15",
AF: "a4@3 ~ a4@2 c#5 a4 [a4,c#5] e4@2 ~ a4@4", AG: "d5@3 e5 f#5@4",
AH: "a5 b5 a5 b5 a5 [a5,b5] ~ b5 [a5,b5] a5 ~ b5 a5 [a5,b5] ~ b5", // Asus2
AI: "a5 ~ c#5@2 a4@2 e4@2 c#5@2 e4 ~ a4@2 e4 ~, ~@2 b4 ~@13", AJ: "~@6 c#6 ~ c#6@2 a5@2 g5@2 e5@2",
AK: "g5 e5 a5 b5@3 ~ e5", AL: "g5 e5 a5 b5 c#6 a5 g5 e5", AM: "[c#5 a4 e4 a4@2 e4@11]/2",
})).s("gm_flute").gain(0.33).pan(0.3)
// other · alto sax
const alto_sax = note(`<
~ A@7 B ~@16 C D E@2 F G H@2 A@2 I J K J A L ~@16 C D E@2 F G H@2 M A@6 B N O@2 P O@3 Q R S R T ~@16 C D E@2 F G H@2
U@2 V@2 W@2 V@2 X@2 V@2 Y@2 V@2 W@2 V@2 Z@2 AA@2 AB@2 AC@2 AD@2 AE@3
>`.pickRestart({
A: "c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4", B: "c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 ~",
C: "~@2 g3 ~ g3@11 ~", D: "~@2 f3 ~ f3@4 ~@2 d3 ~ d3@4", E: "[e3@31 ~]/2", F: "~@2 g3 ~ g3@12",
G: "~@2 f3 ~ f3@4 d3@8", H: "[e3@29 ~@3]/2", I: "c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 [c4,d4] c4 d4 c4",
J: "d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 [c4,d4]", K: "c4 d4 c4 d4 c4 d4 [c4,d4] c4 d4 c4 d4 c4 d4 c4 d4 c4",
L: "c4 d4 c4 [c4,d4] d4 c4 d4 c4 d4 c4 d4 c4 d4@2 ~@2", M: "[c4,d4] d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4 c4 d4",
N: "~ f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4",
O: "d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4",
P: "d4 f#4 d4 f#4 ~ [d4,f#4] ~ [d4,f#4] d4 f#4 d4 f#4 d4 f#4 d4 f#4", // D
Q: "d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 f#4 d4 ~", R: "a3@3 c4@3 d4@2", S: "a3@7 ~", T: "a3@15 ~",
U: "[c#4 d4@14 ~]/2", V: "[c#4@29 ~@3]/2", W: "d4/2", X: "[d4@15 ~, c#4 ~@31]/2", Y: "[d4, c#4 ~@31]/2",
Z: "[a3@29 ~@3]/2", AA: "[c4@8 c#4@21 ~@3]/2", AB: "[d4@7 ~, c#4 ~@31]/2", AC: "[a3@15 ~]/2", AD: "[d4@29 ~@3]/2",
AE: "[c#4@11 ~@5]/3",
})).s("gm_alto_sax").gain(0.38).pan(0.7)
// other · marimba
const marimba = note("<~@25 A B C D E F G H ~@24 A B C D E F G H ~@36 A B C D E F G H I ~@32>".pickRestart({
A: "c5 [c4,c5] c4 [c4,c5] c5 [c4,c5] c4 [c4,c5] c5 [c4,c5]!2 c4 c5 [c4,c5] c4 [c4,c5]", // C
B: "a#4 [a#3,a#4] a#3 [a#3,a#4] a#4 [a#3,a#4] a#3 [a#3,a#4] g4 [g3,g4] g3 [g3,g4] g4 [g3,g4] g3 [g3,g4]", // A# G
C: "a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a4@2 g#4@2 e4@2 d4 ~ c#4 ~", D: "~@4 a3@2 ~@2 e3@2 g#3@2 a3@3 ~",
E: "c5 [c4,c5] c4 [c4,c5]!2 c5 [c4,c5] c4 [c4,c5] c5 c4 [c4,c5] c5 [c4,c5] c4 [c4,c5]", // C
F: "a#4 [a#3,a#4] a#3 [a#3,a#4] a#4 [a#3,a#4] a#3 [a#3,a#4] ~ [g3,g4] g3 [g3,g4] g4 [g3,g4] g3 [g3,g4]", // A# G
G: "a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a3 [a3,a4] a4 [a3,a4] a3 [a3,a4]", // A
H: "a4 ~ d4@2 e4@2 a4@2 d4@2 e4@2 a4 ~@3", I: "~@2 d4@2 e4@2 a4@2 d4@2 e4@2 a4 ~@3",
})).s("gm_marimba").gain(0.18)
// … 85 more lines
More by Traffic
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.