Mostrando postagens com marcador Linux. Mostrar todas as postagens
Mostrando postagens com marcador Linux. Mostrar todas as postagens

terça-feira, 18 de janeiro de 2011

Áudio e computação: latência, uma breve introdução

Conforme a Wikipedia, "Latency is a time delay between the moment something is initiated, and the moment one of its effects begins. The word derives from the fact that during the period of latency the effects of an action are latent, meaning "potential" or "not yet observed"."

Quando tocamos um instrumento musical, há latência: há um intervalo de tempo entre o momento em que, por exemplo, percutimos a corda do violão e o momento em que o som é ouvido.

Contudo, nós não percebemos este intervalo. Há um limite que divide a latência perceptível da imperceptível. Conforme Dave Phillips,
"In the audio domain, studies have indicated that the ear is sensitive to timing differences at the millisecond level, perhaps even down to a single millisecond. However, latencies under 7 msec are not typically perceptible and are considered acceptable for desktop and semiprofessional applications. Systems achieving average latencies of less than 5 msec should be considered ideal platforms for professional latency-critical applications."
Ou seja, este limite é 7 milisegundos isto é, divida um segundo em mil partes e some sete partes. É este o intervalo de tempo a partir do qual notaríamos diferenças entre o momento em que tocamos o instrumento e o momento em que o ouvimos.

Se, diferentemente, conecto meu instrumento num computador de modo a ter o som processado, há uma série de novos eventos temporais entre o evento tocar e o evento ouvir. Como são temporais, estes eventos aumentam a latência.

Se a latência no processamento do áudio for superior ao limite indicado acima e o processamento de áudio ocorrer em tempo real (isto é, o computador deve receber os dados, computá-los e devolvê-los na forma de som novamente enquanto estamos tocando) teremos um problema: a latência será perceptível. E o problema será tanto maior quanto maior for a latência, do desconforto em tocar até níveis inaceitáveis.

Daí a necessidade de se desenvolver técnicas para manter a latência no processamento de áudio em computadores em níveis abaixo do limite indicado.

Multifuncional HP C3180: scanner no Debian GNU/Linux

Para fazer o scanner (e outras cositas) funcionarem nesta multifuncional:

# apt-get install hplip

E reinicie o sistema.

Muitos sites reportam que este periférico não funciona no Linux. Em Debian GNU/Linux funciona, mas é um backend que não vem com o sane (por isto, sane reporta como não suportado). Mais informações?

# apt-get instll hplip-doc

Ah, e não esqueça, tudo isto como root (use o sudo se preferir).

O que é e como funciona o linux scheduler e sua latência

Embora a história e os testes contidos em http://www.linuxdevices.com/articles/AT8906594941.html tenham valor apenas histórico, há uma excelente explicação do mecanismo de agendamento do kernel (linux scheduler). Vale a pena conferir. Abaixo, uma "palhinha":

Conforme Clark Williams,

"Linux scheduler latency problem ... is the delay between the occurrence of an interrupt and the running of the process that services the interrupt."
"What the heck does scheduler latency mean anyway? Latency is really a shorthand term for the phrase latent period, which is defined by webster.com to be "the interval between stimulus and response". In the context of the Linux kernel, scheduler latency is the time between a wakeup (the stimulus) signaling that an event has occurred and the kernel scheduler getting an opportunity to schedule the thread that is waiting for the wakeup to occur (the response). Wakeups can be caused by hardware interrupts, or by other threads."
Se preferir, baixe o pdf aqui.