mikrocontroller.net

Forum: Digitale Signalverarbeitung / DSP Chorus Effekt


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: Chris G. (chris94g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
Die AUfgabe besteht darin den Chorus Effekt für einen DSP in C zu 
programmieren.. Könnte mir bitte jemand den Effekt signaltheoretisch 
versuchen zu veranschaulichen, da es dort noch etwas hängt.. ist es 
richtig dass das originale Signal verdoppelt werden muss und dieses mit 
einer kleinen Verzögerung über das Hauptsignal gelegt werden muss!?  War 
es das schon.. was hat es mit dem LFO auf sich? .. dieser soll ja auch 
irgendwie die Verzögerung beeinflussen bzw zeitabhängig (sinusförmig?) 
ändern oder so!?

Würde mich sehr über hilfreiche Antworten freuen!
Danke

: Verschoben durch User
Autor: Mark B. (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ist hier doch wohl hinreichend gut erklärt:

https://de.wikipedia.org/wiki/Chorus_%28Tontechnik%29

Vielleicht solltest Du Deine Hausaufgaben mal mit Deinen Kommilitonen 
besprechen...

: Bearbeitet durch User
Autor: Jürgen S. (engineer) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moderne Geräte modulieren nicht nur die Tonhöhe, sondern auch Zeitpunkt, 
des Einsatzes und die Klangfarbe, also die Formanten.

Wenn man es nur mit einer Verzögerung macht, sollte man das Band auf 
oberhalb 300 Hz beschränken.

Autor: Christoph db1uq K. (christoph_kessler)
Datum:

Bewertung
2 lesenswert
nicht lesenswert
ISBN 9780470979679
DAFX: Digital Audio Effects
da werden solche Verfahren ausführlich beschrieben. Ich hatte das mal 
aus der Hochschulbibliothek ausgeliehen.
bei http://www.books.google.de kann man drin blättern.

: Bearbeitet durch User
Autor: Mark B. (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Christoph K. schrieb:
> ISBN 9780470979679
> DAFX: Digital Audio Effects
> da werden solche Verfahren ausführlich beschrieben. Ich hatte das mal
> aus der Hochschulbibliothek ausgeliehen.

Klingt interessant. Kostet leider über 100 Euro, was ich schon etwas 
extrem finde.

Autor: Henry P. (henrylexx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
findet man sonst auch in den schattigen Ecken des Internets...

Autor: Mark B. (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Henry P. schrieb:
> findet man sonst auch in den schattigen Ecken des Internets...

Normalerweise bin ich nicht für sowas. Ich kaufe gerne Bücher, zudem 
noch viel lieber im Original als gebraucht.

In diesem Fall kann ich es aber durchaus verstehen, wenn sich jemand 
"selbst einen Rabatt gewährt". Hier wäre weder dem Autor noch dem Verlag 
ein Zacken aus der Krone gefallen, wenn das Buch die Hälfte kosten 
würde, also ca. 50-60 Euro.

Autor: Chris G. (chris94g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielen Dank für den Hinweis mit dem Buch! Da schaue ich doch gleich 
morgen mal ob ich das bei uns auch finde!

Autor: Tom (Gast)
Datum:
Angehängte Dateien:

Bewertung
1 lesenswert
nicht lesenswert
Eine primitive Offline-Version kann man schon ganz ohne DSP-Kenntnisse 
aus dem Wikipediartikel oder deiner Frage zusammenpfuschen:
Quelle sampleweise in ein Array lesen. Das Array von vorne durchgehen, 
das aktuelle und ein um ~15ms + tx älteres Sample (man kann mit der 
Samplerate auf den Arrayindex vor ~15ms+tx schließen) zusammenmischen. 
tx so variieren, dass ein Sinus rauskommt mit 0.1--10Hz und ~1ms 
Amplitude.

Das klingt wie im Anhang (den miesen Gitarrensound entschuldigen) und 
ist mit sehr wenigen Zeilen Code erledigt. Einigermaßen furchtbar, aber 
grob chorusartig.

Autor: Audiomann (Gast)
Datum:

Bewertung
1 lesenswert
nicht lesenswert
Tom schrieb:
> Einigermaßen furchtbar, aber grob chorusartig.

Furchtbar nicht, aber auch nicht Chorus. Die Stimmen sind nur verändert, 
aber es sind nicht 2 oder mehr.

Autor: Chris G. (chris94g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nun habe ich noch eine Woche Zeit und blicke das ganze immer noch nicht 
ganz.. Das Hauptsignal wird verdoppelt und dann zeitversetzt um 15 ms 
über dieses wieder abgespielt.. die Verzögerung variiert mit der Zeit.. 
in welchem Bereich schwankt diese Verzögerung nun, angenommen ich nehme 
die 15 ms als Mittelwert??  zwischen 10 und 20 ms oder ist das zu 
gering?
Bereich von 0.1 - 10 Hz wäre ja eine Periodendauer von 10 - 1 sek!?
Bin froh über jeden hilfreichen Tipp und Ratschlag! bin leicht am 
verzweifeln...

Danke im Vorraus

Autor: klausr (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris G. schrieb:
> in welchem Bereich schwankt diese Verzögerung nun, angenommen ich nehme
> die 15 ms als Mittelwert??  zwischen 10 und 20 ms oder ist das zu
> gering?

Ich nehme an, dass er +/- 1ms gemeint hat, zumindest interpretiere ich 
das so:~1ms Amplitude.

Autor: Chris G. (chris94g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was genau bedeutet "das ein Sinus rauskommt mit 0.1--10Hz"?
Hat ein SInus mit der Form Sin(wt) nicht immer nur eine Frequenz.. wie 
kann die variieren?
Sorry, stehe wohl immer noch etwas auf m Schlauch..

Autor: Mark B. (markbrandis)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Chris G. schrieb:
> Was genau bedeutet "das ein Sinus rauskommt mit 0.1--10Hz"?
> Hat ein SInus mit der Form Sin(wt) nicht immer nur eine Frequenz.. wie
> kann die variieren?
> Sorry, stehe wohl immer noch etwas auf m Schlauch..

Ist doch im Wikipedia-Artikel erklärt:

Modulation

Der Kern des Effekts liegt darin, dass das verzögerte Signal in 
periodischen Abständen beschleunigt und wieder abgebremst wird. Dieser 
Vorgang heißt Modulation. Während der Beschleunigung ist die Tonhöhe 
höher als beim Original, während des Abbremsens niedriger. So entsteht 
die gewollte leichte Verstimmung zwischen verzögertem und originalem 
Signal.

Autor: The D. (thedaz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Gemeint ist die Schiebegeschwindigkeit des Delays um die Samplefrequenz 
herum ein kleines bischen zu modulieren. Bei einem konstanten Sinus am 
Eingang bewirkt dies am Ausgang einen in der Frequenz schwankenden 
Sinus, zusammen mit der durch die Länge der Delays verursachten 
Verzögerung bewirkt dies bei Mischung mit dem Original-Signal den 
Chorus-Effekt.

Bei typischen Chrous-Effekten kann man die Modulationsfrequenz (Speed), 
ihre Amplitude (Width/Depth), die Länge des Delays (Delay) und das 
Mischungsverhältnis zwischen Original- und Effektanteil (Mix) 
einstellen.

: Bearbeitet durch User
Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eingang: I
Ausgang: O
Amplitude: A              1 ms (z.B.) Anfangswert, Rest nach Gehör
Delay: D                 15 ms (z.B.)
Mix: M                    0.2  (z.B.) sinnvoll von 0 (kein Effekt)
                                      bis 1 (Vibrato)
Modulationsfrequenz: F    1 Hz (z.B.) sinnvoll von 0.1..10Hz, nach Gehör

Damit sollte man irgendwas hören.

Autor: Chris G. (chris94g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Okay na vielen Dank für die schöne GLeichung und die Erklärungen! Vom 
Grund her macht meine Benutzte das gleiche.. der Prozessor den wir 
nutzen arbeitet mit 8000 Samples Abtastung die Sekunde, also müsste ich 
nun die entsprechende Hertzzahl auf 8000 beziehen, d.h. 10 Hz wären 800, 
2Hz->4000, Samples für F?? Ist das so korrekt?
Und die Amplitude dann für 1ms bei 8 Samples!?

Autor: The D. (thedaz)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nein, du modulierst die Samplefrequenz mit einem Sinus- oder 
Dreiecksignal. Die Amplitude des  Modulationssignals bestimmt die 
höchste und niedrigste Samplefrequenz. Die Abweichung von der 
Mittenfrequenz beträgt maximal wenige Prozent sonst wird es unschön (1 
Ganzton darüber bzw darunter sollte reichen). Die Frequenz des 
Modulationssignals bestimmt wie schnell die Samplefrequenz moduliert 
wird. Diese Frequenz liegt zwischen 0 und 10Hz und sollte möglichst 
feine Einstellungen erlauben.

Autor: Chris G. (chris94g)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
In der Vorlesung haben wir eine Formel für nen SInus bekommen 
sin(2Pi*f*n*(1/fs)) wonach mit den 10 Hz und 8000 Samples eingesetzt 
"/800" rauskäme.. beschreibt dass dann nicht die "Länge" des Sinus!?

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.