Klippel Near Field Scanner on a Shoestring

Here's an explanation of Bessel and Hankel functions for Aaron and others without formal maths experience...

What we need are "Spherical" Bessel Functions...

The sound field of the speaker must satisfy the Wave Equation, which can be formulated in a rather abstract way...

OK, we have the spherical Bessel functions...

We have now seen the various components of the solution, and they all look kind of similar...

Thank you so very much for writing all that up!

You and Earl have helped me a great deal in understanding how this functions and I'm very appreciative for that aid. Trying to go it by myself was slow going.
 
I don't have a data set with which to test it out at the moment.

Here's a measurement set, angles are per Earl's recommendation (i.e. 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 100, 120, 150, 180 degrees). The mic was roughly one meter for the speaker. It was made in my basement so the IR window will need to be quite short, but it should at least give anyone on this thread something to start with if they don't have anything on hand.

It was made with REW, and I can provide that file to anyone who wants it (it was to big to attach here).
 

Attachments

  • KEF iQ1 IR.zip
    98.9 KB · Views: 55
Here's an exe -> Release Initial Alpha Release * 3ll3d00d/pypolarmap * GitHub

Note that the REW impulse option is for <= 5.19 beta10 as John changed the format in beta11 as a result of a suggestion I made for creating shorter files. I'll update that soon enough.

If there are any actual bugs or feature requests then I'd prefer them to be logged via Issues * 3ll3d00d/pypolarmap * GitHub so that I don't have to attempt to maintain track of a discussion thread for things to do. Discussion about a feature can be here or there though.

I have not tested this on anything other than Win10, I would not expect it to fail on other versions of modern Windows but there's only one way to find out :)

This is fantastic! Another huge thank you for the work on it!

The installation worked on two of my PC, both Windows 7. However, I can't seem to load any files, I posted the issue on GitHub.
 
Here's a measurement set, angles are per Earl's recommendation (i.e. 5, 10, 15, 20, 30, 40, 50, 60, 70, 80, 100, 120, 150, 180 degrees). The mic was roughly one meter for the speaker. It was made in my basement so the IR window will need to be quite short, but it should at least give anyone on this thread something to start with if they don't have anything on hand.

It was made with REW, and I can provide that file to anyone who wants it (it was to big to attach here).


Thanks. I've been laid up in bed for a week. Serious infection and nasty antibiotics to kill it. Leaves me with very little energy. Otherwise I'd be doing me a whole bunch of measurements! ;)
 
OK it works well on my laptop as far as seeing the whole screen.

Now I have this enigma:

Nogo with correct Prefix.jpg

Can't load the files with the H prefix, unless I put the H in the wrong place?
 
if you're using aslepekis' data then the published version blows up when loading WAVs for various reasons, there'll be a fixing coming later

these issues have prompted me to do some of the boring bits though

firstly, show an error dialog when something unexpected happens

error_1.png

secondly, a log viewer so you can see some of what is going on as it does stuff

logs.png

should help track things down in the event of bugs (not that my code ever has such things :D)

I've also tweaked a few things that were v slow for no good reason when presented with large measurement files of the type that REW produces by default. I think the last thing I need to resolve (and is the cause of the error shown in the example error dialog) is handling integer wavs (as opposed to float)
 
Last edited:
if you're using aslepekis' data then the published version blows up when loading WAVs for various reasons, there'll be a fixing coming later

these issues have prompted me to do some of the boring bits though

Fair enough. I'll be in better shape towards the end of this week and I'll take some measurements and save them in different formats to try them out.
 
I don't have these problems so I need precise instructions that reliably reproduce the error.

Something to note about the file loader though... My expectation is that data is stored in an orderly fashion which I define as "each measurement set is stored its own directory with names that fit the naming convention and with no other files in that directory at all". If you load from a directory that meets this description then it will load all files and automatically close the load window.

If you load from a directory that contains other files then it will list both loaded and ignored files in the dialog and will leave the dialog open so you can decide what to do next. This either means close the dialog and accept the list of loaded files or it means load a new set of files from some other location. If you load again, the new files replace whatever you had loaded so far.

Once you have loaded files then you have to "apply window" before the other graphs will be visible.
 
one thing I have noticed is that it doesn't reinitialise things properly when you load new datasets so if you have been loading then reloading multiple times then it certainly will misbehave (precise behaviour varies according to which graphs have been opened). Start app and load files once for now.
 
I don't have these problems so I need precise instructions that reliably reproduce the error.

Something to note about the file loader though... My expectation is that data is stored in an orderly fashion which I define as "each measurement set is stored its own directory with names that fit the naming convention and with no other files in that directory at all". If you load from a directory that meets this description then it will load all files and automatically close the load window.

If you load from a directory that contains other files then it will list both loaded and ignored files in the dialog and will leave the dialog open so you can decide what to do next. This either means close the dialog and accept the list of loaded files or it means load a new set of files from some other location. If you load again, the new files replace whatever you had loaded so far.

Once you have loaded files then you have to "apply window" before the other graphs will be visible.

If I am missing anything in the way of file information just let me know. It's no trouble at all if I can help a bit.

I also made a folder in the installation directory and placed the two separate text and wave folders there just for kicks and giggles. I'm pretty sure it should have made no difference. And it indeed made no difference. Same error messages.
 

Attachments

  • KEF-iq1-Impulse Wave Files.zip
    92 KB · Views: 40
  • KEF-IQ1-Impulse Text Files.zip
    146.6 KB · Views: 49
  • Hangup 3 File location from Desktop FIle Folder.jpg
    Hangup 3 File location from Desktop FIle Folder.jpg
    506.7 KB · Views: 184
  • Pypolar hangup 2.jpg
    Pypolar hangup 2.jpg
    340.3 KB · Views: 184
  • Pypolar hangup.jpg
    Pypolar hangup.jpg
    412 KB · Views: 177
  • Text File Location.jpg
    Text File Location.jpg
    126.4 KB · Views: 177
  • Wave File Location.jpg
    Wave File Location.jpg
    143.4 KB · Views: 183
Are you using the exe or the installer?

So to be clear you did the following

Extract zip to some new directory
Launch app
Press load measurements
Select wav from drop-down
Select folder
Click ok

Then what next? The error suggests you have clicked apply window but it is not clear from the bug report

This is what I mean by being specific, literally step by step instructions :)

The picture suggests you pressed apply window with the right gate set all the right which means it is attempting to analyse about 2.5s of data which I don't think the DLL handles and so possibly other stuff blows up too.

If so, pull the window in (either manually or using "find first peak" as a starting point) and try again.
 
Are you using the exe or the installer?

So to be clear you did the following

Extract zip to some new directory
Launch app
Press load measurements
Select wav from drop-down
Select folder
Click ok

Used the installer.

Followed the exact process you list.

Pressed the apply folder.

If so, pull the window in (either manually or using "find first peak" as a starting point) and try again.

That's what I did. The impulse in this sample set is pretty dirty.
Literally gated 7 to 9 Ms before the impulse and an average of 280Ms after the impulse. Exported this clipped file as a text impulse file and that is what has been uploaded.

I gave up on trying to import the wave files in the folder.