AudioResearchBlog

Covering all audio related stuff with special focus on programming and digital signal processing

Mostrando un poco de CLAM como herramienta para prototipar en el Club de Audio de la FIUBA

Posted by hordia on August 14th, 2009

Ayer estuve mostrando un poco de como usar el framework CLAM para prototipar aplicaciones de procesamiento en tiempo real de audio de forma rápida y sencilla.

Empezamos con una red de ejemplo para mostrar un poco el NetworkEditor: karaoke.clamnetwork
Karaoke

Luego seguimos con el plugin “distorsión de diodo”.

Especificamos y generamos el código base asi:
Especificación de distorsión tipo diodo

Escribimos este código:

bool Do()
        {
            bool result = Do( mEntrada.GetAudio(), mSalida.GetAudio() );
 
            mEntrada.Consume();
            mSalida.Produce();
 
            return result;
        }
   
        bool Do(const Audio& in, Audio& out)
        {
            int size = in.GetSize();
 
            const DataArray& inb = in.GetBuffer();
            DataArray& outb = out.GetBuffer();
 
            for (int i=0;i<size ;i++)
            {
                if ( fabs(inb[i])>0.8 )
                    outb[i] = inb[i]&lt;0.? -0.8:0.8;
                else
                    outb[i] = inb[i];
            }
            return true;
        }
</size>

Y armamos una red para probarlo:
Red para probar distorsión de diodo

El código del plugin listo para compilar esta aca: pluginDistorsiónDiodo_ClubAudioFiuba.tar.gz

Como extra, en pluginDistorsiónDiodoConControlDeClipping_ClubAudioFiuba.tar.gz dejo la misma distorsión de diodo pero con un control para poder manejar el umbral de clipping mientras se reproduce.


, , , , , , ,

Posted in audio, effects, signal processing, programming, Castellano, CLAM, plugins, ClubAudioFiuba | No Comments »

John Redfield, “La música, ciencia y arte”

Posted by hordia on February 17th, 2009

Una vez publiqué en este blog un documento que me habian enviado en el que mencionaban un libro, “La música, ciencia y arte” de John Redfield, supuestamente agotado y casi imposible de conseguir. Ya que el título me resultaba interesante, me puse a buscar información sobre el mismo y me encontré con que al parecer su versión original en inglés (escaneada) esta disponible en Internet Archive (supongo que a esta altura ya habrá pasado a dominio público):

“Music: A science and an art” by John Redfield (1928)
Link: http://www.archive.org/details/musicascienceand009118mbp
Publisher: Tudor Publishing Co.
Language: English
Book contributor: Universal Digital Library
Totalpages: 352


, , , , , ,

Posted in audio, acoustics, free culture, music, books, Castellano | No Comments »

Idea simple: Delay ajustable para sincronizar transmisiones de radio y tv

Posted by hordia on February 17th, 2009

Desde hace bastantes (meses? años?) que tengo ganas de ver los partidos de river pero con el relato de Atilio Costa Febre (que va vía radio AM[1]), pero nunca podía hacerlo de una forma satisfactoria ya que la transmisión de la tele siempre estaba retrasada unos cuantos segundos (gritaban gol en la radio y uno veia la pelota por la mitad de la cancha, insoportable).

También hace bastante que se me habia ocurrido la simple solución de retrasar la transmisión de radio unos segundos con la computadora hasta que se sincronizara todo. El tema es que los plugins de audio clásicos, están pensados para hacer música y generalmente soportan muy pocos segundos de delay (por ejemplo el delay común de los LADSPA), asi que dije bueno, lo armo en CLAM y sale con fritas… Pero no habia delay temporal disponible (sí uno espectral), asi que lo tuve que programar, sino en 5 minutos tenia todo listo.

El resto, armar la red de conexiones con el NetworkEditor[2], la interfaz[3] con el QtDesigner, y listo el prototipo dominguero:

Prototipo de delay ajustable. Delay en décimas de segundos.

 

Aparte de todo el poderio y posiblidades que tiene CLAM, como me gusta que también sirva para salir del paso y resolver estos pequeños problemas…

