#4656 closed bug (fixed)
choppy, cracking sound on Haiku — at Version 16
Reported by: | farvardin | Owned by: | korli |
---|---|---|---|
Priority: | normal | Milestone: | R1 |
Component: | Drivers/Audio/auich | Version: | R1/alpha1 |
Keywords: | Cc: | ||
Blocked By: | Blocking: | ||
Platform: | x86 |
Description (last modified by )
I can play ogg vorbis or mp3 files with the MediaPlayer. But the sound is choppy and cracks quite much. I noticed if I disable a CPU (it's an amd64 dual core), it sounds a bit better. Yet if I do something on the system (right clicking on the ProcessController, clicking on a tab in Firefox/BeZilla), then the sound is even more degradated, as if my computer was not powerful enough to handle this.
(this issue was discussed on: http://www.haiku-os.org/community/forum/playing_music )
I noticed also when turning the "real time audio" off, and restarting the media_server, the sound seemed slightly better too (and when I reboot Haiku, the real time audio option is checked again)
I'm running Haiku on real hardware, and the music files are stored on the BeOS partition (on the Desktop). I have 2 Gb of Ram.
Here is the full listdev for my hardware:
device Bridge (Host bridge) [6|0|0] vendor 1022: Advanced Micro Devices [AMD] device 1103: K8 [Athlon64/Opteron] Miscellaneous Control device Bridge (Host bridge) [6|0|0] vendor 1022: Advanced Micro Devices [AMD] device 1102: K8 [Athlon64/Opteron] DRAM Controller device Bridge (Host bridge) [6|0|0] vendor 1022: Advanced Micro Devices [AMD] device 1101: K8 [Athlon64/Opteron] Address Map device Bridge (Host bridge) [6|0|0] vendor 1022: Advanced Micro Devices [AMD] device 1100: K8 [Athlon64/Opteron] HyperTransport Technology Configuration device Bridge [6|80|0] vendor 10de: nVidia Corporation device 0269: MCP51 Ethernet Controller device Multimedia controller (Multimedia audio controller) [4|1|0] vendor 10de: nVidia Corporation device 026b: MCP51 AC97 Audio Controller device Serial bus controller (FireWire (IEEE 1394), OHCI) [c|0|10] vendor 104c: Texas Instruments device 8023: TSB43AB22/A IEEE-1394a-2000 Controller (PHY/Link) device Bridge (PCI bridge, Subtractive decode) [6|4|1] vendor 10de: nVidia Corporation device 026f: MCP51 PCI Bridge device Mass storage controller (IDE interface) [1|1|85] vendor 10de: nVidia Corporation device 0267: MCP51 Serial ATA Controller device Mass storage controller (IDE interface) [1|1|85] vendor 10de: nVidia Corporation device 0266: MCP51 Serial ATA Controller device Mass storage controller (IDE interface) [1|1|8a] vendor 10de: nVidia Corporation device 0265: MCP51 IDE device Serial bus controller (USB Controller, EHCI) [c|3|20] vendor 10de: nVidia Corporation device 026e: MCP51 USB Controller device Serial bus controller (USB Controller, OHCI) [c|3|10] vendor 10de: nVidia Corporation device 026d: MCP51 USB Controller device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 0272: MCP51 Memory Controller 0 device Serial bus controller (SMBus) [c|5|0] vendor 10de: nVidia Corporation device 0264: MCP51 SMBus device Bridge (ISA bridge) [6|1|0] vendor 10de: nVidia Corporation device 0260: MCP51 LPC Bridge device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 0270: MCP51 Host Bridge device Display controller (VGA compatible controller, VGA controller) [3|0|0] vendor 10de: nVidia Corporation device 0242: C51G [GeForce 6100] device Bridge (PCI bridge, Normal decode) [6|4|0] vendor 10de: nVidia Corporation device 02fb: C51 PCI Express Bridge device Bridge (PCI bridge, Normal decode) [6|4|0] vendor 10de: nVidia Corporation device 02fc: C51 PCI Express Bridge device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 027e: C51 Memory Controller 2 device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 027f: C51 Memory Controller 3 device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 02ff: C51 Host Bridge device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 02f9: C51 Memory Controller 4 device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 02f8: C51 Memory Controller 5 device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 02fe: C51 Memory Controller 1 device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 02fa: C51 Memory Controller 0 device Memory controller (RAM memory) [5|0|0] vendor 10de: nVidia Corporation device 02f1: C51 Host Bridge
Change History (16)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
I'm afraid I didn't manage to find which audio driver is being used. Is there a command line to find this out?
The Media preferences gives me for audio input and output: Auich nVidia, but that's all. It's the basic Haiku installation and I haven't installed further drivers. Are the OSS drivers included in the iso as well?
comment:3 by , 15 years ago
it seems they are not so it's probably the HDA I'm using.
http://www.haiku-os.org/community/forum/please_include_oss_driver
comment:5 by , 15 years ago
I believe you can find out what driver is loaded and in use with the following from a terminal:
ls /dev/audio/hmulti
comment:6 by , 15 years ago
I have this problem on my Dell GX270 and Latitude C640 as well, both use the auich driver, any heavy CPU activity will cause the audio to crack and breakup, and I have noticed that sometimes right clicking on ProcessController will kill the audio all together, although restarting the media server fixes this.
comment:7 by , 15 years ago
Component: | Audio & Video → Drivers/Audio |
---|---|
Owner: | changed from | to
Ok, so it looks like the AUICH driver has some issues.
comment:8 by , 15 years ago
With the auich driver there are some settings you can play with.
# Settings file for the auich driver # # This file should be moved to the directory # ~/config/settings/kernel/drivers/ #
#sample_rate 48000 #buffer_frames 256 #buffer_count 4 #use_thread false
I would put this line in the place mentioned above and uncomment buffer_frames and buffer_count.
Then make changes like increase buffer_frames to 4096 say and reboot. See if it makes any difference.
I think buffer_frames is how many frames can be played from one buffer and buffer_count is how many buffers there are available.
cracks and pops I think would be improved by increasing buffer_frames.
comment:9 by , 15 years ago
I cut and pasted those settings into "~/config/settings/kernel/drivers/auich" and made the adjustments but I couldn't tell a difference, the popping and clicking were still present. I did notice that they are more pronounced on a slower machine, if I play an mp3 on my 2.4Ghz P4 GX270 using CL-AMP or VLC, and then move a Firefox window in circles the audio will pop and crack, however if I do the same on my 2Ghz P4m Latitude C640, the popping and cracking is more pronounced, and if I am running on battery power at 1.3 Ghz, moving the firefox window in tight circles will bring the audio to a halt.
Also MediaPlayer seems MUCH more susceptible to to popping and cracking than VLC or CL-AMP
comment:10 by , 15 years ago
Sorry I missed the filename part. The file has to be called auich.settings
for this define
#define AUICH_SETTINGS "auich.settings"
and the driver has to be reloaded with a reboot.
I am not sure if the right settings will fix the issue but I am interested in what effect they have for you.
comment:11 by , 15 years ago
Ok, that fixed the popping and clicking for my GX270, I put a massive load on my machine (QEMU running, moving the firefox window in tight circles while it was loading 10 tabs and switching workspaces with multiple windows and apps opened) and the audio played perfectly, I also added the file to my Latitude C640 but it didn't seem to improve anything, the audio still pops and cracks. Here is the listdev for both audio cards.
GX270 Audio: device Multimedia controller (Multimedia audio controller) [4|1|0]
vendor 8086: Intel Corporation device 24d5: 82801EB/ER (ICH5/ICH5R) AC'97 Audio Controller
C640 Audio: device Multimedia controller (Multimedia audio controller) [4|1|0]
vendor 8086: Intel Corporation device 2485: 82801CA/CAM AC'97 Audio Controller
comment:12 by , 15 years ago
Interesting, what settings did you try?
You can keep increasing the buffer size to see what effect it has. You can also try setting use_thread true on the C640 machine.
This runs a high priority thread to perform the streaming instead of interrupts.
Or try more buffers with buffer_count
comment:13 by , 15 years ago
Hello,
thank you for the tips, it's working for me too:
I've create a ~/config/settings/kernel/drivers/auich.settings file, and I've set :
sample_rate 48000 buffer_frames 4096 buffer_count 4 use_thread false
And now there is no more cracking and error messages. Problably the buffer_frames should be set to a higher value by default.
comment:14 by , 15 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
Ok I have made the default 4096 buffer_frames
Please close this ticket
comment:15 by , 15 years ago
I increased buffer_frames to 8192 and the audio came out garbled, the same when buffer_count was increased to 8, when I enabled use_thread my machine locked up when the app_server started, I tried a few times and was able to get to the deskbar but the clock was frozen and the caps lock didn't respond so I am assuming it locked the machine. I'll do more in depth testing when I get a chance and submit a bug report.
comment:16 by , 13 years ago
Component: | Drivers/Audio → Drivers/Audio/AUICH |
---|---|
Description: | modified (diff) |
Do you know what audio driver is being used?
OSS? HDA?