Skip to content

Instantly share code, notes, and snippets.

@benfarahmand
Last active November 30, 2025 17:06
Show Gist options
  • Select an option

  • Save benfarahmand/04bd2916c0970c7fb805c804aa9a34dd to your computer and use it in GitHub Desktop.

Select an option

Save benfarahmand/04bd2916c0970c7fb805c804aa9a34dd to your computer and use it in GitHub Desktop.
strudel translation of golden by HUNTR/X
// "Golden" song @by HUNTR/X
// transcribed from:
// https://www.youtube.com/watch?v=Rlpmom8nuwM
// and also kpop demon hunters soundtrack
// script @by benfarahmand
const SOUND_TREBLE = "piano"
const SOUND_BASS = "piano"
const ROOM = 0.8
const LEGATO = 1.5
const GAIN = 0.9
const DRUM_ROOM = 0.5
const DRUM_BANK = "rolandtr909"
const DRUM_BUS_ORBIT = 2
const treble = p =>
p.s(SOUND_TREBLE)
.room(ROOM)
.legato(LEGATO)
.gain(GAIN)
const bass = p =>
p.s(SOUND_BASS)
.room(ROOM * 0.9)
.legato(LEGATO+0.5)
.gain(GAIN)
const drumBus = p =>
p.bank(DRUM_BANK)
.room(DRUM_ROOM)
.orbit(DRUM_BUS_ORBIT)
.gain(0.5)
const highhatBus = p =>
p.bank(DRUM_BANK)
.room(DRUM_ROOM)
.orbit(DRUM_BUS_ORBIT)
.gain(0.25)
setcpm(123/4)
let treble_intro = treble(note("<[a5!2 b5@2 b5!2 c5 b5@2 a5 g5@2]!7 [~]>"))
let bass_intro = bass(note(`<[g3,c3,e3] [g3,b3,d3] [a3,d3,f#3]
[g3,b3,e3] [g3,c3,e3] [g3,b3,d3]
[a3,d3,f#3] [[d2,d3] ~@5 [d2,d3] ~@3]>`))
let treble_verse1a = treble(note(`<[~@3 a5 b5 b5 b5@3 g4 a5 b5]
[b5@3 ~@2 d5 ~@4 g4 a5] [a5@3 ~@2 d5 ~@4 f#4!2] [f#4@2 e4 e4@2 ~ f#5@2 e5 e5 g5@2]
[g5@3 g4 a5 b5 b5@3 g4 a5 b5] [b5@3 ~@2 d5 ~@4 g4!2] [a5@3 ~ ~ f#5 f#5@3 f#5 e5 f#5]
[e5@2 e5 f#5@2 e5!4 d5@2 a6]>`))
let bass_verse1a = bass(note(`<[[c2@2 [g2,c3]]!4]
[[g2@2 [b3,d3]]!4] [[d2@2 [a3,d3]]!4] [[e2@2 [b3,e3]]!4]
[[c2@2 [g2,c3]]!4] [[g2@2 [b3,d3]]!4] [[d2@2 [a3,d3]]!4]
[[e2@2 [b3,e3]]!4]>`))
let treble_verse1b = treble(note(`<[a6@2 a6 a6@2 a6 a6@2 d5 d5@2 a6] [a6@2 a6 a6@2 b6 b6@3 a6@3]
[a6@2 a6 a6 a6@2 a6@2 a6 a6 a6@2] [a6@2 b6 b6@3 ~ ~ d5 d5@2 a6] [a6@2 a6 a6@2 a6 a6@2 d5 d5@2 a6]
[a6@2 a6 a6@2 b6 b6@3 d5@2 ~] [a6@2 a6 a6 a6@2 a6@2 g5 g5 f#5@2] [f#5@2 e5 ~ d5 e5 e5 e5@2 e5@3]>`))
let bass_verse1b = bass(note(`<[[c2@2 [g2,c3]]!4] [[g2@2 [b3,d3]]!4]
[[d2@2 [a3,d3]]!4] [[e2@2 [b3,e3]]!4] [[c2@2 [g2,c3]]!4]
[[g2@2 [b3,d3]]!4] [[d2@2 [a3,d3]]!4] [[e2@2 [b3,e3]]!4]>`))
let treble_prechorus1 = treble(note(`<[[e4,e5] [g4, g5] [c5, c6] [b5, b6]] [[d4, d5] [g4, g5] [e5,e6] [d5,d6]] [[f#4, f#5]@3 [a5, a6]@3 [d5, d6]@3 [c5,c6]@2 [b5, b6]] [[b5, b6]@6 ~ ~ ~ [f#4, f#5]@3]
[[e4,e5] [g4, g5] [c5, c6] [b5, b6]] [[d4, d5] [g4, g5] [e5,e6] [d5,d6]] [[f#4, f#5]@3 [a5, a6]@3 [d5, d6]@6]
[[d5,d6]@6 [b5,b6]@2 [b5,b6]!2 [e5,e6]@2]>`))
let bass_prechorus1 = bass(note(`<[c2,c3] [[g1,g2] g2] [d2,d3] [e2, e3]
[[[c2,c3]!4 ~@2]!2] [[[g1,g2]!4 ~@2]!2] [[[d2,d3]!4 ~@2]!2]
[[d2,d3]!6 ~@6]>`))
let treble_chorus = treble(note(`<[[e5,e6]@3 [e5,e6]@3 [e5,e6]@2 [b5, b6] [b5, b6]@2 [d5, d6]] [[d5,d6]@3 [a5,a6]@3 [d5,d6]!4 [c5,c6]!2]
[[c5,c6]@2 [b5,b6] ~@3 [d5,d6]!4 [c5,c6]!2] [[c5,c6]@2 [b5,b6] ~@3 [a5,a6]@2 [b5,b6]!2 [g4,g5]@2] [[e5,e6]@3 [e5,e6]@3 [g5,g6]@2 [f#5,f#6] [d5, d6]@3]
[[d5,d6]@3 [a5,a6]@3 [d5,d6]!4 [c5,c6]!2] [[c5,c6]@2 [b4,b5] ~@3 [d5,d6]!4 [c5,c6]!2] [[c5,c6]@2 [b5,b6] ~@3 [a5,a6]@2 [b5,b6]!2 [g4,g5]@2]>`))
let bass_chorus = bass(note(`<[[c2@2 [g2,c3]]!4] [[d2@2 [a3,d3]]!4]
[[g2@2 [b3,d3]]!2 [f#2@2 [a3,d3]]!2] [[e2@2 [b3,e3]]!4] [[c2@2 [g2,c3]]!4]
[[d2@2 [a3,d3]]!4] [[g2@2 [b3,d3]]!2 [f#2@2 [a3,d3]]!2] [[e2@2 [b3,e3]]!4]>`))
let treble_postchorus1 = treble(note(`<[[e4,e5] [g4, g5] [c5, c6] [b5, b6]] [[d4, d5] [f#4, f#5] [e5,e6] [d5,d6]] [[g4,g5]@3 [b5,b6]@3 [a6,a7]@3 [f#5,f#6]@2 [g5,g6]]
[[g5,g6]@3 [e5,e6]@3 ~@3 [f#4,f#5]@3] [[e4,e5] [g4, g5] [c5, c6] [b5, b6]] [[d4, d5] [f#4, f#5] [e5,e6] [d5,d6]]
[[g4,g5]@3 [b5,b6]@3 [a6,a7]@3 [f#5,f#6]@2 [g5,g6]] [[g5,g6]@3 [g5,g6]@2 [e5,e6] ~@6]>`))
let bass_postchorus1 = bass(note(`<[[c2@2 [g2,c3]]!4] [[d2@2 [a3,d3]]!4] [[g2@2 [b3,d3]]!2 [f#2@2 [a3,d3]]!2]
[[e2@2 [b3,e3]]!4] [[c2@2 [g2,c3]]!4] [[d2@2 [a3,d3]]!4] [[g2@2 [b3,d3]]!2 [f#2@2 [a3,d3]]!2] [e2@2 [b3, e3] e2@2 [e1,e2] ~@6]>`))
let treble_verse2 = treble(note(`<[~@8 g4@2!2]
[a6 g5@2 g5 f#5 f#5@2 f#5] [f#5 e5 d5@3 ~ b5 b5@2] [e5@2 ~ d5 b5 b5@3] [b5@2 ~@4 g4@2!2]
[a6 g5@3 f#5!4] [f#5@2 e5 d5@3 ~ b5@2 b5@2 e5@2] [e5@2 ~ d5 d5 d5@2 b5@2 b5@2] [b5@2 ~@8]>`))
let bass_verse2 = bass(note(`<[e1,e2]
[g3,b4,e4] [f#3,a4,d4] [f#3,a4,d4] [e3,g3,c4]
[b4,d4,g4] [a4, d4, f#4] [a4, d4, f#4] [g3,c4,e4]>`))
let treble_prechorus2 = treble(note(`<[e4 g4 c5 b5] [d4 f#4 e5 d5] [b5@3 d5@3 a6@3 f#5@2 g5] [g5@2 e5 ~@6 f#5@3]
[e5 g5 [c5,c6] [b5,b6]] [d5 f#5 [e5,e6] [d5,d6]] [[b5,b6]@3 [b5,b6]@2!2 [b5,b6]@3 [d5,d6]@2] [[d5,d6]@6 [g5,g6]@2 [f#5,f#6]!2 [e5,e6]@2]>`))
let bass_prechorus2 = bass(note(`<[e3,g3,b4] [d3,f#3,a4] [f#3,b4,d4] [g3,c4,e4]
[g3,b4,e4] [f#3,b4,d4] [g3,c4,e4] [a4,d4,f#4]
>`))
let treble_trans_to_outro = treble(note(`<[[g4,g5]@3 [b5,b6]@3 [a6,a7]@3 [f#5,f#6]@2 [g5,g6]] [[g5,g6]@3 [e5,e6]@3 [d5,d6]@2 [d5,d6] [d5,d6]@2 [a5,a6]]>`))
let bass_trans_to_outro = bass(note(`<[[g2@2 [b3,d3]]!4] [[e2@2 [b3,e3]]!4]>`))
let treble_outro = treble(note(`<[[a5,a6]!6 [a5,a6]@2 [b5,b6] [b5,b6]@2 [g4,g5]] [[a5,a6]!6 ~@6] [[a5,a6]!6 [a5,a6]@2 [b5,b6] [b5,b6]@2 [g4,g5]] [[a5,a6]!6 ~@2 [a5,a6] [a5,a6]@2 [g4,g5]]>`))
let bass_outro = bass(note(`<[[c2@2 [g2,c3]]!4] [[d2@2 [a3,d3]]!4] [[g2@2 [b3,d3]]!2 [f#2@2 [a3,d3]]!2] [[e2@2 [b3,e3]]!4]>`))
let treble_postchorus2 = treble(note(`<[[e4,e5] [g4, g5] [c5, c6] [b5, b6]] [[d4, d5] [f#4, f#5] [e5,e6] [d5,d6]] [[g4,g5]@3 [b5,b6]@3 [a6,a7]@3 [f#5,f#6]@2 [g5,g6]]
[[g5,g6]@6 [g5,g6]@3 ~@3] [[e4,e5] [g4, g5] [c5, c6] [b5, b6]] [[d4, d5] [f#4, f#5] [e5,e6] [d5,d6]]>`))
let bass_postchorus2 = bass(note(`<[[c2@2 [g2,c3]]!4] [[d2@2 [a3,d3]]!4] [[g2@2 [b3,d3]]!2 [f#2@2 [a3,d3]]!2]
[[e2@2 [b3,e3]]!4] [[c2@2 [g2,c3]]!4] [[d2@2 [a3,d3]]!4]>`))
// drums
let reverse_symbol = s("<~@6 gm_reverse_cymbal:1/2>").gain(1.5)
let kick = drumBus(sound("<[bd!4]!4 [bd!4,[mt!3 ~@10]] [bd!4]!2 [bd!12]>"))
let drums = stack(drumBus(sound("[bd ~ [bd,sd] ~]!2")),highhatBus(sound("hh!12")))
let drums_w_drumfill = stack(drumBus(sound("<[[bd ~ [bd,sd] ~]!2]!7 [sd sd sd sd sd sd ht ht ht mt mt mt, ~@5 cr]>")),highhatBus(sound("<[hh!12]!7 [~]>")))
let drums_w_drumfill_short = stack(drumBus(sound("<[[bd ~ [bd,sd] ~]!2]!3 [sd sd sd sd sd sd ht ht ht mt mt mt, ~@2 cr]>")),highhatBus(sound("<[hh!12]!3 [~]>")))
let drums_prechorus = drumBus(sound("<[~]@4 [sd!8 ~@4]!3 [sd!12]>"))
let drums_postchorus = stack(drumBus(sound("<[[bd ~ [bd,sd] ~]!2]!7 [bd!12,ht!12,mt!12]!0.5 [~]>")),highhatBus(sound("<[hh!12]!7 [~]>")))
let drums_postchorus_short = stack(drumBus(sound("<[[bd ~ [bd,sd] ~]!2]!3 [bd!4]>")),highhatBus(sound("<[hh!12]!3 [~]>")))
arrange(
[8,stack(treble_intro,bass_intro,reverse_symbol)],
[8,stack(treble_verse1a,bass_verse1a,kick)],
[8,stack(treble_verse1b,bass_verse1b,drums_w_drumfill)],
[8,stack(treble_prechorus1,bass_prechorus1,drums_prechorus)],
[8,stack(treble_chorus,bass_chorus,drums)],
[8,stack(treble_postchorus1,bass_postchorus1,drums_postchorus)],
[9,stack(treble_verse2,bass_verse2)],
[8,stack(treble_prechorus2,bass_prechorus2,reverse_symbol)],
[8,stack(treble_chorus,bass_chorus,drums_w_drumfill)],
[6,stack(treble_postchorus2,bass_postchorus2,drums)],
[2,stack(treble_trans_to_outro,bass_trans_to_outro,drums)],
[4,stack(treble_outro,bass_outro,drums)],
[4,stack(treble_postchorus2,bass_postchorus2,drums_postchorus_short)],
[8,stack(treble_intro,bass_intro,reverse_symbol)]
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment