Algorithmus für einen digitalen Kompressor

ah! Verstehe!
 
Hi,

So, gestern und heute habe ich noch an ein paar Parametern gedreht. Aktuell sieht das ganze so aus:
MyDistortion_Screeny.png

Features:
  • vollparametrisch & alle Parameter automatisierbar
  • Inter-Sample Peak Metering für In, Out und Gain Reduction
  • Parameter: Threshold, Ratio, Attack, Release, Gain
  • Zwei Timing Modi (Die bestimmen, wie Attack/Release angreifen): Linear (sehr punchy) / nichtlinear (smoother)
  • Für die Threshold Detektion (Sidechain) gibt es zwei coole Features (danke Banjo:) ) a) einen Highpass Filter, der tiefe Frequenzen blockt und somit Pumpen oder Verzerrungen aufgrund von basslastigen Anteilen verhindert. b) Glättung des Gleichgerichteten Signals (FilterFrequency) macht den Kompressor träger oder schneller
Gibt es vielleicht ein oder zwei willige User, die den Kompressor mal testen wollen und ein bisschen Feedback geben könnten? Bereitstellen kann ich VST2 und (bevorzugt) VST3 für 32Bit und 64Bit. Schreibt mir einfach eine PN, dann lasse ich euch einen Link zur aktuellen Version zukommen. Schonmal vielen Dank!

So Far...
Laguna
 
  • Gefällt mir
Reaktionen: 4 Benutzer
Ich würde mich freiwillig melden. VST3 wär ok.
 
Du hast eine PN. :)

So Far...
Laguna
 
Das ging aber schnell:great:

Du solltest unbedingt nochmal RMS in der Sidechain probieren, das ist die beste einfache Näherung an die empfundene Lautstärke.

https://en.wikipedia.org/wiki/Root_mean_square

Gleich die erste Formal.

Banjo
 
Hi,

So, hier nochmal ein dickes Danke an alle die gutes Feedback abgegeben haben! :) Das hilft mir wirklich weiter.

Update:

  • Am Wochenende habe ich ordentlich an der GUI geschrubbt. Bilder kommen bald.
  • Metering ist immer noch true Peak, allerdings mit längerer Ausklingzeit. Orientiert habe ich mich an den Metern von Cubase 5.5.
  • Es gibt jetzt Meter mit dB Skala.
  • Threshold Regler ebenfalls mit dB Skala
  • Parameterbereiche nochmal leicht angepasst
  • Fixen des "Plugin auf Mono Spur gebypassed" in Cubase 5.5 (nicht in Reaper o_O)
  • Korrekte Implementierung des Stereo/DualMono Modus (das ist irgendwie noch kein echter Stereo modus.)
Zusätzlich ist sicher noch an Features geplant:
  • Für die Detektion Wahlweise Mittelung, Peak, RMS oder RMS plus Peak
  • Mix Regler
  • Pre-Attack Regler
Wenn das steht würde ich ggf nochmal eine Testrunde laufen lassen.

So Far...
Laguna
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Hi,

Es hat sich einiges getan! :)

newGui.png


Als neue Features sind hinzu gekommen:
  • Mix-Regler. Damit ist Parallel-Kompression (NY) ohne Umwege möglich. Falls man Parallel-Kompression aus Gründen auf einen Bus auslagern möchte ist das aber natürlich auch kein Problem, da das Plugin 0 Latenz hat.
  • Pre-Attack. Das gefällt mir als Feature richtig gut und ich vermisse es in vielen Kompressoren. Gerade auf Drums kann man damit richtig schön den Sound formen, da man kräftig Punch aus dem Anschlag rausholen kann, ohne die Transiente zu dezimieren.
  • RMS ist jetzt standard bei der Detektion. Das klingt in den meisten Fällen deutlich "runder" als die Tiefpassung des gleichgerichteten Signals.
  • Distoriton. Der ist noch von der MSDistortion geklaut, aber weitereentwickelt um konstante (gefühlte) Lautstärke bei zunehmender Verzerrung zu ermöglichen. Das Feature sitzt nach dem InputGain, womit man seinen Track wunderbar in die Sättigung fahren kann.
  • Eine Unmenge kleinere und größtere Bugs ausgemerzt.
  • Performance. Die ist nochmal ein bisschen besser geworden.

