Forum: Mikrocontroller und Digitale Elektronik WAV-Dateien


von Oryx (Gast)


Lesenswert?

Hallo,

wie erzeuge und verarbeite ich WAV-Dateien?

Hintergrund:
Ich will mehrere WAV-Dateien in meinem Flash abspeichern und über den
DA-Wandler abspielen. Dies habe ich schon mit der WAV-Datei von
Ponyprog ausprobiert. Der Controller wiehert.

Nur womit kann ich die WAV-Dateien erstellen oder konvertieren? 8 Bit
und Mono reichen erst mal. Samplingrate 8000 oder 11050 sind auch
machbar.

Wie ist es mit dem rechtlichen Hintergrund, wenn ich Töne einer CD
nehme? Darf man eine kurze Tonfolge von x Sekunden frei verwenden oder
sind CDs tabu. Das Gerät ist nicht nur für den Hausgebrauch gedacht.

Ich habe bisher nichts gefunden, wo ich "freie Töne" herrunterladen
könnte.

Oryx

von Florian Wolling (Gast)


Lesenswert?

Wie hast Du denn das mit dem Wiehern gemacht???
Ich finde das lustig und hätte gerne den Quellcode! g

MFG,
#################
Florian Wolling #
#################

Florians-c-e-r-page@onlinehome.de

http://www.florians-c-e-r-page.de

von Oryx (Gast)


Angehängte Dateien:

Lesenswert?

Hi Florian,

ich habe den Quellcode im Anhang.
Ist in C++, für einen H8/3069 Controller.
Der eine analoge Ausgang wiehert, der andere macht ein 1 kHz Sinus.
Muste halt für deinen Controller anpassen, sollte aber gehen.
Die "Wav-Datei" ist in test.txt und wurde mit einem Minikonverter
aus
der ponyprog-wav-datei erzeugt.

Wenn Fragen zu diesem Quellcode sind, bitte einen eigenen Thread
öffnen, da die Diskussionen sonst doch abdriften (nicht im Niveau,
sondern in der Fragestellung).

Oryx

von michi0021 (Gast)


Lesenswert?

Hi,
Ich wollte mal fragen wie dein Programm allgemein funktioniert, hab mir
dein Quellcode angeschaut, hab aber leider nicht so viel Ahnung von C++
Programmierung. Ich schreib meine Programme immer in Assembler.
Werden die Werte aus der Datei test.txt einfach nacheinander in den DA
wandler geladen und dann per verstärker/lautsprecher hörbar gemacht,
oder wíe läuft das ab?

Rechtlich gesehen, machst du doch nichts anderes als deine Töne von
einer CD abzuspielen oder?! Wenn du die orginal CD besitzt, ist das
legal, auch das konvertieren ist rechtlich erlaubt, oder liege ich
jetzt falsch?
mfg michi

von Stefan (Gast)


Lesenswert?

Von "normalen" CDs zu kopieren ist nicht legal.
Ich würde mal im Video-Bereich nach freien Klängen schauen. Da gibt es
teilweise CDs, die freigegeben sind.
ct hat gerade ein Video-Sonderheft mit freienm Sounds auf CD
rausgebracht, wenn ich mich nicht irre.

Stefan

von Oryx (Gast)


Lesenswert?

Hallo Michi0021,
das mit der Funktion hasst Du richtig erkannt. Mit festem Takt, einfach
den jeweiligen Wert in den Wandler und über einen Verstärker in den
Lautsprecher.

Deine rechtliche Beurteilung sehe ich allerdings anders. Wenn ich meine
eigene CD einspiele und nur bei mir höhre, mags Du noch recht haben.
Aber wenn ich das ganze verkaufe, wir Mick Jagger das nicht witzig
finden. Ob man bei kurzen Tönen erwischt wird, ist eine andere Frage
und interressiert auch nicht wirklich. Ich will erst mal einen
korrekten weg gehen.

Hat schon mal jemand das Sonderheft der CT in Händen gehabt?

Oryx

von Sebastian (Gast)


Lesenswert?

Wie bekomme ich aus einer WAV Datei die Werte für den DA-Wandler?

Oder anders gefragt Was für eine Dateistruktur hat eine WAV Datei?

von Armin Kniesel (Gast)


Lesenswert?

Eine Wav-Datei hat außer dem Header von ca 100 Byte nur die einzelnen
digitalen Werte, die man eins zu eins auf den DA-Wandler geben kann.
Und da die ersten 100 Bytes nur einen Bruchteil einer Sekunde ausmachen
kann man die getrost mitausgeben.

von Ratber (Gast)


Lesenswert?

@Oryx

Erstellen kannste das schon mit den Hausmittlen von Windows oder
Linux.

Desweiteren gibt es im Web unzälige Editoren dafür.(Einfache und auch
Komfortable).

Ich zb. nutze sehr gerne Cooledit (Heißt jetzt anders aber ich weiß es
jetzt nicht.Such mal nach Cooledit und du wirst umgeleitet).

