The DuckTales stage theme everyone names first, arpeggios and all.
1# The Moon, from DuckTales on the NES: a score for one speaker2# https://lab.glossema.dev/play/moon3# F sharp major, 140 bpm. The figure climbs F# C# F# G#; the melody enters on A# B C#.45:localbeat 428ms;67:globalnotes{8"F#4"=370;"G#4"=415;"A4"=440;"A#4"=466;"B4"=494;9"C#5"=554;"D#5"=622;"E5"=659;"F5"=698;"F#5"=740;"G#5"=831;10"A5"=880;"A#5"=932;"B5"=988;"C#6"=1109;"D6"=1175;11"F#6"=1480;"G#6"=1661;"A#6"=1865;"B6"=197612};1314:globaldurs{15"e"=($beat/ 2);16"q"=$beat;17"q."=(($beat* 3)/ 2);18"h"=($beat* 2);19"h."=($beat* 3);20"w"=($beat* 4)21};2223# $play "NOTE:dur" sounds one note and waits out its slot; "-" is a rest24:globalplaydo={25:globalnotes;26:globaldurs;27:localcut[:find$1":"];28:localnote[:pick$1 0 $cut];29:localkey[:pick$1($cut+ 1)[:len$1]];30:locallen($durs->$key);31:if($note!="-")do={32:beepfrequency=($notes->$note)length=($len- 20ms);33 }34:delay$len;35}3637# 1. Arpeggio: the broken chord as the game plays it, fifteen eighths round and round,38# then it settles into four-four with one more C# and the bass walks in39:put"Arpeggio";40:localfigure{41"F#5:e";"C#6:e";"F#6:e";"G#6:e";"C#6:e";"F#6:e";"G#6:e";42"B6:e";"C#6:e";"B6:e";"A#6:e";"C#6:e";"A#6:e";"G#6:e";"F#6:e"43};44:forifrom=1 to=3 do={:foreachnin=$figuredo={$play$n;}}45:localsteady{46"F#5:e";"C#6:e";"F#6:e";"G#6:e";"C#6:e";"F#6:e";"G#6:e";"C#6:e";47"B6:e";"C#6:e";"B6:e";"A#6:e";"C#6:e";"A#6:e";"G#6:e";"F#6:e"48};49:foreachnin=$steadydo={$play$n;}5051# 2. Melody: half a figure, then the tune walks in on A# B C#; every long note is cut to ring52# and the figure sounds through the gaps, as it does under the game's melody53:put"Melody";54:localpickup{55"F#5:e";"C#6:e";"F#6:e";"G#6:e";"A#4:e";"B4:e";"C#5:e";"C#5:q."56};57:localtheme{58"F#5:q";"F5:q";"F#5:q";59"G#5:q";"A#5:e";"F#5:h";"C#6:e";60"B6:e";"C#6:e";"B6:e";"A#6:e";"C#6:e";"A#6:e";"F5:e";"F#5:e";61"C#6:q.";"F#5:e";"F#5:h";62"B6:e";"C#6:e";"B6:e";"A#6:e";"C#6:e";"A#6:e";"F#5:e";"F#5:e"63};64:localanswer{65"F#5:h";"-:e";"G#5:e";"F#5:e";"F5:h";66"A#6:e";"C#6:e";"A#6:e";"G#6:e";"F#6:e";67"A#4:h";"-:e";"G#4:e";"F#4:e";"C#5:h";68"-:e";"F#5:q";"G#5:q";69"B5:q.";"A#5:e";"A#5:h";70"B6:e";"C#6:e";"B6:e";"A#6:e";"C#6:q";"B5:q";71"A#5:e";"B5:e";"A#5:e";"F#5:q";"C#5:q.";72"-:e";"G#5:e";"F#5:e";"F5:e";"D#5:e";"F5:q.";73"F#5:q";"D6:e";"F#5:q";"G#6:e";"F#5:h";74"B5:e";"A#5:e";"F#5:e";"C#5:e";"B4:e";"A#4:e"75};76:foreachnin=$pickupdo={$play$n;}77:foreachnin=$themedo={$play$n;}78:foreachnin=$answerdo={$play$n;}7980# 3. Climb: the second half, in pairs of repeated notes over new chords, rising twice81# and the second time all the way to the high C#, which is left ringing82:put"Climb";83:localclimb{84"F#5:e";"F#5:e";"-:q";"G#5:e";"G#5:e";"-:e";"E5:h";85"C#5:q";"E5:e";"C#5:e";"A4:e";86"B4:q";"A4:e";"B4:e";"-:e";"A4:e";"-:e";"C#5:h.";87"-:q.";88"F#5:e";"F#5:e";"-:q";"G#5:e";"G#5:e";"-:e";"A5:q";89"E5:q";"E5:q";"E5:e";"A5:e";"B5:h.";90"-:e";"A5:e";"C#6:h";91"-:q";"C#6:e";"C#6:e";"C#6:h"92};93:foreachnin=$climbdo={$play$n;}9495# 4. Return: the figure comes back under the ringing C#, the tune enters once more,96# then the game's own falling run closes on a low F sharp97:put"Return";98:localtail{99"G#6:e";"C#6:e";"F#6:e";"G#6:e";"C#6:e";100"B6:e";"C#6:e";"B6:e";"A#6:e";"C#6:e";"A#6:e";"G#6:e";"F#6:e"101};102:localclose{103"F#5:h.";"-:q";104"F#6:e";"C#6:e";"B5:e";"A#5:e";"F#5:e";"C#5:e";"B4:e";"A#4:e";105"F#4:w"106};107:foreachnin=$taildo={$play$n;}108:foreachnin=$pickupdo={$play$n;}109:foreachnin=$themedo={$play$n;}110:foreachnin=$closedo={$play$n;}
/
NoteFreqLine
On the router: paste the script into a terminal, or upload the file and run it.