Strudelify

given - fuyu no hanashi

Misc Cartoons

KeyF majorTempo140 bpm
0:00/0:00
// given - fuyu no hanashi — Misc Cartoons
// 140 bpm, 4/4, key F major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: duplicate parts dropped: ch 4 "Electric Guitar" electric guitar clean (copy of ch 12 "Piano" piano)
// note: Transcription provider: pdmx. https://musescore.com/score/6118642; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 115 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(140/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 · piano
const piano = note(`<
  A B C D E F G H ~@4 I@2 J@2 K@2 L@2 M N O P M Q R@2 S T@2 U V W X Y S T@2 U V W Z AA AB AC AD AE AF AG AH@2 AI@2 AJ@2
  AK AL AM AN AO AP AQ AR AS AT AU AV AW AX AY AZ BA BB ~@2 BC BD BE BF BG@2 BH BI@2 BJ BK BL BM@2 ~@2 T U V W X Y S T@2
  U V W BN@3 BO BP@2 BQ@5
>`.pickRestart({
  A: "~@8 f5@3 f5@3 g5@2", B: "~@4 g5@3 g5@3 a5@3 ~ e5@2", C: "~ f5@3 g5@3 g5@3 f5@3 ~@3",
  D: "f5@3 f5@3 g5@3 ~ db5 d5@2 e5@3", E: "f5 d5 bb4 f5 d5 bb4!2 d5", F: "c5@2 g5@2 e5 ~ f5@4 f5 e5 c5@4, ~@6 e5 ~@9",
  G: "f5@2 db5@2 bb4@2 f5@3 f5@3 g5@4", H: "f5 f5@2 e5@2 ~@3", I: "[d4@4 e4@2 f4@6 d4@2 a4@17 ~]/2",
  J: "[c4@6 e4@6 g4@19 ~]/2", K: "[bb3@6 c4@6 f4@11 ~@9]/2",
  L: "[bb3@6 c4@6 f4@11 ~ c5@4 c5 [a4,b4] f4@2, ~@30 g4 ~]/2", M: "f4@3 ~ a3 ~ a4@3 ~ a3 ~ f4@3 ~",
  N: "a3 ~ a4@3 ~ a3 ~ bb4@2 bb4 a4 g4@2 f4@2", O: "e4@3 ~ f3@2 f4@3 ~ f3 ~ e4@3 ~",
  P: "f3 ~ f4@3 ~ f3 ~ f4@2 e4@2 d4@2 c4@2", Q: "a3 ~ a4@3 ~ a3 ~ a3@2 a3@2 a3@2 a3@2",
  R: "[f4 ~ e4@2 c4@2 f4 ~ e4@2 c4@2 c4@2 db4@6 d4@2 e4@4 ~@6, ~@2 f4 ~@5 f4 ~@23]/2",
  S: "d5 g4 f4 d5 g4 f4 d5 g4 f4 d5 g4 f4 d5 g4 f4 g4", T: "e5 a4 g4 e5 a4 g4 e5 a4 g4 e5 a4 g4 e5 a4 g4 a4",
  U: "f5 a4 a5 f5 g5 g4 f5 a4 e5!2 f5 a4 f5 d5 e5 f5", V: "g5 d5 f4 d5 g4 f4 d5 g4 f4 d5 g4 f4 d5 g4 f4 g4",
  W: "e5 a4 g4 e5 a4 g4 e5 a4 g4 e5 a4 g4 f5 a4 g5 a4", X: "g5 d5 c5 g5 d5 c5 g5 d5 c5 g5 d5 c5 g5 d5 c5 d5",
  Y: "a5 d5 c5 a5 d5 c5 g5 d5 c5 a5 d5 c5 a5 d5 c5 d5",
  Z: "[c4,f5] [c4,c5]!2 c4!2 [c4,c5] [c4,f5] [c4,c5], ~@3 g5@2 ~@3", // F5 C F5 C
  AA: "[c4,c5] c4!2 [c4,c5] c4!4, ~ g5@2 ~ f5@2 g5@2", AB: "[db4,f5] [db4,c5]!2 db4!2 [db4,c5] db4!2, ~@3 g5@2 ~ ab5@2",
  AC: "[db4,c5] [db4,g5] [db4,c5]!2 db4!2 [db4,g5] [db4,c5], ~@2 f5 ~", AD: "f2@2 ~ f2@2 f5@3, ~@5 f2@2 ~",
  AE: "f2@4 ~@2 f2@4 [f2,f5]@3 [g2,g5]@3", AF: "a2@2 ~ a2@2 e5@3, ~@5 a2@2 ~", AG: "a2@4 ~@2 a2@4 [a2,e5]@3 e5@3",
  AH: "d4 a3 c4 d4 a3 c4 d4 a3 c4 d4 a3 c4 d4 a3 c4 a3", AI: "a3 e3 g3 a3 e3 g3 a3 e3 g3 a3 e3 g3 a3 e3 g3 e3",
  AJ: "bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 bb3 c4 f4 c4",
  AK: "bb4 c4 f4 bb4 c4 f4 bb4 c4 f4 bb4 c4 f4 bb4 c4 f4 c4",
  AL: "bb4 c4 f4 bb4 c4 f4 bb4 c4 f4 bb4 c4 f4!2 [d4,e4] [b3,c4] [g3,a3]", AM: "g2@3 g2@3 g2@6 ~@2 g2@2, f3 ~@15",
  AN: "~@2 g2@3 ~ g2@2 g2@4 ~@4", AO: "a2@3 a2@3 a2@6 ~@2 a2@2", AP: "~@2 a2@3 ~ a2@2 a2@4 ~@4",
  AQ: "bb2@3 bb2@3 bb2@6 ~@2 b2@2", AR: "~@2 b2@3 ~ b2@2 b2@4 ~@4", AS: "c3!10 b2@2 a2@2 db4@2",
  AT: "db4 e4 f4 g4 f4 g4 b4 c5 b4 c5 d5 e5 d5 e5 d5 e5", AU: "e5@6 f5@8 e5 f5",
  AV: "e5 c5 g4 a4 g4@2 e4 f4 e4@2 g3 a3 c4@2 e3 f3", AW: "e3 f3 e3 f3 g3@3 g3@3 g3@2 a3@2 e3@2",
  AX: "g3@6 f3 e3 f3@6 c3 d3", AY: "c3 d3 e3 f3 g3 f3 g3 a3 g3 bb3 a3 g3 bb3 a3 g3 f3",
  AZ: "e3 ~ e3 ~ e4 f4 g4 f4 e3 ~ e4 f4 g4 f4 e4!2", BA: "c5 f5 c5 bb4 a4 ~ g4 f4 e4 ~ c4 f4 c4 a3 f3@2",
  BB: "f3@2 c5@3 f5@2 c6@8 ~", BC: "e3@15 ~", BD: "f3@15 ~", BE: "d5 a4 d5 a4 d5 a4 d5 a4",
  BF: "db5 a4 db5 a4 db5 a4 db5 a4",
  BG: "[e5@5 ~ f5@3 ~ [e5,f5] e5 c5@2 a4@4 c5@4 a4@2 c5@2 a4@2 c5@2 a4@2, ~@6 e5 ~@5 d5 ~@19]/2", // Fmaj7
  BH: "d5 a4 d5 a4 d6@4", BI: "[c5@2 g4@2 c5@2 g4@2 c6@15 ~ bb5@3 a5@3 d4@2]/2", BJ: "d4@3 d4@3 d4@2 d5@8",
  BK: "d4 a3 d4 a3 d5@4", BL: "e4 c4 e4 c4 e5@4",
  BM: "[bb4@2 c5@2 f5@2 bb4@2 c5@2 f5@2 bb4@2 a4@4 e4@2 e4 [db4,d4] db4@4 ~@6]/2", // Dmaj7
  BN: "[f5@3 f5@3 g5@3 ~@3 g5@3 g5@3 a5@3 ~ e5@3 f5@3 g5@3 g5@3 f5@3 ~@3 f5@3 f5@3 g5@2]/3",
  BO: "~@2 db5 d5@2 e5@3 f5@2 d5@2 bb4@2 f5@2",
  BP: "[d5@2 bb4@2 bb4@2 d5@2 c5@2 g5@2 e5 ~ f5@4 f5 e5 c5@4 f5@2 db5@2 bb4@2 f5@2, ~@14 e5 ~@17]/2",
  BQ: "[~ f5@3 g5@4 f5@2 f5@4 e5@4 f5 e5 c5@2 d5@55 ~@3]/5",
})).s("gm_piano").gain(0.15)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  A B C D E F G H I J K@2 L@2 M@2 N O P@2 Q@2 K@2 R S T@2 U V W X Y Z AA AB AC V W X Y Z AD@2 AE AF AG AH AI AJ L@2 M@2
  N O P@2 AK@2 AL@2 AM@2 AN AO AP@2 AQ AR AS AT AU AV ~@4 Q K AW@2 AX AY AZ BA BB BC BD@2 U BE W X Y Z AA AB BF BG W X Y
  Z BH@4 BI BJ BK BL@4
