0:00/0:00
// K.K. Cruisin' — Kazumi Totaka
// 165 bpm, 4/4, key Db major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5825480; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 157 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(165/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.
// other · glockenspiel
const glockenspiel = note(`<
A@2 ~@19 B@3 C D E@2 F G H I J K L ~@66 M N O@2 M N P Q R@3 S T ~ U V R@3 S T ~ U V W X Y@2 W X Z AA AB AC AD@2 AB AC
AE AF AG@3 AH AI ~ AJ AK AL AM AN AO AP AQ ~@2
>`.pickRestart({
A: "[bb6@2 eb7 ~@2 db7 ~@2 bb6 ~@2 ab6@3 gb6 ab6@2 bb6 gb6@2 eb6 ~@3]/2",
B: "[~@6 eb7@3 db7@2 bb6@10 gb6@2 bb6@10 ~@3]/3", C: "~@4 eb7 bb6", D: "a6 ab6 gb6@4", E: "[~@3 a6 ab6 gb6@4 ~@3]/2",
F: "bb6 db7 eb7 gb7", G: "bb7@9 bb7@2 ab7", H: "~@6 bb6@2 db7 eb7@3", I: "bb7@3 bb7 ab7 gb7",
J: "f7@2 eb7@2 db7@2 ~@5 c7", K: "bb6@9 ~@2 ab6", L: "gb6 ~@5", M: "bb6@3 ab6@2 ab6 ~@6", N: "ab6@3 gb6@2 gb6 ~@6",
O: "[ab6@3 gb6@2 gb6 ~@2 eb6@3 bb6@4 ab6@2 ab6 ~@6]/2", P: "ab6!2 db6 eb6", Q: "gb6@3 ab6@3 bb6@2 db7@4",
R: "[~@6 [eb6,eb7]@3 [gb6,gb7]@2 [d6,d7]@10 [bb5,bb6]@2 [eb6,eb7]@10 ~@3]/3", S: "~@4 [eb6,eb7] [bb5,bb6]",
T: "[a5,a6] [ab5,ab6] [gb5,gb6]@4", U: "[db6,db7] [eb6,eb7] [gb6,gb7] [ab6,ab7]",
V: "[bb5,bb6] [db6,db7] [eb6,eb7] [gb6,gb7]", W: "[bb6,bb7]@3 [ab6,ab7]@2 [ab6,ab7] ~@6",
X: "[ab6,ab7]@3 [gb6,gb7]@2 [gb6,gb7] ~@6", // Ab Gb
Y: "[[ab6,ab7]@3 [gb6,gb7]@2 [gb6,gb7] ~@2 [eb6,eb7]@3 [bb6,bb7]@4 [ab6,ab7]@2 [ab6,ab7] ~@6]/2", // Ab Gb Eb Bb Ab
Z: "[ab6,ab7] ~ [ab6,ab7] ~ [db6,db7]@2 [eb6,eb7]@2", AA: "[gb6,gb7]@3 [ab6,ab7]@3 [bb6,bb7]@2 db7@4",
AB: "[b6,b7]@3 [a6,a7]@2 [a6,a7] ~@6", AC: "[a6,a7]@3 [g6,g7]@2 [g6,g7] ~@6",
AD: "[[a6,a7]@3 [g6,g7]@2 [g6,g7] ~@2 [e6,e7]@3 [b6,b7]@4 [a6,a7]@2 [a6,a7] ~@6]/2", // A G E B A
AE: "[a6,a7] ~ [a6,a7] ~ [d6,d7]@2 [e6,e7]@2", AF: "[g6,g7]@3 [a6,a7]@3 [b6,b7]@2 d7@4",
AG: "[~@6 [e6,e7]@3 [g6,g7]@2 [eb6,eb7]@10 [b5,b6]@2 [e6,e7]@10 ~@3]/3", AH: "~@4 [e6,e7] [b5,b6]",
AI: "[bb5,bb6] [a5,a6] [g5,g6]@4", AJ: "[d6,d7] [e6,e7] [g6,g7] [a6,a7]", AK: "[b5,b6] [d6,d7] [e6,e7] [g6,g7]",
AL: "[b6,b7]@9 [b6,b7]@2 [a6,a7]", AM: "~@6 [b5,b6]@2 [d6,d7] [e6,e7]@3", AN: "[b6,b7]@3 [b6,b7] [a6,a7] [g6,g7]",
AO: "[gb6,gb7]@2 [e6,e7]@2 [d6,d7]@2 ~@5 db7", AP: "b6@9 ~@2 a6", AQ: "g6 ~@5",
})).s("gm_glockenspiel").gain(0.4)
// other · vibraphone
const vibraphone = note(`<
A@2 ~@3 B@3 C D ~ E F B@3 G H ~ I J K@3 C D ~ L M K@3 G H ~ N O ~@32 P Q R@2 P Q S T P Q R@2 P Q S T P Q R@2 P Q S T P
Q R@2 P Q S T P U V@2 P U W ~ X@3 Y Z AA AB AC X@3 Y Z AA AB AC AD AE AF@2 AD AE AG AH AI AJ AK@2 AI AJ AL AM AN@3 AO
AP AQ AR AS AT@3 AU AV ~ AW AX
>`.pickRestart({
A: "[bb4@2 eb5 ~@2 db5 ~@2 bb4 ~@2 ab4@3 gb4 ab4@2 bb4 gb4@2 eb4 ~@3]/2",
B: "[~@12 d5 eb5@5 gb5@4 d5@20 bb4@4 f5@20 ~@6]/3", C: "~@4 eb5 bb4", D: "a4 ab4 gb4@4", E: "db4 eb4 gb4 ab4",
F: "bb4 db5 eb5 gb5", G: "~@4 bb5 ab5", H: "gb5@3 ab5@2 f5@6 ~", I: "~@6 db5@2 bb4@3 ~",
J: "bb4@4 db5@6 ~@2 db5 eb5@5 ~@6", K: "[~@6 eb5@3 gb5@2 d5@10 bb4@2 f5@10 ~@3]/3", L: "f4 gb4 bb4 c5",
M: "eb5 gb5 ab5 db6", N: "~@2 db5 ~", O: "eb5 ~ gb5 ~", P: "[bb4,bb5]@3 [ab4,ab5]@2 [ab4,ab5] ~@6",
Q: "[ab4,ab5]@3 [gb4,gb5]@2 [gb4,gb5] ~@6", // Ab Gb
R: "[[ab4,ab5]@3 [gb4,gb5]@2 [gb4,gb5] ~@2 [eb4,eb5]@3 [bb4,bb5]@4 [ab4,ab5]@2 [ab4,ab5] ~@6]/2", // Ab Gb Eb Bb Ab
S: "[ab4,ab5] ~ [ab4,ab5] ~ db4@2 eb4@2", T: "gb4@3 ab4@3 bb4@2 db5@4", U: "[ab4,ab5]@3 [f4,f5]@2 [f4,f5] ~@6",
V: "[[ab4,ab5]@3 [f4,f5]@2 [f4,f5] ~@2 [f4,f5]@3 [bb4,bb5]@4 [g4,g5]@2 [g4,g5] ~@6]/2", W: "[ab4,ab5]!2 ~@2",
X: "[~@6 [eb4,eb5]@3 [db4,db5]@2 bb3 bb3@9 [gb3,gb4]@2 bb3 bb3@9 ~@3, ~@11 bb4@10 ~@2 bb4@10 ~@3]/3", // Eb Db Gb
Y: "~@4 [eb4,eb5] [bb3,bb4]", Z: "[a3,a4] [ab3,ab4] [gb3,gb4]@4", AA: "~@3 [a4,a5] [ab4,ab5] [gb4,gb5]",
AB: "[f4,f5] [gb4,gb5] [bb4,bb5] [c5,c6]", AC: "[eb4,eb5] [gb4,gb5] [ab4,ab5] [db5,db6]",
AD: "[f4,f5]@3 [eb4,eb5]@2 [eb4,eb5] ~@6", AE: "[eb4,eb5]@3 [eb4,eb5]@2 [eb4,eb5] ~@6",
AF: "[[eb4,eb5]@3 [eb4,eb5]@2 [eb4,eb5] ~@2 [bb3,bb4]@3 [f4,f5]@4 [eb4,eb5]@2 [eb4,eb5] ~@6]/2", // Eb Bb F Eb
AG: "[eb4,eb5] ~ [eb4,eb5] ~ [ab3,ab4]@2 [bb3,bb4]@2", AH: "[db4,db5]@3 [eb4,eb5]@3 [f4,f5]@2 [ab4,ab5]@4",
AI: "[gb4,gb5]@3 [e4,e5]@2 [e4,e5] ~@6", AJ: "[e4,e5]@3 [e4,e5]@2 [e4,e5] ~@6",
AK: "[[e4,e5]@3 [e4,e5]@2 [e4,e5] ~@2 [b3,b4]@3 [gb4,gb5]@4 [e4,e5]@2 [e4,e5] ~@6]/2", // E B Gb E
AL: "[e4,e5] ~ [e4,e5] ~ [a3,a4]@2 [b3,b4]@2", AM: "[d4,d5]@3 [e4,e5]@3 [gb4,gb5]@2 [a4,a5]@4",
AN: "[~@6 [e4,e5]@3 [d4,d5]@2 b3 b3@9 [g3,g4]@2 b3 b3@9 ~@3, ~@11 b4@10 ~@2 b4@10 ~@3]/3", AO: "~@4 [e4,e5] [b3,b4]",
AP: "[bb3,bb4] [a3,a4] [g3,g4]@4", AQ: "~@3 [bb4,bb5] [a4,a5] [g4,g5]", AR: "[gb4,gb5] [g4,g5] [b4,b5] [db5,db6]",
AS: "[e4,e5] [g4,g5] [a4,a5] [d5,d6]", AT: "[~@6 [e4,e5]@3 [g4,g5]@2 [eb4,eb5]@10 [b3,b4]@2 [e4,e5]@10 ~@3]/3",
AU: "~@4 b5 a5", AV: "g5@3 a5@2 gb5@6 ~", AW: "~@2 d5 ~", AX: "e5 ~ g5 ~",
})).s("gm_vibraphone").gain(0.4)
// other · vibraphone
const vibraphone_2 = note(`<
~@21 A@3 B C ~ D E A@3 ~@5 F@2 G@2 H@2 I@2 H@2 G@2 H@2 I@2 F@2 G@2 H@2 I@2 H@2 G@2 H@2 I@2 ~@8 J K L@2 J K M N J K L@2
J K M N J K L@2 J K M N J K L@2 J K O ~ A@3 B C ~ D E A@3 B C ~ D E J K L@2 J K P Q R S T@2 R S U V W@3 X Y ~ Z AA W@3
~@5
>`.pickRestart({
A: "[~@6 eb4@3 gb4@2 d4@10 bb3@2 f4@10 ~@3]/3", B: "~@4 bb4!2", C: "eb5 bb4 bb4@4", D: "db4 eb4 gb4 ab4",
E: "bb4 db5 eb5 gb5", F: "[[b3,gb4,eb5,bb5]@11 [bb3,f4,d5,ab5]@13]/2",
G: "[[bb3,eb4,db5,gb5]@11 [c4,eb4,eb5,gb5]@13]/2", H: "[[b3,gb4,eb5,bb5]@11 [bb3,f4,db5,ab5]@13]/2",
I: "[[bb3,eb4,db5,gb5]@11 [b3,gb4,eb5,ab5]@13]/2", J: "[eb4,eb5]@3 [db4,db5]@2 [db4,db5] ~@6",
K: "[db4,db5]@3 [bb3,bb4]@2 [bb3,bb4] ~@6", // Db Bb
L: "[[db4,db5]@3 [bb3,bb4]@2 [bb3,bb4] ~@2 [bb3,bb4]@3 [eb4,eb5]@4 [c4,c5]@2 [c4,c5] ~@6]/2", // Db Bb Eb C
M: "[db4,db5]!2 db5 eb5", N: "gb5@3 ab5@3 bb5@2 db6@4", O: "[db4,db5]!2 ~@2", P: "[db4,db5]!3 [eb4,eb5]",
Q: "[gb4,gb5]@3 [ab4,ab5]@3 [bb4,bb5]@2 [db5,db6]@4", R: "[e4,e5]@3 [d4,d5]@2 [d4,d5] ~@6",
S: "[d4,d5]@3 [b3,b4]@2 [b3,b4] ~@6", // D B
T: "[[d4,d5]@3 [b3,b4]@2 [b3,b4] ~@2 [b3,b4]@3 [e4,e5]@4 [db4,db5]@2 [db4,db5] ~@6]/2", U: "[d4,d5]!3 [e4,e5]",
V: "[g4,g5]@3 [a4,a5]@3 [b4,b5]@2 [d5,d6]@4", W: "[~@6 e4@3 g4@2 eb4@10 b3@2 gb4@10 ~@3]/3", X: "~@4 b4!2",
Y: "e5 b4 b4@4", Z: "d4 e4 g4 a4", AA: "b4 d5 e5 g5",
})).s("gm_vibraphone").gain(0.3)
// chords · xylophone
const xylophone = note(`<
~@21 A B C D A E F G A B C D ~@4 H@2 I@2 J@2 K@2 H@2 L@2 M@2 N@2 H@2 I@2 J@2 K@2 H@2 L@2 M@2 N@2 ~@32 O P Q@2 O P R ~
S@2 T@2 U@2 V@2 S@2 T@2 U@2 V@2 W X Y@2 W X Z AA AB AC AD@2 AB AC AE AF AG@2 AH@2 AI@2 AJ@2 AG@2 AK@2 ~@4
>`.pickRestart({
A: "[eb5,gb5]@2 [eb5,gb5] [eb5,gb5]@3 [bb5,eb6]@6", B: "[d5,f5]@2 [d5,f5] [d5,f5]@3 [bb5,d6]@6",
C: "[gb5,bb5]@2 [gb5,bb5] [gb5,bb5]@3 [eb6,gb6]@6", D: "[c5,eb5]@5 [c5,eb5]@4 [c5,eb5]@3",
E: "[db5,f5]@2 [db5,f5] [db5,f5]@3 [bb5,db6]@6", F: "db5 eb5 gb5 ab5", G: "bb5 db6 eb6 gb6",
H: "[[b5,eb6]@3 [b5,eb6]@3 ~@5 [bb5,d6]@3 ~ [bb5,d6]@3 ~@6]/2", // B Bb
I: "[[eb6,gb6]@3 [db6,eb6]@3 ~@5 [c6,f6]@3 ~ [c6,eb6]@3 ~@6]/2", // Ebm Dbsus2 F5 Cm
J: "[[b5,eb6]@3 [b5,eb6]@3 ~@5 [bb5,db6]@3 ~ [bb5,db6]@3 ~@6]/2", // B Bbm
K: "[[bb5,eb6]@3 [bb5,eb6]@3 ~@5 [b5,eb6]@3 ~ [b5,eb6]@3 ~@6]/2", // Eb5 B
L: "[[eb6,gb6]@3 [eb6,gb6]@3 ~@5 [eb6,gb6]@3 ~ [eb6,gb6]@3 ~@6]/2", // Ebm
M: "[[b5,eb6]@3 [b5,eb6]@3 ~@5 db6 f6@2 ~ [bb5,f6]@3 ~@6, ~@11 bb5@3 ~@10]/2", // B Bb5
N: "[[eb6,gb6]@3 [eb6,gb6]@3 ~@5 [b5,eb6]@3 ~ [b5,eb6]@3 ~@6]/2", // Ebm B
O: "bb5 gb5 eb5 bb5 gb5 eb5 bb5 gb5 eb5 bb5 gb5 eb5", P: "bb5 f5 db5 bb5 f5 db5 bb5 f5 db5 bb5 f5 db5",
Q: "bb5 ab5 eb5 bb5 ab5 eb5 bb5 ab5 eb5 bb5 ab5 eb5", R: "[db5,f5,ab5]!2 ~@2",
S: "[[b5,eb6,gb6,bb6]@6 [b5,eb6,gb6,bb6]@3 ~@13 [bb5,d6,f6,ab6]@6 ~@2 [bb5,d6,f6,ab6]@3 ~@15]/2", // Bmaj7 Bb7
T: "[[eb6,gb6,bb6,db7]@6 [eb6,gb6,bb6,db7]@3 ~@13 [eb6,gb6,c7,f7]@6 ~@2 [eb6,gb6,c7,f7]@3 ~@15]/2", // Ebm7 Cdim
U: "[[b5,eb6,gb6,bb6]@6 [b5,eb6,gb6,bb6]@3 ~@13 [bb5,db6,f6,ab6]@6 ~@2 [bb5,db6,f6,ab6]@3 ~@15]/2", // Bmaj7 Bbm7
V: "[[bb5,eb6]@6 [bb5,eb6]@3 ~@13 [b5,eb6,gb6,ab6]@6 ~@2 [b5,eb6,gb6,ab6]@3 ~@15]/2", // Eb5 Abm7
W: "[eb5,eb6]@3 [db5,db6]@2 [db5,db6] ~@6", X: "[db5,db6]@3 [bb4,bb5]@2 [bb4,bb5] ~@6",
Y: "[[db5,db6]@3 [bb4,bb5]@2 [bb4,bb5] ~@2 [bb4,bb5]@3 [eb5,eb6]@4 [c5,c6]@2 [c5,c6] ~@6]/2", // Db Bb Eb C
Z: "[db5,db6]!3 [eb5,eb6]", AA: "[gb5,gb6]@3 [ab5,ab6]@3 [bb5,bb6]@2 db6@4", AB: "[e5,e6]@3 [d5,d6]@2 [d5,d6] ~@6",
AC: "[d5,d6]@3 [b4,b5]@2 [b4,b5] ~@6", // D B
AD: "[[d5,d6]@3 [b4,b5]@2 [b4,b5] ~@2 [b4,b5]@3 [e5,e6]@4 [db5,db6]@2 [db5,db6] ~@6]/2", AE: "[d5,d6]!3 [e5,e6]",
AF: "[g5,g6]@3 [a5,a6]@3 [b5,b6]@2 d6@4", // G A B
AG: "[[c6,e6,g6,b6]@6 [c6,e6,g6,b6]@3 ~@13 [b5,eb6,gb6,a6]@6 ~@2 [b5,eb6,gb6,a6]@3 ~@15]/2", // Cmaj7 B7
AH: "[[e5,g5,b5,d6]@6 [e5,g5,b5,d6]@3 ~@13 [e5,g5,db6,gb6]@6 ~@2 [e5,g5,db6,gb6]@3 ~@15]/2", // Em7 Dbdim
AI: "[[c6,e6,g6,b6]@6 [c6,e6,g6,b6]@3 ~@13 [b5,d6,gb6,a6]@6 ~@2 [b5,d6,gb6,a6]@3 ~@15]/2", // Cmaj7 Bm7
AJ: "[[b5,e6]@6 [b5,e6]@3 ~@13 [c6,e6,g6,a6]@6 ~@2 [c6,e6,g6,a6]@3 ~@15]/2", // E5 Am7
AK: "[[e6,g6,b6,d7]@6 [e6,g6,b6,d7]@3 ~@13 [e6,g6,db7,gb7]@6 ~@2 [e6,g6,db7,gb7]@3 ~@3 [db5,e5]@6 [db5,e5]@6]/2", // Em7 Dbdim Dbm
})).s("gm_xylophone").gain(0.3)
// bass · acoustic bass · "Contrabass"
const bass = note(`<
~@21 A B C D A E F G A B C D F ~@3 H I J K H L H M H I J K H L H N H I J K H L H M H I J K H L H N ~@24 O P Q R S P Q
~ O P Q R S P Q ~ T U V W T X U Y T U V W T X U Y Z AA AB@2 Z AA AC AD AE AF AG@2 AE AF AH AI AJ AK AL AM AJ AN AK AO
AJ AK AL AM AP ~@3
>`.pickRestart({
A: "eb2", B: "d2", C: "bb1 db2 eb2 gb2", D: "bb2@2 ab2 gb2@3 eb2@3 db2@3", E: "db2@3 db2", F: "bb1",
G: "bb1@2 eb2 gb2", H: "eb2@2 eb2 eb2@3 ~@6", I: "d2@2 d2 d2@3 ~@6", J: "gb2@2 gb2 gb2@3 ~@6", K: "eb2@5 eb2@4 eb2@3",
L: "db2@2 db2 db2@3 ~@6", M: "gb2@5 gb2@4 gb2@3", N: "db2@5 db2@4 db2@3", O: "[b1,bb2]!2 ~@2", P: "[bb1,bb2]!2 ~@2",
Q: "[eb2,eb3]!2 ~@2", R: "[eb2,eb3]!4", S: "[b1,b2]!2 ~@2", T: "[b1,b2] [db2,db3] [eb2,eb3] [f2,f3]",
U: "[gb2,gb3] [f2,f3] [eb2,eb3] [db2,db3]", V: "[bb1,bb2] [db2,db3] [eb2,eb3] [gb2,gb3]",
W: "[bb2,bb3]@2 [ab2,ab3] [gb2,gb3]@3 [eb2,eb3]@3 [db2,db3]@3", X: "[gb2,gb3] [f2,f3] [eb2,eb3] [f2,f3]",
Y: "[bb1,bb2] [db2,db3] [bb1,bb2] [db2,db3]", Z: "[eb2,eb3]@3 [db2,db3]@2 [db2,db3] ~@6",
AA: "[db2,db3]@3 [bb1,bb2]@2 [bb1,bb2] ~@6", // Db Bb
AB: "[[db2,db3]@3 [bb1,bb2]@2 [bb1,bb2] ~@2 [bb1,bb2]@3 [eb2,eb3]@4 [c2,c3]@2 [c2,c3] ~@6]/2", // Db Bb Eb C
AC: "[db2,db3]!3 [eb2,eb3]", AD: "[gb2,gb3]@3 [ab2,ab3]@3 [bb2,bb3]@2 [db3,db4]@4",
AE: "[e2,e3]@3 [d2,d3]@2 [d2,d3] ~@6", AF: "[d2,d3]@3 [b1,b2]@2 [b1,b2] ~@6",
AG: "[[d2,d3]@3 [b1,b2]@2 [b1,b2] ~@2 [b1,b2]@3 [e2,e3]@4 [db2,db3]@2 [db2,db3] ~@6]/2", AH: "[d2,d3]!3 [e2,e3]",
AI: "[g2,g3]@3 [a2,a3]@3 [b2,b3]@2 [d3,d4]@4", AJ: "[c2,c3] [d2,d3] [e2,e3] [gb2,gb3]",
AK: "[g2,g3] [gb2,gb3] [e2,e3] [d2,d3]", AL: "[b1,b2] [d2,d3] [e2,e3] [g2,g3]",
AM: "[b2,b3]@2 [a2,a3] [g2,g3]@3 [e2,e3]@3 [d2,d3]@3", AN: "[g2,g3] [gb2,gb3] [e2,e3] [gb2,gb3]",
AO: "[b1,b2] [d2,d3] [b1,b2] [d2,d3]", AP: "[c2,c3]",
})).s("gm_acoustic_bass").gain(0.3)
// chords · epiano1 · "Electric Piano"
const epiano1 = note(`<
~@2 A@2 ~@17 B@2 C@2 D@2 E@2 B@2 C@2 D@2 F@2 G@2 H@2 I@2 J@2 I@2 H@2 I@2 J@2 G@2 H@2 I@2 J@2 I@2 H@2 I@2 J@2 K@2 L@2
M@2 N ~ K@2 L@2 M@2 N ~ K@2 L@2 M@2 N ~ K@2 L@2 M@2 N ~ K@2 L@2 M@2 N ~ B@2 C@2 D@2 E@2 B@2 C@2 D@2 E@2 O P Q@2 O P R
S T U V@2 T U W X Y@2 Z@2 AA@2 AB@2 Y@2 Z@2 AA@2 AC@2
>`.pickRestart({
A: "[[eb3,gb3,bb3,db4]@3 ~@7 [eb3,gb3,bb3,db4]@3 ~@5 [eb3,gb3,bb3,db4]@30]/2", // Ebm7
B: "[[b2,eb3,gb3,bb3]@6 [b2,eb3,gb3,bb3]@3 ~@13 [bb2,d3,f3,ab3]@6 ~@2 [bb2,d3,f3,ab3]@3 ~@15]/2", // Bmaj7 Bb7
C: "[[eb3,gb3,bb3,db4]@6 [eb3,gb3,bb3,db4]@3 ~@13 [eb3,gb3,c4,f4]@6 ~@2 [eb3,gb3,c4,f4]@3 ~@15]/2", // Ebm7 Cdim
D: "[[b2,eb3,gb3,bb3]@6 [b2,eb3,gb3,bb3]@3 ~@13 [bb2,db3,f3,ab3]@6 ~@2 [bb2,db3,f3,ab3]@3 ~@15]/2", // Bmaj7 Bbm7
E: "[[bb2,eb3]@6 [bb2,eb3]@3 ~@13 [b2,eb3,gb3,ab3]@6 ~@2 [b2,eb3,gb3,ab3]@3 ~@15]/2", // Eb5 Abm7
F: "[[eb3,gb3,bb3,db4]@6 [eb3,gb3,bb3,db4]@3 ~@13 [b2,eb3,gb3,ab3]@6 ~@2 [b2,eb3,gb3,ab3]@3 ~@15]/2", // Ebm7 Abm7
G: "[[b3,gb4,eb5,bb5]@11 [bb3,f4,d5,ab5]@13]/2", H: "[[bb3,eb4,db5,gb5]@11 [c4,eb4,eb5,gb5]@13]/2",
I: "[[b3,gb4,eb5,bb5]@11 [bb3,f4,db5,ab5]@13]/2", J: "[[bb3,eb4,db5,gb5]@11 [b3,gb4,eb5,ab5]@13]/2",
K: "[[b2,eb3,gb3,bb3]@6 [b2,eb3,gb3,bb3]@3 ~@13 [bb2,db3,f3,ab3]@6 ~@2 [bb2,db3,f3,ab3]@6 ~@12]/2", // Bmaj7 Bbm7
L: "[[eb3,gb3,bb3,db4]@6 [eb3,gb3,bb3,db4]@3 ~@13 [ab2,c3,eb3,ab3]@6 ~@2 [ab2,c3,eb3,ab3]@6 ~@12]/2", // Ebm7 Ab
M: "[[b2,eb3,gb3,bb3]@3 [b2,eb3,gb3,bb3]@3 ~@5 [bb2,db3,f3,ab3]@3 ~ [bb2,db3,f3,ab3]@3 ~@3 eb3@3]/2", // Bmaj7 Bbm7
N: "[eb3,gb3,bb3,db4] ~ [eb3,gb3,bb3,db4] ~@5", O: "[ab2,ab3]@3 [gb2,gb3]@2 [gb2,gb3] ~@6",
P: "[gb2,gb3]@3 [gb2,gb3]@2 [gb2,gb3] ~@6", // Gb
Q: "[[gb2,gb3]@3 [gb2,gb3]@2 [gb2,gb3] ~@2 [db2,db3]@3 [ab2,ab3]@4 [gb2,gb3]@2 [gb2,gb3] ~@6]/2", // Gb Db Ab Gb
R: "[gb2,gb3] ~ [gb2,gb3] ~ [gb2,gb3]@2 [ab2,ab3]@2", S: "[b2,b3]@3 [db3,db4]@3 [eb3,eb4]@2 [gb3,gb4]@4",
T: "[a2,a3]@3 [g2,g3]@2 [g2,g3] ~@6", U: "[g2,g3]@3 [g2,g3]@2 [g2,g3] ~@6",
V: "[[g2,g3]@3 [g2,g3]@2 [g2,g3] ~@2 [d2,d3]@3 [a2,a3]@4 [g2,g3]@2 [g2,g3] ~@6]/2", // G D A G
W: "[g2,g3] ~ [g2,g3] ~ [g2,g3]@2 [a2,a3]@2", X: "[c3,c4]@3 [d3,d4]@3 [e3,e4]@2 [g3,g4]@4",
Y: "[[c3,e3,g3,b3]@6 [c3,e3,g3,b3]@3 ~@13 [b2,eb3,gb3,a3]@6 ~@2 [b2,eb3,gb3,a3]@3 ~@15]/2", // Cmaj7 B7
Z: "[[e3,g3,b3,d4]@6 [e3,g3,b3,d4]@3 ~@13 [e3,g3,db4,gb4]@6 ~@2 [e3,g3,db4,gb4]@3 ~@15]/2", // Em7 Dbdim
AA: "[[c3,e3,g3,b3]@6 [c3,e3,g3,b3]@3 ~@13 [b2,d3,gb3,a3]@6 ~@2 [b2,d3,gb3,a3]@3 ~@15]/2", // Cmaj7 Bm7
AB: "[[b2,e3]@6 [b2,e3]@3 ~@13 [c3,e3,g3,a3]@6 ~@2 [c3,e3,g3,a3]@3 ~@15]/2", // E5 Am7
AC: "[[e3,g3,b3,d4]@6 [e3,g3,b3,d4]@3 ~@13 [c3,e3,g3,a3]@6 ~@2 [c3,e3,g3,a3]@3 ~@15]/2", // Em7 Am7
})).s("gm_epiano1").gain(0.25)
// drums · kick
const kick = s("bd").struct(`<
~@5 A B A C A C A C A C A C ~@4 A B A C A B A C A B A C ~@4 A B A C A B A C A B A C A B A C A B A C A B A C A B A C A
B A C ~@32 D@6 E ~ A B A B A B A B A B A B A B A B F@2 G H F@2 D@2 F@2 G H F@2 D@2 A B A B A B A B A B A B ~@4
>`.pickRestart({
A: "x ~@2 x ~@5 x ~ x", B: "~@2 x!2 ~@5 x ~@2", C: "~@2 x!2 ~@8", D: "x!4", E: "x!2 ~@2", F: "x ~@2 x ~ x ~@6",
G: "x ~@2 x ~ x ~@2 x ~@2 x", H: "~@3 x ~ x ~@6",
})).gain(0.3)
// drums · rim
const rim = s("rim").struct("<~@3 A B A@12 ~@4 A@12 ~@94 A C ~@6 A C ~@20>".pickRestart({
A: "~ x", B: "x!2", C: "x!6",
})).gain(0.3)
// drums · snare
const snare = s("sd").struct(`<
~@37 A@32 ~@36 A@2 B ~ A C A D A C A D A C A D A C A D E F G ~ H I J K E F G ~ H I J K A C A D A C A D A C A D ~@4
>`.pickRestart({
A: "~ x", B: "x!2 ~@2", C: "~@6 x ~@4 x", D: "~@6 x!6", E: "~@6 x ~@3 x ~ x ~ x ~ x ~ x!3 ~ x!2", F: "x ~@2 x!3",
G: "x!2 ~ x!2 ~ x ~ x ~ x ~@13", H: "~@3 x ~ x!2 ~ x ~ x ~", I: "~@3 x ~ x ~@6", J: "x!4", K: "x ~@2 x ~@2 x!6",
})).gain(0.4)
// drums · hihat
const hihat = s("hh").struct("<~@125 A ~@4 B ~@2 A ~@4 B ~@18>".pickRestart({
A: "x!3 ~@9", B: "~@12 x!2 ~ x!2 ~@7",
})).gain(0.4)
// … 33 more lines
More by Kazumi Totaka
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.