0:00/0:00
// UR the Best Thing — D:Ream
// 123 bpm, 4/4, key E minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(123/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 · synth bass 2
const bass = note(`<
A B C D E@2 F@2 G H C I A J K I A J C I A L M N O P Q@4 R S Q@6 R S Q@2 R S Q@2 T I A L U I A L M N O P Q@4 M N O P
Q@4 R S Q@6 R S Q@2 R S Q@2 T I A L U I A L M N O P Q@4 M N O P C I A V K I A V C I A V K I A V C V A L W
>`.pickRestart({
A: "c2", B: "d2!2", C: "e2", D: "f#2", E: "g2/2", F: "a2/2", G: "c3", H: "d3", I: "b1", J: "d2@5 d2 e2 d2", K: "a1",
L: "d2@5 b1 d2 e2", M: "a1@3 e1@3 g1@2 a1@3 e1@3 g1@2", N: "b1@3 f#1@3 a1@2 b1@3 f#1@3 a1@2",
O: "c2@3 g1@3 a1@2 c2@3 g1@3 a1@2", P: "d2@3 a1@3 c2@2 d2@3 a1@3 c2@2", Q: "e2@3 b1@3 d2@2 e2@3 b1@3 d2@2",
R: "a2@3 e2@3 g2@2 a2@3 e2@3 g2@2", S: "b2@3 f#2@3 a2@2 b2@3 f#2@3 a2@2", T: "e2@14 b1 ~", U: "a1@14 a1 ~", V: "d2",
W: "e1 ~",
})).s("gm_synth_bass_2").gain(0.41)
// chords · piano
const piano = note(`<
~@18 A B C D E F G H ~@20 I J K L M N O P ~@32 A B C D Q F G R ~@12 S T S T S U V U S T S T S U V U I J K L ~
>`.pickRestart({
A: "[b3,g4] ~ e4 ~ [b3,g4] ~ e4 [b3,g4] ~ e4 [b3,g4] ~ e4 [b3,g4] ~ e4", // Em
B: "[b3,f#4] ~ e4 ~ [b3,f#4] ~ e4 [b3,f#4] ~ e4 [b3,f#4] ~ e4 [b3,f#4] ~ e4", // B5
C: "[g3,e4] ~ d4 ~ [g3,e4] ~ d4 [g3,e4] ~ d4 [g3,e4] ~ d4 [g3,e4] ~ d4", // C
D: "[a3,e4] ~ d4 ~ [a3,e4] ~ d4 [a3,e4,b4,e5] [b4,e5] d4 [a3,e4,b4,e5] ~ d4 [b4,e5]@2 d4, ~@13 [a3,e4] ~@2", // A5 Asus2 E5 Asus2 E5 A5
E: "[c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]@2 ~ [c4,e4,g4]@2 ~", // C
F: "[d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~", // D
G: "[c4,e4,a4]@2 ~@2 [c4,e4,a4]@2 ~ [c4,e4,a4]@2 ~ [c4,e4,a4]@2 ~ [c4,e4] ~@2, ~@13 a4@2 ~", // Am C
H: "[d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4] ~@2", I: "[g3,b3,e4]@7 ~",
J: "[f#3,a3,d4]@13 ~@3", K: "[e3,g3,c4]@13 ~ [e3,g3,c4]@2",
L: "~@10 [a4,b4] ~@2 [a4,b4,e5]@2 ~, [f#3,a3,d4]@3 ~, ~@5 e5 ~@2", M: "[g3,c4,e4,a4,e5]@13 ~@3",
N: "[a3,d4,f#4,d5]@7 [a3,d4,f#4]", O: "[g3,e4,g4,c5]@13 ~ [g3,e4,g4]@2",
P: "[d3,d4,f#4,a4,d5]@2 d4 [f#4,a4] [f#4,a4,d5] d4 [f#4,a4,d5]!2 d4 [f#4,a4] [f#4,a4,d5] ~ [f#4,a4,d5]!2 [d3,d4]@2, ~@5 d3@2 ~ d3@2 ~ [d3,d4]@2 ~@3", // D F#m D F#m D
Q: "[c4,e4,g4]@2 ~@2 [c4,e4,g4]@2 ~ [c4,e4] ~@2 [c4,e4,g4]@2 ~ [c4,e4,g4]@2 ~, ~@7 g4@2 ~@7", // C
R: "[d4,f#4,a4]@2 ~@2 [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4,a4]@2 ~ [d4,f#4] ~@2, ~@13 a4@2 ~", // D
S: "[e4,g4,c5]@2 ~ [e4,g4,c5]!2 ~ [d4,f#4,b4] ~ [d4,e4,a4]@2 ~ [d4,e4,a4]@2 [d4,e4,a4] [d4,f#4,b4] ~", // C Bm Dsus2 Bm
T: "[d4,e4,a4]@2 ~ [d4,e4,a4]!2 ~ [e4,f#4,b4] ~ [d4,e4,a4] ~ [d4,e4,a4] ~ [d4,e4,a4] ~ [e4,f#4,b4] ~", // Dsus2 Esus2 Dsus2 Esus2
U: "[d4,e4,a4]@2 ~ [d4,e4,a4]!2 ~ [e4,f#4,b4] ~ [d4,e4,a4] b3 [d4,e4,a4] ~ [d4,e4,a4] ~ [e4,f#4,b4] ~", // Dsus2 Esus2 Dsus2 Esus2
V: "[e4,g4,c5]@2 ~ [e4,g4,c5]!2 ~ [d4,f#4,b4] ~@2 b3 ~ [d4,e4,a4]@2 [d4,e4,a4] [d4,f#4,b4] ~, ~@4 [d4,e4,a4] ~@3", // C Bm Dsus2 Bm Dsus2
})).s("gm_piano").gain(0.27).pan(0.3)
// other · piano
const piano_2 = note(`<
~@17 A B ~@6 C@2 D@2 E F@2 G H I D@2 E J@3 K@2 L@2 M@2 ~@6 N@2 O@2 P Q ~@6 R@2 D@2 E F@2 G H I D@2 E J@3 K@2 L@2 S@2 T
U V W X U Y ~ O@2 P Q ~@23 Z ~ AA@2 ~
>`.pickRestart({
A: "e5@10 d5 b4@3 d5@2", B: "~ e5@5 ~@10", C: "[~@10 b4 ~ d5 e5 ~ e5@3 ~@8 b4 ~ a4 ~ g4 a4]/2",
D: "[~ g4@5 ~@4 b4 ~ d5 e5@2 e5@3 ~@8 d5 ~ e5 ~ b5@2]/2", E: "~@2 a5@3 ~ g5@3 ~ a4 ~ b4@4",
F: "[a4@3 g4@2 ~@7 b4@2 a4@4 b4@3 ~@5 b4 ~ b4 ~ a4 g4]/2", G: "e4@3 ~@5", H: "~@10 b4 ~ d5@2 b4 e5",
I: "~ e5@3 ~@6 b4 ~ a4 ~ g4 a4", J: "[a4@3 g4@2 ~@7 b4@2 a4@4 b4@3 ~@5 e5 b4 a4 ~ g4@4 e4@6 ~@8]/3",
K: "[~@9 b4!3 d5 e5 ~ e5@5 ~@6 b4 ~ d5 e5 ~ g5]/2", L: "[~ f#5@6 ~@3 g5 ~ f#5 e5 ~ e5@4 ~@7 b4 ~ d5 ~ e5@2]/2",
M: "[~@2 d5@3 ~ b4@3 ~ a4@4 g4@4 ~@14]/2", N: "[~@10 b4 ~ d5 e5 ~ e5@3 ~@14]/2",
O: "[~@6 a4 ~ d5@4 c5@2 a4@10 ~@8]/2", P: "~@6 b4@2 e5@3 d5@2 e5@3", Q: "b4@3 ~",
R: "[~@10 b4 ~ d5 e5 ~ e5@4 ~@7 b4 ~ a4 ~ g4 a4]/2",
S: "[~@2 d5@3 ~ b4@3 ~ a4@4 g4@4 ~@2 d5 ~ d5 b4 ~@2 a4@4 g4@2]/2", T: "~@4 b4 b4@2 a4@3 g4@4 ~@2",
U: "~@4 d5 ~ d5 ~ b4 ~ b4 ~ a4 ~ g4 ~", V: "b4@3 ~ a4@3 ~ g4 ~ f#4@3 ~ e4@2", W: "~@4 d5 ~ d5 b4 ~@2 a4@4 g4@2",
X: "~@4 b4 b4@2 a4@4 ~@5", Y: "b4@3 ~ a4@3 ~ g4 ~@2 f#4@3 e4@2", Z: "~@4 d5 ~ d5 b4 ~@2 a4@6",
AA: "[~@4 d5 ~ d5 b4 ~@2 a4@4 g4@5 ~@13]/2",
})).s("gm_piano").gain(0.46)
// chords · string ensemble 2
const string_ensemble_2 = note(`<
A B C@2 D@2 E@2 F G H I J K L M N O P Q R O S T U V W@2 ~@17 X P Q R O S T U V L M N Y Z@2 AA K L M N O P ~@18 X P Q R
O S T U V L M N Y Z@2 AA K L M N O AB AC AD AE AF AC AD AE AG AH AI AJ S T U AK AL@4 ~
>`.pickRestart({
A: "[c2,c3,g3]", B: "d2!2, [d3,a3]", C: "[[e2,e3]@2 ~ b2, b3, ~ f#2]/2", D: "[g2,d3,b3,d4]/2",
E: "[b3 a3 g3 f#3, [a2,e3,e4]]/2", F: "g3 f#3, [c2,c3,e4]", G: "e3 d3, [d2,a2,d4]", H: "[e3,b3,g4]", I: "[d3,b3,f#4]",
J: "[c3,c4,e4]", K: "[d3,a3,f#4]", L: "[a2,e3,c4,g4]", M: "[b2,f#3,d4,a4]", N: "[c3,g3,e4,b4]", O: "[d3,a3,f#4,d5]",
P: "[e3,b3,g4,e5]", Q: "[d3,b3,f#4,d5]", R: "[c3,c4,e4,c5]", S: "e5 d5, [a2,e3,c4,g4]", T: "g5 f#5, [b2,b3,d4,a4]",
U: "e5 d5, [c3,g3,e4,b4]", V: "b4 a4, [d3,a3,f#4]", W: "[e3,b3,g4,e5]/2", X: "[e3,e4,a4,b4,d5]",
Y: "[d3,e3,a3,e4,f#4,a4,b4,d5]", Z: "[[e3,g4] [d3,f#4], [b3,e5]]/2", AA: "[e3,c4,e4]", AB: "[e2,e3,b3,g4,e5]",
AC: "[b1,b2]", AD: "[c2,c3]", AE: "[d2,d3]", AF: "[a1,a2]", AG: "[e2,e3,e5]", AH: "[b1,b2,e5]", AI: "[c2,c3,e5]",
AJ: "[d2,d3,e5]", AK: "b4 d5, [d3,a3,f#4]", AL: "[e3,b3,e4,e5]/2",
})).s("gm_string_ensemble_2").gain(0.21)
// chords · percussive organ
const percussive_organ = note(`<
~@26 A@4 B C D E A@4 B C D E B C D E ~@20 A@4 B C D E A@4 B C D E B C F@2 ~@40 G
>`.pickRestart({
A: "[g4,b4,e5] ~@2 [g4,b4,e5] ~@6 [g4,b4,e5] ~@2 [g4,a4,d5] ~@2", // Em Gsus2
B: "[g4,c5,e5] ~@2 [g4,c5,e5] ~@6 [g4,c5,e5] ~@2 [g4,a4,d5] ~@2", // C Gsus2
C: "[a4,d5,f#5] ~@2 [a4,d5,f#5] ~@6 [a4,d5,f#5] ~@2 [a4,c#5,e5] ~@2", // D A
D: "[g4,b4,e5] ~@2 [g4,b4,e5] ~@2 [g4,a4,d5] ~@3 [g4,a4,d5] ~@2 [g4,a4,d5] ~@2", // Em Gsus2
E: "[g4,b4,e5] ~@2 [g4,b4,e5] ~@2 [g4,a4,d5] ~@3 [g4,a4,d5] ~@2 [g4,b4,e5]!2 ~", // Em Gsus2 Em
F: "[g4,b4,e5]@2 ~@2 [g4,b4,e5]@2 ~ [g4,a4,d5] ~ [g4,a4,d5] ~ [a4,d5] [g4,a4,d5] ~ [g4,a4,d5] ~", // Em Gsus2 D5 Gsus2
G: "[e4,g4,b4,e5] ~", // Em
})).s("gm_percussive_organ").gain(0.18).pan(0.7)
// other · vibraphone
const vibraphone = note("<~@126 [e5 ~]>").s("gm_vibraphone").gain(0.22).pan(0.6)
// drums · kick
const kick = s("bd").struct(`<
~@10 A@8 B@4 A@24 C B@3 C B@3 A@5 D A E A D A E A@20 C B@3 C B@3 A@5 D A E A D A E F G F G F G F G F G F G F G F G C
B@4
>`.pickRestart({
A: "x!4", B: "x", C: "x ~@6 x", D: "x ~ x ~ x ~ x!2", E: "x ~ x!3 ~ x!2", F: "x ~@6 x ~ x!2 ~@5",
G: "x ~@6 x ~ x!2 ~@4 x",
})).gain(0.45)
// drums · rim
const rim = s("rim").struct("<~@26 A B A B A B A B ~@32 A B A B A B A B ~@53>".pickRestart({
A: "~@2 x ~@2 x ~@2 x ~@2 x!2 ~ x ~", B: "x ~ x ~ x!2 ~@2 x ~@2 x!2 ~ x ~",
})).gain(0.3)
// drums · clap
const clap = s("cp").struct("<~@10 A@8 ~@4 A@4 ~@8 A@12 ~@8 A@12 ~@8 A@48 ~@5>".pickRestart({
A: "~ x ~ x",
})).gain(0.35)
// drums · snare
const snare = s("sd").struct("<~@10 A@8 ~@4 A@4 ~@8 A@8 B@4 ~@8 B@12 ~@8 A@8 B@4 ~@4 A@4 B@28 ~@5>".pickRestart({
A: "~@2 x ~ x ~@2 x ~ x ~ x!2 ~@2 x", B: "~@2 x ~ x!2 ~ x ~ x ~ x!3 ~ x",
})).gain(0.2)
// drums · hihat
const hihat = s("hh").struct("<~@10 A@16 B@8 C@8 D@4 ~@4 A@4 E@12 B@8 C@8 D@4 ~@4 F@4 E@12 G@16 A@4 ~>".pickRestart({
A: "x!2 ~@2 x!2 ~@2 x!2 ~@2 x!2 ~@2", B: "x!8", C: "x ~ x!3 ~ x!2", D: "x ~@3 x ~ x ~ x ~@3 x ~ x!2",
E: "x ~@3 x!5 ~@3 x ~ x!2", F: "x ~ x ~ x!5 ~ x ~ x ~ x!2", G: "x!11 ~ x!4",
})).gain(0.25)
// drums · open hat
const open_hat = s("oh").struct("<~@10 A@16 ~@8 B@12 ~@4 A@4 B@12 ~@8 B@12 ~@8 B@12 ~@16 A@4 ~>".pickRestart({
A: "~ x ~ x ~ x ~ x", B: "~ x ~@3 x ~@2",
})).gain(0.25)
// drums · crash
const crash = s("cr").struct(`<
~@9 A ~@8 B ~@3 B ~@3 B ~@7 B ~@7 B ~@3 B ~@3 B ~@3 B ~@3 B ~@7 B ~@7 B ~@7 B ~@3 B ~@3 B ~@3 B ~@3 B ~@7 B ~@3 B ~@3
B ~@3 B ~@3 B ~@3 B
>`.pickRestart({
A: "~@15 x", B: "x",
})).gain(0.3)
// drums · congas
const congas = s("conga:13").struct("<~@10 [~ x ~@3 x ~@2]!36 ~@8 [~ x ~@3 x ~@2]!32 ~@8 [~ x ~@3 x ~@2]!12 ~@21>")
.gain(1.11)
// drums · congas
const congas_2 = s("conga:18").struct(`<
~@10 A B A C A@2 B A@6 B@2 A@10 B A@2 C D@2 A E@4 ~@8 E F E B E G E@3 F E@2 A@9 D A@2 B A B A G D E A ~@8 H@2 E@2 G
E@6 I ~@21
>`.pickRestart({
A: "~@6 x!2 ~@6 x!2", B: "~@6 x ~@7 x!2", C: "~@3 x ~@3 x", D: "~@6 x!2 ~@6 x ~", E: "~@5 x!3 ~@6 x!2",
F: "~@5 x!2 ~@7 x!2", G: "~@5 x!3 ~@6 x ~", H: "~@5 x!2 ~@7 x ~", I: "~@5 x ~@10",
})).gain(1.11)
// drums · congas · soft notes
const congas_soft = s("conga:18").struct(`<
~@10 A@2 ~ A@2 B A@5 B@2 A@6 B A@12 ~ B@3 ~@8 B@12 A@16 ~ B ~ B ~@8 B@7 ~ B@3 ~@22
>`.pickRestart({
A: "~@5 x ~@7 x ~@2", B: "~@13 x ~@2",
})).gain(0.79)
// drums · congas
const congas_3 = s("conga:33").struct("<~@10 [x!2]!36 ~@8 [x!2]!32 ~@8 [x!2]!12 ~@20 x>").gain(1.11)
// drums · cabasa
const cabasa = s("cabasa:4").struct("<~@10 A@16 B@16 C@4 D@8 C@4 B@24 C@4 D@8 C@4 E@24 D@4 F>".pickRestart({
A: "~@9 x ~@3 x ~@2", B: "x!2 ~@5 x ~ x ~ x ~ x ~@2", C: "x!2 ~ x ~ x ~ x!3 ~ x!3 ~ x", D: "x!3 ~ x!3 ~ x!3 ~ x!3 ~",
E: "x!2 ~@5 x ~ x ~ x!3 ~ x", F: "x",
})).gain(1.01)
// drums · shaker
const shaker = s("sh").struct("<~@10 [~ x ~ x ~ x ~ x]!36 ~@8 [~ x ~ x ~ x ~ x]!32 ~@8 [~ x ~ x ~ x ~ x]!28 ~@5>")
.gain(0.2)
stack(
bass, piano, piano_2, string_ensemble_2, percussive_organ, vibraphone, kick, rim, clap, snare, hihat, open_hat, crash,
congas, congas_2, congas_soft, congas_3, cabasa, shaker
)
More by D:Ream
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.