Strudelify

A Tender Feeling

Yuki Kajiura

KeyA majorTempo69 bpm
0:00/0:00
// A Tender Feeling — Yuki Kajiura
// 69 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: metre changes (3/8 at bar 1, 4/4 at bar 2) are rendered on a constant 4/4 grid of one bar per cycle
// note: Transcription provider: pdmx. https://musescore.com/score/178899; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 32 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(69/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 · string ensemble 2 · "Violas"
const string_ensemble_2 = note("<~ A B C D E F G E H I J K L F M@2 N F@2 G O ~@10>".pickRestart({
  A: "c#4 b3", B: "c#4", C: "e4 b3", D: "e4@3 c#4", E: "d5", F: "b3", G: "e4", H: "e4!2", I: "c#4@3 c#4", J: "a3!2",
  K: "f#3@2 f#3 a3", L: "a3", M: "[e4@6 e4!2]/2", N: "f#4!2", O: "d4",
})).s("gm_string_ensemble_2").gain(0.15)

// other · string ensemble 1 · "Violoncellos"
const string_ensemble_1 = note("<~ A B C D B E@2 F A G H I J E K@2 L M E B N ~@10>".pickRestart({
  A: "a3 g#3", B: "a3", C: "a3 e3", D: "b3@2 ~ c#4", E: "e3", F: "d4", G: "f#3@3 f#3", H: "d3 c#3", I: "b2@2 b2 c#3",
  J: "c#3", K: "[a3@6 a3!2]/2", L: "c#4 b3", M: "f#3", N: "[d3,a3]",
})).s("gm_string_ensemble_1").gain(0.15)

// chords · piano
const piano = note("<A B C D E F G H I J K L M N O P@2 Q R S T U V@2 W X Y Z AA AB AC AD>".pickRestart({
  A: "~@5 e4 a4 b4", B: "~ e4 a4 e5 ~ e4 a4 e5, c#5@3 ~ b4@3 ~", C: "~ c#4 f#4 ~@2 a4 d5 e5, a4@5 ~@3, ~@2 f#3 e3",
  D: "~ a4 ~ a5 a3 e4 ~ c#5, f#5@3 ~ e5@3 ~, ~ d5 ~ a4", E: "~ b3 e4 f#4 [g#4,d5] [e4,c#5] [b3,b4] [e3,a4], d5 ~",
  F: "~ a4 d5 e5 [f#4,f#5] [g#4,d5] a4 [d4,b4], f#4 ~", G: "~ b3 e4 f#4 [g#4,b4] [e4,c#5] [b3,d5] [e3,e5], b4 ~",
  H: "a3 e4 a4 b4 ~ e5 a5 b5, d5 c#5 c#5@2", I: "[f#3,e4] [a3,d4] e4 f#4 [g#3,g#4] [b3,b4] a4 b4, ~ d4 ~ e4",
  J: "~ e4 a4@2 ~ e4 g#4@2, a2 g#2", K: "~ c#4 f#4 g#4 [f#4,a4]@2 [e2,e4,g#4]@2, f#2@3 ~",
  L: "~ a3 d4@2 ~ e4 a4@2, d2 c#2", M: "e3 b3 e4 f#4 g#4 e4 b3 e3, b1@3 c#2", N: "~ a3 d4 e4 ~ d4 a3 d3, c#2",
  O: "~ b2 e3 f#3 g#3 e3 b2 e1, e2", P: "[~ a3 d4 e4 f4 g4 a4 g4 a3 e4 a4 e4 c#4 e4 b3 e4, a2@6 a2 g#2]/2",
  Q: "d3 a3 d4@2 e3 b3 e4@2, c#3 g#2", R: "a2 e3 a3 b3 c#4 e3 a3 e3, c#3 b2", S: "d3 a3 d4@2 d3 a3 c#4@2, e2",
  T: "e3 b3 e4 f#4 d5 e5 a5 ~, a2", U: "d6 a5 f#5 d5 a4 f#4 e4 f#4, d2",
  V: "[a4@8 b4@8 [e5,g#5] e6@8 ~ e4@2 a4@2 b4@2, [e3,e4]@3 ~, ~@17 b5 ~@14]/2", // E
  W: "~ a4 ~ e5 ~ g#4 ~ e5, [a3,c#4] [g#3,b3], c#5 ~@3 b4 ~@3, ~ e4@3 e4@4 ~ e4@3 e4@4", // A G#m
  X: "~ c#4 ~ a4 ~ a4 d5 e5, [e3,a3] ~, a4 ~@7, ~ f#4@3 f#4@4 ~@8", // A5
  Y: "~ a3 ~ a5 ~ g#3 ~ c#5, [a4,d5]@3 ~ [g#4,b4]@3 ~, d3 ~ d4@2 c#3 ~ c#4@2, ~ f#5@5 ~@3 e5@5 ~@2", // D5 G#m
  Z: "~ f#3 b3 d4 d5 c#5 b4 a4, [f#4,b4] ~, d3 ~@7, ~ d5@7 ~@8", AA: "d3 a3 ~@2 f#4 g#4 a4 b4, f#4 ~, ~ d4@3",
  AB: "e3 b3 e4 f#4 [g#4,e5]@4, d5 ~", AC: "a3 e4 a4 e5 a5 b5 c#6 e5", AD: "~ [e5,a5]@15, [a3,b5,e6]",
})).s("gm_piano").gain(0.3)

stack(string_ensemble_2, string_ensemble_1, piano)

More by Yuki Kajiura