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

Luego seguimos con el plugin “distorsión de diodo”.
Especificamos y generamos el código base asi:

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]<0.? -0.8:0.8;
else
outb[i] = inb[i];
}
return true;
}
</size>
Y armamos una red para probarlo:

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.




