Strudelify

the flower garden

Koji Kondo

KeyC majorTempo125 bpm
0:00/0:00
// the flower garden — Koji Kondo
// 124.5 bpm, 4/4, key C major. Source: midi.
// Generated by strudelify. One cycle = one bar.
// note: pitch bends are ignored
// note: ch 1 "Classical Guitar [Tablature]" named as a guitar, played on acoustic guitar nylon (its harmonica patch is not one); ch 2 "Classical Guitar [Tablature]" named as a guitar, played on acoustic guitar nylon (its harmonica patch is not one); ch 5 "C Trumpet" named as a brass, played on trumpet (its lead 2 sawtooth patch is not one)
// note: Transcription provider: pdmx. https://musescore.com/score/1959601; license: https://creativecommons.org/publicdomain/zero/1.0/
// note: Full arrangement: all 161 bars on a 16-step grid, each part at one level. Source detail keeps the original performance.
setcpm(124.5/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 · acoustic guitar nylon · "Classical Guitar [Tablature]"
const acoustic_guitar_nylon = note(`<
  ~@4 A B C ~ D ~ E@2 F G H ~@3 C ~ D ~ E@2 F G H ~@17 A B C ~ D ~ E@2 F G H ~@3 C ~ D ~ E@2 F G H ~@17 A B C ~ D ~ E@2
  F G H ~@3 C ~ D ~ E@2 F G H ~@17 A B C ~ D ~ E@2 F G H ~@3 C ~ D ~ E@2 F G H ~@14
>`.pickRestart({
  A: "~@15 e5", B: "f5 ~@15", C: "~@3 f5@2 e5@2 f5 ~@3 c5 ~ a4 ~@2", D: "~@7 c5@2 b4@2 d5 ~ a5 ~@2",
  E: "[~@3 a5@2 ~@2 a5@2 g5@2 f5@2 e5 ~ d5@2 ~@4 c5 ~@10]/2", F: "~@7 c5@2 b4@2 c5@2 d5@2 ~",
  G: "~@5 g5 ~@3 c5@4 e5 ~@2", H: "~@3 e5@2 f5@2 d5@4 c5 ~ b4 ~@2",
})).s("gm_acoustic_guitar_nylon").gain(0.32).pan(1)

// chords · vibraphone · "Xylophone"
const vibraphone = note(`<
  ~ A B A C A B A C A B A C D E F G A B A C A B A C D E F G ~@12 A B A C A B A C A B A C D E F G A B A C A B A C D E F G
  ~@12 A B A C A B A C A B A C D E F G A B A C A B A C D E F G ~@12 A B A C A B A C A B A C D E F G A B A C A B A C D E
  F G ~@12
>`.pickRestart({
  A: "[c4,e4]@3 ~ [e4,g4]@2 ~ [e4,g4] [c4,e4]@2 [a3,c4]@2 ~@4", // C Em C Am
  B: "[f3,a3]@3 ~ [a3,c4]@2 ~ [f3,a3] [b3,d4]@2 [c4,e4]@2 ~@4", // F Am F Bm C
  C: "[f3,a3]@3 ~ [a3,c4]@2 ~ [f3,a3] [c4,e4]@2 [b3,d4]@2 ~@4", // F Am F C Bm
  D: "[d4,g4]@3 ~ [d4,g4]@2 ~ [d4,g4] [c#4,g4]@2 [c#4,g4]@2 ~@4", // G5 C#dim
  E: "[c4,g4]@3 ~ [c4,g4]@2 ~ [b3,g4] [b3,g4]@2 [b3,g4]@2 ~@4", // C5 Em
  F: "[e4,g4]@3 ~ [e4,g4]@2 ~ [e4,g4] [g4,b4]@2 [d#4,g4]@2 ~@4", // Em G D#
  G: "[f4,c5]@3 ~ [f4,c5]@2 ~ [a4,c5] [b4,e5]@2 [b4,d5]@2 ~@4", // F5 Am E5 Bm
})).s("gm_vibraphone").gain(0.48)

// bass · electric bass finger · "Electric Bass"
const bass = note(`<
  A B C B C B C B C B C B C D E D F B C B C B C B C D E D F G H I J K L M N K L M N B C B C B C B C B C B C D E D F B C
  B C B C B C D E D F G H I J K L M N K L M N B C B C B C B C B C B C D E D F B C B C B C B C D E D F G H I J K L M N K
  L M N B C B C B C B C B C B C D E D F B C B C B C B C D E D F G H I J K L M N K L M N
>`.pickRestart({
  A: "c3@2 a2!2 g#2 ~ g2@3 g2!2 ~ g2 g3 g2 ~", B: "c2@3 ~ c2@2 ~ c2 a2@2 a2@2 ~@2 a2@2",
  C: "f2@3 ~ f2@2 ~ f2 g2@2 g2@2 ~@2 g2@2", D: "e2@3 ~ e2@2 ~ e2 d#2@2 d#2@2 ~@2 d#2@2",
  E: "d2@3 ~ d2@2 ~ d2 g2@2 g2@2 ~@2 g2@2", F: "d2@3 ~ d2@2 ~ d2 c#2@2 c#2@2 ~@2 c#2@2",
  G: "a#1@2 a#1 ~@3 a#1@2 ~@2 a#1@2 a#1@2 a#1@2", H: "~@2 a1 ~@3 a1@10", I: "g#1@2 g#1 ~@3 g#1@2 ~@2 g#1@2 g#1@2 g#1@2",
  J: "~@2 g1 ~@3 g1@4 g2 d3 g3@4", K: "a#1@2 a#1 ~ a#3 ~ a#1@2 a#3 ~ a#1@2 ~ a#3 a#1@2", L: "~@2 a1 ~ a3 ~ a1@8 g3@2",
  M: "g#1@2 g#1 ~ g#3 ~ g#1@2 g#3 ~ g#1@2 ~ g#3 g#1@2", N: "~@2 g1 ~ g3 ~ g1@2 ~@2 g1 g3 g#1 g#3 a1 a3",
})).s("gm_electric_bass_finger").gain(0.4)

// chords · trumpet · "C Trumpet"
const trumpet = note(`<
  ~@29 A B C D A B C D A B C E ~@28 A B C D A B C D A B C E ~@28 A B C D A B C D A B C E ~@28 A B C D A B C D A B C E
>`.pickRestart({
  A: "[f4,a#4,c5]@2 [f4,a#4,c5] ~@7 [f4,a#4,c5]@2 ~@2 [f4,a#4,c5]@2", B: "~@2 [f4,a4,c5] ~@3 [f4,a4,c5]@8 ~@2",
  C: "[f4,g#4,c5]@2 [f4,g#4,c5] ~@7 [f4,g#4,c5]@2 ~@2 [f4,g4,c5]@2", D: "~@2 [f4,g4,c5] ~@3 [f4,g4,c5]@8 ~@2",
  E: "~@2 [f4,g4,c5] ~@3 c5@4 b4@6, ~@3 [f4,g4]@5", // Fsus2
})).s("gm_trumpet").gain(0.48)

// drums · kick
const kick = s("bd").struct(`<
  A B C D E B C@3 B C@5 F G C@10 F G H I J I H I J I H I J I B C D E B C@3 B C@5 F G C@10 F G H I J I H I J I H I J I B
  C D E B C@3 B C@5 F G C@10 F G H I J I H I J I H I J I B C D E B C@3 B C@5 F G C@10 F G H I J I H I J I H I J I
>`.pickRestart({
  A: "~@7 x", B: "x!3 ~", C: "x!2", D: "x ~@3 x ~ x ~ x ~@2 x ~@3 x", E: "x ~@8 x ~@3 x ~ x",
  F: "x ~@5 x ~ x ~ x ~@4 x", G: "x ~ x ~@6 x ~@3 x ~ x", H: "x ~ x!2 ~@2 x ~ x ~ x!2 ~@4", I: "x ~ x!2 ~@3 x ~@8",
  J: "x ~ x!2 ~@2 x ~ x ~ x!2 ~@3 x",
})).gain(0.32).pan(0.7)

// drums · snare
const snare = s("sd").struct(`<
  A B C B D B C B C B C B C B C B E B C B C B C B C B C B E C F C G C F C G C F C G B C B D B C B C B C B C B C B E B C
  B C B C B C B C B E C F C G C F C G C F C G B C B D B C B C B C B C B C B E B C B C B C B C B C B E C F C G C F C G C
  F C G B C B D B C B C B C B C B C B E B C B C B C B C B C B E C F C G C F C G C F C G
>`.pickRestart({
  A: "~@10 x ~ x!2 ~@2", B: "~ x ~@2 x ~@7 x ~@3", C: "~ x ~ x", D: "~ x ~@2 x ~@3 x ~ x!3 ~ x ~",
  E: "~ x ~@2 x ~@3 x ~@2 x!2 ~ x ~", F: "~@4 x ~@3 x ~ x ~ x!3 ~", G: "~ x ~@2 x ~@3 x ~ x ~ x!3 ~",
})).gain(0.32).pan(0.7)

// drums · hihat
const hihat = s("hh").struct(`<
  A B C D B@2 C B C B C B C B C D B@2 C B C B C B C B C D B D@12 B C D B@2 C B C B C B C B C D B@2 C B C B C B C B C D B
  D@12 B C D B@2 C B C B C B C B C D B@2 C B C B C B C B C D B D@12 B C D B@2 C B C B C B C B C D B@2 C B C B C B C B C
  D B D@12
>`.pickRestart({
  A: "x ~ x!3 ~@7 x ~@3", B: "x!10 ~@2 x!4", C: "x!2 ~@2 x!6 ~@2 x!4", D: "x!16",
})).gain(0.24).pan(0.7)

// drums · open hat
const open_hat = s("oh").struct(`<
  A B C ~ C B C B C B C B C B C ~ C B C B C B C B C B C ~ C B D B D B D B D B D B D B C ~ C B C B C B C B C B C ~ C B C
  B C B C B C B C ~ C B D B D B D B D B D B D B C ~ C B C B C B C B C B C ~ C B C B C B C B C B C ~ C B D B D B D B D B
  D B D B C ~ C B C B C B C B C B C ~ C B C B C B C B C B C ~ C B D B D B D B D B D B D
>`.pickRestart({
  A: "~@3 x ~@4", B: "~@5 x ~@2", C: "~ x ~@3 x ~@2", D: "~ x ~@6",
})).gain(0.32).pan(0.7)

stack(acoustic_guitar_nylon, vibraphone, bass, trumpet, kick, snare, hihat, open_hat)

More by Koji Kondo