Notice: A non well formed numeric value encountered in /sites/ on line 96 Notice: A non well formed numeric value encountered in /sites/ on line 96 Notice: A non well formed numeric value encountered in /sites/ on line 96 Deprecated: Function create_function() is deprecated in /sites/ on line 104 Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /sites/ on line 845 Deprecated: Function create_function() is deprecated in /sites/ on line 111 FS#6247 : Support for my new open-source format



FS#6247 - Support for my new open-source format

Attached to Project: Rockbox
Opened by michael (djtrancendance) - Thursday, 26 October 2006, 18:21 GMT
Last edited by Jonathan Gordon (jdgordon) - Thursday, 02 August 2007, 12:25 GMT
Task Type Feature Requests
Category Codecs
Status Closed
Assigned To No-one
Operating System All players
Severity Medium
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 1
Private No


I have a new format called DOT100 that compresses music by taking out what sounds bad harmonically instead of what's over the ATH. It currently acheives a 1/42 (AAC-plus 32kbps-like) compression ratio, yet it's getting better constantly and 1/84 ratio in the final version doesn't seem unreasonable. It might be very useful for people who want AAC-plus-like compression performance without the SBR processor load or proprietary format nature.

The encoder & decoder C code for the DOT100 format is under 1000 lines total (much simpler than mp3 or ogg) and I'm pretty sure your devlopment team would have no problem snapping it into Rockbox if it sounds good to you.

I have the complete source code available at Please let me know what you think and, if it goes through ok, let me know what I can do to develop the code to make it easier to integrate into Rockbox.

Best Regards, Michael
This task depends upon

Closed by  Björn Stenberg (zagor)
Thursday, 02 August 2007, 12:25 GMT
Reason for closing:  Out of Date
Additional comments about closing:  Closing all feature requests.
Comment by Linus Nielsen Feltzing (linusnielsen) - Friday, 27 October 2006, 06:22 GMT
This looks quite interesting. A few comments:

1) The Common Public License is not compatible with GPL

2) It is currently written in C++. We use plain C99 in Rockbox.

3) You use floating point arithmetics, which will be dog slow on the target. Use fixed point instead.
Comment by michael (djtrancendance) - Saturday, 28 October 2006, 18:31 GMT
Sounds very good Linus...I'm preparing to optimize the code. A few questions I'd appreciate some help with, though:

1) Is it possible to simply switch licenses to GPL in the next release of Dot100 (0.85) (I know, a newbie question, I'm new to open source)? :-)
2) Besides not using objects (plain old C compatibility), what's a good way to check if my code is C99 complaint? Could you give me a link to a compiler (GNU?) that runs under windows or dos and has a C99 mode?
3) I'm in the process if converting to fixed point, starting with the FFT math and continuing into the phasing code.
I'm guessing the floating-point processing lag is mostly critical for mathematical operations (fmul, fdiv, etc), rather than simple storage and comparisons (mov, cmp) of floating point values that cause significant slow down? Or is it both?
Comment by Jonas Häggqvist (rasher) - Saturday, 28 October 2006, 21:16 GMT
I'm no C wizard, so you'll probably want to wait for an answer from someone else as well.

1) If you're the author of all the code (which it seems like you are), you can do with it whatever you see fit, including changing the licensing on it on a whim.
2) MinGW ( is a version of GCC and related tools that run on windows. If it compiles with gcc (rather than g++), you should be more or less fine.
3) The switch to fixed-point is pretty much crucial for Rockbox' needs since none of the targets have an FPU, so all floating-point operations are done using software emulation, which obviously results in a significant slowdown. You'll want to remove all uses of floating-point throughout the decoder.