0:00/0:00
// One Way Wind — Cats
// 108 bpm, 4/4, key E 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 99 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
// note: Guitar parts that double another keep only their own notes (fills, solos): STEEL GTR.
setcpm(108/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 · "FRETLESS"
const bass = note(`<
~ A B C D@2 E C D@2 F G H I J K L I M N O M P N Q R S M T M@2 U V M I U W X Y K U W D E C D Z B C D@2 X O L AA AB O AC
M X AD G M@2 AD AE AF AG M T M I U V M AH U W AI AD AJ U@3 W M AK U AL I M U AM I AK AN AM AK AO
>`.pickRestart({
A: "e2@4 ~@2 e2 ~ b1@3 ~ e2@3 ~", B: "a1@4 ~@2 a1 ~ e2@4 a1@3 ~", C: "b1@4 ~@2 b1 ~ f#2@4 b1@3 ~",
D: "e2@4 ~@2 e2 ~ b1@4 ~@2 b1 ~", E: "a1@4 ~@2 a1 ~ e2@4 a1@4", F: "e2@4 ~@2 e2 ~ e2@4 ~@2 e2 ~",
G: "a1@4 ~@2 a1 ~ a1@8", H: "b1@4 ~@2 b1 ~ b1@4 ~@2 b1 ~", I: "e2@4 ~@2 e2 ~ e2@3 ~ b1@3 ~", J: "e2@4 ~@2 e2 ~ e2@8",
K: "a1@4 ~@2 a1 ~ a1@4 ~@2 a1 ~", L: "b1@4 ~@2 b1 ~ b1@7 ~", M: "e2@4 ~@2 e2 ~ e2@4 b1@3 ~",
N: "g#1@4 ~@2 g#1 ~ g#1@7 ~", O: "a1@4 ~@2 a1 ~ a1@7 ~", P: "e2@4 ~@2 e2 ~ e2@3 ~ b1@4", Q: "a1@4 ~@2 a1 ~ a1@6 ~@2",
R: "a1@4 ~@2 a1 ~ a1@3 ~ e2@4", S: "g1@4 ~@2 g1 ~ g1@7 ~", T: "e2@4 ~@2 e2@6 b1@3 ~", U: "b1@4 ~@2 b1 ~ b1@3 ~ f#2@4",
V: "b1@4 ~@2 b1 ~ b1@3 ~ c#2@3 ~", W: "b1@4 ~@2 b1 ~ c#2@3 ~ d#2@3 ~", X: "e2@4 ~@2 e2 ~ e2@4 b1@4",
Y: "g#1@4 ~@2 g#1 ~ g#1@3 ~ d#2@4", Z: "e2@4 ~@2 e2 ~ b1@4 e2@4", AA: "e2@5 ~ e2 ~ e2@4 b1@3 ~",
AB: "e2@4 ~@2 e2 ~ e2@3 ~ e2@2 b1@2", AC: "b1@4 ~@2 b1 ~ b1@4 c#2@3 ~", AD: "g#1@4 ~@2 g#1 ~ g#1@4 ~@2 g#1 ~",
AE: "a1@4 ~@2 a1 ~ a1@4 e2@4", AF: "a1@4 ~@2 a1 ~ a1@5 ~ a1 ~", AG: "g1@4 ~@2 g1 ~ g1@5 ~ g1 ~",
AH: "e2@4 ~@2 e2 ~ e2@4 b1@2 ~@2", AI: "e2@4 ~@2 e2 ~ e2@5 ~ e2 ~", AJ: "a1@4 ~@2 a1 ~ a1@3 ~ e2@3 ~",
AK: "e2@4 ~@2 e2 ~ e2@3 ~ b1@2 ~@2", AL: "b1@4 ~@2 b1 ~ f#2@4 b1@4", AM: "b1@4 ~@2 b1 ~ b1@3 ~ f#2@3 ~",
AN: "b1@3 ~@3 b1 ~ b1@3 ~ f#2@4", AO: "e2@3 ~@3 e2@10",
})).s("gm_fretless_bass").gain(0.33).pan(0.2)
// chords · synth strings 1 · "SYN STR 1"
const synth_strings_1 = note(`<
~ A B C D@3 E F@3 B G@4 H@3 I J K@3 L@2 M N@2 O@2 P@2 N@2 Q@2 A I B P@2 R B E O@2 B E S@3 T E N@2 B E N@2 I B O@2 U
L@2 V N@4 W@4 X@3 Y Z@5 AA@4 N@2 P@2 N@2 Q@2 N@2
>`.pickRestart({
A: "[b3,e4,g#4]@15 ~", B: "[c#4,e4,a4]@15 ~", C: "[b3,d#4,f#4]", D: "[[b3,g#4]@31 ~ [c#4,a4]@15 ~, e4@47 ~]/3",
E: "[b3,d#4,f#4]@15 ~", F: "[b3,e4,g#4]/3", G: "[[d#4,f#4]@16 g#4@31 ~ [c#4,a4]@15 ~, b3@47 ~@17, ~@16 e4@47 ~]/4",
H: "[[d#4,f#4]@15 ~ [e4,g#4]@32, b3]/3", I: "[b3,d#4,g#4]@15 ~", J: "[c#4,e4,a4]",
K: "[e4@31 ~ d#4@15 ~, [b3,g#4]@47 ~]/3", L: "[[c#4,e4,a4]@31 ~]/2", M: "[b3,d4,g4]", N: "[[b3,e4,g#4]@31 ~]/2",
O: "[b3,e4,g#4]/2", P: "[[b3,d#4,f#4]@31 ~]/2", Q: "[b3,d#4,f#4]/2", R: "[b3,e4,g#4]", S: "[[b3,e4,g#4]@47 ~]/3",
T: "[c#4,e4,a4]@15 ~, b3 ~@15", U: "[b3,d#4,g#4]@7 ~", V: "[b3,d4,g4]@15 ~",
W: "[[b3,d#4,f#4]@31 [b3,e4,g#4]@31 ~@2]/4", X: "[[b3,d#4,f#4]@31 [b3,e4,g#4]@16 ~]/3", Y: "[b3,d#4,g#4]",
Z: "[[c#4,e4,a4]@14 ~ [b3,d#4,f#4]@63 ~@2]/5", AA: "[[b3,e4,g#4]@30 ~ [b3,d#4,f#4]@32 ~]/4",
})).s("gm_synth_strings_1").gain(0.1).pan(0.4)
// chords · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel = note(`<
~ A B C D E F G D H I J K D L M N O P Q R H S T U V W A X Y Z AA AB AC AD AE AF AG AH B AI AF AJ J N AK AL AM AN AO AP
AQ F AR AS AT AU AV AW AK AX M AY AZ BA BB BC BD AL AD BE E BF BG O H BH N BI BJ AU K BK BL G H BM BN BO AD AK AF BP
BQ@2 BN BK BQ BR
>`.pickRestart({
A: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
B: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
C: "[f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
D: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
E: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
F: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~", // A
G: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
H: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
I: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
J: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
K: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
L: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
M: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
N: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
O: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
P: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
Q: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4] ~", // G#m
R: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
S: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
T: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4] ~", // G#m
U: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
V: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~", // A
W: "[g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@4 [g3,b3,d4,g4]@2 ~@2 [g3,b3,d4,g4] ~", // G
X: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2", // E
Y: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
Z: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
AA: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
AB: "[f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
AC: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2", // E
AD: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
AE: "[a3,b3,c#4,d#4,e4,a4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // A B
AF: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
AG: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
AH: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~", // G#m
AI: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
AJ: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
AK: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
AL: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
AM: "[a3,c#4,e4,a4]@2 ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
AN: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
AO: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2", // E
AP: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
AQ: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
AR: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
AS: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
AT: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
AU: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
AV: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
AW: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [f#3,c#4,f#4,g#4,a4] ~", // E F#m
AX: "[g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~", // G#m
AY: "[g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
AZ: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
BA: "[g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4] ~", // G#m
BB: "[a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4] ~", // A
BC: "[a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@2 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4]@4 [a3,c#4,e4,a4] ~", // A
BD: "[g3,b3,d4,g4]@4 [g3,b3,d4,g4] ~ [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4]@2 [g3,b3,d4,g4] ~", // G
BE: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4] ~", // E
BF: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
BG: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
BH: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
BI: "[g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", // E
BJ: "[g#3,b3,d#4,g#4]@2 ~@2 [g#3,b3,d#4,g#4] ~ [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@2 [g#3,b3,d#4,g#4]@4 [g#3,b3,d#4,g#4] ~", // G#m
BK: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~", // B
BL: "[f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4]@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
BM: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
BN: "[f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
BO: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~", // B
BP: "[f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4]@4 [f#3,b3,d#4,b4]@2 ~@2 [f#3,b3,d#4,b4] ~", // B
BQ: "[g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4]@4 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4]@2 [g#3,b3,e4,g#4] ~", // E
BR: "[g#3,b3,e4,g#4]@5 ~ [g#3,b3,e4,g#4]@8 ~@2", // E
})).s("gm_acoustic_guitar_steel").gain(0.11).pan(0.3)
// chords · acoustic guitar steel · "STEEL GTR" · soft notes
const acoustic_guitar_steel_2 = note(`<
~@2 A B C ~ D ~ C E@2 ~ F C@2 G H I ~ J ~ E C ~ K D L ~ M C N O P Q C R S T ~ A H S ~@2 H U V A B W I ~ D H V@2 ~@2 X
U ~ G Y Z AA ~@3 V C N ~@2 AB I E AB H V AC ~ F H ~@2 E N S B C U S P N@2 S H N ~
>`.pickRestart({
A: "~ [a3,c#4,e4,a4] ~@6", B: "~@4 [f#3,b3,d#4,b4] ~@3", C: "~@4 [g#3,b3,e4,g#4] ~@3",
D: "~ [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4] ~ [a3,c#4,e4,a4] ~", E: "~ [g#3,b3,e4,g#4] ~@2 [g#3,b3,e4,g#4] ~@3",
F: "~ [f#3,b3,d#4,b4] ~@4 [f#3,b3,d#4,b4] ~", G: "~@5 [a3,c#4,e4,a4] ~@2", H: "~ [f#3,b3,d#4,b4] ~@6",
I: "~@4 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4] ~", J: "~@5 [g#3,b3,d#4,g#4] ~@2",
K: "~ [a3,c#4,e4,a4] ~@2 [a3,c#4,e4,a4] ~@3", L: "~@6 [g3,b3,d4,g4] ~", M: "~@14 [g#3,b3,e4,g#4] ~",
N: "~ [g#3,b3,e4,g#4] ~@6", O: "~@4 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4] ~", P: "~@6 [f#3,b3,d#4,b4] ~",
Q: "~@8 [g#3,b3,e4,g#4]@2 ~@4 [g#3,b3,e4,g#4] ~", R: "f#3 ~@7 [f#3,b3,d#4,b4]@2 ~@6",
S: "~ [f#3,b3,d#4,b4] ~@2 [f#3,b3,d#4,b4] ~@3", T: "~ [g#3,b3,e4,g#4] ~@3 [g#3,b3,e4,g#4] ~@2",
U: "~ [g#3,b3,e4,g#4] ~@2 [g#3,b3,e4,g#4] ~ [g#3,b3,e4,g#4] ~", V: "~@6 [g#3,b3,e4,g#4] ~",
W: "~@2 [g#3,b3,e4,g#4]@2 ~@6 [g#3,b3,e4,g#4]@2 ~@2 [g#3,b3,e4,g#4] ~", X: "~@8 [g#3,b3,e4,g#4]@2 ~@4 [g#3,b3,e4] ~",
Y: "~@5 [g#3,b3,e4,g#4] ~@2", Z: "~ [g#3,b3,e4,g#4] ~@4 [g#3,b3,e4,g#4] ~",
AA: "~ [g#3,b3,d#4,g#4] ~@3 [g#3,b3,d#4,g#4] ~@2", AB: "~ [f#3,b3,d#4,b4] ~@2 [f#3,b3,d#4,b4] ~ [f#3,b3,d#4,b4] ~",
AC: "~ [g#3,b3,d#4,g#4] ~@6", // G#m
})).s("gm_acoustic_guitar_steel").gain(0.06).pan(0.3)
// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_3 = note("<A B C D E F G H I J ~@31 A K C D E F G H I J ~@48>".pickRestart({
A: "~@3 f#4", B: "g#4@8 ~@2 g#4 ~ g#4@4", C: "a4@13 ~ g#4 [g#4,a4]", D: "f#4 g#4 a4 b4 c#5 d#5 c#5 d#5",
E: "e5@10 b4@2 c#5 b4 a4@2", F: "g#4@9 ~ g#4 ~ g#4@3 ~", G: "a4@15 ~",
H: "e5@2 d#5@2 c#5@2 d#5@2 c#5 [c#5,d#5] b4@2 c#5@2 d#5@2", I: "e5@9 ~ b4@2 c#5 b4 a4@2", J: "g#4 ~",
K: "g#4@9 ~ g#4 ~ g#4@4",
})).s("gm_acoustic_guitar_steel").gain(0.36)
// other · acoustic guitar steel · "STEEL GTR"
const acoustic_guitar_steel_4 = note(`<
~ A B C A D ~ E A ~ D A F G H A I A J K L ~ B M N ~@2 A@2 D@2 E ~ A ~ O ~@2 O N P ~ A Q D ~ A ~ E ~ A R ~@2 S ~ A O
~@2 O A@2 ~@2 A B T A ~ D U O ~ V ~@2 W ~ C A X Y Z E AA ~ D AB ~@3 E ~@2 D ~@2 AC
>`.pickRestart({
A: "~ e4 ~@6", B: "~@6 e4 ~", C: "~@6 d#4 ~", D: "~@6 b3 ~", E: "~ d#4 ~@6", F: "~@4 d#4 ~@3", G: "~@2 e4@3 ~@11",
H: "~@3 e4", I: "~@4 d#4 ~ d#4 ~", J: "~@4 g#4@2 b3 ~", K: "~@2 d#4@3 ~@11", L: "~ e4 ~@4 c#4 ~", M: "~ d#4@2 ~@5",
N: "~@6 c#4 ~", O: "~ d#4 ~@4 b3 ~", P: "~@8 f#4@5 ~@3", Q: "~@2 e4@2 ~@6 e4@3 ~@3",
R: "~@2 e4@3 ~@7 b3@2 ~@2, ~@4 g#4@3 ~", S: "~@4 e4 ~@3", T: "~ b3 ~@6", U: "~@4 e4 ~ e4 ~", V: "~ e4@2 ~@5",
W: "~@4 f#4@2 b3 ~", X: "~@4 f#4@3 ~", Y: "~@8 f#4@3 ~@5", Z: "~@4 f#4 ~ f#4@2", AA: "~@4 a4 ~@3",
AB: "~ d#4 ~@4 d#4 ~", AC: "~@2 e4@2 b3 ~@3 b3@6 ~@2",
})).s("gm_acoustic_guitar_steel").gain(0.1).pan(0.7)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@18 A B C D E F G C E H ~ I@2 J@2 I@2 J@2 H B C K@2 ~@17 L M N O@2 P Q N ~@3 R I S@2 R I T@2 U M N V W X Y R Z V AA
AB R V AC AD R V AE R AF
>`.pickRestart({
A: "[e4,e5]@15 ~", B: "[d#4,d#5]", C: "[c#4,c#5]", D: "[b3,b4]@15 ~", E: "[b3,b4]", F: "[g#3,g#4]@15 ~", G: "[a3,a4]",
H: "[e4,e5]", I: "[e5,e6]@3 [b4,b5]@2 [g#4,g#5] [f#4,f#5] [e4,e5]", J: "[[b4,b5]@21 ~ [f#4,f#5]@6 [d#4,d#5]@3 ~]/2",
K: "[b4,b5]@3 [f#4,f#5]@2 [d#4,d#5] [c#4,c#5] [b3,b4]", L: "[e5,e6]@15 ~", M: "[d#5,d#6]", N: "[c#5,c#6]",
O: "[b4,b5]/2", P: "[g#4,g#5]@15 ~", Q: "[a4,a5]", R: "[e5,e6]@5 ~ [b4,b5]@4 [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5]@2",
S: "[[b4,b5]@11 [f#4,f#5]@3 [d#4,d#5]@2]/2", T: "[[b4,b5]@21 ~ [f#4,f#5]@6 [d#4,d#5]@4]/2", U: "[e5,e6]",
V: "[b4,b5]@15 ~", W: "[b4,b5]@6 [f#4,f#5]@4 [d#4,d#5]@2 [c#4,c#5]@2 [b3,b4] ~",
X: "[b4,b5]@6 [f#4,f#5]@4 [d#4,d#5]@2 [c#4,c#5] ~ [b3,b4] ~", // B F# D# C# B
Y: "[b3,b4]@4 ~@2 [d#4,d#5]@3 [f#4,f#5] ~@2 [f#4,f#5] [b4,b5] [d#5,d#6] ~", // B D# F# B D#
Z: "[e5,e6]@2 ~ [b4,b5]@2 [g#4,g#5] [f#4,f#5] [e4,e5]", // E B G# F# E
AA: "[b4,b5]@5 ~ [f#4,f#5]@4 [b4,b5] ~ [b4,b5] [d#5,d#6] [f#5,f#6] ~", // B F# B D# F#
AB: "[e5,e6]@5 ~ [b4,b5]@3 ~ [g#4,g#5]@2 [f#4,f#5]@2 [e4,e5]@2", // E B G# F# E
AC: "[b4,b5]@5 [f#4,f#5]@4 ~ [b4,b5] ~ [b4,b5] [d#5,d#6] [f#5,f#6] ~", // B F# B D# F#
AD: "[e5,e6]@5 ~ [b4,b5]@3 [g#4,g#5]@2 ~ [f#4,f#5]@2 [e4,e5]@2", // E B G# F# E
AE: "[b4,b5]@6 [f#4,f#5]@3 ~ [b4,b5] ~ [b4,b5] [d#5,d#6] [f#5,f#6] ~", AF: "[e5,e6]@3 ~@3 [e5,e6]@4 ~@6",
})).s("gm_string_ensemble_1").gain(0.16)
// other · tremolo strings · "TREMOLOSTR" · B E B G# E B E B …
const tremolo_strings = note(`<
~@28
[[b3,b4]@6 [e4,e5]@5 ~ [b3,b4] [g#4,g#5] [e4,e5] [b4,b5]]
[[e5,e6]@5 ~@11]
~@37
[[b4,b5]]
[[g#4,g#5]]
[[b3,b4]@6 [e4,e5]@5 ~ [b3,b4] [g#4,g#5] [e4,e5] [b4,b5]]
~@29
>`).s("gm_tremolo_strings").gain(0.21)
// drums · kick
// … 32 more lines
More by Cats
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.