npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

audio-visualizer-neon

v1.0.0

Published

Visualizador de audio JavaScript para web en tiempo real. MP3, WebM, WAV, OGG. Canvas 2D y Three.js 3D. Compatible con React, Vue, vanilla JS.

Readme

audio-visualizer-neon

npm version License: MIT

Visualizador de audio para web con animaciones reactivas — Biblioteca ligera en JavaScript para visualizar audio en tiempo real usando Canvas 2D y Web Audio API. Soporta MP3, WebM, WAV y OGG. Vanilla JS, sin dependencias de framework — compatible con React, Vue, Angular, Svelte o HTML plano.

audio visualizer · JavaScript audio visualization · Web Audio API · real-time music visualizer · canvas audio spectrum · HTML5 audio visualizer


Características

  • 🎵 6 estilos de visualización — Liquid Waveform, Circular Spectrum, Spectral Wave, Neon Equalizer, Blue Orb Ovals (3D), Circular Waves
  • 🔊 Múltiples fuentes de audio — Elemento HTML <audio>, Blob o URL
  • 📦 Configuración mínima — Funciona de inmediato
  • 🎨 Efectos visuales — Canvas 2D y Three.js para 3D
  • 🌐 Framework agnóstico — React, Vue, Angular, Svelte, vanilla JS
  • 📱 Navegadores modernos — Chrome, Firefox, Safari, Edge
  • 🌙 Tema claro — Fondos adaptados al modo claro del frontend

Instalación

npm install audio-visualizer-neon

O via CDN (build UMD):

<script src="https://unpkg.com/audio-visualizer-neon"></script>

O desde GitHub:

npm install github:sistsalcedo/audio-visualizer-neon

Inicio rápido

import { createAudioVisualizer } from 'audio-visualizer-neon';

const container = document.getElementById('visualizer-container');
const audio = document.querySelector('audio'); // o Blob, o URL

const visualizer = await createAudioVisualizer({
  container,
  audio,
  type: 'liquid-waveform',  // elige un estilo
});

visualizer.play();
visualizer.pause();
visualizer.stop();
visualizer.destroy();

Tipos de visualización

| Tipo | Descripción | |------|-------------| | liquid-waveform | Ondas fluidas con gradiente púrpura/azul | | circular-spectrum | Barras radiales con efecto neon | | spectral-wave | Ondas translúcidas estilo spectrogram | | neon-equalizer | Barras verticales tipo ecualizador | | blue-orb-ovals | Círculo 3D con amebas que reaccionan al audio (Three.js) | | circular-waves | Círculo con ondas en el contorno reactivas al sonido |


API Reference

createAudioVisualizer(options)

Crea e inicializa un visualizador de audio.

Parámetros:

| Opción | Tipo | Requerido | Descripción | |--------|------|-----------|-------------| | container | HTMLElement | Sí | Elemento DOM donde se renderiza | | audio | HTMLAudioElement \| Blob \| string | Sí | Fuente de audio — elemento, Blob o URL | | type | string | No | Tipo de visualización (default: 'liquid-waveform') | | visualizerOptions | object | No | Opciones adicionales para el visualizador |

Devuelve: Promise<VisualizerInstance>

Métodos de VisualizerInstance:

| Método | Descripción | |--------|-------------| | play() | Inicia reproducción y animación | | pause() | Pausa reproducción y animación | | stop() | Detiene y reinicia | | destroy() | Libera recursos y elimina el visualizador | | getAudioElement() | Devuelve el HTMLAudioElement subyacente (si aplica) |


Ejemplos de uso

Con elemento HTML audio

<audio id="my-audio" src="track.mp3"></audio>
<div id="viz"></div>

<script type="module">
  import { createAudioVisualizer } from 'audio-visualizer-neon';

  const viz = await createAudioVisualizer({
    container: document.getElementById('viz'),
    audio: document.getElementById('my-audio'),
    type: 'circular-waves',
  });
  viz.play();
</script>

Con URL

const visualizer = await createAudioVisualizer({
  container: document.getElementById('viz'),
  audio: 'https://example.com/audio.mp3',
  type: 'blue-orb-ovals',
});

Con archivo subido (Blob)

const fileInput = document.querySelector('input[type="file"]');
fileInput.addEventListener('change', async (e) => {
  const blob = e.target.files[0];
  const viz = await createAudioVisualizer({
    container: document.getElementById('viz'),
    audio: blob,
    type: 'liquid-waveform',
  });
  viz.play();
});

Con React

import { useEffect, useRef } from 'react';
import { createAudioVisualizer } from 'audio-visualizer-neon';

function AudioVisualizer({ audioUrl, type = 'liquid-waveform' }) {
  const containerRef = useRef(null);
  const vizRef = useRef(null);

  useEffect(() => {
    if (!containerRef.current || !audioUrl) return;

    createAudioVisualizer({
      container: containerRef.current,
      audio: audioUrl,
      type,
    }).then((viz) => {
      vizRef.current = viz;
      viz.play();
    });

    return () => vizRef.current?.destroy();
  }, [audioUrl, type]);

  return <div ref={containerRef} style={{ width: '100%', height: 400 }} />;
}

Con Vue

<template>
  <div ref="containerRef" class="visualizer"></div>
</template>

<script setup>
import { ref, onMounted, onUnmounted } from 'vue';
import { createAudioVisualizer } from 'audio-visualizer-neon';

const containerRef = ref(null);
let visualizer = null;

onMounted(async () => {
  if (containerRef.value) {
    visualizer = await createAudioVisualizer({
      container: containerRef.value,
      audio: props.audioUrl,
      type: 'circular-spectrum',
    });
    visualizer.play();
  }
});

onUnmounted(() => visualizer?.destroy());
</script>

<style scoped>
.visualizer { width: 100%; height: 400px; }
</style>

Desarrollo

# Clonar el repositorio
git clone https://github.com/sistsalcedo/audio-visualizer-neon.git
cd audio-visualizer-neon

# Instalar dependencias
npm install

# Ejecutar showcase interactivo
npm run dev

# Ejemplo mínimo vanilla
npm run dev:vanilla

# Compilar librería
npm run build

Formatos y navegadores

Formatos de audio: MP3, WebM, WAV, OGG

Navegadores: Chrome, Firefox, Safari, Edge (Web Audio API y Canvas soportados)


SEO y descubrimiento

Palabras clave: audio visualizer, visualizador de audio, JavaScript audio visualization, Web Audio API, music visualizer, audio spectrum, ecualizador web, canvas audio, real-time audio visualization, HTML5 audio, React audio visualizer, Vue audio, vanilla JS audio


Licencia

MIT — sistsalcedo


Enlaces