0:00/0:00
// Winter — Amos, Tori
// 85 bpm, 4/4, key D# minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 87 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(85/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 · "PIANO RH"
const piano = note(`<
A B C D E@2 F G H I J K L M N O P Q R S T U@2 V W X Y Z AA@2 AB AC AD@2 AE AF@3 AG F AH AI I J K AJ AK AL O AM AN AO S
T AP@2 AQ AR AS AT Z AU@2 AV AW AX@2 AE AY@2 AZ BA BB BC BD BE BF BG BH BI@2 BJ BK BL BM@3
>`.pickRestart({
A: "~@14 db4 eb4",
B: "eb3 ~ bb3@2 [bb4,eb5] ~ [bb4,eb5] f5 bb3@2 f4@2 [ab4,ab5]@2 f5@2, ~@4 eb4@2 ~@2 [db5,ab5]@4 eb5 ~@3", // Eb5 Ab Db5
C: "[b4,gb5]@2 gb4@2 [db5,ab5]@2 gb4@2 ab3@2 eb4@2 ~@2 db4 eb4, b3 ~@7 [ab4,db5]@4 [bb4,eb5]@4", // B5 Db5 Eb5
D: "eb3@2 bb3@2 [bb4,eb5]@2 [bb4,eb5] f5 bb3@2 f4@2 [ab4,ab5]@2 f5@2, ~@4 eb4@4 [db5,ab5]@4 eb5 ~@3", // Eb5 Ab Db5
E: "[[db5,gb5]@2 ~ f5 [b4,f5] ~ [ab3,eb4,bb4,eb5]@2 bb4@2 ab4@2 bb4 ~ ab4@2 ab4@2 ab4@2 bb4@2 db4 eb4 eb3@2 bb3@2 [bb4,eb5]@2 eb5@2, b3 ~ gb4@2 ~@4 eb5@15 ~@9, ~@8 [ab3,eb4]@11 ~@9 eb4@4]/2", // Gb5 Bdim Absus2 Eb5 Ab5
F: "bb3 f4 ab4 f5 b3 gb4 [db5,ab5] gb4, [ab4,db5]@4 eb5 ~@3 [b4,gb5]@4 ~@4", // Db5 B5
G: "[ab3,ab4,db5]@2 ~ eb5 ~@2 db4 eb4 eb3@2 bb3@2 [bb4,eb5] ~ eb5@2, ~ eb4 [bb4,eb5]@2 ~@2 eb4 ~", // Db5 Eb5
H: "[ab4,db5]@2 f4@2 ab4@2 f5@2 [b3,db5,gb5]@2 ~ f5 [b4,f5] ~ [ab3,eb4,bb4,eb5]@2, bb3 ~@3 eb5 ~@5 gb4@2 ~@4", // Db5 Bsus2 Bdim Absus2
I: "bb4@2 ab4@2 bb4@2 db4 eb4 eb3@2 ~ bb4 [bb4,eb5] eb5 [bb4,eb5] f5, eb5@7 ~@9, [ab3,eb4]@5 ~@5 bb3@2 eb4@3 ~", // Eb5 Ab5
J: "[ab4,db5] db5 b4 db5 ab4@2 eb5 f5 b3@2 gb4@2 [db5,ab5]@2 gb4@2, bb3@2 f4@2 db5 ~@3 [b4,gb5]@4 ~@4", // Db5 B5
K: "[ab3,ab4,db5]@2 ~ eb5 [bb4,eb5]@2 db4 eb4 eb3@2 ~ bb4 [bb4,eb5] ~ eb5@2, ~@2 eb4@3 ~@5 bb3@2 eb4@2 ~@2", // Db5 Eb5
L: "bb3@2 f4@2 ab4@2 f5@2 [b3,db5,gb5]@2 ~ f5 [b4,f5] ~ [ab3,eb4,bb4,eb5]@2, [ab4,db5]@4 eb5 ~@5 gb4@2 ~@4", // Bsus2 Bdim Absus2 Db5
M: "bb4@2 ab4@2 bb4 ~ ab4@2 ab4@2 ab4@2 bb4@2 db4 eb4, eb5@15 ~, [ab3,eb4]@11 ~@5", // Ab5
N: "eb3@2 bb3@2 [bb4,eb5] ~ eb5@2 bb2@2 f3@2 [ab4,eb5] ~ f5@2, ~@2 eb4 ~ [ab4,db5]@2 ab3 ~", // Eb5 Ab5 Db5
O: "b2@2 gb3@2 [db5,ab5]@2 f3 gb3 [ab2,ab4,db5]@2 ~ eb5 [bb4,eb5]@2 db3 eb3, [b4,gb5]@4 ~@6 eb3@3 ~@3", // Db5 Eb5 B5
P: "eb2 ~ bb2@2 [bb4,eb5] ~ eb5@2 [bb2,f5]@2 [f3,ab4,db5]@2 [eb5,ab5] ~ f5@2, ~@2 eb3 ~@3 bb3 ~", // Eb5 Bb5 Db Ab5
Q: "[b2,b4,gb5]@2 f5!3 eb5 [eb3,bb3,ab4,eb5]@2 [eb3,bb3]@2 ab3@2 [eb4,bb4] ~ [db3,db4,ab4] [eb3,db5], ~ gb3 b3 ~ [ab4,eb5]@2 ~@2", // B5 Ebsus4 Eb5 Db5 Eb7 Ab5
R: "[eb2,f4,bb4]@2 ~ bb3 [bb3,eb4] ~ eb4@2 bb1@2 f2@2 bb2@2 f4@2, ~@2 bb2@2 eb3@2 ~@2 [ab3,db4]@4 eb4 ~@3", // Ebsus2 Eb5 Db5
S: "b1@2 gb2@2 [b2,db4,ab4]@3 ~ ab1@2 f2@2 [bb3,eb4]@2 db3 eb3, [b3,gb4]@4 ~@4 [ab3,db4]@4 bb2 ~@3", // Db7 Eb5 B5 Db5
T: "eb2@2 b2@2 [bb3,eb4] ~ eb4@2 [bb1,ab3,db4]@2 ~ db4 [bb3,eb4] ~ f4@2, ~@2 eb3 ~@2 f2 bb2 ~", // Eb5 Bbm7 Eb5
U: "[[b1,b3,gb4]@2 f4!2 [b2,f4] eb4 [ab2,eb3,bb3,eb4]@2 bb3@2 ab3@2 bb3 ~ ab3@2 ab3@2 ab3@2 bb3@2 db3@2 [bb3,gb4]@2 [bb3,gb4]@2 [bb3,gb4] ~ [gb2,db3,bb3,gb4]@2, ~@2 gb2@2 ~@4 eb4@15 ~@9, ~@8 [ab2,eb3]@11 ~@5 [gb2,db3]@6 ~@2]/2", // B5 Bdim Absus2 Ebm Gb Ab5 Gb5
V: "[gb2,db3,bb3,gb4]@2 [db4,ab4]@2 [gb4,bb4]@2 [f4,ab4]@2 [f4,ab4]@2 bb3@2 [eb4,gb4] ~ [eb2,bb2,bb4]@2, ~ [gb2,db3]@3 [eb2,bb2]@3 ~", // Gb Db5 Gb Fm Ebm Eb5 Gb5 Eb5
W: "db4@2 b3@2 [db4,gb4]@2 db3 gb3 [bb3,gb4]@2 [bb3,gb4]@2 [bb3,gb4] ~ [gb2,db3,bb3,gb4]@2, [b1,gb2,b2]@3 ~ [gb2,db3]@3 ~, ab4 ~@3", // Gb5 Ebm Gb B5 Gb5
X: "[gb2,db3,bb3,gb4]@2 [db4,ab4]@2 [gb4,bb4] ~ [f4,ab4]@2 [f4,ab4]@2 [eb4,gb4]@2 bb3 ~ [b3,eb4]@2, ~@2 [gb2,db3]@6 [eb2,bb2]@7 ~", // Gb Db5 Gb Fm Ebm B Gb5 Eb5
Y: "eb4@2 ~@4 db2 gb2 [bb3,gb4]@2 [bb3,gb4]@2 [bb3,gb4] ~ [gb2,db3,bb3,gb4]@2, [b1,gb2]@3 ~ [gb2,db3]@3 ~, b3 [b3,gb4] ~@2, ~@2 db4@5 ~@9", // Ebm Gb B5 Gb5 B5
Z: "[gb2,db3,bb3,gb4]@2 [db4,ab4]@2 [gb4,bb4] ~ [f4,ab4]@2 ~@2 bb3@2 [eb4,gb4] ~ [bb2,eb4]@2, ~ [gb2,db3]@3 [eb2,bb2]@3 ~, ~@2 [f4,ab4] ~", // Gb Db5 Gb Fm Ebm Eb5 Gb5 Eb5 …
AA: "[b4@2 b4@2 [eb4,gb4]@2 gb2 b2 [gb4,bb4]@2 [f4,ab4]@2 db4 ~ [gb2,gb3,bb3]@2 db4@4 [bb3,db4,gb4]@2 gb2 db3 b3@2 ab3@2 db4 ~ ab3@2, [b1,gb2,b2]@6 ~@2 [gb2,gb3]@6 ~@2 [gb2,gb3]@6 ~@2 [b1,b2,eb4]@7 ~, [eb4,gb4]@4 b4 ~ b4@2 ~@4 [f4,ab4]@7 ~@13]/2", // Ebm Gb Fm Gb B5 Gb B Ebm …
AB: "b4@2 b4@2 [b3,eb4,b4]@3 ~ [gb4,bb4]@2 [f4,ab4]@2 bb3@2 [eb4,gb4]@2, [b1,b2]@7 ~ [eb2,eb3]@7 ~, [b3,eb4] ~@3", // B Gb Fm Ebm B Eb B
AC: "[eb4,gb4]!2 bb3 ab4 b3 eb4 b3 eb4, eb3@7 ~ [ab2,ab3]@7 ~, ~@2 ab4 ~", // Ebm Ab
AD: "[[b3,eb4]@2 b4@2 [b3,eb4]@2 b4@2 [gb4,bb4]@2 ab4@2 db4 ~ [gb2,gb3,gb4]@2 bb3@2 db4@2 [gb2,gb3]@2 [db4,ab4]@2 b3@2 gb3@2 db4 ~ [gb3,eb4]@2, [ab2,ab3]@7 ~ [gb2,gb3]@6 ~@2 [gb2,gb3]@4 ~@4 [b1,b2]@7 ~, b4 ~@3 b4 ~@3 db4@4 ab4@7 ~ [bb3,gb4] ~@3 eb4@5 ~@3]/2", // B Gb Db5 Ebm Ab Gb B Ebm
AE: "b4@2 b4@2 b4@2 gb4@2 [gb4,bb4]@2 bb3@2 eb4 ~ bb3@2, [b2,b3]@7 ~ [eb2,eb3]@7 ~, eb4@4 eb4 ~@5 [f4,ab4]@6", // Gb B Eb Fm
AF: "[[eb2,eb3,eb4]@2 db2@2 ab2 ~ [eb2,eb4,gb4] [db2,db4,f4] ~@2 gb3@2 b3@2 db2 eb2 ab3@2 ~@2 [f4,ab4]@3 ~ [eb2,eb3]@4 bb2@3 ~ eb2@4 [bb4,eb5] ~ f5@2 b3@2 gb4@2 [db5,ab5]@2 gb4 ab4, [f4,ab4]@6 ~@2 [b1,b2]@6 gb3@2 [db2,db3]@7 ~@25, ~@2 bb3@5 ~ [db4,f4]@10 db4@6 [gb3,bb3,eb4]@11 ~@5 [b4,gb5]@4 ~@4]/3", // Eb Ebm Db Fm Eb Eb5 Db5 Fm …
AG: "ab3@2 eb4@2 [bb4,eb5]@2 db4 eb4 eb3@2 bb3@2 [bb4,eb5] ~ eb5@2, [ab4,db5]@2 ~@4 eb4 ~", // Eb5 Db5
AH: "[ab3,ab4,db5]@2 ~ eb5 [bb4,eb5]@2 db4 eb4 eb3@2 bb3@2 [bb4,eb5] ~ eb5@2, ~@2 eb4@3 ~@7 eb4@2 ~@2", // Db5 Eb5
AI: "bb3@2 f4@2 eb5@2 f5@2 [b3,db5,gb5]@2 ~ f5 [b4,f5]@2 [ab3,eb4,bb4,eb5]@2, [ab4,db5]@2 ab4@2 ~ gb4 ~@2", // Bsus2 Bdim Absus2 Db5
AJ: "bb3@2 f4@2 eb5@2 f5@2 [b3,db5,gb5]@2 ~ f5 [b4,f5] ~ [ab3,eb4,bb4,eb5]@2, [ab4,db5]@2 ab4@2 ~ gb4 ~@2", // Bsus2 Bdim Absus2 Db5
AK: "bb4@2 ab4@2 bb4@2 ab4@2 ab4@2 ab4@2 bb4@2 db4 eb4, eb5@15 ~, [ab3,eb4]@11 ~@5", // Ab5
AL: "eb3@2 bb3@2 [bb4,eb5]@2 eb5@2 bb2@2 f3@2 [ab4,eb5] ~ f5@2, ~@2 eb4@2 [ab4,db5]@2 ab3 ~", // Eb5 Ab5 Db5
AM: "eb2@2 bb2@2 [bb4,eb5] ~ eb5@2 [bb2,f5]@2 [f3,ab4,db5]@2 [eb5,ab5] ~ f5@2, ~@2 eb3 ~@3 bb3 ~", // Eb5 Bb5 Db Ab5
AN: "[b2,b4,gb5]@2 f5!2 [b3,f5] eb5 [eb3,bb3,ab4,eb5]@2 [eb3,bb3]@2 ab3@2 [eb4,bb4] ~ [db3,db4,ab4] [eb3,db5], ~ gb3 ~@2 [ab4,eb5]@2 ~@2", // B5 Bdim Ebsus4 Eb5 Db5 Eb7 Ab5
AO: "[eb2,f4,bb4]@2 ~ bb3 [bb3,eb4] ~ eb4@2 bb1@2 f2@2 eb4@2 f4@2, ~ bb2 eb3 ~ [ab3,db4]@2 bb2@2", // Ebsus2 Eb5 Db5
AP: "[[b1,b3,gb4]@2 f4!2 [b2,f4] eb4 [ab2,eb3,bb3,eb4]@2 bb3@2 ab3@2 bb3@2 ab3@2 ab3@2 ab3@2 bb3@2 db3@2 [bb3,gb4]@2 [bb3,gb4]@2 [bb3,gb4] ~ [gb2,db3,bb3,gb4]@2, ~@2 gb2@2 ~@4 eb4@15 ~@9, ~@8 [ab2,eb3]@11 ~@5 [gb2,db3]@6 ~@2]/2", // B5 Bdim Absus2 Ebm Gb Ab5 Gb5
AQ: "[gb2,db3,bb3,gb4]@2 [db4,ab4]@2 [gb4,bb4] ~ [f4,ab4]@2 [f4,ab4]@2 bb3@2 [eb4,gb4] ~ [eb2,bb2,bb4]@2, ~ [gb2,db3]@3 [eb2,bb2]@3 ~", // Gb Db5 Gb Fm Ebm Eb5 Gb5 Eb5
AR: "db4@2 b3@2 ~@2 db3 gb3 [bb3,gb4]@2 [bb3,gb4]@2 [bb3,gb4] ~ [gb2,db3,bb3,gb4]@2, [b1,gb2,b2]@3 ~ [gb2,db3]@3 ~, ab4 [db4,gb4] ~@2", // Ebm Gb B5 Gb5
AS: "[gb2,db3,bb3,gb4]@2 [db4,ab4]@2 [gb4,bb4] ~ [f4,ab4]@2 [f4,ab4]@2 [eb4,gb4]@2 bb3@2 [b3,eb4]@2, ~@2 [gb2,db3]@6 [eb2,bb2]@7 ~", // Gb Db5 Gb Fm Ebm B Gb5 Eb5
AT: "eb4@2 ~@2 [b3,gb4]@2 db2 gb2 [bb3,gb4]@2 [bb3,gb4]@2 [bb3,gb4] ~ [gb2,db3,bb3,gb4]@2, [b1,gb2]@3 ~ [gb2,db3]@3 ~, b3 ~@3, ~@2 db4@5 ~@9", // B5 Ebm Gb B5 Gb5
AU: "[b4@2 b4@2 [eb4,gb4]@2 gb2 b2 [gb4,bb4]@2 [f4,ab4]@2 db4 ~ [gb2,gb3,bb3]@2 db4@4 [bb3,db4,gb4]@2 gb2 db3 b3@2 ab3@2 db4@2 ab3@2, [b1,gb2,b2]@6 ~@2 [gb2,gb3]@6 ~@2 [gb2,gb3]@6 ~@2 [b1,b2,eb4]@7 ~, [eb4,gb4]@4 b4 ~ b4@2 ~@4 [f4,ab4]@7 ~@13]/2", // Ebm Gb Fm Gb B5 Gb B Ebm …
AV: "b4!2 [b3,eb4,b4]@2 [gb4,bb4] [f4,ab4] bb3 [eb4,gb4], [b1,b2]@7 ~ [eb2,eb3]@7 ~, [b3,eb4] ~@3", // B Gb Fm Ebm B Eb B
AW: "[eb4,gb4] ~ [eb4,gb4]@2 ~@2 ab4@2 b3@2 eb4@2 b3@2 eb4@2, eb3@7 ~ [ab2,ab3]@7 ~, ~ bb3 ab4 ~", // Ebm Ab
AX: "[b4@2 b4@2 [b3,eb4]@2 b4@2 [gb4,bb4]@2 ab4@2 db4 ~ [gb2,gb3,gb4]@2 bb3@2 db4@2 [gb2,gb3]@2 [db4,ab4]@2 b3@2 gb3@2 db4 ~ [gb3,eb4]@2, [ab2,ab3]@7 ~ [gb2,gb3]@6 ~@2 [gb2,gb3]@4 ~@4 [b1,b2]@7 ~, [b3,eb4]@4 b4 ~@3 db4@4 ab4@7 ~ [bb3,gb4] ~@3 eb4@5 ~@3]/2", // B Gb Db5 Ebm Ab Gb B Ebm
AY: "[[eb2,eb3,eb4]@2 db2@2 ab2 ~ [eb2,eb4,gb4] [db2,db4,f4] ~@2 gb3@2 b3 ~ db2 eb2 ab3@2 ~@2 [f4,ab4]@3 ~ [bb3,bb4]@4 [ab3,ab4]@3 ~, [f4,ab4]@6 ~@2 [b1,b2]@6 gb3@2 [db2,db3]@7 ~ [eb2,bb2,eb3,eb4]@7 ~, ~@2 bb3@5 ~ [db4,f4]@10 db4@6 ~@8]/2", // Eb Ebm Db Fm Bb Ab Fm B …
AZ: "[gb2,db3,gb3,eb4,bb4,eb5]@4 [gb2,db3,gb3,db4,ab4,db5]@3 gb3 ~@4 [gb4,db5,gb5]@2 ~ [gb4,db5,gb5], ~@8 [gb2,db3,gb3]@7 ~", // Ebm7 Gbsus2 Gb5
BA: "[ab4,eb5,ab5]@2 [gb4,db5,gb5]@2 [ab2,eb3,ab3]@2 db3 eb3 ~@4 [eb4,bb4,eb5]@2 [eb4,bb4,eb5]@2, [ab2,eb3,ab3]@4 [eb4,bb4,eb5]@4 [eb2,bb2,eb3]@7 ~", // Ab5 Gb5 Ab5 Eb5 Ab5 Eb5
BB: "[db4,bb4,db5]@4 [eb4,eb5] ~ [f4,f5]@2 [gb4,bb4,gb5]@4 [ab4,eb5,ab5]@3 ~, [gb2,db3,gb3]@7 ~ [gb2,bb2,gb3]@7 ~", // Gb Eb F Gb Ab5 Gb5 Gb
BC: "[ab2,eb3,ab3,db4,ab4,db5]@4 [eb4,bb4,eb5]@2 db3 eb3 ~@4 [eb4,bb4,eb5] ~ [eb4,eb5] [db4,db5], ~@4 [ab2,eb3,ab3] ~@3 [eb2,bb2,eb3]@7 ~", // Absus4 Eb5 Eb Db Ab5 Eb5
BD: "db4@2 db4@2 gb4 ~ db4@2 [gb4,db5,gb5]@4 [f4,f5] ~ [eb4,bb4,eb5]@2, [gb2,db3,gb3,bb4,db5]@7 ~ [gb2,bb2,gb3]@7 ~", // Gb5 F Eb5 Gb
BE: "[eb4,bb4]@2 eb4@2 [ab2,eb3,ab3,ab4] ~ db3 eb3 ~@4 [eb4,bb4,eb5] ~ [eb4,bb4,eb5]@2, eb5@7 ~@9, [ab2,eb3,ab3]@4 ~@2 db5@2 [eb2,bb2,eb3]@7 ~", // Eb5 Ab5 Eb5 Ab5 Eb5
BF: "[db4,bb4,db5]@4 [eb4,eb5] ~ [f4,f5]@2 [gb4,db5,gb5]@4 [ab4,eb5,ab5]@3 ~, [gb2,db3,gb3]@7 ~ [gb2,bb2,gb3]@7 ~", // Gb Eb F Gb5 Ab5 Gb5 Gb
BG: "[ab2,eb3,ab3,db4,ab4,db5]@4 [eb4,bb4,eb5]@2 db3 eb3 ~@4 [eb4,bb4,eb5] ~ [eb4,bb4,eb5]@2, ~@4 [ab2,eb3,ab3] ~@3 [eb2,bb2,eb3]@7 ~", // Absus4 Eb5 Ab5 Eb5
BH: "[db4,bb4,db5]@4 [eb4,eb5] ~ [f4,f5]@2 [gb4,db5,gb5]@4 [f4,f5]@3 ~, [gb2,db3,gb3]@7 ~ [gb2,db3,gb3]@7 ~", // Gb Eb F Gb5 F Gb5
BI: "[~@4 bb5 ~ ab5@2 ab5@2 bb5@2 bb5@2 ab5 bb5 eb5@7 ~@9, [ab2,eb3,ab3,eb4,bb4,eb5]@7 ~ [ab2,eb3,ab3]@15 ~@9, ~@8 [eb4,bb4,eb5]@7 ~@17]/2", // Absus2 Ab5 Eb5
BJ: "eb3@2 bb3@2 [bb4,eb5] ~ [bb4,eb5] f5 bb3@2 f4@2 [eb5,ab5] ~ f5@2, eb4@2 eb4 ~ [db5,ab5]@2 ab4 ~", // Eb5 Ab5 Db5
BK: "b3@2 gb4@2 ~@2 gb4@2 ab3@2 eb4@2 [bb4,eb5]@2 db4 eb4, [b4,gb5] [db5,ab5] [ab4,db5] ~", // Eb5 B5 Db5
BL: "eb3@2 bb3@2 [bb4,eb5] ~ [bb4,eb5] f5 bb3@2 f4@2 [eb5,ab5]@2 f5@2, ~@2 eb4 ~ [db5,ab5]@2 ab4@2", // Eb5 Ab5 Db5
BM: "[~ b3 [db5,f5] db4 [eb4,bb4,eb5]@16 ~@4, [b4,gb5] ~@11]/3", // Db Eb5 B5
})).s("gm_piano").gain(0.26)
stack(piano)
More by Tori Amos
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.