Forum: Mikrocontroller und Digitale Elektronik Programm für Soundmodul.


von Jan R. (Gast)


Lesenswert?

Hi,

für ein Projekt im Modellbaubereich habe ich mal angedacht, einen 
Soundgenerator mit einem AVR zu bauen. Dafür sollen auf einem 
Speichermodul wahrscheinlich MikroSD, PCM Modulierte Samples sein. Der 
Speicher soll ähnlich eines Arrays aufgebaut sein.

Die Samples sollen mithilfe eines Interrupts aufgerufen werden, der 
Genau mit der Sampelrate aufgerufen wird. Hier gibt es ein Problem. Mein 
Prozessor hat 16Mhz Taktrate die Samplerate ist 44,1Khz
16Mhz/44,1Khz=362,816 das kann ich nicht teilen, da es keine Ganze zahl 
ist. Glaubt ihr man hört, wenn ich das ganze zu 363 aufrunde?
Dann hätte ich 44,077Khz? Wie machen das eigentlich soundchips haben die 
extra taktgeber dafür? VCO, wäre ja praktisch..)





 Im Interrupt steckt ein Schleifenzähler, sobald der Sound abgespielt 
wurde, meldet dieser das, das Interrupt wird nichtmehr ausgelöst, bis 
dem Prozessor gesagt wird, der Audioschnippsel soll wieder gespielt 
werden.

Ist das ansich so ok, mit der Programmidee, oder gibt es was 
einfacheres?
(möchte kein fertiges Modul kaufen oder MP3 verwenden).


Danke Schonmal

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


Lesenswert?

Warum überhaupt sone hohe Samplerate?
Musst die Datei ja eh iregdnwie bearbeiten um Mono PCM WAV zu bekommen, 
dann kannste ja zB auf 32kHz oder weniger downsamplen.

von Bussard (Gast)


Lesenswert?


von Jan R. (Gast)


Lesenswert?

Martin Wende schrieb:
> Warum überhaupt sone hohe Samplerate?
> Musst die Datei ja eh iregdnwie bearbeiten um Mono PCM WAV zu bekommen,
> dann kannste ja zB auf 32kHz oder weniger downsamplen.

Ja stimmt, mache ich dann, aber theoretisch, würde man diesen Fehler 
hören?

Und wie ist das bei Mikroprozessor Functionsgeneratoren?
(anderes Thema aber irgendwie ja auch nicht)

Wenn die ne Prozessorfrequenz von 40Mhz habe und nen 8Bit DA. Und mann 
will 1151Hz

rechenweg 1151*255=293505

40*10^6/293505=136,284

Rechne ich mit 136 habe ich 1153,4 Hz das ist ein Großer Fehler. Wie 
schafft man dann eineFreqzenzgenauigkeit von 1mHz
Wenn ich 400Mhz habe bekomme ich 1150,9Hz also 1mHz


wie machen fgs ddas?

von Maik (Gast)


Lesenswert?

Jan R. schrieb:
> 16Mhz/44,1Khz=362,816 das kann ich nicht teilen, da es keine Ganze zahl
> ist. Glaubt ihr man hört, wenn ich das ganze zu 363 aufrunde?

362,816/363 da ist die Abweichung kleiner als 0,05%.
Ich glaube nicht, daß man das hört...

Maik

von Karl H. (kbuchegg)


Lesenswert?

Jan R. schrieb:

> Rechne ich mit 136 habe ich 1153,4 Hz das ist ein Großer Fehler.

Aber nur für jemandem mit einem 'absoluten Gehör'.

Wieviele Personen kennst du, die die genaue Frequenz einer 
Lokomotivpfeife kennen und vor allen Dinge auch wiedererkennen?

von Rolf S. (audiorolf)


Lesenswert?

Es gibt durchaus Personen, die so genau hören, aber die meisten mit 
absolutem Gehör haben sogar dass Problem, dass sie mit ihren Emfindungen 
daneben liegen, weil in Kozerten andere Tonlagen gespielt werden. Der 
Kammerton z.B. ist nicht an allen Orten überall gleich und im Laufe 
eines Konzertes verändern sich auch die Grundtöne durch die schwankende 
Temperatur. Die Musiker stellen es dann nach Gehör nach und passen sich 
auf die anderen an, dabei stellen sie meistens minimal zu hoch. Deshalb 
kommen manche Orchester hinten immer etwas höher raus, als sie 
angefangen aben.

Für das Soundmodul kann man eine DDS benützen, dann stimmen die 
Frequenzen wenigstens im Mittel. Wenn die 44,1kHz auch exakt stimmen 
sollen, darf man nicht viel abweichen, weil die digitalen Empfänger 
nicht viel Fehler vertragen. Wird es analog gesendet, bleibt nur das 
Problem der genau Hörenden.

Wie kompliziert soll das Programm werden?

: Bearbeitet durch User
von J. S. (engineer) Benutzerseite


Lesenswert?

Rolf S. schrieb:
> Die Musiker stellen es dann nach Gehör nach und passen sich
> auf die anderen an, dabei stellen sie meistens minimal zu hoch. Deshalb
> kommen manche Orchester hinten immer etwas höher raus
Kaum vorstellbar in Zeiten, wo es elektronische Stimmhilfen für kleines 
Geld gibt. Ich habe übrigens schon Musiker gehen, die mit Stimmhilfe im 
Konzert nachjustieren / prüfen. Ausserdem stimmen sie spätestens in den 
Pausen nach.


Jan R. schrieb:
> Dann hätte ich 44,077Khz?
Für Deine Apllikation sollte das egal sein, Hauptsache Dein Wandler 
kommt mit dem Takt klar. Du kannst eigentlich JEDE Sample Rate 
verwenden, wenn Du sie nicht ausgibst. Musst eben die Tonhöhen intern 
anpassen.

> Wie machen das eigentlich soundchips haben die
> extra taktgeber dafür? VCO, wäre ja praktisch..)
Es wird ein passendes Quarz verwendet. Die Tongeneration erfolgt aber 
meist nicht durch ganzzahliges Teilen eines festen Taktes sondern durch 
DDS, bei der - abgesehen von jitter - die Tonfrequenz von der 
Samplefrequenz unabhängig ist. Das Funktionsprinzip ist hier 
dargestellt:
http://home.arcor.de/jusuihe/pldsynthesizer.html

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.