Help - Search - Members - Calendar
Full Version: iAudio M5L doesn't support "Floor 0" OGGs...
Hydrogenaudio Forums > Lossy Audio Compression > Ogg Vorbis > Ogg Vorbis - General
simisker
Hi, folks!

It's my first post, so be gentle! smile.gif

I recently bought an iAudio M5L and was dismayed to find that it doesn't want to play any OGG files that were encoded with "Floor 0" [i.e. those encoded with libvorbis 1.0 beta 4 or lower, for the technically-minded among you].

The big problem there is that I've been ripping and encoding since the early days and have built up quite a collection of these. Plus "Floor 0" OGGs are still part of the Ogg Vorbis standard, and until it becomes deprecated/obsolete [which seems unlikely] it's a matter of stubborn principle that I purchase and use a digital audio player that fully supports the OGG standards.

I mean, every other decoder I've encountered can play them without problem: Winamp, Foobar, XMMS, even Mortplayer on my little i-mate JAM mobile phone/mini-PDA can play them. Heck, even iAudio's own PC-based JetAudio software can play them! Just not the M5L. sad.gif

As I see it, I have several options, some more desirable than others:

1. Transcode - Not desirable, and I've read that OGG>OGG transcodes fair particularly badly with all manner of artifacts.

2. Hope that Cowon fix this in a firmware upgrade - Though I'm not particularly optimistic as they seem more keen to focus on their newer models...

3. Somehow convert Floor 0 to Floor 1 - My ideal solution is where I discover that some wonderful people have found a way of converting one to the other without the need to transcode and lose quality. I've not found one so far, and the more I research, the less viable it seems. Worth mentioning though, just in case.

4. Discover a DAP that can handle Floor 0 OGGs - This is where you lovely and wise people come in. If you know of a quality hard-drive based DAP that definitely copes with Floor 0 OGGs, I'd love to hear about it!

Thanks for reading if you made it this far! Any suggestions would be very welcome, believe me smile.gif

Lear
You could try installing Rockbox on it. It should handle Floor0 files. I've at least fixed some of bugs that prevented old files from working. tongue.gif
simisker
Rockbox and the M5 don't [or at least aren't going to] mix:

QUOTE("Rockbox website:")
iAudio M5

While seemingly very similar to the X5, it has a greyscale LCD and there is no developer with a unit like this (== no real work is being done to port Rockbox to it).


So that's one avenue of possibility barricaded sad.gif

Thanks, however, Lear! smile.gif

[EDIT: Though there is a Rockbox port for the X5... if someone with that combination were to confirm that it solves the Floor 0 problem, that'd be verrry interesting...]
Alex B
QUOTE(simisker @ Jul 24 2006, 00:22) *
Though there is a Rockbox port for the X5... if someone with that combination were to confirm that it solves the Floor 0 problem, that'd be verrry interesting...]


Perhaps post a "Floor 0" sample? I guess those old Vorbis betas are not common.
drezon
Rockbox uses Tremor, the official integer decoder from xiph.org. So it should support any valid Ogg Vorbis file. If it doesn't that's a bug that should be reported to xiph..
simisker
QUOTE(Alex B @ Jul 23 2006, 22:40) *

Perhaps post a "Floor 0" sample? I guess those old Vorbis betas are not common.


Good point, Alex!

The trouble is I have no way of creating a short sound clip example - all my encoders are newer. I would post a link to a full ogg, but this looks as though it would breach one of the Terms Of Service [understandably].

Alex B
QUOTE(simisker @ Jul 24 2006, 02:05) *
The trouble is I have no way of creating a short sound clip example - all my encoders are newer. I would post a link to a full ogg, but this looks as though it would breach one of the Terms Of Service [understandably].

How about cutting a sample? A recent HA topic: Is there an Ogg Vorbis Editor like mp3 Direct Cut?
simisker
QUOTE(Alex B @ Jul 24 2006, 00:22) *

How about cutting a sample? A recent HA topic: Is there an Ogg Vorbis Editor like mp3 Direct Cut?

Excellent stuff - thanks again!

Okay, here's one:

floor-0-example-libvorbis10beta4_cut.ogg

[EDIT: Example file changed to one where audible quality differences are likely to be more noticeable!]
HotshotGG
QUOTE
I recently bought an iAudio M5L and was dismayed to find that it doesn't want to play any Ogg Vorbis files that were encoded with "Floor 0" [i.e. those encoded with libvorbis 1.0 beta 4 or lower, for the technically-minded among you].


Floor 0 has been deprecated. The newer libvorbis compiles no longer use it. For those of you who are reading it's levinson-durbin LPC algorithm that was originally meant to be used with low-bitrate stuff. It can't do channel coupling. There was a legitimate reason for using it to begin with when Vorbis was first publically released. That's why most decoders now only now how to decode Floor 1. Floor 1 is the standard to all libvorbis compiles. It's step-wise implementation based upon a linear frequency model. Basically try decoding the files and re-encoding them or else you are out of luck sorry. wink.gif

QUOTE
[EDIT: Though there is a Rockbox port for the X5... if someone with that combination were to confirm that it solves the Floor 0 problem, that'd be verrry interesting...]


If you make small changes to the encoder that are not frozen with the decoder specs, you are going to have some issues. That's why a lot of newer changes can't be made to the encoder, with the exception of the code that already exists in there.
kjoonlee
The person in charge of Telechips' firmware told me floor0 was working on his build, but I haven't checked with new firmware.

I don't know if any companies make HDD players based on Telechips' core.
HotshotGG
QUOTE
The person in charge of Telechips' firmware told me floor0 was working on his build, but I haven't checked with new firmware.


Floor 0 really should not be part of the main branch. It should be removed or moved over to an experimental branch. Through my understanding you can compile Vorbis and make it use Floor 0 for experimental purposes, but other than that it's not worth it.
Lear
QUOTE(simisker @ Jul 23 2006, 23:22) *

Rockbox and the M5 don't [or at least aren't going to] mix:

QUOTE("Rockbox website:")
iAudio M5

While seemingly very similar to the X5, it has a greyscale LCD and there is no developer with a unit like this (== no real work is being done to port Rockbox to it).


So that's one avenue of possibility barricaded sad.gif


Sorry, didn't read your post closely enough, apparantly. One char makes a big difference... rolleyes.gif

Btw, I tried that sample file on Rockbox. It did play, but it sounded horrible, nowhere near the sound from Foobar2000. Must be a bug somewhere (I do get a crash in a simulator build, which should help); I'll see if I can find anything.
Garf
QUOTE(HotshotGG @ Jul 24 2006, 06:54) *
QUOTE
The person in charge of Telechips' firmware told me floor0 was working on his build, but I haven't checked with new firmware.


Floor 0 really should not be part of the main branch. It should be removed or moved over to an experimental branch. Through my understanding you can compile Vorbis and make it use Floor 0 for experimental purposes, but other than that it's not worth it.


Are you even reading the posts you are replying to? A compliant Vorbis decoder is REQUIRED to have floor0 support.


QUOTE(HotshotGG @ Jul 24 2006, 04:35) *
For those of you who are reading it's levinson-durbin LPC algorithm that was originally meant to be used with low-bitrate stuff.


It's an LPC based system. Levinson-Durbin *may* be used to calculate it, but that's just one approach. The spec will certainly not say anything about that. Neither was it meant to be used for low bitrate only.

QUOTE

It can't do channel coupling.


It can. It's just harder, so it was never implemented.

QUOTE

There was a legitimate reason for using it to begin with when Vorbis was first publically released.


Yes: nobody had thought of a better alternative, so it was the only thing that was supported.

QUOTE

It's step-wise implementation based upon a linear frequency model.


No, no, no, completely wrong. It's piecewise linear based upon a Bark frequency model tongue.gif

SebastianG
QUOTE(simisker @ Jul 23 2006, 21:56) *

3. Somehow convert Floor 0 to Floor 1 - My ideal solution is where I discover that some wonderful people have found a way of converting one to the other without the need to transcode and lose quality. I've not found one so far, and the more I research, the less viable it seems. Worth mentioning though, just in case.

Having the spec in mind: No, it's not possible to do this without slightly altering the signal (you can just approximate a floor 0 curve with a floor 1 curve). Whether it's better or worse compared to transcoding I'm not sure (Also, there's a trade-off between "conversion quality" and bitrate). Anyways, that's theory. Chances are very low someone will try this, I suppose. wink.gif

QUOTE(HotshotGG @ Jul 24 2006, 04:35) *

Floor 0 has been deprecated.

Let me quote a part of the specification's introduction to avoid confusion:
QUOTE

Floor 0 is not to be considered deprecated, but it is of limited modern use. No known Vorbis encoder past Xiph.org's own beta 4 makes use of floor 0.

It's still part of the spec (thus a "fully Vorbis compatible" decoder has to support it). But as you pointed out, it's not used within the encoder anymore.
Hanky
Just for your information, I just downloaded the file and uploaded it to my iAudio G3 (firmware 1.55) It does not play it either.
HotshotGG
QUOTE
No, no, no, completely wrong. It's piecewise linear based upon a Bark frequency model


Yes, your right my mistake. I knew it incoporated the bark frequency model into the code somewhere. I was just just citing what I remembered from memory. The only thing I that I remembered when I was reading through the code was an autocorrelation sequence. I had assumed the purpose was to use it for speech, but other then that I am not sure what the intentions were. wink.gif

QUOTE
It's still part of the spec (thus a "fully Vorbis compatible" decoder has to support it). But as you pointed out, it's not used within the encoder anymore.


Right it should be, but it's not used within the encoder. That's what I am getting. I meant for computational purposes I would think it would be somewhat of a burden?
Garf
QUOTE(HotshotGG @ Jul 24 2006, 19:18) *
The only thing I that I remembered when I was reading through the code was an autocorrelation sequence. I had assumed the purpose was to use it for speech, but other then that I am not sure what the intentions were. wink.gif


If you have an autocorrelation sequence, then you can use Levinson-Durbin on it to get an LPC filter.

Makes sense now? smile.gif
simisker
Blimey, this has been a more active thread than I imagined! Thank you, everyone, for your contributions so far smile.gif

Lear and Hanky - Thank you both for downloading and trying the sample file. Lear, your findings in particular are intriguing.

As SebastianG observed, it must surely be an incomplete decoder that makes a dramatic distinction between two files with one subtle difference [and that difference being perfectly within the standard Ogg specifications].

As an early adopter of an open source standard on reasons of principle as well as technical merit, I am loathe to accept or 'endorse' an incomplete implementation by changing my standard-conforming files or my way of listening to them. Similarly, I am keen to support and promote those manufacturers and developers who employ a complete implementation, which is why I'm disappointed with Cowon as I really thought they'd got one.

But as I step down from this small soapbox wink.gif allow me to say thanks again for all your input. And I would still like to hear from anyone who can get that audio sample I provided above to work on their DAP. Anyone?
drezon
I've tried the sample on a rockboxed iPod and it didn't play correctly. Then I tried it on a Rio Karma where it did play correctly.
simisker
QUOTE(drezon @ Jul 24 2006, 20:29) *

I've tried the sample on a rockboxed iPod and it didn't play correctly. Then I tried it on a Rio Karma where it did play correctly.

A-ha! Excellent news, drezon - cheers! smile.gif
HotshotGG
QUOTE
If you have an autocorrelation sequence, then you can use Levinson-Durbin on it to get an LPC filter.

Makes sense now?


ok... so there are many different ways you can compute an autocorrelation sequence not just using a Levinson-Durbin approach? interesting. wink.gif
Garf
QUOTE(HotshotGG @ Jul 25 2006, 06:17) *
QUOTE
If you have an autocorrelation sequence, then you can use Levinson-Durbin on it to get an LPC filter.

Makes sense now?


ok... so there are many different ways you can compute an autocorrelation sequence not just using a Levinson-Durbin approach?


No.
SebastianG
QUOTE(HotshotGG @ Jul 25 2006, 06:17) *

ok... so there are many different ways you can compute an autocorrelation sequence not just using a Levinson-Durbin approach? interesting. wink.gif

The autocorrelation sequence is the input to the Levinson-Durbin algorithm to produce the filter's coefficients. You don't compute the autocorrelation sequence via Levinson-Durbin at all.

Anyway, isn't it a stupid idea to calculate the "time domain representation" of a finite-order all-pole IIR filter via Levinson-Durbin even when you do work in the frequency domain all the time and need the filter's frequency response to work with? Why not coding the frequency response directly without approximating the desired response with a finite-order filter first? (That's pretty much the difference between floor0 and floor1)

IIRC my iRiver H120 (the original firmware) also didn't play floor0 files (some of the early Kahvi Collective Vorbis releases are floor0-style). I havn't checked any floor0 files lately (using Rockbox now) -- actually, I really don't care.

Sebastian
Lear
QUOTE(simisker @ Jul 24 2006, 21:10) *

Lear and Hanky - Thank you both for downloading and trying the sample file. Lear, your findings in particular are intriguing.


I found what caused the bad sound; Rockbox didn't do a full decode of the file, because a buffer was too small (and that buffer was added to avoid stack overflows). But making that buffer larger isn't enough, because the file needs quite a bit of memory to decode, more than what is set aside for codecs in Rockbox at the moment. I'll see if there's anything that can be done, without increasing the codec memory buffer.
simisker
Well, it looks as though getting my hands on a new or used-but-working Rio Karma is a no-go sad.gif

I don't suppose anyone with another DAP that purports to support Ogg Vorbis would be so kind as to try out the example file linked to in my earlier post, and report back as to whether it plays okay? It would be appreciated, believe me smile.gif
HotshotGG
QUOTE
The autocorrelation sequence is the input to the Levinson-Durbin algorithm to produce the filter's coefficients. You don't compute the autocorrelation sequence via Levinson-Durbin at all.

Anyway, isn't it a stupid idea to calculate the "time domain representation" of a finite-order all-pole IIR filter via Levinson-Durbin even when you do work in the frequency domain all the time and need the filter's frequency response to work with? Why not coding the frequency response directly without approximating the desired response with a finite-order filter first? (That's pretty much the difference between floor0 and floor1)


Didn't see this post from last week... anyway I understand what you are saying now. I am a little rusty on the process, bare with me. I am not going to pretend to understand the statistics behind this, just basically how it works. wink.gif
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Invision Power Board © 2001-2008 Invision Power Services, Inc.