ich bin ganz frisch in die Core Welt eingetaucht, um Events besser und kreativer verarbeiten zu können.
Auf Audioebene bevorzuge ich immer noch mit Primary zu arbeiten solange es dort lösbar ist.
Als erstes Projekt hattte ich mich ja bereits an einen Router gemacht und soweit auch - nach einigen Anfangsschwierigkeiten - mit Hilfe von herw gelöst.
Mein zweites Vorhaben war da schon komplizierter.
Ich möchte vier Oscis in einem Mix in der Lautstärke regeln.
Aufgabe ist es, dass sich die Lautstärken der einzelnen Oscis beim Mixing so beeinflußen, dass das Ausgangslevel immer gleichgroß ist.
Allerdings immer nur so groß wie das größte eingestellte Level bei einem der vier Eingänge.
Folgende Überlegung habe ich dazu angestellt:
Zuerst musste ich jeden Eingang mit jedem vergleichen, um den größten Levelwert der einzelnen Eingänge zu ermitteln.
Ist der größte Eingang ermittelt wird der aktuelle Levelwert zu einem Addierer weitergeleitet ansonsten wird null geschickt.
Damit wird immer nur der höchste Levelwert in den Addierer geschickt.
Um nun prozentual das Gesamtlevel runterzusetzen musste ich das höchste Level noch durch das Gesamtlevel aller vier Eingangswerte teilen.
Es ergaben sich leider noch 2 Probleme:
1. Wenn 2 Eingänge den gleichen Wert haben und zugleich auch das höchste Level beschreiben werden beide Werte an den Addierer geschickt, was beim Regeln einen kurzen Lautstärkesprung erwirkte.
Das habe ich gefixt in dem ich versucht habe Gleichheit so gut wie auszuschließen.
Als Lösung dafür habe ich zu jedem Eingang einfach 0.0001.... 0.0002 ... usw. dazu addiert und am Ende wieder abgezogen.
Es ist realtiv unwahrscheinlich, dass es dann noch zur Gleichheit kommt.
2. Wenn alle Eingangswerte auf null gedreht waren ergab es beim ermitteln der Gesamtlautstärke am Ende der Kette ein Division by Zero Fehler, was ja auch logisch ist, wenn mann 0 durch 0 teilt ^^
Es mussste also noch ein Fix her, der bei null aller addierten Eingänge einfach eine 1 rausschickt und 0 durch 1 ergibt 0 und keinen Fehler.

Den Level Compensator - wie ich ihn nenne - habe ich mal in einem kleinen Osci-Mixer Beispiel angehangen um mal eure Meinung dazu zu hören, ob und was man noch alles verbessern kann.
Sicherlich sind viele Sachen umständlicher als nötig - Kritik ist also angebracht!
Übrigens: die hörbare Levelkompensation ist wieder ein anderes Thema.
Ein Rechteck klingt nunmal deutlich lauter als ein Sinus.
Meine Lösung bezieht sich hier nur auf mathematische Bedingungen.
Ich würde mich über den ein oder anderen Kommentar freuen.
