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
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.
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?
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
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?
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.