Jump to content


  • Content count

  • Joined

  • Last visited

  • Days Won


SME last won the day on September 17

SME had the most liked content!

Community Reputation

284 Excellent

About SME

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

912 profile views
  1. SME

    The Bass EQ for Movies Thread

    Zero headroom? That's not good because it implies the processing is using integers rather than fixed or floating point. This means that in addition to the potential for internal clipping, precision problems are likely to arise for low frequency filters, particularly below 20 Hz. How bad it is depends on whether it's processing with 16-bit or 32-bit integers. I'd guess that 32-bit integers might do OK except for the very low frequencies but careful testing is advised. With 16-bit integers, the results are likely to be complete garbage for ULF filters. I would not advise using ffmpeg for either analysis or processing unless you can figure out a way to force it to use floating point instead of integer processing. Even then, I'd want to know whether it applies any kind of dithering when converting from float back to integer. This is probably a pretty minor concern if the output format uses at least 24-bits but for 16-bit output, dithering is crucial to avoid raising the quantization noise floor too much, degrading sound quality particularly in quiet passages. While applying some gain before and after is a feasible work-around, you effectively give up signal-to-noise ratio in the process. A reduction of -10 dB is basically equivalent to giving up 1.66 bits of information per sample. At least reducing gain beforehand makes clip detection possible. Without upstream gain reduction, it's impossible to tell whether the clipping occurred during the processing or was already present in the original track. This fact is irrelevant to processing with ffmpeg because the clipping occurs within ffmpeg itself. This is a potential issue with any DSP; however, the vast majority of competently designed DSPs do processing using fixed or floating point rather than integers and have substantial internal headroom available.
  2. SME

    The Bass EQ for Movies Thread

    If it were me, I would probably study the source code more carefully to try to figure out what it will do, but a quick test would be to try a pair of filters that cancel each other, for example: Low Shelf gain=+X; Low Shelf gain=-X at a common frequency, where the X is some relatively big number that will cause clipping depending on how much internal headroom the processor has. After running a track through the pair of filters, the input and output should be very nearly identical unless clipping or severe precision loss occurred. If the internal processing is floating point, then internal headroom and precision should be very high.
  3. I don't have confirmation of this, but I believe that many Disney and Skywalker Sound mixes in general have more mid-range and less bass than typical cinema content. I believe this is actually a good thing, even though it may reduce apparent loudness and/or dynamics compared to most other mixes. These mixes are likely to sound better on the vast majority of audio system out there including systems optimized for music playback. However, the response of different home systems varies a lot, and the variance is not necessarily any better for "full blown home theaters" vs. TVs and hand-held devices. For example, a lot of auto-EQ calibrate to targets that are bass deficient, IMO. If the Disney/Skywalker Sound movies sound whimpy, even after adjusting the master volume up, it may be in part because the playback system is calibrated to a bass deficient target. Cinemas are also bass deficient because the lower part of the X-curve is flat, whereas a natural in-room response from an anechoic flat speaker typically rises toward the bass in the bottom. Cinemas are also treble deficient because of the steep -3 dB/octave roll-off in the upper part X-curve vs. between 0 and 1 dB/octave with an anechoic flat speaker. I personally find most of the Disney/Skywalker soundtracks to be quite satisfying on my system, which has a substantial "house curve", consistent with a flat anechoic response. I do wish the tracks were more consistent though. Even though most of the Disney/Skywalker stuff has better balance between bass, mids, and treble than typical cinema tracks, the balance within each region is often weird. A lot of this probably reflects the limits of existing calibration technology, which is an area I'd like to see improvement. While most rooms exhibit fairly similar in-room response characteristics when using anechoic flat speakers, the differences are enough that calibrating to the same in-room target in different rooms won't lead to consistent sound. In the long run, it would be good to see the X-curve standard for cinema and dub stages go away to be replaced by a truly accurate calibration standard. This would likely eliminate one of the biggest differences between cinemas and home systems. Better yet, with all the production done on accurate systems, much less EQ would be applied to the mixes overall leading to a much better result overall on *all* systems *including cinemas*, where sound is often the worst. Indeed experiments suggest that cinemas sound better with anechoic flat speakers than with the X-curve calibration, *even when playing cinema content* mixed in X-curve calibrated dub stages. Yeah, really!
  4. SME

    The Bass EQ for Movies Thread

    Another issue that may be a lot more challenging to address is proper support for the lower-end MiniDSP devices, the 2x4 and 2x4 balanced, which use 56-bit fixed point processing instead of floating point. This causes errors due to precision loss below 20-30 Hz, which become worse with decreasing frequency. These errors can be substantial even when using the MiniDSP in the mode that is optimized for low frequencies, without which any kind of ULF EQ is pretty much useless. I got bit by this problem pretty hard back when I used a MiniDSP 2x4 for in-room sub EQ. The errors are not small. Even with a floating point implementation, the precision of the floats may matter. (I haven't thoroughly tested it.) Processing the audio in 32-bit float format should be good enough, but the biquad coefficients and temporary variables may need to be double precision for sufficient ULF accuracy. My implementation does this. I don't know if the floating point MiniDSP units represent the biquad coefficients and temp variables as 64-bit or not. Likewise, I don't know how much precision the fixed point MiniDSP units use to represent the biquad coefficients. These are details that may need to ascertained by reverse engineering in order make tools like beqdesigner as accurate as possible. What about DSP built into amps? It's the same story there too, and each device may behave differently. (This is probably part of the reason many amps don't allow filters below 20 Hz.) These issues don't just affect beqdesigner but affect implementation of the BEQs posted in this thread too. It's just that the independent channel BEQs are designed to be implemented upstream of bass-management, which limits the devices that can be used to apply them to devices that probably have at least 32-bit float precision. Along these lines, it would probably be good to investigate ffmpeg to understand how it will process biquads. I took a look just now. It appears that the internal implementation supports 16-bit and 32-bit integers along with 32-bit and 64-bit float with coefficients always being represented using 64-bit float. The integer formats don't offer any headroom, and because each biquad is processed separately, clipping will occur immediately if any one biquad pushes the signal above full-scale, even if this excursion would have been canceled out by a later biquad. As such, it is crucial that ffmpeg be used in such a way that it uses floating processing internally, and of course, the result will only be accurate for the highest precision floating point DSPs.
  5. SME

    The Bass EQ for Movies Thread

    So AIUI, if one is doing a multichannel BEQ there's currently no way to generate a graph showing the bass-managed result. Doing so requires re-analyzing the track, just like calculating headroom limitations. One can of course make some assumptions and calculate an estimate of the bass-managed result, but it won't match the real thing which requires a longer run. I didn't see anything suitable for streamed processing with biquads in scipy.signal but I may have not looked closely enough. If you're already requiring ffmpeg for extraction, then it makes sense to try it for processing. Hopefully it does the job well.
  6. SME

    The Bass EQ for Movies Thread

    What you describe could be done by import/export of raw PvA data, which should be quite easy to implement. We'd also need a place on-line to host exported data so that people could enjoy the benefits you describe. At the same time, processing is still necessary in order to support key features including headroom/clipping analysis and independent channel BEQ. It does appear that ffmpeg supports generic biquads, so that is an option. However because processing is needed for "internal use" in addition to the use case of processing .mkvs, using ffmpeg may be a bit clumsy. I don't know the program well enough to say for sure. What I do know is that one probably wants the processing to support streaming, and it should be as fast as possible including using multiple CPU cores. I would suggest a simple multi-process architecture using UNIX sockets, but this thing has to run on Windows. As such, code to support the Windowsy methods for inter-process communication would have to be written as well. If there is interest, I'm willing to contribute my C/Python code to do stream processing of biquads along with a simple makefile for builds on UNIX. For Windows, someone else will have to step in, and whoever builds the Windows binary release will have to have a Windows C compiler tool-chain. If asked, I would write code for the multi-process streaming processor using UNIX sockets as well, but I don't think it would work on Windows. Edit: Actually, I think I could make a version that'll run multi-core just using the standard Python multi-threading support. It should work fine cross-platform.
  7. SME

    The Bass EQ for Movies Thread

    Forgive me if this doesn't make sense as I haven't looked at the code yet, but ... Isn't signal processing already done? How else does one preview the effect of applying filters? Otherwise, it's pretty easy. The main issue is that pure Python code for biquad processing will be very slow without help from an external library or module. I have about 40 lines of C code (including ".h" header) which does the job and can be loaded in a Python program using cffi. The "hard" part is the housekeeping required to ensure the C module gets built or distributed as needed for different platforms. Technically, this only works if the EQ is the same on all channels. Even then, there's no way to know for certain whether the EQs will cause a signal that's worse than the usual worst-case scenario (i.e. full-scale on one channel or all channels simultaneously), which may cause many systems to clip downstream. Also note that distributing graphs for each channel separately does not allow for different EQ on different channels because of phase effects. Edit: I see that the frequency response of the biquad is calculated using scipy.signal.freqz() which evaluates the transfer function of a biquad filter but is not suitable for actually applying the filter to a stream. ... With that in mind, the beqdesigner probably does not handle filters on separate channels correctly because, related to my note above, the only way to compute the combined PvA is by actually applying filters to each stream, summing the outputs, and applying the PvA analysis to the result. That's because the phases won't necessarily match between channels at any given time. This is actually a big problem because to do it "right", the entire soundtrack essentially has to be reprocessed each time an adjustment is made to the EQ for a channel. I think a re-analysis must also be performed to compute peak levels on each channel and for the combination to check for clipping potential. I believe these re-analyses are among the most time consuming part of @maxmercy's current process.
  8. SME

    The Bass EQ for Movies Thread

    So I see that BEQ has suddenly taken off on AVSForum, which appears to have partly inspired @3ll3d00d's designer software. These are very positive developments. However, I'm a bit disappointed to see that the BEQs posted to AVSForum are intended to be applied to all channels, and there appears to be little if any post-BEQ QC performed. Instead, most of these seem to involve EQing the PvA to flat and calling it enough. I even see people arguing that the quality of a BEQ should be judged "objectively" by how smooth or flat the resulting PvA is. Ugh! I fear many of these BEQs may be doing more harm than good to the track. As we know very well here, a PvA is not a reliable predictor of perceived tonal balance on a track. It's certainly informative, but is nowhere near definitive. There's really no way to know how something sounds without listening to it on a good "reference" system and making a subjective judgment. Undoubtedly, this is complicated by the facts that personal preferences vary and that it is not yet known how to calibrate different bass systems to sound exactly the same, but I don't know of a better way to deal with the problem. It's probably perfectly OK if there are multiple BEQs out there. Different people will have different insight and of course will hear different things. FWIW, I have a pretty aggressive house curve on my system which arises from my novel calibration approach based on the concept of apparent power. Curiously however, my approach leads me to a curve that tops out around 20 Hz and is somewhat diminished (by a few dB) below there. Furthermore, I've noticed that soundtracks I like also frequently have a bit less ULF than 20-40 Hz bass. They don't have a steep shelf or HPF but often they don't push levels below 20-40 Hz that much. I think @maxmercy gets this right by looking at each channel and trying to ascertain what filter/filters were used rather than just making the PvA look pretty and listening to the final result. I believe it makes all the difference. All the same, it might not matter much for most people, especially those using Crowsons. I doubt very many bass systems out there are particularly balanced, including those with very high output capability. If one's sound already leans heavily in certain directions (such as ULF over mid-bass or vibration over acoustic) then the nuances of better quality BEQ quality may be mostly missed. The ability to send a lot more content to the Crowsons may be "good enough" for most people. P.S. I expect to evaluate @maxmercy's "Ready Player One" BEQ hopefully this weekend. It looks like one I will enjoy. :)
  9. I just watched "Blade Runner: 2049" tonight. The movie dialog seemed a bit louder (2 dB?) than average, so early on, I turned it down to "-8" instead of the typical "-5 to -6". No adjustments were made for the music vs. effects. This one definitely could have used a bit more mid-range, like many cinema tracks. The bass was just off the charts LOUD, like sustained square waves from 16 Hz up. The chest throbbing on the low notes was intense. Unfortunately, the house noises were also rather severe. I will say that while I appreciate the score's tribute to the original, the original Vangelis score was *way* better. This movie was also quite good, but not as good as the original. Indeed, even though the surround and Atmos effects were nice, I think the soundtrack of the original (albeit "Final Cut" remix) was better and more immersive.
  10. SME

    Anyone going to RMAF 2018?

    Anyone going to Rocky Mountain Audio Festival 2018 in Denver? If not, I understand. Similar to last year, it doesn't look like any of the "cool kids" will be there like JTR, Seaton, etc. It makes me wonder if a bunch of vendors complained about being upstaged by those few vendors whose speakers could actually produce bass and got them banned from the show. Nevertheless, I do live very close by if anyone is curious and is interested in a demo of my novel in-room EQ optimization technology. :)
  11. SME

    Paradigm Persona Sub

    To the OP, if the very small size is a *hard* requirement due to limited space and/or spousal acceptance factor, then subs like the JL e112s might be OK. However, if you can be flexible, I highly recommend looking at a somewhat larger option from one of the makers suggested by @dgage, especially given your desire to use them for home theater. IMO, it takes *a lot of sub* to get to the point that they are overkill for movie soundtracks. For comparison, I have four 21" drivers in two DIY cabinets that are quite small (approximately 24"x28"x32" each) relative to the driver size, powered by 12 kW total. These subs were very expensive, despite being DIY, but the cost was necessary to get the most bass I could from the space I had available. They handle content above ~16 Hz very well. Although, I wouldn't want any less. Below 16 Hz I have EQ boost to get them flat to 6 Hz, and while they do produce significant ULF, I do overload the amps on a few big effects. Of course the fact that my room is open to the rest of the house is a big factor. For comparison, one of my 21s is probably similar in deep bass capability to 3 of the JLs. So I have the equivalent of 12 JL E112s in my room. If you start with two and decide you want more, you may end up spending a lot more money than if you'd started with a different product. It's something to think about.
  12. SME

    Paradigm Persona Sub

    I would argue that any sub cabinet with substantial depth and a front facing will have the problems you describe. Don't forget that the wall behind a sub acts like a mirror. There will be a virtual image of a front firing sub facing the other direction on the "other side" of the wall. If the cabinet is D.O. instead with the second driver firing into the wall, the situation is likely to be improved on net. Of course it's better still to place D.O. cabs sideways as you say, which is what I'm doing with my 2 x 2 D.O. x 21"s. Although, the inside drivers due fire into my rack cabinets (~7" clearance), it's not a big deal at all. The biggest issue I have is that the rack cabinet panels resonate around 160 Hz, but it's not hard to notch out that frequency in the subs and have the mains fill-in. I also disagree that these kinds of problems can't be fixed with DSP. However the trouble is that it's hard to see what needs to be fixed by looking at the measurements. Like the 160 Hz ringing is not obvious looking at standard measurements, but when I apply my novel analysis method, it sticks out like a sore thumb. The problem can be easily verified by playing a sine tones or by just tapping the wall of the cabinet. I look forward to checking out Brandon's setup when I am able to get over there. I'm sure it's even more exciting now with the 4367s and Skhorn. Unless you can use lighter weight (i.e. Nd) drivers, I doubt a D.O. offering makes much sense for you. My 21"s were "only" ~45 lbs, so the cabinets probably came in around 220 lbs fully loaded, which was still enough that I opted to install the drivers only after I moved the cabinets into the listening room.
  13. SME

    Paradigm Persona Sub

    The Iron Law as it's stated traditionally doesn't take into account motor force. Higher motor force can overcome small box limitations, up to a point at which increasing motor force becomes impractical and/or too expensive. On the other hand, I don't find "9.2-lb (4.16 kg) hard ferrite magnet / motor structure" to be a particularly impressive figure. If they used 9.2 lbs of Nd then maybe there's something to talk about. A more remarkable spec is the voice coil diameter: "1-1/2" (38mm) four-layer long-excursion voice coils". Like wow! I think my compression drivers (tweeters) have 1.7" diameter voice coils. I wonder how they stay cool with ~300W each?
  14. SME

    Ricci's Skhorn Subwoofer & Files

    I would add that the order of low pass / high pass filter at a XO isn't too important as long as they aren't too extreme. The real problem with XOs is that the actual slopes you end up with never match any particular ideal. For example, the Linkwitz Riley (LR) crossovers are quite good if the two sources are flat and phase-matched throughout the crossover region, but if one or both has any natural roll-off, the XO is not LR anymore. The phases no longer match and one ends up with interference effects throughout the XO region and less output overall across the region. Optimizing the XO can be a kind of dark art. Setting sub delay is part of this, but delay can only fix the phase mis-match across different frequencies "on-average". There will still be phase mis-match and a deficiency of energy. A lot of systems would probably benefit from some low/moderate Q boost centered near the XO frequency, but getting it right is hard.
  15. SME

    The Bass EQ for Movies Thread

    All ya physicsy people talking about space ships and stuff are totally forgetting about The Force! Edit: Hey, it worked for Leia.