Fortissimo-Begrenzer

Liebe Leute,

klassische Musik wird in extremen Lautstärkeunterschieden vorgetragen, und ich möchte nicht alle paar Minuten zum Lautstärkeregler rennen, weil der Große Meister ständig zwischen pianissimo und fortissimo wechselt. Also mu0 ich wohl oder übel die Dynamik begrenzen und denke dabei an einen Fortissimobegrenzer, den ich mit einen DSP realisiere, der sich im Signalweg befindet. Wo gibt es nette Algorithmen dazu?

Viele Grüße, Holger

--

Alzheimer ist ganz toll. Man lernt ständig neue Leute kennen.
Reply to
Holger
Loading thread data ...

Die passenden Suchworte waeren: "compressor algorithms". Ich kann Dir mit konkreten Beispielen aber nicht weiterhelfen, weil ich mit sowas nur in der Funktechnik zu tun habe und das hoert sich fuer Musik eher garstig an. Ausser vielleicht fuer E-Gitarre in einer Rock Band :-)

Du kannst auch mal in comp.dsp fragen, da treffen sich DSP Gurus.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Kein Kompressor, sondern ein Limiter. Ich habe inzwischen in einem meiner Bücher was gefunden, was aber garstig zu implementieren ist, mal sehen. Und nach Tabelle vorgehen? Ich werde mal überlegen, ob es nicht vielleicht schon funktioniert, wenn ich passend zum Momentanwert des Audiosignals einen Multiplikator einfüge, der mit wachsendem Momentanwert immer größer wird. Ein bißchen Fließkomma kann mein DSP ja, müßte man mal ausprobieren, wie schlimm sich das hinterher anhört.

Ja. Mal sehen.

Grüße, Holger

--

Alzheimer ist ganz toll. Man lernt ständig neue Leute kennen.
Reply to
Holger

Du meinst "kleiner wird"? Das waere dann der klassische Kompressor, nur eben kein zeitlich regelnder. Fuer klassische Musik nicht so der Hit, ist eher was fuer Heavy Metal und Punk Rock :-)

Audio ist fuer heutige DSP beinahe ein Kinderspiel. Im Funkbereich machen wir damit die komplette Baseband-Aufbereitung, manchmal inklusive erster (niedriger) ZF.

[...]
--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Hallo Holger,

Am 10.04.2011 17:36, schrieb Holger:

Du beschreibst gerade einen Kompressor. Allerdings setzen die Kompressoren im Musikbereich erst ab einem Schwellwert ein. Das dort entstehende "Knie" kann dann noch verrundet werden. Mit einem DSP kannst Du das z.B. mit dem ADAU1701 ohne großen Aufwand aufbauen. Der hat zwei analoge Eingänge und vier analoge Ausgänge und wird mit dem SigmaStudio klicki-bunti parametriert :-).

Grüße, Kurt

--
KHTronik - Kurt Harders
Elektronik, Softwareentwicklung, Opensource-Beratung
Leimbacher Str. 36
42281 Wuppertal

T +49 202  2 50 11 64
F +49 202  2 50 11 65
M +49 171  8 36 82 33
Reply to
Kurt Harders

Joerg schrieb:

Naja, ich verwende keine "heutigen DSP", sondern den DSP96002 von Motorola auf einer Lochrasterplatine (funktioniert!) mit 32 MHz Takt. Audio sollte damit problemlos gehen, davon bin ich überzeugt.

Grüße, Holger

--

Alzheimer ist ganz toll. Man lernt ständig neue Leute kennen.
Reply to
Holger

Ich könnte mir vorstellen, wenn man keine geringe Latenz braucht, dann könnte man z.B. eine Loudness-Bewertung nach EBU R128 durchführen und den Short-Wert dort (normalerweise 3 Sekunden) zur Bewertung heranziehen und dann die letzten 3 Sekunden entsprechend absenken im Pegel, wenn er zu hoch wird. Das sollten auch kleinere DSPs schaffen, wenn die genügend RAM haben. Könnte man auch leise Passagen lauter mit machen, aber keine Ahnung, ob das bei Klassik gut kommt.

Wenn Latenz gar keine Rolle spielt, dann kannst du auch über das gesamte Stück einen Kompressor laufen lassen. Ist z.B. in Audacity enthalten. Da das Open Source ist, könnte man sich das mal ansehen. Dann ein GB RAM an die DSP dranbauen, und fertig ist der Kompressor :-)

--
Frank Buss, http://www.frank-buss.de
piano and more: http://www.youtube.com/user/frankbuss
Reply to
Frank Buss

Am 10.04.2011 17:36, schrieb Holger:

Der Limiter wird normalerweise als Spezialfall des Kompressors angesehen (Ratio->unendlich).

Fast richtig. Normalerweise willst Du das Signal vorher gleichrichten und mit Zeitkonstanten bewerten (Attack, Release). Danach geht man sinnvollerweise in den logarithmischen Bereich über (z.B. dB). Sofern der Pegel (Level) unter einem Schwellwert (Threshold) liegt, ist Dein Multiplikator 1 (Gain = 0dB). Ansonsten musst Du entsprechend absenken: Limiter: Gain = Threshold - Level Kompressor: Gain = (Threshold - Level) * (1 - 1/Ratio) Der Multiplikator ergibt sich als lineares Gegenstück aus dem Gain.

Wie Kurt schon schrieb, kann man den Übergang ("Knee") noch verrunden ("Soft-Knee"). Falls das von Interesse sein sollte, bitte nochmal melden.

HTH Markus

Reply to
Markus Faust

