Strudelify

Double Bass Concerto No.5 in G major

Domenico Dragonetti

KeyG majorTempo50 bpm
0:00/0:00
// Double Bass Concerto No.5 in G major — Domenico Dragonetti
// 50 bpm, 3/4, key G major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: ch 1 "Double Bass" named as a bass, played on acoustic bass (its contrabass patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/5465738; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 48 bars on a 48-step grid, each part at one level; ghost notes are separate "_soft" parts. Source detail keeps the original performance.
setcpm(50/3)

// 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.

// bass · acoustic bass · "Double Bass"
const bass = note(`<
  A B C D E F G H I@2 J K L M N O P@2 Q R S@2 T U V W@2 X Y Z AA AB A B C D E F G H I@2 J K L M N O
>`.pickRestart({
  A: "e3@3 f3 d3@4 ~@4", B: "d3 c3@2 b2@2 c3@3 e3@3 d3@2 c3@3 b2@16 ~@12 g2@4",
  C: "a2@16 g2@8 e3@8 ~@4 d3 c3 ~ b2 d3@3 c3@2 a2@3", D: "g2@4 ~ a2 f2 g2 e2@8 ~@6 c#3@2",
  E: "d3@12 e3@4 g3 f3@23 ~@2 g2@2 a2@2 b2@2", F: "c3@12 d3@4 f3 e3@23 ~@4 g3@4",
  G: "f#3@22 e3@2 e3 d3@5 c3@2 c3 b2@5 a2@2 a2 g2@5 f#2@2", H: "g2@8 ~ a2 b2 c3 ~ d3 e3 f#3 g3@16 ~@16",
  I: "[d3@24 d3@8 e3@8 g3@14 f3@2 f3 e3@5 d3@2 d3@8 d3@8 e3@8 g3@8]/2",
  J: "g3@6 f3@2 f3 e3@5 d3@2 d3@12 d3@4 f3 e3@3 d3@4 e3@4 c3@4", K: "d3@4 ~ c3 b2 a2 g2@4 ~ b2 a2 g2 a2@4 b2@4",
  L: "c3@20 e3@4 d3@4 c3@4 b2@4 g2 a2 g2 a2 a2@4 b2@4", M: "c3@2 e3@2 g3@8 f3 e3 d3 c3!2 b2 a2 g2 a2@2 b2@2",
  N: "d3 c3@2 b2@2 c3@3 d3@3 e3@2 f3@3 g3@12 e3@4 g3 f3@3 e3@4 f3@4 b2@4",
  O: "d3@16 ~@3 g#2@2 g2@3 a2@3 g2@2 b2@3 d3 c3@15", P: "a2@16 ~@8 b2@3 c3@2 d3@3 c3@3 b2@2 a2@3 g#2@3 a2@2 b2@3",
  Q: "a2 ~ a3@3 g3", R: "g3@3 f3 e3@4 ~@4", S: "e3@4 e2@4 e3@8 d#3@3 e3 f#3@3 d#3",
  T: "e3@6 b2@2 c#3@6 a#2@2 b2@12 g#2@4 b2 a2@5 g#2@2 a2@6 f#2@2", U: "e2 e3 ~",
  V: "d2@3 f3@2 e3@3 f3@3 e3@2 d3@3 c3@3 b2@2 d3@3 c3@3 b2@2 a2@3 g#2@3 a2@2 b2@3 e2@3 f2@2 g#2@3",
  W: "[a2@3 g#2@2 a2@3 b2@3 a2@2 b2@3 c3@3 b2@2 c3@3 d3@3 c3@2 d3@3 e3@3 d#3@2 e3@3 a3@3 g#3@2 a3@7 g#3@8 f3@8 e3@8 f3@8 e3@8 d3@4]/2",
  X: "d3@8 d3 c3@5 b2@2 b2@16 ~@12 f2@2 e2@2",
  Y: "d2@3 f2@2 e2@3 d2@3 f2@2 e2@3 d2@3 a2@2 g#2@3 a2@3 d3@2 c#3@3 d3@3 f3@2 e3@3 f3@3 d3@2 c3@3",
  Z: "b2@3 g2@2 a2@3 b2@3 a2@2 g2@3 c3@3 b2@2 c3@3 e3@3 d#3@2 e3@3 g3@8 ~@8", AA: "e3@28 d3@4 d3 c3@11 b2@4",
  AB: "a2 a1 ~",
})).s("gm_acoustic_bass").gain(0.2)