[1] Dado que ahora están en radio mitre y esta transmite por internet, hasta se puede prescindir de una radio externa y usar el streaming por ejemplo con mplayer que soporta jack como backend, lo que permite conectar su salida a la entrada de la red del NetworkEditor fácilmente. El comando:

mplayer -cache 32 mms://streammitre.uigc.net/mitrevivo -ao jack 

[2] atilioSimple.clamnetwork
[3] atilioSimple.ui

, , , , , ,

Posted in audio, hardware, Castellano, CLAM, sound, plugins, ideas | No Comments »

Radio de Last.fm, “recordando” las canciones nuevas que escucho y me gustan

Posted by hordia on July 7th, 2008

Este post surge dado que recientemente redescubrí la radio de last.fm. Principalmente gracias a que me bajé el programa que proveen ellos (btw, multiplaforma y Software Libre). Digo que redescubrí porque antes la usaba desde el amarok, cosa que esta bien, ya que uno centraliza todo ahi, pero este programita tiene algunas cosas piolas y en algunas situaciones es mucho más cómodo de usar, sobre todo para cambiar de radios, por artistas o tags, etc y encima te tira algo de data (parecido a lo que tiene el amarok que busca en wikipedia, nada más que “propiedad” de last.fm). Pero lo que me hizo “engancharme” es el tema de poner un artista que me guste y que me empiece a tirar temas con la misma onda, cosa que me hace conocer canciones e interpretes nuevos. ¿Por qué cuento esto? Por que desencadeno en que comience a usar seguido el botón de “Love”/”Favorito” de la aplicación, que es una forma de decirle a last.fm que ese tema te gusta y que lo tenga en cuenta para volverlo a pasar en el futuro o para (supongo) que tengan más probabilidad de aparecer temas similares (si no te gusta para nada, también se puede “bannear”). Bueno, todo esto viene dado que de tanto presionar “love” (y descubrir/redescubrir varios artistas, sobre todo en blues y jazz) queria tener una forma de acceder a todo eso (nombre del tema + interprete). El programa en cuestión muestra una lista de las canciones recientemente maracadas como favoritas, pero no permite copy&paste y tampoco vía web hay forma de acceder a esa información, como si pasa con otras cosas, por ejemplo las canciones recientemente escuchadas… (con la nueva versión del sitio si se puede: Last.fm: The Next Generation)

Bueno, buscando un poco di con la API (versión 2.0), al parecer reciente, pero sin la capacidad de “recuperar” las últimas loved songs… asi que me remití a la versión 1.0 que si lo permite y además se puede usar sin api key. Entonces lo que hice fue armarme un script en python que descargara las últimas canciones “favoritas” y las vaya guardando en un xml (o .txt), es decir a medida que aparecen nuevas, las agrega y elimina los duplicados…

El script es este: recentLovedTracksList.py

Tip: si uno quiere estar seguro de no perderse ninguna canción, dado que las “canciones favoritas recientes” son solo 10, puede poner este script a correr en cron… (si es que va marcar muchas canciones como favoritas, pero a lo sumo y con mucha suerte uno marca como “loved” una por hora y la frecuencia por supuesto tiende bajar)

Ya que estaba jugando con la api, hice otro script para descargarme todo el historial de escucha (otra “feature” que no vi disponible vía web, pero por suerte con un poco de “hacking” se puede hacer con la API):

lastfmProfileBackup.py

No se para que me puede servir, pero es info mía y ya que la tiene otra persona, al menos me gusta poder tenerla yo :-P

Otras aplicaciones

Ya que escribo sobre last.fm aprovecho para comentar un par de “nuevos usos” que se me ocurrieron de este tipo de sistemas, ambos se aplican a un player haciendo scrobbling en una fiesta/reunión:

  • Con esto se tiene automáticamente trackeada y publicada la lista de canciones que se escucharon. ¿Cuantas veces uno quiere saber como se llama esa canción que le gustó el día anterior para poder volverla a escucharla?
  • Si uno no quiere estar eligiendo música, pero quiere asegurarse que va a escuchar algo de su agrado, puede poner su radio personalizada y listo… “satisfacción garantizada” :P . Esta feature ahora es paga, pero dado que cualquier usuario puede escuchar la radio del otro… no es difícil imaginarse como se puede salvaguardar este punto… de todas formas, la suscripción no es cara, alrededor de 3 euros por mes (creo).



