qbxk has asked for the wisdom of the Perl Monks concerning the following question:

Anybody know of *anything*, perl or otherwise, that can handle EQF files that are output by saving the the EQ settings to a file in Winamp and XMMS. I only care about reading for now...

working on a poor mans audio processing tool chain here...


It's not what you look like, when you're doin' what you’re doin'.
It's what you’re doin' when you’re doin' what you look like you’re doin'!
     - Charles Wright & the Watts 103rd Street Rhythm Band, Express yourself

Replies are listed 'Best First'.
Re: OT: EQF File handling
by bart (Canon) on Nov 18, 2006 at 19:54 UTC
    I've taken a look at some EQF files that I made for the purpose. The format is apparently very simple:
    1. The file is 299 bytes long.
    2. It starts with a text header, which in my case, is 37 bytes long. It is, in double-quotish notation — note the control-Z character:
      Winamp EQ library file v1.1\cZ!--Entry1
    3. Next is a block of null bytes ("\0") up till the next, final part.
    4. The real data is stored in the last 11 bytes of the file: the last byte is for the general volume, the 10 bytes before that are for each of the 10 EQ controls, in ascending order: the first of these 10 for the deepest bass, the last one (right in front of the volume byte) is for the highest treble.
    5. The values are 0x20 in neutral position, and are reversed in value: 0x00 is maximum, 0x3F is minimum. So there are 31 positions below, and 31 32 levels above neutral.

    Do you know enough by this?

Re: OT: EQF File handling
by grep (Monsignor) on Nov 18, 2006 at 19:38 UTC
    Did you look at Winamp::Control and it's geteqdata method?

    If you did, you should mention that - If you didn't then please check CPAN first.

    If you are really interested in using the EQ file, have you looked at the file? Is it binary, XML or some other text based file?

    What other info do you have other than 'I want to do this'?

    grep
    XP matters not. Look at me. Judge me by my XP, do you?

      yeesh, everybody always wants to know what you're up to even when it's mildly embarrassing :p - and i don't think Winamp::Control is what i need. Any EQ board (even a physical one) would be sufficient for that portion of the job, winamp has the nice feature of being able to dump it's slider settings to a file, albeit unreadable (appears to be binary, ~300bytes)

      i have a dream, to play my freshly recorded audio in winamp, make my EQ decisions there, save the preset, run a magical perl script that parses that EQF file and processes the audio file to write those eq changes into it (possibly via a complex SoX command)

      this is a frequent activity for me. for this task, i'd prefer a minimum of GUIs (but i do want a gui to make the eq decisions, as above), and be mostly based on pipe driven commands


      It's not what you look like, when you're doin' what you’re doin'.
      It's what you’re doin' when you’re doin' what you look like you’re doin'!
           - Charles Wright & the Watts 103rd Street Rhythm Band, Express yourself
        Ok that sorta makes more sense (though I wonder why you want to mix EQ outside of your MultiTrack app).

        From what I read you should be able to use Winamp::Control to poll WinAmp's EQ and write that out any way you want. That sounds a lot easier than reverse engineering WinAmp's file format (well unless it's XML or other easily parsed format, but you still haven't told us what the EQF file looks like).

        Though I still wonder why you wouldn't do it in your multi-track recorder, IIRC all the ones (Cakewalk, SLab) I have used (although it's been several years) you could gang(?) the channels together to stereo output and adjust EQ from there.

        grep
        XP matters not. Look at me. Judge me by my XP, do you?

Re: OT: EQF File handling
by andyford (Curate) on Nov 19, 2006 at 11:36 UTC

    If you're using Linux, there are many good and free audio processing applications available.
    Might take a few minutes to compile and learn, but for an all-in-one yet not too complex solution to processing audio, I would recommend rezound.
    It takes LADSPA plugins, so you will have access to many types of equalizers to get as detailed with your EQing as you could want.
    You'll be working in a very nice GUI instead of struggling in a tiny Winamp window and only have to use one program.

    non-Perl: Andy Ford