Strudelify

Sweet Child O' Mine Short

Guns N' Roses

KeyA majorTempo120 bpm
0:00/0:00
// Sweet Child O' Mine Short — Guns N' Roses
// 120 bpm, 4/4, key A major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: Transcription provider: pdmx. https://musescore.com/score/5273149; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 129 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(120/4)

// Notation: c3@3 lasts 3 steps · ~ is a rest · [...]/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 · alto sax · "Alto Saxophone"
const alto_sax = note(`<
  ~@8 A B C D E F G@2 H I J K L M L M N@2 O P Q R S ~ E N@2 T U V W@2 X Y Z@2 AA AB AC AD AE@2 AF@2 AG AH AI ~ AJ AK AL
  AM@4 AN AJ AK AL AO AJ AP AQ AR AS AT AS@3 AT AS@3 AT AS@3 AT AS AQ AU AS AT AS AV AS AT AS AV AS AT AS AV AS AT AS AV
  AW AX AW AY AW AX AW AZ AS AT AS AV BA BB BC BD AS BE C BF BG@3 BH
>`.pickRestart({
  A: "a3", B: "a3 ~", C: "e4", D: "e4@3 ~", E: "d4", F: "d4@3 ~", G: "[a4@9 a4!3 b4@2 a4@2]/2", H: "d5@3 a4 a4@3 a4",
  I: "a4@3 a4 a4@2 d5@2", J: "b4@3 b4 b4@3 b4", K: "b4@3 b4 b4@2 b4@2", L: "a4@3 a4 a4@3 a4", M: "a4@3 a4 a4@2 a4@2",
  N: "d4@6 ~ d4", O: "b3@6 ~ d4", P: "d4 b3@7", Q: "g4 d5@7", R: "g4 d5@2 g4@2 g4 d4@2", S: "a4", T: "c5@6 ~ c5",
  U: "b4@6 ~ b4", V: "g4@3 ~", W: "[d4@4 g4@2 ~ b4@2 a4 g4@6]/2", X: "~@2 c#5 ~ a4 ~ e4 ~ d5 ~ a4 ~ c#5 ~ a4 ~",
  Y: "~@2 c5 ~ g4 ~ f4 ~ e5 ~ e4 ~ d5 ~ e4 ~", Z: "d4 ~ d5 ~ a4 ~ g4 ~ g5 ~ a4 ~ f#5 ~ a4 ~",
  AA: "c4 ~ c5 ~ a4 ~ e4 ~ d5 ~ a4 ~ c5 ~ a4 ~", AB: "c4 ~ c5 ~ g4 ~ f4 ~ e5 ~ a4 ~ d5 ~ a4 ~", AC: "a4 d5@7",
  AD: "~@7 a4", AE: "g4@3 f#4@3 ~ a4", AF: "g4@3 e4@3 ~ a4", AG: "g4@5 b4 a4 g4", AH: "b4 d5@2 e5 e5@3 d5", AI: "f#4",
  AJ: "c#5 ~@2 c#5@3 ~@2", AK: "c5@2 ~ c5@3 ~@2", AL: "d5",
  AM: "[~@4 a4@16 g4@2 f#4@2 g4@2 f#4@2 d4@2 g4@4 f#4@2 d4@4 e4@4 f#4@2 d4@10 ~@6 d3!2]/4",
  AN: "d4@3 d4@2 d4@3 d4@3 d4@2 d4@3", AO: "b4 a4 f#4 b4@2 b4@3", AP: "c5 ~@2 c5@3 ~@2", AQ: "a4!8", AR: "a4!5 ~ g4 ~",
  AS: "e4@2 ~ e4@5", AT: "g4@2 ~ g4@5", AU: "b4!4 a4@2 g4@2", AV: "e4@2 d4 e4 d4 e4 d4 e4", AW: "e4 d4 b3 a3@3 ~@2",
  AX: "e4 d4 b3 a3@2 g3@2 ~", AY: "~ c4@3 a3@2 g3@2", AZ: "~ c4@3 d4@2 d4@2", BA: "b4@2 a4 b4@5",
  BB: "b4@2 a4 b4 a4 g4 e4 d4", BC: "d5 d#5 e5 d5 d#5 e5 d5 b4", BD: "e5@3 d5@2 b4@3 a#4@3 a4@2 g4@3",
  BE: "d4@2 ~ d4@5", BF: "g4 a3", BG: "b4", BH: "b4 ~@7",
})).s("gm_alto_sax").gain(0.3)

