Last active
August 29, 2015 14:13
-
-
Save flesser/61a57912bb6c811fe8f5 to your computer and use it in GitHub Desktop.
Play music with the high-pitched noise some TFT monitors are emitting
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<html> | |
<body id="text" style="margin:0;padding:0;word-wrap: break-word; font-family: monospace;display:none;"> | |
<script> | |
/* | |
My monitor (DELL U2713H) emits an annoying high-pitched noise when displaying lots of text | |
on a white background. When I found out that the frequency seems to depend on the text size, | |
I created this little HTML/Javascript to play music on my monitor. | |
*/ | |
// songs from http://blog.meyju.net/2011/07/27/beep-sounds/ | |
axel = "beep -f 659 -l 460 -n -f 784 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 880 -l 230 -n -f 659 -l 230 -n -f 587 -l 230 -n -f 659 -l 460 -n -f 988 -l 340 -n -f 659 -l 230 -n -f 659 -l 110 -n -f 1047 -l 230 -n -f 988 -l 230 -n -f 784 -l 230 -n -f 659 -l 230 -n -f 988 -l 230 -n -f 1318 -l 230 -n -f 659 -l 110 -n -f 587 -l 230 -n -f 587 -l 110 -n -f 494 -l 230 -n -f 740 -l 230 -n -f 659 -l 460"; | |
mario = "beep -f 330 -l 137 -n -f 330 -l 275 -n -f 330 -l 137 -d 137 -n -f 262 -l 137 -n -f 330 -l 275 -n -f 392 -l 550 -d 550 -n -f 262 -l 412 -n -f 196 -l 137 -d 275 -n -f 164 -l 137 -d 137 -n -f 220 -l 275 -n -f 247 -l 137 -d 137 -n -f 233 -l 137 -n -f 220 -l 275 -n -f 196 -l 205 -n -f 330 -l 205 -n -f 392 -l 275 -n -f 440 -l 275 -n -f 349 -l 137 -n -f 392 -l 137 -d 137 -n -f 330 -l 275 -n -f 262 -l 137 -n -f 294 -l 137 -n -f 247 -l 412 -n -f 262 -l 412 -n -f 196 -l 137 -d 275 -n -f 164 -l 275 -d 137 -n -f 220 -l 275 -n -f 247 -l 137 -d 137 -n -f 233 -l 137 -n -f 220 -l 275 -n -f 196 -l 205 -n -f 330 -l 205 -n -f 392 -l 275 -n -f 440 -l 275 -n -f 349 -l 137 -n -f 392 -l 137 -d 137 -n -f 330 -l 275 -n -f 262 -l 137 -n -f 294 -l 137 -n -f 247 -l 412 -d 275 -n -f 392 -l 137 -n -f 370 -l 137 -n -f 349 -l 137 -n -f 311 -l 275 -n -f 330 -l 137 -d 137 -n -f 207 -l 137 -n -f 220 -l 137 -n -f 262 -l 137 -d 137 -n -f 220 -l 137 -n -f 262 -l 137 -n -f 294 -l 137 -d 275 -n -f 392 -l 137 -n -f 370 -l 137 -n -f 349 -l 137 -n -f 311 -l 275 -n -f 330 -l 137 -d 137 -n -f 523 -l 275 -n -f 523 -l 137 -n -f 523 -l 550 -n -f 392 -l 137 -n -f 370 -l 137 -n -f 349 -l 137 -n -f 311 -l 275 -n -f 330 -l 137 -d 137 -n -f 207 -l 137 -n -f 220 -l 137 -n -f 262 -l 137 -d 137 -n -f 220 -l 137 -n -f 262 -l 137 -n -f 294 -l 137 -d 275 -n -f 311 -l 275 -d 137 -n -f 294 -l 275 -n -f 262 -l 550 -d 550"; | |
ente = "beep -f 261 -n -f 294 -n -f 330 -n -f 349 -n -f 392 -l 400 -n -f 392 -l 400 -n -f 440 -n -f 440 -n -f 440 -n -f 440 -n -f 392 -l 800 -n -f 440 -n -f 440 -n -f 440 -n -f 440 -n -f 392 -l 800 -n -f 349 -n -f 349 -n -f 349 -n -f 349 -n -f 330 -l 400 -n -f 330 -l 400 -n -f 294 -n -f 294 -n -f 294 -n -f 294 -n -f 261 -l 800"; | |
elise = "beep -f 659 120 -n -f 622 120 -n -f 659 120 -n -f 622 120 -n -f 659 120 -n -f 94 120 -n -f 587 120 -n -f 523 120 -n -f 440 120 -n -f 262 120 -n -f 330 120 -n -f 440 120 -n -f 494 120 -n -f 330 120 -n -f 415 120 -n -f 494 120 -n -f 523 120 -n -f 330 120 -n -f 659 120 -n -f 622 120 -n -f 659 120 -n -f 622 120 -n -f 659 120 -n -f 494 120 -n -f 587 120 -n -f 523 120 -n -f 440 120 -n -f 262 120 -n -f 330 120 -n -f 440 120 -n -f 494 120 -n -f 330 120 -n -f 523 120 -n -f 494 120 -n -f 440 120"; | |
newyear = "beep -f 261 -l 500 -n -f 349 -l 500 -n -f 349 -l 250 -n -f 392 -l 250 -n -f 349 -l 250 -n -f 329 -l 250 -n -f 293 -l 500 -n -f 293 -l 500 -n -f 293 -l 500 -n -f 392 -l 500 -n -f 392 -l 250 -n -f 440 -l 250 -n -f 392 -l 250 -n -f 349 -l 250 -n -f 329 -l 500 -n -f 329 -l 500 -n -f 329 -l 500 -n -f 440 -l 500 -n -f 440 -l 250 -n -f 493 -l 250 -n -f 440 -l 250 -n -f 392 -l 250 -n -f 349 -l 500 -n -f 293 -l 500 -n -f 261 -l 250 -n -f 261 -l 250 -n -f 293 -l 500 -n -f 392 -l 500 -n -f 329 -l 500 -n -f 349 -l 1000 -n -f 261 -l 500 -n -f 349 -l 500 -n -f 349 -l 500 -n -f 349 -l 500 -n -f 329 -l 1000 -n -f 329 -l 500 -n -f 349 -l 500 -n -f 329 -l 500 -n -f 293 -l 500 -n -f 261 -l 1000 -n -f 392 -l 1000 -n -f 440 -l 500 -n -f 392 -l 250 -n -f 392 -l 250 -n -f 349 -l 250 -n -f 349 -l 250 -n -f 523 -l 500 -n -f 261 -l 500 -n -f 261 -l 250 -n -f 261 -l 250 -n -f 293 -l 500 -n -f 392 -l 500 -n -f 329 -l 500 -n -f 349 -l 1000"; | |
gedanken = "beep -f 392.0 -l 200 -n -f 392.0 -l 200 -n -f 523.2 -l 400 -n -f 523.2 -l 400 -n -f 659.2 -l 200 -n -f 523.2 -l 200 -n -f 392.0 -l 800 -n -f 392.0 -l 400 -n -f 349.2 -l 400 -n -f 293.7 -l 400 -n -f 392.0 -l 400 -n -f 329.6 -l 400 -n -f 261.6 -l 400 -n -f 392.0 -l 400 -n -f 523.2 -l 400 -n -f 523.2 -l 400 -n -f 659.2 -l 200 -n -f 523.2 -l 200 -n -f 392.0 -l 800 -n -f 392.0 -l 400 -n -f 349.2 -l 400 -n -f 293.7 -l 400 -n -f 392.0 -l 400 -n -f 329.6 -l 400 -n -f 261.6 -l 400 -n -f 523.2 -l 400 -n -f 493.9 -l 400 -n -f 587.3 -l 400 -n -f 493.9 -l 400 -n -f 523.2 -l 400 -n -f 659.2 -l 400 -n -f 523.2 -l 400 -n -f 493.9 -l 400 -n -f 587.3 -l 400 -n -f 493.9 -l 400 -n -f 523.2 -l 400 -n -f 659.2 -l 400 -n -f 523.2 -l 400 -n -f 440.0 -l 400 -n -f 440.0 -l 400 -n -f 523.2 -l 200 -n -f 440.0 -l 200 -n -f 392.0 -l 800 -n -f 392.0 -l 200 -n -f 659.2 -l 200 -n -f 659.2 -l 200 -n -f 587.3 -l 200 -n -f 523.2 -l 400 -n -f 493.9 -l 400 -n -f 523.2 -l 800" | |
march = "beep -l 350 -f 392 -D 100 -n -l 350 -f 392 -D 100 -n -l 350 -f 392 -D 100 -n -l 250 -f 311.1 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 350 -f 392 -D 100 -n -l 250 -f 311.1 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 700 -f 392 -D 100 -n -l 350 -f 587.32 -D 100 -n -l 350 -f 587.32 -D 100 -n -l 350 -f 587.32 -D 100 -n -l 250 -f 622.26 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 350 -f 369.99 -D 100 -n -l 250 -f 311.1 -D 100 -n -l 25 -f 466.2 -D 100 -n -l 700 -f 392 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 392 -D 100 -n -l 25 -f 392 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 739.98 -D 100 -n -l 25 -f 698.46 -D 100 -n -l 25 -f 659.26 -D 100 -n -l 25 -f 622.26 -D 100 -n -l 50 -f 659.26 -D 400 -n -l 25 -f 415.3 -D 200 -n -l 350 -f 554.36 -D 100 -n -l 250 -f 523.25 -D 100 -n -l 25 -f 493.88 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 25 -f 440 -D 100 -n -l 50 -f 466.16 -D 400 -n -l 25 -f 311.13 -D 200 -n -l 350 -f 369.99 -D 100 -n -l 250 -f 311.13 -D 100 -n -l 25 -f 392 -D 100 -n -l 350 -f 466.16 -D 100 -n -l 250 -f 392 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 700 -f 587.32 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 392 -D 100 -n -l 25 -f 392 -D 100 -n -l 350 -f 784 -D 100 -n -l 250 -f 739.98 -D 100 -n -l 25 -f 698.46 -D 100 -n -l 25 -f 659.26 -D 100 -n -l 25 -f 622.26 -D 100 -n -l 50 -f 659.26 -D 400 -n -l 25 -f 415.3 -D 200 -n -l 350 -f 554.36 -D 100 -n -l 250 -f 523.25 -D 100 -n -l 25 -f 493.88 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 25 -f 440 -D 100 -n -l 50 -f 466.16 -D 400 -n -l 25 -f 311.13 -D 200 -n -l 350 -f 392 -D 100 -n -l 250 -f 311.13 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 300 -f 392.00 -D 150 -n -l 250 -f 311.13 -D 100 -n -l 25 -f 466.16 -D 100 -n -l 700 -f 392"; | |
bells = "beep -f 659 -l 400 -d 0.05 -n -f 659 -l 400 -d 0.05 -n -f 659 -l 800 -d 0.05 -n -f 659 -l 400 -d 0.05 -n -f 659 -l 400 -d 0.05 -n -f 659 -l 800 -d 0.05 -n -f 659 -l 400 -d 0.05 -n -f 783 -l 400 -d 0.05 -n -f 523 -l 400 -d 0.05 -n -f 587 -l 400 -d 0.05 -n -f 659 -l 800"; | |
// select your desired song here | |
beep_command = gedanken; | |
beep_command = beep_command.substring(5); | |
chunks = beep_command.split(' -n '); | |
beeps = []; | |
min_freq = 20000; | |
max_freq = 0; | |
for(i=0; i < chunks.length; i++) { | |
beep = chunks[i].split(' '); | |
if(beep.length >= 4) { | |
beep = [beep[1], beep[3]]; | |
} else if(beep.length >= 3) { | |
beep = [beep[1], beep[2]]; | |
} else { | |
beep = [beep[1], 200]; | |
} | |
beeps.push(beep); | |
min_freq = Math.min(min_freq, beep[0]); | |
max_freq = Math.max(max_freq, beep[0]); | |
} | |
console.log(beeps); | |
min_size = 10; | |
max_size = 30; | |
function fontSizeByFrequency(freq) { | |
return max_size - (max_size - min_size) * (freq - min_freq) / (max_freq - min_freq); | |
} | |
for(i=0; i < 20000; i++) { | |
document.write('Musik!'); | |
} | |
text_container = document.getElementById('text'); | |
function do_beep(i) { | |
text_container.style.display = "block"; | |
f = beeps[i][0]; | |
t = beeps[i][1] * 1; | |
text_container.style.fontSize = fontSizeByFrequency(f); | |
i++; | |
if(i >= beeps.length) i = 0; | |
setTimeout("silence(" + i + ")", t); | |
} | |
function silence(i) { | |
text_container.style.display = "none"; | |
if(i == 0) { | |
t = 1000; | |
} else { | |
t = 50; | |
} | |
setTimeout("do_beep(" + i + ")", t); | |
} | |
setTimeout("do_beep(" + 0 + ")", 1000); | |
</script> | |
</body> | |
</html> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment