Real-time audio over local network with good quality
Hello guys! Sorry if this question is not part of the scope of this list. I'm developing a real-time microphone system that will work over local network using ALSA library and sockets API with IP (UDP/TCP support) <https://github.com/ricardobiehl/ipmic>. The purpose is to make a good replacement to traditional microphone systems (wired or wireless). The problem is that I found difficulties in network control and in ALSA library too :-) . Basically I need help to select the best network scheduler algorithm, set the right parameters, and (in audio) create a PCM plug which supports (1 channel * 16 bit sample * 22050 Hz) and BLOCKING opening mode. All this without quality loss and real-time. Any contribution with the project is welcome! Thank you! -- Ricardo Biehl Pasquali
On Sun, Mar 27, 2016 at 9:18 PM, Ricardo Biehl <rbpoficial@gmail.com> wrote:
Hello guys!
Hi Ricardo,
Sorry if this question is not part of the scope of this list.
I'm developing a real-time microphone system that will work over local network using ALSA library and sockets API with IP (UDP/TCP support) <https://github.com/ricardobiehl/ipmic>.
This looks like pure userspace, and going up to the level above, this list is probably not the best place for it.
The purpose is to make a good replacement to traditional microphone systems (wired or wireless). The problem is that I found difficulties in network control and in ALSA library too :-) .
Yes, I know :)
Basically I need help to select the best network scheduler algorithm, set the right parameters, and (in audio) create a PCM plug which supports (1 channel * 16 bit sample * 22050 Hz) and BLOCKING opening mode. All this without quality loss and real-time.
Theres a lot of details you gloss over here, that will eventually have to be solved 1) how do you handle signalling (mic goes way, new one appears) 2) what kind of equipment do you support? (one computer for each mic gives you expensive mics) 3) signal (time)correlation, you need some timestamping to the samples to if you are going to combine local feedback 4) Consistent alsa config across all endpoints What you need is network hardware, both in the NIC and in the network infrastructure that can properly prioritize your streams and provide accurate timestamps. Have you looked at similar projects, like AES67 and TSN/AVB? AES67 is a best-effort approach, TSN requires support in the network to prioritize the streams. Go and have a gander at OpenAVB [1]
Any contribution with the project is welcome!
There may be something in the works that will be shipped out for RFC soon (see [2]) 1) https://github.com/AVnu/Open-AVB 2) http://mailman.alsa-project.org/pipermail/alsa-devel/2014-May/077087.html -- Henrik Austad
2016-03-28 4:42 GMT-03:00 Henrik Austad <henrik@austad.us>:
On Sun, Mar 27, 2016 at 9:18 PM, Ricardo Biehl <rbpoficial@gmail.com> wrote:
Hello guys!
Hi Ricardo,
Sorry if this question is not part of the scope of this list.
I'm developing a real-time microphone system that will work over local network using ALSA library and sockets API with IP (UDP/TCP support) <https://github.com/ricardobiehl/ipmic>.
This looks like pure userspace, and going up to the level above, this list is probably not the best place for it.
Thank you, I'll avoid to write messages like this.
The purpose is to make a good replacement to traditional microphone systems (wired or wireless). The problem is that I found difficulties in network control and in ALSA library too :-) .
Yes, I know :)
:-)
Basically I need help to select the best network scheduler algorithm, set the right parameters, and (in audio) create a PCM plug which supports (1 channel * 16 bit sample * 22050 Hz) and BLOCKING opening mode. All this without quality loss and real-time.
Theres a lot of details you gloss over here, that will eventually have to be solved
1) how do you handle signalling (mic goes way, new one appears) 2) what kind of equipment do you support? (one computer for each mic gives you expensive mics) 3) signal (time)correlation, you need some timestamping to the samples to if you are going to combine local feedback 4) Consistent alsa config across all endpoints
These factors are really important, I'm going to thinking about! 1 -> In my current state I do not have signal handling yet. 1 -> Equipment is a detail which I'm very concerned, I thought smartphones is a good transmitter. :-) . 3 -> I think timestamping could be ignored right now in my current branch!? 4 -> ALSA conf files are one of the most important parts, because they are necessary to convert rate etc.
What you need is network hardware, both in the NIC and in the network infrastructure that can properly prioritize your streams and provide accurate timestamps.
It's ok.
Have you looked at similar projects, like AES67 and TSN/AVB?
AES67 is a best-effort approach, TSN requires support in the network to prioritize the streams. Go and have a gander at OpenAVB [1]
Any contribution with the project is welcome!
There may be something in the works that will be shipped out for RFC soon (see [2])
I haven't looked it yet, thanks! Thank you for reply! Big hug!
1) https://github.com/AVnu/Open-AVB 2) http://mailman.alsa-project.org/pipermail/alsa-devel/2014-May/077087.html
-- Henrik Austad
-- Ricardo Biehl Pasquali
participants (2)
-
Henrik Austad -
Ricardo Biehl