-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathfrequency-generator.html
More file actions
93 lines (92 loc) · 11.2 KB
/
frequency-generator.html
File metadata and controls
93 lines (92 loc) · 11.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Free Morse Code Audio Player — Hear Morse Beeps</title>
<meta name="description" content="Convert text to Morse code with audio playback. Adjust speed and frequency. Learn Morse code with visual and audio feedback. Free online Morse code player.">
<link rel="canonical" href="https://www.quicktools.mom/frequency-generator.html">
<meta property="og:title" content="">
<meta property="og:description" content="">
<meta property="og:type" content="website">
<meta property="og:url" content="https://www.quicktools.mom/frequency-generator.html">
<meta name="twitter:card" content="summary">
<link rel="stylesheet" href="style.css">
<script async src="https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js?client=ca-pub-2658921743607446" crossorigin="anonymous"></script>
<script type="application/ld+json">{"@context":"https://schema.org","@type":"FAQPage","mainEntity":[{"@type":"Question","name":"Is Sound Frequency Generator free to use?","acceptedAnswer":{"@type":"Answer","text":"Yes! Sound Frequency Generator is completely free with no signup required. It runs entirely in your browser — your data never leaves your device."}},{"@type":"Question","name":"How do I use Sound Frequency Generator?","acceptedAnswer":{"@type":"Answer","text":"Simply enter your values in the input fields above and the results update instantly. No button clicks needed — everything calculates in real-time."}},{"@type":"Question","name":"Is my data safe with Sound Frequency Generator?","acceptedAnswer":{"@type":"Answer","text":"Absolutely. Sound Frequency Generator runs 100% client-side in your browser using JavaScript. No data is uploaded, stored, or shared with any server. Your privacy is guaranteed."}}]}</script>
</head>
<body>
<div class="page-wrapper">
<header class="site-header"><a href="index.html" class="site-logo"><span class="icon">⚡</span> QuickTools</a><nav class="site-nav"><a href="index.html">All Tools</a></nav></header>
<div class="ad-zone ad-zone-top">Ad Space — 728×90</div>
<div class="tool-header"><div class="tool-badge">🔊 Audio</div><h1>Sound Frequency Generator</h1><p>Generate pure tones at any frequency. Test speakers, hearing range, and audio equipment.</p></div>
<div class="tool-card" style="text-align:center;">
<div style="font-size:4rem;font-weight:700;font-family:monospace;color:var(--accent-hover);"><span id="freqDisplay">440</span> Hz</div>
<div id="noteDisplay" style="font-size:1.2rem;color:var(--text-muted);margin-bottom:1rem;">A4</div>
<input type="range" id="freq" min="20" max="20000" value="440" step="1" oninput="updateFreq()" style="width:100%;margin:1rem 0;">
<div style="display:flex;justify-content:space-between;font-size:0.75rem;color:var(--text-muted);"><span>20 Hz</span><span>1kHz</span><span>5kHz</span><span>10kHz</span><span>20kHz</span></div>
<div class="controls-row mt-2" style="justify-content:center;">
<div class="control-group"><label>Waveform</label><select id="wave" onchange="updateWave()"><option value="sine">Sine</option><option value="square">Square</option><option value="sawtooth">Sawtooth</option><option value="triangle">Triangle</option></select></div>
<div class="control-group"><label>Volume</label><input type="range" id="vol" min="0" max="1" step="0.05" value="0.3" oninput="updateVol()"></div>
</div>
<div style="display:flex;gap:0.3rem;flex-wrap:wrap;justify-content:center;margin-top:1rem;">
<button class="btn btn-secondary" onclick="setFreq(261.63,'C4')" style="font-size:0.75rem;">C4</button>
<button class="btn btn-secondary" onclick="setFreq(293.66,'D4')" style="font-size:0.75rem;">D4</button>
<button class="btn btn-secondary" onclick="setFreq(329.63,'E4')" style="font-size:0.75rem;">E4</button>
<button class="btn btn-secondary" onclick="setFreq(349.23,'F4')" style="font-size:0.75rem;">F4</button>
<button class="btn btn-secondary" onclick="setFreq(392,'G4')" style="font-size:0.75rem;">G4</button>
<button class="btn btn-secondary" onclick="setFreq(440,'A4')" style="font-size:0.75rem;">A4</button>
<button class="btn btn-secondary" onclick="setFreq(493.88,'B4')" style="font-size:0.75rem;">B4</button>
<button class="btn btn-secondary" onclick="setFreq(523.25,'C5')" style="font-size:0.75rem;">C5</button>
</div>
<button id="playBtn" class="btn btn-primary mt-2" onclick="togglePlay()" style="font-size:1.1rem;padding:0.75rem 3rem;">▶ Play</button>
</div>
<div class="tool-card">
<h3 style="font-size:0.95rem;margin-bottom:0.75rem;">🎹 Hearing Range Test</h3>
<div style="display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:0.5rem;">
<button class="btn btn-secondary" onclick="testFreq(100)" style="font-size:0.7rem;">100 Hz (Bass)</button>
<button class="btn btn-secondary" onclick="testFreq(500)" style="font-size:0.7rem;">500 Hz</button>
<button class="btn btn-secondary" onclick="testFreq(1000)" style="font-size:0.7rem;">1 kHz</button>
<button class="btn btn-secondary" onclick="testFreq(4000)" style="font-size:0.7rem;">4 kHz</button>
<button class="btn btn-secondary" onclick="testFreq(8000)" style="font-size:0.7rem;">8 kHz</button>
<button class="btn btn-secondary" onclick="testFreq(12000)" style="font-size:0.7rem;">12 kHz</button>
<button class="btn btn-secondary" onclick="testFreq(15000)" style="font-size:0.7rem;">15 kHz</button>
<button class="btn btn-secondary" onclick="testFreq(18000)" style="font-size:0.7rem;">18 kHz ⚠️</button>
</div>
</div>
<div class="ad-zone">Ad Space — 336×280</div>
<div class="related-tools"><h2>Related Tools</h2><div class="related-grid"><a href="text-to-speech.html"><span class="tool-icon">🗣️</span> Text to Speech</a><a href="morse-code.html"><span class="tool-icon">📡</span> Morse Code</a><a href="stopwatch.html"><span class="tool-icon">⏱️</span> Stopwatch</a><a href="unit-converter.html"><span class="tool-icon">📏</span> Unit Converter</a></div></div>
<div class="tool-card" style="max-width:720px;">
<h2 style="font-size:1rem;margin-bottom:0.75rem;">📖 About Sound Frequency Generator</h2>
<p style="font-size:0.85rem;line-height:1.7;color:var(--text-muted);margin-bottom:0.75rem;">Sound Frequency Generator is a free, browser-based tool designed for developers, content creators, and marketers. Convert text to Morse code with audio playback. Adjust speed and frequency. Learn Morse code with visual and audio feedback. Free online Morse code player. Everything runs locally in your browser using JavaScript — no data is ever sent to a server, making it completely private and secure. The tool is designed to be intuitive and beginner-friendly while still offering advanced features for power users. It loads instantly with no installation required and works offline once loaded. Use it as often as you need — there are no daily limits, no watermarks, and no hidden fees.</p>
<h3 style="font-size:0.9rem;margin-bottom:0.5rem;">How to Use</h3>
<ol style="font-size:0.85rem;color:var(--text-muted);line-height:1.7;padding-left:1.2rem;">
<li>Enter or paste your data in the input area above.</li>
<li>Adjust settings and options to match your needs.</li>
<li>View the results instantly — they update in real-time.</li>
<li>Copy, download, or share your output with one click.</li>
</ol>
</div>
<div class="tool-card faq-section">
<h2 style="font-size:1.1rem;margin-bottom:1rem;">❓ Frequently Asked Questions</h2>
<details style="margin-bottom:0.75rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem;"><summary style="font-weight:600;cursor:pointer;font-size:0.9rem;">Is Sound Frequency Generator free to use?</summary><p style="margin-top:0.5rem;font-size:0.85rem;color:var(--text-muted);line-height:1.6;">Yes! Sound Frequency Generator is completely free with no signup required. It runs entirely in your browser — your data never leaves your device.</p></details>
<details style="margin-bottom:0.75rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem;"><summary style="font-weight:600;cursor:pointer;font-size:0.9rem;">How do I use Sound Frequency Generator?</summary><p style="margin-top:0.5rem;font-size:0.85rem;color:var(--text-muted);line-height:1.6;">Simply enter your values in the input fields above and the results update instantly. No button clicks needed — everything calculates in real-time.</p></details>
<details style="margin-bottom:0.75rem;border-bottom:1px solid var(--border);padding-bottom:0.75rem;"><summary style="font-weight:600;cursor:pointer;font-size:0.9rem;">Is my data safe with Sound Frequency Generator?</summary><p style="margin-top:0.5rem;font-size:0.85rem;color:var(--text-muted);line-height:1.6;">Absolutely. Sound Frequency Generator runs 100% client-side in your browser using JavaScript. No data is uploaded, stored, or shared with any server. Your privacy is guaranteed.</p></details>
</div>
<div class="ad-zone ad-zone-bottom">Ad Space — 728×90</div>
<footer class="site-footer"><p>© 2026 QuickTools.</p><div class="footer-links"><a href="index.html">All Tools</a><a href="#">Privacy</a></div></footer>
</div>
<script>
let audioCtx,osc,gain,playing=false;
function initAudio(){if(audioCtx)return;audioCtx=new(window.AudioContext||window.webkitAudioContext)();osc=audioCtx.createOscillator();gain=audioCtx.createGain();osc.connect(gain);gain.connect(audioCtx.destination);gain.gain.value=0;osc.start();}
function togglePlay(){initAudio();playing=!playing;gain.gain.setTargetAtTime(playing?+document.getElementById('vol').value:0,audioCtx.currentTime,0.01);document.getElementById('playBtn').textContent=playing?'⏸ Stop':'▶ Play';document.getElementById('playBtn').classList.toggle('btn-primary',!playing);document.getElementById('playBtn').classList.toggle('btn-secondary',playing);document.getElementById('playBtn').style.background=playing?'var(--danger)':'';}
function updateFreq(){const f=+document.getElementById('freq').value;document.getElementById('freqDisplay').textContent=f>=1000?(f/1000).toFixed(1)+'k':f;if(osc)osc.frequency.setTargetAtTime(f,audioCtx.currentTime,0.01);
const notes=['C','C#','D','D#','E','F','F#','G','G#','A','A#','B'];const n=Math.round(12*Math.log2(f/440)+69);const name=notes[n%12]+(Math.floor(n/12)-1);document.getElementById('noteDisplay').textContent=name;}
function updateWave(){if(osc)osc.type=document.getElementById('wave').value;}
function updateVol(){if(gain&&playing)gain.gain.setTargetAtTime(+document.getElementById('vol').value,audioCtx.currentTime,0.01);}
function setFreq(f,name){document.getElementById('freq').value=f;document.getElementById('freqDisplay').textContent=f;document.getElementById('noteDisplay').textContent=name;if(osc)osc.frequency.setTargetAtTime(f,audioCtx.currentTime,0.01);}
function testFreq(f){setFreq(f,'');document.getElementById('freq').value=f;updateFreq();if(!playing)togglePlay();setTimeout(()=>{if(playing)togglePlay();},2000);}
</script>
<script src="ads.js"></script>
</body>
</html>