www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik MP3-Decoder Clickton einfügen


Autor: Ingo Appelt (neulingo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo @ all,

ich habe ein kleines MP3-Projekt mit dem VS1011. Da habe ich jetzt ein 
Touchdisplay mit integriert und will einen Klickton einfügen wenn ich 
dieses betätige. Einfach die Klickton MP3 in den Datenstrom dazwischen 
quetschen funktioniert nicht da kommt nur ein undefiniertes 
"qqquuuiiiitsch".
Hat irgendjemand eine Idee wie ich das realisieren könnte?

Autor: Markus ---- (mrmccrash)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Du baust dir ein Sample in 8kHz, 8 Bit, mono, unkomprimiert zusammen, 
packst das in den Flash deines µC und spielst das über einen PWM-Out und 
Tiefpass (bis 4kHz reicht) raus. das Signal kannst du dann analog zum 
Ausgang deines VS1011 hinzumischen.

_.-=: MFG :=-._

Autor: Sebastian ... (zahlenfreak)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das soll auch funktionieren, wenn der VS gerade mp3s dekodiert, richtig? 
Ich fürchte, wenn das über den VS laufen soll, musst du den mp3-strom 
analysieren. Oder du beschäftigst dich mal näher mit dem VS selbst. Der 
kann ja auch User-Code ausführen. Vielleicht kann man auf dem Weg besser 
was in den Datenstrom mischen.
Oder, wenn's einfach nur schnell funktionieren soll, würde ich analog 
mischen. Also einfach am AVR nen DAC ran (oder per PWM) und damit den 
Click abspielen. VS- und AVR-Signal werden dann analog gemischt. Sicher 
nicht elegant, sollte aber funktionieren.

Sebastian

Autor: Ingo Appelt (neulingo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die schnellen Antworten,

analog dazu mischen geht leider nicht.
Da werde ich mich am WE mal mit dem mp3-Datensrom auseinander setzen.

Ingo

Autor: Dirk J. (dirk-cebu)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Den Klickton gibst Du auf einen kleinen Piezolautsprecher, der im 
Gehäuse versteckt ist. Das stört nicht den Datenstrom und es merkt 
keiner.

Autor: Harry (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
das Thema interessiert mich selbst. Wie sieht dein Aufvau aus, arbeitest 
du mit SD/MMC?
Bei mir ist SD_out direkt mit dem VS verbunden. Ich müsste also die SD 
kurz deaktivieren und per Software_SPI die Klick-Daten an den VS 
senden...

Autor: Ingo Appelt (neulingo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe mich jetzt mal mit dem Mp3-header auseinandergesetzt und zum 
richtigen Zeitpunkt meinen Klickton eingefügt funktioniert zwar, klingt 
aber trotzdem besch...en, durch die kurze Unterbrechung der laufenden 
Datei.
Also habe ich mich doch dazu durchgerungen das ganze analog 
beizumischen.

@ Harry SD->MSP430->VS1011

Ingo

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann war diese Aussage ja wohl falsch:

>analog dazu mischen geht leider nicht.

Also in Zukunft erst ueberlegen und dann posten...
Es ist mir auch nach laengerem Ueberlegen nur ein Szenario
eingefallen, wo das tatsaechlich nicht gehen wuerde:
Volldigitale Verarbeitung incl. D-Endstufe.
Aber auch da kann man was dazumischen, allerdings nicht analog.

Gast

Autor: Ingo Appelt (neulingo)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>analog dazu mischen geht leider nicht.

Vielleicht liegt es ja daran, dass ich mein Layout nicht nochmal 
verändern wollte. Aber danke für die konstruktive Kritik.

Ingo

Autor: go_in (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
genau. kleiner Piezo-Summer, ganz kurz ansteuern = Klick. Einfacher 
gehts nicht.

Autor: Jörg H. (idc-dragon)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beim Reinschnippeln in den mp3-Datenstrom muß man 2 Dinge beachten:

1.) an Framegrenzen schneiden, dazu muß man mitparsen. Die Frames waren 
glaube ich je nach Samplefrequenz/Bitrate unterschiedlich groß. Der 
Parser sollte robust genug sein, um sich aufzusynchronisieren. Dabei 
darf er nicht auf falsche Startcodes hereinfallen, die zufällig im 
Datenstrom liegen. Erst nach einer Anzahl korrekt nachverfolgter Frames 
dem Parser glauben.

2.) Bit Reservoir beachten. Ein Frame kann Daten für den nächsten 
enthalten, wenn er selbst nicht ausgereizt war. Dann muß man selbst 
einen Frame erstellen, der dieses Bit Reservoir aufbraucht, aber keine 
neuen Daten enthält. Erst dann hat man eine "glatte Schnittkante" und 
kann das vorbereitete Sample einfügen.

Jörg

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.