Skip to content

Instantly share code, notes, and snippets.

@flesser
Last active August 29, 2015 14:13
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save flesser/61a57912bb6c811fe8f5 to your computer and use it in GitHub Desktop.
Save flesser/61a57912bb6c811fe8f5 to your computer and use it in GitHub Desktop.
Play music with the high-pitched noise some TFT monitors are emitting
<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