Strudelify

The Fiddle Festival

Nicholas Wynn

KeyA majorTempo185 bpm
0:00/0:00
// The Fiddle Festival — Nicholas Wynn
// 185 bpm, 2/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (2/4 at bar 1, 4/4 at bar 284, 2/4 at bar 288) are rendered on a constant 2/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/133689; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 303 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(185/2)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · [...]/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 · pizzicato strings
const pizzicato_strings = note("<~@171 A@6 ~@2 B@4 ~@29 A@6 ~@2 B@4 ~@79>".pickRestart({
  A: "~@2 [d4,a4] ~", B: "~@2 [g4,e5] ~",
})).s("gm_pizzicato_strings").gain(0.3)

// other · violin
const violin = note(`<
  A B C B C B C D E B C B C B C D F G@3 H I@2 J F G@3 H ~@28 K L M N O P Q R F S T N U V W X K L M N O P Q R F S T N U V
  W X Y Z AA AB Z ~@3 AC AD AE I F AF AG AH AI ~@8 Y Z AA AB Z ~@3 AC AD AE I F AF AG AH AI ~@14 N AJ ~@4 AK AL AM ~@7 N
  AJ ~@4 AK AL AM ~@7 AN AO ~@4 AK AL AM AP AQ AR AS AT AU AV@2 AW@2 ~@6 N AJ ~@4 AK AL AM ~@7 AN AO ~@4 AK AL AM AP AQ
  AR AS AT AU AV@2 AW@2 B C ~@2 AT AU D AX B C ~@2 AY AZ BA@2 ~@6 J G ~@4 BB AL I@2 BC@6 G BD BE@4 BF BG BH@2 BI@2 ~@2
  BJ BK ~@4 AT AU AT AU AT AU BL BM
>`.pickRestart({
  A: "a4 ~@3", B: "a3 a#3 b3 c4", C: "c#4 ~ a3 ~", D: "d5 a4 f#4 a4", E: "d4 ~@3", F: "b4 c#5 d5 e5", G: "f#5",
  H: "g5 f#5 e5 d5", I: "c#5", J: "d5", K: "~@2 c#4 ~", L: "e4 ~ a4 ~", M: "c#5 ~ b4 ~", N: "a4", O: "b3 ~ e4 ~",
  P: "g#4 ~ b4 ~", Q: "g#4 ~ e4 ~", R: "b3", S: "f#5@3 e5 d5@3 e5", T: "c#5@3 d5 b4@3 d5", U: "a4 c#5 e5 a5",
  V: "c#6 ~@3", W: "[a4,e5] ~@3", X: "[a3,e4,a4,e5] ~@3", Y: "e4 ~@3", Z: "g#4 ~@3", AA: "b4 ~@3", AB: "e5 ~ b4 ~",
  AC: "c#4 ~ c#4!2", AD: "e4 ~ e4 ~", AE: "a4 ~ a4 ~", AF: "f#5 e5 d5 c#5", AG: "b4 a4 g#4 f#4", AH: "e4 d4 c#4 b3",
  AI: "a3 ~ a3 ~", AJ: "e5", AK: "g5 ~ f5 ~", AL: "e5 ~ d5 ~", AM: "c5", AN: "g4", AO: "f5", AP: "c6 a#5 a5 g5",
  AQ: "f5 e5 d5 c5", AR: "a#4 a4 a#4 c5", AS: "d5 e5 f5 g5", AT: "a5 a#5 b5 c6", AU: "c#6 ~ a5 ~", AV: "a5",
  AW: "[a3,d4,a4] ~@3", AX: "d5 ~@3", AY: "f#5 g5 g#5 a5", AZ: "a5 ~ f#5 ~", BA: "b5", BB: "g#5 ~ f#5 ~",
  BC: "~@2 [d5,f#5] ~", BD: "g#5", BE: "~@2 [e5,g#5] ~", BF: "c#5 ~ e5 ~", BG: "g#5 ~ b5 ~", BH: "c#6/2",
  BI: "[e4,c#5] ~@3", BJ: "a4 a#4 b4 c5", BK: "c#5 ~ a4 ~", BL: "f#5 f5 f#5 f5", BM: "f#5 ~@3",
})).s("gm_violin").gain(0.3)

