• Welcome to ASR. There are many reviews of audio hardware and expert members to help answer your questions. Click here to have your audio equipment measured for free!

The W&F Analyzer Project, Uberrimus

Metric to establish what peaks in the FM demodulated spectrum have strong AM correlations. The user could then click the peak to produce the lissajous plot for that bin. Or any bin, but mark the peaks that may matter.

View attachment 518936
So that will be in the web app?
 
In the web app you'll be able to click any of the top 12 peaks in the fm demod spectrum plot and it'll produce an on-demand lissajous plot for that peak. The peaks that have a strong AM correlation will be marked in some way to indicate that.

The data side is all Python so there'll be a common library module containing all the logic that both web and standalone use. Standalone will take the inputs, call the module, and then handle the outputs.
 
Thanks, I need to think a quite a bit more what they mean and how they can be used to understand the sources, if not correlated.
 
Not sure they tell you much if not correlated.

Forgot to mention - also including "text file" input like Shaknspin, and it'll recognize and process Shaknspin files. I hesitated on this as the noise in the Shaknspin data poisons flutter measurements, and I can't make sense of how they're getting their metrics from that raw data, but on the other hand I think people deserve to know what that data actually says. If more comes to light we can adjust that as long as it doesn't violate proper AES6 W&F. Reserve the right to change my mind as it seems to be grossly misrepresenting what the turntable is actually doing.
 
Last edited:
I actually found one of the files and I remember a bit wrong about 30 years ago. It was in 2004 in discussion with nick "Goofball_star_dot_etal". It was in the same time JA made the measurements of the LP12 and there was a discussion using the app for that.

File:

From thread:

And related:
Do you have a longer capture of that 'table with that pulley issue from any point in time? 60s would be fantastic, but 30s would help a lot. Also, motor RPM? I need to back in to a very precise drive ratio. Found a few anecdotes but nothing concrete. There's structure here, but I'm struggling with the not 1:1 aspect of belt drives.


am_fm_phase_plot_1JP.png
 
Do you have a longer capture of that 'table with that pulley issue from any point in time? 60s would be fantastic, but 30s would help a lot. Also, motor RPM? I need to back in to a very precise drive ratio. Found a few anecdotes but nothing concrete. There's structure here, but I'm struggling with the not 1:1 aspect of belt drives.


View attachment 519037
Motor RPM is the 250 RPM, so ≈4.16 Hz. No no more file found for that in my historical library. I replaced the wobbly pulley some time ago, as noted in the "Fun" thread. I might have some other files stored before pulley switch but that would take some work to find.
 
Okay, thanks. It may be best to just put AM and FM on the spectrum plot and leave it up to the user to interpret it and lissajous if they want to. I'm not coming up with any good methods to identify correlations, particularly when there's a drive ratio involved. I'll put this on the list once I get the primary functions and online version where I want them to be.
 
Okay, thanks. It may be best to just put AM and FM on the spectrum plot and leave it up to the user to interpret it and lissajous if they want to. I'm not coming up with any good methods to identify correlations, particularly when there's a drive ratio involved. I'll put this on the list once I get the primary functions and online version where I want them to be.
I think it says something due to the pattern but nothing has come up so far. Another brain level needed for me - lissajous patterns have not been common in my life. Is AI any help to interpret the data?
 
Not sure what AI tells me.


test.png
 
Do you have a longer capture of that 'table with that pulley issue from any point in time? 60s would be fantastic, but 30s would help a lot. Also, motor RPM? I need to back in to a very precise drive ratio. Found a few anecdotes but nothing concrete. There's structure here, but I'm struggling with the not 1:1 aspect of belt drives.


View attachment 519037
Is it possible for you to plot the lissajous curves for the main peaks for file I provided earlier? Tacet 3150 Hz centered-cr.wav.
 
You probably have negative roots in forth quadrant…or maybe not
I don't get this thing yet, and not sure I will ever do. FM is not difficult and AM is varying amplitude. Common source is e.g. eccentricity which obiously cause FM and can also amplitude due to output variation correlated to the same eccentricity (stylus bending). So it would be circular/oval but broad. Warps can cause both as well, but I guess the AM part is relatively larger compared to eccentricity. The pattern of the pulley, FM would alternate and cause a double-disc shape with connections due to the gear is not 1:1 aspect. But continously shifted even more due to belt creep as well...