>`.pickRestart({
  A: "~@8 bb1@3 bb1@3 c2@2", B: "~@4 c2@3 c2@3 d2@3 ~ a1@2", C: "~ c2@3 d2@3 d2@5 ~@4",
  D: "g1@3 g1 [a1,b1] [c2,d2] [e2,gb2] ~@3 g2@4 ~@2, ~@3 g2@2 ~@3", E: "g1!16", F: "a1!16", G: "bb1!16",
  H: "c2@2 c2@2 c2 [d2,e2] [f2,g2] [a2,b2] c3@8", I: "f1!8", J: "f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1@2 f1 g1", K: "a1!8",
  L: "d2!4 c2!2 d2!6 c2!2 d2!2", M: "a1!4 g1!2 a1!6 g1!2 a1!2", N: "bb1!4 a1!2 bb1!6 a1!2 bb1!2",
  O: "bb1!4 a1!2 bb1!7 [c2,d2] [eb2,f2] [g2,a2]", P: "bb2!12 a2!2 bb2!2", Q: "g1!8", R: "bb1!8", S: "b1!8",
  T: "[c2!6 b1 a1@3 a2!2 ~@4]/2", U: "bb1@3 bb1@3 bb1@3 bb1@3 bb1@2 bb1@2", V: "bb1@3 bb1@3 bb1@3 c2@3 bb1@4",
  W: "a1@3 a1@3 a1@3 a1@3 a1@2 a1 [b1,c2]", X: "d2@3 d2@3 d2@3 d2@3 d2@4, db2 ~@15",
  Y: "g1@3 g1@3 g1@3 g1@3 g1@2 g1 [a1,b1]", Z: "c2@3 c2@3 c2@3 c2@3 c2@4", AA: "f1@3 f1@3 f1@3 f1@3 f1@2 f1 [a1,c2]",
  AB: "f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2@2 f2 [c2,d2], e2 ~@15", AC: "bb1@3 bb1@3 bb1@3 bb1@3 bb1@2 bb1@2, b1 ~@15",
  AD: "bb1 f1!2 bb1 f1!2 bb1 f1", AE: "bb1 f1!2 db2 f1!2 bb1 f1", AF: "db2 f1!2 bb1 f1!2 bb1 f1",
  AG: "f1@4 ~@2 f1@3 ~ f1@4 ~@2", AH: "f1@4 ~@2 f1@4 f1@3 g1@3", AI: "a1@4 ~@2 a1@3 ~ a1@4 ~@2",
  AJ: "a1@4 ~@2 a1@4 a1@3 ~@3", AK: "[g1@3 g1@3 g1@2 g2@4 ~@2 g1@4 g1@4 g1@2 g1@8]/2",
  AL: "[a1@3 a1@3 a1@2 a2@4 ~@2 a1@4 a1@4 a1@2 a1@8]/2", AM: "[bb1@3 bb1@3 bb1@2 bb2@4 ~@2 b1@4 b1@4 b1@2 b1@8]/2",
  AN: "c2!10 b1@2 a1@2 a1@2", AO: "a1@2 a1 a1@2 a1 a1@2 a1 a1@2 a1 a1@2 a1!2", AP: "bb1@3 bb1@3 bb1@4 bb1@2 bb1@4",
  AQ: "a1@3 a1@3 a1@4 a1@2 a1@4", AR: "d2@3 d2@3 d2@4 d2@2 d2@4", AS: "g1@3 g1@3 g1@4 g1@2 g1@4",
  AT: "c2@3 c2@3 c2@4 c2@2 c2@4", AU: "f1@3 f1@3 f1@4 f1@2 f1@4", AV: "f1@3 f1@3 f2@4 f2@2 f2@4",
  AW: "[d2@6 a1@2 d2@2 a1@2 d2@2 db2@4 b1 [g1,a1] f1!12]/2", AX: "bb1@3 bb1@3 bb1@2 bb1@3 bb1@3 bb1@2, f1 ~@15",
  AY: "bb1@3 bb1@3 bb1@2 bb1@3 bb1@3 bb1@2", AZ: "a1@3 a1@3 a1@2 bb2@3 a2@3 e2@2", BA: "d2@3 d2@3 d2@2 d2@3 d2@3 d2@2",
  BB: "g1@3 g1@3 g1@2 g1@3 g1@3 g1@2", BC: "c2@3 c2@3 c2@2 c2@3 c2@3 c2@2",
  BD: "[f1@3 f1@3 f1@2 f1@3 f1@3 f1@6 ~@12]/2", BE: "bb1@3 bb1@3 bb1@3 c2@3 bb1@2 ~@2",
  BF: "bb1@3 bb1@3 bb1@3 c2@3 d2@2 bb1@2, b1 ~@15", BG: "bb1@3 bb1@3 bb1@3 f2@3 e2@4",
  BH: "[bb1@3 bb1@3 c2@3 ~@3 c2@3 c2@3 d2@3 ~ a1@3 c2@3 d2@3 d2@5 ~@4 g1@3 g1 [a1,b1] [c2,d2] [e2,gb2] ~@3 g2@4 ~@2 g1!8, ~@23 g2@2 ~@7]/4", // Asus2 Csus2 Esus2
  BI: "g1!8 a1!8", BJ: "a1!8 bb1!8", BK: "bb1!8 c2@2 c2@2 c2 [d2,e2] [f2,g2] [a2,b2]", BL: "[c3@3 bb1@29]/4",
})).s("gm_electric_bass_finger").gain(0.3)

// drums · kick
const kick = s("bd").struct(`<
  A ~@3 B C@2 D E F G H B C@3 B C@3 I J I J I K L M N@7 O N@5 O P@4 ~@4 B C@3 B C@3 Q R Q R Q K L S B C@3 B C@2 L ~@4
  T@2 U V W@6 L X ~@2 N@5 O N@5 O P@2 ~ Y Z@2 AA AB ~@3
