0:00/0:00
// Se telefonando — Mina
// 113 bpm, 4/4, key A# minor. 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: Full arrangement: all 84 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(113/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@2 B C D E F@2 G H I J@3 K L M N@5 O@2 P@2 Q R S T@3 U V@2 W@7 X Y Z AA AB AC AD AE AF AG AH AI AJ AK AL AM AH AN AJ
AO AP AQ AR AN AS AT AU Y Z AA AB AC AD AE AV AW AX AY AZ BA BB ~
>`.pickRestart({
A: "[~@5 gb2@6 ~@2 gb2@2 ~@2 gb2@6 ~@3 gb2@2 ~@2 gb2@7 ~@2 b1@6 ~@2 b1@2 ~@2 b1@6 ~@3 b1@2 ~@2]/2",
B: "b1@7 ~@2 gb2@6 ~@2 gb2@2 ~@3 gb2@7 ~ gb2@2", C: "~@2 gb2@5 ~@2 gb2 ~ b1@6 ~@2 b1@2 ~@3 b1@7 ~",
D: "b1@2 ~@2 b1@6 ~@3 gb2@6 ~@3 gb2@2 ~@2 gb2@6", E: "~@2 gb2@2 ~@3 gb2@7 ~ b1@6 ~@3 b1@2 ~@2 b1@4",
F: "[~@4 b1@2 ~@3 b1@7 ~ gb2@6 ~@3 gb2@2 ~@2 gb2@7 ~@2 gb2@2 ~@2 gb2@5 ~ gb2 ~ b1@6 ~@3 b1@2 ~@2]/2",
G: "b1@7 ~@2 b1@2 ~@2 b1@6 ~@2 gb2@6 ~@3 gb2@2", H: "~@2 gb2@8 ~ gb2@3 ~ gb2@6 ~@3 b1@7 ~",
I: "b1@2 ~@2 b1@6 ~@3 b1@2 ~@2 b1@7 ~@2 db2@6",
J: "[~@2 db2@2 ~@2 db2@7 ~@2 db2@2 ~@2 db2@7 ~@2 gb2@7 ~ gb2@3 ~@2 gb2@7 ~ gb2@2 ~@2 gb2@6 ~@3 gb2@6 ~@2 gb2@2 ~@3 gb2@8 gb2@2 ~@2 gb2@8 ~]/3",
K: "b1@6 ~@3 b1@2 ~@2 b1@7 ~ b1@2 ~@3 b1@6", L: "~@2 db2@6 ~@3 db2@2 ~@2 db2@7 ~ db2 ~@4 db2@4",
M: "b1@4 bb1@6 ~@3 bb1 ~@3 bb1@6 ~@3 bb1@4 bb1@2",
N: "[~@2 bb1@3 ~ eb2@9 ~@4 eb2@2 ~@2 eb2@14 ~@3 b1@10 ~@3 b1@3 ~@2 b1@15 ~@2 bb1@10 ~@2 bb1@2 ~@3 bb1@14 ~@3 b1@10 ~@2 b1@3 ~@2 b1@14 ~@3 gb1@6 ~@2 gb1@3 ~@2 gb1@4]/5",
O: "[~@4 gb1@3 ~ gb1@7 ~@2 ab1@6 ~@2 ab1@3 ~@2 ab1@6 ~@2 ab1@2 ~@2 ab1@7 ~@2 db2@6 ~@3 db2@3 ~]/2",
P: "[db2@7 ~ db2@4 ~ db2@6 ~@2 db2@8 ~ db2@8 db2@8 db2@8 gb2@10]/2", Q: "~@3 gb2@3 ~ gb2@16 b1@9",
R: "~@4 b1@4 b1@7 ~ b1@8 bb1@8", S: "~@4 bb1@4 bb1@14 ~@3 eb2@7",
T: "[~@5 eb2@3 ~ eb2@7 ~@2 eb2@7 ~ b1@11 ~ b1@4 b1@13 ~@4 db2@10 ~@2 db2@4 db2@7 ~ db2@5 ~@3 gb2@5]/3",
U: "~@8 gb2@3 ~ gb2@16 eb2@4", V: "[~@8 eb2@4 eb2@7 ~ eb2@8 ~ bb1@10 ~@2 bb1@3 ~ bb1@14 ~@2 b1@3]/2",
W: "[~@9 b1@3 ~ b1@7 ~@2 b1@7 ~ db2@11 ~ db2@4 db2@13 ~@3 gb2@10 ~@2 gb2@4 gb2@7 ~@2 gb2@5 ~@3 bb1@10 ~@2 bb1@3 ~ bb1@16 eb2@10 ~@2 eb2@4 eb2@7 ~ eb2@8 d2@10 ~@2 d2@3 ~ d2@14 ~@2 g1@10 ~@3 g1@3 ~ g1@7 ~ g1@7 ~]/7",
X: "eb2@11 ~ eb2@4 eb2@13 ~@3", Y: "f2@10 ~@2 f2@4 f2@7 ~ f2@5 ~@3", Z: "bb1@10 ~@2 bb1@2 ~@2 bb1@7 ~ bb1@8",
AA: "g1@10 ~@2 g1@3 ~ g1@6 ~@2 g1@7 ~", AB: "d2@10 ~@2 d2@3 ~ d2@7 ~ d2@8", AC: "g2@10 ~@2 g2@4 g1@6 ~@2 g1@7 ~",
AD: "eb2@10 ~@2 eb2@4 eb2 ~@15", AE: "f2@10 ~@2 f2@3 ~ f2@15 ~", AF: "bb1@10 ~@2 bb1@4 bb1@6 ~@2 bb1@7 ~",
AG: "db2@3 ~@13", AH: "gb2@10 ~@2 gb2@3 ~ gb2@15 ~", AI: "b1@10 ~@2 b1@4 b1@7 ~ b1@8",
AJ: "bb1@10 ~@2 bb1@3 ~ bb1@14 ~@2", AK: "eb2@10 ~@2 eb2@3 ~ eb2@7 ~ eb2@7 ~", AL: "b1@10 ~@2 b1@4 b1@13 ~@3",
AM: "db2@10 ~@2 db2@4 db2@7 ~ db2@5 ~@3", AN: "eb2@10 ~@2 eb2@4 eb2@7 ~ eb2@8", AO: "b1@10 ~@2 b1@3 ~ b1@7 ~ b1@7 ~",
AP: "db2@10 ~@2 db2@4 db2@13 ~@3", AQ: "gb2@10 ~@2 gb2@4 gb2@7 ~ gb2@5 ~@3", AR: "bb1@10 ~@2 bb1@3 ~ bb1@15 ~",
AS: "d2@10 ~@2 d2@3 ~ d2@14 ~@2", AT: "g1@10 ~@2 g1@3 ~ g1@7 ~ g1@7 ~", AU: "eb2@10 ~@2 eb2@4 eb2@13 ~@3",
AV: "bb1@9 ~@3 bb1@2 ~@2 bb1@10 ~@2 bb1@4", AW: "eb2@9 ~@3 eb2@3 ~ eb2@6 ~@2 eb2@7 ~",
AX: "d2@9 ~@3 d2@4 d2@10 ~@2 d2@4", AY: "g2@11 ~ g2@3 ~ g2@6 ~@2 g2@8", AZ: "f2@10 ~@2 f2@3 ~ f2@10 ~@2 f2@4",
BA: "eb2@9 ~@3 eb2@3 ~ eb2@7 ~ eb2@7 ~", BB: "bb1",
})).s("gm_fretless_bass").gain(0.38)
// other · trumpet
const trumpet = note("<~@2 A B@3 C@3 ~@3 D@3 ~@5 E@3 ~@25 F G H I ~@22 F G ~@8>".pickRestart({
A: "~@17 b4@2 bb4@2 ab4@3 bb4@2 gb4@3 ~ db4@2", B: "[~@7 eb4@38 db4@38 ~@4 b4@2 ~ bb4@2 ab4@2 bb4@2]/3",
C: "[gb4@3 ~@2 eb4@3 ~@5 gb4@67 ~@16]/3", D: "[~@4 b4@2 bb4@2 ab4@3 bb4@2 gb4@3 ~ db4@3 ~@6 gb4@67 ~@3]/3",
E: "[~@21 b4@2 bb4@2 ab4@2 ~ bb4@2 gb4@4 eb4@3 ~@5 gb4@38 ~@16]/3", F: "~@8 g5@3 ~@9 g5@2 ~@10",
G: "~@8 a5@3 ~@9 a5@3 ~@9", H: "bb5@31 ~", I: "db6@3 ~",
})).s("gm_trumpet").gain(0.41).pan(0.7)
// chords · string ensemble 2
const string_ensemble_2 = note("<~@15 A@7 ~@3 B C D E F@2 G@3 H I@3 J@6 K@8 L@6 M@6 N@6 O@6 P@7 ~>".pickRestart({
A: "[~@24 ab3@12 ~@9 db4@25 ~@34 b2@34 [bb2,db4]@35 [b2,b3,eb4]@34 ~@17, ~@23 ab2@13 bb2@68 ~@120, ~@18 bb3@17 gb3@68 ~@9, ~@35 eb4@34 ~@43]/7", // Bbm B
B: "~@11 [bb3,db4,gb4]@5", C: "~@23 gb3@9, ~@11 [b3,eb4]@5", D: "~@23 [f3,bb3,db4]@9", E: "~@3 [gb3,bb3,eb4]",
F: "[~@25 [b3,eb4,gb4]@33 [db4,f4,ab4]@6]/2", G: "[~@27 db4@31 eb4@34 [db4,f4]@4, ~@9 bb4@23, ~@27 gb4@65 ~@4]/3",
H: "~@7 [b3,eb4,gb4]", I: "[~@29 f4@32 [gb4,bb4]@34 [d4,f4,bb4], ~@28 ab4@33 ~@35, ~@29 db4@66 ~]/3",
J: "[~@30 [bb3,eb4,g4]@32 [a3,d4,f4]@33 [bb3,d4,g4]@32 [eb4,g4,bb4]@32 [f4,a4,c5]@33]/6", // Eb Dm Gm Eb F
K: "[f4@30 g4@32 [f4,a4]@32 [g4,bb4]@30 ~@3 [eb4,g4,bb4]@32 [f4,a4,c5]@31 ~@2 d4@28 ~@3 [db4,f4,db5]@31 ~@2, d4@123 ~@68 [f4,bb4]@31 ~@34, bb4@61 ~@162 ab4@27 ~@6]/8", // F Gm Eb F Db Bb5
L: "[[bb3,db4,gb4]@31 ~ gb3@31 [f3,bb3,db4]@32 [gb3,bb3,eb4]@32 [b3,eb4,gb4]@32 [db4,f4,ab4]@33, ~@31 [b3,eb4]@33 ~@128]/6", // Gb Bbm Ebm B Db B
M: "[db4@30 eb4@33 ~ db4@31 [b3,eb4,gb4]@32 [f4,ab4]@32 [gb4,bb4]@33, bb4@31 ~@33, gb4@63 f4@31 ~@33 db4@65]/6", // B Fm Gb
N: "[[d4,f4,bb4]@31 ~ bb3@31 [a3,d4,f4]@32 [bb3,d4,g4]@32 [eb4,g4,bb4]@32 [f4,a4,c5]@33, ~@31 [eb4,g4]@33 ~@128]/6", // Bb Dm Gm Eb F Eb
O: "[f4@30 g4@32 [f4,a4]@32 [g4,bb4]@30 ~@3 [eb4,g4,bb4]@32 [f4,a4,c5]@31 ~ [f4,bb4], d4@41 ~@23, bb4@61 ~@131]/6", // F Gm Eb F Bb5
P: "[d4@28 ~@3 [eb4,g4,bb4]@32 ~ d4@30 ~ [g4,bb4]@32 [c4,f4,a4]@32 [eb4,g4]@31 ~ [d4,f4,bb4]@32 ~, ~@63 [f4,a4]@31 ~ d4@30 ~@34 bb3@64 ~]/7", // Eb Gm F Eb Bb F
})).s("gm_string_ensemble_2").gain(0.13).pan(0.4)
// bass · trombone
const bass_2 = note(`<
~@25 A B C@2 D@6 E@7 F G H@2 I@3 J@3 K L M N L O K F M P Q R S F T U F G H@2 I@3 V@2 F T W X F M ~
>`.pickRestart({
A: "~@6 db2@5 ~ db2@2 db2@3 ~ db2@4 gb2@10", B: "~@23 b1@9", C: "[~@24 bb1@33 eb2@7]/2",
D: "[~@26 b1@33 db2@32 gb2@32 ~ eb2@32 bb1@32 ~ b1@3]/6",
E: "[~@29 db2@31 ~@2 gb2@30 ~@3 bb2@31 eb2@33 d2@32 g2@31 ~@2]/7", F: "eb2", G: "f2@31 ~", H: "[bb2@31 g2@32 ~]/2",
I: "[d2@31 g2@31 ~ eb2@30 ~@3]/3", J: "[f2@31 bb2@32 db3@6 ~@27]/3", K: "gb2@31 ~", L: "b1", M: "bb1", N: "eb2@31 ~",
O: "db2@31 ~", P: "b1@15 ~", Q: "db2@15 ~", R: "gb2@15 ~", S: "bb2@31 ~", T: "d2", U: "g2@31 ~",
V: "[f2@31 ~ bb1@32, ~@31 bb2@32 ~]/2", W: "g2", X: "f2",
})).s("gm_trombone").gain(0.4).pan(0.4)
// chords · piano
const piano = note(`<
A@4 B C@8 D E F@2 G H@2 I J@3 K@5 L@8 M@5 N O P Q R S T U V W X Y Z AA AB AC AD@2 AE AF AG AH AI AJ AK AL N O P Q R S
T U AM AN AO AP AQ AR AS ~
>`.pickRestart({
A: "[~@30 bb3@4 db4@5 ~@25 b3@4 eb4@5 ~@25 bb3@5 db4@4 ~@13 eb4@8, ~@5 [gb2,db3]@32 ~@2 [b2,eb3]@34 gb2@34 b2@17 ~@4, ~@9 gb3@14 ~@3 gb3@10 ~@7 gb3@14 ~@3 gb3@12 ~ db3@31 ~@3 eb3@21, ~@13 bb3@13 ~@21 b3@13 ~@17 gb3@9 db4@14 ~@15 b3@11 ~@2, ~@17 db4@13 ~@21 eb4@13 ~@17 bb3@13 gb3@10 ~@7 gb3@15 ~@2]/4", // Gb5 B
B: "~@5 b3@4 eb4@4 ~@13 db4@6, [b2,gb3]@13 [gb2,db3]@19, ~@17 gb3@14 ~, ~@21 bb3@11", // B5 Gb5
C: "[~@7 bb3@4 db4@4 ~@26 b3@4 eb4@4 ~@26 bb3@4 db4@4 ~@26 b3@4 eb4@4 ~@26 bb3@4 db4@5 ~@25 b3@4 eb4@5 ~@25 db4@5 f4@4 ~@25 bb3@5 db4@4 db3@2, ~@2 gb3@10 ~@3 [b2,eb3]@34 gb2@34 b2@13 eb4@13 ~@17 bb3@13 ~@21 b3@13 ~@21 db4@13 ~@17 gb3@9 db4@14 ~@9, ~@19 gb3@14 ~@3 gb3@12 ~ db3@31 ~@3 eb3@33 ~@14 db4@13 ~@21 eb4@13 ~@22 f4@13 ~@16 bb3@13 gb3@10 ~@5, ~@24 b3@13 ~@16 gb3@9 db4@14 ~@16 b3@11 ~@2 gb3@11 ~@6 gb3@14 ~@3 gb3@10 ~@7 gb3@14 ~@3 gb3@12 ~@5 ab3@14 ~@3 ab3@12 ~ db3@31 ~@5, ~@28 eb4@13 ~@17 bb3@13 gb3@10 ~@7 gb3@15 ~ b2@13 [gb2,db3]@32 ~@3 [b2,eb3]@34 [db3,f3]@33 ~ gb2@34 gb2 ~]/8", // B Gb5 B Db
D: "~@23 bb3@5 db4@4, ~@2 gb3@14 ~@3 gb3@10 ~@3, ~@6 bb3@13 ~@13, ~@11 db4@13 ~@8",
E: "~@13 b3@2 eb4, [b2,eb3], ~@4 gb3@14 ~@3 gb3@11, ~@8 b3@13 ~@11, ~@13 eb4@13 ~@6", // B
F: "[~@14 db4@2 f4@2 ~@11 f3@2 bb3, ~@2 [db3,f3]@33 ~ bb2@28, ~@6 ab3@14 ~@3 ab3@12 ~@6 f3@15 ~@8, ~@11 db4@13 ~@21 bb3@13 ~@6, ~@15 f4@13 ~@21 db4@14 ~]/2", // Db
G: "~@2 db4@4 ~@13 eb4@9 gb3@4, ~@3 eb3@13, ~@11 gb3@14 ~@7, ~@15 bb3@13 ~@4",
H: "[~@4 eb4@4 ~@13 eb4@9 ~@4 b3@4 eb4@4 ~@13 db4@9, bb3@7 ~ b2@34 ~ bb2@21, ~@13 gb3@14 ~@3 gb3@11 ~@6 gb3@14 ~@3, ~@17 b3@12 ~@22 bb3@12 ~]/2",
I: "~@4 bb3@4 db4@4 ~@9 b3@4 eb4@7, gb3@12 ~ b2@19, ~@17 gb3@15",
J: "[~@6 b3@4 eb4@4 ~@14 db4@8 ~@4 bb3@5 db4@4 ~@26 c4@4 eb4@4 ~@9 ab3@4, ~@2 gb3@10 ~@3 gb2@33 ~ [ab2,eb3]@33 ~ db3@13, ~@19 db3@27 ~@11 c4@12 ~@27, ~@23 gb3@10 ~@3 gb3@11 ~@6 ab3@13 ~@4 ab3@9 ~@8 f3@9, ~@31 eb4@6 ~@11]/3", // Ab5
K: "[~@13 ab3@4 f4@4 [db3,f3,ab3]@26 ~@36 db4@4 ~@25 b3@4 eb4@4 ~@25 bb3@4 db4@4 ~@4 gb3@3, f4@11 ~@43 db4@8 bb3@13 ~@4 bb3@7 ~@9 b3@13 ~@12 db4@10 ~@2 db4@12 ~@16, ~@8 f3@10 ~@36 gb2@31 ~@2 b2@33 bb2@33 ~@7, ~@58 gb3@14 ~@3 gb3@12 ~@4 gb3@14 ~@3 gb3@11 ~@5 f3@14 ~@3 f3@10 ~@2 [eb3,eb4]@7, ~@67 db4@12 ~@8 eb4@10 ~@2 eb4@13 ~@16 bb3@12 ~@20]/5", // Db Eb
L: "[~@18 bb3@4 eb4@3 ~@9 b3@4 eb4@8 ~@5 b3@4 eb4@4 ~@16 ab3@2 ~@6 db4@4 f4@3 ~@26 db4@4 gb4@3 ~@25 eb4@4 gb4@4 ~@25 db4@4 f4@4 ~@29 eb4@4 ~@8 db4@4 ~@12 db4@4 f4@4 [gb3,gb4]@2, ~ bb3@12 gb3@9 ~@4 b2@33 db3@31 ~@5 bb3@13 ~@4 bb3@15 ~ bb3@14 ~@2 bb3@12 ~@5 bb3@13 ~@3 bb3@9 ~@7 gb3@14 ~@3 gb3@10 ~@6 ab3@14 ~@2 ab3@9 ~@5, ~@5 eb4@13 ~@8 eb4@9 ~@24 f4@8 db4@12 ab3@10 ~@2 gb3@32 ~ eb3@33 bb2@26 ~@6 b2@32 ~ db3@32 ~@2, ~@30 gb3@13 ~@3 gb3@9 ~@8 ab3@8 f4@11 ~@9 gb4@9 db4@12 ~@20 eb4@13 ~@20 db4@12 ~@12 eb4@10 ~@2 eb4@13 ~@8 f4@9 ~@3 f4@13 ~@9, ~@104 gb4@13 ~@7 gb4@9 ~@3 gb4@13 ~@8 f4@9 ~@3 f4@13 ~@15 b3@13 ~@4 b3@9 ~@33]/8", // Gb
M: "[~@22 db4@4 gb4@3 ~@30 f4@4 ~@24 eb4@4 g4@4 ~@24 d4@4 f4@4 ~@25 d4@4 g4@3 ~, ~@2 bb3@12 gb3@14 ~@3 bb2@30 ~@2 eb3@32 d3@33 ~@11 g4@13 ~@8, ~@6 db4@12 bb3@10 ~@7 bb3@14 ~@2 bb3@12 ~@4 bb3@14 ~@2 bb3@11 ~@5 a3@14 ~@2 a3@10 ~@2 g3@31 ~@2, ~@10 gb4@13 ~@8 f4@8 d4@13 ~@3 d4@7 ~@9 eb4@13 ~@11 f4@10 ~@2 f4@12 ~@8 g4@9 d4@13 ~@11, ~@43 f4@12 ~@8 g4@9 ~@3 g4@13 ~@15 d4@12 ~@16 bb3@13 ~@4 bb3@9 ~@3]/5",
N: "~@2 eb4 g4@2 ~ eb4 g4, eb3, g4@9 ~@23, ~@4 bb3@13 ~@3 bb3@9 ~@3",
O: "~@16 c4@2 ~@6 f4@4 a4@3 ~, f3@15 ~, a4@8 f4@11 ~ c4@10 ~@2, ~@4 c4@8 a4@11 ~@9",
P: "~@12 f4@2 bb4 ~, bb2@15 ~, bb3@12 bb4@13 ~@7, bb4@4 f4@6 d4@5 ~, ~@2 d4@6 bb3@7 ~",
Q: "d4@2 ~@22 g4@4 bb4@3 ~, g3@15 ~ g3@15 ~, bb4@2 g4@3 ~@3, ~@2 d4@7 ~ d4@5 ~, ~@12 bb4@13 ~@7",
R: "~@6 f4 a4, d3, a4@8 f4@12 d4@11 ~, ~@4 d4@12 a3@13 ~@3, ~@12 a4@13 ~@7",
S: "~@24 g4@4 bb4@3 ~, g3@15 ~, bb4@8 g4@12 d4@9 ~@3, ~@2 d4@6 g2@7 ~, ~@6 bb4@7 ~@3",
T: "~@2 g4 ~@4 bb4, eb3, bb4@9 ~@3 bb4@12 g4@8, ~@4 eb4@11 ~@5 eb4@11 ~",
U: "~@24 a4@4 bb4@3 ~, f3@31 ~, c5@2 a4@3 ~@3, ~@4 f4@13 ~@3 f4@9 ~@3, ~@12 c5@13 ~@7",
V: "~@8 f4@4 ~@12 f4@4 bb4@3 ~, [bb2,bb3]@31 ~, bb4@10 ~@2 bb4@13 ~@7, ~@4 d4@10 ~@6 d4@9 ~@3", // Bb
W: "[db3,db4,f4,ab4]@7 ~@25", // Db
X: "~@28 db4@3 ~, gb2@15 ~, db4@8 bb3@13 ~@3 bb3@7 ~, ~@4 gb3@13 ~@3 gb3@12, ~@3 db4@3 ~@2",
Y: "~@6 b3 eb4, b2, eb4@8 b3@13 ~@11, ~@4 gb3@14 ~@2 gb3@11 ~, ~@12 eb4@13 ~@7",
Z: "~@6 bb3 db4, bb2, db4@2 bb3@3 ~@3, ~@2 f3@7 ~ f3@5 ~, ~@3 db4@3 ~@2",
AA: "~@24 bb3@4 eb4@3 ~, eb3@15 ~, eb4@2 bb3@3 ~@3, ~@4 gb3@13 ~@3 gb3@9 ~@3, ~@12 eb4@13 ~@7",
AB: "~@2 b3 eb4@2 ~ b3 eb4, b2, eb4@9 ~@23, ~@4 gb3@13 ~@3 gb3@9 ~@3",
AC: "~@16 ab3@2 ~@6 db4@4 f4@3 ~, db3@15 ~, f4@8 db4@11 ~ ab3@10 ~@2, ~@4 ab3@8 f4@11 ~@9",
AD: "[~@24 db4@4 gb4@3 ~@25 eb4@4 gb4@4, gb3@31 ~ eb3@32, gb4@2 db4@3 ~@5 eb4@3 ~@3, ~@4 bb3@13 ~@3 bb3@15 ~ bb3@13 ~@3 bb3@12, ~@12 gb4@12 ~@8 gb4@9 ~@3 gb4@13 ~@7]/2",
AE: "~@6 db4 f4, bb2@25 ~@7, f4@2 db4@3 ~@3, ~@4 bb3@13 ~@3 bb3@9 ~@3, ~@3 f4@3 ~@2",
AF: "~@7 eb4, b2@31 ~, eb4@2 b3@3 ~ b3@2, ~@2 gb3@7 ~ gb3@5 ~, ~@3 eb4@3 ~@2",
AG: "~@2 db4 ~@3 db4 f4, db3, f4@9 ~@3 f4@13 ~@7, ~@4 ab3@14 ~@2 ab3@9 ~@3",
AH: "~@24 db4@4 gb4@3 ~, gb3@12 gb4@13 ~@7, gb4@4 db4@6 bb3@5 ~, ~@2 bb3@6 gb3@7 ~",
AI: "~@7 f4, bb2@15 ~, f4@8 d4@13 ~@3 d4@7 ~, ~@4 bb3@13 ~@3 bb3@12, ~@3 f4@3 ~@2",
AJ: "~@6 eb4 g4, eb3, g4@8 eb4@13 ~@11, ~@4 bb3@14 ~@2 bb3@11 ~, ~@12 g4@13 ~@7",
AK: "~@6 d4 f4, d3, f4@2 d4@3 ~@3, ~@2 a3@7 ~ a3@5 ~, ~@3 f4@3 ~@2",
AL: "~@24 d4@4 g4@3 ~, g3@15 ~, g4@2 d4@3 ~@3, ~@4 bb3@13 ~@3 bb3@9 ~@3, ~@12 g4@13 ~@7",
AM: "~@24 f4@4 bb4@3 ~, bb3@29 ~@3, bb4@2 f4@3 d4@2 ~, ~@4 d4@8 bb4@13 ~@7, ~@6 bb2@9 ~",
AN: "~@6 g4 bb4, eb3@31 ~, bb4@2 g4@3 ~@3, ~@2 eb4@6 ~@2 eb4@5 ~, ~@12 bb4@13 ~@7",
AO: "~@6 f4 a4, d3@6 a4@7 ~@3, a4@8 f4@11 ~ d4@9 ~@3, ~ d4@3 d3@4",
AP: "[d4,g4] ~@2 bb4@3 g4 bb4, g3@17 ~@7 g3@8, bb4@8 g4@13 ~@11, ~@4 d4@27 ~", // G5
AQ: "~@24 f4@4 a4@3 ~, f3@15 ~ f3@16, a4@8 f4@13 ~@11, ~@2 c4@7 ~ c4@5 ~, ~@3 a4@3 ~@2",
AR: "~@28 g4@3 ~, eb3@17 ~@7 [eb3,eb4]@8, g4@2 eb4@3 ~@3, ~@4 bb3@14 ~@2 bb3@9 ~@3, ~@12 g4@11 ~@9", // Eb
AS: "[bb2,d4,f4,bb4]", // Bb
})).s("gm_piano").gain(0.42)
// chords · flute
const flute = note(`<
~@25 A B C D E F G H I J K L ~ M N O P Q R S P T P Q R ~@2 U V W X V Y U X Z V AA ~ S Q T P Q R S P T P Q R S Q T P AB
Q ~@2
>`.pickRestart({
A: "~@31 [db6,gb6,bb6]", B: "~@11 [db6,gb6,bb6] ~@19 [eb6,gb6,b6]", C: "~@12 [eb6,gb6,b6] ~@19",
D: "[db6,f6,bb6] ~@12 [db6,f6,bb6] ~@18", E: "~ [eb6,gb6,bb6] ~@11 [eb6,gb6,bb6] ~@18",
F: "~@2 [eb6,gb6,b6] ~@11 [eb6,gb6,b6] ~@17", G: "~@3 [f6,ab6,db7] ~@11 [f6,ab6,db7] ~@16",
H: "~@4 [db6,gb6,bb6] ~@11 [db6,gb6,bb6] ~@15", I: "~@4 [eb6,gb6,bb6] ~@11 [eb6,gb6,bb6] ~@15",
J: "~@5 [db6,f6,bb6] ~@11 [db6,f6,bb6] ~@14", K: "~@5 [eb6,gb6,b6] ~@11 [eb6,gb6,b6] ~@14",
L: "~@6 [f6,ab6,db7] ~@11 [f6,ab6,db7] ~@13", M: "~@7 [d6,f6,bb6] ~@11 [d6,f6,bb6] ~@12",
N: "~@7 [eb6,g6,bb6] ~@11 [eb6,g6,bb6] ~@12", O: "~@7 [d6,f6,a6] ~@11 [d6,f6,a6] ~@12",
P: "~@8 [d6,g6,bb6] ~@11 [d6,g6,bb6] ~@11", Q: "~@8 [eb6,g6,bb6] ~@11 [eb6,g6,bb6] ~@11",
R: "~@8 [f6,a6,c7] ~@11 [f6,a6,c7] ~@11", S: "~@8 [d6,f6,bb6] ~@11 [d6,f6,bb6] ~@11",
T: "~@8 [d6,f6,a6] ~@11 [d6,f6,a6] ~@11", U: "~@8 [db6,gb6,bb6] ~@11 [db6,gb6,bb6] ~@11",
V: "~@8 [eb6,gb6,b6] ~@11 [eb6,gb6,b6] ~@11", W: "~@8 [db6,f6,bb6] ~@11 [db6,f6,bb6] ~@11",
X: "~@8 [eb6,gb6,bb6] ~@11 [eb6,gb6,bb6] ~@11", Y: "~@8 [f6,ab6,db7] ~@11 [f6,ab6,db7] ~@11",
Z: "~@8 [eb6,ab6,b6] ~@23", AA: "~@8 [db6,f6,ab6] ~@11 [db6,f6,ab6] ~@11", AB: "~@8 [c6,f6,a6] ~@11 [c6,f6,a6] ~@11",
})).s("gm_flute").gain(0.09).pan(0.4)
// drums · kick
const kick = s("bd").struct(`<
~@17 A B C D E F G H I J K L M N O P Q R S T U V@3 W X Y Z X@4 Y X AA X@11 Y X@5 Y Z X@4 Y Z X@4 Y AA ~
>`.pickRestart({
A: "~@6 x ~@12 x ~@12", B: "~@8 x ~@12 x ~@4 x ~@5", C: "~@11 x ~@11 x ~@4 x ~@3", D: "~@13 x ~@11 x ~@4 x ~",
E: "~@15 x ~@16", F: "~@17 x ~@14", G: "~@19 x ~@12", H: "~@21 x ~@10", I: "~@11 x ~@4", J: "~@3 x ~@3 x ~@15 x ~@8",
K: "~ x!2 ~@3 x ~", L: "~@4 x ~@3 x ~@16 x ~@6", M: "~@5 x ~@3 x ~@16 x ~@5", N: "~@6 x ~@3 x ~@16 x ~@4",
O: "~@7 x ~@3 x ~@15 x ~@4", P: "~@2 x!2 ~@3 x", Q: "~@8 x ~@3 x ~@16 x ~@2", R: "~@9 x ~@3 x ~@15 x ~@2",
S: "~@9 x ~@3 x ~@16 x ~", T: "~@5 x ~ x ~@7 x", U: "~@4 x ~@9 x ~@16 x", V: "~@11 x ~@3 x ~@15 x", W: "~@3 x!2 ~@3",
X: "x ~@2 x!2 ~@3", Y: "x ~@2 x ~@4 x ~@7", Z: "x ~@2 x!2 ~@2 x", AA: "x",
})).gain(0.38)
// drums · snare
const snare = s("sd").struct(`<
~@17 A B C D E ~@2 F G H I J K L M N@2 O P Q R S@3 T@2 U V T@2 W T X Y Z T@5 AA T@5 X T@5 U V T@2 W T AB V T@2 W T AB
~@2
>`.pickRestart({
A: "~@15 x ~@12 x ~@3", B: "~@4 x ~@12 x ~@12 x ~", C: "~@6 x ~@12 x ~@12", D: "x ~@7 x ~@12 x ~@10",
E: "~@2 x ~@8 x ~@20", F: "~@21 x ~@5 x ~@4", G: "~@31 x", H: "~@11 x ~@7 x ~@11 x", I: "~@3 x ~ x ~@2",
J: "x ~@12 x ~@7 x ~@10", K: "~ x ~@11 x ~@8 x ~@9", L: "~@2 x ~@11 x ~@8 x ~@8", M: "~@3 x ~@28",
N: "~ x ~@2 x ~ x ~", O: "~@5 x ~@11 x ~@7 x ~@6", P: "~@5 x ~@11 x ~@8 x ~@5", Q: "~@3 x ~@5 x ~@3 x ~ x",
R: "~@3 x ~ x ~@10", S: "~@7 x ~@11 x ~@7 x ~@4", T: "~@2 x ~@2 x ~ x", U: "x ~@3 x!4 ~@4 x!2 ~@2",
V: "~@4 x ~@5 x ~@2 x ~@2", W: "~@4 x ~@4 x!2 ~@3 x ~", X: "x ~ x!2 ~@4", Y: "~@8 x ~@11 x ~@9 x!2", Z: "x",
AA: "~ x ~@2", AB: "x ~@3 x ~ x ~@2 x ~ x ~ x ~@2",
})).gain(0.38)
// drums · low tom
const low_tom = s("lt").struct("<~@25 [~@7 x ~ x ~@6] ~@49 [~@14 x!2] ~@5 [~@14 x!2] ~@2>").gain(0.33)
// drums · hihat
const hihat = s("hh").struct(`<
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 AC AD AE AF AG AH AI AJ AK AL AM@3 AN AO AP AQ AO@4 AP AO ~
AQ AO@4 AR AQ AO@4 AP AQ AO@4 AP AQ AO@4 AP AQ AO@4 AP ~@2
>`.pickRestart({
A: "~@5 x ~@7 x ~@12 x ~@5", B: "~@7 x ~@7 x ~@12 x ~@3", C: "x ~ x ~@6 x ~@7 x ~@12 x ~", D: "~@11 x ~@7 x ~@12",
E: "x ~ x ~@4 x ~@5 x ~@8 x ~@9", F: "~@2 x ~@12 x ~@8 x ~@7", G: "~@4 x ~@4 x ~ x ~@5 x ~@8 x ~@5",
H: "~@7 x ~@11 x ~@8 x ~@3", I: "~@9 x ~ x ~@3 x ~@5 x ~@8 x ~", J: "~@11 x ~@12 x ~@7",
K: "x ~@12 x ~@3 x ~ x ~@6 x ~@5", L: "~@2 x ~@12 x ~@12 x ~@3", M: "~@4 x ~@12 x ~ x ~@3 x ~@6 x ~",
N: "~@6 x ~@12 x ~@12", O: "x ~@8 x ~@11 x ~@4 x ~ x ~@3", P: "~@2 x ~@8 x ~@11 x ~@8",
Q: "~@4 x ~@8 x ~@12 x ~ x ~@3", R: "x ~@5 x ~@4 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3",
S: "x ~@7 x ~@4 x ~@3 x ~@3 x ~@4 x ~@3 x ~", T: "~@2 x ~@8 x ~@3 x ~@3 x ~@3 x ~@4 x ~@3",
U: "x ~@3 x ~@8 x ~@3 x ~@3 x ~@3 x ~@4 x ~", V: "~@2 x ~@3 x ~@8 x ~@7 x ~@8", W: "~@4 x ~@12 x ~@7 x ~@6",
X: "~@6 x ~ x ~ x ~@8 x ~@8 x ~@3", Y: "~ x ~@2", Z: "~@26 x ~@4 x", AA: "~@3 x ~@3 x ~@3 x ~@3 x ~@7 x ~@3 x ~@3 x",
AB: "~ x!4 ~ x!2", AC: "x ~@3 x ~@3 x ~@4 x ~@3 x ~@7 x ~@3 x ~@2", AD: "~ x ~@3 x ~@3 x ~@3 x ~@4 x ~@7 x ~@3 x ~",
AE: "~@2 x ~@3 x ~@3 x ~@3 x ~@3 x ~@8 x ~@3 x", AF: "~@3 x ~@3 x ~@23 x", AG: "~ x!5 ~ x",
AH: "x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@8 x ~@2", AI: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@7 x ~@2",
AJ: "~ x ~@3 x ~@3 x ~@3 x ~@3 x ~@4 x ~@7 x ~", AK: "~ x ~ x ~ x ~ x ~ x ~ x ~@3 x", AL: "~ x ~@3 x ~@10",
AM: "~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@3 x ~@7 x", AN: "~@3 x ~@4 x ~@3 x ~@3 x ~@3 x ~@3 x ~@7", AO: "x!7 ~",
// … 40 more lines
More by Mina
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.