RouterOS beeper player
Prince of Persia
The DOS game’s own speaker line, two octaves up: the title theme, slowing where the game slows, then a strain of the ending music, stopped on its high G.
1# Prince of Persia, title theme and a strain of the ending, music by Francis Mechner - https://lab.glossema.dev/play/prince-of-persia2# grid: unit 45ms, bar 2160ms3# The DOS game's own PC-speaker line, two octaves up.4# Opens on D with the turn D-Eb-F#; 111 beats per minute slowing to 80.5# Then the ending's strain in triplet time at 119, landing on G.6# The grid lines stand wherever the ruler changes: before bars 5, 6, 7, 8 and 11.78# ---- Title ----9:put "Title";10# bar 111:beep frequency=294 length=540ms; # D412:delay 540ms;13:beep frequency=440 length=159ms; # A414:delay 180ms;15:beep frequency=440 length=159ms; # A416:delay 180ms;17:beep frequency=440 length=135ms; # A418:delay 135ms;19:beep frequency=466 length=45ms; # A#420:delay 45ms;21:beep frequency=440 length=519ms; # A422:delay 540ms;23:beep frequency=440 length=495ms; # A424:delay 495ms;25:beep frequency=622 length=45ms; # D#526:delay 45ms;2728# bar 229:beep frequency=587 length=540ms; # D530:delay 540ms;31:beep frequency=440 length=159ms; # A432:delay 180ms;33:beep frequency=440 length=159ms; # A434:delay 180ms;35:beep frequency=440 length=180ms; # A436:delay 180ms;37:beep frequency=587 length=540ms; # D538:delay 540ms;39:beep frequency=622 length=180ms; # D#540:delay 180ms;41:beep frequency=740 length=180ms; # F#542:delay 180ms;43:beep frequency=622 length=180ms; # D#544:delay 180ms;4546# bar 347:beep frequency=587 length=540ms; # D548:delay 540ms;49:beep frequency=440 length=159ms; # A450:delay 180ms;51:beep frequency=440 length=159ms; # A452:delay 180ms;53:beep frequency=440 length=135ms; # A454:delay 135ms;55:beep frequency=466 length=45ms; # A#456:delay 45ms;57:beep frequency=440 length=519ms; # A458:delay 540ms;59:beep frequency=440 length=495ms; # A460:delay 495ms;61:beep frequency=831 length=45ms; # G#562:delay 45ms;6364# bar 465:beep frequency=784 length=540ms; # G566:delay 540ms;67:beep frequency=587 length=159ms; # D568:delay 180ms;69:beep frequency=587 length=159ms; # D570:delay 180ms;71:beep frequency=587 length=180ms; # D572:delay 180ms;73:beep frequency=784 length=540ms; # G574:delay 540ms;75:beep frequency=831 length=180ms; # G#576:delay 180ms;77:beep frequency=988 length=180ms; # B578:delay 180ms;79:beep frequency=831 length=180ms; # G#580:delay 180ms;8182# grid: unit 25ms, bar 3275ms83# bar 584:beep frequency=784 length=600ms; # G585:delay 600ms;86:beep frequency=587 length=196ms; # D587:delay 225ms;88:beep frequency=587 length=196ms; # D589:delay 225ms;90:beep frequency=587 length=175ms; # D591:delay 175ms;92:beep frequency=622 length=50ms; # D#593:delay 50ms;94:beep frequency=587 length=688ms; # D595:delay 750ms;96:beep frequency=587 length=1250ms; # D597:delay 1250ms;9899# grid: unit 125ms, bar 3000ms100# bar 6101:beep frequency=494 length=721ms; # B4102:delay 750ms;103:beep frequency=494 length=1063ms; # B4104:delay 1125ms;105:beep frequency=494 length=96ms; # B4106:delay 125ms;107:beep frequency=494 length=96ms; # B4108:delay 125ms;109:beep frequency=494 length=96ms; # B4110:delay 125ms;111:beep frequency=988 length=721ms; # B5112:delay 750ms;113114# grid: unit 94ms, bar 3008ms115# bar 7116:beep frequency=659 length=940ms; # E5117:delay 940ms;118:beep frequency=698 length=188ms; # F5119:delay 188ms;120:beep frequency=831 length=188ms; # G#5121:delay 188ms;122:beep frequency=698 length=188ms; # F5123:delay 188ms;124:beep frequency=659 length=470ms; # E5125:delay 470ms;126:beep frequency=698 length=94ms; # F5127:delay 94ms;128:beep frequency=831 length=94ms; # G#5129:delay 94ms;130:beep frequency=698 length=94ms; # F5131:delay 94ms;132:beep frequency=659 length=752ms; # E5133:delay 752ms;134135# grid: unit 188ms, bar 2256ms136# bar 8137:beep frequency=880 length=940ms; # A5138:delay 940ms;139:beep frequency=932 length=188ms; # A#5140:delay 188ms;141:beep frequency=1109 length=188ms; # C#6142:delay 188ms;143:beep frequency=932 length=188ms; # A#5144:delay 188ms;145:beep frequency=880 length=723ms; # A5146:delay 752ms;147148# bar 9149:beep frequency=440 length=940ms; # A4150:delay 940ms;151:beep frequency=466 length=188ms; # A#4152:delay 188ms;153:beep frequency=554 length=188ms; # C#5154:delay 188ms;155:beep frequency=466 length=188ms; # A#4156:delay 188ms;157:beep frequency=440 length=1500ms; # A4158:delay 752ms;159160# bar 10161:delay 752ms; # A4 held162:delay 1504ms; # rest, beats 2-3163164# ---- Ending ----165:put "Ending";166# grid: unit 42ms, bar 2016ms167# bar 11168:delay 504ms; # rest, beat 1169:beep frequency=880 length=147ms; # A5170:delay 168ms;171:beep frequency=880 length=147ms; # A5172:delay 168ms;173:beep frequency=880 length=126ms; # A5174:delay 126ms;175:beep frequency=932 length=42ms; # A#5176:delay 42ms;177:beep frequency=880 length=483ms; # A5178:delay 504ms;179:beep frequency=880 length=462ms; # A5180:delay 462ms;181:beep frequency=622 length=42ms; # D#5182:delay 42ms;183184# bar 12185:beep frequency=587 length=504ms; # D5186:delay 504ms;187:beep frequency=440 length=147ms; # A4188:delay 168ms;189:beep frequency=440 length=147ms; # A4190:delay 168ms;191:beep frequency=440 length=168ms; # A4192:delay 168ms;193:beep frequency=587 length=504ms; # D5194:delay 504ms;195:beep frequency=622 length=168ms; # D#5196:delay 168ms;197:beep frequency=740 length=168ms; # F#5198:delay 168ms;199:beep frequency=622 length=168ms; # D#5200:delay 168ms;201202# bar 13203:beep frequency=587 length=504ms; # D5204:delay 504ms;205:beep frequency=440 length=147ms; # A4206:delay 168ms;207:beep frequency=440 length=147ms; # A4208:delay 168ms;209:beep frequency=440 length=126ms; # A4210:delay 126ms;211:beep frequency=466 length=42ms; # A#4212:delay 42ms;213:beep frequency=440 length=462ms; # A4214:delay 504ms;215:beep frequency=440 length=462ms; # A4216:delay 462ms;217:beep frequency=831 length=42ms; # G#5218:delay 42ms;219220# bar 14221:beep frequency=784 length=504ms; # G5222:delay 504ms;223:beep frequency=587 length=147ms; # D5224:delay 168ms;225:beep frequency=587 length=147ms; # D5226:delay 168ms;227:beep frequency=587 length=168ms; # D5228:delay 168ms;229:beep frequency=784 length=504ms; # G5230:delay 504ms;231:beep frequency=831 length=168ms; # G#5232:delay 168ms;233:beep frequency=988 length=168ms; # B5234:delay 168ms;235:beep frequency=831 length=168ms; # G#5236:delay 168ms;237238# bar 15239:beep frequency=784 length=504ms; # G5240:delay 504ms;241:beep frequency=587 length=147ms; # D5242:delay 168ms;243:beep frequency=587 length=147ms; # D5244:delay 168ms;245:beep frequency=587 length=126ms; # D5246:delay 126ms;247:beep frequency=622 length=42ms; # D#5248:delay 42ms;249:beep frequency=587 length=462ms; # D5250:delay 504ms;251:beep frequency=587 length=504ms; # D5252:delay 504ms;253254# bar 16255:beep frequency=392 length=504ms; # G4256:delay 504ms;257:beep frequency=587 length=147ms; # D5258:delay 168ms;259:beep frequency=587 length=147ms; # D5260:delay 168ms;261:beep frequency=587 length=126ms; # D5262:delay 126ms;263:beep frequency=622 length=42ms; # D#5264:delay 42ms;265:beep frequency=587 length=504ms; # D5266:delay 504ms;267:beep frequency=622 length=168ms; # D#5268:delay 168ms;269:beep frequency=740 length=168ms; # F#5270:delay 168ms;271:beep frequency=622 length=168ms; # D#5272:delay 168ms;273274# bar 17275:beep frequency=587 length=462ms; # D5276:delay 504ms;277:beep frequency=587 length=147ms; # D5278:delay 168ms;279:beep frequency=587 length=147ms; # D5280:delay 168ms;281:beep frequency=587 length=126ms; # D5282:delay 126ms;283:beep frequency=622 length=42ms; # D#5284:delay 42ms;285:beep frequency=587 length=504ms; # D5286:delay 504ms;287:beep frequency=740 length=168ms; # F#5288:delay 168ms;289:beep frequency=932 length=168ms; # A#5290:delay 168ms;291:beep frequency=740 length=168ms; # F#5292:delay 168ms;293294# bar 18295:beep frequency=587 length=483ms; # D5296:delay 504ms;297:beep frequency=587 length=168ms; # D5298:delay 168ms;299:beep frequency=740 length=168ms; # F#5300:delay 168ms;301:beep frequency=587 length=168ms; # D5302:delay 168ms;303:beep frequency=466 length=483ms; # A#4304:delay 504ms;305:beep frequency=466 length=168ms; # A#4306:delay 168ms;307:beep frequency=587 length=168ms; # D5308:delay 168ms;309:beep frequency=466 length=168ms; # A#4310:delay 168ms;311312# bar 19313:beep frequency=392 length=504ms; # G4314:delay 504ms;315:beep frequency=294 length=147ms; # D4316:delay 168ms;317:beep frequency=294 length=147ms; # D4318:delay 168ms;319:beep frequency=294 length=126ms; # D4320:delay 126ms;321:beep frequency=311 length=42ms; # D#4322:delay 42ms;323:beep frequency=294 length=504ms; # D4324:delay 504ms;325:beep frequency=370 length=168ms; # F#4326:delay 168ms;327:beep frequency=466 length=168ms; # A#4328:delay 168ms;329:beep frequency=370 length=168ms; # F#4330:delay 168ms;331332# bar 20333:beep frequency=294 length=483ms; # D4334:delay 504ms;335:beep frequency=294 length=168ms; # D4336:delay 168ms;337:beep frequency=370 length=168ms; # F#4338:delay 168ms;339:beep frequency=294 length=168ms; # D4340:delay 168ms;341:beep frequency=233 length=483ms; # A#3342:delay 504ms;343:beep frequency=233 length=168ms; # A#3344:delay 168ms;345:beep frequency=294 length=168ms; # D4346:delay 168ms;347:beep frequency=233 length=168ms; # A#3348:delay 168ms;349350# bar 21351:beep frequency=196 length=483ms; # G3352:delay 504ms;353:beep frequency=196 length=147ms; # G3354:delay 168ms;355:beep frequency=196 length=147ms; # G3356:delay 168ms;357:beep frequency=196 length=126ms; # G3358:delay 126ms;359:beep frequency=208 length=42ms; # G#3360:delay 42ms;361:beep frequency=196 length=483ms; # G3362:delay 504ms;363:beep frequency=196 length=504ms; # G3364:delay 504ms;365366# bar 22367:beep frequency=880 length=504ms; # A5368:delay 504ms;369:beep frequency=622 length=147ms; # D#5370:delay 168ms;371:beep frequency=622 length=147ms; # D#5372:delay 168ms;373:beep frequency=622 length=168ms; # D#5374:delay 168ms;375:beep frequency=880 length=504ms; # A5376:delay 504ms;377:beep frequency=740 length=168ms; # F#5378:delay 168ms;379:beep frequency=880 length=168ms; # A5380:delay 168ms;381:beep frequency=740 length=168ms; # F#5382:delay 168ms;383384# bar 23385:beep frequency=784 length=504ms; # G5386:delay 504ms;387:beep frequency=587 length=147ms; # D5388:delay 168ms;389:beep frequency=587 length=147ms; # D5390:delay 168ms;391:beep frequency=587 length=168ms; # D5392:delay 168ms;393:beep frequency=784 length=504ms; # G5394:delay 504ms;395:beep frequency=587 length=168ms; # D5396:delay 168ms;397:beep frequency=784 length=168ms; # G5398:delay 168ms;399:beep frequency=1047 length=168ms; # C6400:delay 168ms;401402# bar 24403:beep frequency=932 length=168ms; # A#5404:delay 168ms;405:beep frequency=784 length=168ms; # G5406:delay 168ms;407:beep frequency=587 length=168ms; # D5408:delay 168ms;409:beep frequency=784 length=168ms; # G5410:delay 168ms;411:beep frequency=932 length=168ms; # A#5412:delay 168ms;413:beep frequency=1245 length=168ms; # D#6414:delay 168ms;415:beep frequency=1175 length=168ms; # D6416:delay 168ms;417:beep frequency=932 length=168ms; # A#5418:delay 168ms;419:beep frequency=784 length=168ms; # G5420:delay 168ms;421:beep frequency=880 length=168ms; # A5422:delay 168ms;423:beep frequency=1175 length=168ms; # D6424:delay 168ms;425:beep frequency=1480 length=168ms; # F#6426:delay 168ms;427428# bar 25429:beep frequency=1568 length=1500ms; # G6430:delay 1500ms;On the router: paste the script into a terminal, or upload the file and run it.
Script output
Write your own
Ask for a tune you may arrange: your own, one out of copyright, or one you are licensed to use.
Have a MIDI file? altucor’s converter turns it into a script.
How it works
One command sounds one tone: :beep frequency=<hertz> length=<time>; the beeper plays one note at a time.
:delay is the clock. A beep starts the tone and returns at once, so every note is a beep followed by a delay of the same length and a small gap.
Most tunes here are written out note by note, a beep and a delay each; some also come as code, with loops, tables and functions, that plays the very same notes. Download any of these and run it in a terminal.