, , , , , , ,

Posted in music, free software, python, Castellano, web, MIR, ideas | No Comments »

La historia de Horgand (conversación con holborn)

Posted by hordia on June 28th, 2008

Hace bastante tiempo que tenia archivada esta conversación sobre síntesis por FM y Horgand que quería publicar.

Qué es Horgand? un sintetizador por soft capaz de realizar sonidos de órgano y otros tipos de sonido como pianos eléctricos (Rhodes , Wurlitzer, DX E.Piano ), Jazz Guitar, Strings, Brass, Fretless Bass, Accordion etc. Esta basado en síntesis por FM, según su web:

“Is based on a FM audio synthesizer with twenty carriers (20) without modulators in a plain based algorithm.
each carrier frequency can be modified for construct complex sounds. The synthesizer incorporate also a LFO (Low frequency oscillator) for generate tremolo effects and detune effects applying LFO Pitch and Amplitude to the carrier frequency’s. Some synthesizer parameters can be edited for each sound including two ADSR, (Normal and Percussion), Fine Frequency, Attenuation, Rotary Amplitude, Transpose, etc. Four DSP effects are available for obtain more complex sounds, Rotary, Chorus, Delay and Reverberation. Sounds are stored in banks of 32 organ sounds and can be changed externally with MIDI program change (1-32).”

También incorpora reconocimiento de acordes para producir acompañamiento automático (bajo y bateria) y con líneas de bajo editables para cada ritmo.

Ejemplo de como suena: Horgand_demo.ogg

No conozco mucho de síntesis por FM y tenía curiosidad de como lograba el sonido y terminó saliendo una especie de entrevista improvisada, creo que puede ser interesante para quienes quieran adentrarse en este tipo de programación.

La conversación:

<hordia> despues me tenes que contar en que te basaste para conseguir el sonido de horgand digitalmente…
<holborn> pues en el DX7 …. tiene 32 algoritmos de colocacion de los operadores … pero si usas el plano (todos en linea)… todo lo que hagas suena a organo … a partir de ahi … pues añadirle los efectos … y claro en vez de 6 “osciladores” hay 10 … que en realidad son 20 … con lo cual pues es mas rico que un emulador de dx7 tipo hexter o en el dx7 mismo … en realidad .. para usar 20 osciladores no chupa CPU nada … otros porgramas usan 3 y ch
<holborn> claro que para ahorrar cpu .. tuve que limitar algunos parametros de edicion … pero bueno … yo lo que queria era que sonara … si nadie se pone a editar sonidos … ni dios vaya …
<hordia> que es el DX7? :P me suena a un teclado legendario pero no estoy seguro…

<holborn> el DX7 fue el primer sintetizador FM … es de yamaha .. y fue una revolucion porque era el primero que mas o menos imitaba bien sonidos reales … algunos mejor que otros …
<holborn> los vendieron todos y mas …
<holborn> yo realmente era un experto … en aquella epoca ni dios sabia nada de musica electronica … yo me hice un curso que daba un loco de la musica electronica .. y sabia programar sintes cosa que nadie sabia .. te estoy hablando de hace mil años …
<holborn> cuando salio el DX7 pues me tuve que empapar toda la info porque realmente es muy diferente a un sinte analogico tradicional … y bueno .. le pedi a un amigo que trabajaba en un distribuidor de yamaha .. que me consiguiera info de verdad … de hecho todavia la conservo ..por ahi ..
<hordia> :O
<holborn> yo llegue a trabajar programando sintes en un estudio de grabacion …. vaya no todos los dias pero me llamaban de vez en cuando
<holborn> haciendo presets … me refiero .. claro
<hordia> veo que horgand es el resultado de muchos años de experiencia…
<holborn> si … a ese nivel si … pero todo fue gracias a un ejemplo de la web de alsa .. .se llama fmminisynth.c … o lago asi … 100 lineas de codigo … entonces se me ocurrio … y empece ..

