0:00/0:00
// Kicking Bird's Gift — Barry John
// 70 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: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 27 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(70/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 · "A.PIANO 1"
const piano = note("<A B ~ C D E F G H I J@2 K L M N@2 O@8 ~@2>".pickRestart({
A: "[c3,f3]", B: "~ [bb2,f3]@47", C: "~ d3@5, ~ bb1@23", D: "~@13 db4@35, ~ a2@23, ~@7 e3@41",
E: "~@13 gb3@35, ~ d2@23, ~@7 a2@41", F: "~@7 db4@17, ~ a2@47, ~ e3@5", G: "~@5 gb3@11, ~ d2@15, ~@3 a2@13",
H: "~@19 e3@5, ~ a2@15, ~@9 e3@29 ~@10, ~@5 db4@11, ~@13 a3@11", I: "~@7 gb3@17, ~ d2@15, ~ a2@5",
J: "[~@38 e3@13 ~@13 gb3@32, ~@3 a2@48 ~ d2@44, ~@9 e3@29 ~@20 a2@38, ~@5 db4@12 ~@15, ~@27 a3@25 ~@44]/2",
K: "~@16 c3@12 ~ f3@11 f3@8, ~ f2@13 ~@10, ~@4 c3@12 ~@13 bb2@19, ~@5 a3@24 ~@19",
L: "~@17 c3@11 ~@12 f3@8, ~@3 f2@26 bb1@19, ~@4 c3@13 ~@31, ~@5 a3@23 ~@20",
M: "~@16 e3@12 ~ a3@11 a3@8, ~ a2@13 ~@10, ~@3 e3@13 ~@13 d3@19, ~@5 db4@24 ~@19",
N: "[~@17 e3@12 ~@11 a2@11 ~@36 a3@9, ~@2 a2@27 d2@23 f2@44, ~@3 e3@13 ~@42 c3@38, ~ db4@6 ~@9 a3@3 f3@5, ~@35 c4@13]/2",
O: "[~@39 g3@13 ~@35 a3@12 ~@37 g3@13 ~@11 a3@12 ~@13 d4@13 ~@11 a3@11 ~@14 d4@12 ~@23 f3@24 ~@25 f3@24 ~@42, ~@4 eb2@48 f2@47 ~ eb2@48 ~ f2@23 ~@26 f2@23 ~@25 f2@47 ~ f2@48 ~@42, ~@9 bb2@43 ~@6 c3@42 ~@6 bb2@42 ~@6 c3@18 bb2@25 ~@7 c3@17 bb2@25 ~@6 c3@11 c3@30 ~@7 c3@12 c3@31 ~@41, ~@15 g3@12 eb3@25 ~@17 c4@30 ~@18 bb3@31 ~@110 a3@35 ~@13 a3@37 ~@41, ~@21 bb3@31 ~@12 a3@12 f3@24 ~@12 g3@11 eb3@25 ~@31 f3@19 ~@30 f3@18 ~@138]/8",
})).s("gm_piano").gain(0.2)
// chords · piano · "A.PIANO 1" · soft notes
const piano_soft = note("<A ~ B ~@21 C@3>".pickRestart({
A: "f2", B: "~ [f2,c3,f3]@23", C: "[~@7 [f2,c3,f3]@111 ~@26]/3",
})).s("gm_piano").gain(0.1)
// chords · piano · "A.PIANO 1"
const piano_2 = note("<A B C D E F G@2 H I J@2 K@8 L M N@5>".pickRestart({
A: "c4@12 d4@6 a3@6 f4@19 g4@5, a3@17 ~@31", B: "~ g4@12 ~ a4@34, ~ [bb3,d4]@47",
C: "~@2 c4@11 d4@6 a3@6 f4@18 g4@5, ~@2 a3@17 ~@29", D: "~ g4@6 a4@17, ~ [f3,bb3,d4]@23",
E: "~@13 [e4,a4,db5]@12 b4@18 a4@5", F: "~@2 [d4,gb4,a4]@11 gb4@12 a4@12 ~ b4@10",
G: "[~@14 [e4,a4,db5]@12 b4@19 a4@6 [d4,gb4,a4]@12 gb4@11 ~ a4@11 b4@10]/2", // A D
H: "~@15 [e4,db5]@11 [a4,e5]@18 e4@4, ~ e6@15", I: "~@3 [gb4,a4,e5]@11 gb5@11 ~ b4@13 a4@9",
J: "[~@15 [e4,db5]@12 [a4,e5]@18 e4@7 [gb4,a4,e5]@12 gb5@11 b4@13 a4@8, ~@3 e6@49 ~@44]/2", // Dbm A5 Gbm7
K: "[~@10 a4@12 ~@19 c5@6 d5@7 ~@6 a4@11 ~@17 c5@6 d5@7 ~@6 a4@11 ~@18 ab5@6 a5@6 ~@6 a4@12 ~@18 ab5@6 a5@6 ~ [a4,c5,f5,a5]@23 [c5,f5,a5,c6]@17 [c5,c6]@6 ~ [c5,eb5,g5,bb5,c6]@11 [eb4,g4,bb4,eb5]@18 d5@6 eb5@7 bb5@6 [a4,c5,f5,a5]@23 ~ [c5,f5,a5,c6]@18 [c5,c6]@6 [c5,eb5,g5,bb5,c6]@12 [eb4,g4,bb4,eb5]@17 d5@6 ~ eb5@6 bb5@2, ~@4 c4@24 ~ d4@25 c4@23 [d4,f4]@18 ~@6 e4@23 ~ gb4@23 e4@24 ~ [d4,gb4]@24 ~@187, ~@22 d5@18 ~@31 d5@17 ~@30 e5@17 ~@31 e5@18 ~@200]/8", // F C Cm7 Eb F C Cm7 Eb …
L: "~@5 [a4,c5,f5,a5]@17 a5@6 [f4,bb4,d5,g5]@7 f5@13", // F Gm7
M: "[bb3,bb4]@6 [a4,c5,f5,a5]@17 a5@6 [f4,bb4,d5,g5]@6 ~ f5@12", // Bb F Gm7
N: "[[bb3,bb4]@6 [f4,a4,c5,f5]@96 ~ [a3,c4]@112 ~@25]/5", // Bb F Am
})).s("gm_piano").gain(0.25)
// chords · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note("<A B C@2 D E F@2 G H I J K@3 L@4 M@6 ~@2>".pickRestart({
A: "[c3,a3]", B: "~ [bb2,bb3,d4]@47", C: "[~@2 [f2,c3,a3]@47 [bb2,bb3,d4]@47, ~ f3@47]/2", D: "~ [a2,db4,e4]@47",
E: "~ d2@21 ~@2, ~ [d4,gb4]@42 ~@5", F: "[~@2 [a3,db4,e4]@49 ~ [d2,gb4]@40 ~@4, ~@2 a2@46 ~@3 d4@40 ~@5]/2",
G: "~@3 db4@6 e3@6 db4@8 ~@4 a3@9 ~@2 e3@10, ~ a2@14 ~, ~@3 e4@17 ~@28", H: "~@8 a2@6 gb3@33 ~, ~ d2@23",
I: "~@9 e3@5 ~ db4@8 ~@4 a3@10 ~ e3@7 g2 ~@2, ~ a2@22 ~", J: "~@5 a2@3 gb3@16, ~ d2@11",
K: "[~@16 c3@11 ~@13 f3@13 ~@12 c3@11 ~@11 f3@13 ~@12 e3@12 ~ d2@11 a2@8, ~@4 f2@24 bb2@25 ~ f2@22 bb2@24 ~ a2@24 ~@19]/3",
L: "[~@4 a2@12 e3@12 ~@12 a2@12 ~@6 c3@6 a3@6 c4@6 f3@11 ~ a3@12 ~@5 bb2@6 g3@5 ~ bb3@6 eb3@11 ~ g3@13 ~@6 c3@5 a3@5 ~ c4@6 ~ f3@11 a3@9, ~@29 d2@23 f2@47 ~ eb2@48 f2@44]/4",
M: "[~@10 bb2@5 g3@5 ~ bb3@5 ~ eb3@12 g3@12 ~@7 c3@5 ~ a3@11 ~@7 f3@5 ~@2 d4@10 ~@9 c3@5 a3@10 ~@8 f3@6 ~ d4@9 ~@9 c3@5 ~ a3@4 ~ e3@6 f3@24 ~@7 c3@5 a3@5 ~ e3@6 ~ f3@24 ~@42, ~@4 eb2@49 f2@23 bb2@25 ~ f2@23 bb2@25 f2@45 ~@3 f2@48 ~@42]/6",
})).s("gm_string_ensemble_1").gain(0.11).pan(0.4)
// chords · string ensemble 1 · "STRINGS" · soft notes
const string_ensemble_1_soft = note("<A B ~@2 C@2 ~ D E ~@18>".pickRestart({
A: "[f2,f3]@47 ~", B: "~ f3@46 ~", C: "[~ a3@90 ~@5]/2", D: "~@4 a3@43 ~", E: "~ a3@3 ~@12",
})).s("gm_string_ensemble_1").gain(0.05).pan(0.4)
// chords · trombone
const trombone = note("<~@8 A B A C D@3 E F G H I J K L@5>".pickRestart({
A: "~ [a3,db4,e4]@15", B: "~@3 [a3,d4,gb4]@40 ~@5", C: "~@4 [a3,d4,gb4]@41 ~@3",
D: "[~@4 [f3,a3,c4]@23 ~@2 [f3,bb3,d4]@24 ~ [f3,a3,c4]@22 ~ [f3,bb3]@23 ~ [a3,e4]@23 ~ [a3,d4,gb4]@19, ~@76 d4@24 ~ db4@18 ~@25]/3", // F Bb F Bb5 A5 D
E: "~@4 [a3,db4,e4]@23 ~@2 [d4,gb4]@19, ~@7 a3@5", F: "~@5 [f3,a3,c4]@41 ~@2", G: "~@4 [g3,bb3,eb4]@41 ~@3",
H: "~@4 [f3,a3,c4]@43 ~", I: "~@4 [g3,bb3,eb4]@39 ~@5", J: "~@5 [f3,a3,c4]@20 ~@4 f3@19, ~@7 [bb3,d4]@5",
K: "~@6 [f3,a3,c4]@22 ~ [f3,bb3,d4]@18 ~", L: "[~@7 f3@91 ~@5 [f2,c3,a3,c4]@112 ~@25, ~@6 [a3,c4]@91 ~@143]/5",
})).s("gm_trombone").gain(0.12).pan(0.7)
// other · oboe
const oboe = note("<~@8 A@2 B@2 ~@15>".pickRestart({
A: "[~@15 db5@11 e5@18 e4@7 e5@11 gb5@11 ~ b4@12 a4@10]/2", B: "[~@15 db5@12 e5@18 e4@7 e5@12 gb5@11 b4@13 a4@8]/2",
})).s("gm_oboe").gain(0.17).pan(0.4)
// other · clarinet
const clarinet = note("<A B C D E F G@2 ~@19>".pickRestart({
A: "c4@11 ~ d4@6 a3@6 f4@19 g4@5", B: "~ g4@12 ~ a4@27 ~@7", C: "~@2 c4@10 ~ d4@6 a3@6 f4@18 g4@5",
D: "~@2 g4@12 a4@25 ~@9", E: "~@13 db5@11 ~ b4@18 a4@5", F: "~ a4@11 ~ gb4@11 ~ a4@13 b4@10",
G: "[~@14 db5@11 ~ b4@19 a4@5 ~ a4@12 gb4@11 ~ a4@11 b4@10]/2",
})).s("gm_clarinet").gain(0.12).pan(0.4)
// other · orchestral harp · "HARP"
const orchestral_harp = note("<~@4 A B C D E F G@2 ~@15>".pickRestart({
A: "~@13 db4@14 ~@21, ~@2 a2@27 ~@19, ~@7 e3@20 ~@21", B: "~ d2@6 a2@6 gb3@20 ~@15", C: "~ a2@6 e3@7 db4@24 ~@10",
D: "~ d2@2 a2@2 gb3@11", E: "~@3 a2@5 ~ e3@5 db4@11 ~ a3@11 ~ e3@10", F: "~ d2@2 a2@2 gb3@8 ~@3",
G: "[~@2 a2@6 e3@6 ~ db4@11 ~ a3@11 e3@14 ~ d2@5 a2@6 gb3@25 ~@7]/2",
})).s("gm_orchestral_harp").gain(0.17).pan(0.4)
stack(piano, piano_soft, piano_2, string_ensemble_1, string_ensemble_1_soft, trombone, oboe, clarinet, orchestral_harp)
More by Barry John
Dances With Wolves - John Dunbar ThemeF major · 61.2 bpmFarewell and End TitleG major · 64.8 bpmJohn Dunbar ThemeE♭ major · 80 bpmJourney to Fort SedgewickC minor · 80 bpmMain Title Looks Like a SuicideE♭ major · 60 bpmRescue of Dances With WolvesE♭ major · 90 bpmThe Buffalo HuntE♭ major · 115 bpmThe Death of CiscoF minor · 80 bpm
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.