Go Down

Topic: Musik mit Lautsprecher über SD (Read 957 times) previous topic - next topic

Addi

Hallo,
ich wollte fragen wie ich eine *.mp3-Datei über einen Lautsprecher ausgeben kann.
Ich habe ein Ethernet-Shield für die Micro-SD-Karte und einen simplen Lautsprecher,
über den ich Töne mit der tone() Funktion ausgeben kann. Wie müsste der Code aussehen damit ich
eine mp3-Datei abspielen kann?

Addi
/ \    _|  _| o
 /--\ (_| (_| |

uwefed

Quote
Hallo,
ich wollte fragen wie ich eine *.mp3-Datei über einen Lautsprecher ausgeben kann.

Mit einem IC das MP3 decodiert.
Grüße Uwe

Addi

Gibt es dazu im Internet ein Tutorial? Würde es mit einer andern
Datei-Art einfacher gehen?

Addi
/ \    _|  _| o
 /--\ (_| (_| |

jurs

#3
Feb 07, 2013, 09:20 pm Last Edit: Feb 07, 2013, 09:29 pm by jurs Reason: 1

Gibt es dazu im Internet ein Tutorial? Würde es mit einer andern
Datei-Art einfacher gehen?


Mit WAV-Dateien geht es komplett ohne spezielle Audio-Zusatzhardware, nur SD-Kartenhardware ist für den Arduino erforderlich.

Dazu hatten wir auch letztens einen Thread hier:
http://arduino.cc/forum/index.php/topic,134796.0.html

Vielleicht zum Start von dem Projekt hier ausgehen:
http://hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio

Zum Projekt gehört eine stark abgespeckte SD-Library, die sehr wenig Speicher belegt, und ein unter Windows lauffähiges Kommandozeilen-Konvertierungstool (aber auch für Linux verfügbar), um mit irgendwelcher Software von CD gerippte WAV-Dateien oder von MP3 nach WAV konvertierte Dateien in das spezielle WAV-Format mit ganz bestimmter Datenrate und 8-bit Format zu konvertieren, das die Library abspielen kann.

Besonders auf dem Arduino Uno mit nur 2 KB RAM-Speicher ist ja schon mit zwei Flash-Speicherblöcken a 512 Bytes die Hälfte des RAM weg, die abwechselnd zum Abspielen der Musikdaten genutzt werden, während die nächsten Musikdaten in den anderen Speicherblock vorgeladen werden, also Vorsicht wenn Du auf einem UNO lieber eine Full-Featured-SD-Library verwenden möchtest, das könnte vom RAM her extrem knapp werden oder gar mißlingen. Aber mit der zum Projekt gehörenden SD-Library kein Problem.


uwefed

MP3: zB:
http://www.watterott.com/de/Music-Instrument-Shield?xadc03=a95f770dbb092bc51a083dec81af548c

http://www.watterott.com/de/Breakout-Board-for-VS1033-MP3?xadc03=a95f770dbb092bc51a083dec81af548c
Grüße Uwe

Addi


Vielleicht zum Start von dem Projekt hier ausgehen:
http://hackerspace-ffm.de/wiki/index.php?title=SimpleSDAudio

Die Libarie funktioniert gut. Nur kann man die Tonhöhe auch verändern?
Ich habe eine Testdatei mit meiner Stimme angespielt, nur klingt sie auf dem
Lautspreche so hoch, das man denken kann es ist irgendeine Figur aus dem Fernsehen.

Addi
/ \    _|  _| o
 /--\ (_| (_| |

jurs

#6
Feb 07, 2013, 09:55 pm Last Edit: Feb 07, 2013, 10:02 pm by jurs Reason: 1

Die Libarie funktioniert gut. Nur kann man die Tonhöhe auch verändern?
Ich habe eine Testdatei mit meiner Stimme angespielt, nur klingt sie auf dem
Lautspreche so hoch, das man denken kann es ist irgendeine Figur aus dem Fernsehen.


Deine WAV-Datei hat offensichtlich die falsche Datenrate.
Konvertiere sie mit den enthaltenen Kommandozeilentool "sox" in eine WAV-Datei passender Datenrate!

Mit einem Lautsprecher über Einfachverdrahtung und für die bessere Tonqualität wirst Du Deine WAV in "8-Bit, Fullrate, Mono" haben wollen, damit sie unverzerrt wiedergegeben wird.

Hier ist die Kommandozeile/Batch-Zeile, um eine Datei mit falscher Datenrate "myfile.wav" in eine Datei passender Datenrate "myfile.asf" für die Wiedergabe in "8-Bit, Fullrate, Mono" zu konvertieren:
Code: [Select]

sox myfile.wav --norm=-1 -e unsigned-integer -b 8 -r 62500 -c 1 -t raw myfile.asf

Addi

Funktioniert jetzt mehr oder weniger. Weil es gerade vom Kontext passt:
Wie schwer ist es einen Ton über ein Mikrofon auszulesen?

Addi
/ \    _|  _| o
 /--\ (_| (_| |

Go Up