Markus Faust schrieb:

Hallo Markus,

das riecht nach sehr viel Rechnerei. Ob ich das noch mit dem DSP96002 in einem Zeitfenster erledigen kann? Das Ding läuft bei mir mit 32 MHz, und bei einer Abtastrate von 48 kHz ergeben sich 666 Prozessortakte, von denen ich rund 500 tatsächlich nutzen kann, um genau diese Aufgabe zu erledigen, erzählt mir mein Taschenrechner.

Ja, könnte mich interessieren. Ansonsten muß ich knauserig sein, was die Taktzyklen betrifft.

Viele Grüße, Holger

--

Alzheimer ist ganz toll. Man lernt ständig neue Leute kennen.
Reply to
Holger

Am 11.04.2011 10:52, schrieb Holger:

Der Aufwand für Gleichrichtung und Zeitkonstanten sollte sich in Grenzen halten. (Ich kenne den DSP96002 nicht, deshalb sind konkrete zahlen schwierig; ich schätze mal so 5-10 Maschinen-Befehle).

Falls Du für Logarithmierung/Entlogarithmierung zu viel Rechenzeit brauchst, kannst Du notfalls nach den Zeitkonstanten unterabtasten (der Fehler sollte sich in Grenzen halten) und diese Schritte auf mehrere Audio-Samples verteilen.

Das widerspricht sich leider ein bischen (soft-knee wenig Rechenzeit), WIMRE war da eine Wurzel dabei. Ich schau heute Nachmittag noch mal nach.

Viele Grüße Markus

Reply to
Markus Faust

Hallo,

Am 10.04.2011 17:03, schrieb Holger:

Alternativer Ansatz? Ein ganz normales und analoges VU-Meter mit ganz niederiger Abtastrate (100 Hz?) auslesen und damit über eine Tabelle oder einfache Funktion runterregeln? Das Ganze sollte auch voll analog gehen. Schaltpläne dafür habe ich schon im letzten Jahrtausend gesehen.

MfG

Uwe Borchert

Reply to
Uwe Borchert

Geht mit Dioden oder wenn das Bankkonto fett genug ist hat Analog Devices Chips dafuer.

Daher haben wir das in der guten alten Zeit auch analog gemacht :-)

Mit Transistoren . Im Ernst, in meinem war nichtmal ein uA741 drin. Aber eher weil man da in unserer Gegend zuviel dritte Wahl angedreht bekam.

--
Gruesse, Joerg

http://www.analogconsultants.com/

"gmail" domain blocked because of excessive spam.
Use another domain or send PM.
Reply to
Joerg

Hallo Uwe,

Am 11.04.2011 13:39, schrieb Uwe Borchert:

Motorpoti? :-) Die Reaktionsgeschwindigkeit kann man durch verändern des Trägheitsmomentes einstellen :-)

Grüße, Kurt

--
KHTronik - Kurt Harders
Elektronik, Softwareentwicklung, Opensource-Beratung
Leimbacher Str. 36
42281 Wuppertal

T +49 202  2 50 11 64
F +49 202  2 50 11 65
M +49 171  8 36 82 33
Reply to
Kurt Harders

Kurt Harders schrieb:

VCA - spannungsgesteuerter Verstärker.

Das geschieht ähnlich der DSP-Variante: Es wird eine Steuerspannung erzeugt, die ein Maß für die Lautstärke ist. Über einen Vergleicher wird entschieden, ob linear verstärkt oder über einen Teiler einstellbar unlinar verstärkt werden soll. Die daraus entstehende Steuerspannung wird auf den VCA gegeben, der seine Verstärkung in Abhängigkeit der Steuerspannung anpasst. Durch den VCA läuft das Audiosignal, was dann entsprechend beeinflusst wird.

einstellen

Auch ein VCA, der ohne bewegliche Teile auskommt, ist so schnell, dass er nervig klingen kann. Daher gibt es bei analogen Kompressoren die beiden Parameter "Attack" und "Release", welche die Trägheit beim Reagieren auf eine Lautstärkeveränderung darstellen.

Gruß Christian

Reply to
Christian Müller

Hallo,

Am 11.04.2011 16:25, schrieb Kurt Harders:

Nein. Ganz normaler VCA oder etwas luxoriöser ein DCA über GPIO gesteuert. Mit VU-Meter meinte ich auch nur die reine Elektronik dafür, nicht die Anzeige.

MfG

Uwe Borchert

Reply to
Uwe Borchert

Am 11.04.2011 10:52, schrieb Holger:

So, ich hab noch mal nachgedacht und bin auf folgendes gekommen: Im linearen Bereich: g = (T^K / (T^K + l^K))^(R/K)

g = Gain T = Threshold l = Level (von Gleichrichter/Zeitkonstanten) R = (1 - 1/Ratio) K = Knee

Für K sind alle echt positiven Werte zulässig, praktisch sinnvoll ist wohl irgendwas von 1 bis 10. Kleine Werte geben ein "weiches Knie", große Werte ein "hartes Knie". Alle großen Buchstaben sind Konstanten. Die Formel sieht auf den ersten Blick bischen gefährlich aus, aber wenn Du für K mit ganzzahligen Werten leben kannst (ich würde so 2..4 vorschlagen) ist die Berechnung nicht viel komplizierter als die Variante ohne Knie: l^K durch Multiplikation berechnen, dann T^K addieren. Logarithmieren. Aus der Division wird eine Subtraktion, aus der Potenz eine Multiplikation. Entlogarithmieren.

Viele Grüße Markus

Reply to
Markus Faust

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.