I am afraid I got lost in your commands.
Ad sox: the -n parameter is used when either input source (device or file)or output sink (device or file) is missing, like when generating a signal (-n instead of input) or when generating spectrum/stats of the signal (-n instead of the output specs). Your commands seem to mix -n into existing input/output chain.
If you play a pre-generated wav, there is no need to put trim 0.0 100.0 dcshift 0.0. I used that for generating the dc-shifted constants which produce a constant pattern of bits in every sample in the I2S data stream.
Ad sox: the -n parameter is used when either input source (device or file)or output sink (device or file) is missing, like when generating a signal (-n instead of input) or when generating spectrum/stats of the signal (-n instead of the output specs). Your commands seem to mix -n into existing input/output chain.
If you play a pre-generated wav, there is no need to put trim 0.0 100.0 dcshift 0.0. I used that for generating the dc-shifted constants which produce a constant pattern of bits in every sample in the I2S data stream.