hw vs plughw for ADC

Hi, I’m using the ADC of your DAC+ADC from a Java program. In the list of “mixers” (corresponding to devices) that AudioSystem recognizes there are these two:

Port sndrpihifiberry [hw:2]
sndrpihifiberry [plughw:2,0]

The second one (plughw) works, but when I try to get a line with the first one (hw), I get an exception whatever parameters I try. For instance:

IllegalArgumentException: Line unsupported: interface TargetDataLine supporting format PCM_SIGNED 44100.0 Hz, 16 bit, stereo, 4 bytes/frame, little-endian, and buffers of 88200 to 88200 bytes

Of course I can just use the one with plughw to avoid the problem, but since I understand that “plughw” indicates another software layer compared to “hw”, I’m worry that this somehow tampers with the data from the ADC. The fact that the plughw choice seems to work for ANY sample rate, not just the ones listed as supported in the Hifiberry specs, seems to indicate that something is happening there.

Could you perhaps clarify the difference between the hw and plughw devices and tell me if I should use hw?


Please sign in to leave a comment.