0:00/0:00
// 500 Miles — Peter, Paul & Mary
// 96 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 62 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(96/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.
// other · flute
const flute = note("<[~@6 c5 d5@5 f5@4, ~@7 db5 ~@8] [g5@3 a5 g5@2 f5@2] [d5 c5@2 c5 d5@2 f5@2] f5 ~@58>")
.s("gm_flute").gain(0.5).pan(0.8)
// bass · electric bass finger · "Bass"
const bass = note(`<
A B C D E F G H I J K L M F N O P J C Q R F G H I J K S T F N O P J C U V F G H I J K W X F N O P J C Y Z F G H I J K
AA AB@2
>`.pickRestart({
A: "~@7 bb2@3 ~@2 a2@3 ~", B: "g2@6 d2 ~ g2@7 ~", C: "a2@7 ~ bb2@7 ~", D: "f2@6 c2 ~ [f3,bb3]@2 ~ a3@2 g3@2 ~",
E: "[f2,f3]@13 ~ c2 ~", F: "f2@11 ~ e2@3 ~", G: "d2@4 ~@2 a1 ~ d2@4 d2@2 ~@2", H: "g2@10 ~@2 a2@3 ~",
I: "bb2@7 ~ bb2@3 ~ a2@3 ~", J: "g2@11 ~ g2@3 ~", K: "a2@8 bb2@7 ~", L: "c3 g2", M: "c2@11 ~ c2@2 ~@2",
N: "d2@6 a1 ~ d2@2 ~@2 d2@2 ~@2", O: "g2@6 d2 ~ g2@8", P: "bb2@6 ~@2 bb2@4 a2@3 ~",
Q: "f2@6 c2 ~ [bb2,bb3]@3 [a2,a3]@2 [g2,g3]@3, ~@8 f2@7 ~", R: "f3, f2@13 ~@3", S: "c3@7 [f3,g3] c4@3 bb3@2 g3@3",
T: "c3@6 c2 ~", U: "f2@6 c2 ~ d3@2 ~ c3@2 bb2@2 ~", V: "[f2,c3]@7 ~", W: "c3@7 g3 c4@3 bb3@2 g3@3",
X: "c4@11 ~ c2@2 ~@2", Y: "f2@3 ~@2 c4 f4 c4", Z: "f3", AA: "f2@7 bb3 c4 d4@3 c4@3 [f3,bb3]",
AB: "[~ [c3,f3,c4]@10 ~@5, ~ f2@11 ~@4]/2", // F5
})).s("gm_electric_bass_finger").gain(0.42)
// other · pad new age · "Fantasia"
const pad_new_age = note(`<
A B C D@2 ~@16 E@2 F G F H I ~ J K L G M N O ~ J@2 F G F P Q ~ J@2 F G F P ~@2 J@2 F R F S ~@3
>`.pickRestart({
A: "~@6 c4 d4@5 f4@4, ~@7 db4 ~@8", B: "g4@3 a4 g4@2 f4@2", C: "d4 c4@2 c4 d4@2 f4@2", D: "[f4@5 ~@3]/2",
E: "~@2 f4@2 c5@2 f5@3 ~@7", F: "~ g4 d5 g5 ~@4", G: "~ bb4 f5 bb5 ~@4", H: "~@2 a4@2 e5@2 a5@2 ~@2 bb4@2 f5@2 bb5 ~",
I: "~ c5 g5 c6 ~@4", J: "~ f4 c5 f5 ~@4", K: "~@4 c5@2 f5@3 ~@7, ~ f4@2 ~@5", L: "~@2 d5 g5 ~@4, ~@2 g4@7 ~@7",
M: "~@2 d5 g5 ~@4, ~ g4@2 ~@5", N: "~@4 e5@2 a5 ~@3 bb4@2 f5@2 bb5 ~, ~ a4@2 ~@5", O: "~@4 c5@2 f5 ~@9, ~@2 f4@5 ~@9",
P: "~@2 a4@2 e5@2 a5 ~@3 bb4@2 f5@2 bb5 ~", Q: "~@2 c5@2 g5@2 c6 ~@9", R: "~@2 bb4@2 f5@2 bb5 ~@9",
S: "~@2 a4@2 e5@2 a5 ~@3 bb4@2 f5@3 ~",
})).s("gm_pad_new_age").gain(0.28).pan(0.2)
// chords · piano
const piano = note(`<
A B C D E F G H I J K L M N O P Q R S T@3 G H I J K L M N O P Q R S T@3 G H I J K L M N O P Q R S T@3 G H I J U V@2 ~
>`.pickRestart({
A: "~@12 [a2,a3,c4,e4]@3 ~, ~@7 [bb2,bb3,d4,f4]@8 ~", // Am Bb
B: "~@6 d4 d3, [g2,f4]@15 ~, d4@3 ~, [g3,bb3]@8 [g3,bb3]@7 ~, ~@3 d3@2 d3@2 ~", // G7 Gm
C: "c4@2 c4 e3 d4@2 ~ f3, [a2,a3,e4,g4]@7 ~ [bb2,bb3,f4]@8, ~@3 d4", // A7 Bb5
D: "~@3 c3 a4@2 a4 c3, [f2,a4,c5]@8 [f2,g4,c5]@7 ~, f4!2 ~@2, ~ c3@2 ~@5", // F Fsus2
E: "~@2 a3 c3 a3@2 ~ c3, [f2,f3]@7 ~ [f2,g3,c4]@8, ~ c3@2 ~@3 a3@2", // F Fsus2
F: "[a4,c5]@2 ~@5 c3, f2@5 f2@3, f4@3 c3@4 ~, ~ c5@2 ~, ~ a4 [f4,a4] [f4,a4,c5]", // Am F
G: "~@7 a2, d2, d4@2 f4 a2 d4@4, [f4,a4] e4@3, ~ a2 a4@2 f4 a2 [f4,a4]@2", // F
H: "~@10 g2@2 [g2,d4]@2 a2 ~, g3@15 ~, g2@2 d4 ~, d4@6 d3@9 ~, bb3@2 d3@2 bb3@4 bb3@7 ~", // G5
I: "~@6 [d4,f4] a2, bb2@10 bb2@5 ~, ~@2 f3@4 f3@9 ~, ~@4 [bb3,d4]@4 bb3@7 ~, ~@2 [d4,f4] ~", // Dm Bb Dm
J: "bb3@2 ~@4 bb3 d3, [g2,g3,d4]@15 ~, ~@4 bb3@4 f4@7 ~, ~@3 d3@2 d3@2 ~, ~@2 bb3 ~", // G5
K: "~@3 e3 ~@2 [d4,f4] f3, [a2,a3,g4]@8 bb2@7 ~, c4@2 c4@2 ~ f3@2 ~, ~ e4@3 ~@4", // Dm A7
L: "[c3,c4,e4,g4]@3 g3 ~@3 g3, ~ [c3,c4,f4,g4]", M: "~@7 g3, [c3,c4], [e4,g4] [bb3,e4,g4], ~@3 g3@4 ~",
N: "c5@2 ~@2 [a4,c5]@2 ~ [e2,f4], f4@7 ~, [f2,a4] [f2,g4], ~ c5 ~ [a4,c5], ~@3 c3@5", // Am Fmaj7 F Fsus2 Am
O: "[f4,a4]@2 ~@5 a2, d2@5 d2@3, d4@3 a2@4 ~, ~ e4@3, ~ [f4,a4] [d4,f4,a4]!2", // F Dm
P: "~@7 a2, g2, ~ d3@2 d3@2 d3@3, ~ [bb3,d4]@2 [bb3,d4], ~ g3", // Bb
Q: "~@3 d4 bb3@2 ~ a2, bb2 [bb2,d4,f4], ~ f3@5 [f3,bb3]@2, ~ bb3 ~@2", // Bb Bb5
R: "bb3@2 ~@4 [g3,bb3,d4] d3, [g3,d4]@3 ~, g2@8 [g2,a3]@7 ~, ~ bb3@2 ~, ~@3 d3@2 d3@2 ~", // Gm G5 Gsus2
S: "c4@4 c4@2 ~@2 [bb2,bb3,d4,f4]@6 f3 ~, [a2,a3,e4]@6 e3@9 ~", // Bb A5
T: "[[a4,c5]@2 ~@3 c3@2 ~ [a4,c5]@2 ~@3 c3@2 ~ [a4,c5]@2 ~@5 c3, f2@8 f2@8 f2@5 f2@3, f4@3 c3@2 ~@2 c3@3 c5 c3@2 ~@2 c3@3 a4 c3@4 ~, ~ a4@3 ~ a4@3 ~ c5@2 ~, ~ c5 [f4,c5]@2 f4@2 [f4,c5]@2 f4@2 [f4,a4] [f4,a4,c5]]/3", // Am F5 F
U: "~@3 e3 ~@2 [d4,f4] f3, [a2,a3,g4]@7 ~ bb2@8, c4@2 c4@2 ~ f3@2 ~, ~ e4@3 ~@4", V: "[f2,c3,f3,a3]/2",
})).s("gm_piano").gain(0.32).pan(0.7)
// drums · kick
const kick = s("bd").struct("<~ [x ~@2 x!2 ~@3]!58 ~@3>").gain(0.34)
// drums · rim
const rim = s("rim").struct("<~ [~ x ~ x]!58 ~@3>").gain(0.34)
// drums · hihat
const hihat = s("hh").struct("<~ [x!8]!58 ~@3>").gain(0.21)
// drums · crash
const crash = s("cr").struct("<~@59 x ~@2>").gain(0.3)
// drums · tambourine
const tambourine = s("tb").struct("<~ [~ x]!58 ~@3>").gain(0.21)
// drums · cabasa
const cabasa = s("cabasa:4").struct("<~ [~ x]!58 ~@3>").gain(1.09)
stack(flute, bass, pad_new_age, piano, kick, rim, hihat, crash, tambourine, cabasa)
More by Peter, Paul & Mary
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.