0:00/0:00
// Sonata per la Grand Viola MS 70 — Niccolò Paganini
// 40 bpm, 4/4, key Eb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: metre changes (3/4 at bar 1, 1/4 at bar 13, 4/4 at bar 13, 22/16 at bar 16, ...) are rendered on a constant 4/4 grid of one bar per cycle
// note: ch 1 "Flute" named as a pipe, played on flute (its string ensemble 1 patch is not one); ch 2 "Oboe" named as a reed, played on oboe (its pizzicato strings patch is not one); ch 3 "B♭ Clarinet" named as a reed, played on clarinet (its tremolo strings patch is not one); ch 4 "Bassoon" named as a reed, played on bassoon (its string ensemble 1 patch is not one); ch 5 "High C Horn" named as a brass, played on brass section (its pizzicato strings patch is not one); ch 6 "C Trumpet" named as a brass, played on trumpet (its tremolo strings patch is not one); ch 8 "Trombone" named as a brass, played on trombone (its pizzicato strings patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5571010; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 45 bars on a 32-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(40/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 · flute
const flute = note("<~@3 A ~@10 B C ~ D E F G H I ~@4 J K ~@14 L ~>".pickRestart({
A: "[c4,g4] ~@3 [c4,g4] ~@3 [c4,g4] ~@3 [ab3,f4,c6,ab6] ~@3, [c6,g6] ~@7 [c6,g6] ~@7 [c6,g6] ~@15", // C5 Fm C5
B: "~@3 [g3,eb4] ~@15 [ab3,f4]!13", C: "[ab3,f4]!4 ~@28", D: "~@17 [c4,e4] ~ [c4,e4] ~@12",
E: "~@17 [ab3,f4] ~ [bb3,ab4] ~@12", F: "~@17 [bb3,g4] ~ [d4,f4] ~@12", G: "~@6 [c4,eb4]!16 [db4,f4]!10",
H: "[db4,f4]!6 ~@26", I: "~@16 [eb4,c5]!8 ~@8", J: "~@26 [d4,d5] ~@4 [d4,d5]",
K: "~@4 [d4,d5] ~@5 [d4,d5] ~@4 [d4,d5] ~@16", L: "~@22 [f5,d6] ~ [e5,c6] ~ [d5,b5] ~@5",
})).s("gm_flute").gain(0.3)
// chords · flute · soft notes
const flute_soft = note("<~@4 A B ~@5 C ~@9 D ~@6 E ~@15 F>".pickRestart({
A: "~@16 [eb4,c5,eb6,g6] ~@7 [eb4,c5,c6,eb6] ~@7", B: "[d4,b4,b5,d6] ~@7 [eb4,c5]@4 ~@20, ~@8 [eb5,c6] ~@23",
C: "~ g3@2 ~", D: "~@6 ab3!4 ab3@2 ~@2 g3@2 ~@16", E: "~@20 [d4,d5] ~@5 [d4,d5] ~@4 [d4,d5]",
F: "~@10 [e5,c6] ~@2 [f5,d6] ~ [g5,e6] ~@16", // C Dm C
})).s("gm_flute").gain(0.2)
// chords · oboe
const oboe = note("<A B C D ~ E F G H I ~@6 J ~@8 K ~ L ~@2 M N O@2 P Q ~ R S@2 T U V W@2>".pickRestart({
A: "[c4,eb4] ~ [c4,eb4] ~ [b3,g4] ~ [c4,eb4] ~", B: "c4 d4 eb4 f4 g4@2 ~@10", C: "~@8 d4 ~@7",
D: "[eb5,g5] ~@7 [eb5,g5] ~@7 [g5,bb5] ~@7 [f5,ab5]@2 ~@6", E: "~@3 [g3,eb4]!5",
F: "[ab3,f4]!6 [g3,eb4]!2, d5 ~@7 [d4,b4] ~@3 c5 ~@3", G: "[g3,eb4]!4 ~@4", H: "~@6 [d4,b4] ~",
I: "[eb4,c5] ~@3 [b3,d4] ~ c4 ~", J: "~@2 [g3,f4] ~@13", K: "~@19 [d4,b4]@3 ~@10", L: "~@12 c5@3 a5@3 a5@2 b5@3 ~@9",
M: "~@27 g3@2 ~@3", N: "~@2 g3@2 ~@5 a3@2 ~@4 g3@2 ~@5 g3@2 ~@5 g3@2 ~",
O: "[~@4 b3@2 ~@5 b3@2 ~@5 b3@2 ~@5 g3@2 ~@4 g3@2 ~@5 g3@2 ~@5 c5@3 e5@2 g4@3 e4@3 c5@2 g4@3 e4@3]/2",
P: "~@2 a4@3 a4@3 d5@2 gb5@3 a5@3 gb5@2 c5@3 ~@5 b4@3 e5@3",
Q: "c5@3 ~@4 d5@3 b4@3 ~@3 c5@3 ~ a4@3 ~@3 [d4,b4]@3 ~@3", R: "~ g3@2 ~@5 g3@2 ~@5 a3@2 ~@5 g3@2 ~@5 g3@2 ~",
S: "[~@4 g3@2 ~@5 b3@2 ~@4 b3@2 ~@5 b3@2 ~@5 g3@2 ~@5 g3@2 ~@5 g3@2 ~@5 c5@2 e5@3 g4@3 e4@2 c5@2]/2",
T: "~ g4@3 e4@3 ~@2 a4@3 a4@2 d5@3 gb5@3 a5@2 gb5@3 c5@3 ~@4",
U: "~ b4@3 e5@3 c5@3 ~@3 d5@3 ~ b4@3 ~@3 c5@3 a4@3 ~@3", V: "~ [d4,b4]@3 ~@28",
W: "[~@10 d6@2 ~ c6@2 ~@2 b5@2 b5@2 ~ b5@2 ~@7 g5@2 f5@2 ~@3 e5@2 e5@2 e5@2 ~@20]/2",
})).s("gm_oboe").gain(0.3)
// chords · oboe · soft notes
const oboe_soft = note("<~ A B ~ C D ~ E F ~ G H ~@9 I ~@3 J@2 K ~@15 L M>".pickRestart({
A: "~@4 [c4,eb4] ~ [c4,eb4] ~", B: "[c4,eb4]@2 ~@2 [b3,d4]@2 ~@3 c4 b3 ab3 g3@2 ~@2",
C: "~@16 [c5,eb5] ~@7 [c5,eb5] ~@7", D: "[b4,d5] ~@7 [eb4,c5] ~@23",
E: "~@16 [f4,d5] ~@3 ab3@4 ab3@4 ab3@4, ~@4 ab3 ~@3", F: "[d4,b4] ~@3 ab3@4 [eb4,c5] ~@23, ab3 ~ g3 ~@5",
G: "~@4 g3 ~ g3 ~", H: "g3 ~@7", I: "~@11 ab3 ~@4",
J: "[~@23 b4@3 c5@2 d5@3 c5@3 c5@2 a5@3 a5@3 b5 ~ b3@3 c4@3 d4@2 c4@3 c4@3 a4@2 a4@3 b4]/2",
K: "~@2 b4@2 c5@3 d5@3 c5@2 ~@20", L: "~@8 [d4,f4]@2 ~@5 [d4,f4]@2 ~@12 [c4,e4]@2 ~", M: "~@3 [c4,e4]@2 ~@27",
})).s("gm_oboe").gain(0.2)
// chords · clarinet · "B♭ Clarinet"
const clarinet = note("<~@3 A B C D@2 E F ~@33 G H>".pickRestart({
A: "[g4,c5] ~@7 [g4,c5] ~@7 [g4,bb4] ~@7 [f4,ab4]@2 ~@6", B: "~@16 [eb4,g4] ~@7 [eb4,g4] ~@7",
C: "[eb4,g4] ~@7 [g3,eb4]@24", // Eb Cm
D: "[[ab3,f4]@2 ~@6 [ab3,f4]@2 ~@6 [ab3,f4]@2 ~@6 [g3,eb4]@24 [ab3,f4] ~@7 [ab3,f4] ~@7]/2", // Db Cm Db
E: "[ab3,f4] ~@7 [g3,eb4] ~@15 [b3,f4]@2 ~@6", F: "[c4,eb4] ~@7 [b3,f4] ~@3 [c4,eb4] ~@3",
G: "~@8 [f3,b3]@2 ~@5 [f3,b3]@2 ~@12 [e3,c4]@2 ~", H: "~@3 [e3,c4]@2 ~@27",
})).s("gm_clarinet").gain(0.2)
// chords · bassoon
const bassoon = note("<~@3 A ~@2 B ~ C D ~@4 E F ~ G H I J K L ~@4 M N ~@16>".pickRestart({
A: "[eb3,c4] ~@3 [eb3,c4] ~@3 [c3,bb3] ~@3 [c3,f3,ab3] ~@3, ~@16 e3 ~@15", B: "c3 ~@3 c3 ~@3 c3 ~@3 c3 ~@3",
C: "~@12 g2 ~@3", D: "c3 ~@7 g2 ~@3 c2 ~@3", E: "~@3 [eb3,c4] ~@15 [d3,ab3]!13", F: "[d3,ab3]!4 ~@28",
G: "~@17 [e3,g3] ~ [e3,g3] ~@12", H: "~@17 [f3,ab3] ~ [ab3,d4] ~@12", I: "~@17 [g3,eb4] ~ [b3,g4] ~@12",
J: "~@6 [c3,ab3]!16 [db3,ab3]!10", K: "[db3,ab3]!6 ~@26", L: "~@16 [a3,gb4]!8 ~@8", M: "~@26 c5@5 b4",
N: "~@4 c5@5 ~ b4 ~@4 c4@5 ~@6 c5@5 ~",
})).s("gm_bassoon").gain(0.3)
// chords · bassoon · soft notes
const bassoon_soft = note("<~@4 A B ~ C D ~@2 E ~@9 F ~@6 G@2 ~@13 H I>".pickRestart({
A: "~@16 [g3,c4,eb4] ~@7 [g3,c4,eb4] ~@7", B: "[g2,g3,g4] ~@7 [g3,eb4]@2 ~@22, ~@8 c3 ~@23", C: "~@16 c3 ~@7 c3 ~@7",
D: "c3 ~@7 c3 ~@23", E: "~ eb3@2 ~", F: "~@3 [eb3,ab3] ~@3 [eb3,db4] ~@8", G: "[~@20 b3 ~@10 b4@3 ~@30]/2",
H: "~@8 g3@2 ~@5 g3@2 ~@12 c3@2 ~", I: "~@3 c3@2 ~@27",
})).s("gm_bassoon").gain(0.2)
// other · brass section · "High C Horn"
const brass_section = note("<A B C D ~ E F G H I ~@6 J ~@8 K L@2 ~@2 M N O@2 P Q ~ R S@2 T U V W@2>".pickRestart({
A: "[eb3,c4] ~ [eb3,c4] ~ [d3,b3] ~ [c3,g3] ~", B: "~@4 [eb3,c4] ~ f3 ~", C: "gb3 ~ g3 ~@5",
D: "[c4,c5] ~@7 [c4,c5] ~@7 [c4,c5] ~@7 [c4,c5]@2 ~@6", E: "~@3 [c4,eb4]!5", F: "d4!6 [c4,eb4]!2",
G: "[c4,eb4]!4 ~@4", H: "~@6 [g3,g4] ~", I: "[g3,eb4] ~@3 [f3,g3] ~@3", J: "~@2 [b3,d4] ~@13",
K: "~@19 [g3,g4]@4 ~@9", L: "[~@23 g3@3 gb3@2 gb3@3 g3@3 ~@13 gb4@3 gb4@2 g4 ~@11]/2", M: "~@27 e3@2 ~@3",
N: "~@2 e3@2 ~@5 f3@2 ~@4 e3@2 ~@5 e3@2 ~@8",
O: "[~@4 f3@2 ~@5 f3@2 ~@5 f3@2 ~@5 e3@2 g3@2 c4@2 e4@2 ~ g4@2 b3@2 c4@2 ~ e4@2 g4@2 [g4,e5]@3 ~@5 [g4,e5]@3 ~@5 [g4,e5]@3]/2", // C
P: "~@8 a4@2 gb4@3 ~@3 d4@2 a4@3 ~@3 g4@2 e5@3 ~@3", Q: "e4@3 ~ e5@3 ~@3 b4@3 g4@3 ~@4 c5@3 a4@3 g4@3 ~@3",
R: "~ e3@2 ~@5 e3@2 ~@5 f3@2 ~@5 e3@2 ~@5 e3@2 ~",
S: "[~@11 f3@2 ~@4 f3@2 ~@5 f3@2 ~@5 e3@2 g3@2 ~ c4@2 e4@2 g4@2 ~ b3@2 c4@2 e4@2 g4@2 ~ [g4,e5]@3 ~@5 [g4,e5]@3 ~]/2", // C
T: "~@4 [g4,e5]@3 ~@7 a4@3 gb4@3 ~@2 d4@3 a4@3 ~@2 g4@2", U: "~ e5@3 ~@3 e4@3 e5@3 ~@4 b4@3 g4@3 ~@3 c5@3 a4@3",
V: "~ g4@3 ~@28", W: "[~@10 g5@2 ~ g5@2 ~@2 g5@2 g5@2 ~ g5@2 ~@7 g5@2 g5@2 ~@3 g5@2 g5@2 g5@2 ~@20]/2",
})).s("gm_brass_section").gain(0.4)
// other · brass section · "High C Horn" · soft notes
const brass_section_soft = note("<~@4 A B ~ C D E F G ~@9 H ~@3 I@2 J ~@15 K@2>".pickRestart({
A: "~@16 [g3,g4] ~@7 [g3,g4] ~@7", B: "[g3,g4] ~@7 c5@24, ~@2 c4 ~@5", C: "~@4 d3!4", D: "d3!2 eb3 ~@5",
E: "~@6 [eb3,g3] ~", F: "~@4 eb3 ~ eb3 ~", G: "eb3 ~@7", H: "~@11 [eb3,c4] ~@4",
I: "[~@28 g4@3 g4@3 g4@2 gb4@3 gb4@3 g4@2 g3@3 ~@3 g3@2 g3@3 ~@9]/2", J: "~@2 g4@3 ~@2 g4@3 g4@2 g4@3 ~@17",
K: "[~@8 [g3,g4]@16 ~@5 c4@16 ~@19]/2", // G
})).s("gm_brass_section").gain(0.2)
// chords · trumpet · "C Trumpet" · C5
const trumpet = note("<~@3 [[c4,g4] ~@7 [c4,g4] ~@7 [c4,g4] ~@7 c4@2 ~@6] ~@41>").s("gm_trumpet").gain(0.45)
// other · trombone
const trombone = note("<A B C D ~ E F G H I J ~@5 K ~@8 L@3 ~@2 M@4 N O ~ P@3 Q R S T@2>".pickRestart({
A: "c3 ~ eb3 ~ d3 ~ c3 ~", B: "~@4 c3 ~ ab3 ~", C: "gb3 ~ g3 ~@5",
D: "[eb3,g3,c4] ~@7 [eb3,g3,c4] ~@7 [e3,g3,c4] ~@7 [f3,ab3,c4]@2 ~@6", E: "~@2 c3!6", F: "c3!7 c2", G: "c2!4 ~@4",
H: "~@6 g3 ~", I: "c4 ~@3 g3 ~ c3 ~", J: "~@4 b3 c4 g3 eb3 ~@8", K: "~@2 g3 ~@13",
L: "[~@19 g2@4 ~@8 g3@3 ~@8 g3@3 ~@18 g3@3 ~@18 g2 ~@11]/3",
M: "[~@27 c3@2 g3@2 e3@2 ~ c3@2 e3@2 g3@2 ~ c3@2 ~@2 c4@2 c3@2 ~ g3@2 e3@2 c3@2 ~ e3@2 g3@2 c4@2 g3@2 ~ c3@2 g2@2 d3@2 ~ b2@2 g3@2 d3@2 b2@2 ~ g2@2 ~@2 g3@2 ~ c3@2 g3@2 e3@2 c3@2 ~ e3@2 g3@2 c4@2 ~ g3@2 e3@2 [c2,c3]@3 ~@5 [c2,c3]@3 ~@5 [c2,c3]@3]/4", // C
N: "~@5 gb2@3 ~@13 e3@3 ~@8", O: "c3@3 ~ c4@3 ~@3 d3@3 d4@3 ~@4 d2@3 d3@3 g2@3 ~@3",
P: "[~ c3@2 ~ g3@2 e3@2 c3@2 ~ e3@2 g3@2 c3@2 ~@3 c4@2 c3@2 g3@2 ~ e3@2 c3@2 e3@2 g3@2 ~ c4@2 g3@2 c3@2 ~ g2@2 d3@2 b2@2 g3@2 ~ d3@2 b2@2 g2@2 ~@3 g3@2 c3@2 g3@2 ~ e3@2 c3@2 e3@2 ~ g3@2 c4@2 g3@2 e3@2 ~ [c2,c3]@3 ~@5 [c2,c3]@3 ~]/3", // C
Q: "~@4 [c2,c3]@3 ~@5 gb2@3 ~@13 e3@3 ~", R: "~@7 c3@3 c4@3 ~@4 d3@3 d4@3 ~@3 d2@3 d3@3", S: "~ g2@3 ~@28",
T: "[~@8 b2@2 d3@2 ~ g3@2 b3@2 d4@2 g4@2 ~ b2@2 ~@5 c3@2 e3@2 g3@2 c4@2 ~ g3@2 e3@2 c3@2 ~@20]/2",
})).s("gm_trombone").gain(0.4)
// other · trombone · soft notes
const trombone_soft = note("<~@7 A B ~ C D ~@9 E ~@4 F G ~@17>".pickRestart({
A: "~@4 c2!4", B: "c2!3 ~@5", C: "~@4 c3 ~ c3 ~", D: "c3 ~@7", E: "~@11 ab2 ~@4", F: "~@20 g3@3 ~@9",
G: "~@10 g2@3 ~@19",
})).s("gm_trombone").gain(0.2)
// other · tremolo strings · "Timpani"
const tremolo_strings = note("<A B C D E F D B G H B I ~@31 J K>".pickRestart({
A: "c3 ~@3 c3 ~@3 g3 ~@3 c3 ~@3", B: "~@8 c3 ~@3 c3 ~@3", C: "c3 ~@3 g3 ~@11", D: "c3 ~ c3 ~ c3 ~ c3 ~",
E: "~@8 g3 ~@3 g3 ~@3", F: "g3 ~@3 c3@2 ~@10", G: "c3 ~@3 c3 ~@7 g3@2 ~@2", H: "c3 ~@3 g3 ~ c3 ~",
I: "c3@2 ~@6 [c3,d3]!24", J: "~@8 g3@2 ~@5 g3@2 ~@5 g3@2 ~@5 c3@2 ~", K: "~@3 c3@2 ~@5 c3@2 ~@20",
})).s("gm_tremolo_strings").gain(0.15)
// chords · string ensemble 1
const string_ensemble_1 = note("<~@3 A B ~@9 C D ~ E F G H I J ~@4 K L ~@16>".pickRestart({
A: "g5@2 c6@2 c6@2 g5@2 g5@2 eb5@2 eb5@2 c5@2 c5@2 db5@2 bb4 ~ g4 ~ f4@2 ab4@2 ab4@2 c5@2", B: "c5 f5!2 ab5!2 ~@11",
C: "~@3 [g3,eb4] ~@15 [ab3,f4]!13", D: "[ab3,f4]!4 ~@28", E: "~@17 [g3,e4] ~ [g3,e4] ~@12",
F: "~@17 [ab4,c5] ~ [f4,d5] ~@12", G: "~@17 [g4,eb5] ~ [d4,b4] ~@12", H: "~@6 [ab3,eb4]!8 [ab3,ab4]!8 [ab3,f4]!10",
I: "[ab3,f4]!6 ~@26", J: "~@16 [c5,a5]!8 ~@8", K: "~@26 gb5@5 g5", L: "~@4 gb5@5 ~ g5 ~@4 gb5@5 ~@6 gb5@5 ~",
})).s("gm_string_ensemble_1").gain(0.3)
// chords · string ensemble 1 · soft notes
const string_ensemble_1_soft = note("<~@4 A B ~@5 C ~@9 D ~@6 E@2 ~@15>".pickRestart({
A: "~@16 g5 ~ c6 ~ b5 ~ c6 ~ eb5 ~ g5 ~ gb5 ~ g5 ~", B: "ab5 ~ g5 ~ f5 ~ d5 ~ c5@4 ~@20", C: "~ c4@2 ~",
D: "~@6 c4!4 c4@2 ~@2 bb3@2 ~@16", E: "[~@20 g5 ~@10 g5@3 ~@30]/2",
})).s("gm_string_ensemble_1").gain(0.2)
// other · pizzicato strings
const pizzicato_strings = note("<A B ~@4 C D E F ~@6 G ~@8 H ~ I ~@2 J K L@2 M N ~ O P@2 Q R S T@2>".pickRestart({
A: "[g3,eb4] ~ [g3,g4] ~ [g3,f4] ~ [g3,eb4] ~", B: "c5 d5 eb5 f5 g5@2 ~@10",
C: "d5 eb5 f5@2 f5 eb5 d5@2 d5 c5 b4@2 c5 d5 eb5 f5", D: "g5 ~@7", E: "~@12 ab5 g5 f5 d5",
F: "c5@2 ~@6 ab4 g4 f4 d4 c4@2 ~@2", G: "~@2 [d4,b4] ~@13", H: "~@19 g5@3 ~@10", I: "~@15 d6@3 eb6@2 d6@3 ~@9",
J: "~@27 c4@2 ~@3", K: "~@2 c4@2 ~@5 c4@2 ~@4 c4@2 ~@5 c4@2 ~@3 d4@2 e4@2 ~",
L: "[~@4 b3@2 ~@5 b3@2 ~@5 b3@2 ~@5 c4@2 ~@4 c4@2 ~@5 c4@2 ~@5 c5@3 g5@2 e5@3 c5@3 e5@2 g5@3 c6@3]/2",
M: "~@2 c6@3 d5@3 gb5@2 a5@3 c6@3 a5@2 gb5@3 g5@3 e5@2 g5@3 c6@3",
N: "a5@3 ~@4 b5@3 g5@3 ~@3 a5@3 ~ gb5@3 ~@3 g5@3 ~@3", O: "~ c4@2 ~@5 c4@2 ~@5 c4@2 ~@5 c4@2 ~@5 c4@2 ~",
P: "[~ d4@2 ~ e4@2 ~@5 b3@2 ~@4 b3@2 ~@5 b3@2 ~@5 c4@2 ~@5 c4@2 ~@5 c4@2 ~@5 c5@2 g5@3 e5@3 c5@2 e5@2]/2",
Q: "~ g5@3 c6@3 ~@2 c6@3 d5@2 gb5@3 a5@3 c6@2 a5@3 gb5@3 g5@2 e5@2",
R: "~ g5@3 c6@3 a5@3 ~@3 b5@3 ~ g5@3 ~@3 a5@3 gb5@3 ~@3", S: "~ g5@3 ~@28",
T: "[~@10 f6@2 ~ e6@2 ~@2 d6@2 d6@2 ~ d6@2 ~@7 e6@2 d6@2 ~@3 c6@2 c6@2 c6@2 ~@20]/2",
})).s("gm_pizzicato_strings").gain(0.4)
// other · pizzicato strings · soft notes
const pizzicato_strings_soft = note("<~ A B ~@4 C D ~ E F ~@9 G ~@3 H@2 I ~@17>".pickRestart({
A: "~@4 [c4,eb4] ~ [c4,eb4] ~", B: "[c4,eb4]@2 ~@2 [b3,d4]@2 ~@2 d5 c5 b4 ab4 g4@2 ~@2",
C: "~@8 d4 eb4 f4@2 f4 eb4 d4@2", D: "d4 c4 b3@2 c4@2 ~@10", E: "~@4 c4 ~ c4 ~", F: "c4 ~@7", G: "~@11 ab3 ~@4",
H: "[~@23 g5@3 a5@2 b5@3 c6@3 c6@2 d6@3 eb6@3 d6 ~ g4@3 a4@3 b4@2 c5@3 c5@3 d5@2 eb5@3 d5]/2",
I: "~@2 g5@2 a5@3 b5@3 c6@2 c6@3 ~@17",
})).s("gm_pizzicato_strings").gain(0.2)
// other · string ensemble 1
const string_ensemble_1_2 = note("<~@3 A B C ~@5 D ~@2 E F ~ G H I J K L ~@4 M N@2 ~@15>".pickRestart({
A: "eb3 ~@3 eb3 ~@3 e3 ~@3 f3 ~@3", B: "~@16 g3 ~@7 g3 ~@7", C: "g3 ~@31", D: "~ c3@2 ~", E: "~@3 c3 ~@15 d3!13",
F: "d3!4 ~@28", G: "~@17 c4 ~ c3 ~@12", H: "~@17 f3 ~ bb2 ~@12", I: "~@17 eb3 ~ g2 ~@12", J: "~@6 ab2!8 c3!8 db3!10",
K: "db3!6 eb3!4 eb3@2 ~@2 eb3 ~@17", L: "~@16 gb2@6 ~ gb2 ~@8", M: "~@26 ab3@5 g3",
N: "[~@4 ab3@5 ~ g3 ~@4 ab3@5 g3 ~@5 ab4@5 g4@3 ~@30]/2",
})).s("gm_string_ensemble_1").gain(0.3)
// bass · pizzicato strings
const bass = note("<A B C ~@2 D E F G H I ~@5 J ~@3 K ~@4 L M N ~@2 O P Q@2 R S ~ T U@2 V W X Y Z>".pickRestart({
A: "c2 ~ eb2 ~ d2 ~ c2 ~", B: "~@4 c2 ~ ab2 ~", C: "gb2 ~ g2 ~@5", D: "~@2 c2!6", E: "c2!8", F: "c2!4 ~@4",
G: "~@6 g2 ~", H: "c3 ~@3 g2 ~ c2 ~", I: "~@4 b2 c3 g2 eb2 ~@8", J: "~@2 g2 ~@13", K: "~@3 ab2 ~@3 c2 ~@3 db2 ~@4",
L: "~@19 g2@4 ~@9", M: "~@10 g2@3 ~@19", N: "~@20 g2 ~@11", O: "~@27 c2@2 ~@3",
P: "~@2 c2@2 ~@5 c2@2 ~@4 c2@2 ~@12 c2@2 ~",
Q: "[~@4 g2@2 ~@5 g2@2 ~@5 g2@2 ~@5 c2@2 ~@4 c3@2 ~@3 g2@2 c2@2 ~@5 c2@3 ~@5 c2@3 ~@5 c2@3]/2",
R: "~@5 d2@3 ~@5 gb2@3 ~@5 e2@3 ~@5 c2@3", S: "~@7 d2@3 ~@6 d2@3 ~@7 g2@3 ~@3",
T: "~ c2@2 ~@5 c2@2 ~@5 c2@2 ~@5 c2@2 ~@8",
U: "[~@4 c2@2 ~@5 g2@2 ~@4 g2@2 ~@5 g2@2 ~@5 c2@2 ~@5 c3@2 ~@3 g2@2 c2@2 ~@5 c2@3 ~@5 c2@3 ~]/2",
V: "~@4 c2@3 ~@5 d2@3 ~@5 gb2@3 ~@5 e2@3 ~", W: "~@4 c2@3 ~@6 d2@3 ~@7 d2@3 ~@6", X: "~ g2@3 ~@28",
Y: "~@8 g2@2 ~@5 g2@2 ~@5 g2@2 ~@5 c2@2 ~", Z: "~@3 c2@2 ~@5 c2@2 ~@20",
})).s("gm_pizzicato_strings").gain(0.4)
// bass · pizzicato strings · soft notes
const bass_soft = note("<~@7 A B ~ C D ~@8 E F ~@4 G@2 ~@17>".pickRestart({
A: "~@4 c2!4", B: "c2!3 ~@5", C: "~@4 c2 ~ c2 ~", D: "c2 ~@7", E: "~@15 db2", F: "~@3 eb2 ~@3 eb2 ~@3 ab2 ~@4",
G: "[~@31 g2@3 ~@30]/2",
})).s("gm_pizzicato_strings").gain(0.2)
// drums · guiro
const guiro = s("guiro:0").struct("<~@3 [x!4] ~@41>").gain(9.43)
// … 5 more lines
More by Niccolo Paganini
Paganini - Centone di Sonate (Sonata III: Larghetto Cantabile) for Flute & GuitarC major · 80 bpmPaganini - Centone di Sonate (Sonata III: Larghetto Cantabile) for Flute & PianoC major · 80 bpmPaganini - Centone di Sonate (Sonata IV: Adagio Cantabile) for Flute & PianoA major · 40 bpmPaganini - Centone di Sonate (Sonata IV: Adagio Cantabile) for Flute and GuitarA major · 40 bpmPaganini - Sonata for Violin and Guitar in Em (for Flute and Guitar)G major · 65 bpmPaganini-24th Capriccio per violino soloA minor · 120 bpmViolinkonzert_Nr._4_A minorA minor · 76 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.