// other · tenor sax · "Tenor Saxophone"
const tenor_sax = note(`<
  ~@7 A B C D E F G H@2 I J K L M N M N O P Q@2 R S T U V W X Y Z AA@3 AB AC F ~ AC@2 F AD AE AF AG AH AI AJ M AK AL AM
  AN@2 AO AP AQ AR AL AM AS AT AL AU A AV AW AX AY AZ AW AX AY AZ AW AX AY AZ AW AX AY A BA AW AX AY BB AW AX AY BB AW
  AX AY BB AW AX AY BB BC BD BC BE BC BD BC BF AW AX AY BG BH BI BH BJ BK BL D BM BN BO BP BQ
>`.pickRestart({
  A: "d4!8", B: "f#4", C: "f#4 ~", D: "e4", E: "e4@3 ~", F: "d4", G: "d4@3 ~", H: "[d4@9 d4!3 e4@2 d4@2]/2",
  I: "f#4@3 d4 d4@3 d4", J: "d4@3 d4 d4@2 f#4@2", K: "e4@3 e4 e4@3 e4", L: "e4@3 e4 e4@2 e4@2", M: "d4@3 d4 d4@3 d4",
  N: "d4@3 d4 d4@2 d4@2", O: "a4 a4@2 a4@3 g4 f#4", P: "g4 a4@2 f#4 f#4@2 d4@2",
  Q: "[g4@2 g4@2 ~ g4 f#4 g4@5 ~@3 a4]/2", R: "g4@2 g4@2 g4 g4@3", S: "g4 f#4@2 g4@3 g4@2",
  T: "g4 f#4 d4 g4@2 f#4 d4!2", U: "d4@6 ~ a4", V: "a4@2 a4 a4@2 a4 g4 f#4", W: "g4 a4 f#4 d4",
  X: "g4 f#4 d4 g4@3 a4 g4", Y: "g4 f#4 d4@4 ~ a4", Z: "g4@2 g4 f#4 g4@2 g4@2",
  AA: "[~ g4 f#4 g4@3 g4 g4@2 f#4 d4 g4@3 a4 g4@2 f#4 d4@6]/3", AB: "e4@6 ~ e4", AC: "e4 ~", AD: "~@7 a3",
  AE: "a3@3 a3", AF: "a3@2 a3!2", AG: "g3@6 ~ g3", AH: "g3@2 ~ g3", AI: "g3", AJ: "~ d4@3 d4@2 d4@2", AK: "d4 d4@3",
  AL: "a3 ~@2 a3@3 ~@2", AM: "g3@2 ~ g3@3 ~@2", AN: "[a4 a4@2 a4@5]/2", AO: "a3 ~@2 a3@5", AP: "c4 ~@2 c4@5",
  AQ: "a3@12 ~@2 a3!2", AR: "d4@3 d4@2 d4@3 d4@3 d4@2 d4@3", AS: "a4@14 a4!2", AT: "a4!5 a4@3", AU: "g3 ~@2 g3@3 ~@2",
  AV: "d4!5 ~@3", AW: "b3@2 ~ b3@5", AX: "g3@2 ~ g3@5", AY: "b3@2 ~ a3@5", AZ: "g3@2 ~ a3@5", BA: "d4!4 d4@2 ~@2",
  BB: "g3@2 a3 g3", BC: "e4 d4 b3 a3@3 ~@2", BD: "e4 d4 b3 a3@2 g3@2 ~", BE: "~ g3@3 d3@2 d3@2", BF: "~ c3@3 d3@2 d3@2",
  BG: "~ g3@3 a3@2 g3@2", BH: "e3@2 ~ e3@5", BI: "d4@2 ~ d4@5", BJ: "e4@3 d4@2 b3@3 a#3@3 a3@2 g3@3",
  BK: "e3@2 ~ a#4@3 b4@2", BL: "b4@3 b4", BM: "b4 g4", BN: "e4 b3", BO: "a3 g3", BP: "e3", BQ: "e3 ~@7",
})).s("gm_tenor_sax").gain(0.3)