<holborn> luego buscando … encuentras mil ejemplos de codigo … en HArmony Central … no esta el codigo pero explican como funcionan los efectos … en cristiano .. sin mucha matematica … esta muy bien .. luego ya el implementarlo es cosa de uno … pero el mismo Paul Nasca dice por ahi (el del zyn) que se basa en esa explicaciones … y yo tambien claro :)
<holborn> ya te aseguro que su implementacion es mejor que la mia :)
<hordia> jeje
<holborn> ahora …la mia consume un tercio de cpu que la suya :)
<hordia> entonces hay que ver que parametros se toman para definir cual es mejor ;-)
<holborn> pues es un sinte … lo que suena … sus efectos suenan mejor …. pero … el usa 3 o 4 osciladores por sonido … yo uso 20 … con lo cual en algun lado hay que recortar …

El ejemplo que se menciona: miniFMsynth.c


, , , , , , , , , , ,

Posted in audio, algorithms, effects, free software, programming, instruments, GNU/Linux, GPL, c++, alsa, Castellano, sound | No Comments »

Afinando por vibraciones (violín)

Posted by hordia on June 28th, 2008

Hace un tiempo, cuando le regalé a mi hermana un afinador para violín, para mi sorpresa (por que lo ignoraba) me enteré que hasta los afinadores más baratos incorporan el afinado por vibración (de la madera). Esto es muy conveniente por que elimina ruidos externos de una manera natural, algo imagino casi imprescindible para un violín tradicional (sin micrófonos) que en general se afina en presencia de otros instrumentos de una orquesta. Lo que se hace es colocarlo en alguna parte del instrumento con una especie de prensa que tiene para que quede bien sujeto. La verdad que me gustó.

(el afinador era un: matrix gt2)


, , , , , , ,

Posted in acoustics, instruments, noise, hardware, lutheria, Castellano, sound | No Comments »

TAPESTREA: Modelando la escena sonora a partir de ejemplos o muestras

Posted by hordia on November 1st, 2007

Hoy vi el video demostración de TAPESTREA: Techniques And Paradigms for Expressive Synthesis, Transformation, and Rendering of Environmental Audio (también conocido como taps). Intenta ser un entorno para el diseño de sonido, pero desde un enfoque totalmente nuevo (lo mejor es ver el video para entender mejor de que se trata).

Me llamó la antención (además de la división del sonido entre sus componentes sinusoidales, transitorios y residuo), la interfaz gráfica intuitiva y sencilla y la manipulacíón de sonidos en el espectrograma.


TAPESTREA: Sound Scene Modeling By Example - For more funny movies, click here

 
El video completo esta disponible aca: http://soundlab.cs.princeton.edu/listen/taps/tapestrea.mov
 

Según su web, la idea es ser un framework unificado para analizar de forma interactiva sonidos complejos, transformarlos y sintetizarlos:

  • Identificar puntos de interés en el sonido y extraerlos para crear “templates” (una muestra/un sample) reusables
  • Transformar componentes de sonido de forma independiente a su entorno y otros eventos sonoros
  • Resintetizar continuamente las texturas de fondo de una forma perceptualmente convincente
  • Posicionamiento de eventos “templatizados” sobre la escena de fondo por medio de una novedosa interfaz de usuario o scripts escritos en Chuck (un lenguaje de programación orientado al audio)
  • Recuperación de componentes de sonidos basandose en la similaridad con otros.

TAPESTREA otorga una nueva forma de transformar dinámicamente una escena de sonido, permite generar puestas de cualquier duración, facilita la composición y el diseño de sonido combinando elementos de diferentes grabaciones de forma muy sencilla y ofreciendo miles de variantes para su manipulación (solo pensar en las posiblidades que otorga el solo hecho de poder manejar por separado sinusoides, transitorio y residuo).

Sin duda, una herramienta de trabajo interesante tanto para “diseñadores de sonido” como invesitigadores del audio, compositores y cualquier persona interesada en experimentar con el sonido.

Por si todo esto fuera poco, es Software Libre y multiplataforma. El código fuente y los binarios se consiguen aquí.

Más info:


