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, A@4 for four bars: 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@2 Y@6 Z AA@2 AB@3 AC AD AE@2 AF AG AH@3 AI AJ AK AL@2
AM AN AO@4 AP AQ AR AS@2 AT@2 AU AV AW AX@2 AY@2 AZ BA BB AX@2 BC@2 AZ BA ~@7 M BD@4 BE BF T BG BH@2 BI@2 BJ BK BL
BM@2 BN BO BP BQ BR
>`.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: "[~@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", Z: "~@7 d5@3 ~@6",
AA: "[~@5 d4@2 e4@2 ~@6 gb4@2 ~@6 g4@3 ~ bb4@5]/2", AB: "[~@3 bb4@2 ~@2 c5@8 bb4@3 ~@5 f5@5 ~@3 f5@5 ~@3 g5@9]/3",
AC: "~@3 f5@4 ~@4 eb5@5", AD: "~@3 eb5@11 ~@2", AE: "[~@7 eb5@5 ~@3 eb5@5 ~@3 f5@9]/2", AF: "~@3 eb5@3 ~@5 d5@5",
AG: "~@3 d5@12 ~", AH: "[~@7 c5@12 ~@4 c5@12 ~@5 eb5@3 ~@5]/3", AI: "d5@15 ~", AJ: "~ c5@15", AK: "~ bb4@15",
AL: "[~ a4@4 bb4@5 c5@4 bb4@4 a4@4 c5@4 bb4@6]/2", AM: "~@11 d5@3 ~@2", AN: "~@9 d4@2 e4@2 ~@3",
AO: "[~@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",
AP: "g4@2 ~@2 a4@2 ~ b4@3 ~ b4@2 ~ b4@2", AQ: "~@2 b4@2 ~ g4@3 ~ b4@2 ~ b4@2 ~@2",
AR: "b4@2 ~ b4@2 ~@2 a4@2 ~ g4@2 ~@2 gb4@2",
AS: "[~ d4@3 ~ d4@2 ~ d4@3 ~ d4@2 ~ g4@4 b4@2 ~ b4@2 ~@2 b4@2 ~ b4@2 ~]/2",
AT: "[~ a4@2 ~ g4@2 ~@2 a4@2 ~ b4@3 ~ b4@2 ~ b4@3 ~ b4@2 ~ g4@3 ~ b4@2 ~]/2",
AU: "b4@2 ~@2 b4@2 ~ b4@2 ~@2 a4@2 ~ g4@2", AV: "~@2 gb4@2 ~ d4@3 ~ d4@2 ~ d4@3 ~",
AW: "d4@2 ~ g4@3 ~ g4@2 ~ g4@3 ~ g4@2",
AX: "[~ g4@3 ~ g4@2 ~ gb4@3 ~ gb4@2 ~ g5@2 ~@2 g5@2 ~ a5@2 ~@2 a5@2 ~ b5@3]/2",
AY: "[~ g5@2 ~ b5@3 ~@4 g4@3 ~ g4@2 ~ g4@3 ~ g4@2 ~ a4@3 ~ a4@2 ~]/2", AZ: "b4@3 ~ b4@2 ~ b5@2 ~@2 a5@2 ~ g5@2",
BA: "~@2 gb5@2 ~ d5@3 ~ b4@2 ~ b4@3 ~", BB: "~@3 g4@3 ~ g4@2 ~ g4@3 ~ g4@2",
BC: "[~ g5@2 ~ b5@2 ~@5 g4@3 ~ g4@2 ~ g4@3 ~ g4@2 ~ c5@3 ~ c5@2 ~]/2",
BD: "[~ d5@11 g5@3 gb5@11 g5@2 ~ g5@11 ~@7 bb4@2 ~@5 d5@2 ~@5 c5@2 ~, bb4 ~@13 a5 ~@17]/4",
BE: "~@4 d5@2 ~@5 gb4@2 ~@3", BF: "~@2 d4@2 ~@5 d4@3 bb4@3 ~", BG: "~ g5@10 ~ f5@3 ~",
BH: "[~@3 eb5@5 ~@2 eb5@10 ~@7 eb5@4 ~]/2", BI: "[~@2 eb5@4 ~@3 f5@10 ~ eb5@3 ~@4 d5@4 ~]/2", BJ: "~ d5@5 ~@2",
BK: "~@3 c5@5 ~@2 c5@5 ~", BL: "~ eb5 ~@3 d5@7 c5@4",
BM: "[~@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",
BN: "~@9 e4@2 ~@5, ~@4 d4 ~@3", BO: "gb4@2 ~@5 g4@2 ~@2 bb4@5", BP: "~@2 bb4@2 ~ c5@7 bb4@3 ~",
BQ: "~@4 eb5@3 ~@4 d5@4 ~", BR: "~ 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@3 W X@2 Y@2 Z@2 AA@3 AB AC@4 AD@4 AE@2
AF@2 AG AH AI AJ@2 AK@2 AL AM AN AO AP AQ@2 AR AS AT AU@2 AV@2 AW AX AY AU@2 AZ@2 BA AX BB BC BD BE@2 BF BG BH BC BD
BI BJ BK BL Q BM BN@2 BO@2 BP BQ BR BS BT BU BV BW BX BY
>`.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 eb4@3", X: "~@7 eb4", Y: "[~@15 d4@3 ~@5 a3@3 ~@6]/2", Z: "[~@5 d3@2 e3@3 ~@5 gb3@3 ~@5 g3@3 ~ d4@5]/2",
AA: "[~@3 d4@3 ~ eb4@7 ~ d4@3 ~@5 d5@6 ~@2 d5@6 ~@2 eb5@9]/3", AB: "~@3 d5@3 ~@5 c5@5",
AC: "[~@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",
AD: "[~@3 a4@2 bb4@2 c5@2 bb4@2 a4@2 c5@2 bb4@4 ~@12 d4@3 ~@13 d4@3 ~@14]/4", AE: "d4@3 ~@13", AF: "~ eb4@3 ~@12",
AG: "~@2 eb4@3 ~@11", AH: "~@2 d4@3 ~@6 a3@3 ~@2", AI: "~@9 d3@2 e3@3 ~@2",
AJ: "[~@3 gb3@3 ~@5 g3@3 ~ d4@6 ~@2 d4@3 ~ eb4@5]/2", AK: "[~@3 d4@3 ~@9 d4@2 ~ d4@2 ~@2 d4@2 ~ d4@2 ~@2 c4@2 ~]/2",
AL: "b3@2 ~@2 c4@2 ~ d4@3 ~ d4@2 ~ d4@2", AM: "~@2 d4@2 ~@5 d4@2 ~ d4@2 ~@2",
AN: "d4@2 ~ d4@2 ~@2 c4@2 ~ b3@2 ~@2 a3@2", AO: "~ b3@3 ~ b3@2 ~ b3@3 ~ b3@2 ~@2",
AP: "~@3 d4@2 ~ d4@2 ~@2 d4@2 ~ d4@2 ~", AQ: "[~ c4@2 ~ b3@2 ~@2 c4@2 ~ d4@3 ~ d4@2 ~ d4@3 ~ d4@2 ~@5 d4@2 ~]/2",
AR: "d4@2 ~@2 d4@2 ~ d4@2 ~@2 c4@2 ~ b3@2", AS: "~@2 a3@2 ~ b3@3 ~ b3@2 ~ b3@3 ~",
AT: "b3@2 ~ d4@3 ~ d4@2 ~ e4@3 ~ e4@2", AU: "[~ d4@3 ~ d4@2 ~ d4@3 ~ d4@2 ~ b4@2 ~@2 b4@2 ~ c5@2 ~@2 c5@2 ~ d5@3]/2",
AV: "[~ b4@2 ~ d5@3 ~@4 d4@3 ~ d4@2 ~ e4@3 ~ e4@2 ~ d4@3 ~ d4@2 ~]/2", AW: "d4@3 ~ d4@2 ~ d5@2 ~@2 c5@2 ~ b4@2",
AX: "~@2 a4@2 ~ b4@4 d4@2 ~ d4@2 ~@2", AY: "~@3 d4@3 ~ d4@2 ~ e4@3 ~ e4@2",
AZ: "[~ b4@2 ~ b4@2 ~@5 d4@3 ~ d4@2 ~ e4@3 ~ e4@2 ~ gb4@3 ~ gb4@2 ~]/2", BA: "g4@3 ~ g4@2 ~ d5@2 ~@2 c5@2 ~ b4@2",
BB: "~@7 bb3 ~@6 bb3@2", BC: "~@5 bb3@2 ~@5 bb3@2 ~@2", BD: "~@3 c4@5 ~@2 c4@2 ~@4",
BE: "[~ bb3 ~@6 bb3@2 ~@5 c4@5 ~@2 c4 ~@6 bb3 ~@2]/2", BF: "~@4 bb3 ~@6 c4@2 ~@3", BG: "~@2 c4@2 ~@5 bb3@2 ~@5",
BH: "bb3@2 ~@5 bb3 ~@6 bb3@2", BI: "~ bb3@2 ~@5 bb3 ~@2 g3 ~@3 bb3", BJ: "~@2 f3@2 ~@2 a3 ~@2 eb3@2 ~@2 g3@2 ~",
BK: "d3 ~@3 bb3@2 ~@5 gb3@2 ~@3", BL: "~@2 gb3@2 ~ bb3@3 ~ d4@3 bb3@2 ~@2", BM: "~ eb5@9 ~@2 d5@3 ~",
BN: "[~@3 c5@6 ~ b4@2 ~ d5@2 c5@2 b4@2 ~ c5@2 ~@5 c5@5, ~@12 c5@2 ~@5 d5@2 ~@11]/2",
BO: "[~@2 c5@5 ~@2 d5@10 ~ c5@3 ~@4 bb4@5]/2", BP: "~@2 a4@2 ~ c5@2 bb4@2 a4@2 ~ bb4@3 ~, ~@4 bb4@2 ~@5 c5@2 ~@3",
BQ: "~@7 d4 ~@6 d4 ~", BR: "~@5 d4 ~@6 d4 ~@3", BS: "~@3 eb4 ~@6 eb4 ~@5", BT: "~ eb4 ~@6 d4 ~@2 a3@3 ~@2",
BU: "~@9 e3@3 ~@4, ~@4 d3 ~@3", BV: "gb3@3 ~@4 g3@3 ~ d4@5", BW: "~@2 d4@3 eb4@7 d4@3 ~", BX: "~@3 c4@3 ~@4 a3@3 ~@3",
BY: "~ 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 AI AK AL AM AN@2 AO@2 AP@2 AQ AR@2 AS@2 AP@2 AT AU@2 AV@2 AW AX AY AU@2 AZ@2 AW BA BB BC BD BE@2 BF BG BH
BI@2 BJ ~ BK BL M BM BN@2 BO@2 BP BQ BR@2 BS BT BU BV BW BX
>`.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 bb2@2 ~",
AL: "~@11 gb2@3 ~@2", AM: "~@9 d3@2 e3@2 ~@3", AN: "[~@3 gb3@3 ~@5 g3@2 ~@2 g2@5 ~@3 g2@2 ~@2 g2@5]/2",
AO: "[~@3 g2@2 ~@6 g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@4 d3@2 ~]/2",
AP: "[g2@4 d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@4 d3@2 ~ g2@4]/2", AQ: "d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2",
AR: "[~ g2@4 d3@2 ~ g2@4 d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@3]/2",
AS: "[~ d3@2 ~ g2@4 d3@2 ~ g2@3 ~ d3@2 ~ g2@4 d3@2 ~ g2@4 d3@2 ~]/2", AT: "d3@2 ~ g2@3 ~ d3@2 ~ g2@4 e3@2",
AU: "[~ g2@4 d3@2 ~ g2@4 d3@2 ~ g2@2 ~@2 g3@2 ~ e3@2 ~@2 c3@2 ~ g2@3]/2",
AV: "[~ g3@2 ~ g3@3 ~@4 g2@4 d3@2 ~ g2@4 e3@2 ~ g2@3 ~ gb3@2 ~]/2", AW: "g2@4 g3@2 ~ g2@2 ~@2 c3@2 ~ d3@2",
AX: "~@2 d3@2 ~ g2@6 ~ g3@2 ~@2", AY: "~@3 g2@3 ~ d3@2 ~ g2@4 e3@2",
AZ: "[~ g3@2 ~ g3@2 ~@2 g3@2 ~ g2@3 ~ d3@2 ~ g2@4 e3@2 ~ g2@3 ~ gb3@2 ~]/2", BA: "~@2 d3@2 ~ g2@4 ~@3 g2@2 ~@2",
BB: "~@7 g3@2 ~ d3@2 ~@2 g3@2", BC: "~@5 g3@2 ~ d3@2 ~@2 g3@2 ~@2", BD: "~@3 g3@2 ~ c3@2 ~@2 g3@2 ~@4",
BE: "[~ g3@2 ~ d3@2 ~@2 g3@2 ~@5 g3@2 ~ c3@2 ~@2 g3@2 ~@5 g3@2 ~]/2", BF: "d3@2 ~@2 g3@2 ~@5 gb3@2 ~ d3@2",
BG: "~@2 gb3@2 ~@5 g3@2 ~ d3@2 ~@2", BH: "g3@2 ~@5 g3@2 ~ d3@2 ~@2 g3@2",
BI: "[~@5 g3@2 ~ d3@2 ~@2 g3@2 ~ g3@2 ~@2 c4@2 ~ c3@2 ~@2 c4@2 ~ g3@2 ~]/2", BJ: "~ bb3@2 ~ d3@2 ~@2 bb3@2 ~@6",
BK: "~@7 d3@2 ~@2 d3@2 ~@3", BL: "~@2 d3@2 ~ g2@2 ~@5 g2@2 ~@2", BM: "~ g4@11 f4@3 ~",
BN: "[~@3 eb4@5 ~@2 eb4@13 ~@4 eb4@5]/2", BO: "[~@2 eb4@5 ~@2 f4@11 eb4@3 ~@4 d4@5]/2", BP: "~@2 d4@11 ~@3",
BQ: "~@3 gb3@2 ~@5 d3@2 ~@4", BR: "[~ gb3@2 ~@5 d3@2 ~@5 eb3@2 ~@5 bb2@2 ~@5 eb3@2 ~]/2", BS: "~@2 bb2 ~@5",
BT: "~@9 e3@2 ~@5, ~@4 d3 ~@3", BU: "gb3@2 ~@5 g3@2 ~@7", BV: "~@5 g2@7 g2@2 ~@2",
BW: "~@3 [a2,eb3]@3 ~@4 [a2,d3]@3 ~@3", BX: "~ [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 B A C A@3 B D ~@2 E F G@2 H G H G I G@3 H G ~@2 J K L@2 M N O@2 P@2 Q R S T U V W X Y Z@2 AA@8 AB@2 AC AD AE
AF AG AF AH AI AJ AK@2 AL@2 AM AN AO AP@2 AQ@2 AM AN AR AS@2 AT@2 AU AV AW AS@2 AX@2 AU AV AY AZ@2 BA BB BC BD AY AZ@2
BE ~ BF BG L BH@2 BI BJ BK BL BM BN@2 BO BP BQ BR BS BT
>`.pickRestart({
A: "g2 ~@3 d2 ~@3", B: "g2 ~@3 c2 ~@3", C: "gb2@3 ~@5 d2@2 ~@6", D: "g2@2 ~@6 d2@3 ~@5", E: "d2 ~@5 d3 ~",
F: "g2@2 ~@2 g2@2 ~@2 g1@3 ~@5", G: "~ g2 ~@3 d2 ~@2", H: "~ g2 ~@3 c2 ~@2", I: "~ gb2 ~@3 d2 ~@2",
J: "~@2 d2@3 ~@9 d2@2", K: "~@2 g2@2 ~@6 g1@3 ~@3", L: "~@3 b1@2 ~@6 g1@3 ~@2", M: "~@3 c2@3 ~@5 g1@3 ~@2",
N: "~@3 c2@2 ~@6 bb1@3 ~@2", O: "~@3 a1@2 ~@6 f1@2 ~@3", P: "~@3 bb1@2 ~@6 f1@2 ~@3", Q: "~@3 gb2@5 ~@8",
R: "~@3 d2@5 ~@8", S: "~@4 gb2@5 ~@7", T: "~@2 d2@3 ~@3", U: "~@5 eb2@5 ~@6", V: "~@5 bb1@5 ~@6", W: "~@6 eb2@5 ~@5",
X: "~@3 bb1@2 ~@3", Y: "~@7 gb2@3 ~@6", Z: "[~@5 d2@2 e2@2 ~@6 gb2@2 ~@6 g2@2 ~@2 g2@4 ~]/2",
AA: "[~@3 g2@2 ~@2 g1@6 ~@2 g1@3 ~@5 b1@3 ~@5 g1@3 ~@5 b1@3 ~@5 g1@3 ~@5 c2@3 ~@5 g1@3 ~@5 c2@2 ~@6 bb1@3 ~@5 a1@2 ~@6 f1@2 ~@6 a1@2 ~@6 f1@2 ~@6 bb1@2 ~@6 f1]/8",
AB: "[~@7 bb1@2 ~@6 f1@2 ~@6 gb2@4 ~@5]/2", AC: "~@7 d2@5 ~@4", AD: "~@8 gb2@5 ~@3", AE: "~@4 d2@3 ~",
AF: "~@9 eb2@5 ~@2", AG: "~@9 bb1@5 ~@2", AH: "~@5 bb1@2 ~", AI: "~@11 gb2@3 ~@2", AJ: "~@9 d2@2 e2@2 ~@3",
AK: "[~@3 gb2@2 ~@6 g2@2 ~@2 g2@4 ~@4 g2@2 ~@2 g1@5]/2",
AL: "[~@3 g1@3 ~@5 g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~]/2", AM: "g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@2",
AN: "~@2 d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~", AO: "d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2",
AP: "[~ g1@4 d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3]/2",
AQ: "[~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~ g1@3 ~ d2@2 ~]/2",
AR: "d2@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2",
AS: "[~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g2@2 ~ e2@2 ~@2 c2@2 ~ g1@3]/2",
AT: "[~ g2@2 ~ g2@2 ~@5 g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~]/2",
AU: "g1@2 ~@2 g1@2 ~ g1@2 ~@2 c2@2 ~ d2@2", AV: "~@2 d2@2 ~ g1@7 g2@2 ~@2", AW: "~@3 g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2",
AX: "[~ g2@2 ~ g2@2 ~@2 g2@2 ~ g1@3 ~ g1@2 ~ g1@2 ~@2 g1@2 ~ g1@2 ~@2 g1@2 ~]/2", AY: "~@3 g2@2 ~@5 d2@2 ~@4",
AZ: "[~ g2@2 ~@5 d2@2 ~@5 g2@2 ~@5 c2@2 ~@5 g2@2 ~]/2", BA: "~@4 d2@2 ~@5 g2@2 ~@3", BB: "~@2 c2@3 ~@4 g2@2 ~@5",
BC: "d2@3 ~@4 gb2@2 ~@5 d2@2", BD: "~@5 g2@2 ~@5 d2@2 ~@2", BE: "~@2 d2 ~@5", BF: "~@7 d2@2 ~@7",
BG: "~@2 d2@2 ~ g2@2 ~@5 g1@2 ~@2", BH: "[~ b1@2 ~@5 g1@2 ~@5 c2@2 ~@5 g1@3 ~@4 c2@2 ~]/2",
BI: "~@4 bb1@3 ~@4 a1@2 ~@3", BJ: "~@2 f1@2 ~@5 a1@2 ~@5", BK: "f1@2 ~@5 bb1@2 ~@5 f1@2",
BL: "~@5 bb1@2 ~@5 f1@2 ~@2", BM: "~@3 gb2@2 ~@5 d2@2 ~@4",
BN: "[~ gb2@2 ~@5 d2@3 ~@4 eb2@2 ~@5 bb1@2 ~@5 eb2@2 ~]/2", BO: "~@4 bb1@2 ~@5 gb2@3 ~@2",
BP: "~@9 e2@2 ~@5, ~@4 d2 ~@3", BQ: "gb2@2 ~@5 g2@2 ~@2 g2@4 ~", BR: "~@2 g2@2 ~ g1@5 ~@2 g1@3 ~",
BS: "~@3 c2@3 ~@4 d2@3 ~@3", BT: "~ 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 M T U V@3 W X@3 ~@8 Y Z@5 AA AB@4 AC@2 ~@7 AD AE AF@2 AG AH AI AJ AK
AL@2 AM AN AO AP AQ AR AS AT ~ AU AV AW AX AS AY AZ BA AV ~@7 BB BC@3 BD BE@2 U BF BG@2 BH@2 BI ~@3 AD BJ BK BL BM BN
>`.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: "d6@2 g5@7 ~ g6@3 ~@3", U: "~@3 d6@5 ~@3 d6@5",
V: "[~@3 eb6@11 ~ d6@3 ~@5 c6@7 ~ b5@2 c6@2 d6@2 c6@2 b5@2 d6@2 c6@3 ~@2]/3", W: "~@3 c6@5 ~@3 c6@5",
X: "[~@3 d6@12 c6@4 ~@4 bb5@7 ~ a5@2 bb5@2 c6@2 bb5@2 a5@2 c6@2 bb5@4 ~]/3", Y: "~@7 d6@3 ~@6",
Z: "[~@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",
AA: "~@3 d6@3 ~@5 c6@5", AB: "[~@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",
AC: "[~@3 a5@2 bb5@2 c6@2 bb5@2 a5@2 c6@2 bb5@4 ~@13]/2", AD: "~@11 d6@3 ~@2", AE: "~@9 d5@2 e5@2 ~@3",
AF: "[~@3 gb5@2 ~@5 a5 g5@2 ~@2 g5@8 gb5@2 g5@2 a5@2 g5@2 gb5]/2", AG: "g5 a5 ~ g5@3 ~@5 g6@4 d6",
AH: "~@2 d6 ~@3 d6 ~@2 d6 ~@3 c6 ~@2", AI: "b5 ~@3 c6 ~@2 d6@2 ~@2 d6 ~@2 d6@2",
AJ: "~@2 d6 ~@2 g6@3 ~ d6 ~@2 d6 ~@3", AK: "d6 ~@2 d6 ~@3 c6@2 ~ b5 ~@3 a5@2",
AL: "[~ g5@3 ~ g5 ~@2 g5@3 ~ g5 ~@2 g6@4 d6 ~@2 d6 ~@3 d6 ~@2 d6 ~@2]/2", AM: "~ c6 ~@2 b5 ~@3 c6 ~@2 d6@2 ~@2 d6",
AN: "~@2 d6@3 ~ d6 ~@2 g6@3 ~ d6 ~@2", AO: "d6 ~@3 d6 ~@2 d6 ~@3 c6@2 ~ b5 ~", AP: "~@2 a5@2 ~ g5@3 ~ g5 ~@2 g5@3 ~",
AQ: "g5 ~@15", AR: "~@15 b5", AS: "~@3 b5 ~@2 c6 ~@3 c6 ~@2 d6@3", AT: "~ g6 ~@2 d6@3 ~@9",
AU: "~@7 d6 ~@3 c6 ~@2 b5 ~", AV: "~@2 a5 ~@2 g5@4 g6 ~@2 g5@2 ~@2", AW: "~@3 b5@3 ~ b5 ~@2 c6@3 ~ c6 ~",
AX: "~ b5@3 ~ b5 ~@2 a5@3 ~ a5 ~@2 b5", AY: "~ g6 ~@2 d6 ~@6 b5@3 ~ b5", AZ: "~@2 c6@3 ~ c6 ~@2 d6@3 ~ d6 ~@2",
BA: "d6@3 ~ d6 ~@2 d6 ~@3 c6 ~@2 b5 ~", BB: "~@3 d5@5 ~@2 bb4@2 d5@2 g5@2, ~@9 g4@2 ~@5",
BC: "[~ d6@11 bb5@3 a5@11 bb5@2 ~ bb5@11 ~@7 g6, bb5@2 ~@26 c6@3 ~@17]/3", BD: "~@6 f6 ~@6 eb6@2 ~",
BE: "[~@4 d6 ~@2 c6@2 bb5 ~ bb5@2 a5 a5@5 ~@2 g5@7 g6@3 ~, ~@10 d6 ~@5]/2", BF: "~ eb6@10 ~ d6@3 ~",
BG: "[~@3 c6@6 ~ b5@2 ~ d6@2 c6@2 b5@2 ~ c6@3 ~@4 c6@5, ~@12 c6@2 ~@5 d6@2 ~@11]/2",
BH: "[~@2 c6@5 ~@2 d6@11 c6@4 ~@3 bb5@5]/2", BI: "~@2 a5@2 ~ c6@2 bb5@2 a5@2 ~ bb5@3 ~, ~@4 bb5@2 ~@5 c6@2 ~@3",
BJ: "~@9 e5@2 ~@5, ~@8 d5@3 ~@5", BK: "gb5@2 ~@5 [g5,a5] ~@3 g5@5",
BL: "~@2 gb5@2 ~ a5@2 g5@2 gb5 g5 a5 g5@3 ~, ~@2 g5 ~@5", BM: "~@3 g6@3 ~@4 d6@3 ~@3", BN: "~ 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 BC BI BJ BK BL BM@7 BN BO@3 BP BQ@2 AD BR BS@2 BT@2 BU
~@3 AO BV BW BX AM BY
>`.pickRestart({
A: "d4@3 g4", B: "bb4@3 g4", C: "gb4@11 ~ g4@2 a4@2", D: "g4@7 ~", E: "eb4@6 f4 g4", F: "d4@13 ~@3",
G: "c4 bb3!2 a3 a3@3 d4", H: "g3@5 ~@3", I: "d4@11 ~ g4@2 bb4@2", J: "d5@3 g5", K: "gb5@6 g5 a5", L: "g5@11 ~@5",
M: "g4 ~ bb4 ~ f4 ~ a4 ~", N: "eb4 ~ g4 ~ d4 ~ bb4 ~", O: "~@4 gb4@7 ~ d4@3 ~", P: "~@2 g4@2 bb4 ~@3",
Q: "[~@2 d4@12 g4@4 bb4@11 ~ g4@4 gb4@11 ~ g4@2]/3", R: "a4 g4@7", S: "~@2 c5@11 ~ d5@2", T: "eb5 bb4@6 ~",
U: "~ c5 bb4!2 a4 a4@3", V: "d5 g4@5 ~@2", W: "~ d4@3 g3 bb3 d4 g4", X: "[bb4 d5@6 g5@2 gb5@6 g5]/2", Y: "a5 g5@6 ~",
Z: "~@3 eb5 ~@3 d5", AA: "~@3 c5 ~@3 bb4", AB: "~ a4 ~ g4 ~ gb4@2 ~", AC: "~@2 g4@7 ~ bb4@3 ~@3",
AD: "~@3 f5@5 ~@3 f5@5", AE: "[~@3 g5@11 ~ f5@4 ~@4 eb5@5 ~@3 eb5@11 ~@6]/3", AF: "~@3 eb5@5 ~@3 eb5@5",
// … 156 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.