0:00/0:00
// Bring on the Storm — Broadway
// 80 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: bank select 127 (Roland MT-32 map) read through the MT-32 patch table: ch 9 "#Warm Bell,etc." Warm Bell -> pad bowed
// note: ch 9 "#Warm Bell,etc." named as a mallet, played on tubular bells (its lead 3 calliope patch is not one)
// note: sustain pedal (CC 64) lengthens the held notes
// note: Full arrangement: all 77 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(80/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 · pad new age · "Fantasia"
const pad_new_age = note("<~ A@6 ~@70>".pickRestart({
A: "[~@35 c4@4 ~@12 d4@4 ~@12 e4@4 ~@12 d4@4 ~@12 c4@4 ~@12 d4@4 ~@12 e4@4 ~@8 [bb4,c5]@9 ~@22 e4@18, ~@23 c4@12 ~@4 d4@12 ~@8 f4@12 ~@4 f4@12 ~@4 f4@12 ~@4 f4@12 e4@12 ~@4 d4@17 [c4,f4,bb4]@34 ~@6, ~@27 f4@12 ~@4 f4@12 e4@12 ~@4 d4@12 ~@4 c4@12 ~@4 d4@12 ~@8 f4@12 ~@4 f4@13 ~@40, ~@31 [a4,c5]@8 ~@8 [bb4,c5]@8 ~@8 [a4,c5]@8 ~@8 [bb4,c5]@8 ~@8 [a4,c5]@8 ~@8 [bb4,c5]@8 ~@8 [a4,c5]@8 ~@18 c5@33 ~@6]/6", // Bbsus2 Fsus4 Am Bbsus2 Am Bbsus2 Am Bbsus2 …
})).s("gm_pad_new_age").gain(0.24)
// chords · orchestral harp · "Harp"
const orchestral_harp = note("<~ A@5 ~@36 B@4 C@7 D@6 ~@11 E@7>".pickRestart({
A: "[~@23 c4@4 f4@4 [a4,c5]@4 c4@4 d4@4 f4@4 [bb4,c5]@4 d4@3 ~ e4@4 f4@4 [a4,c5]@4 e4@3 ~ d4@4 f4@4 [bb4,c5]@4 d4@2 ~@2 c4@4 f4@4 [a4,c5]@4 c4@4 d4@4 f4@4 [bb4,c5]@3 ~ d4@4 e4@3 ~ f4@4 [a4,c5]@4 e4@4 d4@4 f4@3 ~ [bb4,c5]@8 ~@9]/5", // Am Bbsus2 Am Bbsus2 Am Bbsus2 Am Bbsus2
B: "[~@9 f5@2 [a5,c6]@2 c5 ~@3 f5@2 [bb5,c6]@2 d5@2 ~@2 f5@2 [a5,c6]@2 e5@2 ~@2 f5@2 ~@2 d5@2 ~@2 f5@2 [a5,c6]@2 c5@2 ~@2 f5@2 [bb5,c6]@2 d5@2 ~@2 f5@2 [a5,c6]@2 e5@2 d5, ~@14 c5@8 ~@8 d5@9 ~@7 e5@8 ~@8 d5@8 [bb5,c6]@7 ~ c5@7 ~@9 d5@8 ~@8 e5@8 ~@10]/4", // Am Bbsus2 Am Bbsus2 Am Bbsus2
C: "[~@2 f5@4 [bb5,c6]@4 d5@3 ~@13 c6@8 ~@24 bb4@4 d5@4 g5@4 bb5@4 g5 ~@7 g4@4 c5@4 g4@4 c5@8 e5@4 c6@3 ~ [c5,g5,c6]@24 ~@8 c5@4 f5@4 [a5,c6]@4 f5@4 ~@4 f5@4 [bb5,c6]@4 d5@4 e5@4 f5@4 [a5,c6]@4 e5@4 ~@4 f5@4 [bb5,c6]@4 d5@4 ~@4 f5@4 ~@4 c5@4 d5@2, ~@14 a4@26 ~@6 g3@25 ~@153, ~@9 e5@11 ~@5 d4@11 ~@3 c4@13 ~@60, ~@22 a5@20 ~@4 d6@13 ~@51 e6@21 ~@83 [a5,c6]@7 ~@3, ~@54 g4@18 ~@86 d5@7 ~@25 d5@7 ~@9 c5@8 ~@10]/7", // Bbsus2 C5 Am Bbsus2 Am Bbsus2 Am
D: "[~@2 f5@4 [bb5,c6]@4 d5@4 ~@4 f5@4 [a5,c6]@4 e5@4 ~@4 f5@4 [bb5,c6]@4 d5@4 a5@4 ~@4 e5@4 a5@4 db6@4 a5@4 e5@4 db5@4 g5@4 ~@4 e5@4 g5@3 ~ bb5@4 db6@4 bb5@3 ~ g5 ~@3 f5@3 ~ d5@4 ~@4 a5@4 d6@4 ~@8 d6@4 ~@4 f5@4 a5@4 d6 ~@3 d5@8 [a4,f5]@4 a5@4 ~@18, ~@14 e5@7 ~@9 d5@8 ~@8 a3@11 ~@13 e4@8 a3@24 e4@7 ~ d4@24 [a4,a5]@8 c4@28 ~@22, ~@50 db5@17 ~@15 db5@27 ~@17 d5@11 ~@13 a4@9 ~@33, ~@54 e4@8 a4@9 ~@15 g4@8 a4@16 ~@8 [a4,f5]@9 ~@3 f5@8 ~@4 f6@12 ~@4 d6@5 ~@29]/6", // Bbsus2 Am Bbsus2 Dm A Dm
E: "[~@13 c5@2 ~@6 d5@2 ~@6 e5@2 ~@35 c5@32 ~@14, ~@14 c5@12 ~@4 d5@12 ~@8 f5@12 ~@4 f5@29 c4@21 c5@7 f5@64 ~@37, ~@18 f5@12 ~@4 f5@12 e5@12 ~@4 d5@39 f4@64 ~@59, ~@11 [a5,c6]@4 ~@4 [bb5,c6]@4 ~@4 [a5,c6]@4 ~@4 [bb5,c6]@19 a4@32 ~@26, ~@47 f3@33 ~@32]/7", // Am Bbsus2 Am Bbsus2
})).s("gm_orchestral_harp").gain(0.25)
// chords · piano · "Piano 1"
const piano = note("<~ A@5 ~ B ~@17 C D E F G@4 H I J K L M N@4 ~@34>".pickRestart({
A: "[~@25 c7@54 c7@2 bb6@2 g6@2 f6@2 c6@62 ~@11, ~@3 c6@7 ~@10]/5",
B: "~@5 c7@24 ~@3, c6@15 ~, ~ e6@29 ~@2, ~@2 g6@27 ~@3",
C: "~@7 d5, bb2@5 f4 bb4@2, d5@2 f4 bb4 [bb3,e4]@4, ~ d4@7, ~ f3@3", // Bbdim
D: "~@7 a4, d5@5 c4 e4@2, a2@3 a4 [a2,c5]@4, ~ d4@7, ~ [f3,f4]@3", // Am F
E: "~@7 bb4, g2@3 f4, d5 f4 [bb3,d5]@2, ~ d4@2 bb4@2 d4@3, ~ d3@3", // Bb
F: "~ [c4,e4,c5], [c3,bb4,d5], e4 g3@3, ~ d4@7, ~@2 e4 g4@5", // C Gm
G: "[~@16 [a3,g4]@15 ~@4 a4@16 ~@5 [a2,e3,a3,c4,e4,a4]@6 ~@5 bb4@20 [g2,d3,g3,d4,g4,bb4]@7 ~@3 a4@31, f2@32 ~@2 e4@18 ~@13 d4@22 ~@8 a3@33, a4@24 ~@7 e3@20 ~@11 g2@25 ~@41, ~@4 f4@8 f4@20 a3@20 ~@11 d3@24 ~@7 d3@34, ~@8 [c3,c4]@24 ~ c4@2 ~@31 g4@21 ~@9 [d4,f4]@32]/4", // A7 Am Gm C Dm
H: "~@7 d5, c3@3 g4, ~ g3@7, ~ c4@3, ~@3 e4 g4 e4@3", I: "~@7 d5, bb2@4 f4 bb4 c5@2, d5@3 d4@5, ~ f3@7, ~ bb3@3",
J: "~@7 c5, a2@2 f4 bb4, c5@3 c4@5, ~ f3@7, ~ a3@3", K: "~@7 d5, bb2@4 f4 bb4 c5@2, bb4@3 d4@5, ~ f3@7, ~ bb3@3",
L: "~@3 c5 ~@2 [f3,f4]@2, [a2,f5], ~ f4@3 [a3,c5]@4, ~@2 a4@5 ~, ~@2 f3@2 f4 c4@3", // F Dm Am
M: "~ [bb3,g4,d5], g2, bb4@2 g4 bb4@5, ~ d4@7, ~ d3@3", // Gm
N: "[~@16 [a3,db5]@20 ~@16 [c4,c5]@59 ~@17, c5@9 ~@2 [g3,e4]@16 ~@5, ~@2 e3@7 c3@16 ~@7, ~@2 e4@2 ~@6 c4@3 ~@19, ~@12 a4@24 g4@12 g4@63 ~@17]/4", // A C
})).s("gm_piano").gain(0.56)
// chords · piano · "Piano 1" · soft notes
const piano_soft = note("<~@26 A ~@2 B@2 C ~@3 D ~ E ~ F@2 ~@36>".pickRestart({
A: "~@3 e3", B: "[~@24 a4@6 ~@10 c4@11 ~@13, ~@15 a2@11 ~@6]/2", C: "g3@23 ~@9", D: "~@5 a4@3", E: "~@7 a4",
F: "[~@4 e4@5 ~@7, a2@9 ~@7, ~ db4@8 ~@7]/2",
})).s("gm_piano").gain(0.32)
// chords · string ensemble 2 · "Slow Strings"
const string_ensemble_2 = note("<~@75 A@2>".pickRestart({
A: "[~ [f5,c6]@30 ~, ~ a5@61 ~@2]/2", // F5
})).s("gm_string_ensemble_2").gain(0.1)
// chords · synth strings 1 · "Syn.Strings1"
const synth_strings_1 = note("<~@17 A B A B C@2 D@2 E F E G@2 ~@25 H I J@8 ~@8 K@2 ~@2>".pickRestart({
A: "[f4,a4,c5] [f4,bb4,d5]", B: "[f4,c5,e5] [f4,bb4,d5]", C: "[db4,e4,a4]/2", D: "[[d4,f4,a4]@63 ~]/2",
E: "[bb2,d4,f4,bb4,d5,f5,bb5]", F: "[a2,d4,f4,a4,d5,f5,a5]",
G: "[[c3,f4,f5]@15 ~ [c2,e4]@15 ~ [f1,f4,a4,c5]@32, [g4,c5,g5,c6]@31 [f5,a5,c6]@32 ~, ~@15 e5@17 ~@32]/2", // F5 C F C5 F
H: "~@7 db2@9", I: "~@7 d2@9",
J: "[~@37 c2@8 ~ [d4,f4,bb4,d5,f5,bb5]@32 [a1,d4,f4,a4,d5,f5]@32 [bb1,d4,f4,bb4,d5,f5,bb5]@32 [c2,f4,g4,c5,f5,g5,c6]@16 [c1,e4,g4,c5,e5,g5,c6]@16 f1@82, ~@2 d4@21 f5@5 a5@2 d2@3 d6@12 bb1@33 ~@178, ~@7 f4@39 ~@112 f4 ~@97, ~@6 a4@17 ~@105, ~@18 d5@28 ~@32 a5@23 ~@155]/8", // Bb Dm Bb Csus4 C
K: "[~ c4@31, [f3,a3,f4]]/2", // F
})).s("gm_synth_strings_1").gain(0.25)
// chords · pad warm · "Warm Pad"
const pad_warm = note("<~ A@8 ~@33 B@8 ~@6 C@3 ~@11 D@5 ~@2>".pickRestart({
A: "[~@23 [f4,a4,c5]@15 [f4,bb4,d5]@16 [f4,c5,e5]@16 [f4,bb4,d5]@17 [f4,a4,c5]@15 ~@17 f4@16 [f4,bb4,d5]@17 f4@20 e4@39 ~@45, ~@51 [f4,bb4,d5]@9 ~@16 c4@52, ~@117 [a4,c5]@18 ~@17 g4@59 ~@45]/8", // F Bb Fmaj7 Bb F Bb Am
B: "[~@14 [a4,c5]@16 [bb4,d5]@16 [f4,c5,e5]@16 [f4,bb4,d5]@16 [f4,a4,c5]@16 [f4,bb4,d5]@16 [f4,c5,e5]@16 [f4,bb4,d5]@16 ~ [e4,a4,c5]@31 [d4,f4,bb4]@32 [c4,f4,a4]@32 [c4,e4,g4]@18, ~@7 f4@16 ~@105]/8", // Am Bb Fmaj7 Bb F Bb Fmaj7 Bb …
C: "[~@7 [d4,f4,a4]@32 ~@9]/3", // Dm
D: "[~@15 [a4,c5]@15 [bb4,d5]@16 [c5,e5]@16 [bb4,d5]@31 ~ [f3,a3]@64 ~@2, ~@15 [f4,f5]@64 ~@14 [c4,f4]@64 ~@3]/5", // Am Bb C Bb F F5
})).s("gm_pad_warm").gain(0.36)
// chords · pad bowed · "#Warm Bell,etc."
const pad_bowed = note("<~@9 A B A C D E F@2 G H G I J@2 K L ~@33 M@6 N@5 ~ O@3 ~@4>".pickRestart({
A: "c5 f5 [a5,c6] c5 d5 f5 [bb5,c6] d5", B: "e5 f5 [a5,c6] e5 d5 f5 [bb5,c6] d5",
C: "e5 f5 [a5,c6] e5 d5 f5 [d5,bb5,c6] c5", D: "~@7 a5, a3@4 e5 a5 c6@2, c6@3 c5@5, a5 a4@3, ~ e4@7",
E: "~@7 g5, g3@4 d5 g5 bb5@2, bb5@3 bb4@5, ~ d4@7, ~ g4@3",
F: "[~@28 c6@4 [c5,g5,c6,e6]@17 ~@15, c4@49 ~@15, ~@4 g4@8 g4@37 ~@15, ~ c5!2 g5 ~@4, ~@20 e5@29 ~@15]/2", // C
G: "c5@4 f5@4 [a5,c6]@3 ~ c5@4 d5@4 f5@4 [bb5,c6]@3 ~ d5@4", // Am Bbsus2
H: "e5@4 f5@4 [a5,c6]@3 ~ e5@4 d5@4 f5@4 [bb5,c6]@4 d5@4", // Am Bbsus2
I: "e5@4 f5@4 [a5,c6]@3 ~ e5@4 d5@4 f5@4 [d5,bb5,c6]@4 c5 ~@3", // Am Gm
J: "[a5@4 ~@4 e5@4 a5@4 db6@4 a5@4 e5@4 ~@4 g5@4 ~@4 e5@3 ~ g5@4 bb5@4 db6@3 ~ bb5@4 g5@4, a3@24 ~@8 a3@25 ~@7, ~@4 db5@12 a4@8 ~@4 db5@7 ~ db5@15 ~@13, ~@8 e4@8 ~@8 e4@8 ~@8 g4@8 a4@8 e4@7 ~]/2",
K: "f5@2 d5@2 f5 ~ a5@2 d6@2 f5@2 ~@2 d6@2, d4@3 [a4,a5], ~@8 a4@8 d5@9 ~@7", // A
L: "~@4 f5@4 a5@4 d6@2 ~@2 d5@9 ~@7, c4@3 ~, f6@8 a4@8 d6@5 ~@11",
M: "[~@14 d7@4 d6@4 f6@4 bb6@4 e6@4 ~@4 bb6@4 d7@3 ~@5 d6@4 f6@4 a6@4 c7@4 c6@4 e6@4 a6@4 ~@4 d6@4 ~@4 bb6@4 ~@4 d6@4 f6@4 bb6@2 ~@2 e6@4 d6@4 e6@4 g6@4 [c6,e6,c7]@11 ~@9 f5@4 [a5,c6]@4 c5@4 ~@4 f5@4 [bb5,c6] ~@3 d5@2 ~@2 e5@4 ~@4 [a5,c6]@4 e5@4 d5@2, ~@14 bb4@24 f5@8 ~@8 f5@8 a4@8 ~@8 g4@15 ~@9 d5@9 ~@7 g5@17 ~@31 f5@4 ~@8 f5@9 ~@5, ~@22 f5@8 bb5@9 ~@31 e5@9 ~@7 [d5,f6]@8 [bb5,d7]@9 ~@7 c5@25 ~@7 c5@7 ~@9 d5@7 ~@27, ~@34 f6@8 ~@36 d7@9 ~@23 [bb6,d7]@15 ~@67]/6", // C Am Bbsus2 Am Dm Bb
N: "[~@6 [bb5,c6]@4 d5 ~@7 f5@4 ~@4 c5@4 ~@4 f5@4 [bb5,c6]@4 d5@4 ~@4 f5@4 ~@4 e5@4 ~@4 f5@4 ~@4 d5@4 ~@4 f5@4 [a5,c6]@4 c5@4 ~@4 f5@4 [bb5,c6]@4 d5@4 ~@4 f5@4 [a5,c6]@4 e5@4 ~@4 f5@3 ~ [bb4,f5,bb5,d6]@23 ~@3, ~@2 f5@8 ~@4 c5@8 [a5,c6]@7 ~ d5@8 ~@8 e5@8 [a5,c6]@8 d5@8 [bb5,c6]@7 ~ c5@8 ~@8 d5@8 ~@8 e5@9 ~@7 [bb3,d5]@9 ~@25]/5", // Bbsus2 Am Bbsus2 Am Bb Am Bbsus2 Bb
O: "[~@13 c5@2 ~@6 d5@2 ~@8 d5@13 ~@4, ~@7 c5@6 ~@2 d5@6 ~@4 f5@19 ~@4, ~@9 f5@6 ~@2 f5@6 e5@6 e5@15 ~@4, ~@11 [a5,c6]@4 ~@4 [bb5,c6]@4 ~@4 [a5,c6]@17 ~@4]/3", // Am Bbsus2 Am
})).s("gm_pad_bowed").gain(0.4)
// chords · tubular bells · "#Warm Bell,etc."
const tubular_bells = note("<~@30 A@4 ~@38 B@2 ~@3>".pickRestart({
A: "[~@65 a5@32 ~@31, ~@30 g3@5 bb5@28 a4@34 ~@31, ~@31 d4@3 g5@28 d4@35 ~@31, ~ g4 ~@2, ~@33 d5@31 [d5,f5]@33 ~@31]/4", // Dm
B: "[~@31 c5@7 ~@26]/2",
})).s("gm_tubular_bells").gain(0.11)
// chords · trumpet · "SFX"
const trumpet = note("<~@33 A@8 ~@36>".pickRestart({
A: "[~@73 gb5@28 ~@155, ~@2 b5@229 ~@25]/8",
})).s("gm_trumpet").gain(0.26)
// drums · hihat
const hihat = s("hh").struct("<[~@23 x ~@7 x] [~@7 x ~@7 x ~@16] ~@75>").gain(0.48)
// drums · ride
const ride = s("rd").struct("<~@58 [~@7 x ~@8] ~@16 [~ x ~@30] ~>").gain(0.8)
stack(
pad_new_age, orchestral_harp, piano, piano_soft, string_ensemble_2, synth_strings_1, pad_warm, pad_bowed,
tubular_bells, trumpet, hihat, ride
)
More by Broadway
AmericaB♭ major · 150 bpmCabaretA♭ major · 155 bpmEdelweissB♭ major · 108 bpmEternal JourneyC major · 89.1 bpmHello, Dolly!C major · 160 bpmJoseph and the Amazing Technicolor Dreamcoat: Close Every DoorA♭ major · 104 bpmLes Miz" Medley: Castle on a Cloud Little PeopleA minor · 65 bpmMariaG minor · 92 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.