Rockbox.org home
Downloads
Release release
Dev builds dev builds
Extras extras
themes themes
Documentation
Manual manual
Wiki wiki
Device Status device status
Support
Forums forums
Mailing lists mailing lists
IRC IRC
Development
Bugs bugs
Patches patches
Dev Guide dev guide
Search



Donate

Rockbox Technical Forums


Login with username, password and session length
Home Help Search Staff List Login Register
News:

Welcome to the Rockbox Technical Forums!

+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  Starting Development and Compiling
| | |-+  Processor Choice for Open Source Audio Player Design
« previous next »
  • Print
Pages: [1]

Author Topic: Processor Choice for Open Source Audio Player Design  (Read 3858 times)

Offline xianthax

  • Member
  • *
  • Posts: 2
Processor Choice for Open Source Audio Player Design
« on: April 10, 2010, 05:38:16 PM »
Hi All,

I'm an electrical engineer that mostly works in audio related system design ranging from circuit design and PCB layout to firmware development. 

I'm considering taking on designing an Open Source media player to fill some features lacking in the available options and for fun.

It makes sense to me to target the hardware to support Rockbox, which i've been using on my ipod for a few years now.  As such I'm looking for some recommendations on processor selection from the people with the most experience, you guys.

To give you a little background on the goals of the system:

*High fidelity, primary goal: firm goals not set but SNR >110db is the type of area i'm targeting
*Headphone output capable of driving high impedance phones likely +-9V output available.
*Line level differential output through a ipod docking connector (maybe)
*On board analog devices sigmaDSP codec for audio processing.  The core uC would only deal with the interface and decoding, this DSP would handle all equalization and other audio features.
*USB connectivity and microSD/SD for audio storage.  I'd rather even leave the OS on the SD card and just have the bootloader on board.
*FLAC support, at least 96khz, 192khz would be awesome.  the current state of the audio chain i've designed does already supports 192khz so it would be a matter of the uC being able to decode it fast enough
*AAC support is cool too, thought i'm not overly interested in it as a format for various reasons
*Color LCD / interface but specifics are TBD.  I'm not much into displaying images so the screen will likely be something like an ipod nano in size although the case will likely be more like the 1g ipod in size.
*Schematics, board and case designs will be open if anyone wants to take on building themselves one.  if interest were high enough i could have some assembled (maybe).  The enclosure will be a pain if that happens, i have no answer for that yet.  For the couple that i build the enclosure will be made in a rapid prototype machine (3d printer) but thats not cost effective.
*video/image/audio recording is not important to me, this is a purpose built device for music playback.

I have most of the schematics for the audio section ready, a lot of it came from previous designs i've done around the sigmaDSP series codecs but the big hole i have is the uC choice.  it seems there are plenty of options out there and given that all i want to do on the uC is decode the audio and manage the interface i can likely get away with something low powered.  I imagine that integrating controlling of the codec into rockbox will be interesting, i look forward to getting into that.

It looks to me like ARM based devices and Coldfire are the biggest players here.  I've worked on quite a few ARM cores but have no problems jumping into a coldfire core assuming that i don't have to buy a $5000 dev kit to work on the thing and can purchase the part in smaller quantities.

With all that in mind, are there any recommendations from the developers here on what processors to look at or which to avoid? 

Any there hardware design choices that really annoy you as developers i.e. grouping unrelated GPIO in a single register?

Thanks much,

Mark
Logged

Offline saratoga

  • Developer
  • Member
  • *
  • Posts: 8974
Re: Processor Choice for Open Source Audio Player Design
« Reply #1 on: April 10, 2010, 10:32:28 PM »
Theres some people already doing this:

http://www.rockbox.org/wiki/Mini2440Port
http://lyre.sourceforge.net/

They've done a lot of research already.  You may want to review their hardware choices.

That said, here is some feedback:

Quote
On board analog devices sigmaDSP codec for audio processing.  The core uC would only deal with the interface and decoding, this DSP would handle all equalization and other audio features.

Don't use DSPs.  Theres basically no support at all for them from open source development tools, no one knows how to write code for them anymore, and they're completely useless for audio.  Its just an all round terrible choice for what you want to do.

Instead, use an ARM core.  They're well supported by gcc, nearly all audio formats are well optimized for them, they're highly power efficient and nearly all portable devices now use them.  Throw in at least 16MB of RAM and use something relatively common like SD or ATA for storage.

Logged

Offline xianthax

  • Member
  • *
  • Posts: 2
Re: Processor Choice for Open Source Audio Player Design
« Reply #2 on: April 11, 2010, 03:45:04 AM »
Unfortunately neither of the links provided have anything to do with what i actually want to accomplish.

Neither provide what i would qualify as high fidelity audio nor do they provide the tools required for achieving that goal.

Quote
Don't use DSPs.  Theres basically no support at all for them from open source development tools, no one knows how to write code for them anymore, and they're completely useless for audio.  Its just an all round terrible choice for what you want to do.

