2008-09-30 25 views
45

Entonces, ¿cómo alguien crea un visualizador de música? He buscado en Google, pero realmente no he encontrado nada que hable sobre la programación real; principalmente enlaces a complementos o visualización de aplicaciones.Crear visualizador de música

Uso iTunes pero me doy cuenta de que necesito Xcode para programarlo (actualmente estoy implementado en Iraq y no puedo descargar ese gran archivo). Así que ahora mismo estoy interesado en aprender "la teoría" detrás de esto, como procesar las frecuencias y todo lo que se requiera.

+0

no es necesario XCode programar para iTunes en Windows. –

+1

Esta pregunta similar tiene una respuesta más desarrollada http://stackoverflow.com/questions/3148008/music-visualization?rq=1 – Rambatino

Respuesta

13

Normalmente, toma una cierta cantidad de datos de audio, ejecuta un análisis de frecuencia sobre ella, y usa esa información para modificar algún gráfico que se muestra una y otra vez. La forma obvia de hacer el análisis de frecuencia es con un FFT, pero el simple tone detection puede funcionar igual de bien, con una sobrecarga de cálculo inferior.

Así, por ejemplo, escribe una rutina que dibuja continuamente una serie de formas dispuestas en círculo. A continuación, usa las frecuencias dominantes para determinar el color de los círculos y usa el volumen para establecer el tamaño.

23

Como un visualizador reproduce un archivo de canción, lee los datos de audio en muy poco tiempo (generalmente menos de 20 milisegundos). El visualizador hace una transformada de Fourier en cada sector, extrae los componentes de frecuencia y actualiza la pantalla visual usando la información de frecuencia.

Cómo se actualiza la pantalla visual en respuesta a la información de frecuencia depende del programador. En general, los métodos gráficos deben ser extremadamente rápidos y livianos para poder actualizar los elementos visuales al ritmo de la música (y no empantanar la PC). En los primeros días (y aún), los visualizadores a menudo modificaban la paleta de colores en Windows directamente para lograr algunos efectos bastante geniales.

Una característica de los visualizadores basados ​​en componentes de frecuencia es que a menudo no parecen responder muy bien a los "latidos" de la música (como los golpes de percusión, por ejemplo). Se pueden escribir visualizadores más interesantes y receptivos que combinan la información del dominio de la frecuencia con una conciencia de "picos" en el audio que a menudo corresponden a los éxitos de percusión.

+0

He notado que la mayoría de los visualizadores no responden a las frecuencias o picos muy bien. Es por eso que estoy interesado en ver cómo funcionan, como un experimento de pensamiento educativo. – crystalattice

+0

Es una lástima que MIDI tenga tantas limitaciones, porque eso le da al programador información perfecta sobre qué notas se están reproduciendo y cuándo. Los visualizadores basados ​​en MIDI responden perfectamente. – MusiGenesis

2
  1. Diseñar un algoritmo para dibujar algo interesante en la pantalla dado un conjunto de variables
  2. idear una manera de convertir un flujo de audio en un conjunto de variables que analizan las cosas tales como latidos/minuto de frecuencia diferentes rangos de frecuencia, el tono etc.
  3. Conecta las variables en tu algoritmo y míralo dibujar.

Una visualización simple sería aquella que cambiaba el color de la pantalla cada vez que la música sobrepasaba un umbral de frecuencia determinado. o simplemente escribir los bpm en la pantalla. o simplemente mostrando un ociliscopio.

la salida de este wikipedia article

5