// other · violin · soft notes
const violin_soft = note(`<
  ~@29 A@2 B@2 C@2 B@2 D@6 E@5 D F G F G F G H I J ~@15 J ~@32 K@4 L ~ M L ~@17 K@4 L ~ M L ~@164
>`.pickRestart({
  A: "c#5 a4 e4 a4", B: "d5 a4 f#4 a4", C: "e5 c#5 a4 c#5", D: "a5 ~ a5 ~", E: "a5!4", F: "a5 a#5 b5 c6",
  G: "c#6 ~ a5 ~", H: "d6 ~@3", I: "a5 ~@3", J: "a3 ~@3", K: "c#5 ~ c#5 ~", L: "c#5 ~@3", M: "c#5 ~ e5 ~",
})).s("gm_violin").gain(0.2)

// chords · pizzicato strings
const pizzicato_strings_2 = note(`<
  ~@139 A@6 ~@2 B@4 ~@4 A@6 ~@2 B@4 ~@4 C@6 ~@2 D@4 ~@13 A@6 ~@2 B@4 ~@4 C@6 ~@2 D@4 ~@29 A@6 ~@2 E@4 ~@38
>`.pickRestart({
  A: "~@2 [a4,e5] ~", B: "~@2 [d4,b4] ~", C: "~@2 f4 ~", D: "~@2 c5 ~", E: "~@2 [b4,g#5] ~",
})).s("gm_pizzicato_strings").gain(0.3)