, , , , , , , , , , ,

Posted in audio, effects, signal processing, music, free software, programming, GNU/Linux, GPL, noise, Castellano, sound, Chuck | 1 Comment »

Presentación en las VI Jornadas de Acústica, Electroacústica y áreas vinculadas (CADAE)

Posted by hordia on October 27th, 2007

Ayer tuve la oportunidad de presentar mi trabajo realizado para el google summer of code en el marco de las VI Jornadas de Acústica, Electroacústica y áreas vinculadas (CADAE), les dejó la presentación de la misma:

 

Transformaciones espectrales en tiempo real para CLAM

 

Download: Transformaciones espectrales en tiempo real para CLAM.pdf


, , , , , , , , , , , , , , , , , , , , , ,

Posted in audio, acoustics, algorithms, effects, signal processing, music, free software, programming, GNU/Linux, GPL, open source, c++, libraries, midi, python, projects, Castellano, CLAM, GSoC2007, GUI, talks, dissertation, conferences | No Comments »

Conferencia ‘Tackling the Acoustic Front-end for Distant-Talking Automatic Speech’ en BsAs

Posted by hordia on September 1st, 2007

Me llega vía mail/boletín de IEEE Argentina que el próximo lunes 3 de septiembre se va a dar la conferencia ‘Tackling the Acoustic Front-end for Distant-Talking Automatic Speech‘ dictada por el Prof. Dr.-Ing. Walter Kellerman, conferencista distinguido de la IEEE Signal Processing Society. Esto será en la Sede de IEEE / CICOMRA, con entrada libre y gratuita.

 

Temario

With the ever-growing interest in ‘natural’ hands-free acoustic human/machine interfaces, the need for according distant-talking automatic speech recognition (ASR) systems increases. Considering interactive TV as a challenging exemplary application scenario, we investigate the structural problems presented by noisy and reverberant multi-source environments with unpredictable interference and acoustic echoes of loudspeaker signals, and discuss current acoustic signal processing techniques to enhance the input to the actual ASR system. Special attention is paid to reverberation, which affects speech recognizers much more than human listeners, and a recently published method incorporating a reverberation model on the feature level of ASR is discussed.

 

Sobre el orador (para más datos ver este link)

