0:00/0:00
// Hoedown — Emerson, Lake & Palmer
// 168 bpm, 4/4, key D 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: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 5 Elec Org 2 -> percussive organ; ch 6 Elec Org 2 -> percussive organ; ch 7 Elec Org 2 -> percussive organ
// note: duplicate parts dropped: ch 4 "ƒx[ƒX 2" acoustic bass (copy of ch 3 "ƒx[ƒX 1" electric bass pick); ch 6 percussive organ (copy of ch 5 percussive organ); ch 9 "ƒVƒ“ƒZ" lead 2 sawtooth (copy of ch 8 "ƒVƒ“ƒZ" lead 2 sawtooth)
// note: Full arrangement: all 162 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(168/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 · electric bass pick · "ƒx[ƒX 1"
const bass = note(`<
~@6 A B A B C D C@2 E F@3 C@3 G H@3 I J@2 K L C D C@3 D C@2 M N O P Q R@2 S T U V U W@3 X Y Z AA AB@3 AC AA AD AE AD
AE AF AG AH AI AJ@3 AK AJ@4 AF AL AF AM B AN ~ AN ~ AN ~ AO@2 AP@2 AQ@2 AR@2 AS AR@4 AT@20 AU AT AU AT AU AT AV AW@4
AX AY@2 AT@7 AB AZ@2 C D C@2 BA@2 BB BA C D@2 BC BD BE@2 BF
>`.pickRestart({
A: "d2@4 ~@10 d2 ~", B: "d2 ~@3", C: "d2@4 d3@4 c3!2 b2!2 c3!2 d3@2", D: "d2@4 d3@3 ~ c3!2 b2!2 c3!2 d3@2",
E: "d2@3 ~ d2 ~ d2@2 ~@2 g2@3 ~ d2 ~", F: "d2@2 ~@2 d2 ~ d2@2 ~@2 g2@3 ~ d2 ~", G: "d2@4 d3@4 c3!2 b2!2 c3!2 d3 ~",
H: "d3@2 ~@2 d3 ~ d3@2 ~@2 d3@3 ~ d3 ~", I: "d3@2 ~@2 d3 ~ d3@3 ~ d3@3 ~ d3 ~",
J: "g2@2 ~@2 g2 ~ g2@2 ~@2 g2@3 ~ g2 ~", K: "g2@3 ~ g2 ~ g2@2 ~@2 g2@3 ~ g2 ~", L: "g2@3 ~ g2 ~ g2@3 ~ g2@3 ~ g2@2",
M: "g2!2 ~ c2 d2@2 e2@2", N: "g2!2 ~ b1 c2@2 e2 f#2", O: "g2!2 ~ b1 c2@2 b1 a1",
P: "g1@3 f#1@2 e1@2 ~@2 g1@2 a1@3 ~@2, ~@4 f#1 ~@3", Q: "a2@4 ~@2 e2@3 ~ g2@3 ~ g2 ~",
R: "[a2@2 ~@4 e2@3 ~ e2@2 a2@2 ~ a2@4 ~@3 e2@3 ~ g2@3 ~ g2 ~]/2", S: "a2@3 ~@3 e2@3 ~ e2 a2@2 ~@2 e2",
T: "e2 ~@2 d2@2 ~@11", U: "e2 e2@2 a2@2 ~@11", V: "e2!2 ~ d2@2 ~@11", W: "a1 g1 a1 g1", X: "a1@2 g1@2 a1 g1 a1 ~",
Y: "a2 a2@2 c#3 a2@2 c#3@2 a2@2 c#3@2 e3@2 c#3 b2", Z: "a2@3 c#3@2 a2 b2 a2@2 ~ a1@6, ~@7 c#3 ~@8", AA: "d2@15 ~",
AB: "d2", AC: "d2@7 ~", AD: "d2@2 d3@2 c3 d3 c3 a2", AE: "d2@4 d3@5 ~ a1@2 d2@3 ~", AF: "d2 d3 d2 d3",
AG: "d2 d3 a1 a2", AH: "a1 a2 a1 a2", AI: "a1@4 a2@4 a1@3 b1@2 c#2@2 ~", AJ: "d2@4 d3@4 c3!2 d3@2 c3@2 a2@2",
AK: "d2@4 d3@4 c3!2 a2@2 c3@2 d3@2", AL: "d2@4 d3@5 a1@2 ~ d2@3 ~", AM: "d2@4 d3@5 a1@2 d2@3 ~@2",
AN: "d2@2 d2@2 g2 g2@2 g2 d2@2 d2@2 g2@2 ~@2",
AO: "[d2@2 d2@2 g2 g2@2 g2 d2@2 d2@2 g2@2 d2@4 d2@2 g2 g2@2 g2 d2@2 ~ g2@2 d2@3, ~@13 d2 ~@2]/2",
AP: "[~@2 d2@2 g2 g2@2 g2 d2@2 d2@2 g2@2 d2@4 d2@2 g2 g2@2 g2 d2@2 ~ g2@2 d2@3, ~@13 d2 ~@2]/2",
AQ: "[~@2 d2@2 g2 g2@2 g2 d2@2 d2@2 g2@2 d2@6 d3@3 d3 c3@2 d3@2 c3@2 a2@2]/2", AR: "d2@4 d3@3 d3 c3@2 d3@2 c3@2 a2@2",
AS: "d2@4 d3@3 d3 c3@2 f#1@2 g1@2 g#1@2", AT: "d2 d3 d2 d3 d2 d3 d2 d3", AU: "d2 d3 d2 d3 c3 a2 g2 f2",
AV: "d2 d3 d2 d3 g2 a2 g2 f2", AW: "d2 a2 d2 a2 d2 a2 d2 a2", AX: "d2 c2 d2 c2 d2 c2 d2 c2",
AY: "d2 f#2 g2 c2 d2 f#2 g2 c2", AZ: "d2 d3@3", BA: "g1@3 ~ g1 ~ g1@3 ~ g1@3 ~ g1@2",
BB: "g1@3 ~ g1@2 g1@3 ~ g1@3 ~ g1 ~", BC: "d2@2 d3@2 c3 d3@2 ~", BD: "d2@2 ~ d2@3 ~ d2!2 ~ d2@2 ~@2 d2!2",
BE: "[~ d2 ~ d2 ~ d2@2 ~ d2 ~ d2 ~ d2@2 ~ f#2@3 ~@8 d2@2 ~@2 d2@2]/2", BF: "~@3 d2@4 ~@9",
})).s("gm_electric_bass_pick").gain(0.4)
// chords · percussive organ
const percussive_organ = note(`<
~@6 A B C B D@3 E F G H I E J@3 ~@4 K L M N O@3 J P@3 Q R S T U V W V X ~ Y Z@2 AA@3 AB ~@8 J AC AD@2 AE AF AG AH J@2
AI@4 AJ@3 AK AL AM AN AO ~ AO AP@2 ~ AQ AR@8 ~@48 J@2 AS@2 AT AU AV AW J@3 AX AY AZ@3
>`.pickRestart({
A: "[d2,d3]@4 ~@10 [d2,d3] ~", B: "[d2,d3]@3 ~@13", C: "[d2,d3]@3 ~@11 [d2,d3] ~",
D: "[[a3,d4]@8 [g3,c4]@7 [a3,d4]@8 ~ [g3,c4]@7 [a3,d4]@8 ~ c4@8, ~@39 g3@8 ~]/3", E: "[a3,d4]@8 [g3,c4]@7 ~",
F: "[a3,d4]@2 ~@2 [a3,d4] ~ [a3,d4] ~@3 [g3,d4]@3 ~ [a3,d4] ~", // D5 G5 D5
G: "[a3,d4] ~@3 [a3,d4] ~ [a3,d4] ~@3 [g3,d4]@3 ~ [a3,d4] ~", // D5 G5 D5
H: "d4@2 ~@2 [a3,d4] ~ d4@2 ~@2 [g3,d4]@3 ~ [a3,d4] ~, a3 ~@5 a3 ~@9", // D5 G5 D5
I: "[a3,d4]@2 ~@2 [a3,d4] ~ [a3,d4] ~@3 [g3,d4]@4 ~@2", J: "[a3,d4] [g3,c4]",
K: "[g3,d4]@2 ~@2 [g3,d4] ~ [g3,d4]@2 ~@2 [g3,d4]@3 ~ [g3,d4] ~", // G5
L: "d4@2 ~@2 [g3,d4] ~ [g3,d4]@2 ~@2 [g3,d4]@3 ~ [g3,d4] ~, g3 ~@15", // G5
M: "[g3,d4] ~@3 [g3,d4] ~ [g3,d4]@2 ~@2 [g3,d4]@2 ~@2 [g3,d4] ~", // G5
N: "[g3,d4]@2 ~@2 [g3,d4] ~ [g3,d4]@2 ~@2 [g3,d4]@4 ~@2", // G5
O: "[[a3,d4]@8 [g3,c4]@7 [a3,d4]@8 ~ [g3,c4]@7 ~ d4@8 [g3,c4]@8, ~@31 a3@8 ~@9]/3", // D5 C5 D5 C5
P: "[[a3,d4]@8 [g3,c4]@7 [a3,d4]@8 ~ g3@7 ~ d4@8 [g3,c4]@8, ~@23 c4@8 a3@8 ~@9]/3", Q: "[a3,d4]@2 [g3,c4] ~",
R: "~ g3 ~ c3 d3@2 e3@2, g2 ~@3", S: "g2@2 g3@3 ~ b2@2 c3@4 e3@2 f#3 ~", T: "g2@3 g3@2 ~ b2@2 c3@3 ~ b2@2 a2@2",
U: "g2@4 f#2@2 e2@2 f#2@2 g2@2 a2 ~@3", V: "[a3,e4]@2 ~@4 [e3,b3]@2 ~@2 [g3,d4]@2 ~@2 [g3,d4] ~",
W: "[a3,e4]@2 ~@4 [e3,b3]@3 ~ [e3,b3] ~ [a3,e4]@2 ~@2", X: "[a3,e4]@2 ~@4 [e3,b3]@2 ~ [e3,b3] ~@2 [a3,e4]@2 ~@2",
Y: "[e3,b3]@3 a3@3 ~@10", Z: "[[e3,b3]@3 ~ d3@2 ~@10 b3@3 a3@3 ~@10, ~@3 a3@3 ~@9 e3@3 ~@14]/2", AA: "a2 g2 a2 g2",
AB: "a2@4 g2@3 a2@4 ~@5", AC: "[a3,d4]@5 ~@3", AD: "[[a3,d4]@8 [g3,c4]@7 ~ d4@12 ~@4, ~@15 a3@12 ~@5]/2",
AE: "[a3,d4]@7 ~ [a3,d4]@6 ~@2", AF: "[a3,d4]@3 ~ [e3,a3]@3 ~", AG: "[e3,a3]@3 ~ [e3,a3]@3 ~",
AH: "[e3,a3]@6 ~@2 [e3,a3]@5 ~@3", // A5
AI: "[[a3,d4]@8 [g3,c4]@7 ~ d4@8 [g3,c4]@7 ~ d4@8 [g3,c4]@7 [a3,d4]@8 ~ [g3,c4]@8, ~@15 a3@8 ~@8 a3@8 ~@25]/4", // D5 C5 D5 C5
AJ: "[[a3,d4]@7 ~ g3@7 ~ d4@13 ~@2 [a3,d4]@6 ~@3 [a3,d4]@6 ~@2, ~@7 c4@8 a3@13 ~@20]/3", // D5
AK: "[a3,d4]@8 ~@3 [a3,d4]@3 ~@2", AL: "[a3,d4]@3 ~ [a3,d4]@3 ~", AM: "[a3,d4]@6 ~@6 [a3,d4]@3 ~", AN: "[a3,d4] ~@3",
AO: "[a3,d4]@3 ~ [g3,d4]@3 ~ [a3,d4]@3 ~ [g3,d4]@3 ~", // D5 G5 D5 G5
AP: "[~@16 d4@3 ~ [g3,d4]@3 ~ [a3,d4]@3 ~ [g3,d4]@3 ~, ~@15 a3@3 ~@14]/2", // G5 D5 G5
AQ: "[a3,d4]@3 ~ [g3,d4]@3 ~ [a3,d4]@3 ~ [g3,d4]@2 ~@2", // D5 G5 D5 G5
AR: "[a3@4 ~ g3@3 a3@4 g3@3 a3@4 ~ g3@4 a3@4 g3@4 a3@4 g3@4 a3@4 g3@3 a3@4 ~ g3@3 a3@5 g3@4 a3@4 g3@4 a3@4 g3@4 a3@4 g3@4 a3@4 g3@4 a3@4 g3@4 a3@4 g3@4 a3@3 g3@4 a3@6 ~@3, d4@63 ~]/8",
AS: "[[a3,d4]@8 [g3,c4]@7 [a3,d4]@8 ~ [g3,c4]@6 ~@2]/2", // D5 C5 D5 C5
AT: "g3@2 ~@2 [g3,d4] ~ [g3,d4] ~@3 [g3,d4]@2 ~@2 [g3,d4] ~, d4 ~@15", // G5
AU: "[g3,d4]@2 ~@2 [g3,d4] ~ d4@2 ~@2 [g3,d4]@2 ~@2 [g3,d4] ~, ~@6 g3 ~@9", // G5
AV: "[g3,d4] ~@3 [g3,d4] ~ [g3,d4] ~@3 [g3,d4]@2 ~@2 [g3,d4] ~", // G5
AW: "[g3,d4]@2 ~@2 [g3,d4] ~ [g3,d4] ~@3 [g3,d4]@3 ~@3", AX: "[a3,d4]@7 [g3,c4]@5 ~@4",
AY: "[a3,d4]@2 ~ [a3,d4]@2 ~ a3 d4 [a3,d4] ~ [a3,d4]@2 ~ [a3,d4] ~ [a3,d4]", // D5
AZ: "[[a3,d4] ~ [a3,d4] ~ [a3,d4] ~@2 a3 d4 [a3,d4] ~ a3@2 ~@2 f#4@3 ~@9 [d3,a3]@2 ~@2 [d3,a3]@2 ~@2 [d3,a3]@4 ~@9, ~@11 d4 ~@36]/3", // D5
})).s("gm_percussive_organ").gain(0.36)
// other · lead 2 sawtooth · "ƒVƒ“ƒZ"
const lead_2_sawtooth = note("<[d4@7 ~]!6 ~@50 [d4@7 ~]!6 ~@78 [d4@7 ~]!6 ~@16>")
.s("gm_lead_2_sawtooth").gain(0.36).pan(0.7)
// drums · kick
const kick = s("bd").struct(`<
~@6 A B A B C D E B F@3 B C G E H B ~@2 I F@3 J K C L H K C L H M@3 K N O N P Q R@3 K@5 S T@3 B T@2 K U K U H K H B
K@6 H V H S H S B W ~ W ~ W ~ W K@8 H K H K H@38 K@2 H@8 F@3 B H@4 X Y Z AA
>`.pickRestart({
A: "x ~@6 x", B: "x", C: "x ~@7 x ~@6 x", D: "~@8 x ~ x ~@4 x", E: "~ x", F: "x ~ x!2 ~ x ~ x", G: "~@8 x ~@6 x",
H: "x!2", I: "~@7 x", J: "x!2 ~@2", K: "x ~@3 x!2 ~@2", L: "~@4 x!2 ~@2", M: "~ x ~@2 x ~ x ~", N: "x ~@2 x ~ x ~ x",
O: "x ~@2 x ~ x!2 ~", P: "x ~@5 x ~@3 x ~ x ~@2 x", Q: "~ x ~ x ~@12", R: "x!2 ~ x ~@12", S: "x ~@2 x",
T: "x ~@7 x ~ x!2 ~@4", U: "x ~@4 x ~@2", V: "x ~@8 x ~@6", W: "x!4", X: "x ~@2 x ~@3 x!2 ~ x ~@3 x!2",
Y: "~ x!2 ~ x ~@3 x!2 ~ x ~@3 x", Z: "~@10 x ~@4 x", AA: "~@3 x ~@12",
})).gain(0.71)
// drums · snare
const snare = s("sd").struct(`<
~@9 A B C B D E F@2 G C B C@2 ~@4 F@3 H C B C@3 B C@2 I@3 C J K J K ~@3 L C@4 M N C@3 O C@9 P C@7 Q C R C R I S ~ T ~
U ~ V W C@6 X Y C Y C@4 Z C@12 O C O C O C O C O C@10 AA C@5 O C O C@4 AB@3 O C@4 AC AD AE AF
>`.pickRestart({
A: "~@9 x!3 ~@4", B: "~@4 x ~@7 x ~ x!2", C: "~ x ~ x", D: "~@4 x ~@4 x!3 ~@4", E: "~@2 x!2 ~ x ~ x",
F: "x ~ x!2 ~ x ~ x", G: "~ x ~@2", H: "x ~@6 x!5 ~@4", I: "x", J: "x ~@2 x ~ x ~ x", K: "x ~@2 x ~ x!2 ~",
L: "~@12 x!4", M: "~@4 x ~ x!2 ~@4 x ~ x!2", N: "~@4 x ~@3 x!2 ~@6", O: "~@4 x ~@3 x!4 ~@4", P: "~@4 x ~@3 x!8",
Q: "~@3 x ~@8 x ~@3", R: "~@2 x ~ x!2 ~@2", S: "x ~ x ~ x!2 ~ x!2 ~ x ~@5", T: "x ~ x ~ x!2 ~ x ~@8",
U: "x ~ x ~ x!2 ~@10", V: "x ~ x ~ x!2 ~ x!2 ~ x!2 ~ x!3", W: "~@4 x ~@2 x ~@4 x ~@3", X: "~@4 x ~@7 x!3 ~",
Y: "~@4 x ~@7 x ~@2 x", Z: "~@4 x ~@3 x!3 ~@5", AA: "x!2 ~ x", AB: "x ~ x!2 ~@4", AC: "x ~@2 x ~@3 x!2 ~ x ~@3 x!2",
AD: "~ x ~ x!2 ~@3 x ~ x!2 ~@3 x", AE: "~@10 x ~@4 x", AF: "~@3 x ~@12",
})).gain(0.64)
// drums · snare · soft notes
const snare_soft = s("sd").struct("<~@9 A ~@3 A ~@3 B C ~ C ~@34 B ~@23 D ~ D ~ E ~ E ~ E ~ F ~@72>".pickRestart({
A: "~ x", B: "~@7 x ~@8", C: "~@15 x", D: "~@9 x ~@6", E: "~ x ~ x ~@2 x ~@9", F: "~ x ~ x ~@2 x ~@5 x ~@3",
})).gain(0.29)
// drums · low tom
const low_tom = s("lt").struct("<~@22 A B ~@2 C@3 ~@13 D E D E ~@104 B@3 ~@9>".pickRestart({
A: "x", B: "~@7 x", C: "~@5 x ~ x", D: "~@3 x ~ x ~ x", E: "~@3 x ~ x ~@2",
})).gain(0.64)
// drums · hihat
const hihat = s("hh").struct(`<
~@5 A@4 ~ B C B D E@3 ~ C B C B E F G F ~@4 C H C H C H C H I ~@2 H ~@8 J@3 K L M N@3 O N@3 K C K C N@2 ~ C P N Q N R
N S T D T D ~@8 C N@6 K N@7 O C N@5 K N@5 O N O C O C O C O C N@12 U@2 N O C O C N@3 ~@4 C N@3 ~@4
>`.pickRestart({
A: "~@3 x", B: "~ x!6 ~", C: "~ x!7", D: "~ x!3 ~@4", E: "~@2 x!2 ~ x ~ x", F: "x ~ x!2 ~ x ~@2",
G: "x ~ x!2 ~ x ~ x", H: "x!7 ~", I: "x", J: "x!6 ~ x", K: "x!6 ~@2", L: "x!3 ~ x!3 ~", M: "x!2 ~ x ~@4", N: "x!8",
O: "x!4 ~@4", P: "x!5 ~@2 x", Q: "x!4 ~@3 x", R: "x!2 ~ x ~ x ~@2", S: "x ~ x ~ x ~ x!2 ~@2 x ~ x ~ x ~",
T: "~ x!3 ~ x!3", U: "~ x!5 ~@2",
})).gain(0.71)
// drums · mid tom
const mid_tom = s("mt").struct(`<
~@9 A ~@3 A ~@3 A ~@11 A ~@12 B C B C ~@13 A ~@42 D E D ~@2 F ~@2 G ~ H ~@11 F ~@10 B ~@14 I@3 ~@5 J K ~@2
>`.pickRestart({
A: "~@12 x!4", B: "x", C: "x ~@2 x", D: "~@4 x ~@4 x ~@6", E: "~@3 x ~@2 x ~", F: "~@3 x", G: "~@8 x ~ x ~@2 x ~@2",
H: "~ x ~@14", I: "~@5 x ~@2", J: "~@14 x!2", K: "~ x!2 ~ x ~@3 x ~ x!2 ~@4",
})).gain(0.64)
// drums · open hat
const open_hat = s("oh").struct(`<
~@21 A ~@11 A ~@3 A ~@2 B ~@9 B@4 ~@15 C ~ D ~ E ~ F ~@36 B ~@27 B@2 ~@11 G ~@8
>`.pickRestart({
A: "~@7 x", B: "~@3 x", C: "x!2 ~@2", D: "~@5 x!2 ~", E: "~@4 x!3 ~", F: "~ x!2 ~", G: "~ x ~@2",
})).gain(0.71)
// drums · high tom
const high_tom = s("ht").struct(`<
~@17 A ~@8 B@3 C ~@55 D ~ E ~@17 F ~@6 G H I ~@2 J K ~ K L K H K L K L M ~@7 J ~@6 K ~ K ~@7 K ~@8
>`.pickRestart({
A: "~@9 x!3 ~@4", B: "~@2 x!2 ~@4", C: "~ x ~@2", D: "~@8 x!3 ~@5", E: "~@7 x!4 ~@5", F: "~@11 x!4 ~",
G: "~@11 x ~@4", H: "~@3 x", I: "~ x ~ x", J: "x", K: "~@12 x!4", L: "x ~@2 x", M: "~@3 x ~@4",
})).gain(0.64)
// drums · high tom · soft notes
const high_tom_soft = s("ht").struct(`<
~@17
[~ x]
~@4
[~@2 x!2 ~ x ~ x]
[x ~ x!2 ~ x ~@2]
[x ~ x!2 ~ x ~ x]
[x ~ x!2 ~ x ~@2]
~@136
>`).gain(0.43)
// drums · crash
const crash = s("cr").struct(`<
~@6 A B A B C D ~ B@5 C D ~ B ~@3 E B@5 D ~@2 B D ~@2 F@2 G ~@4 D H I@3 ~@4 B J ~@7 K B K B ~@3 B ~@4 K ~@2 L M L M B
K ~ K ~ K ~@2 B ~@11 E ~@2 N B ~@5 O ~@6 B ~ B ~ B ~ B ~ B ~@7 P ~@4 B@2 ~@2 B ~ B ~@3 Q@3 B@2 ~@3 R ~ S T
>`.pickRestart({
A: "x ~@6 x", B: "x", C: "x ~@14 x", D: "~@15 x", E: "~@7 x", F: "~ x ~@2 x ~ x ~", G: "~ x ~@2 x ~@3",
H: "x ~@2 x ~@12", I: "x!2 ~ x ~@12", J: "x!2 ~ x", K: "~@3 x", L: "x!2", M: "x ~@2 x", N: "~ x ~@2",
O: "~@3 x ~ x ~@10", P: "~@8 x ~@2 x ~@4", Q: "x ~@2 x ~ x ~@2", R: "x ~@2 x ~@3 x!2 ~ x ~@5", S: "~@5 x ~ x",
T: "~@3 x ~@12",
})).gain(0.71)
// drums · tambourine
const tambourine = s("tb").struct("<~@112 [~@7 x ~@8] ~@22 [~@13 x ~@2] ~@26>").gain(0.64)
// drums · ride
const ride = s("rd").struct("<~@102 A ~ A B ~@4 C ~@24 B ~@26>".pickRestart({
A: "~@3 x", B: "~@3 x ~@4", C: "~@9 x ~ x ~@2 x ~",
})).gain(0.64)
// drums · bongos
const bongos = s("bongo:4").struct("<~@110 [~@3 x ~@4] [~ x ~@2 x ~ x ~@2 x ~ x ~@2 x ~] ~@50>").gain(1.69)
// drums · bongos
const bongos_2 = s("bongo:18").struct("<~@105 [x ~@6 x ~@8] ~@56>").gain(1.69)
// drums · congas
const congas = s("conga:13").struct("<~@102 A B C D ~ E ~@2 F ~ G ~@7 H ~@14 I ~@26>".pickRestart({
A: "~@6 x ~@4 x ~@4", B: "x!3 ~@5", C: "~@6 x ~@4 x ~@2 x ~", D: "~ x", E: "~@15 x", F: "~@5 x ~@10",
G: "~ x ~ x ~@4", H: "~@7 x", I: "~ x ~@2",
})).gain(2.06)
// drums · congas
// … 56 more lines
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.