quantasylum / qa40x Goto Github PK
View Code? Open in Web Editor NEWReleases (no source) for the QA402 and QA403 Audio Analyzer.
Home Page: https://quantasylum.com/products/qa402-audio-analyzer
Releases (no source) for the QA402 and QA403 Audio Analyzer.
Home Page: https://quantasylum.com/products/qa402-audio-analyzer
Example with running measurements between 20Hz and 24kHz, with a sample rate of 48kHz:
Seems all the other APIs (that I use) handle this and return status 200 and a value, except peak which returns status 400 and Bad Request: Exception: (Illegal values passed to FindPeakBin)
.
This is a full log with all the requests setting up the measurement and making the measurement:
---
Time 19:15:08.576
GET Request:http://localhost:9402/Status/Version
Return: { "SessionId":"331779053", "Value":"0.9999" }
Status: 200 (Elapsed: 1.39 mS)
---
Time 19:15:13.146
OPTIONS Request:http://localhost:9402/Settings/BufferSize/32768
Status: 204 (Elapsed: 3.01 mS)
---
Time 19:15:13.151
PUT Request:http://localhost:9402/Settings/BufferSize/32768
Return: { "SessionId":"331779053" }
Status: 200 (Elapsed: 3.90 mS)
---
---
Time 19:15:13.181
Time 19:15:13.181
OPTIONS Request:http://localhost:9402/Settings/Input/Max/42
---
OPTIONS Request:http://localhost:9402/Settings/AudioGen/Gen1/On/1000/-10
---
---
---
Status: 204 (Elapsed: 1.33 mS)
Time 19:15:13.182
Status: 204 (Elapsed: 1.60 mS)
Time 19:15:13.182
---
Time 19:15:13.182
Time 19:15:13.182
OPTIONS Request:http://localhost:9402/Settings/AudioGen/Gen2/Off/4500/-40
---
OPTIONS Request:http://localhost:9402/Settings/OutputSource/Sine
Time 19:15:13.183
OPTIONS Request:http://localhost:9402/Settings/Windowing/Hann
OPTIONS Request:http://localhost:9402/Settings/SampleRate/48000
Status: 204 (Elapsed: 2.55 mS)
Time 19:15:13.183
Status: 204 (Elapsed: 2.96 mS)
PUT Request:http://localhost:9402/Settings/Input/Max/42
---
---
Status: 204 (Elapsed: 3.51 mS)
Status: 204 (Elapsed: 3.85 mS)
---
---
PUT Request:http://localhost:9402/Settings/AudioGen/Gen1/On/1000/-10
Return: { "SessionId":"331779053" }
Time 19:15:13.185
Time 19:15:13.185
Time 19:15:13.186
Time 19:15:13.186
Return: { "SessionId":"331779053" }
Status: 200 (Elapsed: 16.33 mS)
PUT Request:http://localhost:9402/Settings/AudioGen/Gen2/Off/4500/-40
PUT Request:http://localhost:9402/Settings/OutputSource/Sine
PUT Request:http://localhost:9402/Settings/Windowing/Hann
PUT Request:http://localhost:9402/Settings/SampleRate/48000
Status: 200 (Elapsed: 19.31 mS)
Return: { "SessionId":"331779053" }
Return: { "SessionId":"331779053" }
Status: 200 (Elapsed: 23.27 mS)
Return: { "SessionId":"331779053" }
Status: 200 (Elapsed: 24.79 mS)
Return: { "SessionId":"331779053" }
Status: 200 (Elapsed: 25.53 mS)
Status: 200 (Elapsed: 26.80 mS)
---
Time 19:15:25.134
POST Request:http://localhost:9402/Acquisition
====================
Acquisition started. Fs: 48000 FFTSize: 32768 Window: Hann Rounding: True Max Input: 42 dBV
Acquisition completed. Elapsed 0.86 seconds.
Return: { "SessionId":"1021500266" }
Status: 200 (Elapsed: 909.14 mS)
---
---
---
---
---
Time 19:15:26.48
---
Time 19:15:26.50
Time 19:15:26.50
Time 19:15:26.50
Time 19:15:26.50
GET Request:http://localhost:9402/ThdDb/1000/24000
Time 19:15:26.50
GET Request:http://localhost:9402/ThdPct/1000/24000
GET Request:http://localhost:9402/ThdnDb/1000/20/24000
GET Request:http://localhost:9402/ThdnPct/1000/20/24000
GET Request:http://localhost:9402/SnrDb/1000/20/24000
Return: { "SessionId":"1021500266", "Left":"-79.0346991923295", "Right":"7.92288994972509" }
GET Request:http://localhost:9402/RmsDbv/20/24000
Return: { "SessionId":"1021500266", "Left":"0.0111754505291425", "Right":"248.968554308378" }
Return: { "SessionId":"1021500266", "Left":"-76.8476373717254", "Right":"32.5151669270018" }
Return: { "SessionId":"1021500266", "Left":"0.0143753402040616", "Right":"4224.33494994592" }
Return: { "SessionId":"1021500266", "Left":"87.8205776379967", "Right":"-31.932916152917" }
Status: 200 (Elapsed: 17.08 mS)
---
Return: { "SessionId":"1021500266", "Left":"17.0123259220358", "Right":"-72.727503249539" }
Status: 200 (Elapsed: 18.78 mS)
---
Status: 200 (Elapsed: 20.59 mS)
Status: 200 (Elapsed: 22.18 mS)
Status: 200 (Elapsed: 23.81 mS)
Time 19:15:26.65
Status: 200 (Elapsed: 26.83 mS)
Time 19:15:26.69
GET Request:http://localhost:9402/PeakDbv/20/24000
GET Request:http://localhost:9402/Data/Frequency/Input
Bad Request: Exception: (Illegal values passed to FindPeakBin)
Return: { "SessionId":"1021500266", "Length":"32768", "Dx":"1.46484375", "Left":"4mdVmZ0XZz9C9EueELdcPy+kOEG1RDo/g/IdgSaQIT9VKN9DovcJP/TqAgm/8QA/cN+QOdwK6z5KFZU5h3nuPlsxeXCBBeA+MAzA5ARE8T6W7uK462XsPrQs/gPUyO...
Status: 400 (Elapsed: 22.77 mS)
Status: 200 (Elapsed: 23.63 mS)
Add measurement tile for D only (N+D without N). See https://forum.quantasylum.com/t/qa403-feature-request/1427/15
Add ability to specify max hold OR avg OR normal acquisition.
https://forum.quantasylum.com/t/max-hold-option-feature-req/722
Windows 10, 20H2
QA40x Release 0.990
curl -d "" -X PUT http://localhost:9402/Settings/Default --show-error --fail
curl: (22) The requested URL returned error: 400 Bad Request: Exception: (SplitterDistance must be between Panel1MinSize and Width - Panel2MinSize.)
N-D measurement is slightly higher than RMS measurement when non-rect windowing is used. The expectation is that N-D should always be slightly below RMS, because N-D is the same as RMS with harmonic regions removed.
The QA401 allowed the ability to export all traces from Graphtool. The QA40x does not. We need to restore that ability so that graphs can be exported and imported, and also so that multi-trace graphs can be exported into excel for further analysis.
At 192 kHz, THD harmonics are missed above 60 kHz
Add the ability for dBr to be updated on each acquisition so that the measured peak is always 0 dBr.
https://forum.quantasylum.com/t/qa402-feature-request/358/61?u=matt
Hi,
I encountered a bug with the noise spectral density measurement. I wanted to validate the measurement with a known DUT. So I prepared the following OpAmp circuit (Non-Inverting Amp with OPA828, metal film resistors, input shorted with 50 Ohms):
Simulation says, it has a noise spectral density of around 4.2 nV/rtHz (broadband noise between 1kHz to 10kHz):
The measurement with the QA403 depends strongly on the window used:
From a user point of view the spectral density shouldn't depend on either the FFT size nor the window function used. So far, Rt Hz mode compensates for FFT size only, like it is discribed in the GUI. But I think the scaling isn't done correctly yet. A correction factor for window functions should also be involved, like it is mentioned here:
https://www.ap.com/technical-library/fft-scaling-for-noise/
Looking forward to your answer.
Regards
See comment here. Add standalone note in the REST HTML page on file handling, UTF encoding, etc.
https://forum.quantasylum.com/t/multitone-using-rest-api/973/2
As the console fills up, the requests get slower and slower. It only takes a few minutes of running acquisitions before it slows down to a crawl. See the elapsed times from this screenshot:
Clearing the console makes the requests fast again. Is it possible to do something with the performance of this console?
Need the ability to access the graph tool without the hardware connected. The issue is that the AutomatedTest menu is disabled when HW isn't connected. A better solution would be to keep the AutomatedTest menu enabled, but disable the individual tests. OR, keep it enabled and nag the user if they try to run a test with the hardware disconnected.
https://forum.quantasylum.com/t/mask-curve-not-enough-points/1158/18
From mail...
A really annoying issue is that it's not possible to close the application using regular means. If I click the close button in the title bar, the Link LED on the QA402 turns off, but the app continues to run. If I kill the window, the API continues to run in the background, so I have to kill that too from the terminal. This happens 100% of the time.
As with the predecessor software, it'd be nice to have optional date/time stamp on exported images.
The QA401 API allows continuous tone to be generated using the GenerateToneStart and GenerateToneStop methods (earlier versions of QAAnalyzer only had a GenerateTone method w/ fixed duration). The QA40x GUI allows for a similar functionality by pressing the "Tone Gen When Idle" button, but this option is not exposed via the REST API.
Thanks for the fix! I can confirm that the measurement is not window dependent anymore.
But there is still an issue with the display. It seems that it's off by about 1 dB.
To profe that I measured the spectral density of an 1MOhm resistor at room temperature. The circuit is the same non-inverting amp as shown above with the 50 Ohms removed.
Originally posted by @NoiseFree in #31 (comment)
The setting for RtHz display is greyed-out
In Verifying Calibration wiki page, it is said (in Step 2) "bump FFT to 16K" but this still gives FFT too small error. I think it should be 32k (minimum) ?
0.9992 has the left and right inputs reversed. 0.9991 has them correct.
Add a command line switch to allow headless operation. This would force a console, and then closing the console would also terminate the application.
Hi I'm in China. I want to use it to measure out product in product line. But I can't find anyway to buy the device. Could you give me some purchase channel please? Thank you so much.
...and also add weighting
Y-axis units are currently too scarce. For the measurement of noise parameters, although there is currently dBV, it requires tedious conversion calculations, so it is necessary to use the commonly used noise measurement units (uV)rtHz and (nV)rtHz. A custom conversion function or plugin, this feature is looking forward to seeing it in the next new version, thanks.
I get this crash quite often in v0.9999 (newest for Linux). It's printed in the terminal I use to start the Analyzer.
double free or corruption (out)
=================================================================
Native Crash Reporting
=================================================================
Got a SIGABRT while executing native code. This usually indicates
a fatal error in the mono runtime or one of the native libraries
used by your application.
=================================================================
=================================================================
Native stacktrace:
=================================================================
0x55cf0da54b31 - /usr/bin/mono :
0x55cf0da54ec9 - /usr/bin/mono :
0x55cf0da02f51 - /usr/bin/mono :
0x55cf0da540c4 - /usr/bin/mono :
0x7f0abcb55970 - /lib64/libpthread.so.0 :
0x7f0abc993322 - /lib64/libc.so.6 : gsignal
0x7f0abc97c864 - /lib64/libc.so.6 : abort
0x7f0abc9d5b17 - /lib64/libc.so.6 :
0x7f0abc9dd73c - /lib64/libc.so.6 :
0x7f0abc9defc0 - /lib64/libc.so.6 :
0x7f0abc9e27f8 - /lib64/libc.so.6 : cfree
0x7f0ab90eb006 - /lib64/libfontconfig.so.1 :
0x7f0ab90eb0d3 - /lib64/libfontconfig.so.1 : FcPatternDestroy
0x7f0ab9603139 - /lib64/libgdiplus.so.0 : GdipDeleteFontFamily
0x7f0ab96032b7 - /lib64/libgdiplus.so.0 : GdipDeleteFont
0x4027bba3 - Unknown
=================================================================
Telemetry Dumper:
=================================================================
The stack trace isn't very detailed, so not sure if it's much help.
I started having this issue when adding support for averages during sweeps in QA40x Web.
I'm trying to amplitude sweep from -40dBV to 18dBV with 20 averages, and it's less than 50% chance of completing a sweep before it crashes.
When it crashes the Analyzer looks like it's processing, but nothing happens. Both the Analyzer window and the Console window are frozen.
The request is hanging, so the browser does not display any error messages.
The Link LED on the QA402 turns off.
To get started again I have to kill the application and unplug the QA402 to get it back to life.
Add core test in QA40x to enable polarity measurements, then expose that in Tractor
The new cursor feature of the 0.999 release is very slow and it is very difficult to position the cursor at a particular frequency (e.g. with high resolution FFT).
When switching axis settings between dBV and dBr several times and also changing y-axis scaling with "+1 to -1" and "+20 to -160" buttons several times, the scaling can get blocked at e.g. +/-1dB which does not change when the "+20 to -160" button is pressed.
The documentation of the OutputSource API specifies some arguments:
PUT /Settings/OutputSource/{Source}
Arguments:
Sine Enables the sine generators. Note that each generator has its own enable controlled via Settings/SineGen.
Multitone 'Multitone' enables the multitone generator.
WhiteNoise 'WhiteNoise' enables the white noise generator.
ExpoChirp 'ExpoChirp' enables the exponential chirp generator.
Off 'Off' turns off all generators and send a stream of 0's to the DAC.
Sending "Sine" returns 200 OK, while "Off" fails:
$ curl -d "" -X PUT http://localhost:9402/Settings/OutputSource/Off -v
* Connected to localhost (::1) port 9402 (#0)
> PUT /Settings/OutputSource/Off HTTP/1.1
> Host: localhost:9402
> User-Agent: curl/7.77.0
> Accept: */*
> Content-Length: 0
> Content-Type: application/x-www-form-urlencoded
>
* Mark bundle as not supporting multiuse
< HTTP/1.1 400 Unknown source name in /Settings/OutputSource
< Access-Control-Allow-Origin: *
< Content-Type: application/json
< Server: Mono-HTTPAPI/1.0
< Date: Thu, 30 Sep 2021 18:42:31 GMT
< Content-Length: 27
< Connection: close
<
* Closing connection 0
{ "SessionId":"115373786" }
Perhaps it's not implemented, like Multitone? Multitone returns HTTP/1.1 400 Not yet implemented
.
It actually seems a bit random, but pretty easy to reproduce with the 42dBV attenuation enabled and 15-18dBV on the output, in loopback.
This is how I expect it to look:
In the screenshots above, left and right channel track each other pretty well with regards to THD.
Now look what happens next:
Suddenly the left channel has noticeably worse THD than the right channel.
I have not touched anything in the physical setup between the screenshots, or changed any of the settings.
On the Analyze page I can run measurements and the THD result will stay consistent, until I stop and press "Set" (with no changes to the settings). When starting measurements again, it might switch from the good THD to the bad THD, or the other way around.
So something happens when pressing "Set". Maybe the hardware state becomes inconsistent?
It's always the left channel. When it goes into a weird state, I tried changing the inputs, so the left output goes into the right input, and the right output goes into the left input. The result did not invert, the issue was still there on the left channel.
The issue also happens at lower attenuation settings, but the difference between the channels get smaller as the attenuation lessens. As can be seen from the amplitude sweeps it looks fine at lower output, and gets worse as the output increases.
When doing sweeps it also seems to get into the same state until it's finished. It will either be the good or the bad result.
I'm attaching 2 log files, showing the console output from the 2 different screenshots on the analyze page:
See more detail below.
https://forum.quantasylum.com/t/channel-muting-when-mirroring-qa403/1310/4
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.