Welcome, Guest
Username: Password: Remember me
  • Page:
  • 1
  • 2

TOPIC: Re: phase linearization plugin for OpenDRC

phase linearization plugin for OpenDRC 7 years 8 months ago #6054

  • pos
  • pos's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 346
  • Thank you received: 196
  • Karma: 39
Hello,

The idea would be to implement what Thuneau does in its phase arbitrator plugin:
www.thuneau.com/arbitrator.htm
www.thuneau.com/Loudspeaker%20Phase%20Ar...r%20User%20Guide.pdf

This is also the method used by Grimm Audio (Hypec) for their LS1 loudspeaker:
www.grimmaudio.com/pro_loudspeakers_ls1.htm
www.grimmaudio.com/whitepapers/speakers.pdf

This plugin would let the openDRC correct the phase behavior of conventional loudspeakers (the better time aligned they are, and the most symmetrical their acoustical slopes, the better the result of course).

With this plugin, putting the openDRC in front of a conventional IIR digital crossover (such as a minidsp, a dcx2496, or any IIR crossover device) would turn it into a fully linear phase capable crossover (and also allow for a cool volume control, which is already a good thing on its own ;) )

It looks like the most sensitive way to achieve linear phase: IIR slopes and FIR phase compensation.

With that many taps available it should be easy enough to implement the inverse allpass needed, even in the lowest frequency range (sealed box 12dB/oct bass rolloff phase compensation for example).

What do you think?
download the last version of rephase here: rephase.org
Last Edit: 7 years 8 months ago by pos.
The administrator has disabled public write access.
The following user(s) said Thank You: curryman

Re: phase linearization plugin for OpenDRC 7 years 8 months ago #6071

  • devteam
  • devteam's Avatar
  • Offline
  • Administrator
  • Posts: 8734
  • Thank you received: 1111
  • Karma: 161
Hello,

We don't have any plans for such plug-ins but that doesn't mean that it's not an interesting one. :-)

Using the OpenDRC (Custom IIR + Custom FIR), nothing prevents you from running an external software to compute the phase linearization. All the processing is there. We can't build a plug-in for every single application out there so the concept of the OpenDRC is to leave end users with the ability to build such custom solution (i.e. as you're looking for).

Hoping this info helps

DevTeam
miniDSP, building a DSP community one board at a time.
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 8 months ago #6074

  • curryman
  • curryman's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 791
  • Thank you received: 181
  • Karma: 100
I don't think that you would need any special plugin. The current FIR plugin should work well for phase linearization:)
It's more about FIR filter development. Target response (magnitude) will be allpass and the FIR filter will correct phase only. Did some tests with Crumboo's Scilab code and it works well!
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 8 months ago #6091

  • pos
  • pos's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 346
  • Thank you received: 196
  • Karma: 39
thanks guys

I read Crumboo's threads, but it is a little bit over my head for now (will have to dig a little bit further...).
Where can I find Crumboo's current Scilab code? I did not find any link in his threads.
download the last version of rephase here: rephase.org
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 8 months ago #6097

  • Crumboo
  • Crumboo's Avatar
  • Offline
  • Expert Boarder
  • Posts: 144
  • Thank you received: 14
  • Karma: 13
Hi, send me an email and I can send you the code. It's however not very well commented, so I hope you can figure out how it works. Also, you need to use measured data as input (a .txt file), and this data should be without excess phase (i.e. without the delay caused by distance between the speaker and microphone). :)
Last Edit: 7 years 8 months ago by Crumboo.
The administrator has disabled public write access.
The following user(s) said Thank You: pos

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6373

  • pos
  • pos's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 346
  • Thank you received: 196
  • Karma: 39
After some thoughts and work, here is a software for linearization impulse generation, as well as FIR filters and EQ...

sourceforge.net/projects/rephase/

To generate impulse files for the openDRC choose the 48000Hz sampling frequency, 6144 taps, and IEEE754 file format.

The documentation is lacking (to say the least...) but should improve with time.
download the last version of rephase here: rephase.org
Last Edit: 7 years 7 months ago by pos.
The administrator has disabled public write access.
The following user(s) said Thank You: Richard

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6376

  • devteam
  • devteam's Avatar
  • Offline
  • Administrator
  • Posts: 8734
  • Thank you received: 1111
  • Karma: 161
Wow.. Brilliant work and neat UI! We haven't had a chance to look into it yet but we'll certainly do shortly! Looking like you've been putting quite a fair amount of work here.. no?

It's really great seeing the Open Source work going on here between Crumboo, Pos, Mason, Charlie Laub and Curryman.. There are few features that we're currently working on now that will open the platform even more to the creativity of your great work! We feel very fortunate to have you guys on board ... Makes that community better! :-)

Looking forward to pushing a platform even more open to the community!

DevTeam
miniDSP, building a DSP community one board at a time.
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6384

  • pos
  • pos's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 346
  • Thank you received: 196
  • Karma: 39
Thank you devteam!
Yes it took quite a lot of time to develop, and especially the GUI (always the longest, and not the most interesting part...).
Thanks a lot for making your hardware so open, and I am looking forward for the next evolutions!!
download the last version of rephase here: rephase.org
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6388

  • devteam
  • devteam's Avatar
  • Offline
  • Administrator
  • Posts: 8734
  • Thank you received: 1111
  • Karma: 161
Hello Pos,

I'm sure that you'll soon get some feedback from a couple of users on your good work.. We're currently setting up a a repository with some information on all the great OpenSource tools you guys are coming up with... So far we have:
- ACD (www.minidsp.com/applications/advanced-to...e-crossover-designer)
- PORC (Python Open Room Correction)
- Excel sheet for development.