// other · viola
const viola = note(`<
  A ~ B C B C ~ D A ~ B C B C D E ~ F@2 G E H I J K F@2 G ~ L@8 H@3 M@3 N O P Q R S T U T U T U V W X Y Z AA AB AC AD AE
  AF AG AH AA A ~ AI A X Y Z AA AB AC AD AE AF AG AH AA A ~ AI A ~ AJ ~ AK AL ~@3 AM L AN AO AP AQ AR AS AT Y AU Y AU A
  ~ Q A ~ AJ ~ AK AL ~@3 AM L AN AO AP AQ AR AS AT Y AU Y AU A ~ Q A ~@6 AV AW ~@6 AX ~@7 AV AW ~@6 AX ~ AY AZ BA BB BC
  BD BE BF BG BH BI BJ BK BL BM BN BO BP BQ T U BR@2 BS@2 ~@6 AV AW ~@6 AX ~ AY AZ BA BB BC BD BE BF BG BH BI BJ BK BL
  BM BN BO BP BQ T U BR@2 BS@2 ~@2 BT BU T U D A ~@2 BT BU BV BW BX@2 ~@6 BM BY ~@6 BM@2 BZ CA CB CC CD CE CF CG CH CI
  CJ CK BK CL CM@2 CN@2 ~@4 BT BU ~@2 T U T U T U CO CP
>`.pickRestart({
  A: "a3 ~@3", B: "~@2 a3 ~", C: "c#4 ~@3", D: "~@2 e3 ~", E: "a3", F: "c#4 e4 a3 e4", G: "d4 f#4 a3 e4",
  H: "e4 ~ e4 ~", I: "f#4 ~ e4 ~", J: "d4 ~ a3 ~", K: "d3 ~@3", L: "a3 ~ a3 ~", M: "f#4 ~ f#4 ~", N: "a3 b3 c#4 d4",
  O: "e4 f#4 g#4 a4", P: "b4 a4 g#4 f#4", Q: "e4 d4 c#4 b3", R: "a3 e3 a3 c#4", S: "a3 ~ a4 ~", T: "a4 a#4 b4 c5",
  U: "c#5 ~ a4 ~", V: "d4 ~@3", W: "f#5 ~@3", X: "e3 ~ a3 ~", Y: "c#4 ~ e4 ~", Z: "e4 ~ g#3 ~", AA: "e3",
  AB: "g#3 ~ b3 ~", AC: "e4 ~ g#4 ~", AD: "b3 ~ e3 ~", AE: "g#3", AF: "a3 ~ c#4 ~", AG: "e4 ~ c#4 ~", AH: "a3 ~ g#3 ~",
  AI: "a4 ~ e4 ~", AJ: "e3 ~@3", AK: "b3 ~ b3 ~", AL: "e4 ~@3", AM: "e3 ~ e3!2", AN: "c#4 ~ c#4 ~", AO: "e4",
  AP: "d4 e4 f#4 g#4", AQ: "a4 g#4 f#4 e4", AR: "d4 c#4 b3 a3", AS: "g#3 f#3 e3 d3", AT: "c#3 ~ c#3 ~", AU: "a3 ~ e4 ~",
  AV: "f3", AW: "g3", AX: "g4", AY: "d3 f3 a3 d4", AZ: "f4 a3 d4 f4", BA: "a4 d4 f4 a4", BB: "d5 f4 a4 d5",
  BC: "f5 ~ e5 ~", BD: "d5 ~ c5 ~", BE: "a#4", BF: "d5", BG: "c3 e3 g3 c4", BH: "e4 g3 c4 e4", BI: "g4 c4 e4 g4",
  BJ: "c5 e4 g4 c5", BK: "e5 ~ d5 ~", BL: "c5 ~ a#4 ~", BM: "a4", BN: "c5 a#4 a4 g4", BO: "f4 e4 d4 c4",
  BP: "a#3 a3 a#3 c4", BQ: "d4 e4 f4 g4", BR: "f#5", BS: "[d3,a3,d4,a4] ~@3", BT: "a3 a#3 b3 c4", BU: "c#4 ~ a3 ~",
  BV: "c#5 d5 d#5 e5", BW: "f#5 ~ d#5 ~", BX: "g#5", BY: "c#5", BZ: "d3 f#3 a3 d4", CA: "f#4 a3 d4 f#4",
  CB: "a4 d4 f#4 a4", CC: "d5 f#4 a4 d5", CD: "f#5 ~ e5 ~", CE: "d5 ~ c#5 ~", CF: "b4", CG: "e5", CH: "c#3 e3 a3 c#4",
  CI: "e4 a3 c#4 e4", CJ: "a4 c#4 e4 a4", CK: "c#5 e4 a4 c#5", CL: "e5 ~ g#5 ~", CM: "a5/2", CN: "[c#3,a3] ~@3",
  CO: "~@2 [d4,a4] ~", CP: "[d4,a4] ~@3",
})).s("gm_viola").gain(0.36)

// chords · pizzicato strings
const pizzicato_strings_3 = note(`<
  ~@139 A@6 ~@2 B@6 ~@2 A@6 ~@2 B@6 ~@27 A@6 ~@2 B@6 ~@43 C@6 ~@2 D@6 ~@36
>`.pickRestart({
  A: "~@2 [e4,c5] ~", B: "~@2 [d3,g3] ~", C: "~@2 [e4,c#5] ~", D: "~@2 [e4,b4] ~",
})).s("gm_pizzicato_strings").gain(0.3)

