0:00/0:00
// Hungarian Dance Nr 1 In G Minor — Johannes Brahms
// 140 bpm, 2/4, key G minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Full arrangement: all 127 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/2)
// 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 · string ensemble 1 · "STRINGS"
const string_ensemble_1 = note(`<
~@8 A B C D E F G H I@3 J K L ~@2 M N@2 O P Q R S T U@3 V W@3 X Y Z@6 AA AB@2 AC@3 AD AE AF@2 AG AH AI@3 AJ AK AL AM@2
AN AO AP@4 AQ AR AS AT@2 AU@2 AV AW AX AY@2 AZ@2 BA BB BC AY@2 BD@2 BA BE ~@7 BF BG@4 BH BI BJ BK BL@2 BM@2 BN BO BP
BQ@2 BR BS BT BU BV
>`.pickRestart({
A: "d4@11 ~ g4@2 bb4@2", B: "d5@3 g5", C: "gb5@6 g5 a5", D: "g5@11 ~@5", E: "~@2 bb4 ~@3 d5 ~", F: "~@2 c5 ~@3 d5 ~",
G: "~@2 gb4 ~@3 d4 ~", H: "~@4 d4@4 bb4@3 ~@5", I: "[~ d4@12 ~ g4@4 bb4@11 ~ g4@4 gb4@11 ~ g4@2]/3", J: "a4 g4@7",
K: "~ c5@6 d5", L: "eb5 bb4@6 ~", M: "~@4 g3 bb3 d4 g4", N: "[bb4 d5@6 g5@2 gb5@6 g5]/2", O: "a5 g5@6 ~",
P: "~@3 bb4 ~@3 d5", Q: "~@3 c5 ~@3 d5", R: "~@3 gb4 ~@3 d4", S: "~@6 d4@4 bb4@3 ~@3", T: "~@3 f5@5 ~@3 f5@5",
U: "[~@3 g5@11 ~ f5@4 ~@4 eb5@5 ~@3 eb5@11 ~@6]/3", V: "~@3 eb5@5 ~@3 eb5@5",
W: "[~@3 f5@11 ~ eb5@3 ~@5 d5@5 ~@3 d5@12 ~@5]/3", X: "~@3 c5@12 ~", Y: "~ c5@3",
Z: "[~@4 eb5@3 ~@5 d5@15 ~@2 c5@15 ~ bb4@15 ~@2 a4@4 bb4@4 c5@4 bb4@4 a4@4 c5@4 bb4@7 ~@3]/6", AA: "~@7 d5@3 ~@6",
AB: "[~@5 d4@2 e4@2 ~@6 gb4@2 ~@6 g4@3 ~ bb4@5]/2", AC: "[~@3 bb4@2 ~@2 c5@8 bb4@3 ~@5 f5@5 ~@3 f5@5 ~@3 g5@9]/3",
AD: "~@3 f5@4 ~@4 eb5@5", AE: "~@3 eb5@11 ~@2", AF: "[~@7 eb5@5 ~@3 eb5@5 ~@3 f5@9]/2", AG: "~@3 eb5@3 ~@5 d5@5",
AH: "~@3 d5@12 ~", AI: "[~@7 c5@12 ~@4 c5@12 ~@5 eb5@3 ~@5]/3", AJ: "d5@15 ~", AK: "~ c5@15", AL: "~ bb4@15",
AM: "[~ a4@4 bb4@5 c5@4 bb4@4 a4@4 c5@4 bb4@6]/2", AN: "~@11 d5@3 ~@2", AO: "~@9 d4@2 e4@2 ~@3",
AP: "[~@3 gb4@2 ~@6 g4@3 ~ bb4@7 ~ bb4@2 ~@2 c5@8 bb4@3 ~@5 g4@4 b4@2 ~ b4@2 ~@2 b4@2 ~ b4@2 ~@2 a4@2 ~]/4",
AQ: "g4@2 ~@2 a4@2 ~ b4@3 ~ b4@2 ~ b4@2", AR: "~@2 b4@2 ~ g4@3 ~ b4@2 ~ b4@2 ~@2",
AS: "b4@2 ~ b4@2 ~@2 a4@2 ~ g4@2 ~@2 gb4@2",
AT: "[~ d4@3 ~ d4@2 ~ d4@3 ~ d4@2 ~ g4@4 b4@2 ~ b4@2 ~@2 b4@2 ~ b4@2 ~]/2",
AU: "[~ a4@2 ~ g4@2 ~@2 a4@2 ~ b4@3 ~ b4@2 ~ b4@3 ~ b4@2 ~ g4@3 ~ b4@2 ~]/2",
AV: "b4@2 ~@2 b4@2 ~ b4@2 ~@2 a4@2 ~ g4@2", AW: "~@2 gb4@2 ~ d4@3 ~ d4@2 ~ d4@3 ~",
AX: "d4@2 ~ g4@3 ~ g4@2 ~ g4@3 ~ g4@2",
AY: "[~ g4@3 ~ g4@2 ~ gb4@3 ~ gb4@2 ~ g5@2 ~@2 g5@2 ~ a5@2 ~@2 a5@2 ~ b5@3]/2",
AZ: "[~ g5@2 ~ b5@3 ~@4 g4@3 ~ g4@2 ~ g4@3 ~ g4@2 ~ a4@3 ~ a4@2 ~]/2", BA: "b4@3 ~ b4@2 ~ b5@2 ~@2 a5@2 ~ g5@2",
BB: "~@2 gb5@2 ~ d5@3 ~ b4@2 ~ b4@3 ~", BC: "~@3 g4@3 ~ g4@2 ~ g4@3 ~ g4@2",
BD: "[~ g5@2 ~ b5@2 ~@5 g4@3 ~ g4@2 ~ g4@3 ~ g4@2 ~ c5@3 ~ c5@2 ~]/2", BE: "~@2 gb5@2 ~ d5@3 ~ b4@2 ~ b4@4",
BF: "~@5 bb3 d4 g4, ~@9 g3@2 ~@5",
BG: "[~ d5@11 g5@3 gb5@11 g5@2 ~ g5@11 ~@7 bb4@2 ~@5 d5@2 ~@5 c5@2 ~, bb4 ~@13 a5 ~@17]/4",
BH: "~@4 d5@2 ~@5 gb4@2 ~@3", BI: "~@2 d4@2 ~@5 d4@3 bb4@3 ~", BJ: "~@3 f5@4 ~@3 f5@4 ~@2", BK: "~ g5@10 ~ f5@3 ~",
BL: "[~@3 eb5@5 ~@2 eb5@10 ~@7 eb5@4 ~]/2", BM: "[~@2 eb5@4 ~@3 f5@10 ~ eb5@3 ~@4 d5@4 ~]/2", BN: "~ d5@5 ~@2",
BO: "~@3 c5@5 ~@2 c5@5 ~", BP: "~ eb5 ~@3 d5@7 c5@4",
BQ: "[~@3 bb4@7 a4@2 ~ c5@2 bb4@2 a4@2 ~ bb4@3 ~@4 d5@3 ~@2, ~@12 bb4@2 ~@5 c5@2 ~@11]/2",
BR: "~@9 e4@2 ~@5, ~@4 d4 ~@3", BS: "gb4@2 ~@5 g4@2 ~@2 bb4@5", BT: "~@2 bb4@2 ~ c5@7 bb4@3 ~",
BU: "~@3 eb5@3 ~@4 d5@3 ~@3", BV: "~ d5@3 ~@12",
})).s("gm_string_ensemble_1").gain(0.47).pan(0.4)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_2 = note(`<
A@2 B A B A C A@3 D A E F G H I@2 J I J I K I@3 L I M N O P Q R@3 S T@3 U V@2 W X Y@2 Z@2 AA@2 AB@3 AC AD@4 AE@4 AF@2
AG@2 AH AI AJ AK@2 AL@2 AM AN AO AP AQ AR@2 AS AT AU AV@2 AW@2 AX AY AZ AV@2 BA@2 BB BC BD BE BF BG@2 BH BI BJ BK BL
BM BN BO BP BQ BR BS@2 BT@2 BU BV BW BX BY BZ CA CB CC CD
>`.pickRestart({
A: "~@2 bb3 ~@3 bb3 ~", B: "~@2 c4@3 ~ c4 ~", C: "~@2 c4 ~@3 c4 ~", D: "~@2 c4@2 ~@2 c4 ~", E: "g3 ~ bb3 ~ f3 ~ a3 ~",
F: "eb3 ~ g3 ~ d3 ~ bb3 ~", G: "d3 ~ c4 ~@3 c4 ~", H: "~@4 bb3@3 ~ g3@4 ~@4", I: "~@3 bb3 ~@3 bb3",
J: "~@3 c4@3 ~ c4", K: "~@3 c4 ~@3 c4", L: "~@3 c4@2 ~@2 c4", M: "~ g3 ~ bb3 ~ f3 ~ a3", N: "~ eb3 ~ g3 ~ d3 ~ bb3",
O: "~@3 gb3 ~@3 gb3", P: "~@2 bb3@3 ~ d4@3 ~ bb3@2 ~@4", Q: "~@3 d5@6 ~@2 d5@5",
R: "[~@3 eb5@11 ~ d5@3 ~@5 c5@7 ~ b4@2 c5@2 d5@2 c5@2 b4@2 d5@2 c5@2 ~@3]/3", S: "~@3 c5@6 ~@2 c5@5",
T: "[~@3 d5@12 c5@4 ~@4 bb4@7 ~ a4@2 bb4@2 c5@2 bb4@2 a4@2 c5@2 bb4@4 ~]/3", U: "~@11 d4@3 ~@2", V: "~@12 d4@3 ~",
W: "~@13 d4@3", X: "~@13 eb4@3", Y: "~@7 eb4", Z: "[~@15 d4@3 ~@5 a3@3 ~@6]/2",
AA: "[~@5 d3@2 e3@3 ~@5 gb3@3 ~@5 g3@3 ~ d4@5]/2", AB: "[~@3 d4@3 ~ eb4@7 ~ d4@3 ~@5 d5@6 ~@2 d5@6 ~@2 eb5@9]/3",
AC: "~@3 d5@3 ~@5 c5@5", AD: "[~@3 b4@2 c5@2 d5@2 c5@2 b4@2 d5@2 c5@2 ~@6 c5@6 ~@2 c5@6 ~@2 d5@12 c5@4 ~@4 bb4@5]/4",
AE: "[~@3 a4@2 bb4@2 c5@2 bb4@2 a4@2 c5@2 bb4@4 ~@12 d4@3 ~@13 d4@3 ~@14]/4", AF: "d4@3 ~@13", AG: "~ eb4@3 ~@12",
AH: "~@2 eb4@3 ~@11", AI: "~@2 d4@3 ~@6 a3@3 ~@2", AJ: "~@9 d3@2 e3@3 ~@2",
AK: "[~@3 gb3@3 ~@5 g3@3 ~ d4@6 ~@2 d4@3 ~ eb4@5]/2", AL: "[~@3 d4@3 ~@9 d4@2 ~ d4@2 ~@2 d4@2 ~ d4@2 ~@2 c4@2 ~]/2",
AM: "b3@2 ~@2 c4@2 ~ d4@3 ~ d4@2 ~ d4@2", AN: "~@2 d4@2 ~@5 d4@2 ~ d4@2 ~@2",
AO: "d4@2 ~ d4@2 ~@2 c4@2 ~ b3@2 ~@2 a3@2", AP: "~ b3@3 ~ b3@2 ~ b3@3 ~ b3@2 ~@2",
AQ: "~@3 d4@2 ~ d4@2 ~@2 d4@2 ~ d4@2 ~", AR: "[~ c4@2 ~ b3@2 ~@2 c4@2 ~ d4@3 ~ d4@2 ~ d4@3 ~ d4@2 ~@5 d4@2 ~]/2",
AS: "d4@2 ~@2 d4@2 ~ d4@2 ~@2 c4@2 ~ b3@2", AT: "~@2 a3@2 ~ b3@3 ~ b3@2 ~ b3@3 ~",
AU: "b3@2 ~ d4@3 ~ d4@2 ~ e4@3 ~ e4@2", AV: "[~ d4@3 ~ d4@2 ~ d4@3 ~ d4@2 ~ b4@2 ~@2 b4@2 ~ c5@2 ~@2 c5@2 ~ d5@3]/2",
AW: "[~ b4@2 ~ d5@3 ~@4 d4@3 ~ d4@2 ~ e4@3 ~ e4@2 ~ d4@3 ~ d4@2 ~]/2", AX: "d4@3 ~ d4@2 ~ d5@2 ~@2 c5@2 ~ b4@2",
AY: "~@2 a4@2 ~ b4@4 d4@2 ~ d4@2 ~@2", AZ: "~@3 d4@3 ~ d4@2 ~ e4@3 ~ e4@2",
BA: "[~ b4@2 ~ b4@2 ~@5 d4@3 ~ d4@2 ~ e4@3 ~ e4@2 ~ gb4@3 ~ gb4@2 ~]/2", BB: "g4@3 ~ g4@2 ~ d5@2 ~@2 c5@2 ~ b4@2",
BC: "~@2 a4@2 ~ b4@3 ~ d4@2 ~ d4@2 ~@2", BD: "~@7 bb3 ~@6 bb3@2", BE: "~@5 bb3@2 ~@5 bb3@2 ~@2",
BF: "~@3 c4@5 ~@2 c4@2 ~@4", BG: "[~ bb3 ~@6 bb3@2 ~@5 c4@5 ~@2 c4 ~@6 bb3 ~@2]/2", BH: "~@4 bb3 ~@6 c4@2 ~@3",
BI: "~@2 c4@2 ~@5 bb3@2 ~@5", BJ: "bb3@2 ~@5 bb3 ~@6 bb3@2", BK: "~@5 bb3 ~@6 bb3 ~@3", BL: "~@3 c4@5 ~@2 c4 ~@5",
BM: "~ bb3@2 ~@5 bb3 ~@2 g3 ~@3 bb3", BN: "~@2 f3@2 ~@2 a3 ~@2 eb3@2 ~@2 g3@2 ~", BO: "d3 ~@3 bb3@2 ~@5 gb3@2 ~@3",
BP: "~@2 gb3@2 ~ bb3@3 ~ d4@3 bb3@2 ~@2", BQ: "~@3 d5@5 ~@2 d5@5 ~", BR: "~ eb5@9 ~@2 d5@3 ~",
BS: "[~@3 c5@6 ~ b4@2 ~ d5@2 c5@2 b4@2 ~ c5@2 ~@5 c5@5, ~@12 c5@2 ~@5 d5@2 ~@11]/2",
BT: "[~@2 c5@5 ~@2 d5@10 ~ c5@3 ~@4 bb4@5]/2", BU: "~@2 a4@2 ~ c5@2 bb4@2 a4@2 ~ bb4@3 ~, ~@4 bb4@2 ~@5 c5@2 ~@3",
BV: "~@7 d4 ~@6 d4 ~", BW: "~@5 d4 ~@6 d4 ~@3", BX: "~@3 eb4 ~@6 eb4 ~@5", BY: "~ eb4 ~@6 d4 ~@2 a3@3 ~@2",
BZ: "~@9 e3@3 ~@4, ~@4 d3 ~@3", CA: "gb3@3 ~@4 g3@3 ~ d4@5", CB: "~@2 d4@3 eb4@7 d4@3 ~", CC: "~@3 c4@3 ~@4 a3@3 ~@3",
CD: "~ bb3@3 ~@12",
})).s("gm_string_ensemble_1").gain(0.47).pan(0.6)
// other · string ensemble 1 · "STRINGS"
const string_ensemble_1_3 = note(`<
A@2 B A B A C A@3 B A ~@2 D E F@2 G F G F H F@3 I J ~@2 K L M N@3 O P@3 Q R S T U V W X Y Z@2 AA@4 AB AC@3 AD AE AF AG
AH AI AJ AK AL AM AN AO@2 AP@2 AQ@2 AR AS@2 AT@2 AQ@2 AU AV@2 AW@2 AX AY AZ AV@2 BA@2 AX BB BC BD BE BF@2 BG BH BI
BJ@2 BK ~ BL BM BN BO BP@2 BQ@2 BR BS BT@2 BU BV BW BX BY BZ
>`.pickRestart({
A: "~@2 g3 ~ d3 ~ g3 ~", B: "~@2 g3 ~ c3 ~ g3 ~", C: "~@2 gb3 ~ d3 ~ gb3 ~", D: "~@6 gb3 ~", E: "g3 ~ g3 ~ g2 ~@3",
F: "~@3 g3 ~ d3 ~ g3", G: "~@3 g3 ~ c3 ~ g3", H: "~@3 gb3 ~ d3 ~ gb3", I: "~ g3 ~ c4 ~ c3 ~ c4",
J: "~ g3 ~ bb3 ~ d3 ~ bb3", K: "~ d3 ~ d3 ~@3 d3", L: "~ g2 ~@3 g2 ~@2", M: "~@3 f4@5 ~@3 f4@5",
N: "[~@3 g4@12 f4@4 ~@4 eb4@6 ~@2 eb4@15 ~@2]/3", O: "~@3 eb4@5 ~@3 eb4@5",
P: "[~@3 f4@12 eb4@4 ~@4 d4@5 ~@3 d4@13 ~@4]/3", Q: "~@3 gb3@4 ~@9", R: "~@3 d3@5 ~@8", S: "~ gb3 ~@2",
T: "~@4 d3@5 ~@7", U: "~@5 eb3@4 ~@7", V: "~@5 bb2@4 ~@7", W: "~@3 eb3@2 ~@3", X: "~@3 bb2@2 ~@3", Y: "~@7 gb2@3 ~@6",
Z: "[~@5 d3@2 e3@2 ~@6 gb3@3 ~@5 g3@2 ~@2 g2@5]/2",
AA: "[~@3 g2@2 ~@2 g2@7 ~ g2@2 ~@6 f4@5 ~@3 f4@5 ~@3 g4@12 f4@4 ~@4 eb4@5]/4", AB: "~@3 eb4@13",
AC: "[~@7 eb4@5 ~@3 eb4@5 ~@3 f4@12 eb4@4 ~@4 d4@5]/3", AD: "~@3 d4@13", AE: "~@7 gb3@4 ~@5", AF: "~@7 d3@5 ~@4",
AG: "~@2 gb3 ~", AH: "~@8 d3@5 ~@3", AI: "~@9 eb3@4 ~@3", AJ: "~@9 bb2@4 ~@3", AK: "~@5 eb3@2 ~", AL: "~@5 bb2@2 ~",
AM: "~@11 gb2@3 ~@2", AN: "~@9 d3@2 e3@2 ~@3", AO: "[~@3 gb3@3 ~@5 g3@2 ~@2 g2@5 ~@3 g2@2 ~@2 g2@5]/2",
AP: "[~@3 g2@2 ~@6 g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@4 d3@2 ~]/2",
AQ: "[g2@4 d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@4 d3@2 ~ g2@4]/2", AR: "d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2",
AS: "[~ g2@4 d3@2 ~ g2@4 d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@3]/2",
AT: "[~ d3@2 ~ g2@4 d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@4 d3@2 ~]/2", AU: "d3@2 ~ g2@3 ~ d3@2 ~ g2@4 e3@2",
AV: "[~ g2@4 d3@2 ~ g2@4 d3@2 ~ g2@2 ~@2 g3@2 ~ e3@2 ~@2 c3@2 ~ g2@3]/2",
AW: "[~ g3@2 ~ g3@3 ~@4 g2@4 d3@2 ~ g2@4 e3@2 ~ g2@3 ~ gb3@2 ~]/2", AX: "g2@4 g3@2 ~ g2@2 ~@2 c3@2 ~ d3@2",
AY: "~@2 d3@2 ~ g2@6 ~ g3@2 ~@2", AZ: "~@3 g2@3 ~ d3@2 ~ g2@4 e3@2",
BA: "[~ g3@2 ~ g3@2 ~@2 g3@2 ~ g2@3 ~ d3@2 ~ g2@3 ~ e3@2 ~ g2@4 gb3@2 ~]/2", BB: "~@2 d3@2 ~ g2@4 ~@3 g2@2 ~@2",
BC: "~@7 g3@2 ~ d3@2 ~@2 g3@2", BD: "~@5 g3@2 ~ d3@2 ~@2 g3@2 ~@2", BE: "~@3 g3@2 ~ c3@2 ~@2 g3@2 ~@4",
BF: "[~ g3@2 ~ d3@2 ~@2 g3@2 ~@5 g3@2 ~ c3@2 ~@2 g3@2 ~@5 g3@2 ~]/2", BG: "d3@2 ~@2 g3@2 ~@5 gb3@2 ~ d3@2",
BH: "~@2 gb3@2 ~@5 g3@2 ~ d3@2 ~@2", BI: "g3@2 ~@5 g3@2 ~ d3@2 ~@2 g3@2",
BJ: "[~@5 g3@2 ~ d3@2 ~@2 g3@2 ~ g3@2 ~@2 c4@2 ~ c3@2 ~@2 c4@2 ~ g3@2 ~]/2", BK: "~ bb3@2 ~ d3@2 ~@2 bb3@2 ~@6",
BL: "~@7 d3@2 ~@2 d3@2 ~@3", BM: "~@2 d3@2 ~ g2@2 ~@5 g2@2 ~@2", BN: "~@3 f4@5 ~@2 f4@5 ~", BO: "~ g4@11 f4@3 ~",
BP: "[~@3 eb4@5 ~@2 eb4@13 ~@4 eb4@5]/2", BQ: "[~@2 eb4@5 ~@2 f4@11 eb4@3 ~@4 d4@5]/2", BR: "~@2 d4@11 ~@3",
BS: "~@3 gb3@2 ~@5 d3@2 ~@4", BT: "[~ gb3@2 ~@5 d3@2 ~@5 eb3@2 ~@5 bb2@2 ~@5 eb3@2 ~]/2", BU: "~@2 bb2 ~@5",
BV: "~@9 e3@2 ~@5, ~@4 d3 ~@3", BW: "gb3@2 ~@5 g3@2 ~@7", BX: "~@5 g2@7 g2@2 ~@2",
BY: "~@3 [a2,eb3]@3 ~@4 [a2,d3]@3 ~@3", BZ: "~ [d3,bb3]@3 ~@12",
})).s("gm_string_ensemble_1").gain(0.47).pan(0.7)
// bass · string ensemble 1 · "STRINGS"
const bass = note(`<
A@2 B A C D E F A F G F ~@2 H I J K L K L K M N@2 O P N ~@2 Q R S@2 T U V W X@2 Y Z AA AB AC AD AE AF AG AH@2 AI@8
AJ@2 AK AL AM AN AO AP AQ AR AS AT@2 AU@2 AV AW AX AY@2 AZ@2 AV BA BB BC@2 BD@2 BE BF BG BH@2 BI@2 BE BF BJ BK@2 BL BM
BN BO BJ BK@2 BP ~ BQ BR BS BT@2 BU BV BW BX BY BZ@2 CA CB CC CD CE CF
>`.pickRestart({
A: "g2 ~@3 d2 ~@3", B: "g2 ~@3 c2 ~@3", C: "g2@2 ~@6 c2@3 ~@5", D: "g2@3 ~@5 d2@3 ~@5", E: "gb2@3 ~@5 d2@2 ~@6",
F: "g2@2 ~@6 d2@3 ~@5", G: "g2@3 ~@5 c2@3 ~@5", H: "d2 ~@5 d3 ~", I: "g2@2 ~@2 g2@2 ~@2 g1@3 ~@5",
J: "~ g2@2 ~@7 d2@2 ~@4", K: "~ g2 ~@3 d2 ~@2", L: "~ g2 ~@3 c2 ~@2", M: "~ gb2 ~@3 d2 ~@2",
N: "~@2 g2@2 ~@6 d2@3 ~@3", O: "~@2 g2@3 ~@5 d2@2 ~@4", P: "~@2 g2@2 ~@6 c2@3 ~@3", Q: "~@2 d2@3 ~@9 d2@2",
R: "~@2 g2@2 ~@6 g1@3 ~@3", S: "~@3 b1@2 ~@6 g1@3 ~@2", T: "~@3 c2@3 ~@5 g1@3 ~@2", U: "~@3 c2@2 ~@6 bb1@3 ~@2",
V: "~@3 a1@2 ~@6 f1@2 ~@3", W: "~@3 a1@3 ~@5 f1@3 ~@2", X: "~@3 bb1@2 ~@6 f1@2 ~@3", Y: "~@3 gb2@5 ~@8",
Z: "~@3 d2@5 ~@8", AA: "~@4 gb2@5 ~@7", AB: "~@2 d2@3 ~@3", AC: "~@5 eb2@5 ~@6", AD: "~@5 bb1@5 ~@6",
AE: "~@6 eb2@5 ~@5", AF: "~@3 bb1@2 ~@3", AG: "~@7 gb2@3 ~@6", AH: "[~@5 d2@2 e2@2 ~@6 gb2@2 ~@6 g2@2 ~@2 g2@4 ~]/2",
AI: "[~@3 g2@2 ~@2 g1@6 ~@2 g1@3 ~@5 b1@3 ~@5 g1@3 ~@5 b1@2 ~@6 g1@3 ~@5 c2@3 ~@5 g1@3 ~@5 c2@2 ~@6 bb1@3 ~@5 a1@2 ~@6 f1@2 ~@6 a1@3 ~@5 f1@3 ~@5 bb1@2 ~@6 f1]/8",
AJ: "[~@7 bb1@2 ~@6 f1@2 ~@6 gb2@4 ~@5]/2", AK: "~@7 d2@5 ~@4", AL: "~@8 gb2@5 ~@3", AM: "~@4 d2@3 ~",
AN: "~@9 eb2@5 ~@2", AO: "~@9 bb1@5 ~@2", AP: "~@10 eb2@5 ~", AQ: "~@5 bb1@2 ~", AR: "~@11 gb2@3 ~@2",
AS: "~@9 d2@2 e2@2 ~@3", AT: "[~@3 gb2@2 ~@6 g2@2 ~@2 g2@4 ~@4 g2@2 ~@2 g1@5]/2",
AU: "[~@3 g1@3 ~@5 g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~]/2", AV: "g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@2",
AW: "~@2 d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~", AX: "d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2",
AY: "[~ g1@4 d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3]/2",
AZ: "[~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~]/2", BA: "~@2 d2@2 ~ g1@4 d2@2 ~ g1@3 ~",
BB: "d2@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2",
BC: "[~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g2@2 ~ e2@2 ~@2 c2@2 ~ g1@3]/2",
BD: "[~ g2@2 ~ g2@2 ~@5 g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~]/2",
BE: "g1@2 ~@2 g1@2 ~ g1@2 ~@2 c2@2 ~ d2@2", BF: "~@2 d2@2 ~ g1@7 g2@2 ~@2", BG: "~@3 g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2",
BH: "[~ g1@3 ~ g1@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g2@2 ~ e2@2 ~@2 c2@2 ~ g1@3]/2",
BI: "[~ g2@2 ~ g2@2 ~@2 g2@2 ~ g1@3 ~ g1@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~]/2", BJ: "~@3 g2@2 ~@5 d2@2 ~@4",
BK: "[~ g2@2 ~@5 d2@2 ~@5 g2@2 ~@5 c2@2 ~@5 g2@2 ~]/2", BL: "~@4 d2@2 ~@5 g2@2 ~@3", BM: "~@2 c2@3 ~@4 g2@2 ~@5",
BN: "d2@3 ~@4 gb2@2 ~@5 d2@2", BO: "~@5 g2@2 ~@5 d2@2 ~@2", BP: "~@2 d2 ~@5", BQ: "~@7 d2@2 ~@7",
BR: "~@2 d2@2 ~ g2@2 ~@5 g1@2 ~@2", BS: "~@3 b1@2 ~@5 g1@3 ~@3",
BT: "[~ b1@2 ~@5 g1@2 ~@5 c2@2 ~@5 g1@3 ~@4 c2@2 ~]/2", BU: "~@4 bb1@3 ~@4 a1@2 ~@3", BV: "~@2 f1@2 ~@5 a1@2 ~@5",
BW: "f1@2 ~@5 bb1@2 ~@5 f1@2", BX: "~@5 bb1@2 ~@5 f1@2 ~@2", BY: "~@3 gb2@2 ~@5 d2@2 ~@4",
BZ: "[~ gb2@2 ~@5 d2@3 ~@4 eb2@2 ~@5 bb1@2 ~@5 eb2@2 ~]/2", CA: "~@4 bb1@2 ~@5 gb2@3 ~@2",
CB: "~@9 e2@2 ~@5, ~@4 d2 ~@3", CC: "gb2@2 ~@5 g2@2 ~@2 g2@4 ~", CD: "~@2 g2@2 ~ g1@5 ~@2 g1@3 ~",
CE: "~@3 c2@3 ~@4 d2@3 ~@3", CF: "~ g2@3 ~@12",
})).s("gm_string_ensemble_1").gain(0.55).pan(0.7)
// other · flute
const flute = note(`<
~@8 A B C D E F G H I@3 J K L M N O P@2 Q R S T U V W@3 X Y@3 ~@8 Z AA@5 AB AC@4 AD@2 ~@7 AE AF AG@2 AH AI AJ AK AL
AM@2 AN AO AP AQ AR AS AT AU ~ AV AW AX AY AZ BA BB BC AW ~@7 BD BE@3 BF BG@2 BH BI BJ@2 BK@2 BL ~@3 AE BM BN BO BP BQ
>`.pickRestart({
A: "d5@11 ~ g5@2 bb5@2", B: "d6@3 bb5", C: "a5@6 bb5 c6", D: "bb5@11 ~@5", E: "~@2 g6 ~@3 f6 ~",
F: "~@2 eb6 ~@3 d6 ~", G: "c6 bb5!2 a5 a5@3 d6", H: "g5@7 ~ g6@3 ~@5",
I: "[~@2 d5@12 g5@4 bb5@11 ~ g5@4 gb5@11 ~ g5@2]/3", J: "a5 g5@7", K: "~@2 eb5@11 ~ f5@2", L: "g5 d5@6 ~",
M: "~ c6 bb5!2 a5 a5@3", N: "d6 g5@5 ~@2", O: "~ d5@3 g4 bb4 d5 g5", P: "[bb5 d6@6 bb5@2 a5@6 bb5]/2",
Q: "c6 bb5@6 ~", R: "~@3 g6 ~@3 f6", S: "~@3 eb6 ~@3 d6", T: "~@2 c6@2 bb5@2 bb5@2 a5@2 a5@5 ~",
U: "d6@2 g5@7 ~ g6@3 ~@3", V: "~@3 d6@5 ~@3 d6@5",
W: "[~@3 eb6@11 ~ d6@3 ~@5 c6@7 ~ b5@2 c6@2 d6@2 c6@2 b5@2 d6@2 c6@3 ~@2]/3", X: "~@3 c6@5 ~@3 c6@5",
Y: "[~@3 d6@12 c6@4 ~@4 bb5@7 ~ a5@2 bb5@2 c6@2 bb5@2 a5@2 c6@2 bb5@4 ~]/3", Z: "~@7 d6@3 ~@6",
AA: "[~@5 d5@2 e5@2 ~@6 gb5@2 ~@6 g5@2 ~@2 g5@8 gb5@2 g5@2 a5@2 g5@2 gb5 g5 ~ a5 g5@3 ~@5 d6@5 ~@3 d6@5 ~@3 eb6@9, ~@23 a5 ~@56]/5",
AB: "~@3 d6@3 ~@5 c6@5", AC: "[~@3 b5@2 c6@2 d6@2 c6@2 b5@2 d6@2 c6@3 ~@5 c6@5 ~@3 c6@5 ~@3 d6@12 c6@4 ~@4 bb5@5]/4",
AD: "[~@3 a5@2 bb5@2 c6@2 bb5@2 a5@2 c6@2 bb5@4 ~@13]/2", AE: "~@11 d6@3 ~@2", AF: "~@9 d5@2 e5@2 ~@3",
AG: "[~@3 gb5@2 ~@5 a5 g5@2 ~@2 g5@8 gb5@2 g5@2 a5@2 g5@2 gb5]/2", AH: "g5 a5 ~ g5@3 ~@5 g6@4 d6",
AI: "~@2 d6 ~@3 d6 ~@2 d6 ~@3 c6 ~@2", AJ: "b5 ~@3 c6 ~@2 d6@2 ~@2 d6 ~@2 d6@2",
AK: "~@2 d6 ~@2 g6@3 ~ d6 ~@2 d6 ~@3", AL: "d6 ~@2 d6 ~@3 c6@2 ~ b5 ~@3 a5@2",
AM: "[~ g5@3 ~ g5 ~@2 g5@3 ~ g5 ~@2 g6@4 d6 ~@2 d6 ~@3 d6 ~@2 d6 ~@2]/2", AN: "~ c6 ~@2 b5 ~@3 c6 ~@2 d6@2 ~@2 d6",
AO: "~@2 d6@3 ~ d6 ~@2 g6@3 ~ d6 ~@2", AP: "d6 ~@3 d6 ~@2 d6 ~@3 c6@2 ~ b5 ~", AQ: "~@2 a5@2 ~ g5@3 ~ g5 ~@2 g5@3 ~",
AR: "g5 ~@15", AS: "~@15 b5", AT: "~@3 b5 ~@2 c6 ~@3 c6 ~@2 d6@3", AU: "~ g6 ~@2 d6@3 ~@9",
AV: "~@7 d6 ~@3 c6 ~@2 b5 ~", AW: "~@2 a5 ~@2 g5@4 g6 ~@2 g5@2 ~@2", AX: "~@3 b5@3 ~ b5 ~@2 c6@3 ~ c6 ~",
AY: "~ b5@3 ~ b5 ~@2 a5@3 ~ a5 ~@2 b5", AZ: "~@3 b5 ~@2 c6@2 ~@2 c6 ~@2 d6@3", BA: "~ g6 ~@2 d6 ~@6 b5@3 ~ b5",
BB: "~@2 c6@3 ~ c6 ~@2 d6@3 ~ d6 ~@2", BC: "d6@3 ~ d6 ~@2 d6 ~@3 c6 ~@2 b5 ~",
BD: "~@3 d5@5 ~@2 bb4@2 d5@2 g5@2, ~@9 g4@2 ~@5",
BE: "[~ d6@11 bb5@3 a5@11 bb5@2 ~ bb5@11 ~@7 g6, bb5@2 ~@26 c6@3 ~@17]/3", BF: "~@6 f6 ~@6 eb6@2 ~",
BG: "[~@4 d6 ~@2 c6@2 bb5 ~ bb5@2 a5 a5@5 ~@2 g5@7 g6@3 ~, ~@10 d6 ~@5]/2", BH: "~@3 d6@5 ~@2 d6@5 ~",
BI: "~ eb6@10 ~ d6@3 ~", BJ: "[~@3 c6@6 ~ b5@2 ~ d6@2 c6@2 b5@2 ~ c6@3 ~@4 c6@5, ~@12 c6@2 ~@5 d6@2 ~@11]/2",
BK: "[~@2 c6@5 ~@2 d6@11 c6@4 ~@3 bb5@5]/2", BL: "~@2 a5@2 ~ c6@2 bb5@2 a5@2 ~ bb5@3 ~, ~@4 bb5@2 ~@5 c6@2 ~@3",
BM: "~@9 e5@2 ~@5, ~@8 d5@3 ~@5", BN: "gb5@2 ~@5 [g5,a5] ~@3 g5@5",
BO: "~@2 gb5@2 ~ a5@2 g5@2 gb5 g5 a5 g5@3 ~, ~@2 g5 ~@5", BP: "~@3 g6@3 ~@4 d6@3 ~@3", BQ: "~ g5@3 ~@12",
})).s("gm_flute").gain(0.33).pan(0.4)
// other · clarinet
const clarinet = note(`<
A B C D E F G H I J K L M N O P Q@3 R S T U V W X@2 Y Z AA AB AC AD AE@3 AF AG@3 ~@8 AH AI@5 AJ AK AL@2 AM AN ~@8 AO
AP AQ@3 AR AS AT AU AV@2 AW AX AY AZ BA BB BC BD ~ BE BF BG BH BI BJ BK BL BM BN@7 BO BP@3 BQ BR@2 BS BT BU@2 BV@2 BW
~@3 AO BX BY BZ CA CB
>`.pickRestart({
// … 165 more lines
More by Johannes Brahms
16 Waltzes Op.39E♭ major · 96 bpm21 Hungarian Dances (Piano) WoO 1A major · 180 bpm5 Lieder Op.49E♭ major · 80 bpm6 Klavierstücke Op.118A major · 76 bpmAcademic Festival Overture Op.80B♭ major · 97 bpmDanza Ungherese n. 8 in la minore - PrestoG minor · 120 bpmLiebeslieder Waltz, Op. 52, No. 6B♭ major · 120 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.