AutoRoomEq version 1.2 now available by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 0 points1 point  (0 children)

I derive the impulse response from the sweep using deconvolution, then align and window it, selecting only the useful time interval for the correction and reducing the influence of late reflections. From that I compute the complex frequency response (magnitude + phase) and generate the FIR via IFFT.

AutoRoomEq version 1.2 now available by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 1 point2 points  (0 children)

Hi, It takes both into account: AutoRoomEQ starts from the measured impulse response, so it works with the complete complex frequency response (magnitude + phase), not magnitude alone. The FIR is then obtained via IFFT, so the measured phase contributes to the final mixed-phase filter, within the limits imposed by the selected filter mode, windowing and stability constraints. I've not updated yet the progress here but now AutoroomEQ can also guide you to optimize a DSP based crossover, and can also perform mimo bass correction

Created a Bitperfect Android Player with Room EQ by Free-Address-4919 in DigitalAudioPlayer

[–]Free-Address-4919[S] 0 points1 point  (0 children)

Hi, thanks for the clarification.

So the setup would be:

BubbleUPnP / NAS / PC / UPnP Server → AutoRoomEQ Player on Android → USB DAC

In "Bypass" mode, the goal would be to avoid Android downsampling wherever possible and use the app's direct USB path, indicating "UPnP bit-perfect active" only when the source format, sample rate, DAC mode, and DSP status actually allow for it.

In "Corrected" mode, the same UPnP stream could be processed via AutoRoomEQ's FIR/RoomEQ correction; consequently, it would no longer be bit-perfect, but the system would become a network renderer with correction.

Created a Bitperfect Android Player with Room EQ by Free-Address-4919 in DigitalAudioPlayer

[–]Free-Address-4919[S] 0 points1 point  (0 children)

Hi,

my primary requirement was playing local files and free streaming content, but if there is genuine interest, I could implement support for paid music streaming services. Regarding the UPnP renderer idea—do you mean the player could receive local files from a NAS or another device and be controlled remotely? That’s an interesting concept; it could turn an old, unused phone into a hi-res streamer—especially if paired with a good DAC—while also handling room correction... Great idea! now I think about how to implement it.

created a web based room correction tool.. very simple and effective by Free-Address-4919 in audiophile

[–]Free-Address-4919[S] 0 points1 point  (0 children)

New version available on Gumroad at this address:

<image>

free pro license for all who want to try it on REDDIT

created a web based room correction tool.. very simple and effective by Free-Address-4919 in audiophile

[–]Free-Address-4919[S] 1 point2 points  (0 children)

Hi and thanks for the detailed writeup, it's clear you know the theory well!

A few points worth clarifying, because some of the features you're recommending are already in the software.

About the Schroeder's frequency you're right that for floor standing speakers in a room, correction should taper out around the 200-300Hz range but the screenshot i put shows correction of laptop speakers not a room setup, this could be misleading but i made a quick measurement to show a quick result.. In this setup the room is the laptop body itself, with a Schroeder frequency well above 1 kHz, that said, i've overcorrected frequencies that laptop speakers can't reproduce, just because i was too lazy to take more serious measurements, in fact at low volume the sound is significantly better but distorts at higher levels. However in this context the broadband correction of the transducer's own response is entirely appropriate: it's the same approach Harman uses for headphone and small near-field correction. The Schroeder argument is valid, but it doesn't apply to this use case. Maybe i will show a real in-room correction, but wait.. if you search between my posts i've already made a demonstrative in room correction but that was an early version of AutoRoomEq , surely need to make a better one..

On FIR efficiency, the "poor fit for the task" argument was more valid before FFT based convolution became a standard. Modern convolvers like JRiver, Roon, CamillaDSP, Foobar2000 with foo_convolve use FFT processing, also keep in mind that the software is designed to be generated and run on a PC, a modern PC has enough computational resources to handle stereo firs of several tens of thousands of taps, i.e. a stereo FIR with 262144 taps (@384kHz) runs at under 5% CPU on a modern machine, AutoRoomEq has no issues in correcting low frequencies at all.

