Strudelify

minecraft - living mice

C418

KeyA minorTempo75 bpm
0:00/0:00
// minecraft - living mice — C418
// 75 bpm, 4/4, key A minor. 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/5863704; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 46 bars on a 16-step grid, each part at one level; ghost notes are separate "_soft" parts. 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.
// 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(`<
  ~@2 A B C D E F G H I J K L M N K O M P Q R S T U V S W X Y Z AA X Y Z AA AB AC AB AD ~@6
>`.pickRestart({
  A: "~@5 e4@3, g3, ~ a3@7, ~@2 e4@3 ~@3, ~@3 c4@5", B: "~@3 c4@5, g3, ~ a3@7, ~ e4@3",
  C: "~@3 b4, [g3,a4], ~ a3@7, ~@2 e4@3 [e4,c5]@3, ~@3 c4@5", D: "~@3 [c4,d5]@5, [e3,g4], ~ [a3,a4]@7, ~ e4@3",
  E: "~@3 d5, [g3,a4], ~ a3@7, ~@2 e4@3 [e4,e5]@3, ~@3 c4@5", F: "~@3 [c4,c5]@5, [g3,a4], ~ [a3,e5]@7, ~ e4@3",
  G: "~@7 d5, d3@5 e4 c5@2, c5 e5@3, ~ a3@7, ~ d5 e4 c4@5", H: "~@3 e4, [d3,a4], ~ a3@7, ~ e4@2 ~, ~@3 c4@5",
  I: "~@3 g5, d3@5 e4@3, g5@2 e4 [c4,c5]@5, ~ a3@7, ~ e5@3", J: "~@3 e4, [d3,d5], ~ [a3,a4]@7, ~ e4@2 ~, ~@3 c4@5",
  K: "~@2 e4 ~@4 c3, [a2,g3]@10 [e4,c5] a4 b4@4, [a4,c5]@3 c4@5, ~ a3@7, ~@3 b4@3 e4@2 g4@8", // A7 C Am
  L: "~@2 e4 ~@4 c3, [a2,g3,g4,b4], ~ [a3,a4]@7, ~@3 [c4,e4,d5]@5", // Em A C
  M: "~@3 a4@2 ~@2 c3, [a2,g3]@11 a4 [c5,d5]@4, c5@5 [e4,e5]@3, a4@3 e5 e4@2 c4@10, ~ a3@7", // A7 Csus2 E
  N: "~@3 [c4,a4,c5]@5, [a2,g3,d5], a4@3 ~@5, ~ [a3,e5]@7, ~ e4@3", // F Dsus4 A5
  O: "~@2 e4 ~@4 c3, [a2,g3,g4,b4], ~ a3@7, ~@3 a4@13, ~@3 [c4,e4,d5]@5", // Em C
  P: "~@3 [c4,g4,c5]@5, [a2,g3,d4,d5], b4 [e4,b4]@3, ~ [a3,e5]@7", // C5 Dsus4 E5 A5
  Q: "~ e4 ~@5 c3, [f2,g3,d4]@3 c5, c5@5 [e4,b4,e5]@3, ~ a3@7, ~@2 [e4,b4] [c4,g4]@5", // G7 E5 C5
  R: "~@3 [c4,g4]@5, [e2,g3], d4 [d4,b4]@3, ~ [a3,e4]@7", // C5 Em G A5
  S: "~@7 d3, [g2,g3,g4]@3 d5, ~ [a3,a4]@7, ~@2 [e4,e5]@3 [e4,e5]@3, ~@3 [c4,c5]@5", // G A E C
  T: "~@3 [c4,c5]@5, [f#2,g3,g4], ~ [a3,a4]@7, ~ [e4,e5]@3", // C Gmaj7 A E
  U: "~@7 c3, [f2,g3,a4,d5]@3 c5, c5@5 [e4,e5,b5]@3, ~ a3@7, ~ e5 [e4,b5] [c4,g5]@5", // Dm E5 C5
  V: "~@3 [c4,d5,g5]@5, [e2,g3,g4,b4], d5@3 ~@5, ~ [a3,e5]@7, ~ [d4,b5]@3", // Csus2 Em A5 G
  W: "~@3 d6, [f#2,g3,g4] c6, ~ [a3,a4]@7, ~ [e4,e5]@3, ~@3 [c4,c5]@5", // Gmaj7 A E C
  X: "~@7 [c3,b4], [a2,g3,e6]@6 c4@3 g5 [e4,b4]@2 [c4,e5]@4, d4@2 [e4,b4] [d4,g4,b5]@5, ~ a3@7, ~@2 e4 c6@13", // Cmaj7 A7 E5 C E5 G
  Y: "~@3 [b3,d5,b5]@5, [g2,g3,e6], d4@3 c6@13, ~ [a3,e4]@7, ~ [d4,b4]@3", // Bm C A5 G
  Z: "~@7 [e3,b4], [a2,g3,g4,e6]@4 e5@2 [f#3,c4,d4,c5,a5]@3 f#5 e5@2 [c4,d5]@4, e4@3 d6@13, ~ [a3,a4]@7, ~ e4@3", // E5 A7 D7 Csus2 A
  AA: "~@2 e4 [c4,e4,c5,a5]@5, [c3,g3,g4,e6], e4@3 d6@13, ~ [a3,a4]@7, ~ e5@3", // Am C A
  AB: "~@5 [e4,e5]@3, [a2,g3,g4], ~ [a3,a4]@7, ~@2 [e4,e5]@3 ~@3, ~@3 [c4,c5]@5", // E A7 A E C
  AC: "~@3 [c4,c5]@5, [g2,g3,g4], ~ [a3,a4]@7, ~ [e4,e5]@3", AD: "~@3 [c4,c5]@5, [c3,g3,g4], ~ [a3,a4]@7, ~ [e4,e5]@3",
})).s("gm_piano").gain(0.3)

// chords · piano · soft notes
const piano_soft = note("<A B ~@38 C D C D C D>".pickRestart({
  A: "~@5 e4@3, g3, ~ a3@7, ~@2 e4@3 ~@3, ~@3 c4@5", B: "~@3 c4@5, g3, ~ a3@7, ~ e4@3",
  C: "~@5 [e4,e5]@3, [a2,g3,g4], ~ [a3,a4]@7, ~@2 [e4,e5]@3 ~@3, ~@3 [c4,c5]@5", // E A7 A E C
  D: "~@3 [c4,c5]@5, [a2,g3,g4], ~ [a3,a4]@7, ~ [e4,e5]@3", // C A7 A E
})).s("gm_piano").gain(0.15)

// chords · string ensemble 1 · "Violins"
const string_ensemble_1 = note("<~@24 A B C D E F G H E F I J ~@10>".pickRestart({
  A: "[e3,c4]", B: "[d3,g3,b3]", C: "[e3,d4]", D: "~ [a3,f#4], d4@5 ~@3", E: "[e3,c4,d4]", F: "[d3,b3]@3 [d3,b3,d4]@5",
  G: "[f#3,d4]@3 [f#3,d4]@5", H: "[c4,g4]@3 [d3,a3,e4]@5", I: "d4@3 d4@5", J: "[d3,a3]",
})).s("gm_string_ensemble_1").gain(0.2)

// other · glockenspiel
const glockenspiel = note("<~@28 A B C D A B C D A B C D ~@6>".pickRestart({
  A: "a8@2 ~@3 e9 c9 ~", B: "a8@2 ~@5 g8", C: "a8@2 ~@3 d9 c9 ~", D: "a8 ~@3",
})).s("gm_glockenspiel").gain(0.3)

stack(piano, piano_soft, string_ensemble_1, glockenspiel)

More by C418