Strudelify

Beautiful World

Herman Martin

KeyE majorTempo75 bpm
0:00/0:00
// Beautiful World — Herman Martin
// 75 bpm, 4/4, key E major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Tempo changes preserved in elapsed time; displayed bars use the dominant tempo.
// note: Transcription provider: pdmx. https://musescore.com/score/5836578; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 28 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(75/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 · oboe
const oboe = note("<~@10 A B C D E B F G H ~@9>".pickRestart({
  A: "~@6 e4 f#4", B: "g#4 c#5", C: "b4@4 g#4@2 g#4 f#4", D: "e4@3 f#4", E: "g#4@3 f#4", F: "d#5 b4", G: "c#5 a4",
  H: "b4",
})).s("gm_oboe").gain(0.3)

// chords · piano
const piano = note("<~ A B C D E F C G E H I J K L I J K M N O P Q R O S@3>".pickRestart({
  A: "~@3 [b3,e4,g#4], e2@15 ~, [b3,e4,g#4]!3 ~, ~ e3@2 e3@2 e3@2 ~", // E
  B: "~@6 e5 [f#4,f#5], e2@15 ~, [b3,e4,g#4]!4, ~ e3@2 e3@2 e3@2 ~", // F# E
  C: "~@3 [b3,e4,g#4], g#5 [b4,b5], [b3,e4,g#4]!3 ~, ~ e3@2 e3@2 e3@2 ~", // E B E
  D: "~@7 [g#4,g#5], [a4,a5]@4 [f#4,f#5]@3 ~, [b3,d4,e4]!4, ~ e3@2 e3@2 e3@2 ~", // G# A F# E7
  E: "~@7 [f#4,f#5], [a4,a5]@4 e5@3 ~, [a3,c#4,e4]!4, ~ a2@2 a2@2 a2@2 ~", // F# A
  F: "~@6 e5 [f#4,f#5], g#5@11 ~@5, [b3,e4,g#4]!4, ~ e3@2 e3@2 e3@2 ~", // F# E
  G: "~@3 [b3,d4,e4], [c#5,c#6] [b4,b5], [b3,d4,e4]!3 ~, ~ e3@2 e3@2 e3@2 ~", // E7 C# B E7
  H: "~@3 [b3,e4,g#4], [e2,g#5]@15 ~, [b3,e4,g#4]!3 ~, ~ e3@2 e3@2 e3@2 ~", // E
  I: "~@3 [c#4,e4,g#4], c#2@15 ~, [c#4,e4,g#4]!3 ~, ~ c#3@2 c#3@2 c#3@2 ~", // C#m
  J: "~@7 f#4, g#2@15 ~, [b3,d#4,g#4]!4, ~ g#3@2 g#3@2 g#3@2 ~", K: "a3!6 [a3,c#4,e4]@2, a2@15 ~, [c#4,e4]!3 ~",
  L: "~@7 d#3, e2@15 ~, [b3,e4,g#4]!4, ~ e3@2 e3@2 e3@2 ~", M: "b3!6 b5 e6, b2@15 ~, [d#4,f#4]!3 [b3,d#4,f#4]",
  N: "g#6 e6 f#6 d6, [e2,e3,e5]!2", O: "c#6@2 a5@2 [b4,e5]@2 ~ e5, [e2,e3,a4] [e2,e3,e4], ~@3 b4",
  P: "f#5 d5 [a4,c#5] a4, [e2,e3,a4] [e2,e3]", Q: "[e4,g#4]@11 ~ b5@2 e6@2, [e2,e3]@15 ~",
  R: "g#6@2 ~ b1 f#6@2 d6@2, e5 ~, e2@3 ~ [e2,e3,e5]@4, ~ e6 ~@2", // E
  S: "[f#5@4 d5@4 ~ [a4,c#5]@5 a4@5 [e2,e3,g#4,b4,e5]@19 ~@10, [e2,e3,a4]@8 ~ [e2,e3]@9 ~@30]/3", // A E A5 E
})).s("gm_piano").gain(0.3)

// other · string ensemble 1 · "Viola"
const string_ensemble_1 = note("<A@4 B C A@2 B C D E F E D E F E G H@6 I@3>".pickRestart({
  A: "e4", B: "d4", C: "c#4", D: "g#3", E: "e3", F: "d#3", G: "f#3", H: "b3", I: "[b3@19 b3@20 ~@9]/3",
})).s("gm_string_ensemble_1").gain(0.15)

// other · string ensemble 1 · "Violoncello"
const string_ensemble_1_2 = note("<A@4 B C A@2 B C A D E C A D E C B F@6 G@3>".pickRestart({
  A: "e3", B: "b2", C: "a2", D: "c#3", E: "g#2", F: "e2", G: "[e2@19 e2@20 ~@9]/3",
})).s("gm_string_ensemble_1").gain(0.15)

stack(oboe, piano, string_ensemble_1, string_ensemble_1_2)