I don't really know what to say about this statement, you don't understand the hardware i'm discussing nor do you understand the audio field outside general purpose consumer products, which again, is not the target of this system.
Logged

Offline gevaerts

  • Administrator
  • Member
  • *
  • Posts: 1053
Re: Processor Choice for Open Source Audio Player Design
« Reply #3 on: April 11, 2010, 06:41:00 AM »
Quote from: xianthax on April 11, 2010, 03:45:04 AM
Quote
Don't use DSPs.  Theres basically no support at all for them from open source development tools, no one knows how to write code for them anymore, and they're completely useless for audio.  Its just an all round terrible choice for what you want to do.

I don't really know what to say about this statement, you don't understand the hardware i'm discussing nor do you understand the audio field outside general purpose consumer products, which again, is not the target of this system.

You mean that outside general purpose consumer products, there are open source tools to deal with them? Interesting.
Logged

Offline nls

  • Developer
  • Member
  • *
  • Posts: 460
Re: Processor Choice for Open Source Audio Player Design
« Reply #4 on: April 14, 2010, 03:06:18 PM »
Rockbox can decode and playback 44.1kHz flac on an 80MHz ARM7TDMI with a bunch of dsp effects done by the same arm core and not even break a sweat. If you need more raw power there are significantly more powerful arm chips out there. What is it you are going to do on the DSP chip that you don't want the cpu to do?
Logged

Offline saratoga

  • Developer
  • Member
  • *
  • Posts: 8974
Re: Processor Choice for Open Source Audio Player Design
« Reply #5 on: April 14, 2010, 09:54:30 PM »
Quote from: xianthax on April 11, 2010, 03:45:04 AM
Unfortunately neither of the links provided have anything to do with what i actually want to accomplish.

Neither provide what i would qualify as high fidelity audio nor do they provide the tools required for achieving that goal.

I didn't say you had to use their design exactly.  If you dislike their DACs, change them out, though honestly I doubt it makes any difference at all.

Quote from: xianthax on April 11, 2010, 03:45:04 AM
Quote
Don't use DSPs.  Theres basically no support at all for them from open source development tools, no one knows how to write code for them anymore, and they're completely useless for audio.  Its just an all round terrible choice for what you want to do.

I don't really know what to say about this statement, you don't understand the hardware i'm discussing nor do you understand the audio field outside general purpose consumer products, which again, is not the target of this system.

No offense, but you're talking about using a DSP core dedicated to EQ, a task that takes about 10-20MHz on a modern CPU.  You don't get to decide who knows things about audio :)

Let me put it this way.  If you use a DSP, you will:

1)  Probably have to write your own code for it rather reusing the very good code we already have
2)  Probably have to do it alone, since no one else will be able to afford whatever expensive compiler you're using
3)  Probably not want to use Rockbox since we won't support what you want to do

Basically, you will have to start from scratch and work completely alone using hardware that no one likes using because its illsuite.  Thats a pretty big downside because what you want to do is almost certainly more then 1 person can do alone.   In exchange for having to do enormous amounts of work, you should hopefully get something big and useful in return.  What exactly do you think that is? 

Edit:  to be clear we do have one supported target with a TI C5400 DSP onboard, so in that sense we do support DSPs.  We just don't do much with it since its such a pain to use for anything and its got an ARM core anyway.
« Last Edit: April 14, 2010, 10:59:04 PM by saratoga »
Logged

Offline bobc

  • Member
  • *
  • Posts: 6
Re: Processor Choice for Open Source Audio Player Design
« Reply #6 on: May 31, 2010, 06:48:31 AM »
Quote from: xianthax on April 11, 2010, 03:45:04 AM
Unfortunately neither of the links provided have anything to do with what i actually want to accomplish.

Neither provide what i would qualify as high fidelity audio nor do they provide the tools required for achieving that goal.

Speaking as one of the Lyre developers, Lyre is an open project, so we work with whatever people can contribute. If there was an open source design with a high fidelity audio section I am sure we would be interested in using it.

Our current design is for a cheap, basic audio player. It's based on a highly integrated SoC (iMX233), unfortunately the LQFP version we are using does not lend itself to external DAC (no I2S).

We already have in mind various future design iterations, and I would expect hi-fi quality is one of them. We need to evaluate the success or otherwise of our current design first.

Edit: to answer the question, in terms of Rockbox firmware I think any ARM7/9 CPU of at least 200MHz with external memory bus is sufficient. The choice really comes to general considerations such as package, availability etc.

« Last Edit: May 31, 2010, 06:54:27 AM by bobc »
Logged

  • Print
Pages: [1]
« previous next »
+  Rockbox Technical Forums
|-+  Rockbox Development
| |-+  Starting Development and Compiling
| | |-+  Processor Choice for Open Source Audio Player Design
 

  • SMF 2.0.17 | SMF © 2019, Simple Machines
  • Rockbox Privacy Policy
  • XHTML
  • RSS
  • WAP2

Page created in 0.315 seconds with 15 queries.