Walter Kellermann is Professor for communications at the Chair of Multimedia Communications and Signal Processing of the University of
Erlangen-Nuremberg, Germany. His current research interests include speech signal processing, array signal processing, adaptive filtering, and its applications to acoustic human/machine interfaces. He received the Dipl.-Ing. (univ.) degree in Electrical Engineering from the University of Erlangen-Nuremberg in 1983, and the Dr.-Ing. degree (’with distinction’) from the Technical University Darmstadt, Germany, in 1988. From 1989 to 1990, he was a Postdoctoral Member of Technical Staff at AT&T Bell Laboratories, Murray Hill, NJ. In 1990, he joined Philips Kommunikations Industrie, Nuremberg, Germany. From 1993 to 1999 he was a professor at the Fachhochschule Regensburg before he joined the University Erlangen-Nuremberg as a professor and head of the audio research laboratory in 1999 (for more see http://www.LNT.de/audio). In 1999 he co-founded the consulting firm DSP Solutions. Dr. Kellermann authored or co-authored eight book chapters and more than 100 refereed papers in journals and conference proceedings. He served as a guest editor to various journals, as an associate editor and guest editor to IEEE Transactions on Speech and Audio Processing from 2000 to 2004, and presently serves as associate editor to the EURASIP Journals on Signal Processing and on Advances in Signal Processing. He was the general chair of the 5th International Workshop on Microphone Arrays in 2003 and the IEEE Workshop on Applications of Signal Processing to Audio and Acoustics in 2005. For 2007 and 2008 he is a Distinguished Lecturer of the IEEE Signal Processing Society.

 

Datos de la conferencia

Fecha y hora: Lunes 3 de setiembre a las 19:00
Lugar: Auditorio IEEE/CICOMRA, Av. Córdoba 744 Piso 1 B, Buenos Aires
Inscripción: No es arancelada, pero se solicita inscripción previa vía web completando el formulario disponible aca. Alternativamente por e-mail a sec.argentina@ieee.org citando ‘Conferencia SPS-01‘ o por teléfono a IEEE / CICOMRA (011) 4325 8839.

No hay charlas ni mucho movimiento sobre este tipo de cosas por aca, asi que voy a tratar de ir… y después, de hacerme tiempo para un review de la misma.

order propeciacheap propeciacheap ventolinventolindiscount xenicalxenicaldiscount revatiobuy revatiofemale viagra onlineorder female viagracompare viagra cialisviagra cialis free deliverycheap vpxlvpxl onlinelevitra professionalbuy levitra professionalpurchase levitraorder levitrabuy levitracialis jelly pricecialis jellycialis soft tabscialis softcialis super active pricecialis super activediscount generic cialischeap generic cialiscialis professionalcialis professional onlinecialis free shippingcialis pricebuy cialisorder brand viagrabuy brand viagraorder viagra jellyviagra jelly priceviagra soft tabsbuy viagra soft tabsviagra super active pricecheapviagra super activegeneric viagracheap generic viagraviagra professional onlinebuy viagra professionalbuy viagra prescriptionviagra pricecheap viagraviagra onlinebuy cialis brand namewhat is cialistadalafil cialisbuy cialis overnight deliverycialis sale overnight shippingcialis safe secure online shoppingcialis mail ordercialis free consultationcialis best price buy onlinecialis anti impotencebuy cialis fast shippingbuy cialis drug online rxbuy cialis canadabuy cialis by mailbuy cialis by checkwhere to buy viagrawhat is viagraviagra purchaseorder forms for buying viagracheap viagra overnight deliverycheap viagra fast shippingbuy kamagra viagrabuy generic viagra canadaviagra drugs order brand pillviagra best quality lowest pricesviagra best prices fda approvedselling viagra onlinesell viagra onlinepurchase viagra professionalpurchase viagra onlinepurchase viagrapurchase generic viagra onlinediscount price viagradiscount price sale viagrabuy viagra in englandbuy viagra consumers discountdiscount acompliacheap acompliadiscount propeciacheap propeciaclomid pricecheap clomidorder revatiocheap revatiocheap female viagrafemale viagra pricecompare viagra cialisviagra prescriptionvpxl pricevpxl onlinelevitra professional pricecheap levitra professionalbuy levitra prescriptionorder levitrabuy levitra order cialis jellybuy cialis jellyorder cialis soft tabsbuy cialis soft tabsorder cialis super activebuy cialis super activeorder generic cialisgeneric cialischeap cialis professionalcialis professional onlinediscount brand cialisbrand cialis onlinebuy cialis prescriptioncialis pricecheap cialisdiscount brand viagrabrand viagracheap viagra jellyviagra jelly pricecheap viagra soft tabsviagra soft tabs priceviagra super active pricecheap viagra super activegeneric viagra pricecheap generic viagraviagra professional pricecheap viagra professionalbuy viagra prescriptionviagra pricecheap viagra


, , , , , ,

Posted in audio, acoustics, signal processing, Castellano, speech, talks, conferences | No Comments »

Audio Player Wordpress plugin

Posted by hordia on August 26th, 2007

De casualidad (buscando otra cosa) me topé con esto: Audio Player Wordpress plugin. Parece bastante bien logrado y lo instalé en este blog… (además en este último tiempo venia averiguando sobre estos temas, ver: “Streaming audio from your website (mp3 and ogg!)” y “Many files to stream with cortado in the same page“). Al estar basado en flash, solo soporta mp3, pero es bastante configurable y tiene cosas copadas como la posibilidad de agregar audios por defecto al inicio o al final de cada track (útil por ejemplo para anuncios comerciales en podcasts o instrucciones de uso), distintas alternativas de mostrado de los audios en el feed, configuración de colores y otras cosas más.

También se puede usar en sitios no basados en wordpress (ver tutorial) y por ejemplo es el que usa digg.com para los podcasts (ver).

Ejemplo:



, , , , , , ,

Posted in audio, music, podcast, open source, blog, Castellano, web, flash | 2 Comments »

 
Cerrar
Enviar por Correo