Forum: Digitale Signalverarbeitung / DSP / Machine Learning Chorus Effekt


von Chris G. (chris94g)


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
von Mark B. (markbrandis)


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
von J. S. (engineer) Benutzerseite


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.

von Christoph db1uq K. (christoph_kessler)


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
von Mark B. (markbrandis)


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.

von Henry P. (henrylexx)


Lesenswert?

findet man sonst auch in den schattigen Ecken des Internets...

von Mark B. (markbrandis)


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.

von Chris G. (chris94g)


Lesenswert?

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

von Tom (Gast)


Angehängte Dateien:

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.

von Audiomann (Gast)


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.

von Chris G. (chris94g)


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

von klausr (Gast)


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.

von Chris G. (chris94g)


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..

von Mark B. (markbrandis)


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.

von The D. (thedaz)


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
von Tom (Gast)


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.

von Chris G. (chris94g)


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!?

von The D. (thedaz)


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.

von Chris G. (chris94g)


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!?

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.