📝 Código del Sintetizador
// Crear contexto de audio
const audioContext = new (window.AudioContext || window.webkitAudioContext)();
// Crear oscilador
const oscillator = audioContext.createOscillator();
const gainNode = audioContext.createGain();
// Configurar conexiones
oscillator.connect(gainNode);
gainNode.connect(audioContext.destination);
// Configurar parámetros
oscillator.type = 'sine'; // square, sawtooth, triangle
oscillator.frequency.setValueAtTime(440, audioContext.currentTime);
gainNode.gain.setValueAtTime(0.5, audioContext.currentTime);
// Iniciar oscilador
oscillator.start();
// Función para tocar nota
function playNote(frequency, duration = 0.5) {
oscillator.frequency.setValueAtTime(frequency, audioContext.currentTime);
gainNode.gain.setValueAtTime(0.5, audioContext.currentTime);
// Apagar después de la duración
gainNode.gain.exponentialRampToValueAtTime(0.01, audioContext.currentTime + duration);
}
// Ejemplo de uso
playNote(440); // Tocar La4