Jump to content


  • Posts

  • Joined

  • Last visited

  • Days Won


Posts posted by 3ll3d00d

  1. I think I've worked out the incantation required to get ffmpeg to apply filters to individual channels so was thinking about how to test whether it does this correctly (re the concerns mentioned earlier about clipping). Any suggestions on what a simple, easily repeatable, test would be for this? i.e. generate a specific signal, apply some filter, output should be x.

  2. 26 minutes ago, Kvalsvoll said:

    I may be the only one trying to run beqdesigner on linux, so it's like you did this for me, and I feel obliged to test it. I will see if I get the motivation to give it another try, requires some effort to upgrade to the right version of everything, including the right python version.

    I will report back when I have tried it, and thanks.

    this is built with pyinstaller so it should just mean download it and run it, nothing else required at all (except for the only known external dependency, i.e. libsndfile)

    all my linux boxes are configured the same way though so hard for me to tell if it works in other situations, could spin up a VM I guess...

  3. 52 minutes ago, Kvalsvoll said:

    There is no dsp available on the computer. But that is possible to fix, this is a linux machine running ubuntu and kodi, it would be difficult to implement at the time it was built, but there may be options available now.

    I haven't tried it myself but https://github.com/bmc0/dsp/wiki/System-Wide-DSP-Guide gives an example of how to use LADSPA for system wide dsp. It looks like there is a script for converting REW filters into a format LADSPA can use too so that might make it quite easy. Another (not free) option would be jriver as their linux build now has video support.

  4. There seems to be some confusion about what the app actually is at this point in time so let me clarify.

    It's an interactive *per channel* minimum phase filter designer with the tools required to quickly and easily work with either mono bass managed tracks or multichannel tracks, i.e. designing pre or post BM BEQ filters.

    Interactive means it must be quick hence the filter view is based on the transfer functions. Obviously this wouldn't work if we were trying to combine channels but we're not (except when extracting the source track which is pre filter) so this is fine. 

    A post filter clipping check is something I am aware of and had logged it at https://github.com/3ll3d00d/beqdesigner/issues/19 a while ago. This isn't hard to implement (both sox and ffmpeg can apply biquads) so it's just a question of time and desire to implement the feature. One could also implement this in python using scipy or there are other python libs (with an underlying C impl, e.g. http://ajaxsoundstudio.com/pyodoc/) that could also be used if scipy is too slow. Having said that I would have thought that would be something that happens relatively infrequently as a final check so working with existing cli tools seems fine to me and would be quick and easy to implement.

    @Kvalsvoll the bit I don't get is why you want to remux that back into the original track. If you're playing an mkv then you're already on a computer that can do the filtering in real time so why would you want to alter the source itself? 

    • Like 1
  5. 6 hours ago, Kvalsvoll said:

    Still unable to Add signal, but that is not really necessary now.

    I don't know what this could be, you can go to Help > Show Logs (or press Ctrl+L), put it in debug and then repeat the activity to see if that tells you anything else


    6 hours ago, Kvalsvoll said:

    Some cosmetics - graph display gets corrupted by legend, too few colors on graph signals.

    I'm not sure what to do about the colour scheme, I've used the speclab style so far simply because it is what people are familiar with but this doesn't work for many signals (not enough shades and they're too close together). 

    Note the controls in the bottom right of the main window let you turn the legend off if you prefer and choose which signals and/or filters are actually displayed.


    6 hours ago, Kvalsvoll said:

    Functionality - nest step could be to implement signal processing to apply the filters to the sound track. Then re-mux the beq filtered back into the .mkv.

    Interesting idea, noted in https://github.com/3ll3d00d/beqdesigner/issues/38

  6. 4 hours ago, Kvalsvoll said:

    Seems to work now, but I do not see the individual 8 signals

    if you uncheck the "mix to mono" checkbox and click extract then once it finishes, the button should change to "Create Signals" and the field at the bottom will be enabled. Put something in here and click "create signals".


    It should then automatically close the dialog and add each channel as a separate signal using the channel names (taken from https://trac.ffmpeg.org/wiki/AudioChannelManipulation#Layouts)


    If this doesn't happen then feel free to log something with appropriate steps to reproduce/pics/supporting files over at https://github.com/3ll3d00d/beqdesigner/issues

    similarly if you think of any interesting features then do also feel free to suggest them, I'll probably work on this for a little while longer at least.

    • Like 1
  7. There's a new release up at https://github.com/3ll3d00d/beqdesigner/releases/tag/0.0.2-beta.3 which should be sufficient for BEQ pre BM in that it can extract multichannel wavs and link multiple signals together against the same filter. This means you can do something like 

    * extract an 8 channel wav from a 7.1 film

    * load all 8 signals in BEQ (they will be named xyz_FL xyz_FR and so on after the channel layout)

    * link FL, FR, FC together under 1 filter, LFE on another and the surrounds on another

    * tweak each filter independently

    * save the result to a shareable (gzipped json) format that anyone else can load

    * save pngs and/or graph the difference between signals

    This should work on linux without the hack above as I removed the offending library. I haven't had a chance to test this yet though.

    • Like 1
  8. 40 minutes ago, Kvalsvoll said:

    Does not run on linux - on my system, for now. Which means there is some work to get it up and running, perhaps I will look into it later. Because the idea of this app is great, it can actually end up as a completely automated bass-eq for any movie at click of a button.

    git clone git@github.com:3ll3d00d/beqdesigner.git
    cd beqdesigner
    git checkout 0.0.2-beta.2
    python3 -m venv beq
    . beq/bin/activate
    pip install numpy colorcet scipy qtpy qtawesome pyqt5 matplotlib ffmpeg-python soundfile resampy
    cd src/main/python
    # you also need ffmpeg and libsndfile1 installed, e.g.
    sudo apt install ffmpeg libsndfile1 

    then open mpl.py in a text editor and change the following

    for k, v in cc.cm_n.items():
    for k, v in cc.cm.items():

    (this is due to some lib having an older version in pypi vs conda, it is fixed in next release)


    python3 app.py

    and you should find it fires up

    I'll get round to packaging it properly for linux soon enough

    next release will properly support pre BM BEQ btw, will publish that tomorrow hopefully

    I run Debian Testing here and it seems ok, haven't tested it extensively though so let me know if problems, will get round to testing it properly on linux at some point. The same approach has also been used on the mac too btw.

    • Like 3
  9. 28 minutes ago, maxmercy said:

    That looks like a terrific tool, can potentially save many steps in my BEQ process.  I will have to check it out.  Individual channels can have individual corrections?


    atm there is one filter which is applied to all loaded signals, extending this so you can map different filters to different signals (channels) is high on the list of things to do. It needs to come after being able to load/save filter sets & some tweaking to the way graphs are created though.

    • Like 1
  10. FWIW I decided to knock up an little ui to make experimenting with BEQ easier (so it can extract audio using ffmpeg & show the results of adding assorted filters, comparing tracks) hence it removes the need to faff around with speclab). An early release (windows only atm as I'm away from my linux boxes) is available at https://github.com/3ll3d00d/beqdesigner/releases/tag/0.0.1-alpha.2

    Here's a pick to illustrate https://imgur.com/a/KgfaxOJ

    This is still a fairly early build (and the exe is a bit massive) but it seems to be usable so thought I'd share it. The readme at github has some of the things left to do and some bugs. One thing not mentioned there is being able to apply different filter sets to different signals. 

    EDIT: I replaced the exe with something that should display errors if you start it from a console (as someone on avs reported it didn't work for them)

    EDIT2: possible workaround in https://www.avsforum.com/forum/113-subwoofers-bass-transducers/2995212-bass-eq-fil-turd-movies.html#post56692822

    • Like 3
  11. 4 hours ago, maxmercy said:

    Can anyone contact the JRiver developers to ensure that the Q=Slope?  Using slope values for Q would result in a VERY different correction.  If there is a difference, I'll edit the BEQ post above to include both Q and Slope values.


    I have raised this on a few occasions. There was some interest shown at the start of the current release cycle in doing some work on their DSP studio but no sign of action so far (and they usually add features tbh rather than fix things like this)

  12. Yes that is part of the audiophile style marketing they use. You will also find not many measurements are available to verify what it is actually doing and how well it performs. FWIW I think https://patents.google.com/patent/US8094826?oq=8094826 is their patent, it seems pretty generic to me though.

    To be fair I have listened to their high end kit and it is good so there some substance there, it isn't just audiophile blather.



  13. On 15/01/2018 at 11:55 PM, SME said:

    And for me and my "good" system, I still struggle with a lot of dialog.  On paper, my hearing is very good, but my ears are anything but golden when it comes to discerning what people are saying.  Something I've noticed is that I often don't notice when I fail to hear dialog.  It's like that with other sounds too.  If it's unintelligible, I simply fail to become conscious of it.  Even if I am conscious of it, I'm having to exert a lot more effort to comprehend it.  The experience is not as natural.  It's similar to how having to read subtitles diverts ones attention from what's happening on screen.  (Though I still usually watch foreign films subbed because the dubbed voice actors are usually so terrible.)

    Do you find this in other systems or just your own system? 

  14. 2 hours ago, SME said:

    As a slight alternative to the approach you took, you may want to try doing a +/- 30 degree (listening window) spatial average of the anechoic measurements EQing that to be flat instead.  It's hard for me to tell by looking at your plots how much the high frequency response shape varies with angle.  With my SEOS-15, I see up to 1 dB of variation in the response shapes, up to 10 kHz or so.  (The variation is a bit higher above 10 kHz.)  Perhaps the SEOS-10 is better behaved in that respect.

    I preferred the sound from flattening the listening window average response instead of the on-axis response.  I also noticed that Harman appears to calibrate their active speakers for a flat listening window response instead of flat on-axis response.

    One crucial detail I neglected to mention or take into account here is that I generally avoid evaluating in-room response without taking averages of measurements in multiple locations.

    In the case of the 500-900 Hz response, if you took measurements across a +/- 30 degree listening window and weighted them for relative distance before averaging, you might see more  slope there after all.  I just took a look at my own crop of measurements and noticed that in areas of changing directivity, both on-axis and MLP measurements stay somewhat flatter than the listening window average measurements.

    As for the bass in the 125-250 Hz range, your ears are definitely the final arbiter on any calibration decision.  It's possible that the bloat you are hearing is caused by just one bad resonance.  Such resonances can be difficult or impossible to see in a measurement at a single location because they are hard to distinguish from peaks and dips caused by interference.  However, if you take measurements in multiple locations and spatially average them, problematic resonances are more likely to stand out.  If you can suppress the bad resonance, you may be able to boost the output in that frequency range a lot more without causing bloat.  If it is a room problem, then the screen wall may not fix the problem but it probably can't hurt.

    Thanks for the comments, it's interesting to hear how other people approach this.

    IIRC the correction was based on an average of 0-45 degrees (though looking at the data again, I might be misremembering that...). I'm still not entirely happy with the 100-400Hz range yet but haven't had the time (or inclination) to properly revisit it. My current setup is really quite time consuming to work through the various filters and somewhat prone to manual error so I've left it as good enough for a while now. I would like to work out a better strategy for that mid bass area at some point though.

    FWIW I posted some more graphs in http://www.avsforum.com/forum/155-diy-speakers-subs/2188265-attempting-3way-seos10.html#post55396722 which show the directivity & power response (with 0 and 15 degree reference angles) of that quasi anechoic data with the correction filter applied. The main thing that stands out to me from this data is that a 1-1.5dB hump develops from 1.5-4.5kHz as you move from 0-30 degrees so perhaps the filter should give a bit more weight to taking that down. 



  15. 11 hours ago, SME said:

    First of all, the pseudo-anechoic measurements show a substantial dip of around -1.5 dB between 5 and 10 kHz.  Even though 1.5 dB doesn't sound like much, such a dip over a full octave will have a pretty big audible impact.  I'm not surprised that you reported that the re-EQ sounded more veiled and distant than you would prefer.  Have you considered EQing to try to lift that dip a bit?  If not, you may want to try using a bit less attenuation on the second HF shelf with my re-EQ.

    yes that's what I meant by "an anechoic correction", i.e. the magnitude response correction switches to one based on those quasi anechoic measurements of the speaker. Here's a pic to illustrate


    red is the on axis response, green is the filter based on that response and blue is the result of applying that filter

    11 hours ago, SME said:

    Second of all, if the speakers were producing flat direct sound in the room, I'd expect to see a slight downward slope in the in-room response over the 500-1500 Hz range, where the horizontal pattern width changes.  However, you indicated that your in-room target is roughly flat from 125-900 Hz.  I can't say what the precise slope should be, but as a rough guess it'd probably be somewhere between -1 to -2 dB/octave.  I would also expect to see a slight in-room response dip around the crossover point at 1200 Hz where the power response reaches a minimum, and maybe something very slight at 300 Hz.  Overall, my guess is that the speakers sound a bit thin without that slope, and any upper-frequency issues in the soundtracks you listen to may be more audible and irritating than on an "average" system.

    I don't find that, it sounds quite neutral and well balanced to me. tbh generally speaking I don't find upper frequencies to be an issue with this setup, the system sounds quite smooth to me. My old (commercial) speakers certainly needed shelving down in the same room to avoid harshness and fatigue but these don't at all. 


    11 hours ago, SME said:

    Lastly, you may want to try a bit more bass in the 125-250 Hz range, at least for music.  My current bass boost shelf is centered around 150 Hz, which is based on my use of the Revel Salon 2 as a model reference.  This sounds very good in the bass with the vast majority of my music and delivers much better punch and chest slam than a boost at the lower frequencies.  However, the trade-off is that many movies and some TV soundtracks will have more bass bloat than if the shelf is lower.

    I find that sort of curve comes out a bit too fat in my room for both music and films. My room does have produce some bloat over time in that range though atm so that may be the root cause of that one. If so that may change if/when I build my screen wall later in the year.

    11 hours ago, SME said:

    While it may not have been your intention, your system response appears to provide more of a compromise between for music and for cinema tracks (lacking re-EQ)

    It's certainly true that I no longer run different filters for music and films as I find the same setup works well for both. Good job really as I I definitely don't have the time (or inclination/knowledge) to attempt to re-eq tracks myself!  

  16. I wouldn't watch the whole film again, don't mind trying some specific scenes though.

    >> Did you implement the JRiver coefficients that you posted here (what I'm calling "v1")?  Or did you calculate new JRiver coefficients, based the updated "v2" config I posted afterwards?

    the v1 ones

    >> What playback level (approximately) did you use to evaluate?


    >> How are your speakers calibrated?  Do you use Acourate?  And if so, what kind of target curve do you use for the high frequencies?  Or did you use outdoor / anechoic polar response measurements?

    current target rises ~5dB from 125Hz down to 25Hz and is basically flat above that, the correction switches at about 900Hz to an anechoic only correction (based on measurements taken outdoor from 0-60 degrees). The speaker itself is maybe 1dB down from 1-16kHz on axis, graphs in http://www.avsforum.com/forum/155-diy-speakers-subs/2188265-attempting-3way-seos10.html#post54724444


  17. I gave the correction a try on a few scenes, bit of a mixed bag tbh. Effects noticed included;

    Voices in some scenes were more natural  (less full/warm) though were also less obviously the focus of the scene.

    Some scenes took on a certain hollowness/metallic tang which was similar to a sound ISTR from one particular EQ which went wrong and was doing something excessive around 1kHz. 

    Some scenes, which involved more ambient noise, were less engaging as if the track had receded into the distance.

    I tried ~4-5 scenes (a couple from the island stage, a couple from the later ww1 bit) and a few had fairly inconsequential differences, the 2 that stood out more were the scene in the castle when he tries to chat to the chemist (ambient voices as he walks up to her were receded, their voices were less pronounced but more natural) and the scene when the young diana is asking her mum to let her train and her mum is going on about moulding her out of clay (metallic tang).

    I'm afraid I couldn't trial this over a prolonged slice of film because I thought the film itself was borderline terrible which was a surprise given the reviews. I thought it had a bizarrely disjointed storyline that felt like they mashed 3 different films together and was at least 30mins too long. The love story angle was pretty sad too given the main character & the seriousness with which they played the film given the storyline was rather odd. 

  • Create New...