// other · baritone sax · "Baritone Saxophone"
const baritone_sax = note(`<
  ~@6 A B C D E F G H I@2 J K L M N O J P Q R S T N U V W V@3 X N O Y Z AA AB V AC AD AE Y AF J AG L AH N AI J AJ AK AL
  V AM AK AN V AO AP AL V AQ AK AN AR AS AT AU AV AW AT AU AV AW AT AU AV AW AT AU AV AR AX AT AU AV AY AT AU AV AY AT
  AU AV AY AT AU AV AY AZ BA BB BC AZ BA BB BC AZ BA BB BC BD BE BF BG BH BI A BJ BK@3 BL
>`.pickRestart({
  A: "a2", B: "a2!8", C: "d3@3 f#3@2 d3 f#3 g3", D: "a3@2 b3 a3 g3 f#3 d3@2", E: "c3@3 g3@4 c3",
  F: "f3 e3 c3 f3@2 e3 c3@2", G: "g2@7 d3", H: "g3@7 d3", I: "[g3 f#3 d3 g3@2 f#3 d3@10]/2", J: "d2@2 ~ d2 d2@2 ~ d2",
  K: "d2@2 ~ d2 f#2 a2 f#2 d2", L: "c2@2 ~ c2 c2@2 ~ c2", M: "c2@2 ~ c2 f2 e2 d2 c2", N: "g2@2 ~ g2 g2@2 ~ g2",
  O: "g2 e2 f3 f#3 g3 a2 c3 c#3", P: "f#2 a2 f#2 e2 g2@2 f#2@2", Q: "d2@2 ~ d3 d3@2 ~ d3", R: "d3@2 ~ d3 d3@2 d3@2",
  S: "c3@2 ~ c3 c3@2 ~ c3", T: "c3@2 ~ c3 g3 f3 e3 d3", U: "g2@2 ~ g2 g2@2 c3@2", V: "d3@2 ~ d3 d3@2 ~ d3",
  W: "d2 d3@2 d2 d3 d2 d3@2", X: "c3 e2!3 f2!2 f#2!2", Y: "d3@4 ~@2 d3@2 d3@4 ~@2 b3 c4", Z: "d4!5 f#2 g2@2",
  AA: "a2@2 ~ a2@3 a2 b2", AB: "c3@2 ~ c3 c3@2 ~ a2", AC: "d3@2 a2 d3 a3 g3 f#3 d3", AD: "a2@2 ~ a2 a2@2 ~ a2",
  AE: "c3@2 ~ c3 c3@2 ~@2", AF: "d4!5 d3 d3@2", AG: "d2@2 ~ d2!2 d3@2 a2", AH: "c2 c3 ~ c2 c3!3 a2",
  AI: "g2 e2 b2 a2 c3 a2 c#3 a2", AJ: "d2 d3@2 d2 g2@2 f#2@2", AK: "a2@2 ~ a2@3 ~ b2", AL: "c3@2 ~ c3@3 ~ a2",
  AM: "d3 a3!4 g3 f#3 d3", AN: "c3@2 ~ c3@3 ~@2", AO: "d3 e2 f#2 e2 g2 e2 g#2 e2", AP: "a2 ~@2 a2@3 ~ b2",
  AQ: "d3!5 a2 d3@2", AR: "d3!8", AS: "d3!5 a2 c3 ~", AT: "e2@2 ~ e2 ~@3 f#2", AU: "g2@2 ~ g2 ~@3 a2",
  AV: "a2@2 ~ a2@5", AW: "c3@2 ~ d3@3 g2 f#2", AX: "d3!5 a2 c3@2", AY: "c3@4 d3 ~ g2 ~", AZ: "e2 ~@2 e2 ~@3 f#2",
  BA: "g2 ~@2 g2 ~@4", BB: "a2 ~@2 a2 ~@4", BC: "~ c3!3 d3 ~ g2 ~", BD: "e2@2 ~ e3 ~ e2!2 f#2",
  BE: "g2@2 ~ g2@2 g2@2 g2", BF: "a2@2 ~ a2@2 a2!3", BG: "e3@3 d3@2 b2@3 a#2@3 a2@2 g2@3", BH: "e2@2 ~ e3@2 e2!2 f#2",
  BI: "g2@2 g2 g3@2 g2!3", BJ: "c3 d3", BK: "e2", BL: "e2 ~@7",
})).s("gm_baritone_sax").gain(0.4)

stack(alto_sax, tenor_sax, baritone_sax)

More by Guns N' Roses