0:00/0:00
// Peter Gunn Theme — Emerson, Lake & Palmer
// 118 bpm, 4/4, key F 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: duplicate parts dropped: ch 9 "BARITONSAX" baritone sax (copy of ch 12 "TROMBONE" trombone)
// note: Full arrangement: all 60 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(118/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 · acoustic bass · "ACOU BASS"
const bass = note("<A B C@52 D E F@2 ~@2>".pickRestart({
A: "f1@2 ~ f1@4 ~@17", B: "f1@2 ~ f1@3 ~@18", C: "f1@2 ~ f1@3 g1@3 f1@3 a1@3 f1@2 ~ bb1@3 a1@2 ~",
D: "gb1@5 ~@2 gb1@5 ~ gb1@5 ~@2 gb1@4", E: "~ gb1@3 ~ gb1@3 ~ gb1@3", F: "[~@3 gb1@4 f1@41]/2",
})).s("gm_acoustic_bass").gain(0.52)
// other · piano · "A.PIANO 1"
const piano = note("<~@2 A@52 B C D@2 ~@2>".pickRestart({
A: "f2@2 ~ f2@3 g2@3 f2@3 a2@3 f2@3 bb2@3 a2@3",
B: "[c5,ab5,c6]@4 ~@3 [c5,ab5,c6]@4 ~@2 [c5,ab5,c6]@4 ~@3 [c5,ab5,c6]@4", // Fm
C: "~@2 [c5,f5,ab5,c6]@6 ~@2 [c5,f5,ab5,c6]@5 ~@3 [c5,f5,ab5,c6]@6", // Fm
D: "[~@3 [c5,f5,ab5,c6]@3 ~ [a4,e5,b5,e6]@22 ~@19]/2", // Fm Asus2
})).s("gm_piano").gain(0.22).pan(0.4)
// other · electric guitar jazz · "JAZZ GTR"
const electric_guitar_jazz = note("<A@54 B C D@2 ~@2>".pickRestart({
A: "f2@3 f2@2 ~ g2@3 f2@2 ~ ab2 a2@2 f2@3 bb2@3 a2@2 ~", B: "gb2@4 ~@3 gb2@4 ~@2 gb2@4 ~@3 gb2@4",
C: "~@2 gb2@6 ~@2 gb2@5 ~@3 gb2@6", D: "[~@3 gb2@4 f2@41]/2",
})).s("gm_electric_guitar_jazz").gain(0.26).pan(0.7)
// other · trumpet
const trumpet = note(`<
~@4 A@2 B C D E F ~ A@2 B C D E F ~ G ~ G ~ G ~ G ~ G ~ G ~ G ~ G H I@2 J K L M N H I@2 J K L M O P Q R S T U@3 ~
>`.pickRestart({
A: "[eb4@21 ~ c4@5 ~@21]/2", B: "eb4", C: "[bb4,b4] ~@3 gb4@6 ~@14, c5 ~@5",
D: "~@3 c4@3 eb4@2 ~ f4@2 ~ gb4@3 ~ gb4@3 ~ gb4@3 ~", E: "gb4@3 ~ f4@2 ~@2 eb4@2 ~@2 c4@3 ~ bb3@2 ~@2 c4@2 ~@2",
F: "ab3@3 a3@7 ~@14", G: "~@3 g4@5 ~@4 g4@3 ~@9", H: "~@16 eb5@4 eb5@3 ~", I: "[eb5@21 ~ c5@5 ~@21]/2", J: "eb5",
K: "[bb5,b5] ~@3 gb5@6 ~@14, c6 ~@5", L: "~@3 c5@3 eb5@2 ~ f5@2 ~ gb5@3 ~ gb5@3 ~ gb5@3 ~",
M: "gb5@3 ~ f5@2 ~@2 eb5@2 ~@2 c5@3 ~ bb4@2 ~@2 c5@2 ~@2", N: "ab4@3 a4@7 ~@14", O: "ab4@3 a4@7 ~@10 f4@2 ~@2",
P: "ab4@3 a4@7 ~@10 f5@2 ~@2", Q: "ab5@3 a5@7 ~@11 f5 ~@2", R: "ab5@3 a5@7 ~@5 eb4@3 f4 ~ a4 c5 ~@2",
S: "eb5@5 ~@2 eb5@4 ~@2 eb5@4 ~@3 eb5@4", T: "~@2 eb5@5 ~@3 eb5@5 ~@3 eb5@6", U: "[~@3 eb5@4 g5@53 ~@12]/3",
})).s("gm_trumpet").gain(0.55).pan(0.4)
// other · tenor sax
const tenor_sax = note(`<
~@12 A@2 B C D E F G H ~ H ~ H ~ H ~ H ~ H ~ H ~ H I J@2 B C K L M I A@2 B C K L N O P Q R S T@3 ~
>`.pickRestart({
A: "[eb3@21 ~ c3@6 ~@20]/2", B: "eb3", C: "[bb3,b3] ~@3 gb3@4 ~@16, c4 ~@7",
D: "~@3 c3@3 eb3@2 ~ f3@2 ~ gb3@3 ~ gb3@3 ~ gb3@3 ~", E: "gb3@3 ~ f3@2 ~@2 eb3@3 ~ c3@3 ~ bb2@3 ~ c3@4",
F: "ab2@3 a2@7 ~@14", G: "~ f3", H: "~@3 c4@5 ~@4 c4@3 ~@9", I: "~@16 eb3@4 eb3@3 ~", J: "[eb3@21 ~@2 c3@6 ~@19]/2",
K: "~@3 eb3@3 gb3@2 ~ ab3@2 ~ a3@3 ~ a3@3 ~ a3@3 ~", L: "a3@3 ~ ab3@2 ~@2 gb3@3 ~ eb3@3 ~ db3@3 ~ eb3@4",
M: "b2@3 c3@7 ~@14", N: "b2@3 c3@7 ~@10 f2@4", O: "ab2@3 a2@7 ~@10 f3@4", P: "ab3@3 a3@7 ~@11 f3 ~@2",
Q: "ab3@3 a3@7 ~@5 eb3@3 f3 ~ a3 c4 ~@2", R: "c4@5 ~@2 c4@4 ~@2 c4@4 ~@3 c4@4", S: "~@2 c4@5 ~@3 c4@5 ~@3 c4@6",
T: "[~@3 c4@4 a3@53 ~@12]/3",
})).s("gm_tenor_sax").gain(0.19).pan(0.7)
// other · trombone
const trombone = note(`<
~@4 A@2 B C D E F ~ A@2 B C D E F G H ~ H ~ H ~ H ~ H ~ H ~ H ~ H I J@2 K C L M N I J@2 K C L M O P Q R S T U@3 ~
>`.pickRestart({
A: "[eb3@21 ~ c3@5 ~@21]/2", B: "eb3", C: "[bb3,b3] ~@3 gb3@6 ~@14, c4 ~@5",
D: "~@3 c4@3 eb4@3 f4@2 ~ gb4@3 ~ gb4@3 ~ gb4@3 ~", E: "gb4@3 ~ f4@2 ~@2 eb4@2 ~@2 c4@3 ~ bb3@2 ~@2 c4@2 ~@2",
F: "ab3@3 a3@7 ~@14", G: "~ f3", H: "~@3 eb4@5 ~@4 eb4@3 ~@9", I: "~@16 g3@4 g3@3 ~", J: "[g3@21 ~ eb3@5 ~@21]/2",
K: "g3", L: "~@3 eb4@3 gb4@3 ab4@2 ~ a4@3 ~ a4@3 ~ a4@3 ~",
M: "a4@3 ~ ab4@2 ~@2 gb4@2 ~@2 eb4@3 ~ db4@2 ~@2 eb4@2 ~@2", N: "b3@3 c4@7 ~@14", O: "b3@3 c4@7 ~@10 f3@2 ~@2",
P: "b2@3 c3@7 ~@10 f3@2 ~@2", Q: "b3@3 c4@7 ~@11 f3 ~@2", R: "b3@3 c4@7 ~@5 eb3@3 f3 ~ a3 c4 ~@2",
S: "ab4@5 ~@2 ab4@4 ~@2 ab4@4 ~@3 ab4@4", T: "~@2 f4@5 ~@3 f4@5 ~@3 f4@6", U: "[~@3 f4@4 e4@53 ~@12]/3",
})).s("gm_trombone").gain(0.58).pan(0.3)
// other · trumpet
const trumpet_2 = note(`<
~@12 A@2 B C D E F ~ G ~ G ~ G ~ G ~ G ~ G ~ G ~ G H I@2 J C K L M H I@2 J C K L N O P Q R S T@3 ~
>`.pickRestart({
A: "[eb4@21 ~ c4@5 ~@21]/2", B: "eb4", C: "[bb4,b4] ~@3 gb4@6 ~@14, c5 ~@5",
D: "~@3 c4@3 eb4@2 ~ f4@2 ~ gb4@3 ~ gb4@3 ~ gb4@3 ~", E: "gb4@3 ~ f4@2 ~@2 eb4@2 ~@2 c4@3 ~ bb3@2 ~@2 c4@2 ~@2",
F: "ab3@3 a3@7 ~@14", G: "~@3 c4@5 ~@4 c4@3 ~@9", H: "~@16 g4@4 g4@3 ~", I: "[g4@21 ~ eb4@5 ~@21]/2", J: "g4",
K: "~@3 eb4@3 gb4@2 ~ ab4@2 ~ a4@3 ~ a4@3 ~ a4@3 ~", L: "a4@3 ~ ab4@2 ~@2 gb4@2 ~@2 eb4@3 ~ db4@2 ~@2 eb4@2 ~@2",
M: "b3@3 c4@7 ~@14", N: "b3@3 c4@7 ~@10 f4@2 ~@2", O: "ab4@3 a4@7 ~@10 f5@2 ~@2", P: "ab5@3 a5@7 ~@11 f5@2 ~",
Q: "ab5@3 a5@7 ~@5 eb4@3 f4 ~ a4 c5 ~@2", R: "c5@5 ~@2 c5@4 ~@2 c5@4 ~@3 c5@4", S: "~@2 c5@5 ~@3 c5@5 ~@3 c5@6",
T: "[~@3 c5@4 e5@53 ~@12]/3",
})).s("gm_trumpet").gain(0.34).pan(0.4)
// other · trombone
const trombone_2 = note(`<
~@4 A@2 B C D E F ~ G@2 B H D E F I J ~ J ~ J ~ J ~ J ~ J ~ J ~ J K A@2 B C D E F K G@2 B H D E L M N O P Q R@3 ~
>`.pickRestart({
A: "[f2@20 ~@3 f2@5 ~@20]/2", B: "f2@11 ~", C: "f2@3 ~@2 f2@6 ~@13",
D: "~@3 c3@3 eb3@3 f3@2 ~ gb3@3 ~ gb3@3 ~ gb3@3 ~", E: "gb3@3 ~ f3@2 ~@2 eb3@2 ~@2 c3@3 ~ bb2@2 ~@2 c3@2 ~@2",
F: "ab2@3 a2@7 ~@14", G: "[f2@20 ~@2 f2@5 ~@21]/2", H: "f2@3 ~ f2@6 ~@14", I: "f2", J: "~@3 f2@5 ~@4 f2@3 ~@9",
K: "~@16 f2@4 f2@3 ~", L: "ab2@3 a2@7 ~@10 f2@2 ~@2", M: "ab2@3 a2@7 ~@10 f3@2 ~@2", N: "ab3@3 a3@7 ~@11 f3 ~@2",
O: "ab3@3 a3@7 ~@5 eb2@3 f2 ~ a2 c3 ~@2", P: "eb3@5 ~@2 eb3@4 ~@2 eb3@4 ~@3 eb3@4",
Q: "~@2 eb3@5 ~@3 eb3@5 ~@3 eb3@6", R: "[~@3 eb3@4 g3@53 ~@12]/3",
})).s("gm_trombone").gain(0.32).pan(0.3)
// other · alto sax
const alto_sax = note("<~@12 A@2 B C D E F ~@16 G H@2 B C D E ~@2 I@2 ~@2 D E F ~@9>".pickRestart({
A: "[eb4@21 ~ c4@6 ~@20]/2", B: "eb4", C: "[bb4,b4] ~@3 gb4@4 ~@16, c5 ~@5",
D: "~@3 c4@3 eb4@2 ~ f4@2 ~ gb4@3 ~ gb4@3 ~ gb4@3 ~", E: "gb4@3 ~ f4@2 ~@2 eb4@3 ~ c4@3 ~ bb3@3 ~ c4@4",
F: "ab3@3 a3@7 ~@14", G: "~@16 eb4@4 eb4@3 ~", H: "[eb4@18 ~@4 c4@5 ~@21]/2", I: "[eb4@9 ~@2 c4@3 ~@10]/2",
})).s("gm_alto_sax").gain(0.32)
// other · french horn · "FR.HORN"
const french_horn = note(`<
~@4 A@2 B C D E F ~ A@2 B C D E F ~ G@16 H@2 I C J K L M H@2 N C J K O@2 P Q R S ~ T@3
>`.pickRestart({
A: "[eb4@21 ~ c4@5 ~@21]/2", B: "eb4", C: "[bb4,b4] ~@3 gb4@6 ~@14, c5 ~@5",
D: "~@3 c4@3 eb4@2 ~ f4@2 ~ gb4@3 ~ gb4@3 ~ gb4@3 ~", E: "gb4@3 ~ f4@2 ~@2 eb4@2 ~@2 c4@3 ~ bb3@2 ~@2 c4@2 ~@2",
F: "ab3@3 a3@7 ~@14", G: "[~@18 f4@16 bb4 c5 f5@5 ~@7]/2", H: "[g4@21 ~ eb4@5 ~@21]/2", I: "g4@23 ~",
J: "~@3 eb4@3 gb4@2 ~ ab4@2 ~ a4@3 ~ a4@3 ~ a4@3 ~", K: "a4@3 ~ ab4@2 ~@2 gb4@2 ~@2 eb4@3 ~ db4@2 ~@2 eb4@2 ~@2",
L: "b3@3 c4@7 ~@14", M: "~@16 g4@4 g4@3 ~", N: "g4", O: "b3@3 c4@7 ~@10 f4@2 ~@2", P: "b4@3 c5@7 ~@11 f4 ~@2",
Q: "b4@3 c5@7 ~@5 eb3@3 f3 ~ a3 c4 ~@2", R: "c4@5 ~@2 c4@4 ~@2 c4@4 ~@3 c4@4", S: "~@2 c4@5 ~@3 c4@5 ~@3 c4@6",
T: "[~@5 d4@9 a4 ~ b4 d5@37 ~@18]/3",
})).s("gm_french_horn").gain(0.45)
// drums · snare
const snare = s("sd").struct("<[~ x ~ x]!54 [~@7 x ~@12 x ~@3] [~@5 x ~@6] [~ x ~@6] ~@3>").gain(0.28)
// drums · ride
const ride = s("rd").struct(`<
[x!8]!54
[x ~@2 x ~@3 x ~@2 x ~@2 x ~@2 x ~@3 x ~@2 x]
[~ x ~ x ~ x ~ x ~ x ~ x]
[~@3 x ~@3 x ~@16]
~@3
>`).gain(0.14)
// drums · crash
const crash = s("cr").struct("<~@56 [~@7 x ~@16] ~@3>").gain(0.21)
stack(
bass, piano, electric_guitar_jazz, trumpet, tenor_sax, trombone, trumpet_2, trombone_2, alto_sax, french_horn, snare,
ride, crash
)
More by Emerson, Lake & Palmer
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.