[arch-general] HDMI audio input - HDMI microphone
Hi, I am designing a digital microphone that should send PCM (LPCM) data to a PC, and I am new to electronics. My first thought for the connection type to interface with the PC was of course USB, but then I figured that HDMI is an alternative more suited to digital audio data, and maybe simpler to work with. But how to get at audio data through HDMI on a Linux system, if it is even possible? I do not mind writing a kernel module if it would not be too complicated. My CPU is i5-8300H with IntelĀ® UHD Graphics 630. Regards, Nsajko
Hi,
I am designing a digital microphone that should send PCM (LPCM) data to a PC, and I am new to electronics. Sounds like a standard thing. I'm not aware of your restrictions but I would actually suggest looking into some pre-made Texas Instruments ADC/DAC->USB ICs which are widely in use in existing products.
My first thought for the connection type to interface with the PC was of course USB, but then I figured that HDMI is an alternative more suited to digital audio data, and maybe simpler to work with. USB is sufficient, for LPCM (assuming 16bit stereo 48kHz) requires 1.47Mbit/s whereas USB2.0 is already 480Mbit/s. HDMI generally only carries audio from a video source (PC) to a monitor, it can optionally carry audio back through ARC (Audio Return Channel), which is used by TVs that are connected to a HDMI receiver (those fancy 5.1, 7.1 amplifiers that switch HDMI), adding the ability to route TV audio back to the receiver even though the receiver generally only sends video to the TV over
On Wednesday, February 27, 2019 4:48:04 PM CET Neven Sajko via arch-general wrote: this cable. I have not seen graphics cards that support ARC, HDMI is kinda an interersting thing because the cable physically allows two graphics cards to be connected, but it has little meaning. This can cause a bit of confusion as to what's possible.
But how to get at audio data through HDMI on a Linux system, if it is even possible? I do not mind writing a kernel module if it would not be too complicated.
Well, I don't see the possibility as you are bound by what the graphics card support and as far as I'm aware, there's no feature to receive audio while sending video. It could be possible with a capture card, but then you essentially throw away a big chunk of the abilities of the HDMI cable (video).
My CPU is i5-8300H with IntelĀ® UHD Graphics 630.
Regards, Nsajko
I hope this gives some pointers, but like I said at the top, without knowing your boundaries, it's hard to suggest some things. Greetings, Daniel
Sounds like a standard thing. I'm not aware of your restrictions but I would actually suggest looking into some pre-made Texas Instruments ADC/DAC->USB ICs which are widely in use in existing products.
Well, my MEMS microphones are actually themselves digital (PDM) so I do not need an ADC. I will look into existing USB ICs, but I do not think I will use them as this is a learning exercise (I think I will solve PDM->USB with either a microcontroller or an FPGA).
USB is sufficient, for LPCM (assuming 16bit stereo 48kHz) requires 1.47Mbit/s whereas USB2.0 is already 480Mbit/s. HDMI generally only carries audio from a video source (PC) to a monitor, it can optionally carry audio back through ARC (Audio Return Channel), which is used by TVs that are connected to a HDMI receiver (those fancy 5.1, 7.1 amplifiers that switch HDMI), adding the ability to route TV audio back to the receiver even though the receiver generally only sends video to the TV over this cable.
Thanks a bunch :) . So the conclusion is that HDMI supports this ARC thing, but the graphics cards do not. Well, then I will use USB. Thanks again, Nsajko
Prosumer, as well as professional audio interfaces work very good using the class compliance Linux USB driver. I own a prosumer audio interface with 18 input and 20 output channels and there are no issues using all of them and moreover, the prosumer USB device works way better, than my professional PCIe audio interface. However, it's not necessarily a good idea to use USB for a single microphone. Without doubts it depends on the purpose, I suspect that it's ok for a headset, but for audio productions USB microphones are of ill repute.
Prosumer, as well as professional audio interfaces work very good using the class compliance Linux USB driver. I own a prosumer audio interface with 18 input and 20 output channels and there are no issues using all of them and moreover, the prosumer USB device works way better, than my professional PCIe audio interface.
Hmmm, one advantage of PCIe is that it provides 3.3 V which does not have to be divided for supplying the microphone with it. Also PCIe causes less latency, but that is not really important for my use case. But I do not really see why would USB be a bad choice... Regards, Neven
On Wed, 27 Feb 2019 19:07:51 +0000, Neven Sajko wrote:
Prosumer, as well as professional audio interfaces work very good using the class compliance Linux USB driver. I own a prosumer audio interface with 18 input and 20 output channels and there are no issues using all of them and moreover, the prosumer USB device works way better, than my professional PCIe audio interface.
Hmmm, one advantage of PCIe is that it provides 3.3 V which does not have to be divided for supplying the microphone with it. Also PCIe causes less latency, but that is not really important for my use case.
But I do not really see why would USB be a bad choice...
If you are using a single audio interface for recording and playback all your digital (ADAT, S/PDIF, AES/EBU) and analog equipment, you only need to handle a single audio interface via Linux or any other OS. This audio interface needs to sync (at best via word clock) to connected digital gear, too, but for the OS it's just one interface. While it's possible to use more than just one audio interface and it's also possible to sync several interfaces, it's an annoyance to use more than just one audio interface. You would end up making several synced audio interfaces a single virtual audio interface or use some resampling solution, if sync via hardware shouldn't be provided. In short, if you should use 4 USB microphones, you would have to handle 4 audio interfaces, instead of one. Without a workaround you won't be able to use those for 4 audio interfaces for example with jackd. Workarounds steal time that could be better used.
On Wed, 27 Feb 2019 at 19:58, Ralf Mardorf <silver.bullet@zoho.com> wrote:
On Wed, 27 Feb 2019 19:07:51 +0000, Neven Sajko wrote:
Prosumer, as well as professional audio interfaces work very good using the class compliance Linux USB driver. I own a prosumer audio interface with 18 input and 20 output channels and there are no issues using all of them and moreover, the prosumer USB device works way better, than my professional PCIe audio interface.
Hmmm, one advantage of PCIe is that it provides 3.3 V which does not have to be divided for supplying the microphone with it. Also PCIe causes less latency, but that is not really important for my use case.
But I do not really see why would USB be a bad choice...
If you are using a single audio interface for recording and playback all your digital (ADAT, S/PDIF, AES/EBU) and analog equipment, you only need to handle a single audio interface via Linux or any other OS. This audio interface needs to sync (at best via word clock) to connected digital gear, too, but for the OS it's just one interface. While it's possible to use more than just one audio interface and it's also possible to sync several interfaces, it's an annoyance to use more than just one audio interface. You would end up making several synced audio interfaces a single virtual audio interface or use some resampling solution, if sync via hardware shouldn't be provided. In short, if you should use 4 USB microphones, you would have to handle 4 audio interfaces, instead of one. Without a workaround you won't be able to use those for 4 audio interfaces for example with jackd. Workarounds steal time that could be better used.
Thank you for the insight! Summa summarum: if the user needs to use more than one microphone device (for recording separate sound sources), USB is a bad choice for the microphone compared to ADAT, S/PDIF, or AES/EBU. But in my case just the one microphone array is all that will run at the same time, and I want it connected directly to my PC, so USB or PCIe seem like the most natural interfaces. Regards, Nsajko
On Wed, 27 Feb 2019 20:15:07 +0000, Neven Sajko wrote:
Thank you for the insight!
Summa summarum: if the user needs to use more than one microphone device (for recording separate sound sources), USB is a bad choice for the microphone compared to ADAT, S/PDIF, or AES/EBU.
My bad. An audio interface, such as the onboard thingy or an USB audio interface could provide for example S/PDIF. USB is good, but using more than one audio interface comes with pitfalls.
But in my case just the one microphone array is all that will run at the same time, and I want it connected directly to my PC, so USB or PCIe seem like the most natural interfaces.
So for recording you just need one USB microphone, but for playback you still need another audio interface. Most likely you will use your on-board audio device. Most likely you mobo provides S/PDIF, so from my point of view, I would tend to go with S/PDIF instead of USB. My point of view is biased, since I'm a pro-audio user. IOW I try to ensure that jackd usage is as easy as it could be. If you are using pulseaudio, my thoughts might be absolutely irrelevant. As a former audio engineer who worked for one of the two famous German microphone companies, my intuitive thought is still to prefer S/PDIF over USB. Perhaps I'm just a dino who missed that all gear nowadays is equipped with USB. In my experiences a lot of consumer gear provides S/PDIF, but not necessarily USB, so assumed you one day want to connect your digital microphone to some other equipment (not to a computer), there might be no USB port available, while S/PDIF usually is available.
As a former audio engineer who worked for one of the two famous German microphone companies, my intuitive thought is still to prefer S/PDIF over USB. Perhaps I'm just a dino who missed that all gear nowadays is equipped with USB. In my experiences a lot of consumer gear provides S/PDIF, but not necessarily USB, so assumed you one day want to connect your digital microphone to some other equipment (not to a computer), there might be no USB port available, while S/PDIF usually is available.
Actually, after reading the Wikipedia S/PDIF article it seems that S/PDIF does not have enough bandwidth for my purposes, since I am building a microphone array. Wikipedia implies that no more than 5 channels of PCM can sent over S/PDIF. Regards, Neven
On Wed, 27 Feb 2019 21:30:26 +0000, Neven Sajko wrote:
As a former audio engineer who worked for one of the two famous German microphone companies, my intuitive thought is still to prefer S/PDIF over USB. Perhaps I'm just a dino who missed that all gear nowadays is equipped with USB. In my experiences a lot of consumer gear provides S/PDIF, but not necessarily USB, so assumed you one day want to connect your digital microphone to some other equipment (not to a computer), there might be no USB port available, while S/PDIF usually is available.
Actually, after reading the Wikipedia S/PDIF article it seems that S/PDIF does not have enough bandwidth for my purposes, since I am building a microphone array. Wikipedia implies that no more than 5 channels of PCM can sent over S/PDIF.
5 or more channels? If your intention should go into this direction: http://www.marquetteaudiolabs.com/product_spl_atmos51.html If so, don't waste your time ;). It failed!
On Wed, 27 Feb 2019 22:44:55 +0100, Ralf Mardorf via arch-general wrote:
If your intention should go into this direction: http://www.marquetteaudiolabs.com/product_spl_atmos51.html
Hahaha, off-topic but funny, even the truth could be a blatant lie. "The ASM 5 is based upon five matched microphone heads from the highly acclaimed Brauner VM 1 microphone." True, the same well selected capsules were used. Apart from the whole 5.1 crap that failed, the VM 1 is a tube microphone that does it's job while the ASM 5 is an under deadline pressure bad designed field-effect transistor based microphone, that is unable to hold a candle to a VM 1.
participants (3)
-
Daniel Sonck
-
Neven Sajko
-
Ralf Mardorf