hi, just registered to say thank you very much
with
audio_pwm_mode=2
and latest rpi-update
the sounds from my pi2 sounds a million times better. playing through forked-daapd.
tzapu wrote:hi, just registered to say thank you very much
with
audio_pwm_mode=2
and latest rpi-update
the sounds from my pi2 sounds a million times better. playing through forked-daapd.
vcgencmd version will give you the firmware build date and revision. Note that this is different from the hash you use for specific rpi-update versions, but the date string in vcgencmd version can be cross-referenced.marcel-heijkoop wrote:Hi JDB,
Many thanks for the updates in the firmware.
Audio is improved so much I am now enjoying the standard analogue output over big speakers in my living room.
For my tests I use a picoreplayer 2.04 setup with manually updated start.elf and only the audio_pwm_mode=2 switch.
I've had no stability issues, nor experienced the distorted single channel, but also have not tested all versions as the picore implementation lacks rpi-update.t.m.k.
Some stutters were due to the squeezelight buffer under runs and my Wi-Fi utilization and overcome by increasing buffers.
The distortion in peaks when playing at volume levels between 85 and 100% are obvious audible. And of course easy avoided.
A limited volume setting would help to use this 85-100 range.
Please try and avoid the clipping or wrapping in the final version.
Perhaps in a version "audio_pwm_mode=3" ? you could reduce the noise amplitude in the shaping when nearing the upper and lower limits. I think it woud come down to dynamic range compression, but with the benefits of max analogue output without obvious digital distortion.
Please help me to determine the exact firmware version from start.elf files. Or methods to pull such updates from picore.
Regards Marcel
Signed saturating arithmetic is a good method, and probably the only reasonably achievable optionvcgencmd version will give you the firmware build date and revision. Note that this is different from the hash you use for specific rpi-update versions, but the date string in vcgencmd version can be cross-referenced.
I've implemented signed saturating arithmetic for the noise shaping, which prevents egregious corruption of the signal but if you push the volume too high, the noise shaping is destroyed as there's no headroom - leading to steadily higher levels of white noise polluting the output.
You can set large positive gains using OpenMAX which breaks things under the previous driver as well, so this is generally filed under "don't do that". If you can get distortion by setting the ALSA volume control to max, then I'll have a look at squashing the volume table slightly.
See here. The audio output of the 3B is shown bottom right of the page.marcel-heijkoop wrote:Next should be testing this on the pizero. I just need to find time to google a matching analogue filter , order the components online, and solder the stuf on a small board. It will cost more than a phat dac, but it could convince people the 2nd generation of pizero should have the analogue output again, on dedicated pins or pads to keep costs down
Code: Select all
aplay: pcm_write:1939: write error: Input/output error
It's not the default yet.sylgar wrote:Is audio_pwm_mode=2 the default these days (as of the time of writing - 2016-06-29)? Or should it still be set in config.txt?
Code: Select all
[email protected]:~$ vcgencmd get_config audio_pwm_mode
audio_pwm_mode=2
[email protected]:~$
Code: Select all
[email protected]:~ $ cat /boot/config.txt
# For more options and information see
# http://www.raspberrypi.org/documentation/configuration/config-txt.md
# Some settings may impact device functionality. See link above for details
# uncomment if you get no picture on HDMI for a default "safe" mode
#hdmi_safe=1
# uncomment this if your display has a black border of unused pixels visible
# and your display can output without overscan
#disable_overscan=1
# uncomment the following to adjust overscan. Use positive numbers if console
# goes off screen, and negative if there is too much border
#overscan_left=16
#overscan_right=16
#overscan_top=16
#overscan_bottom=16
# uncomment to force a console size. By default it will be display's size minus
# overscan.
#framebuffer_width=1280
#framebuffer_height=720
# uncomment if hdmi display is not detected and composite is being output
#hdmi_force_hotplug=1
# uncomment to force a specific HDMI mode (this will force VGA)
#hdmi_group=1
#hdmi_mode=1
# uncomment to force a HDMI mode rather than DVI. This can make audio work in
# DMT (computer monitor) modes
#hdmi_drive=2
# uncomment to increase signal to HDMI, if you have interference, blanking, or
# no display
#config_hdmi_boost=4
# uncomment for composite PAL
#sdtv_mode=2
#uncomment to overclock the arm. 700 MHz is the default.
#arm_freq=800
# Uncomment some or all of these to enable the optional hardware interfaces
#dtparam=i2c_arm=on
#dtparam=i2s=on
#dtparam=spi=on
# Needed with newer kernerls than 3.12 to use thermel sensors
dtoverlay=w1-gpio
# Uncomment this to enable the lirc-rpi module
#dtoverlay=lirc-rpi
# Additional overlays and parameters are documented /boot/overlays/README
# Enable audio (loads snd_bcm2835)
dtparam=audio=on
#core_freq=250
#sdram_freq=400
#over_voltage=0
gpu_mem=16
audio_pwm_mode=2
#Enable IR LED/Reciever (also see /etc/modules)
dtoverlay=lirc-rpi,gpio_out_pin=26,gpio_pin_in_pin=none
[email protected]:~ $ vcgencmd get_config audio_pwm_mode
audio_pwm_mode=514
[email protected]:~ $ uname -r
4.4.13+
[email protected]:~ $