From 6dec8bf7cddf6dc7a33d697a67c2df74a3225077 Mon Sep 17 00:00:00 2001 From: b1rdmania <102524336+b1rdmania@users.noreply.github.com> Date: Tue, 20 Jan 2026 19:56:35 +0000 Subject: [PATCH] Simplify v2 - remove GBC/GBA/Clean presets - Removed sound mode buttons from UI - Simplified colorizer to just one clean GB sound - Less complexity, cleaner interface --- src-v2/audio/effects/GameBoyColorizer.ts | 59 +++++------------------- v2.html | 30 ------------ 2 files changed, 12 insertions(+), 77 deletions(-) diff --git a/src-v2/audio/effects/GameBoyColorizer.ts b/src-v2/audio/effects/GameBoyColorizer.ts index 0db802f..f76b09a 100644 --- a/src-v2/audio/effects/GameBoyColorizer.ts +++ b/src-v2/audio/effects/GameBoyColorizer.ts @@ -222,53 +222,18 @@ export class GameBoyColorizer { } /** - * Create a preset configuration. + * Create the default GB configuration. + * Simple, clean Game Boy sound. */ - static createPreset(preset: 'dmg' | 'gbc' | 'gba' | 'clean'): Partial { - switch (preset) { - case 'dmg': - // Original Game Boy - warm but clean - return { - enabled: true, - lowpassFreq: 8000, - bitDepth: 8, // Less harsh than 4-bit - sampleRateReduction: 1, // No SR reduction (causes artifacts) - saturation: 0.1, // Minimal saturation to avoid clicks - highpassFreq: 30, // Let bass through! - }; - - case 'gbc': - // Game Boy Color - slightly cleaner - return { - enabled: true, - lowpassFreq: 10000, - bitDepth: 8, - sampleRateReduction: 1, - saturation: 0.08, // Minimal saturation - highpassFreq: 25, - }; - - case 'gba': - // Game Boy Advance - cleaner still - return { - enabled: true, - lowpassFreq: 14000, - bitDepth: 12, - sampleRateReduction: 1, - saturation: 0.1, - highpassFreq: 20, - }; - - case 'clean': - // No processing - return { - enabled: false, - lowpassFreq: 20000, - bitDepth: 16, - sampleRateReduction: 1, - saturation: 0, - highpassFreq: 20, - }; - } + static createPreset(_preset?: string): Partial { + // Just one clean GB sound - no complexity + return { + enabled: true, + lowpassFreq: 8000, // Natural GB rolloff + bitDepth: 8, // Clean enough to avoid harshness + sampleRateReduction: 1, // No SR reduction (causes artifacts) + saturation: 0.05, // Very subtle warmth + highpassFreq: 30, // Let bass through + }; } } diff --git a/v2.html b/v2.html index b02c956..6cd8ab5 100644 --- a/v2.html +++ b/v2.html @@ -450,13 +450,6 @@ -
- Sound mode: - - - - -
Arranger: @@ -677,29 +670,6 @@ apu.getNoiseChannel('n1')?.playKick(100); }); - // Colorizer preset buttons - const presetButtons = { - dmg: document.getElementById('btn-dmg'), - gbc: document.getElementById('btn-gbc'), - gba: document.getElementById('btn-gba'), - clean: document.getElementById('btn-clean'), - }; - - function setColorizerPreset(preset) { - log(`Sound mode: ${preset.toUpperCase()}`); - player.getAPU().setColorizerPreset(preset); - - // Update button states - Object.entries(presetButtons).forEach(([key, btn]) => { - btn.classList.toggle('active', key === preset); - }); - } - - presetButtons.dmg.addEventListener('click', () => setColorizerPreset('dmg')); - presetButtons.gbc.addEventListener('click', () => setColorizerPreset('gbc')); - presetButtons.gba.addEventListener('click', () => setColorizerPreset('gba')); - presetButtons.clean.addEventListener('click', () => setColorizerPreset('clean')); - // ===== ARRANGER TOGGLE ===== const arrangerBtn = document.getElementById('btn-arranger');