dirigir alsa a pulseaudio

#1 por nch79 el 09/04/2014
Tengo una duda, a ver si me podéis echar un cable, por favor.
Hay algo que no entiendo muy bien siguiendo las instrucciones que salen en la web de jack para dirigir alsa a pulseaudio como uno de los pasos para integrar pulseaudio con jack. No me refiero a que no me funcione, ese no es el problema, sino que tengo dudas sobre cual es el sample-rate resultante de hacerlo. Me explico. En el primer paso de la guía: http://trac.jackaudio.org/wiki/WalkThrough/User/PulseOnJack
donde dice ; "Redirecting ALSA to PulseAudio" vemos como hablan de modificar alguno de los archivos asound.conf o .asoundrc para que alsa pase directamente a pulseaudio. ¿Pero a que sample-rate? porque aunque pueda elegir, por ejemplo, 96khz en el daemon.conf de ./pulse, ¿Como se si en realidad no estoy pasando los habituales 48 khz de alsa a 96 khz sin más y en realidad esos 96 khz no contienen más que la información de 48 khz? Y si fuese así, ¿Como podría cambiar el sample-rate de alsa para luego dirigirlo a pulseaudio?
No se si me he explicado con claridad...
Subir
#2 por monon el 11/04/2014
Hola nch79.
Piensa por ejemplo que cuando estas escuchando un CD en tu PC y tienes el servidor de audio , ya sea jack o pulse , configurado a 48k o 96k o el sample rate que sea, hay una conversion y esta conversion existe siempre.
Solo hay un caso en que no hay conversion, y es cuando el samplerate del flujo de entrada y el de salida son los mismos.
Subir
#3 por nch79 el 11/04/2014
Hola monon. Mi duda más concretamente es la siguiente. Si yo uso un programa de sonido en wine y lo configuro para que tenga una salida de 96 khz, esa señal primero (en un sistema como el que describí arriba) será generada por alsa, si no me equivoco es lo que usa wine por defecto y después pasará directamente a pulseaudio. Pero al configurar los archivos asound.conf o .asoundrc para que alsa sea direccionado a pulseaudio, en ningún momento se especifica el sample-rate de alsa. ¿Entonces eso significa que alsa funciona bajo el sample rate de pulseaudio o usa el sample rate de 48 khz por defecto de alsa y luego vuelve a convetir la señal al rate de pulseaudio ?
Y otra cosa, al final he instalado directamente wineasio usando los repositorios de kxstudio. ¿Wineasio es independiente de alsa y pulseaudio?
Muchas gracias por la ayuda!
Subir
#4 por monon el 15/04/2014
Vamos a simplificar mucho
Aqui quien manda es la tarjeta de audio.
Si esta solo soporta una frecuencia de muesteo, el sistema (alsa) deberá adoptar esa frecuencia.

En segundo lugar está "Alsa", que son los modulos (drivers) que gestionan la tarjeta de sonido y que negocian con ella la frecuencia de muestreo que se usará (suponiendo que haya algo que negociar).
http://www.alsa-project.org/main/index.php/Asoundrc
Ahí se explica como configurar alsa a un sample rate determinado (si no me equivoco por defecto alsa usa 48K)

Leo en agún post...
ALSA never forces resampling. The device's sample rate is always what the application has configured for it, i.e., the sample rate of the original file.

Si cogemos dos copias de un mismo tema uno a 44100 y otro a 48000
y nos ponemos a escucharlos NO encotraremos diferencias de tono o duracion.
Es la biblioteca libsamplerate usada por la aplicacion, la que hace la conversion para que ambas canciones suenen "iguales" adaptado su frecuencia a la del sistema (lease alsa).
Dentro de esta categoria de aplicaciones que hacen uso de libsamplerate debes incluir a pulseaudio.

Pulseaudio es un servidor de sonido que encamina los streams de un lugar a otro (p.e.
aplicacion ------------------> (alsa)--->tarjeta.
Por tanto Pulse estará tambien supeditado a la frecuencia que le indique alsa, haciendo conversion si es necesario.

Repondiendo a tus preguntas.
Cualquier "sonido" generado (o leido) dentro del ordenador a una frecuencia diferente de aquella a la que esté configurada "alsa"...
...sufrira una conversion inversamente proporcional al cuadrado de la distancia...Uy perdon! se me ha ido la olla.

...sufrira una conversion de frecuencia de muestreo, si la aplicacion que lo reporduce/genera tiene esa capacidad (actualmente todas).
De otro modo, imagnate sin esa conversion, oiriamos un tema a 33 y otro a 45 (rpms jajajaja)

Con wine puedes usar alsa o pulse.
http://wiki.winehq.org/Sound
Sigo pesado, pero piensa en pulse o en jack(alsa) como en un elemento de gestion intermedio entre el sonido generado y la salida fisica (alsa).

Por otro lado está wineasio.
Yo no uso ni he usado wineasio, pero si no me equivoco hace uso de jack.
Piensa en que jack tiene, entre otros, a alsa como backend y por tanto siempre que uses "alsa", y haya diferencia de frecuencias de muesteo, habrá conversion.
Así que Jack tambien hace conversion de samplerate para adaptarlo al de alsa cuando estos no coinciden.
Si no fuese así, sería todo un verdadero lio para el usuario en vez de serlo para el programador.


Así que finalmente...
La frecuencia de muestreo resultante de cualquier operacion en la que al final esté alsa será la que tenga alsa.
Que, a no ser quee esté cambiada en el asoundrc, y si está soportada por tu tarjeta de sonido (seguramente si), será...
...48000.
Subir
#5 por nch79 el 15/04/2014
Pues muchas gracias monon. :grin:
Me queda todo más claro. Como uso dos tarjetas en el mismo sistema, lo que voy a hacer ahora es leerme con calma el link de alsa-project sobre el archivo .asoundrc para hacer las cosas bien desde el principio.
Saludos!
Subir
Respuesta rápida

Regístrate o para poder postear en este hilo