>`.pickRestart({
  A: "~@6 x!2 ~@8", B: "x ~@4 x ~@2", C: "x ~@2 x ~@6 x ~@5", D: "x!2 ~ x ~@4", E: "~@7 x", F: "x", G: "x ~@6 x",
  H: "x ~@2 x ~ x ~@2", I: "x ~@2 x", J: "x!2 ~@2", K: "x ~@3 x ~@3 x ~@2 x ~@2 x ~", L: "x ~ x!2 ~ x!3",
  M: "~ x!3 ~@4", N: "x ~@2 x ~@2 x ~@3 x ~@5", O: "x ~@2 x ~@4 x ~ x ~@5", P: "~ x!2 ~ x!2 ~ x", Q: "x ~@2 x ~@2 x ~",
  R: "~ x ~@6", S: "~@2 x ~ x ~ x ~ x!8", T: "x!8", U: "x ~ x ~ x ~ x!5 ~ x ~ x ~", V: "x ~@3 x ~ x ~@3 x ~ x!4",
  W: "x ~@2 x ~@2 x ~@4 x ~@4", X: "x!4 ~@4", Y: "~ x", Z: "~@2 x ~@5 x ~@2 x ~@4", AA: "~ x ~@2 x!2 ~ x",
  AB: "~@3 x ~@4",
})).gain(0.3)

// drums · snare
const snare = s("sd").struct(`<
  A B C D E@3 F ~@3 G E H E I E H E I J K J K J L M N O E@3 O E@2 P O E@3 O Q R S R T ~@2 U V E H E I E H E I J W J W J
  L M X E H E H E H E Y ~@6 Z AA AB@5 AC Y@2 ~@2 O E O E@2 P O E@3 O Q AD AE AF AG AH@2 AI AJ ~@3