// chords · piano
const piano = note(`<
  A B C D E F G H I J K L M N O P ~@4 Q@2 R S T U V W X Y Z AA A B C D E F G H I J K L M N O P
>`.pickRestart({
  A: "c4 e4 g4 c5 b3 d4 g4 b4 b3 d4 g4 b4, c3@15 ~ g2@30 ~@2",
  B: "a3 c4 e4 a4 g#3 b3 e4 g#4 g3 c4 e4 g4, a2@15 ~ e2@30 ~@2",
  C: "a3 c4 f4 a4 g3 c4 e4 g4 g3 c4 e4 g4, f2@15 ~ e2@15 ~ [c2,c3]@15 ~", // C
  D: "g3 d4 f4 g4 g3 c4 e4 g4 g3 a#3 c#4 g4, b2@15 ~ c3@15 ~ e3@15 ~",
  E: "a3 d4 f4 a4 a3 d4 f4 a4 b3 d4 f4 g4, f3@15 ~ d3@15 ~ g3@15 ~",
  F: "c4 e4 g4 e4 c4 e4 g4 c5 g3 c4 e4 g4, e3@15 ~ c3@30 ~@2", G: "a3 c4 d4 f#4 a3 c4 d4 f#4 a3 c4 e4 f#4, d3@23 ~",
  H: "g3 b3 d4 g4 b4 g4 d4 b3 [g2,g3]@2 ~@2, g2@5 ~@3", I: "g3 b3 d4 g4 b4 a4 b4 g4 c5 g4 e4 g4, g2@23 ~",
  J: "d4 g4 b3 d4 g3 a3 b3 g3 c4 d4 e4 c4, g2@23 ~", K: "d4 g4 b3 d4 g3 a3 b3 g3 c4 b3 c4 e4, g2@23 ~",
  L: "f4 e4 d4 c4 b3 d4 g4 g3 f#4 g3 f4 g3, g2@23 ~", M: "e4 g3 c4 g3 g4 g3 e4 g3 d4 g3 f4 g3, c3@23 ~",
  N: "e4 g3 g4 g3 e4 g3 c4 g3 d4 g3 f4 g3, c3@23 ~", O: "e4 g3 g4 g3 e4 g3 d4 g3 b3 g3 d4 g3, c2@15 ~ e2@15 ~ g2@15 ~",
  P: "c3@15 ~ g2@15 ~ [c2,g3,c4,e4]@15 ~, [g3,b3,d4,f4]@5 ~@3", Q: "[e3,b3,e4,g#4]!4 [e3,b3,d#4,f#4,a4]!2",
  R: "[e3,b3,e4,g#4]@3 g#3 a3@3 c#4 b3@3 g#4 e4@3 b4 f#4@3 f4 f#4@3 d#4, ~@8 b2@15 ~", // E
  S: "[e3,e4]@15 ~ [e2,e3,e4,g#4,b4,e5]@15 ~@17", T: "[d3,d4,f4,a4]!4 [d3,b3,e4,g#4]!2",
  U: "[c3,e4,a4] [b2,e4,g#4,b4] [e4,a4,c5] [b4,d5] [c5,e5] [c4,e5], ~@16 a2@15 ~@17", // Am E Am Bm C
  V: "[b3,d5] [a3,c5] [g#3,b4] [a3,c5] [g#3,b4] g#2, ~@10 b4 ~", // Bm Am G#m Am G#m
  W: "[a2,b4]@8 b4 a4@5 g#4@2 [e3,g#4]@15 ~@17, ~ c3 ~@4", X: "~@5 [f3,d4,a4,d5]",
  Y: "[f3,d4,g4,b4]@8 [f3,d4,g4,b4]@8 [e3,c4,g4,c5]@15 ~@17", // G7 C
  Z: "~@8 e2@8 e3@12 b4@4 b4 a4@11 g#4@4, c5@27 ~@5 e3@15 ~", AA: "[a3,a4]@15 ~ a2@15 ~@17",
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes · Am Bdim Am E7 Am Bdim Am E7 …
const piano_soft = note(`<
  ~@16
  [[a2,e4,a4,c5]@15 ~@9 [d3,d4,f4,b4]@8 [e3,c4,e4,a4]@8 [e2,b3,d4,g#4]@8]
  [[a2,c4,e4,a4]@15 ~@9 [d3,d4,f4,b4]@8 [e3,c4,e4,a4]@8 [e2,b3,d4,g#4]@8]
  [[a2,c4,e4,a4]@15 ~@9 [a2,c#4]@8 [b2,d4]@8 [c#3,e4,g4]@8, ~@8 a4@5 ~@3]
  [[d3,e4,g4]@8 ~@4 [d4,f4]@4 [a3,c4,e4]@15 ~@17, ~ f3 ~@4]
  ~@8
  [[f3,d4,a4,d5]!5 ~]
  ~@19
>`).s("gm_piano").gain(0.2)

stack(bass, piano, piano_soft)

More by Domenico Dragonetti