Strudelify

Organ Concerto in G minor HWV 310

G. F. Handel op. 7 Nr. 5

KeyB♭ majorTempo50 bpm
0:00/0:00
// Organ Concerto in G minor HWV 310 — G. F. Handel op. 7 Nr. 5
// 50 bpm, 4/4, key Bb major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: ch 14 "Pipe Organ" named as an organ, played on church organ (its distortion guitar patch is not one)
// note: duplicate parts dropped: ch 4 "Violin" tremolo strings (copy of ch 1 "Violin" tremolo strings); ch 11 "Viola" viola (copy of ch 7 "Violin" violin)
// note: Transcription provider: pdmx. https://musescore.com/score/5477975; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 62 bars on a 32-step grid, each part at one level. Source detail keeps the original performance.
setcpm(50/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.

// other · tremolo strings · "Violin"
const tremolo_strings = note(`<
  ~@2 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C A C A B A B A B A B A B A B A B A B A B A D@2
  ~@3
>`.pickRestart({
  A: "bb3 ~ bb4 ~ a4 ~ a3 ~ g3 ~ g4 ~ f4 ~ d4 ~", B: "eb4 ~ eb5 ~ d5 ~ bb4 ~ g4 ~ eb4 ~ f4 ~ f4 ~",
  C: "eb4 ~@3 eb5@2 ~@2 d5@2 ~@2 bb4@2 ~@2 g4@2 ~@2 eb4@2 ~@2 f4@2 ~@2 f4@2 ~@2",
  D: "[eb4@2 ~@2 eb5@2 ~@2 d5@2 ~@2 bb4@2 ~@2 g4@2 ~@2 eb4@2 ~@3 f4@3 ~@3 f4@4 ~@4 bb3@25]/2",
})).s("gm_tremolo_strings").gain(0.15)

// chords · church organ · "Pipe Organ"
const church_organ = note(`<
  A B C ~ D E F G H I J K J K L M L M N O N O P Q P Q R S R S T U T U V W V W X Y X Y Z AA Z AA AB AC AB AC AD AE AD AE
  AF AG AH AI@2 AJ@3
>`.pickRestart({
  A: "[bb2,bb3] ~ [bb3,bb4] ~ [a3,a4] ~ [a2,a3] ~ [g2,g3] ~ [g3,g4] ~ [f3,f4] ~ [d3,d4] ~", // Bb A G F D
  B: "[eb3,eb4] ~ [eb4,eb5] ~ [d4,d5] ~ [bb3,bb4] ~ [g3,g4] ~ [eb3,eb4] ~ [f3,f4] ~ [f2,f3] ~", C: "[bb2,bb3] ~@7",
  D: "bb2@2 ~@2 bb3@2 ~@2 f5@4 a2@2 d5@2 [bb4,c5] bb4@2 a4 bb4@4 f3@2 ~@2 [d3,bb4]@2 c5 d5, d5@4 a3 ~@3 g2 ~ g3 ~@5", // Bbsus2 Gm
  E: "g4@4 [eb4,a4]@3 bb4 f4@4 [bb3,bb4]@2 d4@2 eb4@4 [eb3,f4]@2 g4@2 c4@4 [f2,d4]@2 eb4@2, eb3 ~@3 d4 ~@3 g3 ~@3 f3 ~@3", // Ebdim Bb Ebsus2 Dm
  F: "d4@4 [bb3,d4]@3 eb4 f4@4 [a2,g4]@3 a4 bb4@4 [g3,bb4]@3 c5 d5@4 [d3,eb5]@3 f5, bb2 ~@3 a3 ~@3 g2 ~@3 f3 ~@3", // Bb A7 Gm Ebmaj7
  G: "g5@4 [eb4,g5]@3 a5 bb5@4 [bb3,c6]@3 d6 eb5@4 [eb3,c6]@3 bb5 a5@4 [f2,f5]@3 eb5, eb3 ~@3 d4 ~@3 g3 ~@3 f3 ~@3", // Eb Bbsus2 Cm F
  H: "[bb2,d5]@3 d6 [c6,d6] c6@2 bb5 c6@4 f5@4 g2@2 bb5@2 [g3,a5]@3 g5 a5@4 [d3,g5]@3 f5, ~@2 bb3 ~ a3 ~ a2 ~@5 f3 ~@3", // Bb Csus2 Gsus2 G5
  I: "[eb3,g5]@3 g5 [eb4,f5]@3 eb5 f5@4 [bb3,eb5]@3 d5 eb5@4 [eb3,c5]@3 bb4 a4@4 [f2,bb4]@3 c5, ~@4 d4 ~@3 g3 ~@3 f3 ~@3", // Eb Ebsus2 Eb5 Cm Bb5
  J: "d5 f4 bb4 d5 f4 d5 c5 bb4 a3 f3 a3 c4 f3 a3 g3 f3 bb4 g4 d4 g4 d4 bb4 a4 g4 f3 d3 f3 a3 d3 f3 eb3 d3, bb2 bb3 f5 f4 g3 g2 d5 d4",
  K: "g5 bb4 eb5 g5 bb4 g5 f5 eb5 [d4,f5] [bb3,d5] [d4,f5] [f4,bb5] [bb3,d5] [d4,f5] [c4,eb5] [bb3,d5] [eb4,g5] [bb3,eb5] [eb4,g5] [g4,bb5] [eb4,g5] [g4,bb5] [c4,eb5] [eb4,g5] c5 f5 eb5 f5 a4 f5 eb5 f5, eb3@2 eb4@2 ~@8 a3 c4 f3 a3", // Dm Bb Dm Bb5 Bb Dm Cm Bb …
  L: "d5 f3 g3 a3 ~ c4 d4 eb4 f4 c4 d4 eb4 f4 g4 a4 f4 bb4 d4 eb4 f4 g4 a4 bb4 c5 d5 a4 bb4 c5 d5 eb5 f5 d5, bb2 ~ bb3 ~ a3 ~ a2 ~ g2 ~ g3 ~ f3 ~ d3 ~",
  M: "g5 bb4 c5 d5 eb5 f5 g5 a5 bb5 a5 g5 f5 g5 f5 eb5 d5 eb5 d5 c5 bb4 c5 bb4 a4 g4 a4 g4 f4 eb4 f4 eb4 d4 c4, eb3 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ eb3 ~ f3 ~ f2 ~",
  N: "bb2 f2 g2 a2 bb2 c3 d3 eb3 f3 c3 d3 eb3 f3 g3 a3 f3 g3 d3 eb3 f3 g3 a3 bb3 c4 d4 a3 f3 a3 d3 f3 eb3 d3, d4 ~ d5 ~ c5 ~ a5 ~ bb4 ~ g5 ~ a4 ~ f5 ~",
  O: "eb3 bb2 c3 d3 eb3 f3 g3 a3 bb3 f3 d3 f3 bb2 d3 c3 bb2 g3 eb3 g3 bb3 eb3 g3 f3 eb3 [f3,f4]@2 eb3@2 [f3,eb4]@2 f2@2, g4 ~ eb5 ~ f4 ~ d5 ~ eb4 ~ c5 ~@5", // F F7
  P: "bb5 a5 g5 f5 eb5 d5 c5 bb4 f5 eb5 d5 c5 bb4 a4 g4 f4 bb4 a4 g4 f4 eb4 d4 c4 d4 bb3 c4 d4 eb4 f4 g4 a4 bb4, bb2 ~ bb3 ~ a3 ~ a2 ~ g2 ~ g3 ~ f3 ~ d3 ~",
  Q: "g4 a4 bb4 c5 d5 eb5 f5 g5 bb4 c5 d5 eb5 f5 g5 a5 bb5 eb5 f5 eb5 d5 c5 d5 c5 bb4 a4 bb4 a4 g4 f4 g4 f4 eb4, eb3 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ eb3 ~ f3 ~ f2 ~",
  R: "[d4,f4,bb4,d5]@4 [d4,bb4,d5,f5]@4 [c5,gb5]@4 a2@2 [c5,gb5]@2 [bb4,g5]@4 [eb4,bb4]@4 [f3,bb4]@2 ab4 [ab4,bb4] [d3,ab4]@2 g4@2, bb2@2 ~@2 bb3@2 ~@2 a3@2 ~@6 g2@2 ~@2 g3@2 ~@2 d4@4 bb4 ~@3", // Bb Cdim Eb Eb5 Bb5 Absus2 Ddim
  S: "[eb4,g4]@4 [bb4,g5]@4 [bb4,f5]@4 [f4,d5]@3 c5 bb4@4 [eb3,c5]@3 d5 c5@4 [f2,d5]@3 eb5, eb3 ~ eb4 ~ d4 ~ bb3 ~ g4@4 a4@4, ~@8 g3 ~@3 f3 ~@3", // Eb Bb5 Dm Cm Dm
  T: "[bb4,d5]@4 bb3@2 d6@2 [e5,db6]@4 a2@2 d6@2 [d5,bb5]@4 d5@4 [f3,c6]@2 b5 [b5,c6] [d3,b5]@2 b5@2, bb2 ~@3 a3 ~@3 g2 ~ g3 ~ g5@4, ~@28 c6 ~@3", // Bb Dbm Gm F5 Cmaj7 G
  U: "[eb5,c6]@4 g5@4 [gb5,g5] ~@3 bb3@2 g5@2 [bb4,eb5]@4 [eb3,c5]@3 bb4 [f4,a4]@4 [f2,bb4]@3 c5, eb3 ~ eb4 ~ d5@3 ~@9, ~@4 d4 ~@3 g3 ~@3 f3 ~@3, ~@9 gb5@5 ~@18", // Cm Gmaj7 Eb5 Cm F Bb5
  V: "[db5,eb5] db5 [db5,eb5]!2 db5 [db5,eb5] c5 [db5,eb5] c5@4 f5@4 g2@2 ~@2 [eb5,f5] eb5 [eb5,f5] d5 f3@2 ~@2 d3@2 ~@2, bb2 ~ bb3 ~ a3 ~ a2 ~@3 g3 ~ d5@4", // Dbsus2 Ebsus2
  W: "eb3 ~@2 [f5,g5] [eb4,g5]@3 a5 bb5@4 [bb3,bb4]@3 a4 bb4@4 [eb3,c5]@3 d5 c5@4 [f2,d5]@3 eb5, ~@4 d4 ~@3 g3 ~@3 f3 ~@3", // Fsus2 Eb Bb Cm Dm
  X: "d5 f4@3 bb4 d5@3 c5 e5@3 f5 f4@3 bb4 d4@3 g4 bb4@3 d5 f4@3 bb4 d5@3, bb2 ~ bb3 ~ a3 ~ a2 ~ g2 ~ g3 ~ f3 ~ d3 ~",
  Y: "g5 bb4@3 eb5 g5@3 bb5 f5@3 g5 d5@3 eb5 bb4@3 c5 g4@3 a4 eb4@3 f4 c4@3, eb3 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ eb3 ~ f3 ~ f2 ~",
  Z: "d5 bb4 ~ c5 d5 c5 ~ bb4 f5 f4 ~ g4 a4 g4 ~ f4 bb4 g4 ~ a4 bb4 a4 ~ g4 d5 bb4 ~ c5 d5 eb5 ~ f5, bb2 ~ bb3 ~ a3 ~ a2 ~ g2 ~ g3 ~ f3 ~ d3 ~",
  AA: "g5 c5 ~ d5 eb5 d5 ~ c5 f5 g5 ~ a5 bb5 c6 ~ d6 eb5 f5 ~ g5 c5 d5 ~ eb5 a4 bb4 ~ c5 f4 c5 ~ eb5, eb3 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ eb3 ~ f3 ~ f2 ~",
  AB: "bb2 bb3 ~ c4 d4 c4 ~ bb3 a3 f3 ~ g3 a3 g3 ~ f3 g2 g3 ~ a3 bb3 a3 ~ g3 f3 d3 ~ eb3 f3 eb3 ~ d3, [f4,bb4,d5] ~ [f4,bb4,d5] ~ [f4,c5] ~ [f4,f5] ~ [d4,bb4] ~ [g4,bb4] ~ [d4,a4] ~ [d4,d5] ~", // Bb F5 F Gm D5 D
  AC: "eb2 eb3 ~ f3 g3 f3 ~ eb3 d3 c3 ~ bb2 bb3 c4 ~ d4 g3 a3 ~ bb3 eb3 f3 ~ g3 f3 g3 ~ eb3 f3 eb3 ~ f3, [bb3,g4] ~ [bb4,eb5] ~ [bb4,f5] ~ [f4,d5] ~ [bb4,eb5] ~ [bb4,g5] ~ [bb4,c5] ~ [a4,eb5] ~", // Eb Eb5 Bb5 Dm Eb5 Eb Bbsus2 Adim
  AD: "[bb3,d5] [d4,f5] ~ [c4,eb5] d5 [a3,c5] ~ [g3,bb4] c5 [bb3,d5] ~ [c4,eb5] [a3,f5] [g3,g5] ~ [f3,a5] [g3,bb5] [bb3,d5] ~ [c4,c5] [d4,bb4] [c4,a4] ~ [bb3,g4] [f4,d5] [eb4,eb5] ~ [d4,f5] [d4,bb4] [c4,c5] ~ [bb3,d5], bb2 ~ bb3 ~ a3 ~ a2@2 g2 ~ g3 ~ f3 ~ d3 ~", // Bb Dm Cm Am Gm Bb Cm Dm …
  AE: "[eb4,g4] [f4,a4] ~ [g4,bb4] c5 [d4,d5] ~ [c4,eb5] f5 [eb4,g5] ~ [f4,a5] [d4,bb5] [c4,c6] ~ [bb3,d6] bb4 c5 ~ d5 eb5 f5 ~ g5 [bb3,c5] [a3,d5] ~ [g3,eb5] a4 bb4 ~ c5, eb3 ~ eb4 ~ d4 ~ bb3 ~ eb4@2 eb3 ~ f3 ~ f3@2, ~@8 g3 ~ bb3@2 ~@2 f2 ~", // Eb F Gm D Cm Eb F Gm …
  AF: "d4 d5 bb4 d5 f4 d5 bb4 d5 f4 f5 c5 f5 f4 f5 c5 f5 g4 d5 bb4 d5 g4 d5 bb4 d5 f4 d5 bb4 d5 f4 d5 bb4 d5, bb2 ~ bb3 ~ a3 ~ a2 ~ g2 ~ g3 ~ f3 ~ d3 ~",
  AG: "g4 g5 eb5 g5 bb4 g5 eb5 g5 bb4 bb5 f5 bb5 d5 bb5 f5 bb5 eb5 bb5 g5 bb5 bb4 bb5 g5 bb5 d5 bb5 f5 bb5 c5 a5 eb5 a5, eb3 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ eb3 ~ f3 ~ f2 ~",
  AH: "[bb3,d5,f5,bb5]@2 [bb3,bb4,d5,f5]@2 a3 ~ a2 ~ g2 ~ g3 ~ f3 ~ d3 ~, bb2 ~@3 [f4,a4,c5,f5]@4 [g4,bb4,d5]@4 [f4,bb4,d5,f5]@4", // Bb F Gm Bb
  AI: "[eb3@2 ~@2 eb4@2 ~@2 d4@2 ~@2 bb3@2 ~@2 g3@2 ~@2 eb3@2 ~@3 bb4@6 f2@4 eb4@4 [bb2,d4,f4,bb4]@25, [bb4,eb5,g5]@8 [bb4,d5,f5,bb5]@8 [g4,bb4,eb5]@9 c5@14 ~@25, ~@25 f4@10 ~@29, ~@25 f3@3 ~@3 a4@8 ~@25]/2", // Bb Eb Bb Eb
  AJ: "[~@12 [a2,c5,gb5]@12 ~@5 [g3,bb4,d5,g5]@6 [f3,a4]@7 ~@8 c5@11 [d3,gb4,a4,d5]@27 ~@8, ~@35 d5@15 ~@46, ~@42 [eb3,g4,bb4]@19 ~@35]/3", // Gbdim Gm F D Eb
})).s("gm_church_organ").gain(0.45)

// other · cello · "Violoncello"
const cello = note(`<
  ~@2 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C A C A B A B A B A B A B A B A B A B A B A D@2
  ~@3
>`.pickRestart({
  A: "bb2 ~ bb3 ~ a3 ~ a2 ~ g2 ~ g3 ~ f3 ~ d3 ~", B: "eb3 ~ eb4 ~ d4 ~ bb3 ~ g3 ~ eb3 ~ f3 ~ f2 ~",
  C: "eb3 ~@3 eb4@2 ~@2 d4@2 ~@2 bb3@2 ~@2 g3@2 ~@2 eb3@2 ~@2 f3@2 ~@2 f2@2 ~@2",
  D: "[eb3@2 ~@2 eb4@2 ~@2 d4@2 ~@2 bb3@2 ~@2 g3@2 ~@2 eb3@2 ~@3 f3@3 ~@3 f2@4 ~@4 bb2@25]/2",
})).s("gm_cello").gain(0.15)

// bass · contrabass
const bass = note(`<
  ~@2 A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A B A C A C A B A B A B A B A B A B A B A B A B A D@2
  ~@3
>`.pickRestart({
  A: "bb1 ~ bb2 ~ a2 ~ a1 ~ g1 ~ g2 ~ f2 ~ d2 ~", B: "eb2 ~ eb3 ~ d3 ~ bb2 ~ g2 ~ eb2 ~ f2 ~ f1 ~",
  C: "eb2 ~@3 eb3@2 ~@2 d3@2 ~@2 bb2@2 ~@2 g2@2 ~@2 eb2@2 ~@2 f2@2 ~@2 f1@2 ~@2",
  D: "[eb2@2 ~@2 eb3@2 ~@2 d3@2 ~@2 bb2@2 ~@2 g2@2 ~@2 eb2@2 ~@3 f2@3 ~@3 f1@4 ~@4 bb1@25]/2",
})).s("gm_contrabass").gain(0.15)

stack(tremolo_strings, church_organ, cello, bass)