Si usted está buscando una pequeña descarga, conjunto de herramientas bastante portátil para jugar con (y una comunidad rabioso para dibujar en) Yo sugeriría Procesamiento (http://www.processing.org), particularmente http://processing.org/learning/libraries/ bajo ESS. Eso debería llevarte por el agujero del conejo. No haría un visualizador de iTunes, pero se utilizó para crear prototipos de este: http://www.barbariangroup.com/software/magnetosphere que se convirtió en el visualizador predeterminado de iTunes.

6

Hay una variedad de maneras de procesar los datos de audio, la más simple de las cuales es simplemente mostrarla como una forma de onda que cambia rápidamente, y luego aplicar algún efecto gráfico a eso.De forma similar, cosas como el volumen pueden calcularse (y pasarse como un parámetro a alguna rutina de gráficos) sin hacer una Transformada Rápida de Fourier para obtener frecuencias: simplemente calcule la amplitud promedio de la señal.

Convirtiendo los datos al dominio de la frecuencia usando una FFT o de otra manera permite efectos más sofisticados, incluyendo cosas como spectrograms. Aunque es engañosamente engañoso detectar incluso cosas bastante "obvias" como el tiempo de percusión o el tono de las notas directamente desde la salida FFT

La detección confiable de tiempos y la detección de tonos son problemas difíciles, especialmente en tiempo real. No soy un experto, pero this page se ejecuta a través de algunos algoritmos de ejemplo simples y sus resultados.

1

Lee Brimelow tiene a great video tutorial para hacer esto en flash. Debería apuntarlo en la dirección correcta, incluso si desea implementarlo utilizando algo que no sea flash.

MDN has a nice tutorial y también para realizar visualizaciones con Web Audio API.

+2

vínculo se rompe ahora :( – Jarsen

+1

Gracias por el cara a cara, fijado ahora :) –

+0

enlace roto :(Todavía Este video sigue escapando;) –

18

Para crear BeatHarness (http://www.beatharness.com) He 'simplemente' usado una FFT para obtener el espectro de audio, luego uso algunos filtros y detectores de inicio/borde.

Sobre la Transformada Rápida de Fourier: http://en.wikipedia.org/wiki/Fast_Fourier_transform

Si usted está acostumbrado a las matemáticas es posible que desee leer la página de Paul Bourke: http://local.wasp.uwa.edu.au/~pbourke/miscellaneous/dft/

(Paul Bourke es un nombre que desea google de todos modos, él tiene mucha información sobre temas que o bien quieres saber ahora o probablemente en los próximos 2 años;))

Si quieres leer sobre beat/tempo-detection google para Masataka Goto, ha escrito algunos artículos interesantes al respecto.

Editar:

su página de inicio: http://staff.aist.go.jp/m.goto/ lectura interesante: http://staff.aist.go.jp/m.goto/PROJ/bts.html

vez que haya algunos valores para, por ejemplo, bajo, tonos medios, agudos y volumen (izquierda y derecha), que todo depende de su imaginación qué hacer con ellos. Muestra una imagen, multiplica el tamaño por el bajo, por ejemplo, obtendrás una imagen que ampliará el ritmo, etc.

+2

Oye, ¿dónde está BeatHarness ahora? – sbrm1

2

Me gusta sugerido por @Pragmaticyankee El procesamiento es de hecho una forma interesante de visualizar tu música. Puede cargar su música en Ableton Live y usar un EQ para filtrar las frecuencias altas, medias y bajas de su música. Luego, puede usar un plugin VST follwoing para convertir envolventes de audio en mensajes MIDI CC, tales como Gatefish by Mokafix Audio (funciona en Windows) o el plugin midiAudioToCC de PizMidi (funciona en mac). A continuación, puede enviar estos mensajes MIDI CC a una herramienta de hardware emisora ​​de luz que admita MIDI, por ejemplo, percussa audiocubes. Puede usar un cubo para cada frecuencia que desee visualizar y asignarle un color al cubo.Echar un vistazo a este post:

http://www.percussa.com/2012/08/18/how-do-i-generate-rgb-light-effects-using-audio-signals-featured-question/

1

VizKit por Heiko Wichmann parece haber una muy buena plataforma cruzada (tercera parte) sdk & punto de partida (usa la API de Visualizer que Apple lanzó hace un tiempo).

Acabo de compilarlo con Xcode e incluye un proyecto de estudio visual también. iTunes se bloqueó una vez, pero funcionó bien con eso después de eso. Lo que me gusta hasta ahora: bajas dependencias (tuve que arreglar una ruta de framework en mi entorno), muchas muestras (ecualización, espectro, ilustraciones del álbum, histogramas), very clear architecture, licencia aceptable.

También disponible en Sourceforge.

2

Recientemente hemos agregado rutinas de entrada de datos de audio basados ​​en DirectSound en la biblioteca de visualización de datos LightningChart. LightningChart SDK es un conjunto de componentes para Visual Studio .NET (WPF y WinForms), puede que le resulte útil.

Con el componente AudioInput, puede obtener muestras de datos de forma de onda en tiempo real del dispositivo de sonido. Puede reproducir el sonido desde cualquier fuente, como Spotify, WinAmp, reproductor de CD/DVD o usar un conector de entrada de micrófono.

Con el componente SpectrumCalculator, puede obtener el espectro de potencia (conversión FFT) que es útil en muchas visualizaciones.

Con componente LightningChartUltimate puede visualizar datos en muchas formas diferentes, como gráficos de forma de onda, gráficos de barras, mapas de calor, espectrogramas, espectrogramas 3D, líneas 3D, etc. y se pueden combinar. Toda representación se lleva a cabo a través de la aceleración Direct3D.

Nuestros propios ejemplos en el SDK tienen un enfoque científico, no tienen mucho aspecto de entretenimiento, pero definitivamente también se pueden usar para visualizaciones de entretenimiento increíbles.

También tenemos SignalGenerator configurable (barridos, configuraciones multicanal, senos, cuadrados, triángulos y formas de onda de ruido, transmisión WAV en tiempo real y componentes de salida de audio DirectX para enviar datos de onda desde altavoces o salida de línea.

Waveform and 3D spectrogram

Gradient bars [soy director de tecnología de componentes LightningChart, haciendo esto sólo porque me gusta :-)]

Cuestiones relacionadas