>`.pickRestart({
  A: "~@8 x!8", B: "x ~@3 x!7 ~@5", C: "~@4 x!10 ~@2", D: "x!10 ~@6", E: "~@4 x ~@2 x ~@4 x ~@3", F: "x!2 ~ x ~@4",
  G: "~@8 x ~@3 x ~ x!2", H: "~@4 x ~@2 x ~@4 x ~ x!2", I: "~@4 x ~@2 x ~ x!7", J: "x ~@3 x ~@2 x", K: "~ x ~@6",
  L: "~@2 x ~@5 x ~@2 x ~@2 x ~", M: "x ~@2 x ~@2 x!2", N: "~ x!3 ~@4", O: "x ~@3 x ~@2 x ~@4 x ~@3", P: "~@2 x!2 ~@4",
  Q: "~@4 x ~ x ~@5 x!4", R: "~@3 x ~@2 x ~", S: "x ~@2 x ~@2 x ~", T: "x ~@2 x!2 ~ x ~", U: "~@2 x ~@3 x!2",
  V: "~@4 x ~@3 x ~ x ~ x!4", W: "~ x ~@2", X: "~@2 x ~ x ~ x ~ x!8", Y: "x ~@2 x ~@4", Z: "x ~@6 x!4 ~ x ~@3",
  AA: "x ~@5 x ~@5 x!4", AB: "~ x", AC: "~@8 x ~@3 x!4", AD: "x!9 ~@3 x!4", AE: "x!3 ~@9 x!4", AF: "x!6 ~@2 x!8",
  AG: "x!2 ~@10 x ~@2 x", AH: "~@4 x ~@7 x ~@2 x", AI: "~@2 x ~ x!2 ~ x", AJ: "~@3 x ~@4",
})).gain(0.3)

// drums · low tom
const low_tom = s("lt").struct("<~@23 [~@7 x] ~@91>").gain(0.3)

// drums · pedal hat
const pedal_hat = s("hh").struct("<~@8 [x!4]!4 ~@34 [x!8]!4 ~@32 [x!4]!6 ~@27>").gain(0.3)

// drums · mid tom
const mid_tom = s("mt").struct(`<
  ~ A B C ~@17 D ~ E ~@2 F ~@8 G ~@7 G ~ D ~@13 D ~ H ~@2 I ~@8 J ~@4 K@2 L ~@7 J L ~@2 M ~@4 G ~@6 N O P Q ~@3 R ~@3