Perhaps.
 
Last edited:
New files in the repo: wf_core.py and wf_analyze.py. Have both in the same directory, and use wf_analyze.py for the command line. You can plot single lissajous for any frequency you want:

python3 wf_analyze.py somefile.wav --lissajous-freq 0.556

Not sure how well that'll work for non-DD - it may require rotation of the AM to correlate. I haven't figure that out yet, and it's going to be back-burner so I can focus on the web SPA.

This also has the new weighting filter and implementation, though I haven't fully checked every test file yet. Post 3 has been updated with the new filter compliance and in the spoiler specifications and limitations of wf_core.

Oh and this version also takes the Shaknspin txt file.
 
Last edited:
Belt drives are bit of a pain. Lossy with belt creep and/or belt slip. I think I calculated an extra belt slip/creep of 0.37 mm/s during load when LD and I discussed friction topic and platter stop method at VE (around 2010).
 
New files in the repo: wf_core.py and wf_analyze.py. Have both in the same directory, and use wf_analyze.py for the command line. You can plot single lissajous for any frequency you want:

python3 wf_analyze.py somefile.wav --lissajous-freq 0.556

Not sure how well that'll work for non-DD - it may require rotation of the AM to correlate. I haven't figure that out yet, and it's going to be back-burner so I can focus on the web SPA.

This also has the new weighting filter and implementation, though I haven't fully checked every test file yet. Post 3 has been updated with the new filter compliance and in the spoiler specifications and limitations of wf_core.

Oh and this version also takes the Shaknspin txt file.
Thanks, I'll do some tests during the weekend.
 
  • Like
Reactions: JP
Yes data is very noisy, so I use a 4th order Butterworth low pass at 20hz or so
I played with this for an hour tonight. Modified my pipeline to output wtd p2p 2sig flutter, and then pre-filtered the raw data to try to match their number. At 10Hz I was over on one 'table and under on the other. Neither I or that Claude fellow could find a way to correlate any of the numbers. At 10Hz the flutter band is obliterated. I don't get it.
 
Last changes: added --polar-rev to command line, and modified the fm spectrum plot to show useable bandwidth. This will likely be it unless I find errors/bugs until after the web work is done.
 
I played with this for an hour tonight. Modified my pipeline to output wtd p2p 2sig flutter, and then pre-filtered the raw data to try to match their number. At 10Hz I was over on one 'table and under on the other. Neither I or that Claude fellow could find a way to correlate any of the numbers. At 10Hz the flutter band is obliterated. I don't get it.
The thing that seem to match with filtered and plotted data is 2S and peak wow, the DIN and JIS values can give unreasonable values I di not trust them.My Denon 51F. The peak deviation and jitter indicate a terrible noisy signal I think. The 2S numbers below is at values that give 0.05% peak deviation on the blue wf app from Philip Broder
IMG_0175.jpeg
 
Last edited:
@Thomas_A I added a couple things:

Code:
python3 wf_analyze.py 1_kHz_Axis_V15.wav --rpm 33.33 --motor-poles 24 --motor-slots 2 --drive-ratio 7.5 --lissajous-peak

--lissajous-peak will output a plot panel of lissajous for every peak frequency marked in the FM demodulated spectrum up to the 12 highest that are above 8% amplitude. --lissajous-freq will now accept a list [--lissajous-freq 0.56 1.11 4.16].

The bad news is that I can't remember how we tweaked the parameters to output that previous lissajous for 4.16Hz. I'm going to have to dig through the Claude session transcript to see if I can unearth that method.

I was also thinking through a bit last night: motor anomalies should be seen at the platter for what they are (1:1), and your data shows that with the 4.16Hz signal. I also wonder if that lissajous didn't collapse because of the compliant coupling. Last, perhaps lissajous is just a rather complicated way to convey something simple. If there's a strong AM amplitude that aligns with the FM, then is that all that's needed to indict a drive component as the source? Seems it really just separates the spurious FM (cart/arm compliance) from rotation. On a DD with rigid coupling those sources are phase-locked which gives pretty circles, but pretty circles need not be the indicator.
 
Last edited:
Back
Top Bottom