Achja und natürlich die GUI.
Daran habe ich wirklich lange gewerkelt. Bei so graphischen Dingen bin ich leider ziemlich unbegabt. Eine gute Freundin(mit Studium in die Richtung) konnte mir jedoch etliche sehr hilfreiche Tipps geben. (Danke Lisa :) )
Wichtig war mir hier an erster Stelle die Leserlichkeit und der Überblick. Trotzdem müssen natürlich alle Parameter untergerbracht werden, ohne dass das Plugin gleich zwei Bildschirme benötigt werden.

Aktuell bin ich dabei, verschiedene Vertriebsmöglichkeiten auszuloten und mich in das rechtlich-wirtschaftliche einzulesen. (War ja klar, dass der spassige Teil irgendwann vorbei ist :( :D ).

So Far...
Laguna
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 11 Benutzer
Hui, schick:great:

Damit Du nicht nur wirtschaftlich tätig wist, hätt ich noch ein gutes Feature:) Verschiedene Attack/Release-Zeiten je nachdem, ob in der Sidechain eine RMS-Detektion oder eine Peakdetection angesprochen hat. Das kenn ich aus dem Weiss-Mastering-Kompressor und fand das immer ein sehr gutes Feature. Kurze Spitzen werden schnell weggebügelt, auf länger anhaltende Lautheit reagiert er träger.

Banjo
 
  • Gefällt mir
Reaktionen: 1 Benutzer
uiii schick :great:
 
Da fällt mir noch was ein. Der Hochpass in der Sidechain ist doch sicher ein rekursives IIR-Filter? Hast Du schon mal probiert, was mit der VST-CPU-Last passiert, wenn Du Audio auf Dein Plugin gibst und dann das "Band" anhältst, so dass nur noch Nullen ins Plugin gefüttert werden, und dann eine Weile wartest?

Banjo
 
Danke :)
Freut mich ja, wenn das Plugin optisch auch etwas ansprechend wirkt. Gerade nachdem da wirklich viel Zeit rein geflossen ist (auch in die Erlernung der Tools)
Lustiger Nebeneffekt: Wenn man sich mal genauer damit auseinandersetzt, merkt man erst mal, wie schlampig manche GUIs, oft auch von professionellen Herstellern, sind. Sehr positiv aufgefallen sind mir die GUIs von Softube und Klanghelm. Die sind wirklich hübsch mit viel Liebe zum Detail gestaltet. :great:

@Banjo : Nein, das ist, soweit ich das verstanden habe, kein IIR Filter. Ich habe die Implementierung eines -24dB/Oct Butterworth Filters auf meine Bedürfnisse adaptiert. Damit bin ich ziemlich performant.
Ja, dabei habe ich eine Verschiebung in der Phase um 90°, andererseits macht das im Detektions-Kanal nur wenig aus.

Mir ist noch nicht klar, wo du mit deiner Frage hin willst. Die Performance des Plugins sollte doch unabhängig von der Ausgabe des Filters sein? Und die FIR Filter, die ich kenne haben konstante "Last", eben durch die Multiplikation mit dem Filterkernel. Vielleicht magst du mir da nochmal einen Denkanstoss geben?

Achja und Danke für die Kekse :)

So Far...
Laguna
 
Hast Du's denn schon probiert wie beschrieben? Stichwort "Denormalized Floating Point". Das sollte auch Dein Butterworth betreffen, das ist ein IIR mit rückgekoppelten Strukturen. Denke ich jedenfalls.

Wenn das Filter rekursive Strukturen verwendet, schon mal Signal hatte und dann am Eingang nur noch Nullen bekommt, werden die Floatwerte, die im Filter zirkulieren, immer kleiner und kleiner während das Filter ausklingt. Irgendwann sind sie so klein, dass sie mit dem verwendeten Zahlenformat (float oder double) nicht mehr abgebildet werden können. Das löst eine Exception aus, Windows schickt die Kavallerie zu Hilfe und der VST-Leistungsverbrauch steigt dramatisch an, da eine einfache Multiplikation, die normalerweise einen CPU-Zyklus braucht, auf einmal zum Staatsakt wird.

