🔊 Audio, Efectos y Animaciones

🎵 Sonidos en la Web

Web Audio API

JavaScript puede crear y controlar sonidos directamente en el navegador. Esto se usa para juegos, aplicaciones musicales, notificaciones y mucho más. ¡Vamos a crear música!

🎹 Piano Virtual

¡Haz clic en las teclas para tocar notas! Cada tecla genera un sonido diferente:

Do
Re
Mi
Fa
Sol
La
Si
Do+
// Crear sonido con Web Audio API
const audioCtx = new (AudioContext || webkitAudioContext)();

function tocarNota(frecuencia) {
    const oscillator = audioCtx.createOscillator();
    const gainNode = audioCtx.createGain();
    
    oscillator.type = 'sine'; // Tipo de onda
    oscillator.frequency.value = frecuencia;
    
    oscillator.connect(gainNode);
    gainNode.connect(audioCtx.destination);
    
    oscillator.start();
    gainNode.gain.exponentialRampToValueAtTime(0.01, audioCtx.currentTime + 0.5);
    oscillator.stop(audioCtx.currentTime + 0.5);
}

🎮 Efectos de Sonido

Sonidos comunes en juegos y aplicaciones:

📊 Visualizador de Audio

Las barras se mueven cuando tocas sonidos:

✨ Efectos de Partículas

¡Haz clic dentro del área para crear partículas flotantes!

👆 Haz clic aquí

// Crear partículas con JavaScript
function crearParticulas(event) {
    const emojis = ['⭐', '✨', '🌟', '💫'];
    
    for (let i = 0; i < 5; i++) {
        const particula = document.createElement('span');
        particula.className = 'particula';
        particula.textContent = emojis[Math.floor(Math.random() * emojis.length)];
        particula.style.left = event.offsetX + 'px';
        particula.style.top = event.offsetY + 'px';
        
        container.appendChild(particula);
        setTimeout(() => particula.remove(), 3000);
    }
}

⏱️ Cronómetro Interactivo

00:00:00
// Cronómetro con setInterval
let segundos = 0;
let intervalo;

function iniciar() {
    intervalo = setInterval(() => {
        segundos++;
        actualizarDisplay();
    }, 1000);
}

function pausar() {
    clearInterval(intervalo);
}

🎯 Quiz Final - Audio y Efectos

1. ¿Qué API crea sonidos en el navegador?

Sound API
Web Audio API
Music API

2. ¿Qué método ejecuta código repetidamente?

setTimeout()
setInterval()
setRepeat()

3. ¿Cómo detienes un setInterval?

stopInterval()
pauseInterval()
clearInterval()

4. ¿Para qué sirve createElement()?

Crear nuevos elementos HTML
Crear variables
Crear funciones

🎉 ¡FELICIDADES!

Has completado todos los niveles avanzados del tutorial.
¡Ahora eres un programador web experto!