NM G2: Chamberlin Multimode-Filter

Dieses Thema im Forum "Modular" wurde erstellt von Tim Kleinert, 4. August 2015.

  1. hi,

    Hier ein DIY-Nachbau der Chamberlin filter topology als building block. Ist'n 12dB Multimode-filter. Ich find's ein faszinierendes Design in seiner Einfachheit. Trackt auch recht gut und ist erstaunlich stabil. War ursprünglich nur so'n persönliches proof-of-concept, aber finde den Klang viel interessanter als der vom G2 Multimode-filter-modul, drum dachte ich ich häng's hier rein. Frisst auch nicht sonderlich viel DSP.

    Hängt noch zu Demozwecken ein kleines Stepsequencer-Dingens dran damit man schonmal was hört.

    Die Schaltung ist gut beschriftet.

    cheers,
    t

    EDIT: Ist ebenfalls fähig zur Selbstoszillation bei max Reso. Kurz anpingen und man hat einen Sinus-Oszillator
     

    Anhänge:

  2. muelb

    muelb wexelwirkend

    Danke! Werde ihn heut Abend mal testen :D
     
  3. Addendum:
    Ich mag den Klang dieser Schaltung wirklich sehr, so hab' ich aus 2 kaskadierten Filterstufen noch 'ne 24dB Multimode-Version gebaut (Bandpass ist natürlich 12dB auf beiden Flanken). Hab' noch Resonanz-Gain-Compensation reingemacht, und den Resonanz-Regelbereich ganz minimal abgesenkt, um im allerhöchsten Cutoff-Bereich die (wirklich nur minimalen) Stabilitätsprobleme auszumerzen. Das Filter geht also nicht mehr in stehende Selbstoszillation wenn man es nur anpingt, aber kann trotzdem noch amtlich zwitschern. :twisted:

    DSP-Bedarf der Schaltung:
    8.6% cycles ( :shock: drecksbillig! :cool: )
    14.2% memory

    Ich find's wirklich faszinierend und beeindruckend, wie mit sowenig Rechenbedarf so ein gutes Digitalfilter (Klang, Stabilität, Tracking, Features) zustandekommt. Hal Chamberlin is the man! :nihao: Ist ja auch schliesslich so quasi ein "Urvater" von DSP.

    cheers,
    t
     

    Anhänge:

  4. Addendum 2: (sorry... :lol: )

    Leider kann ich obige Postings leider nicht mehr editieren (wieso eigentlich nicht? :? ), habe jedoch kleine Korrekturen an den Schaltungen anbringen müssen. Will sagen, die Resonanz braucht einen negativen Offset, um bei einem Regelwert von Null ganz weg zu sein. (Scheint eine Eigenheit dieses Designs zu sein.)

    Hier die neuen Versionen (einstufig 12dB und zweistufig 24dB).

    (Hab' dafür bei der 12dB-Version noch gain-compensation reingemacht.)

    cheers,
    t

    Und noch ein allerletzdes Addendum :lol: : Hab' gerade entdeckt dass diese Filter einiges an Übersteuerung vertragen. Klingt klasse. :cool:
     

    Anhänge:

  5. NicolasK

    NicolasK Tach

    Year! Du kannst es nicht lassen :mrgreen:

    Morgen mal ausprobieren.
     
  6. Naja, solange die G2 Demo noch läuft... :floet: :lol: ist doch cool zum rasch Zeug checken beim Selbststudium. :nihao:

    Hier noch eine allerletzte 12dB-Version mit allen Filtertypen (also auch Notch und Peak), plus noch 'ne Implementation einer zufälligen Entdeckung: Wenn ich den negativen Loopback vom zweiten Integrator langsam runterziehe, geht das Filter zunehmend in eine lustige Sättigung bis hin zu totalem Grunge. Frequenz- und Resonanzverhalten geht dabei zunehmend flöten, aber der Klang ist wirklich cool. Hab' noch die gain compensation entsprechend erweitert, damit der Ausgangspegel bei verschiedenen Reso- und "Grunge"-Settings einigermassen konstant ist.

    cheers,
    t
     

    Anhänge:

  7. ACA

    ACA bin angekommen

    Cool, die Filter werde ich demnächst ausprobieren.
     
  8. Schau an,

    Ich seh da kein Filtermodul? Das Lin/Expo Modul ist aus welchem Baustein?
    Muss mal mein grundlegendes Verständniss für Filter überdenken :roll:
     
  9. serge

    serge ||

    Das ist ja gerade der Witz, das in diesen Patches ein Filter aus vergleichsweise einfachen Bausteinen nachgebaut wird.

    Level Scaler.

    Damit bist Du nicht alleine, und mangels mathematischem Verständnis kann ich nur müde mutmaßen:
    Bei dem Chamberlin-Filter wird das zu filternde Signal durch zwei in Serie geschaltete Delays sehr kurz verzögert. Die Ausgänge beider Delay-Stufen sowie das zu filternde Signal selbst bilden – mit jeweils verschiedenen Pegeln – das Eingangssignal der Delay-Stufen, es gibt also zwei gestaffelte Rückkoppelungsschleifen. Der Ausgang des zweiten Delays führt das tiefpaßgefilterte Signal, der des ersten das bandpaßgefilterte, der der Mischstufe das hochpaßgefilterte. Ich vermute, dass Tim herausgefunden hat, dass das Mixer-Modul des Nord Modular G2 genau die – enorm kurze – Signalverzögerung erzeugt, die man für die Delays eines Chamberlin-Filters benötigt.

    Aber das sind wie gesagt nur Mutmaßungen eines Mathematikschwachen.

    Die Verständigeren unter uns finden hier exaktere Lektüre:
    http://ccrma.stanford.edu/~jos/svf/svf.pdf
    http://www.zhdk.ch/fileadmin/data_s.../Digital_Sound/Digital_Sound_Generation_2.pdf
    http://www.musicdsp.org/showone.php?id=142

    Der Rest inklusive meiner Wenigkeit wäre sicher dankbar, wenn Tim so nett wäre, uns die Funktionsweise des Patches zu erklären – ohne allzu schweren mathematischen Überbau.
     
  10. Gerne. :nihao: Unten im Anhang seht ihr das digitale Flussdiagramm. Keine Mathe dabei. :)

    Wie serge richtig erwähnt hat, kann man beim G2 sehr einfach sogenannte Integratoren (die [Z-1]-Feedbackschlaufen im Diagramm) u.A. mit gerückkoppelten Mixer-Modulen machen (gibt auch andere Optionen), da beim G2 die Outputs der Module logischerweise nach den Inputs gerechnet müssen, wodurch bei einer Rückkopplung eines Moduls mit sich selber automatisch ein Delay von einem Sample (eben das [Z-1]) entsteht. (Rückkopplung moduliert, entpuppt sich so ein Feedback als 6dB IIR-Tiefpassfilter.)

    Die Sigma-Stufen im Diagrann sind Summierer, und die (x)-Stufen Multiplikation. F(c) ist die linear skalierte Cutoff-Frequenz. Das LevelScaler-Modul mit 6dB Steigung dient daher als Exponentialfunktion im G2-Patch, damit man die gewohnte exponentielle Cutoff-Skalierung bekommt. Q(c) ist Resonanz. "hp", bp" und "lp" zeigen die Abgreifpunkte für die verschiedenen Filtermodi.

    Im Austausch mit fachkundigeren Leuten als meiner Wenigkeit hat sich ergeben, dass dieser Algorithmus eine elegante digitale Implementation einer State-Variable-Filterarchitektur ist.

    Um wirklich zu verstehen warum das Ganze funktioniert wie's tut, braucht man schon ein gerüttelt Mass an abstraktem Vorstellungsvermögen, da brauchte ich auch einen Moment. (Weil bei Digital ja alles "nacheinander" passieren muss, stelle ich mir das jeweils als abstrakten "Film" vor -so quasi "was passiert als Nächstes mit dem Sample?")

    Mich selber erstaunt bei diesem Design halt die Einfachheit (2 Additionen, 2 Subtraktionen, 3 Multiplikationen), das recht saubere Tracking (bis ca. 5kHz) und vorallem die Stabilität im Resonanzverhalten bei sehr hohen Cutoff- und Resonanz-Werten (immer ein Hauptproblem bei digitalen Filtern).

    cheers,
    t
     

    Anhänge:

  11. serge

    serge ||

    Klasse, vielen Dank – sowohl für den Patch als auch für die Erklärungen!
     
  12. muelb

    muelb wexelwirkend

    Habe es gestern mal ein wenig erforscht, ist ja irgendwie schon krass was man mit dem G2 alles nachbauen kann.

    Mal ne Dummie-Frage, was heisst eigentlich ein Filter trackt bis... Was ist Filter tracking?
     
  13. Mal salopp gesagt, erzeugt ein gutes Filter bei Resonanz einen Sinus oder was ähnliches einer bestimmten Frequenz. Wenn das Filter gut "trackt", kann man diesen Sinus tonal spielen, also als Sinusoszillator benutzen. Die durch Resonanz erzeugte Frequenz des Sinus entspricht dann optimalerweise der Skala der gespielten Noten. Bauart- oder programmiertechnisch bedingt, bricht das Filter aus der Skala nach oben oder unten aus und lässt sich daher nur über einen bestimmten Bereich tonal spielen, außerhalb kommt es zu Verstimmungen gegenüber der Referenzskala. Je größer dieser Bereich ist, z. B. über mehrere Oktaven, umso besser "trackt" das Filter. Das ist für bestimmte Anwendungen wichtig (tonales Spiel, Verwendung bei FM), je nach Einsatzzweck kann es aber auch egal oder sogar erwünscht sein, dass das nicht der Fall ist (als Effekt, gewünschte Disharmonien usw.).
     
  14. muelb

    muelb wexelwirkend

    Danke vielmals,

    ich stand auf dem Schlauch. Habe doch vor einigen Tagen eine Tubika (Ambika) gebaut und da bei den Voiceboards genau dieses Tracking abgestimmt :selfhammer:
     
  15. Navs

    Navs Tach

    Danke! :nihao:
     

Diese Seite empfehlen