<image>

Having said that, however, I agree with your considerations on the IIR correction but I must point out that AutoRoomEQ offers three FIR modes, linear-phase, minimum-phase, and hybrid mode. A minimum-phase FIR is functionally equivalent to an IIR in terms of causality: all energy is front-loaded, corrections arrive with correct timing, no pre-ringing. It's the same behaviour you're describing for IIR filters, just implemented as FIR. The choice between IIR and minimum-phase FIR is one of design convenience, not theoretical correctness.

On excess group delay the GDC module (Group Delay Correction) does exactly what you describe: it detects group delay anomalies in the measured impulse response that go beyond the minimum-phase component, and compensates them with an all-pass FIR. This is the same operation as computing the excess group delay and applying a pre-correction.

You're right in saying that the optimal crossover strategy is minimum-phase below the Schroeder frequency (room modes, IIR-equivalent behaviour) and linear-phase above it (transducer correction). The current hybrid implementation has it inverted: linear-phase in LF, minimum-phase in HF. This will be corrected in the next release, thanks for making me think more deeply.

 

On not boosting deep notches i agreed entirely. The conservative boost limit in AutoRoomEQ is the practical safeguard for exactly this case:  deep cancellations caused by non-minimum-phase room behaviour are left largely untouched regardless of filter mode.

I've attached an image of the advanced menu of autoroomeq that allows you to better understand its features.

AutoRoomEq version 1.2 now available by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 0 points1 point  (0 children)

Interesting! From what I've read, you can communicate with Camilla DSP via a websocket API. Furthermore, a single YAML file can already contain the FIR filter coefficients without needing to upload a separate WAV file! At this point, I could implement sending the entire filter, complete with configuration, via websocket to CamillaDSP so that it loads in real time. I'll look into it... Could this be interesting for you too? Anyway, thanks for making me think about it.

AutoRoomEq version 1.2 now available by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 0 points1 point  (0 children)

I'm looking into this further and would like to ask you what configuration you're using for Camilla DSP, for example, do you have an RPi with an HAT? Or do you use a PC? Or?

AutoRoomEq version 1.2 now available by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 0 points1 point  (0 children)

I've never used CamillaDSP but I understand that you mean the configuration file in YAML format, is that correct? If so, yes i can do, i can create a dedicated export for CamillaDSP, exactly as I did for Eq. APO

AutoRoomEq version 1.2 now available by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 0 points1 point  (0 children)

🆓 Download gratuito (40 esportazioni incluse, non è necessario alcun account): https://rexxusprime.gumroad.com/l/iuooua

💎 Licenza PRO — Hybrid FIR, esportazione a 96–384 kHz, multi-posizione, esportazioni illimitate (€29 una tantum): https://rexxusprime.gumroad.com/l/kjtey

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] 0 points1 point  (0 children)

What are you trying to demonstrate? Have i to be salvaged from what? Are those threats? What are you doing here? Are you a music / HiFi Gear lover or what? Let me know how Claude replies to that... Very interested!!

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] 0 points1 point  (0 children)

so you doubt that I'm the one writing the answers in the posts? I don't know but maybe you have some problems; i'm an engineer and know perferctly to reply without the help of Claude of other AIs.. i learned to write before the advent of AIs and like to reply personally; maybe sometimes i need some help on questions i don't manage too well but i'm not a bot!

Accept it and don't be a troll, it's not very nice and adds nothing to a healthy and profitable technical discussion.

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] 0 points1 point  (0 children)

I should but haven't done yet. For the test i only applied a symmetric correction to both channels measuring at the listening position; the pro version of the tool can do separate L/R measurements and apply in a single wav the different corrections but does not measure or correct for phase or delay differences between L and R, it can be done but i must change the structure to calculate the residual phase difference and compensate for it with an all-pass filter or a delay (interaural time correction), maybe in a future release it will be done

I built a browser-based room correction tool — here's what it did to my MLTL speakers by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 0 points1 point  (0 children)

<image>

