Rockbox

This is the bug/patch tracker for Rockbox. Click here for more information.

Quick links: Bugs · Patches · Rockbox frontpage

Tasklist

FS#8836 - Short pcmbuf_beep() doesn't work properly on PortalPlayer targets

Attached to Project: Rockbox
Opened by Steve Bavin (pondlife) - Tuesday, 01 April 2008, 12:51 GMT+2
Last edited by Steve Bavin (pondlife) - Thursday, 03 April 2008, 16:27 GMT+2
Task Type Bugs
Category Music playback
Status New
Assigned To No-one
Player type PortalPlayer-based
Severity Low
Priority Normal
Reported Version current build
Due in Version Undecided
Due Date Undecided
Percent Complete 0%
Private No

Details

The attached patch revises pcmbuf_beep() in an attempt to kill the beeeeep of death that occurs on PortalPlayer targets when keyclick is enabled.

With this patch, on c200, the unpleasent beep seems to have gone, but the keyclick isn't very reliable:
- Before playback is started, the keyclick has an extra click (probably when pcm playback begins)
- While playback is in progress, the keyclick sounds correct, but is delayed (could the 1/8th second delay be removed?)
- After playback then STOP, the very first keyclick works, but subsequent ones are almost inaudible.

I've no idea why, but if the un-needed "memset(bufstart, 0, samples * 4);" is removed, then the keyclick after playback rarely sounds at all. I guess it's something to do with memory caching, but am not a low-level expert.

Also, it would be good if the pcmbuf static variable audiobuffer could be renamed, to avoid potential confusion with the audiobuffer declared in buffer.c.
This task depends upon

Comment by Steve Bavin (pondlife) - Wednesday, 02 April 2008, 08:14 GMT+2
Of course, the bug itself probably lies in the lower level PCM/DMA code. If it were in pcmbuf.c then I'd expect similar problems on all SWCODEC targets.
Comment by Steve Bavin (pondlife) - Thursday, 03 April 2008, 16:26 GMT+2
I've committed the above patch, minus the un-needed memset (and corresponding comment). Seems to kill the problem on PP, but sadly also the keyclick. H300 works fine with the simpler code.

I'll change this back to a bug report for some PP guru to look at.

Loading...