Es gibt genug Effekte,Mehrspurrecorder usw.
Auch das Konvertieren der Bitrate ist kein Akt.

Und damit du nicht immer den Header mitabspielen mußt kannste das ganze
auch im RAW-Format abspeichern.
Das sind dann nur die nackten Samples.

Es gab für Cooledit immer ne Demoversion (Einige Effekte waren
begrenzt).

schaus dir mal an.

Zur Not kannste dir innem Hexeditor einfach den Header einer WAV-Datei
abschneiden.Dann haste das gleiche Ergebnis.

Der vollständigkeit halber:Natürlich gibt es noch unzälige Programme
die das genauso können.

von Armin Kniesel (Gast)


Lesenswert?

Cool Edit heißt jetzt Adobe Audition und ist 100EUR teurer geworden :-(

von Ratber (Gast)


Lesenswert?

Yo,genau,Adobe hat es gekauft (War mir entfallen).

Ich will mal hoffen das die das Produkt nicht verhunzen (Von wegen
neuer Look usw.).

Wäre Schade drumm.

von Sebastian (Gast)


Lesenswert?

Wie sieht die Schaltung hierfür aus?
Einfach einen Piezo-Schallwandler oder Lautsprecher an Masse und den
Analogausgang?
Muss man noch einen Verstärker dazwischen schalten?

von Henning (Gast)


Lesenswert?

piezo würde so gehen, aber das kann ja keinen sound geben.

nen lautsprecher kann man zB per transistor anschließen.

von A. Arndt (Gast)


Lesenswert?

Hallo,

sehr interessant, kann ich als Speicher auch I2c-EEPROM nehmen mit z.B.
8k...?

Hat jemand Erfahrung hierzu in Basic (BASCOM / FASTAVR)

Gruss
A. Arndt

von Henning (Gast)


Lesenswert?

i2c eeprom müsste gehen.

und bisher fast alles in assembler gemacht dürfte in bascom allerdings
simpel sein.

von A. Arndt (Gast)


Lesenswert?

Hallo,

hat mal jemand einen Schaltplan mit der Grundkonfiguration der
Hardware, oder ein Schemabild...?

Gruss
A. Arndt

P.S.: Diese Technik wäre eine echte Alternative zu diesen teuren
ISD-Chip von z.B. Conrad...

von Henning (Gast)


Lesenswert?

eeprom ganz einfach über 2 leitungen an den uP (mit pullup) eben so, wie
das bei i2c bus gemacht wird.

und den lautsprecher, wenn man nur mal probieren will mit einer
freilaufdiode versehen, da drunter einen transistor (pnp) und mit
basiswiederstand die basis an den uP

oder einen impedanzwandler (spannungsfollger) als op-schaltung an den
ausgang, oder gleich einen class-d amplifier chip

appropro class-D: man könnte über einen timer ein PWM signal erzeugen.
das hat eine periodenzeit von 255 und eine Tein von dem Wave-Momentwert
(heisst sample?) das ganze auch über treibertransistor an den
Lautsprecher.
1 Pin, 1 Transistor, 1 lautsprecher und die sache ist fertig.

von A. Arndt (Gast)


Lesenswert?

Vielen Dank,

d.h. die "Ton-Daten" als Bin-Daten aus dem per PC erzeugt auf das
EEPROM bringen und dann in einem festen Zeitraster auslesen und auf den
Port geben ???

Gruss
A. Arndt

von Ratber (Gast)


Lesenswert?

@A.Arnd

Hallo Namensvetter.

I2C-Eeprom  mit Bacom ist kein Problem.

Nur ist die Speichertiefe nicht so prall und man muß den Filter selber
basteln (Nakter Digitaslsound höhrt sich grausig an)

Bei 8K Samplingfrequenz und nem 64K EEProm (zb. 4.75 Eur. bei Reichelt)
sind das max 8 Sekunden also wirste vermutlich 2-3 Brauchnen.

Das wären schon 14.25 für 24 Sekunden.

Nen ISD 1420 (20 Sekunden) Kostet dagegen nur 7.55 bzw. wenn man noch
etwas Geld für den Filter (Für EEPRom Version) mitrechnet dann wäre der
ISD2560 (60 Sekunden) oder der ISD2590 (90 Sekunden) für jeweils 17.90
(Ja,kosten beide das Gleiche) schon recht gut bemessen.

Der Chip beinhaltet vom Speicher über den Filter bis Zum
Microfonverstärker alles was man braucht.

eigentlich muß da nurnoch nen Lautsprechertreiber und nen Micro sammt
einiger Tasten Drann (Wenn gewünscht)und fertig ist er.



zurück zu I2C

Die Ansteuerung von EEProms ist in Bascom kinderleicht.

Man schaue sich die befehlsfolge im Datenblatt an und der Rest ist mit
ner Hand befehle abgearbeitet.

Nioch ne Anmerkung zu den ISD-Chips.

Die 4000er Serie bietet bis zu 16 Minuten Platz und hat sogar nen I2C
Schnittsatelle.

Den Preis weiß ich allerdings nicht und ich gehe mal davon aus das er
nicht so günstig sein wird.Nur der Info wegen.

Wie gesagt: "Teuer" ist ne Frage von "wie lange".

Bei Conrad würde ich den eh nicht holen.Die haben mittlerweile
Phantasiepreise.

Für deren 14er bekomme ich bei Reichelt 2 20er oder für 3 Euro mehr
gleich nen 90er.

Rechne ich die Versandkosten noch mit ein dann beträgt der Unterschied
von 14 zu 90 nur noch  unter 2 Euro.

Ich persönlich nehme lieber die ISD's
Für mich ist es einfacher und der Sound ist wesentlich besser als ne
Einfache Epromlösung.

Aber am Ende mußte selber entscheiden.

von Oryx (Gast)


Lesenswert?

Vielen Dank an alle

Der Sound läuft jetzt. Zur PC-seitigen Verarbeitung habe ich Audacity
verwendet. Ist in der CT Software Kollektion.
Bei meinen ersten Tests hatte ich noch eine Stereo-Datei. Hört sich
irgendwie nicht gut an.
Für die Filterei hinter dem AD-Wandler habe ich einen einfachen
Tiefpass verwendet. Reicht halt aus.

Als Verstärker noch einen TDA7053 und die Lautstärke ist auch ok.

Vielleicht hat ja noch jemand eine Idee, wo man einzelne Töne wie z.B.
Hundegebell, zerspringendes Glas und andere Tonfolgen herrunterladen
kann. Sollte halt gut sortiert sein.

Oryx

von Stefan (Gast)


Lesenswert?

Wie ich schon sagte: schau Dich mal nach CDs zum Video-Vertonen um, da
ist sowas lizensfrei drauf.

Stefan

von Ratber (Gast)


Lesenswert?

@Oryx

Entweder bei Google suchen (Ist in diesem Falle mühsam.Ich machs ab und
an auch so wenn ich was Spezielles suche) oder wie Stefan schon sagte .

von Danny P. (Gast)


Lesenswert?

Hi Zusammen !

Bin auch grad kräftig am basteln wegen einer Soundausgabe.
Hab glaub ich noch nen interessanten Lieferanten gefunden. da gibs den
ISD 25120 für knapp 10€
Vielleicht interessierts den ein oder anderen

http://www.hinkel-elektronik.de/cgi-bin/1.cgi?obj=www&_cgi=wk&_S=/shop/2724.html&WK_42311=1

Versandkosten zwar bei 5,80 aber somit immer noch günstiger als
Reichelt.

von ape (Gast)


Lesenswert?

wav-dateien sind übrigens auch fast raw daten.
in der ct gabs nen sehr interresantes projekt zu
frequenzgang-erfassung.

http://www.heise.de/ct/ftp/projekte/fgang/

da gibts nen programm + sourcen mit dem man frequenzgänge ermitteln
kann. außerdem ist der aufbau von wave-dateien sehr genau erläutert.

von Klaus Falkenberg (Gast)


Lesenswert?

Hallo,

hier ist eine Beschreibung des .wav-Formates. Fand ich ganz
interessant

Gruß

Klaus

von Klaus Falkenberg (Gast)


Angehängte Dateien:

Lesenswert?

sorry,
jetzt aber

Klaus

von Frank (Gast)


Lesenswert?

Ich nutze ein ISD im Push-Button Betrieb am Controller.
Nervig ist da immer das Knacken der Impulse. Hat jemand ne Lösung
wie man das unterdrücken kann

von Benedikt (Gast)


Lesenswert?

Ich verwende eine andere Lösung:
512kByte Flash EPROM, direkt mit dem 64kB Adress/Datenbus verbunden.
Die restlichen Adressleitungen kommen von einem weiteren uC Port.
Die RD\ Leitung ist mit Clk eines 74HC574 Latches verbunden -> Der uC
liest Daten, und der 74HC574 speichert den Wert automatisch. An dessen
Ausgang sitzt ein R2R DAC, der so angeschlossen ist, dass im
Ruhezustand (OE\ des 74HC574 auf High) die Ausgangsspannung auf 2,5V
also Wert 128 liegt. Damit vermeide ich das Knacken bei der Widergabe.
Per OE\ schalte ich den DAC ab.
Das ganze ist mit 32 Tasten verbunden (4*8 Matrix). Auf Knopfdruck
werden jetzt bis zu 32 Geräusche abgespielt, mit isngesamt maximal 85
Sekunden.
In den ersten 128Bytes des Flash sind Informationen über Samplerate und
Startadresse der einzelnen Geräusche gespeichert. Das Flash lässt sich
über RS232 per PC programmieren.

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.