Inspiración: https://github.com/jeff2957/Music-Visualization–bubble- Tomé como inspiración este proyecto que replica la burbuja de voz de Siri, pero que la adapta para que sea audio reactiva.
Librería P5.Sound: https://p5js.org/es/reference/#/libraries/p5.sound
Tutoriales de @The Coding Train para el manejo de la amplitud del sonido. https://www.youtube.com/watch?v=NCCHQwNAN6Y https://www.youtube.com/watch?v=jEwAMgcCgOA
El proyecto “4ngelNumb3rzzz visualizer” realizado por Martín Núñez (@M4rtusi) en p5.js combina música, imágenes y gráficos interactivos para crear una visualización multimedia. El proyecto responde tanto a la interacción del usuario como a la música reproducida.
El objetivo principal del proyecto es explorar elementos auditivos y visuales, utilizando p5.js para generar gráficos y efectos visuales que respondan a la música reproducida, en este caso a la canción “4ngelNumb3rzzz” de Team Mekano. La interacción del usuario mediante clics permite controlar la reproducción de la música y afectar la visualización.
song
, analyzer
: Variables para la canción y el analizador de amplitud.img
: Variable para la imagen de inicio.play_state
: Variable booleana que indica el estado de reproducción de la canción.palette
: Paleta de colores definida con seis colores hexadecimales.preload()
)Antes de iniciar la aplicación, se cargan una imagen (portadainicio.jpeg
) y una canción (4ngelNumb3rzzz Tropical Gatekeeping Remix.mp3
). Esto asegura que los recursos estén disponibles inmediatamente al comenzar la interacción del usuario.
setup()
)En la función setup()
:
canvas
) con dimensiones de 750x500 píxeles para la visualización.p5.Amplitude()
para medir la amplitud de la canción.p5.FFT()
para realizar un análisis de frecuencia de la canción.image(img, 0, 0)
.mousePressed()
)La función mousePressed()
maneja la interacción del usuario con el lienzo:
song.isPlaying()
es verdadero), hacer clic detiene la canción (song.stop()
) y restaura la imagen de fondo.song.play()
) y también restaura la imagen de fondo.draw()
)En la función draw()
:
analyzer.getLevel()
. Este valor representa la intensidad del sonido en tiempo real.selectedColor.setAlpha(alpha)
.map(rms, 0, 1, minSize, maxSize)
).frameCount
) a cero para reiniciar cualquier animación cuando se reanude la reproducción.preload()
: Carga de la imagen y la canción antes de iniciar la aplicación para asegurar una carga fluida de recursos.setup()
: Configuración inicial del lienzo, analizadores de sonido y visualización de la imagen de inicio.mousePressed()
: Gestión de la interacción del usuario al hacer clic en el lienzo para reproducir o detener la canción, afectando también la visualización.draw()
: Actualización continua del lienzo para mostrar las visuales que responden a la música reproducida, utilizando técnicas de mapeo para ajustar la apariencia visual en tiempo real.https://github.com/M4rtusi/dis9034-2024-1/assets/163044473/97225b88-e2f3-4d46-8b1f-605a0aae9cab