@@ -203,7 +203,7 @@ const iconSvgs = {
203203 return this.muted;
204204 },
205205
206- playClick: function(duration = 0.015, vol = 0.1 ) {
206+ playClick: function(duration = 0.015, vol = 0.25 ) {
207207 if (!this.ctx || this.muted) return;
208208 if (this.ctx.state === 'suspended') this.ctx.resume();
209209 try {
@@ -229,7 +229,7 @@ const iconSvgs = {
229229 } catch(e) { console.error('Audio error', e); }
230230 },
231231
232- playTone: function(freq, type, duration, vol = 0.1 ) {
232+ playTone: function(freq, type, duration, vol = 0.25 ) {
233233 if (!this.ctx || this.muted) return;
234234
235235 // Ensure context is running (sometimes browsers suspend it)
@@ -255,24 +255,24 @@ const iconSvgs = {
255255
256256 hover: function() {
257257 // High-pitched blip (6 frames)
258- this.playTone(440, 'sine', (FRAME_DURATION * 6) / 1000, 0.05 );
258+ this.playTone(440, 'sine', (FRAME_DURATION * 6) / 1000, 0.15 );
259259 },
260260
261261 select: function() {
262262 // Chime-like ding (Square wave)
263263 // 6 frames then 12 frames
264- this.playTone(660, 'square', (FRAME_DURATION * 6) / 1000, 0.05 );
265- setTimeout(() => this.playTone(880, 'square', (FRAME_DURATION * 12) / 1000, 0.05 ), FRAME_DURATION * 6);
264+ this.playTone(660, 'square', (FRAME_DURATION * 6) / 1000, 0.15 );
265+ setTimeout(() => this.playTone(880, 'square', (FRAME_DURATION * 12) / 1000, 0.15 ), FRAME_DURATION * 6);
266266 },
267267
268268 back: function() {
269269 // Low-pitched buzz (9 frames)
270- this.playTone(150, 'sawtooth', (FRAME_DURATION * 9) / 1000, 0.05 );
270+ this.playTone(150, 'sawtooth', (FRAME_DURATION * 9) / 1000, 0.15 );
271271 },
272272
273273 switch: function() {
274274 // Tab switch sound (6 frames)
275- this.playTone(300, 'triangle', (FRAME_DURATION * 6) / 1000, 0.05 );
275+ this.playTone(300, 'triangle', (FRAME_DURATION * 6) / 1000, 0.15 );
276276 }
277277 };
278278
0 commit comments