Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Collaboration for opensource Klippel NFS #232

Open
speetpeet opened this issue Mar 7, 2023 · 2 comments
Open

Collaboration for opensource Klippel NFS #232

speetpeet opened this issue Mar 7, 2023 · 2 comments

Comments

@speetpeet
Copy link

Is your feature request related to a problem? Please describe.

Impressive work you did here! I see an opportunity to make the act of gathering date easier. Let me explain:

The issue is that to obtain good measurements for a SPINorama is cumbersome: with REW it is labour intensive and error prone, a Klippel system is either unavailable or prohibitively expensive. The library that you have made, looks like it's doing a really good job of converting good measurements into good plots. But how to get good measurements? That could democratize information on what loudspeaker actually work well even more.

I'm looking into creating a combination of a python package matched with the right hardware to draft an opensource, affordable and high quality measurement kit a la Klippel NFS. One needs audio interface, measurement mic, a suitable PLC, and some stepper motors.

Describe the solution you'd like
I'm investigation the possibility to use this library to generate the plots from these measurements. Do you see value in this idea? And, what would you think to be the most suitable way to go from measurements to SPINorama plots? What format? Etc.

Cheers,

Piet

@pierreaubert
Copy link
Owner

Hello,

I am interested in contributing. Generally I see 2 components:

  1. a server that would take a set of angles and produces a measurement (waw file would be best I think, but a text file with enough resolution and triplet freq/spl/phase would also work).
  2. for a set of measurements in a room, compute an anechoic speaker response, evaluate errors and if not low enough then call 1. and iterate.

I can help on 2.: I have been investigating 2 possible solutions: one close to Klippel (using the 2 cylinders view and series expansion) or something simpler that could work in a simple room (parallel similar walls). Python may not be the best language to do the computational heavy part. I have made some experiment with pytorch to get my software to run faster on a GPU but I didn't finish it. With recent HW (GPU or large CPU) I am sure that computations are not a real issue.

To answer your question about format for plots, the 72 angles in text form with each having

freq spl phase

for 200 freq points between 20Hz and 20kHz is enough.

@speetpeet
Copy link
Author

speetpeet commented Mar 8, 2023

Hi,

Thanks for your swift answer. That is great to hear. I agree with your suggestions.

For part one:
I look into focussing on this part. I'll build upon the work that has been done in HifiScan, and extend that to facilitate interaction with PLC to make a rotation table rotate. This to sequentially take 72 measurements at the predefined angles. Great idea to include an error evaluation at every angle to yield measurements of sufficient quality. Thanks for the heads up, I'm keen to find out how computationally heavy these manipulations are. I've yet to find out.Can you help to find me the paper / documentation of Dr. Toole where the current measurement methodology is stated?

For part 2:
An convient API on the functions used in this Spinorama repo made available through PyPi could be very handy. What do you think of the following suggestion? :

from Spinorama import Measurements
my_measurements= Measurements(
           measurements: dict = { "0" : {"freq": .., "phase": ... , }, "5": {...}, ... },
           speaker: str = "Jubilee",
           ...,
)
spinorama= my_measurements.plot_spinorama(*args, **kwargs)

As I will be doing this in my spare time, I'm not sure what dev pace is feasible. Lets start with sourcing some hardware and have some fun!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants