Help - Search - Members - Calendar
Full Version: Linux in ipod and MPC
Hydrogenaudio Forums > Lossy Audio Compression > MPC
moumousganou
Hello everyone

I discover recently an open source project with the goal of running linux on an ipod. The project begin to be really advanced, and i ask the main developper if it was possible to put something to decode mpc, he said that was ok but he need an "integer" decoder, so if someone can help me to find that.
If you want to see how the project is going and if you want to help the dev of ipodlinux (i just ask them for the support of mpc but i don't know a lot of thing about dev and mpc).
Just go to Ipod linux forum

Thanls a lot


ps : excuse my english errors ---> i'm french...
rjamorim
You can find an integer decoder here:
http://www.rarewares.org/mpc.html
(bottom of the page)
kritip
http://www.rarewares.org/mpc.html

near the bottom: Integer MPC decoding library for ARMv4

may be usefull as a start, not sure on its version or anything else though. Also not sure what processor the iPod runs on.

Kristian
plunger
I actually went and replied on their forum a little while ago with the link in question. This may be MPC's best chance of getting into a hardware player. Luckily the integer decoder was writted for an ARM processor, which may make the adoption (or inclusion) even easier. Especially considering the hurdle we ran into with the whole proprietary nature of programming for the TI processor in the neuros.
dev0
You should have pointed them to the 'official' CVS repository.
rjamorim
QUOTE(dev0 @ May 9 2004, 01:06 PM)
You should have pointed them to the 'official' CVS repository.

They have the same sources. I actually guess they got them from RW.

QUOTE
This may be MPC's best chance of getting into a hardware player.


Well, I personally don't think that's a great solution. It forces you to flash an unofficial firmware with an unofficial system, lose warranty, and manage your iPod through Linux. sick.gif

I can only imagine nerds somehow inputting in an iPod command line
$mppdec "song name.mpc"
biggrin.gif
Cygnus X1
QUOTE(rjamorim @ May 9 2004, 11:51 AM)
I can only imagine nerds somehow inputting in an iPod command line
$mppdec "song name.mpc"
biggrin.gif

laugh.gif
Florian
QUOTE(rjamorim @ May 9 2004, 05:51 PM)
QUOTE
This may be MPC's best chance of getting into a hardware player.


Well, I personally don't think that's a great solution. It forces you to flash an unofficial firmware with an unofficial system, lose warranty, and manage your iPod through Linux. sick.gif

Some users wouldn't have problems with that.

QUOTE
I can only imagine nerds somehow inputting in an iPod command line
$mppdec "song name.mpc"
biggrin.gif

Tools will be developed smile.gif

~ Florian
Otto42
QUOTE(rjamorim @ May 9 2004, 08:51 AM)
...and manage your iPod through Linux.  sick.gif

Not really.. it has a file browser which can play MP3's, at the moment. It's conceivable that you could have a separate FAT32 partition for the music, have it mounted somewhere in the linux file system, and be able to drop music onto it using a Windows box, for example.

It's just new, at the moment. It could get much better. smile.gif
dev0
QUOTE(rjamorim @ May 9 2004, 05:51 PM)
I can only imagine nerds somehow inputting in an iPod command line
$mppdec "song name.mpc"
biggrin.gif

If it works, so what?
podzilla doesn't look too bad either.
rjamorim
QUOTE(Otto42 @ May 9 2004, 02:13 PM)
It's just new, at the moment. It could get much better. smile.gif

I believe you. But, still, I don't think Linux is a good solution for the iPod. There's no need for a full-blown OS on a DAP. I guess the overhead introduced by the OS consumes too much CPu and battery - that's why Vorbis can't be decoded in real time.

I think it would have been much better if they came up with a system specially developed for the iPod. Of course, that would also demand much more development effort, unfortunately.
rjamorim
QUOTE(dev0 @ May 9 2004, 02:31 PM)
If it works, so what?

So what that typing that command on shell without any keyboard would be so painful and moronic, only hardcore nerds would go for it rolleyes.gif
Lefungus
QUOTE(rjamorim @ May 9 2004, 08:51 AM)
QUOTE(dev0 @ May 9 2004, 01:06 PM)
You should have pointed them to the 'official' CVS repository.

They have the same sources. I actually guess they got them from RW.

Musepack development is happening here, ape2 tag writing under xmms plugin has been added today for example.


About the iPod, if it support "mppdec some.mpc", then you can be sure some nice frontend will pop-up soon too smile.gif

[Edit]
Btw, as seen in foospeed tests, musepack decoding certainly is much more cpu-friendly than vorbis, so i wouldn't worry too much about speed issues.
plunger
QUOTE(rjamorim @ May 9 2004, 11:13 AM)
There's no need for a full-blown OS on a DAP.

Firstly let's remember that Linux is NOT an OS, it's a kernel.

uClinux is one of the many kernels available. And I quote for the FAQ:
uClinux is a special variant of the Linux kernel that does not require a MMU (a memory management unit).


On another note the moderator for the iPod Linux forum wrote:
QUOTE
I have managed to get the library to compile but there is no driver application so its a little hard to test.

Does anyone have such a program?

Any ideas?
Otto42
QUOTE(rjamorim @ May 9 2004, 11:13 AM)
I believe you. But, still, I don't think Linux is a good solution for the iPod. There's no need for a full-blown OS on a DAP. I guess the overhead introduced by the OS consumes too much CPu and battery - that's why Vorbis can't be decoded in real time.

I think it would have been much better if they came up with a system specially developed for the iPod. Of course, that would also demand much more development effort, unfortunately.

Well, I mean, it's not like they're installing Debian or Red Hat on the thing, you know.. You can make the Linux kernel quite small. You just leave out all the bits you don't need. It's highly modular.
Gabriel
QUOTE
But, still, I don't think Linux is a good solution for the iPod. There's no need for a full-blown OS on a DAP. I guess the overhead introduced by the OS consumes too much CPu and battery - that's why Vorbis can't be decoded in real time.


I don't think so. A linux based microkernel (like uCLinux) is rather small, and should only introduce a minimal overhead.
It is used in my DSL (triple play) modem and in Kiss dvd players (ok, I agree that they are less concerned by battery than an iPod).

Regarding why Vorbis can't be decoded (yet?) in realtime on iPods, it is mainly a question of decoding efficiency. Tremor is quite slower than optimized mp3 and aac decoders.
moumousganou
Thank for all the answers. I think this project can really be a chance that a portable player support mpc. And i don't think that they would be problem coming from the "linux aspect" of the project. Actually someone made a program to install it from windows, and ipodlinux use a boot manager so you can choose either ipodlinux or apple firmware, and moreover i don't think the project is to make something that is running with command line. Authors of ipodlinux want to make as easy to use as the apple firmware.

Thanks again
copperpipe
Just an update from the Linux/Ipod forum...

"Could be interesting... I gave that one a try but as it stands its not even close to real time. Its hard to say if it could, easily, be made real time or if it would be better to try with the assembler version."
rjamorim
QUOTE(copperpipe @ May 24 2004, 02:20 AM)
as it stands its not even close to real time

blink.gif
copperpipe
QUOTE(rjamorim @ May 23 2004, 10:02 PM)
QUOTE(copperpipe @ May 24 2004, 02:20 AM)
as it stands its not even close to real time

blink.gif

There's too much that needs streamlining IMO for this to be a viable solution in the near future, considering that they are having problems getting MP3 decoding to work in realtime... dry.gif

But I can still dream, can't I?
svkelley
QUOTE(rjamorim @ May 9 2004, 07:45 AM)
You can find an integer decoder here:
http://www.rarewares.org/mpc.html
(bottom of the page)

What sort of license is the source code under? It's not clear from
the headers. If I wanted to add support for this decoder using the
integer only source in an ARM based handheld device what are the
limitations of theuse of the code?

Thanks,

Sean
Florian
Sean,

I don't know what the license of this decoder is, but you also might want to have a look at the new portable Musepack decoder library which also includes a fixed-point mode and is licensed under the LGPL.

Best regards,
~ Florian
loophole
The reason nobody is successful in making the iPod do anything useful (music wise) with uclinux is because they aren't utilizing the hardware correctly.

The iPod has 2, (count em) processors. Now with Apple's firmware it works like this, the ARM core drives the display, the filesystem, the input, the code to update playlists, and probably quite a bit of I/O (witness the occasional GUI lag when spinning up the HD and sometimes reading in a new song). There is another chip dedicated for the decoding. It's the PortalPlayer PP5002B. This is in the 1G and 2G iPods anyway, not sure about 3G or iPod mini. Anyway, it, in hardware decodes the following: MP3, WMA, AAC, and PCM (WAV, AIFF). It also has the ability to encode to WMA and MP3, but apple never took advantage of this feature, nor did they enable WMA playback. It also has a 5 band EQ (which is why presets are only available; user presets cannot be transferred from iTunes, as iTunes has a 10 band EQ.)

Basically, from what I can see, all of the uclinux stuff seems to completely ignore this chip, leaving the main CPU to do ALL of the work, which under Apple's system would not be touching the audio at all. If they want to continue this way I think low battery life and VERY unresponsive interfaces while playing music are going to be encountered. Someone really needs to reverse engineer the PP5002B and put it to use.

If I've gotten anything wrong somebody please correct me, it's been awhile since I read up on the internals of the iPod and I'm writing most of this from memory seeing PP has appeared to take down info on the chip.


Cheers,

Ben.
Otto42
QUOTE(loophole @ May 27 2004, 01:43 AM)
Anyway, it, in hardware decodes the following: MP3, WMA, AAC, and PCM (WAV, AIFF).

How did they add support for the Apple Lossless Encoding in the latest rev of the software then?

I'm just not sure that you're 100% accurate on this one. You might be half right, but it doesn't quite seem entirely correct somehow.

But yes, they need to get the other processor working to do any real music playback.
loophole
QUOTE(Otto42 @ May 27 2004, 03:20 PM)
QUOTE(loophole @ May 27 2004, 01:43 AM)
Anyway, it, in hardware decodes the following: MP3, WMA, AAC, and PCM (WAV, AIFF).

How did they add support for the Apple Lossless Encoding in the latest rev of the software then?

I'm just not sure that you're 100% accurate on this one. You might be half right, but it doesn't quite seem entirely correct somehow.

But yes, they need to get the other processor working to do any real music playback.

As I said, what I posted only pertains to the 1G and 2G iPods, which can't play Apple Lossless (you need a 3G or an iPod mini for this, see http://www.apple.com/ipod/download/ ) AFAIK, the later ones have a different processor.
Otto42
QUOTE(loophole @ May 27 2004, 06:20 PM)
As I said, what I posted only pertains to the 1G and 2G iPods, which can't play Apple Lossless (you need a 3G or an iPod mini for this, see http://www.apple.com/ipod/download/ ) AFAIK, the later ones have a different processor.

Ahh, I was unaware that 1G and 2G iPod's lacked the ALAC capability. Okay then, sounds about right. 3G's and up are using more general purpose hardware for the decoding, it seems.
leachbj
QUOTE(loophole @ May 27 2004, 01:43 AM)
The iPod has 2, (count em) processors. Now with Apple's firmware it works like this, the ARM core drives the display, the filesystem, the input, the code to update playlists, and probably quite a bit of I/O (witness the occasional GUI lag when spinning up the HD and sometimes reading in a new song). There is another chip dedicated for the decoding. It's the PortalPlayer PP5002B. This is in the 1G and 2G iPods anyway, not sure about 3G or iPod mini. Anyway, it, in hardware decodes the following: MP3, WMA, AAC, and PCM (WAV, AIFF). It also has the ability to encode to WMA and MP3, but apple never took advantage of this feature, nor did they enable WMA playback. It also has a 5 band EQ (which is why presets are only available; user presets cannot be transferred from iTunes, as iTunes has a 10 band EQ.)

The iPod PP5002 has two ARM7TDMI cpu cores. In most respects they are identical, but as far as processing goes they are just normal generic cpus. Some systems have a dual core where one is a generic cpu and the other is a DSP but the iPod isn't like that.

You're right that the Apple firmware offloads the decoding to the second cpu but additionally they have highly optimised codecs as opposed to the open source versions we rely on, and they are optimised to take advantage of the fast on-chip ram on the iPod.

Since all the audio processing done on the iPod is software, so the 1g could equally run flac/ogg or whatever as the 3g.

Anyhow back to the original point of the thread. I did try out the mpcdec C++ implementation but it was quite slow. There was another version that had some assembler code but that one was incomplete (no player app). Any mpc experts with some suggestions as to a good fast, integer mpc player for the ARM cpu?
Garf
There are at least 2 decoding libraries out there that run on ARM, cb2000 and Peters. Peters runs at 50Mhz ARM, cb's needs less because of assembly but is not as portable.

You'll need to make the player yourself, but that can hardly be the problem when the decoding libs are available!?!?
leachbj
Actually for me the missing player is a show stopper, if I had time to write players for every codec known to man I would be spending it on much more intersting things wink.gif

The C++ version I tried had a player but as it was was too slow, the asm one should obviously be much faster but besides being a monster to even compile doesn't have a player app.
Vortex_ICS
Has anyone tried to decode MPC on a Palm ? Findind a player is not a problem, I think it only needs a plugin ...
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.