>`.pickRestart({
  A: "~ x ~ x ~@7 x ~ x ~@2", B: "~ x!3 ~@11 x", C: "~@11 x ~ x!3", D: "~@10 x!6", E: "~@5 x!2 ~",
  F: "~@4 x!2 ~@4 x!2 ~@4", G: "~@14 x!2", H: "~@6 x!2 ~@2 x!6", I: "~@3 x!3 ~@3 x!3 ~@4", J: "~@3 x!3 ~@3 x!3 ~ x!3",
  K: "x!8", L: "~ x!2 ~@5", M: "x", N: "~@9 x ~ x ~@4", O: "~@3 x ~ x ~@3 x!3 ~@4", P: "~@7 x ~@8",
  Q: "~@3 x ~ x!3 ~@8", R: "~ x ~@2",
})).gain(0.3)

// drums · high tom
const high_tom = s("ht").struct(`<
  ~ A B C ~@17 D ~ E ~@2 F ~@8 G ~@7 G ~ D ~@13 D ~ H ~@2 I ~@8 J ~@14 J ~@8 G ~@6 K L M N ~@3 O ~@3
>`.pickRestart({
  A: "~@2 x ~@9 x ~ x!2", B: "x ~@6 x", C: "~@5 x!2 ~", D: "~@8 x!2 ~@6", E: "~ x", F: "~ x ~@2 x ~@3",
  G: "~@12 x!2 ~@2", H: "~@4 x!2 ~@2 x!2 ~@6", I: "~ x!2 ~@4 x!2 ~@7", J: "~ x!2 ~@4 x!2 ~@3 x ~@3", K: "~@5 x ~@2",
  L: "~@4 x ~ x!3 ~@7", M: "~@3 x ~@4", N: "~ x!2 ~@5", O: "~@2 x!2 ~@12",
})).gain(0.3)

// drums · crash
const crash = s("cr").struct(`<
  A B C D E ~@2 F E ~@3 E ~@3 E ~@3 E ~ E ~ E G H ~ E ~@3 E@3 I E ~@3 E I H F H F E J E J E ~@3 E ~@3 E ~ E ~ E G H ~ E
  ~@3 E@3 H ~@4 E ~ E H E ~ E ~ E ~ H@2 ~@2 E ~ E@3 I E ~@3 E I K L M N ~@2 O F ~@3
>`.pickRestart({
  A: "~@8 x ~@2 x ~@2 x ~", B: "~@4 x ~@2 x ~@2 x ~@3 x ~", C: "~ x ~@2 x ~@2 x ~@2 x ~@5",
  D: "x ~@2 x ~@2 x ~@3 x ~@5", E: "x", F: "~@3 x ~@4", G: "~ x", H: "x ~@2 x ~@4", I: "x!3 ~", J: "~@10 x ~@2 x ~@2",
  K: "x ~@2 x ~@2 x ~@5 x ~@2 x", L: "~@2 x ~@3 x ~@2 x ~@2 x ~@2 x", M: "~@2 x ~@5 x ~@2 x ~@2 x ~",
  N: "~ x ~@2 x ~@3", O: "~@7 x",
})).gain(0.3)

// drums · ride
const ride = s("rd").struct(`<
  ~@4 A@3 ~@5 A@3 B A@3 B ~@8 A@14 C ~ C ~ D@4 A@3 B A@3 B ~@8 A@7 ~@19 A@12 ~@3 E A@2 F ~@4
>`.pickRestart({
  A: "x!4", B: "x!3 ~", C: "x", D: "x ~@2 x ~ x ~@2", E: "~@2 x!2", F: "x!2 ~@2",
})).gain(0.3)

stack(piano, bass, kick, snare, low_tom, pedal_hat, mid_tom, high_tom, crash, ride)

More by Misc Cartoons