Strudelify

Brian Boru s March

Turlough O'Carolan

KeyA minorTempo100 bpm
0:00/0:00
// Brian Boru s March — Turlough O'Carolan
// 100 bpm, 6/8, key A minor. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (1/4 at bar 1, 6/8 at bar 1) are rendered on a constant 6/8 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/5676635; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 58 bars on a 24-step grid, each part at one level. Source detail keeps the original performance.
setcpm(100/3)

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

// other · string ensemble 1 · "Violins"
const string_ensemble_1 = note("<~@33 A@2 B@2 A C D E A@2 B@2 A C D E ~@9>".pickRestart({
  A: "c5@3 b4 a4@2 [e5,a5]@4 a5@2", B: "b4@3 a4 g4@2 [d5,g5]@4 g5@2", C: "c5@3 b4 a4@2 [e5,a5]@6",
  D: "a4 c5 d5 [c5,e5]@2 d5", E: "c5@3 b4 a4@2 [e4,a4]@4 ~@2",
})).s("gm_string_ensemble_1").gain(0.23)

// chords · accordion
const accordion = note(`<
  A B C D E B F G B@2 C D E B F G F H I J K H I G F H I J K H I G F L@2 M@2 L N O P L@2 M@2 L N O P Q@2 R@2 Q S G T U
>`.pickRestart({
  A: "~@4 e5 d5", B: "c5@3 b4 [a3,c4,e4] ~ a4@2 e5@2 [a3,c4,e4] ~, a2 ~@3 a4@2 e2 ~@3 d5@2",
  C: "c5@3 b4 [a3,c4,e4] ~ a4@2 d5@2 [a3,c4,e4] ~, a2 ~@3 a4@2 e2 ~@3 c5@2", // Am
  D: "b4@3 a4 [g3,b3,d4] ~ g4@2 d5@2 [g3,b3,d4] ~, g2 ~@3 g4@2 d2 ~@3 c5@2", // G
  E: "b4@3 a4 [g3,b3,d4] ~ g4@2 e5@2 [g3,b3,d4] ~, g2 ~@3 g4@2 d2 ~@3 d5@2", // G
  F: "c5@3 b4 [a3,c4,e4] ~ e2 ~@3 [a3,c4,e4] ~, a2 ~@3 a4@2 a4@6", // Am
  G: "a4@2 c5@2 [f3,a3,c4] ~ e5@4 [f3,a3,c4] ~, f2 ~@3 d5@2 c2 ~@3 d5@2", H: "a4 c5 d5 e5@2 d5, a2 ~@5 e2 ~@5",
  I: "e5@2 d5 e5@2 d5, e2 ~@5 b2 ~@5", J: "g4 a4 b4 d5@2 b4, g2 ~@5 d2 ~@5", K: "d5@2 b4 d5@2 b4, g2 ~@5 a2 ~@5",
  L: "c5@3 b4 [a3,c4,e4] ~ [e5,a5]@4 [a3,c4,e4] ~, a2 ~@3 a4@2 e2 ~@3 a5@2", // Am A5 Am
  M: "b4@3 a4 [g3,b3,d4] ~ [d5,g5]@4 [d4,f#4,a4] ~, g2 ~@3 g4@2 d2 ~@3 g5@2", // G G5 D
  N: "c5@3 b4 [a3,c4,e4] ~ e2 ~@3 [a3,c4,e4] ~, a2 ~@3 a4@2 [e5,a5]@6", // Am A5
  O: "a4@2 c5@2 [f3,a3,c4] ~ [c5,e5]@4 [f3,a3,c4] ~, f2 ~@3 d5@2 c2 ~@3 d5@2", // F C F
  P: "c5@3 b4 [a3,c4,e4] ~ [e4,a4]@4 [a3,c4,e4] ~, a2 ~@3 a4@2 e2 ~@5", // Am A5 Am
  Q: "c5@3 b4 [a3,c4,e4] ~ a5@4 [a3,c4,e4] ~, a2 ~@3 a4@2 e2 ~@3 a5@2", // Am
  R: "b4@3 a4 [g3,b3,d4] ~ g5@4 [d4,f#4,a4] ~, g2 ~@3 g4@2 d2 ~@3 g5@2", // G D
  S: "c5@3 b4 [a3,c4,e4] ~ e2 ~@3 [a3,c4,e4] ~, a2 ~@3 a4@2 a5@6", // Am
  T: "c5@3 b4 [a3,c4,e4] ~ [a2,a3,c4,e4] ~@5, a2 ~@3 a4@2 a4@2 ~@4", U: "[a2,a3,c4,e4,a4]",
})).s("gm_accordion").gain(0.3)

stack(string_ensemble_1, accordion)

More by Turlough O'Carolan