Forum: Mikrocontroller und Digitale Elektronik MP3 ohne zusätzliche Hardware abspielen?


von Olli Z. (z80freak)


Lesenswert?

Hallo,

es gibt ja reichlich Anleitungen externe MP3-Module am Atmega (Arduino) 
zu betrieben, aber ist es prinzipiell auch möglich ein MP3 ohne 
zusätzliche Hardware, also mittels Software zu dekodieren und als Signal 
auszugeben?
Ist dafür die Rechenleistung des uC zu schwach? Oder liegts am fehlenden 
DA-Wandler dafür?

von MP3 (Gast)


Lesenswert?

Die Rechenleitung eines 8-Bit Atmega Mikrocontrolles reicht bei Weitem 
nicht aus um MP3 zu dekodieren.

Dazu braucht man mindestens mal einen 16 Bit Controller mit mehreren 
10-MHz CPU Takt, die auch schnell mit 16 Bit rechnen können, also 
Division/Multiplikation in Hardware und schelles Bitgefrickel.

Als MP3 aufkam wurden dazu DSPs (digitale Signalprozessoren) eingesetzt 
und auch heute ist z.B. in den Decoderchips von VLSI ein kleiner DSP mit 
entsprechender SW im ROM am Werkeln.
Ein PC mit x386 CPU mit 40MHz hat das damals gerade so hinbekommen nur 
mal so zum Vergleich.

von Olaf (Gast)


Lesenswert?

> Ist dafür die Rechenleistung des uC zu schwach?

Ja. Ein AVR ist dafuer so Faktor 10-50 zu langsam. Ausserdem ist es nur 
ein oller 8Bit Prozessor und dem tut es weh wenn er extensiv mit 
16/32Bit Daten rummachen muss.

Ich hab es in einem SH2A mit 32Bit/147Mhz problemlos in Software laufen. 
(320kbit) Ich wuerde mal schaetzen das man es in einem Controller mit 
halber Rechenleistung eines SH2A auch noch schaffen kann wenn man sich 
richtig anstrengt. Wenn man sich mit geringeren Bitraten zufriedengibt 
dann geht vielleicht schon ein kleiner ARM mit 30-50Mhz.

> Oder liegts am fehlenden DA-Wandler dafür?

Der ist nur wichtig wenn man Ansprueche an die Klangqualitaet stellt. 
Also fuer die Smartphonejugend von heute vollkommen irrelevant.

Olaf

von c-hater (Gast)


Lesenswert?

Olli G. schrieb:

> es gibt ja reichlich Anleitungen externe MP3-Module am Atmega (Arduino)
> zu betrieben, aber ist es prinzipiell auch möglich ein MP3 ohne
> zusätzliche Hardware, also mittels Software zu dekodieren und als Signal
> auszugeben?

Nein.

> Ist dafür die Rechenleistung des uC zu schwach?

Ja.

von Michael U. (amiga)


Lesenswert?

Hallo,

AVR reicht nicht, wurde ja schon erwähnt.
Ein ESP8266 (80MHz 32Bit) macht es, gibt zur Not auch per PWM aus, 
besser mit I2C-DAC.
https://github.com/espressif/esp8266_mp3_decoder

Gruß aus Berlin
Michael

von Olli Z. (z80freak)


Lesenswert?

Vielen Dank für die Antworten. Ich hab tatsächlich ne halbe Stunde lang 
Netz gegoogelt danach. Jetzt weiss ich warum ich dazu nichts finden 
konnte :-)
Die MP3-Dekoder sind ja jetzt auch nicht wirklich teuer, von 3-15€ ist 
alles dabei, teils mit SD-Card Reader und kleinem Verstärker drauf.
War einfach neugierig...
Olli

von Peter D. (peda)


Lesenswert?

Es gab mal von Atmel den AT89C51SND1 (MP3, USB, IDE, MMC usw.).

von Harald W. (wilhelms)


Lesenswert?

Olli Z. schrieb:

> Vielen Dank für die Antworten. Ich hab tatsächlich ne halbe Stunde lang
> Netz gegoogelt danach. Jetzt weiss ich warum ich dazu nichts finden
> konnte :-)

Als MP3 neu aufkam, hat man sich zur Dekodierung komplette PCs
ins Auto gebaut. Dazu müsste man noch das eine oder andere im
INet finden können.

von Stefan F. (Gast)


Lesenswert?

Oh ja, ich erinnere mich an meinen ersten alles-Player (primär MP3). Das 
war auch ein ganzer PC. Allein auf der Soundkarte war mehr drauf, als 
heute in meinem Notebook steckt.

Als ich die Software für meine Ansprüche 100% fertig hatte, konnte man 
schon portable Geräte für viel weniger Geld von der Stange kaufen.

Und heute? Heute frage ich mich, warum Musik nicht einfach unkomprimiert 
vertrieben wird. Dann hätte man die gleiche Tonqualität wie bei der CD 
und weniger technischen Aufwand. Speicherplatz kostet ja nix mehr.

von Christian B. (casandro)


Lesenswert?

MP3 schrieb im Beitrag #4400173:
> Ein PC mit x386 CPU mit 40MHz hat das damals gerade so hinbekommen nur
> mal so zum Vergleich.

Also mein 486er mit 80 MHz hat MP3s nur in Mono oder mit 22,05 kHz 
Abtastrate abspielen können. Für Stereo hat das nicht gereicht.

von Horst M. (horst)


Lesenswert?

Proof of concept: ATmega MP3 decoder
http://embdev.net/topic/370373

von Cyblord -. (cyblord)


Lesenswert?

Stefan U. schrieb:

> Und heute? Heute frage ich mich, warum Musik nicht einfach unkomprimiert
> vertrieben wird. Dann hätte man die gleiche Tonqualität wie bei der CD
> und weniger technischen Aufwand. Speicherplatz kostet ja nix mehr.

Es gibt/gab ja letztens mal ein Startup mit einem portablen Player und 
zugehöriger Shopping-Plattforum. Alles in FLAC. Hab nach dem Start 
nichts mehr von gehört.

: Bearbeitet durch User
von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Mp3 decoder gibts hier:
http://keyj.emphy.de/minimp3/
Hab ich auch schonmal für nen Webradio genutzt.
Muss eben nur von mmap() auf byteweises lesen von Sockets (oder andere 
Quellen) umgebaut werden, sowie eben die Soundausgabe noch auf "bare 
metal"
Läuft auch gut auf nem ARM.
(wer den umgebauten Code will soll hier schreien)

Auf nem AVR sollte das auch laufen, dann ist aber nichts mit echtzeit 
zuhöhren ;)

Ansonsten eben sowas machen:
http://www.fritzler-avr.de/HP/Librarys/VS1053_his.php
Die Lib läuft mit VS1053b und VS1011.

@Cyblord
Das war doch sogar von irgendsonem Musiker unterstützt?
Im Endeffekt war das Teil aber echt zu klobig (dreieckform?) und nur 
damit man mit 2 fetten Audiophilen Elkos in der Ausgangsstufe angeben 
konnte facepalm

von Frank K. (fchk)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.