• Status Closed
  • Percent Complete
  • Task Type Patches
  • Category Codecs
  • Assigned To No-one
  • Operating System All players
  • Severity Low
  • Priority Very Low
  • Reported Version
  • Due in Version Undecided
  • Due Date Undecided
  • Votes
  • Private
Attached to Project: Rockbox
Opened by linuxstb - 2006-04-15

FS#5130 - SID codec based on tinysid

I’m uploading this patch on behalf of the author, Rainer Sinsch.

The codec is working in realtime on both Coldfire and ARM targets. The only real issue is track running time - currently all tracks are hard-coded to display a 2 minute running time, and they never stop - you need to manually press NEXT to go to the next track.

Closed by  linuxstb
2006-04-17 10:40
Reason for closing:  Out of Date
Additional comments about closing:   Warning: Undefined array key "typography" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 371 Warning: Undefined array key "camelcase" in /home/rockbox/flyspray/plugins/dokuwiki/inc/parserutils.php on line 407

Updated version of the patch uploaded by its author here: acker/task/5157

ep0ch commented on 2006-04-15 12:01

Simply brilliant! Been waiting for sid playback for a while and it plays back with little boost (about 8% on 5g)

Any idea how to implement navigating through subsongs?

it’s interesting
even on winamp there isn’t a length or seeking capabilites
and SID files are ment to be looped.
2:00 minutes is a bit too much concidering the files are not over 6KB


The HSVC SID collection contains a song length database - an MD5 checksum and running time for all SIDs included in that collection - some of these are lot longer than 2 minutes.

I think the only solution to track lengths is to somehow incorporate this database into Rockbox. The codec can then calculate the MD5 checksum of the .sid file, and stop playing after the specified length of time.

subsongs are more troublesome - Rockbox doesn’t have a concept of multiple tracks within a single file.

but i have sid files not from sid collections so what about my files?

maybe there’s a calculation you can do before playing the file to measure the length of the track?

I don’t believe you can auto-detect the track length from a SID file - I think it needs to be specified manually. But that’s a good point - when track length handling is added, we need a mechanism for a user to add track lengths for files not included in the standard database (if we go with the database route).

Forgive my ignorance in the way SIDs play, but if they loop doesn’t that mean there’s eventually a point where you reload (or go back over) data that you’ve played before? Why isn’t it possible to stop at that point? Or is this one of those “I can explain why SID songs can’t be stopped after one run, but it’s complex and technical?” I will accept that as an answer, but if a fairly simple, summarized, or otherwise explanation is available, I’d like to see it. I know it can’t be that simple because then it’d be done, but I’m mostly curious about what makes it difficult.

The reason is, as far as I understand it, that SID songs are not just song-data, but programs that output sound. This makes it quite difficult (or even impossible?) to determine when a song loops or ends. I guess it’s possible to do some analysis on the entire output, but that’s probably too taxing for the targets.

Now, a bug-report: I seem to be getting only “half” of the songs’ channels on my Iriver H120, or at least, not the entire output. For a song like Galway_Martin/Arkanoid.sid from the HVSC I only hear the background chords, not the actual melody.


Available keyboard shortcuts


Task Details

Task Editing