// other · cello
const cello = note(`<
  A ~ B A B A ~ C D E B A B A B F ~ G H I J K L M N G H I ~ O A N A E A O A P Q@2 R S@2 O T@2 M U V W X W X W X A Y Z E
  AA AB AC Z AD AE Z E Z K AF ~ AG A Z E AA AB AC Z AD AE Z E Z K AF ~ AG A AD ~ Z AH AC ~@3 E Z E Z AD Z AD Z AG AI AJ
  AK AL A ~ AM Z AD ~ Z AH AC ~@3 E Z E Z AD Z AD Z AG AI AJ AK AL A ~ AM Z ~@6 AN AO AP ~@5 AQ AR ~@6 AN AO AP ~@5 AQ
  AR A ~@5 AN AS AP ~@5 AT AU AV AW AX W X O A Y@2 ~@6 AN AO AP ~@5 AQ AR A ~@5 AN AS AP ~@5 AT AU AV AW AX W X O A Y@2
  ~@2 W X W X C D E ~ W X ~@2 AY AZ ~@6 BA BB BC ~@5 BD BE A Y A Y A O AE BF A BG A BG A Z M U BH@2 ~@6 BI BJ W X W X W
  X C Y
>`.pickRestart({
  A: "a2 ~@3", B: "~@2 a3 ~", C: "~@2 a2 ~", D: "d3 e3 f#3 g#3", E: "a3 ~@3", F: "d4", G: "d3 ~ a2 ~", H: "f#3 ~ a2 ~",
  I: "a3 ~ d3 ~", J: "f#3", K: "a3 b3 c#4 d4", L: "e4 d4 c#4 b3", M: "a3 ~ e3 ~", N: "f#3 ~@3", O: "d3 ~@3",
  P: "e3 a3 e3 a3", Q: "e3 a3 c#4 a3", R: "d3 f#3 a3 f#3", S: "d3 a3 f#3 a3", T: "a3 ~ a3 ~", U: "c#3 ~ e3 ~",
  V: "f#3 ~ a3 ~", W: "a3 a#3 b3 c4", X: "c#4 ~ a3 ~", Y: "d2 ~@3", Z: "e3 ~@3", AA: "c#4 b3 a3 g#3",
  AB: "f#3 e3 d3 c#3", AC: "b2 ~@3", AD: "g#3 ~@3", AE: "b3 a3 g#3 f#3", AF: "e4 ~@3", AG: "e3 ~ a2 ~",
  AH: "g#3 ~ e3 ~", AI: "a2 b2 c#3 d3", AJ: "e3 f#3 g#3 a3", AK: "g#3 f#3 e3 d3", AL: "c#3 b2 a2 g#2", AM: "e4 ~ a3 ~",
  AN: "a3 g3 f3 e3", AO: "d3 c3 b2 a2", AP: "g2 ~@3", AQ: "b3 a3 g3 f3", AR: "e3 d3 c3 b2", AS: "d3 c3 a#2 a2",
  AT: "c4 ~ f3 ~", AU: "c4 a#3 a3 g3", AV: "f3 e3 d3 c3", AW: "a#2 a2 a#2 c3", AX: "d3 e3 f3 g3", AY: "g#3 ~ f#3 ~",
  AZ: "d3 ~ b2 ~", BA: "a3 g#3 f#3 e3", BB: "d3 c#3 b2 a2", BC: "g#2 ~@3", BD: "b3 ~ a3 ~", BE: "g#3 ~ g#2 ~",
  BF: "e3 d3 c#3 b2", BG: "e2 ~@3", BH: "[e2,a2] ~@3", BI: "a2 a#2 b2 c3", BJ: "c#3 ~ a2 ~",
})).s("gm_cello").gain(0.3)

// other · pizzicato strings
const pizzicato_strings_4 = note(`<
  ~@139 A B A B A C ~@3 D E D E F ~@2 A B A B A C ~@3 D E D E F ~@3 G A G A D ~@3 H E H E H ~@11 A B A B A C ~@3 D E D E
  F ~@3 G A G A D ~@3 H E H E H ~@27 A B A B A C ~@3 B I B J C ~@36
>`.pickRestart({
  A: "a2 ~@3", B: "e2 ~@3", C: "e3 ~@3", D: "d3 ~@3", E: "g2 ~@3", F: "g3 ~@3", G: "d2 ~@3", H: "c2 ~@3", I: "f#2 ~@3",
  J: "c#3 ~@3",
})).s("gm_pizzicato_strings").gain(0.3)