Would it be OK to advertize your tool there? (Applications - > Advanced)

Thanks again for your work and we'll shortly give it a spin on our setup to see how it all works!

Devteam
miniDSP, building a DSP community one board at a time.
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6389

  • pos
  • pos's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 346
  • Thank you received: 196
  • Karma: 39
devteam wrote:
Would it be OK to advertize your tool there? (Applications - > Advanced)
I would be honored :)
download the last version of rephase here: rephase.org
Last Edit: 7 years 7 months ago by pos.
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6390

  • Crumboo
  • Crumboo's Avatar
  • Offline
  • Expert Boarder
  • Posts: 144
  • Thank you received: 14
  • Karma: 13
Wow, great work there pos! :)
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6393

  • curryman
  • curryman's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 791
  • Thank you received: 181
  • Karma: 100
pos, great new tool for the community.

I am quite busy recently so I did only a short look to your program. Hope to be able to take a deeper look soon :)

Just a first question: is it possible to load a measured response that can be inverted?

regards, Daniel
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6396

  • pos
  • pos's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 346
  • Thank you received: 196
  • Karma: 39
Thanks guys :cheer:
curryman wrote:
Just a first question: is it possible to load a measured response that can be inverted?
Nope, it is meant for "manual" amplitude and phase correction (you will be able to load eq banks in a next version though).
I am not a big fan of automated corrections, as they rely a lot on the accuracy/position of the measurement itself (is it an averaged measurement from several positions? Should phase be corrected in such conditions? What anomalies should be corrected and what should be left alone? etc...)

The goal here is to have full control over what you want to correct, and be able to check the result against several measurements if you want.
In this situation the C=A*B function in HOLMImpulse comes in handy: you put your correction impulse in A, your measurement(s) in B, and you convolve the corrected response in C.
You can take a full set of measurement (at different positions and with different windows) and try all the corrections you want afterward, with an accurate vision of the result for each measurement.
download the last version of rephase here: rephase.org
Last Edit: 7 years 7 months ago by pos.
The administrator has disabled public write access.

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6407

  • pos
  • pos's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 346
  • Thank you received: 196
  • Karma: 39
I would like to add some things to the above message to precise the scope of this tool.
rePhase is not meant to be a room-correction tool, but a speaker-correction tool.
It is not meant to be a filtering tool either, but a correction tool.



The main goal, as exposed in the first post, was to linarize the phase of a IIR crossed-over system, exactly as phase arbitrator does (most of phase arbitrator manual also fits rePhase usage :side: )
So the idea was to use an IIR crossover (such as the minidsp kits, hypex plate amps, a DCX2496, ...) to linearize the amplitude *and phase* of each driver in (and around) its band using minimal-phase eq (including Linkwitz transform or EQ far off-band for the phase) and apply IIR Linkwitz-Riley crossovers. With the EQ the acoutical slopes for both amplitude and phase should then exactly match the electrical one.
With symmetrical slopes the drivers are then phase-coherent throughout the crossover, and the phase can be modified globally before the crossover, using the theoretical reverse allpass provided by rePhase.
With this approach the only section of rePhase that is needed is in the first tab: the filter linearization section. And you can of course also linearize box-induced phase shifts with this same section.



The second goal was to also be able to linearize passive speakers (or active speakers without modifying the actual crossover parameters). In most cases the slopes are not perfect acoustical L-R (even if they are for the amplitude within one octave around the crossover points, they rarely are for the phase).
For this purpose the Phase-EQ section was added. For example you can linearize the phase of a JBL 4425 by first dialing ideal L-R 24dB/oct filter at 1200Hz, and then take care of the phase "bump" above 1200Hz (due to the phase shift induced by the horn that was not completely compensated for) using some phase EQ.



Then it appeared some gain EQ could also be useful, and presets could be generated for different loudspeakers, and the user could then add some specific EQ and chose the impulse format and length to generate for its specific system...
This EQ should really be speaker-specific and not room-specific, so that it would fit any situation with the same speakers (and some room EQ could be added on top of that for each situation...).
So for example I could save and distribute as a file with the soft a preset for the JBL 4425 that would correct the BR phase shift at 35Hz and the 1200Hz crossover (and aforementioned phase bump), as well as add some specific gain EQ to correct minor amplitude deviations that where not taken care of in the original crossover.



Then the "FIR filters" section was added as an afterthought, because is was easy to do. It is not really compatible with the default windowing and optimization algorithm implemented specifically for phase-only corrections, but it works after all and can be useful for some.
I am not sure adding this filter section was a good idea, as it tends to blur the original purpose of this soft, that is correcting an existing crossover, and not build one...
download the last version of rephase here: rephase.org
The administrator has disabled public write access.
The following user(s) said Thank You: curryman

Re: phase linearization plugin for OpenDRC 7 years 7 months ago #6408

  • curryman
  • curryman's Avatar
  • Offline
  • Platinum Boarder
  • Posts: 791
  • Thank you received: 181
  • Karma: 100
Thank you very much for your detailed and informed answer!

I agree that a fully automatic correction is not the ideal way to go and it is good to have full manual control. Actually my thoughts went in the same direction: my intention loading a measured response (inverted or not) was to have visual control when developing filters. However I didn't have external tools (like HOLMimpulse) in mind that will actually have the same functionality (e.g. C = A*B ), as you mentioned. So just forget my idea ;)

I hope to have some more time soon to take a deeper look to your software and many thanks again for your great efforts!
Last Edit: 7 years 7 months ago by curryman. Reason: typo
The administrator has disabled public write access.
  • Page:
  • 1
  • 2
Moderators: devteam