help with decyphering effect

Discussion in 'Effects and the DSP' started by robert_, Dec 20, 2018.

  1. robert_

    robert_ New Member

    Joined:
    Dec 20, 2018
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    1
    Hi

    I got emu10k1 da code from dll extraction in which coefficients are all set to 0 and i don't know what a filter this code implement to find coefficients.
    My guess that it it first order low and high shelf and 2 second order band pass filters but they aren't look like standard iir implementation of these.

    So can you help me decipher this code so i could implement it on linux machine or maybe in kxdriver ?

    CODE:

    name "Equalizer4";
    copyright "Copyright 2005 Emu Systems Inc.";
    ; NOTE The present DSP microcode dump is protected by the
    ; license agreement bundled with the appropriate software
    ; package containing this microcode,
    ; regardless the particular copyright notice is present in the dump.

    engine "EMU10K1_A0";
    created "Fri Dec 18 17:40:16 2015 ";
    guid "5c779994-244c-4ee3-8850-8b3c13824334";
    ; Registers
    input in0, in1;
    output out0, out1;
    static dyn8002=0x0, dyn8003=0x0, dyn8004=0x0;
    static dyn8005=0x0, dyn8006=0x0, dyn8007=0x0;
    static dyn8008=0x0, dyn8009=0x0, dyn800a=0x0;
    static dyn800b=0x0, dyn800c=0x0, dyn800d=0x0;
    static dyn800e=0x0, dyn800f=0x0, dyn8010=0x0;
    static dyn8011=0x0, dyn8012=0x0, dyn8013=0x0;
    static dyn8014=0x0, dyn8015=0x0, dyn8016=0x0;
    static dyn8017=0x0, dyn8018=0x0, dyn8019=0x0;
    static dyn801a=0x0, dyn801b=0x0, dyn801c=0x0;
    temp tmp801d, tmp801e, tmp801f;
    temp tmp8020

    ; Code
    macs tmp801f, in0, 0x0, 0x0;
    macsn tmp801e, dyn8011, tmp801f, dyn8004;
    macs dyn8011, tmp801f, tmp801e, dyn8004;
    macs tmp801e, 0x0, tmp801e, dyn8002;
    macs tmp801e, tmp801e, tmp801f, dyn8003;
    macints tmp801e, 0x0, tmp801e, dyn8010;
    macsn tmp801d, dyn8013, tmp801e, dyn8007;
    macs dyn8013, tmp801e, tmp801d, dyn8007;
    macs tmp801d, 0x0, tmp801d, dyn8005;
    macs tmp801d, tmp801d, tmp801e, dyn8006;
    macints tmp8020, 0x0, tmp801d, dyn8010;
    macs tmp801d, dyn8017, tmp8020, dyn800b;
    macsn tmp801e, tmp8020, tmp801d, dyn800b;
    macs dyn8017, dyn8015, tmp801e, dyn800a;
    macsn dyn8015, tmp801e, dyn8017, dyn800a;
    macs tmp801d, 0x0, tmp801d, dyn8008;
    macs tmp801d, tmp801d, tmp8020, dyn8009;
    macints tmp801f, 0x0, tmp801d, dyn8010;
    macs tmp801d, dyn801b, tmp801f, dyn800f;
    macsn tmp801e, tmp801f, tmp801d, dyn800f;
    macs dyn801b, dyn8019, tmp801e, dyn800e;
    macsn dyn8019, tmp801e, dyn801b, dyn800e;
    macs tmp801d, 0x0, tmp801d, dyn800c;
    macs tmp801d, tmp801d, tmp801f, dyn800d;
    macints out0, 0x0, tmp801d, dyn8010;



    macs tmp801f, in1, 0x0, 0x0;
    macsn tmp801e, dyn8012, tmp801f, dyn8004;
    macs dyn8012, tmp801f, tmp801e, dyn8004;
    macs tmp801e, 0x0, tmp801e, dyn8002;
    macs tmp801e, tmp801e, tmp801f, dyn8003;
    macints tmp801e, 0x0, tmp801e, dyn8010;
    macsn tmp801d, dyn8014, tmp801e, dyn8007;
    macs dyn8014, tmp801e, tmp801d, dyn8007;
    macs tmp801d, 0x0, tmp801d, dyn8005;
    macs tmp801d, tmp801d, tmp801e, dyn8006;
    macints tmp8020, 0x0, tmp801d, dyn8010;
    macs tmp801d, dyn8018, tmp8020, dyn800b;
    macsn tmp801e, tmp8020, tmp801d, dyn800b;
    macs dyn8018, dyn8016, tmp801e, dyn800a;
    macsn dyn8016, tmp801e, dyn8018, dyn800a;
    macs tmp801d, 0x0, tmp801d, dyn8008;
    macs tmp801d, tmp801d, tmp8020, dyn8009;
    macints tmp801f, 0x0, tmp801d, dyn8010;
    macs tmp801d, dyn801c, tmp801f, dyn800f;
    macsn tmp801e, tmp801f, tmp801d, dyn800f;
    macs dyn801c, dyn801a, tmp801e, dyn800e;
    macsn dyn801a, tmp801e, dyn801c, dyn800e;
    macs tmp801d, 0x0, tmp801d, dyn800c;
    macs tmp801d, tmp801d, tmp801f, dyn800d;
    macints out1, 0x0, tmp801d, dyn8010;

    end

    Best Regards,
    Robert
     
  2. robert_

    robert_ New Member

    Joined:
    Dec 20, 2018
    Messages:
    2
    Likes Received:
    0
    Trophy Points:
    1
    First four instructions:

    macsn tmp801e, dyn8011, tmp801f, dyn8004;
    macs dyn8011, tmp801f, tmp801e, dyn8004;
    macs tmp801e, 0x0, tmp801e, dyn8002;
    macs tmp801e, tmp801e, tmp801f, dyn8003;


    converts to this calculations:
    t1 = dyn - in*c1
    dyn = in + t1*c1
    t2 = t1* c2
    out = t2 + in* c3

    So this is some kind of state variable filter which i;ve never seen
     

Share This Page

visited