// bass · contrabass
const bass = note(`<
  A ~ B A B A ~ B C D B A B A B E ~ D A F G H I J K D A F ~@16 L@2 M N O P Q P Q P Q A R S D T U V S W X S D S H S ~ Y D
  S D T U V S W X S D S H S ~ Y D W ~ S Z V ~@3 D S D S W S W S AA L@4 A ~ Y S W ~ S Z V ~@3 D S D S W S W S AA L@4 A ~
  Y S ~@6 AB AC AD ~@5 AE AF ~@6 AB AC AD ~@5 AE AF A ~@13 AG AH AI AJ AK AL N AM D R@2 ~@6 AB AC AD ~@5 AE AF A ~@13 AG
  AH AI AJ AK AL N AM D R@2 ~@2 P Q P Q AN C D ~ P Q ~@2 AO AP ~@6 AQ AR AS ~@5 AT AU A R D R D R X I A S D S D S M AV
  D@2 ~@6 P Q P Q P Q P Q AN R
>`.pickRestart({
  A: "a1 ~@3", B: "~@2 a2 ~", C: "d2 e2 f#2 g#2", D: "a2 ~@3", E: "d3", F: "a2 ~ d2 ~", G: "d2", H: "a1 b1 c#2 d2",
  I: "e2 d2 c#2 b1", J: "a1 ~ e2 ~", K: "f#2 ~@3", L: "a2 ~ a2 ~", M: "a2 ~ e2 ~", N: "c#3 ~ a2 ~", O: "f#2 ~ a1 ~",
  P: "a1 a#1 b1 c2", Q: "c#2 ~ a1 ~", R: "d2 ~@3", S: "e2 ~@3", T: "c#3 b2 a2 g#2", U: "f#2 e2 d2 c#2", V: "b1 ~@3",
  W: "g#2 ~@3", X: "b2 a2 g#2 f#2", Y: "e3 ~ a2 ~", Z: "g#2 ~ e2 ~", AA: "e2 ~ a1 ~", AB: "a2 g2 f2 e2",
  AC: "d2 c2 b1 a1", AD: "g1 ~@3", AE: "b2 a2 g2 f2", AF: "e2 d2 c2 b1", AG: "c2 ~ f2 ~", AH: "c3 a#2 a2 g2",
  AI: "f2 e2 d2 c2", AJ: "a#1 a1 a#1 c2", AK: "d2 e2 f2 g2", AL: "a2 a#2 b2 c3", AM: "d3 ~@3", AN: "~@2 a1 ~",
  AO: "g#2 ~ f#2 ~", AP: "d2 ~ b1 ~", AQ: "a2 g#2 f#2 e2", AR: "d2 c#2 b1 a1", AS: "g#1 ~@3", AT: "b2 ~ a2 ~",
  AU: "g#2 ~ g#1 ~", AV: "c#2 ~ e2 ~",
})).s("gm_contrabass").gain(0.3)

// bass · acoustic bass
const bass_2 = note(`<
  ~@29 A B C B A B C B D E D F G H G ~@95 I J I J I K ~@3 L M L M N ~@2 I J I J I K ~@3 L M L M N ~@3 L I L I L O P M Q
  N Q N Q ~@11 I J I J I K ~@3 L M L M N ~@3 L I L I L O P M Q N Q N Q ~@27 R J I J I J ~@3 J S J T J ~@36
>`.pickRestart({
  A: "a2", B: "a1", C: "d2", D: "e2 ~", E: "a1 ~", F: "f#2 ~", G: "d2 ~", H: "a2 ~", I: "a2 ~@3", J: "e2 ~@3",
  K: "e3 ~@3", L: "d2 ~@3", M: "g1 ~@3", N: "g2 ~@3", O: "a2 g2 f2 e2", P: "d2 c2 a#1 a1", Q: "c2 ~@3", R: "a1 ~@3",
  S: "f#2 ~@3", T: "c#2 ~@3",
})).s("gm_acoustic_bass").gain(0.3)

stack(
  pizzicato_strings, violin, violin_soft, pizzicato_strings_2, viola, pizzicato_strings_3, cello, pizzicato_strings_4,
  bass, bass_2
)

More by Nicholas Wynn