Strudelify

Air 'on the G string' Orchestral Suite No. 3 in D major BWV 1068

J. S. Bach

KeyD majorTempo60 bpm
0:00/0:00
// Air 'on the G string' Orchestral Suite No. 3 in D major BWV 1068 — J.S. Bach
// 60 bpm, 4/4, key D major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: sustain pedal (CC 64) lengthens the held notes
// note: Transcription provider: pdmx. https://musescore.com/score/4818780; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 48 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(60/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [c3,e3] is a chord · "a, b" plays two voices at once.
// A part's distinct bars are riffs (A, B, C...) played in order: edit a riff to change every repeat.

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M B C D N F G H I O K L P Q F G R S T B U V W X Y Z AA G AB AC AD AE AF AG AH AI
>`.pickRestart({
  A: "~@10 c#4 f#4, [d2,d3]@9 a3@2 ~, a3@6 a3@6 [c#2,c#3]@11 ~, ~ d4@3 d4@7 ~, ~@2 f#4@3 f#4 a3 c#4 f#4@3 ~", // D C#
  B: "~@5 f#4 a3 d4 f#4 a3 d4 f#4, [b1,b2]@12 [a1,a2]@11 ~, b3!2 ~@2, ~ d4@3 d4@2 ~@6, ~@2 f#4@3 ~@7", // B A
  C: "~@5 g4 b3 d4 g#4 b3 d4 g#4, [g1,g2]@12 [g#1,g#2]@11 ~, b3!2 ~@2, ~ d4@3 d4@2 ~@6, ~@2 g4@3 ~@7", // G G#
  D: "~@5 a4 c#4 e4 g4 c#4 e4 g4, [a1,a2]@12 [g1,g2]@11 ~, c#4!2 ~@2, ~ e4@3 e4@2 ~@6, ~@2 a4@3 ~@7", // A G
  E: "~@9 c4 e4 a4, [f#1,f#2]@4 a4 ~, c4@6 c4@6 [e2,e3]@11 ~, ~ f#4@3 f#4@6 ~@2, ~@2 a4@3 a4 c4 e4@3 ~@2", // F# E
  F: "~@5 b4 d#4 f#4 a4 d#4 f#4 a4, [d#2,d#3]@12 [b1,b2]@11 ~, d#4!2 ~@2, ~ f#4@3 f#4@2 ~@6, ~@2 b4@3 ~@7", // D# B
  G: "~@5 g4 b3 d4 g4 b3 d4 g4, [e2,e3]@12 [d2,d3]@11 ~, b3!2 ~@2, ~ e4@3 e4@2 ~@6, ~@2 g4@3 ~@7", // E D
  H: "~@5 a4 c#4 e4 g4 c#4 e4 g4, [c#2,c#3]@12 [a1,a2]@11 ~, c#4!2 ~@2, ~ e4@3 e4@2 ~@6, ~@2 a4@3 ~@7", // C# A
  I: "~@8 f#4 a3 c#4 e4, [d2,d3]@3 ~, a3!2 [c#2,c#3,a3] [c#2,c#3], ~ d4@3 d4@5 ~@3, ~@2 f#4@3 f#4@2 c#4@2 ~@3", // D F#m C#
  J: "~@10 d4 e4, [b1,b2]@9 b3@2 ~, b3@6 b3@6 [e2,e3]@11 ~, ~ d4@3 d4@2 b3 d4 e4@3 ~, ~@2 f#4@3 f#4@6 ~", // B E
  K: "~@5 e4 b3 d4 e4 b3 d4 e4, [a1,a2] ~, a3@6 [d2,d3,a3]@6 [e2,e3]@11 ~, ~ c#4@5 ~@6, ~ e4 d4 ~@3", // A D5 E
  L: "~@5 e4 g3 c#4 e4 g3 c#4 e4, [a1,a2]@12 [a1,a2]@11 ~, a3!2 ~@2, ~ c#4@3 c#4@2 ~@6, ~@2 e4@3 ~@7", // A
  M: "~@5 f#4 a3 c#4 f#4 a3 c#4 f#4, [d2,d3]@12 [c#2,c#3]@11 ~, a3!2 ~@2, ~ d4@3 d4@2 ~@6, ~@2 f#4@3 ~@7", // D C#
  N: "~@5 a4 c4 e4 a4 c4 e4 a4, [f#1,f#2]@12 [e2,e3]@11 ~, c4!2 ~@2, ~ f#4@3 f#4@2 ~@6, ~@2 a4@3 ~@7", // F# E
  O: "~@5 f#4 b3 d4 e4 b3 d4 e4, [b1,b2]@12 [e2,e3]@11 ~, b3!2 ~@2, ~ d4@3 d4@2 ~@6, ~@2 f#4@3 ~@7", // B E
  P: "~@5 e4 g3 c#4 e4 g3 c#4 e4, [a1,a2]@12 [g1,g2]@11 ~, a3!2 ~@2, ~ c#4@3 c#4@2 ~@6, ~@2 e4@3 ~@7", // A G
  Q: "~@5 a4 c4 f#4 a4 c4 f#4 a4, [f#2,f#3]@12 [e2,e3]@11 ~, c4!2 ~@2, ~ e4@3 e4@2 ~@6, ~@2 a4@3 ~@7", // F# E
  R: "~@9 b3 e4 g4, [c#2,c#3]@4 g4 ~, c#4@3 c#4@7 ~@2, ~@2 e4@6 e4@4 [b1,b2]@11 ~, ~@2 g4@3 g4 b3 e4@3 ~@2", // C# B
  S: "~@9 a#3 c#4 e4, [a#1,a#2,a#3]@7 e4 g4 [a#1,a#2]@3, ~ c#4@3 c#4 g4 [c#2,c#3,c#4]@4 ~@2, ~ f#4@4 ~, ~@3 [b1,b2,b3]@7 ~@2", // A# C# B
  T: "~@8 c#4 a#3 d4 f#4, [b1,b2,b3]@3 g3 c#4 e4 [e2,e3] g3@2 ~@3, ~ d4@8 ~@3, ~@2 f#4@7 ~@3, ~ [g1,g2]@2 [f#2,f#3]", // B E G F#
  U: "~@9 a3 d4 f#4, [g#2,g#3]@4 f#4 ~, b3@3 b3@7 ~@2, ~@2 d4@6 d4@4 [f#2,f#3]@11 ~, ~@2 f#4@3 f#4 a3 d4@3 ~@2", // G# F#
  V: "~@9 d4 g#4 b4, [e2,e3]@4 b4 ~, e4@3 e4@7 ~@2, ~@2 g#4@6 g#4@4 [d2,d3]@11 ~, ~@2 b4@3 b4 d4 g#4@3 ~@2", // E D
  W: "~@9 b3 d4 g#4, [c#2,c#3]@6 [d2,d3,a3] d4 f#4 [e2,e3]@3, c#4@3 c#4@7 ~@2, ~ e4@3 e4@6 ~@2, ~@2 a4@3 a4@5 ~@2", // C# D5 E
  X: "~@9 g3 c#4 g4, [a1,a2]@6 g3 c#4 g4@2 ~@2, c#4@6 c#4@6 [g1,g2]@11 ~, ~ e4@3 e4@6 ~@2, ~@2 a4@3 a4@5 ~@2", // A G
  Y: "~@5 f#4 g3 d4 f#4 g3 d4 f#4, [f#1,f#2]@12 [g1,g2]@11 ~, a3!2 ~@2, ~ d4@3 d4@2 ~@6, ~@2 f#4@3 ~@7", // F# G
  Z: "~@5 f#4 a3 c#4 g4 a3 c#4 g4, [g#1,g#2]@12 [a1,a2]@11 ~, g#3!2 ~@2, ~ b3@3 b3@2 ~@6, ~@2 f#4@3 ~@7", // G# A
  AA: "~@5 f#4 a3 d#4 f#4 a3 d#4 f#4, [a#1,a#2]@12 [b1,b2]@11 ~, a#3!2 ~@2, ~ e4@3 e4@2 ~@6, ~@2 f#4@3 ~@7", // A# B
  AB: "~@5 e4 a3 c#4 e4 a3 c#4 e4, [c#2,c#3]@12 [a1,a2]@11 ~, g3!2 ~@2, ~ c#4@3 c#4@2 ~@6, ~@2 e4@3 ~@7", // C# A
  AC: "~@5 f#4 a3 c4 f#4 a3 c4 f#4, [d2,d3]@12 [c2,c3]@11 ~, a3!2 ~@2, ~ d4@3 d4@2 ~@6, ~@2 f#4@3 ~@7", // D C
  AD: "~@5 e4 a3 c4 f#4 a3 c4 f#4, [b1,b2]@12 [a1,a2]@11 ~, b3!2 ~@2, ~ d4@3 d4@2 ~@6, ~@2 e4@3 ~@7", // B A
  AE: "~@5 g4 g3 d4 f#4 g3 d4 f#4, g2@12 [f#2,f#3]@11 ~, g3!2 ~@2, ~ b3@3 b3@2 ~@6, ~@2 g4@3 ~@7", // F#
  AF: "~@5 e4 g3 b3 e4 g3 b3 e4, [e2,e3]@12 [d2,d3]@11 ~, g3!2 ~@2, ~ c#4@3 c#4@2 ~@6, ~@2 e4@3 ~@7", // E D
  AG: "~@8 f#4 g3 b3 e4, [c#2,c#3]@7 d4@2 ~@3, a3!2 [d2,d3,a3] [c#2,c#3], ~ c#4@3 c#4@5 ~@3, ~@2 e4@3 e4@4 ~@3", // C# D5 C#
  AH: "~@5 e4 g3 c#4 e4 g3 c#4 e4, [a1,a2]@2 c#4 ~@3, a3@6 [g1,g2,a3]@6 [a1,a2]@11 ~, ~ d4@5 ~@6, ~ f#4@2 ~@3", // A Gsus2 A
  AI: "[d2,d3,a3,d4,f#4]@23 ~", // D
})).s("gm_piano").gain(0.3)

stack(piano)

More by J. S. Bach