Es gibt verschiedene Abhilfen, man kann die Exception unterbinden, indem man an CPU-Registern rumfummelt, man kann sie selber schnell und effektiv behandeln oder am einfachsten, man addiert zum Filtereingang Rauschen unterhalb des hörbaren Bereichs bzw. in Deiner Sidechain gut unterhalb der Threshold. Dann sacken die Werte im Filter nie auf so kleine Werte ab, dass die CPU sie nimmer darstellen kann.

Vielleicht trifft der von Dir verwendete Butterworth-Code da ja schon Vorkehrungen, der Test ist einfach. Audio rein, dann mit Nullen füttern und abwarten und VST-CPU-Last im Host beobachten.

Banjo
--- Beiträge wurden zusammengefasst ---
P.S. Guckst Du mal auf die Startseite des Boards:

https://www.musiker-board.de/

Banjo
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 1 Benutzer
Coole Sache! Jetzt noch eine LV2-Version, bitte. :D
 
  • Gefällt mir
Reaktionen: 3 Benutzer
Hast Du's denn schon probiert wie beschrieben?
Bei dem Versuch kommt auch nach 5 und mehr Minuten kein Einbruch in der Performance.
Ich habe es nicht konkret abgefangen, jedoch könnte ich mir vorstellen, dass WDL/Iplug da schon Vorkehrungen treffen. Im Debug-Modus kommen beispielsweise über alle Input-Kanäle Werte, die sich leicht von 0 unterscheiden.

Das einzige was performancetechnisch wirklich ins Gewicht fällt, ist die Berechung des RMS Wertes (Wurzel-ziehen) bzw die Aufsummierung der Werte bei sehr langsamer Detektion.
Für ersteres kann ich mir aber vorstellen, noch eine schnellere Implementierung zu finden. Bei zweiterem muss ich nochmal über die Datenstrukturen nachdenken. Da lässt sich sicherlich noch was optimieren.

--- Beiträge wurden zusammengefasst ---
P.S. Guckst Du mal auf die Startseite des Boards
Nice! :D Danke Martin. :)

@K-Bal : LV2 ist leider nicht mit WDL-ol kompatibel. Da liegt mir mehr an den gängigen Formaten VST, VST3, RTAS, AAX.

So Far...
Laguna
 
Ich habe es nicht konkret abgefangen, jedoch könnte ich mir vorstellen, dass WDL/Iplug da schon Vorkehrungen treffen. Im Debug-Modus kommen beispielsweise über alle Input-Kanäle Werte, die sich leicht von 0 unterscheiden.

Das kann natürlich sein, dann wäre das abgefangen.

Bei zweiterem muss ich nochmal über die Datenstrukturen nachdenken. Da lässt sich sicherlich noch was optimieren.

Du musst ja nicht jedesmal alle Werte addieren. Wenn Du Dir die Summe und die zu summierenden Quadratwerte in einem Puffer merkst, musst Du nur den neusten dazuaddieren und den ältesten wieder abziehen.

Banjo
 
Hey, ist ja richtig hübsch geworden. :great:

Soll ich nach einem Mac-Release fragen, oder lieber nicht? :D
 
  • Gefällt mir
Reaktionen: 1 Benutzer
Hey, ist ja richtig hübsch geworden. :great:

Soll ich nach einem Mac-Release fragen, oder lieber nicht? :D

auch dir vielen Dank! :)
Mac Release wird kommen. Allerdings habe ich keine Umgebung um für Mac zu bauen. Deshalb muss ich einen Kumpel bitten, das zu bauen. Vorher gibt es aber noch ein paar andere Dinge zu klären. Je mehr man sich damit auseinandersetzt, desto komplizierter werden Sachen wie Gewerbeanmeldung.

So Far...
Laguna
 
  • Gefällt mir
Reaktionen: 2 Benutzer
@Laguna
Super sieht es aus dein Baby ;-)
Ich wünsche dir weiterhin viel Erfolg.
 
Wo kann ich es eigentlich laden? :)
 

Ähnliche Themen


Unser weiteres Online-Angebot:
Bassic.de · Deejayforum.de · Sequencer.de · Clavio.de · Guitarworld.de · Recording.de

Musiker-Board Logo
Zurück
Oben