0:00/0:00
// Video Killed The Radio Star — Presidents Of The United States
// 130 bpm, 4/4, key C# major. 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: sustain pedal (CC 64) lengthens the held notes
// note: duplicate parts dropped: ch 15 electric guitar muted (copy of ch 12 electric guitar muted, 0.188 beats late)
// note: Full arrangement: all 139 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(130/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
const piano = note("<~@112 A@6 B@6 C@4 D@7 E ~@3>".pickRestart({
A: "[~@12 c5@4 ~@30 ab4@5 [gb3,ab4]@4 ~@34 f3@2 ~@3 [db4,db5]@2, ~@12 ab4@9 f3@6 eb5@11 ~@24 bb4@11 ~@2 eb3@12 [db5,f5]@4 ~@5, ~@17 eb5@5 ~ ab3@4 bb4@6 [gb3,bb4]@5 ~@4 ab3@4 [ab3,c5]@9 [f3,ab4]@9 gb2@6 ab4@11 [ab3,c5]@10 ~ [ab3,eb5]@4, ~@19 f5@11 ~ db5@4 db5@13 ~@12 [db4,ab5]@5 ~@3 [gb3,eb5]@2 db5@7 ab3@2 bb3@12 ~@5, ~@23 eb5@2 db5@5 ~ db3@7 ~@6 bb3@4 ~@9 [ab3,db5]@7 ~@2 [db3,ab5]@6 ab2@11 db5@2 [gb3,eb5]@6 ~@5]/6", // Gbsus2 Db Gb Ab Fm Ab Ab5 Db5 …
B: "[~@6 [eb4,bb4]@2 ab3@5 ~@4 bb3@2 [ab3,ab4,c5]@4 ab4@4 ~@5 ab5@2 ~@6 eb5@2 ~@9 bb3@2 ~@13 db5@2 ~@6 bb4@3 ~@10 ab4@4 [gb3,ab4]@4 ~, [gb3,eb5]@10 ~@3 eb3@7 ~@8 [f3,ab4]@6 bb4@6 eb4@14 ~@6 db5@6 db4@8 eb4@13 [ab3,c5]@8 ~, bb4@6 ~@2 [ab4,db5]@11 ~@13 db4@10 [ab4,db5]@12 ~ db5@4 ~ f5@10 gb3@7 ~@2 ab3@2 eb3@15, ~@4 [bb3,db5]@5 ~@6 ab3@4 ~@11 [ab3,db5]@5 ~ gb3@7 ~@2 ab3@4 ab3@4 [ab3,c5]@9 ~@2 [ab3,eb5]@4 eb5@9 db5@19, ~@38 [bb3,ab5]@5 ~@4 eb3@7 ~@3 [gb3,eb5]@5 f3@6 bb4@4 [bb3,db5]@5 ab4@6 ab3@2 bb3@11]/6", // Eb5 Ab Gbsus2 Ebm Fm Ab Db5 Bbm …
C: "[~@27 db5@3 ~@4 f3@2 ~@2 [db4,db5]@2 ~@7 [eb4,bb4]@2 ~@8 bb3@2 [ab3,ab4,c5]@5, [f3,ab4]@8 gb2@7 ab4@10 [ab3,c5]@5 [gb3,eb5]@6 [ab3,eb5]@5 ~@3 [bb3,db5]@5 ab3@6 ab3@4 ~@5, ~@2 [ab3,db5]@7 ~ [db3,ab5]@5 db5@6 ab3@2 bb3@9 [db5,f5]@4 ~@4 bb4@6 ~@3 [ab4,db5]@11 ~@4, ~@4 [db4,ab5]@5 ~@4 [gb3,eb5]@4 ab2@18 ~@29, ~@6 bb4@11 ~@2 eb3@16 ~@5 [gb3,eb5]@10 ~@3 eb3@7 ~@4]/4", // Db Eb5 Ab Fm Ab Ebm Ab5 Bbm …
D: "[ab4@4 ~@4 ab5@2 ~@7 eb5@2 ~@8 bb3@3 ~@12 db5@2 ~@7 bb4@2 ~@11 ab4@4 [gb3,ab4]@4 ~@21 ab3@3 ~@10 f3@2 ~@2 [db4,db5]@2, ~@4 [f3,ab4]@6 bb4@7 eb4@14 ~@5 db5@6 db4@9 eb4@13 [ab3,c5]@8 ~@2 [ab3,db5]@7 ~@2 [db3,ab5]@4 ab4@11 [ab3,c5]@10 [ab3,eb5]@4, ~@6 [ab3,db5]@5 ~ gb3@7 ~@2 ab3@4 ab3@4 ~ [ab3,c5]@8 f3@6 eb5@9 db5@19 ~@7 bb4@11 ~ eb3@9 db5@2 [gb3,eb5]@6 ~@4, ~@8 db4@11 [ab4,db5]@12 ~ db5@4 f5@10 ~ gb3@6 ab4@6 ab3@2 bb3@11 ~@4 [db4,ab5]@5 ~@4 [gb3,eb5]@2 db5@9 bb3@12 ~@4, ~@15 [bb3,ab5]@5 ~@3 eb3@7 ~@4 [gb3,eb5]@5 ~ [ab3,eb5]@4 bb4@5 [bb3,db5]@5 ~ ab3@2 eb3@15 [f3,ab4]@9 gb2@8 ab2@15 [db5,f5]@4 ~@4]/7", // Gbsus2 Db Fm Ab Db5 Ab Ab5 Db5 …
E: "~@5 db5@4 ~@7, ~ [gb3,eb5]@10 ~@5, ~ bb4@6 ~@9", // Ebm
})).s("gm_piano").gain(0.46).pan(0.7)
// chords · piano · soft notes
const piano_soft = note("<~@112 A B@2 ~@20 C@4>".pickRestart({
A: "~@7 db5, ~@3 ab3", B: "[~@3 db5@6 db4@4 ~@11 eb3@8, ~ gb3@5 ~@7 gb2@9 ab2@10, ~@19 ab4@11 ~@2]/2",
C: "[~@7 [eb4,bb4]@2 ~@9 bb3@2 [ab3,ab4,c5]@4 ab4@4 ~@5 ab5@2 ~@6 eb5@2 [ab4,db5]@9 ~@12, ~@5 bb3@4 [ab4,db5]@11 ~@13 db4@8 eb4@4 ~@19, ~@9 ab3@6 ~ ab3@4 ~@10 [ab3,db5]@5 bb4@9 ~@20, ~@13 eb3@7 ~@8 [f3,ab4]@7 ~@2 gb3@7 ~@20, ~@39 [bb3,ab5]@5 ~@20]/4", // Eb5 Ab Db5 Fm Bb7
})).s("gm_piano").gain(0.2).pan(0.7)
// chords · piano
const piano_2 = note(`<
A@6 B@4 C D C D C D C D C D C D C D C D C D E F E G H I J K C D C D C D C D C D E F E G H I H I J K J K L M N O P Q R
S T U V E F E G H I H I W X Y Z@4 AA AB AA AB AA AB AA AC@7 AD@8 AE@7 ~@26
>`.pickRestart({
A: "[~@19 [bb4,eb5,bb5]@10 ~@7 ab5@9 ~@7 [bb4,gb5]@10 ~@2 ab4@14 ~@7 bb5@9 f3@2, ~@13 gb3@16 f3@16 eb3@16 ~ [bb2,ab3,c4]@16 ~@6 [bb4,eb5]@10 ~@2, ~@15 bb3@14 ~@2 ab3@14 ~@2 bb3@14 ~@17 gb3@16 ~@2, ~@17 eb4@12 ~@4 db4@12 ~@4 db4@12 ~@2 [db4,f4]@15 ~@2 bb3@14 ~@2, ~@35 [ab4,db5]@10 ~@6 gb4@10 ~@21 eb4@12 ~@2]/6", // Eb5 Ebm Fm Eb5 Db Db5
B: "[~@5 [ab4,db5,ab5]@10 ~@6 [gb4,bb4,gb5]@10 ~ [ab4,c5,eb5]@32, ~ ab3@14 eb3@16 ab2@32 ~, ~@3 db4@12 ~@2 bb3@14 ~@33, ~@19 db4@12 ~@33]/4", // Db5 Gb Ab
C: "[f3,db4,ab4,f5] ~ [f3,db4,ab4,eb5] ~ [f3,db4,ab4] ~ [gb4,bb4]@2 [gb3,eb4] ~ [gb4,bb4,db5]@2 [eb3,db4] ~ [ab4,db5]@2, ~@6 [gb3,eb4] ~@3 [eb3,db4] ~@3 [ab3,eb4] ~", // Db Gb Ebm Gb Eb7 Db5 Ebm Eb7 …
D: "[ab3,eb4] ~ [ab3,eb4,ab4,eb5] ~ [ab3,eb4,ab4,eb5] ~ [ab3,eb4,ab4,eb5] ~ [ab3,eb4,ab4,c5] ~ [ab3,eb4,ab4,db5] ~ [ab4,eb5]@2 [gb3,eb4] ~, ~@12 [ab3,eb4] ~@3", // Ab5 Ab Absus4 Ab5 Ebm Ab5
E: "~ db3 [db4,f4,ab4] db3 [db4,ab4] [db4,f4,ab4] db3 [db4,f4,ab4], db2@7 ~, ~@8 f4 ~@7", // Db Db5 Db
F: "~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 [db4,gb4,ab4,db5]@2, gb2", // Dbsus4
G: "~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 gb3@2, gb2", // Dbsus4
H: "[db4,f4,ab4]@3 ~ [c4,eb4,ab4]@3 ~", I: "[bb3,db4,gb4]@3 ~",
J: "[ab1,ab2] ~ [ab1,ab2] ~ [ab1,ab2,ab3,db4,eb4,ab4] ~ [ab1,ab2] ~ [ab1,ab2,ab3,db4,eb4] ~ [ab3,db4,eb4]@2 [ab1,ab2] ~ [ab1,ab2,ab3,db4,eb4] ~, ~@10 [ab1,ab2] ~@5", // Ab Absus4 Ab Absus4 Ab Absus4 Ab
K: "[bb1,bb2] ~ [bb1,bb2] ~ [c4,db4,f4]@2 [bb1,bb2] ~ [bb1,bb2,ab3,c4,db4,f4] ~ [ab3,c4,db4,f4]@2 [bb1,bb2] ~ [bb1,bb2,ab3,c4,db4,f4] ~, ~@4 [bb1,bb2,ab3] ~@5 [bb1,bb2] ~@5", // Bb Dbmaj7 Bb Bbm7 Dbmaj7 Bb Bbm7 Bb7 …
L: "[db4,eb4,gb4,bb4] ~ [db4,eb4,gb4,bb4] ~ [db4,eb4,gb4,bb4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [c4,eb4,ab4] ~ [db4,f4,ab4] ~", // Ebm7 Ab Db
M: "[db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,f4,ab4] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~", // Db Dbsus4
N: "[eb4,gb4,bb4,db5] ~ [eb4,gb4,bb4,db5] ~ [eb4,gb4,bb4,db5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [f4,ab4,db5] ~", // Ebm7 Ab Db
O: "[f4,ab4,db5] ~ [f4,ab4,db5] ~ [f4,ab4,db5] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5] ~", // Db Dbsus4
P: "[gb4,bb4,eb5] ~ [gb4,bb4,eb5] ~ [gb4,bb4,eb5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [eb4,ab4,c5] ~ [f4,a4,c5] ~", // Ebm Ab F
Q: "[f4,a4,c5] ~ [f4,a4,c5] ~ [f4,a4,c5] ~ [bb3,db4,f4,ab4]@9 ~", R: "~@3 [bb4,eb5,bb5]@5, gb3, ~ bb3@7, ~ eb4@3",
S: "~@3 [ab4,db5,ab5]@5, f3, ~ ab3@7, ~ db4@3", T: "~@3 [gb4,bb4,gb5]@5, eb3, ~ bb3@7, ~ db4@3",
U: "ab4@2 [ab2,eb4] ~ [ab2,c4] ~ [bb2,bb4] ~ f4@2 [bb2,db4] ~ [gb2,gb4] ~ db4@2, ab2 ~@7 bb2 ~@5 gb2 ~", // Ab5 Ab Bb Bbm Gb
V: "[gb2,bb3] ~ [bb2,bb4] ~ f4@2 db4@2 [gb2,gb4] ~ [gb2,db4] ~ ab4@2 [ab2,eb4] ~, ~@4 bb2 ~ bb2 ~@5 ab2 ~@3", // Gb Bb Gb Gb5 Ab5
W: "[f4,ab4,db5]@3 ~ [eb4,ab4,c5]@3 ~", X: "[db4,gb4,bb4]@3 ~",
Y: "~@2 [ab2,ab3,db4,f4] ~ ab1@2 [ab2,ab3,c4,eb4] ~, ab1@3 ~@5", // Db Ab
Z: "[[gb1,gb2,gb3,ab3,bb3,db4] ~ [gb1,gb2,gb3,ab3,bb3,db4]@2 ~@2 [gb1,gb2,gb3,ab3,bb3,db4]@46 [f3,db4,ab4,f5] ~ [f3,db4,ab4,eb5] ~ [f3,db4,ab4] ~ [gb4,bb4]@2 [gb3,eb4] ~ [gb4,bb4,db5]@2, ~@58 [gb3,eb4] ~@3 [eb3,db4] ~]/4", // Gb Db Gb Ebm Gb Ebm Eb7
AA: "[eb3,db4] ~ [ab4,db5]@2 [ab3,eb4] ~ [ab3,eb4,ab4,eb5] ~ [ab3,eb4,ab4,eb5] ~ [ab3,eb4,ab4,eb5] ~ [ab3,eb4,ab4,c5] ~ [ab3,eb4,ab4,db5] ~, ~@2 [ab3,eb4] ~@13", // Eb7 Db5 Ab5 Ab Absus4 Ab5
AB: "[ab4,eb5]@2 [gb3,eb4] ~ [f3,db4,ab4,f5] ~ [f3,db4,ab4,eb5] ~ [f3,db4,ab4] ~ [gb4,bb4]@2 [gb3,eb4] ~ [gb4,bb4,db5]@2, [ab3,eb4] ~@9 [gb3,eb4] ~@3 [eb3,db4] ~", // Ab5 Ebm Db Gb Ebm Gb Ab5 Ebm …
AC: "[[ab4,eb5]@2 [gb3,eb4] ~@3 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 [db4,gb4,ab4,db5]@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 gb3@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 [db4,gb4,ab4,db5]@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2, [ab3,eb4] ~@3 db2@14 ~@2 gb2@16 db2@14 ~@2 gb2@16 db2@14 ~@2 gb2@16 db2@12, ~@12 f4 ~@31 f4 ~@31 f4 ~@31 f4 ~@3]/7", // Ab5 Ebm Db Db5 Db Dbsus4 Db Db5 …
AD: "[db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 gb3@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 [db4,gb4,ab4,db5]@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 gb3@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 [db4,gb4,ab4,db5]@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2, ~@2 gb2@8 db2@7 ~ gb2@8 db2@7 ~ gb2@8 db2@7 ~ gb2@8 db2@6, ~@28 f4 ~@31 f4 ~@31 f4 ~@31 f4 ~@3]/8", // Db Dbsus4 Db Db5 Db Dbsus4 Db Db5 …
AE: "[db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 gb3@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 [db4,gb4,ab4,db5]@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@2 gb3@2 [db4,gb4,ab4,db5]@2 gb3 ~ [db4,gb4,ab4,db5] ~ [db4,gb4,ab4,db5]@2 gb3@2 gb3@2 ~@2 db3@2 [db4,f4,ab4]@2 db3@2 [db4,ab4]@2 [db4,f4,ab4]@2 db3@2 [db4,f4,ab4]@2 ~@12, ~@2 gb2@8 db2@7 ~ gb2@8 db2@7 ~ gb2@8 db2@7 ~@7, ~@28 f4 ~@31 f4 ~@31 f4 ~@19]/7", // Db Dbsus4 Db Db5 Db Dbsus4 Db Db5 …
})).s("gm_piano").gain(0.39).pan(0.4)
// bass · fretless bass
const bass = note("<~@3 A@7 ~@129>".pickRestart({
A: "[~@14 db4@6 c4@6 bb3@4 gb3@16 f3@16 ~ eb2@16 ab1@30 ~@3]/7",
})).s("gm_fretless_bass").gain(0.33).pan(0.9)
// bass · electric bass pick
const bass_2 = note(`<
~@24 A B C D E F E F G H I J C B A B A B A B A B E F E F G H G H I K I K L M L M N O P Q R S T E F E F G H G H G H U
V@3 ~@8 W X Y X Y X Y X Y X Y X Y X Y X Y X Y X Y X ~@26
>`.pickRestart({
A: "f1 ~@5 f1!2 gb1 ~@5 f1 gb1", B: "ab1 ~ ab1@2 f1 ~ gb1@2 ab1 ~ ab1@2 f1@2 ab1@2",
C: "f1@2 ~@4 f1!2 gb1@2 ~@4 f1 gb1", D: "ab1@2 ab1@2 f1 ~ gb1@2 ab1 ~ ab1@2 f1@2 ab1@2", E: "db2!8", F: "gb1!8",
G: "db2!4 c2!4", H: "bb1!8", I: "ab1@2 ab1@2 ab2@2 ab1@2 ab1 ~ ab2@2 ab1 ~ ab2@2", J: "bb1!2 bb2 bb1 bb2!2 bb1 bb2",
K: "bb1 ~ bb1@2 bb2@2 bb1 ~ bb1 ~ bb2@2 bb1 ~ bb2@2", L: "gb1 ~@2 ab1 ~@3 f1", M: "~@3 gb1@4 ~",
N: "gb1 ~@2 ab1 ~@3 a1", O: "~@3 bb1@5", P: "gb2", Q: "[db2,ab2]", R: "eb3", S: "ab2 eb2 ab1 bb2 f2 bb1 gb2 db2",
T: "gb1 bb2 f2 bb1 gb2@2 ab2@2", U: "ab1!8", V: "[gb1@2 gb1 ~@3 gb1@39 ~@3]/3", W: "ab2@2 db2!6", X: "db2!2 gb1!6",
Y: "gb1!2 db2!6",
})).s("gm_electric_bass_pick").gain(0.59)
// other · string ensemble 2
const string_ensemble_2 = note("<~@115 A@3 B@6 C@3 D E@2 F@5 G@4>".pickRestart({
A: "[~@3 gb2@4 f2@6 ~ gb2@8 ab2@15 gb2@4 f2@6 ~]/3",
B: "[gb2@8 ab2@15 gb2@4 ~ f2@6 gb2@8 ab2@13 bb2@2 ab2@2 ~ gb2@2 f2@6 gb2@9 ab2@14 gb2@4 ~]/6",
C: "[f2@6 gb2@9 ab2@15 gb2@4 f2@6 gb2@8]/3", D: "~ ab2@15", E: "[gb2@4 f2@6 gb2@9 ab2@13]/2",
F: "[bb2@2 ab2@2 gb2@2 f2@6 gb2@9 ab2@15 gb2@4 f2@6 ~ gb2@8 ab2@15 gb2@4 f2@6]/5",
G: "[~ gb2@8 ab2@15 gb2@4 f2@6 ~ gb2@8 ab2@13 ~@8]/4",
})).s("gm_string_ensemble_2").gain(0.46).pan(0.2)
// chords · synth strings 1
const synth_strings_1 = note(`<
~@4 A@6 ~@18 B C B C D E F G ~@10 B C B C D E D H I J I K L@2 M@2 N@2 O P Q ~@2 B C B C D E D E D E R S@4 ~@7 T U T U
T U T U T U T U T U T U T U T U T V ~@2 W@3 X@2 Y@4 Z@3 AA@8 AB@4
>`.pickRestart({
A: "[~@21 bb6@8 ~@8 [ab5,db6,ab6]@8 ~@8 [gb5,bb5,gb6]@8 ~@2 [ab3,c6,eb6,ab6]@33, ~@14 gb4@6 [bb5,eb6]@8 ~@6 db5@6 ~@11 db5@6 ~@39, ~@16 bb4@6 ~@8 f4@6 ~@11 eb4@6 ~@43, ~@18 eb5@6 ~@8 ab4@6 ~@11 bb4@6 ~@41]/6", // Db5 Gb Ab Eb5
B: "ab6 gb6 f6 eb6 db6 c6 bb5 ab5", C: "gb5@2 f5@2 eb5@2 db5@2 ab4@5 ~@3", D: "[db3,f4,ab4,db5] [c3,eb4,ab4,c5]",
E: "[bb2,db4,gb4,bb4]", F: "[db4,eb4,ab4]", G: "[c4,db4,f4]", H: "~@14 c6 db6, [bb2,db4,gb4,bb4]", I: "eb6 ab6",
J: "f6@14 c6 db6", K: "f6@3 ~", L: "[[db4,eb4,gb4,bb4]@3 [c4,eb4,ab4]@4 [ab3,db4,f4]@4 [ab3,bb3,db4]@5]/2",
M: "[[db4,gb4,bb4]@3 [c4,eb4,ab4]@4 [ab3,db4,f4]@4 [ab3,bb3,db4]@5]/2", // Gb Ab Db Bbm7
N: "[[db4,gb4,bb4]@6 [c4,eb4,ab4]@8 [c4,f4,a4]@8 [ab5,bb5,db6,f6]@9 ~]/2", // Gb Ab F Bbm7
O: "~@6 [bb5,eb6,bb6]@7 ~@3, gb4@3 ~@5, ~ bb4@3 ~@4, ~@2 eb5@3 ~@3", // Eb5
P: "~@6 [ab5,db6,ab6]@7 ~@3, f4@3 ~@5, ~ ab4@3 ~@4, ~@2 db5@3 ~@3", // Db5
Q: "~@6 [gb5,bb5,gb6]@7 ~@3, eb4@3 ~@5, ~ bb4@3 ~@4, ~@2 db5@3 ~@3", R: "[ab3,db4,f4] [ab3,c4,eb4], ab2",
S: "[[gb2,ab3,bb3,db4]@25 ~@7]/4", T: "~@2 ab6 gb6 f6 eb6 db6 c6", U: "bb5 ab5 gb5 f5 eb5 db5 ab4@2",
V: "bb5 ab5 gb5 f5 eb5 db5 ~@2",
W: "[~@3 [gb2,c4,ab4]@4 [f2,db4,ab4]@6 ~ [gb2,eb4,bb4]@8 db4@6 ~ c4@2 bb3@2 ~@4 gb2@4 [f2,db4,ab4]@6 ~, ~@22 ab4@19 ~@7, ~@22 ab2@15 ~@11, ~@11 c4@3 ~@2]/3", // Ab7 Db Ebm Db
X: "[[gb2,eb4,bb4]@8 db4@6 ~ c4@2 bb3@2 ~@4 gb2@4 [f2,db4,ab4]@5, ~@8 ab4@19 ~@5, ~@8 ab2@15 ~@9, ~@19 c4@9 ~@4]/2", // Ebm Db
Y: "[~@2 [gb2,eb4,bb4]@8 db4@6 ~ c4@2 bb3@2 ~@2 bb2@2 ab2@2 gb2@2 ~ [f2,db4,ab4]@6 [gb2,eb4,bb4]@8 db4@6 ~ c4@2 bb3@2 ~@4 gb2@4 ~, ~@10 ab4@19 ~@15 ab4@19 ~, ~@10 ab2@13 ~@21 ab2@15 ~@5, ~@21 c4@9 ~@25 c4@9]/4", // Ebm Db Ebm
Z: "[[f2,db4,ab4]@6 [gb2,eb4,bb4]@9 db4@6 c4@2 bb3@2 ~@4 gb2@4 ~ [f2,db4,ab4]@6 [gb2,eb4,bb4]@8, ~@15 ab4@19 ~@14, ~@5 ab2@5 ~@6, ~@25 c4@9 ~@14]/3", // Db Ebm Db Ebm
AA: "[~ db4@6 c4@2 bb3@2 ~@5 gb2@4 [f2,db4,ab4]@6 [gb2,eb4,bb4]@9 db4@6 c4@2 bb3@2 ~@3 bb2@2 ab2@2 gb2@2 [f2,db4,ab4]@6 [gb2,eb4,bb4]@9 db4@6 c4@2 bb3@2 ~@5 gb2@4 [f2,db4,ab4]@6 [gb2,eb4,bb4]@9 db4@6 c4@2 bb3@2 ~@5 gb2@4 [f2,db4,ab4]@6, ~ ab4@19 ~@15 ab4@19 ~@15 ab4@19 ~@15 ab4@19 ~@6, ~ ab2@15 ~@19 ab2@13 ~@21 ab2@15 ~@19 ab2@15 ~@10, ~@11 c4@9 ~@25 c4@9 ~@26 c4@9 ~@25 c4@9 ~@5]/8", // Db Ebm Db Ebm Db Ebm Db
AB: "[~ [gb2,eb4,bb4]@8 db4@6 c4@2 ~ bb3@2 ~@4 gb2@4 [f2,db4,ab4]@6 ~ [gb2,eb4,bb4]@8 ab4@17 ~@4, ~@9 ab4@19 ~@36, ~@9 ab2@15 ~@19 ab2@13 ~@8, ~@20 c4@9 ~@14 db4@7 ~@14]/4", // Ebm Db Ebm
})).s("gm_synth_strings_1").gain(0.27).pan(0.7)
// other · synth bass 2
const synth_bass_2 = note("<~@16 A ~@7 A ~ A ~@7 B@2 ~@6 A ~ A ~@9 B@4 ~@72 C@2 D@2 E@2 F ~@2>".pickRestart({
A: "ab4@4 db5 ~ bb4@3 ~ bb4 ~@5", B: "[db4@5 ~ ab3 ~ db4 ~ eb4@2 f4 ~ db4@6 bb3@7 ~@5]/2",
C: "[~@2 ab4@4 db5@2 bb4@4 ~ bb4@2 ab4@4 db5@2 bb4@4 bb4@2 ~ ab4@4]/2",
D: "[db5@2 bb4@4 bb4@2 ab4@4 ~ db5@2 bb4@4 bb4@2 ab4@4 db5@2 bb4@4 ~]/2",
E: "[bb4@2 ab4@4 db5@2 bb4@4 ~ bb4@2 ab4@4 db5@2 bb4@4 bb4@2 ab4@4 ~]/2", F: "db5 bb4@2 ~@5",
})).s("gm_lead_8_bass_lead").gain(0.34).pan(0.7)
// other · synth bass 2 · soft notes
const synth_bass_2_soft = note("<~@136 A@2 ~>".pickRestart({
A: "[~@6 bb4@2 ab4@4 ~ db5@2 bb4@4 bb4@2 ab4@4 db5@2 bb4@4 ~]/2",
})).s("gm_lead_8_bass_lead").gain(0.17).pan(0.7)
// chords · baritone sax
const baritone_sax = note(`<
~@28 A@2 B@2 ~@14 A@2 B@2 ~@19 A@2 B@2 ~@18 C D E D C D E D C D F D C D E D C D E D E D ~@26
>`.pickRestart({
A: "[f4@2 [f4,ab4] ~ [f4,ab4]@2 ~@2 [f4,ab4]@3 ~ [f4,ab4] ~ [f4,ab4]@4 [gb4,bb4]@2 [db4,gb4]@2 ~@2 [db4,gb4]@5 ~@3, db4 ~@31]/2", // Fm Gb Gb5
B: "[[db4,f4]@2 [f4,ab4] ~ [f4,ab4]@2 ~@2 [f4,ab4]@3 ~ [f4,ab4] ~ [f4,ab4]@4 [gb4,bb4]@2 [db4,gb4]@2 ~@2 [db4,gb4]@4 ~@4]/2", // Db Fm Gb Gb5
C: "~@4 f4@2 [f4,ab4] ~ [f4,ab4]@2 ~@2 [f4,ab4]@3 ~, ~@4 db4 ~@11", // Fm
D: "[f4,ab4] ~ [f4,ab4]@4 [gb4,bb4]@2 [db4,gb4]@2 ~@2 [db4,gb4]@4", // Fm Gb Gb5
E: "~@4 [db4,f4]@2 [f4,ab4] ~ [f4,ab4]@2 ~@2 [f4,ab4]@3 ~", // Db Fm
F: "~@4 [db4,f4]@2 [f4,ab4] ~ [f4,ab4]@2 ~@2 [f4,ab4]@2 ~@2", // Db Fm
})).s("gm_baritone_sax").gain(0.52)
// other · oboe
const oboe = note("<~@123 A B@3 C@3 ~@2 D@2 E@4 ~>".pickRestart({
A: "~@3 ab4", B: "[ab5@21 ~@2 ab5 ~ ab5@2 bb5@2 ~ gb5@4 f5@2 gb5@2 f5@2 db5@4 ~ eb5@3]/3", C: "[~ ab4@36 ~@11]/3",
D: "[~@4 ab4@4 ab5@21 ~@3]/2", E: "[ab5 ~ ab5@2 bb5@2 gb5@4 f5@2 gb5@2 ~ f5@2 db5@4 eb5@4 ab4@37 ~@2]/4",
})).s("gm_oboe").gain(0.39).pan(0.4)
// other · synth brass 2
const synth_brass_2 = note("<~@19 A B C D@2 ~@34 E@2 F G H@2 ~@3 I@2 ~@8 J K ~@51 L@3 ~@6>".pickRestart({
A: "~@10 [ab4,c5] [bb4,db5] [c5,eb5] [ab4,c5] [bb4,db5] [c5,eb5]", B: "ab5@13 ~ ab5 bb5",
C: "ab5 ~ eb5@2 db5@2 bb4@2 c5@2 db5@2 eb5 ~ ab4 bb4",
D: "[ab4 [ab4,bb4]!2 bb4 [ab4,bb4] ab4 [ab4,bb4] bb4 [ab4,bb4] ab4@20 ~@3]/2", // Absus2
E: "[bb4 ~ eb4 ~ bb4 ~ ab4@3 ~ gb4@3 ~ f4@4 db4@4 bb3@8 ~@2]/2", F: "bb4 ~ eb4 ~ bb4 ~ ab4@3 ~ gb4@3 ~ f4@2",
G: "~@2 gb4 ~ ab4 ~ db4@6 ~@4", H: "[bb4 ~ eb4 ~ bb4 ~ ab4@3 ~ gb4@4 f4@4 eb4@4 db4@10]/2",
I: "[ab3@6 bb3@5 ~ gb3@6 bb3@5 ~ gb3@3 ~ ab3@3 ~]/2", J: "f4 ab4", K: "db4",
L: "[[ab4,c5] [bb4,db5] [c5,eb5] [ab4,c5] [bb4,db5] [c5,eb5] c5 db5 eb5 ~ ab5@34 ~@4, ~@3 ab5@2 ~@19]/3", // Ab Bbm Cm Ab Bbm Cm
})).s("gm_synth_brass_2").gain(0.43).pan(0.8)
// other · string ensemble 1
const string_ensemble_1 = note(`<
~@20 A B A B A B A B C D C D ~@4 A B A B A B A B A B C D C D ~@3 E F G F H ~@5 I ~@5 C D C D ~@6 J K@3 ~@4 L M N M O P
Q P Q P Q P Q P Q P Q P Q P Q P Q P Q R ~@6 S T U V@2 W X Y Z AA AB@3 AC AD AE AF AG AH ~
>`.pickRestart({
A: "ab6 ~ db6 ~ ab5 ~ bb6 ~ eb6 ~ ab5 ~ ab6 ~ eb6 ~",
B: "ab5 ~ ab6 ~ eb6 ~ ab5 ~ [ab5,c6] ~ [ab5,db6] ~ [ab5,eb6] ~ ab5 ~", C: "ab6 gb6 f6 eb6 db6 c6 bb5 ab5",
D: "gb5@2 f5@2 eb5@2 db5@2 ab4@5 ~@3", E: "~@14 c6 db6", F: "eb6 ab6", G: "f6@14 c6 db6", H: "f6@3 ~",
I: "~ bb3 c4 db4@4 ~", J: "f6 ab6", K: "db6/3", L: "~@4 ab6 ~ db6 ~ ab5 ~ bb6 ~ eb6 ~ ab5 ~",
M: "ab6 ~ eb6 ~ ab5 ~ ab6 ~ eb6 ~ ab5 ~ [ab5,c6] ~ [ab5,db6] ~", // Ab Db5
N: "[ab5,eb6] ~ ab5 ~ ab6 ~ db6 ~ ab5 ~ bb6 ~ eb6 ~ ab5 ~", O: "[ab5,eb6] ~ ab5 ~ ab6@2 gb6@2 f6@2 eb6@2 db6@2 c6@2",
P: "bb5 ab5 gb5 f5 eb5 db5 ab4@2", Q: "~@2 ab6 gb6 f6 eb6 db6 c6", R: "bb5 ab5 gb5 f5 eb5 db5 ~@2", S: "~@14 db6 ~",
T: "db6@2 eb6 ~ eb6@2 db6 ~ db6@2 eb6 ~@2 eb6@2 db6", U: "~ db6@2 eb6 ~ eb6@9 ~@2",
V: "[db6 ~ db6@2 eb6 ~ eb6@2 db6 ~ db6@2 ~ eb6 ~ eb6@2 db6 ~ db6@2 eb6 ~ eb6@7 ~@2]/2",
W: "ab6 ~ db6 ~ ab5 ~ bb6 ~ eb6 ~ bb5 ~@2 ab6 ~ db6", X: "~ ab5 ~ ab6 ~ eb6 ~ ab5 ~ c6 ~ db6 ~@2 eb6 ~",
Y: "ab5 ~ ab6 ~ db6 ~ ab5 ~ bb6 ~ eb6 ~ bb5 ~@2 ab6", Z: "~ db6 ~ ab5 ~ ab6 ~ eb6 ~ ab5 ~ c6 ~@2 db6 ~",
AA: "eb6 ~ ab5 ~@3 db6 ~ db6@2 eb6 ~ eb6@2 ~ db6",
AB: "[~ db6@2 eb6 ~ eb6@2 db6 ~ db6@2 eb6 ~@2 eb6@9 ~ db6 ~ db6@2 eb6 ~@2 eb6@2 db6 ~ db6@2 eb6 ~ eb6@2 db6 ~ db6@2 eb6 ~@2]/3",
AC: "eb6@7 ~ ab6 ~ db6 ~ ab5 ~@2 bb6", AD: "~ eb6 ~ bb5 ~ ab6 ~ db6 ~ ab5 ~ ab6 ~ eb6 ~@2",
AE: "ab5 ~ c6 ~ db6 ~ eb6 ~ ab5 ~ ab6 ~ db6 ~ ab5 ~", AF: "~ bb6 ~ eb6 ~ bb5 ~ ab6 ~ db6 ~ ab5 ~ ab6 ~@2",
AG: "eb6 ~ ab5 ~ c6 ~ db6 ~ eb6 ~ ab5 ~@3 db6 ~", AH: "~ db6@2 eb6 ~ eb6@2 db6 ~ db6@2 eb6 ~@4",
})).s("gm_string_ensemble_1").gain(0.24).pan(0.3)
// other · synth bass 2
const synth_bass_2_2 = note("<~@16 A ~@7 A ~ A ~@7 B@2 ~@6 A ~ A ~@9 B@4 ~@81>".pickRestart({
A: "ab4@4 db5 ~ bb4@3 ~ bb4 ~@5", B: "[db4@5 ~ ab3 ~ db4 ~ eb4@2 f4 ~ db4@6 bb3@7 ~@5]/2",
})).s("gm_synth_bass_2").gain(0.35).pan(0.2)
// bass · fretless bass
const bass_3 = note("<~@3 A@7 ~@129>".pickRestart({
A: "[~@14 db4@7 c4@5 bb3@4 gb3@16 f3@16 ~ eb2@16 ab1@33]/7",
})).s("gm_fretless_bass").gain(0.33).pan(0.1)
// other · overdriven guitar
const overdriven_guitar = note("<~@67 A@2 ~@38 B C D@3 E@2 ~@25>".pickRestart({
A: "[[ab4,eb5]@3 [bb4,f5]@3 [gb4,db5]@3 [bb4,f5]@3 [gb4,db5] ~ [ab4,eb5] ~]/2", B: "~ f5@3", C: "eb5@2 f5@2 gb5@11 ~",
D: "[f5@2 gb5@2 ab5@17 ~ ab5 ~ ab5@11 ~ ab5@8 ~@2 gb5@2]/3", E: "[f5@2 gb5@2 f5@2 db5@15 ~@11]/2",
})).s("gm_overdriven_guitar").gain(0.39).pan(0.3)
// other · electric guitar muted · Db5 Ab Gb Db5 Ab Gb
const electric_guitar_muted = note(`<
~@42
[f2!4 [ab3,db4]@2 gb2!4 ~ gb2!2 ~ [ab3,c4]@2, ~@5 [gb3,bb3] ~@2]
[ab2!2 ab2@2 c3@2 eb3@2 gb3 ~ gb3@2 f3@2 eb3 ~]
// … 110 more lines
More by Presidents Of The United States
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.