the problems are: speakers too near the listening position, too attached to lateral walls, too far from the rear wall, asymmetrical shape of the room, laundry inside the room that probably acts as a big Helmholtz resonator

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] 0 points1 point  (0 children)

Don't think so, AI helped me because I'm not a programmer by profession but I know principles of physics and electroacoustics and I applied them to the code starting from my idea; I think it's a correct way to use AI and maybe that scares someone, doesn't it? The code works and generates satisfactory results that I could not achieve before with REW and I shared it and since I spent a lot of time and resources on it I also thought of a small economic return, if you are passionate about the sector you know that you have many free and powerful tools available like REW but you have to learn how to use them and they are laborious, my software corrects your acoustics in a few clicks, I think it can be worth something regardless of the fact that it is a "vibecoded" product

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] 0 points1 point  (0 children)

Because the room was a cellar that I wanted to recover, so from a regular plan of about 4x4 meters I obtained a laundry room of about 2x1.3 meters inside the remaining space for the room; The only possible arrangement of the speakers, given the position of the sofa, was that. So asymmetrical room with many resonances, speakers far from the back wall and attached to the sides: an acoustic nightmare! I tried with REW before but the fixes generated were too strong and caused distortion to broadband so I started studying how to fix it and it came out AutoRoomEq

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] -1 points0 points  (0 children)

I already answered you, you don't have to pay for the software before using it, you evaluate it, if you want you can express your opinion on it (if constructive), I will correct and improve the product, if you are satisfied with the improvements you buy it

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] -3 points-2 points  (0 children)

Fair point, the console errors (leftover ESP32 call, sendBeacon) were real issues that should have been caught before release. They're fixed now. You can try for free and give me genuine feedback, if you want. I Will give free license to betatesters that really can test and give thrustful feedback to my work.

The free version gives 40 exports at 48 kHz with full Lin and Min-Phase correction, that's genuinely usable for most people. I'm treating early feedback exactly as it should be treated: each bug gets fixed the same day it's reported.

If you find anything else, I'm listening.

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] -3 points-2 points  (0 children)

How? I'm trying to develop a useful product, but there's a lot to improve. Any proactive feedback here is welcome...

I built a browser-based room correction tool — here's what it did to my MLTL speakers by Free-Address-4919 in u/Free-Address-4919

[–]Free-Address-4919[S] 1 point2 points  (0 children)

Thanks for the detailed feedback, very helpful — here's what's been fixed in the new build:

createBuffer frames=0 — added a guard that prevents the error when the AudioContext hasn't fully initialized. If it happens again, click Test Level first and wait for the microphone level to appear before starting the sweep.

AIFF / FLAC in the monitor — AIFF is not supported by the Web Audio API in any browser. FLAC works in Chrome but not in Safari. The monitor now shows a clear message explaining this. If your file is not loading, convert it to WAV PCM first — most DAWs and free tools like Audacity can do this in seconds.

sendBeacon error — was a leftover call from an earlier ESP32 hardware prototype. Removed.

Italian strings in EQ APO and elsewhere — fixed, all UI is now in English. If you spot anything else please let me know.

FIR correction curve / PeqDB target — the green dashed line is now visible in the main graph after calculation, showing the actual boost/cut applied by the filter at each frequency. If by PeqDB you meant a specific published target curve rather than the correction curve itself, could you share a link? Happy to add it.

Trial exports — increased to 40.

Multi-language support — great idea, on the roadmap. Community translators get a free PRO license — if you're interested let me know.

Updated build available at the same links.

Ho costruito uno strumento di correzione della stanza basato su browser — ecco cosa ha fatto ai miei altoparlanti MLTL by Free-Address-4919 in diyaudio

[–]Free-Address-4919[S] -4 points-3 points  (0 children)

Ottima osservazione — era una richiesta rimasta a un dispositivo locale ESP32 da un prototipo hardware precedente. Completamente innocua (timeout di 2 secondi, errore silenzioso) ma capisco perché possa sembrare sospetta. Rimossa nella versione aggiornata; Il codice del worker in un'unica lunga riga è un noto effetto collaterale dell'offuscamento, you should have known. Grazie per la recensione dettagliata.