I'm attempting to alter the XNext walkman Magisk module for the Xperia 1 IV. I've gotten to the stage of modifying the existing asound.conf, but I'm struggling to find the right controls on the device to play media through.
In this case, I have a config that defines audio in/out devices (resourcemanagr_waipio_qrd.xml), and from this I have extracted the following out-device
: https://paste.debian.net/1394516/
From this, I have noted the corresponding hw device from aplay -l
:
CODEC_DMA-LPAIF_RXTX-RX-0 multicodec-0
I'm lost, however, as to how I might determine how to address this in asound.conf - which contains the module as follows: https://paste.debian.net/1394517/
where the first and last name
elements appear to be the name of the device. I have attempted the following values:
CODEC_DMA-LPAIF_RXTX-RX-0 multicodec-0
CODEC_DMA-LPAIF_RXTX-RX-0
CODEC_DMA-LPAIF_RXTX-RX-0 Audio Mixer Multimedia1
The last being a vague hope that there are somehow some additional configuration flags necessary. However, each time I attempt aplay -v -D headset test.wav
, aplay responds that the device cannot be found. headset
is slaved indirectly to pcm.headphone
, and aplay does contain the correct device name according to asound.conf, so instead I must have the wrong device - except it's configured as such in all the resource config files. So what am I doing wrong, and how might I find the correct combination of bits and pieces?
Here is the full resourcemanager_waipio_qrd.xml
: https://paste.debian.net/1394821/
Output of aplay -l
on the device: https://paste.debian.net/1394822/
asound.conf
as it currently stands: https://paste.debian.net/1394823/
Update! I have discovered that the DMA control is now obfuscated on this generation of audio card. Instead, I am supposed to turn on and off the dac switch. As a result, I have come up with the following:
{
name 'HPHL_RDAC Switch'
preserve false
lock false
value [ 0 ]
}
{
name 'HPHR_RDAC Switch'
preserve false
lock false
value [ 0 ]
}
{ name 'RX_MACRO RX0 MUX' value AIF1_PB }
{ name 'RX_MACRO RX1 MUX' value AIF1_PB }
{ name 'RX INT0_1 MIX1 INP0' value RX0 }
{ name 'RX INT1_1 MIX1 INP0' value RX1 }
{ name 'RX INT0 DEM MUX' value CLSH_DSM_OUT }
{ name 'RX INT1 DEM MUX' value CLSH_DSM_OUT }
{ name 'RX_COMP1 Switch' value 1 }
{ name 'RX_COMP2 Switch' value 1 }
{ name 'HPHL_RDAC Switch' value 1 }
{ name 'HPHR_RDAC Switch' value 1 }
{ name 'RX_RX0 Digital Volume' value 84 }
{ name 'RX_RX1 Digital Volume' value 84 }
{
name 'HPHL_RDAC Switch'
preserve true
lock true
value [ 1 ]
}
{
name 'HPHR_RDAC Switch'
preserve true
lock true
value [ 1 ]
}
Now aplay -v -D headset test.wav
returns the following:
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
ALSA lib confmisc.c:136:(snd_config_get_bool) Invalid type for value
Playing WAVE 'test.wav' : Signed 16 bit Little Endian, Rate 44100 Hz, Stereo
aplay: set_params:1436: Unable to install hw params:
ACCESS: RW_INTERLEAVED
FORMAT: S16_LE
SUBFORMAT: STD
SAMPLE_BITS: 16
FRAME_BITS: 32
CHANNELS: 2
RATE: 44100
PERIOD_TIME: (10666 10667)
PERIOD_SIZE: (470 471)
PERIOD_BYTES: (1880 1884)
PERIODS: (15 17)
BUFFER_TIME: (170657 170658)
BUFFER_SIZE: 7526
BUFFER_BYTES: 30104
TICK_TIME: 0
I'm not quite sure if this is because I actually have the incorrect values, or if I just have the wrong components. They certainly match the contents of my mixer paths...