• 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!

Phonalyser: free open-source analyzer - THD, SNR/ENOB, frequency response, scope (+ QA40x support)

I so in user manual for Audient iD24 it can 24bit/96kHz but this is over USB 3.0. Does it also provide 24/96 over SPDIF?
SPDIF should work up to 24/192, but original spec was for 44.1/48kHz.
Does it work with for example REW and what sample rates are available there?

I normally use 24bit/44.1 kHz, but Audient iD24 can output 24bit/96kHz over SPDIF, I just tested. The audio portion of Windows control panel shows 44.1kHz 16-bit and 44.1kHz 24-bit to choose from. I have selected 24-bit.

I use FlexASIO with REW as a wrapper, because REW doesn't allow two different devices to be used simultaneusly. FlexASIO makes one virtual ASIO-device from Audient iD24 24bit/44.1 kHZ (WASAPI) and Cosmos ADCiso 32bit/44.1 kHz (WASAPI).

With Multitone Analyzer I use native ASIO drivers for both interfaces.
 
I normally use 24bit/44.1 kHz, but Audient iD24 can output 24bit/96kHz over SPDIF, I just tested. The audio portion of Windows control panel shows 44.1kHz 16-bit and 44.1kHz 24-bit to choose from. I have selected 24-bit.

I use FlexASIO with REW as a wrapper, because REW doesn't allow two different devices to be used simultaneusly. FlexASIO makes one virtual ASIO-device from Audient iD24 24bit/44.1 kHZ (WASAPI) and Cosmos ADCiso 32bit/44.1 kHz (WASAPI).

With Multitone Analyzer I use native ASIO drivers for both interfaces.
I also have used FlexASIO to make virtual ASIO devices. But in my roadmap I plan to implement ASIO backend, to be able use any ASIO driver and two independent driver too.
But I need somehow investigate why you get 16/32 bit, if only 16/24 allowed. :confused:
 
But I need somehow investigate why you get 16/32 bit, if only 16/24 allowed. :confused:

I have two other 24-bit outputs on my computer (Audient iD24 analog output and my laptop's internal speaker, shown as a "High Definition Audio Device"), but they both show as a 16-bit device to Phonalyser, but are 24-bit in the Windows control panel.

Maybe the culprit is my Windows 10 laptop? You can see your WASAPI devices as 24-bit?
 
This is the best I can get from the Phonalyser audio output preferences (Only 16-bit to select). Lots of distortion with the 24-bit noise floor:

1786201236136.png


When I edit manually the preferences.yaml -file to:

outputBitDepth: 24

I get this:

1786201398405.png



And when I edit manually the preferences.yaml -file to:

outputBitDepth: 32

I get this:

1786201552958.png
 
I have Cosmos E1DA, W-DAC + JLSound I2SoverUSB both up to 32 bit, 768k. Both works over WASAPI with full speed. WDM-KS only up 384k, but also 32bit.
I also have Cubilux CB5 for 30€ very good USB sound card up to 192k, ADC 24bit, DAC even 32 bit. Not comparable with above pair, but also good.
And have no trouble with it. Maybe I have to much drivers installed idk. Another thing: win10 support UAC2 first from version 1703, but I don't think you have so old not updated version.
Your first FFT shows multiple harmonics, but not from 1kHz fundamental - from 100Hz source. But what I don't understand - why is so huge difference between 16bit and 32. Noise floor is deeper - predictable. But if you have some 100Hz poisoning, it should be also visible on 32 bit better. But it is complete gone note even small mark.
I suppose if you move fundamental to 1012Hz - you will see, that fundamental harmonics will be even smaller then 100Hz harmonics forest.
I don't think that it is real 32bit, I even think, that it is maybe some windows mixer job. Bu on the other way - 24bit doesn't work.
I'll write small app, to list all devices & modes: sample rates/bit depth using different interfaces to try to deeper understand what's going on on your PC.
This is how it look like on my PC:
1786224866496.png

1786224885651.png

1786224953628.png

And this is loopback with both sides 32/384:
1786225268510.png

And how it looks like with 16/44100:
1786225970495.png

And cheep Cubilux CB5 32/192 -> 24/192
1786226116307.png
 
Last edited:
P.S. -160dB is very impressive! None of my cards can.
P.P.S. I see FFT has calculated frequency 1000.0039, but if you use 44.1k, 128k FFT and 1kHz fundamental and snap to FFT you should get 999.6116Hz. Making this you get much narrow skirt of fundamental. Also "Get fundamental from generator" shows difference between generator and what FFT measures. Selecting "Align generator" FLL you will get generator aligned exactly on FFT bin even if DAC and ADC has different clocks. Remains only phase noise of both clocks
 
Last edited:

Attachments

Last edited:
I just tested Phonolyser (had to run it on Linux - wouldn't run on my dedicated Windows 7 test machine).

I couldn't get the generator to work.

I'm used to working with device names e.g. hw:1,0 / hw:0,0 etc. and it found several entries for my Asus Xonar Essence STX card which was confusing to say the least.

It did list my DAC - but as I say, I was unable to get the generator to work - so I generated a test tone with Sox which at least enabled me to test the FFT function (which I struggled to find!! - not realising it was a dropdown from the oscilloscope)

Is is possible to change the font for the THD reading? I found it difficult to read.

Another issue is that it won't detect my card at anything greater than 48k - I tried over riding it in the config - however I don;t think that made any difference.

Screenshot_2026-08-09_11-53-37.png


Screenshot_2026-08-09_11-45-23.png
 
I'm used to working with device names e.g. hw:1,0 / hw:0,0 etc. and it found several entries for my Asus Xonar Essence STX card which was confusing to say the least.
Under Linux it is really confusing, while devices called similar depending on USB port/port number. I needed to test mutiple.
Another issue is that it won't detect my card at anything greater than 48k - I tried over riding it in the config - however I don;t think that made any difference.
Preferences screenshot is from web version. Unfortunately in WebAudio is not possible to select sample rate. The only one possibility is to open in windows Control Panel -> Sound and in desired device select target sample rate/bit depth:
1786274145593.png

The exactly same sample rate will be accessible in web app.
Is is possible to change the font for the THD reading? I found it difficult to read.
Yes, in preferences -> Look & Feel is possible to change font and size of measurements tables in Scope/FFT/ Freq Resp:
1786274846341.png

So, I have wrote device scanner app, it uses same backends as Phonalyser and some patched csjsound library. It can run on all OSes and produces text.
https://edgo.org/scope/device-scanner-1.2.0.jar java -jar device-scanner-1.2.0.jar
Attached sample scans on different PCs: win 11 x64, win 10 x86, linux x64
Today I have published small console app to list all available cards/sample rates/bit depth, it generates text report. Try it to see if your DAC is listed there.
To use all features of this app it make sense to use built-in generator.
 
I ran the device scanner - results attached.

EDIT: I also added a list of devices detected by Alsa

Your scanner reports "plughw" which is not technically bit perfect BTW.

EDIT(2): I tried the local jar and it refuses to use my SMSL USB DAC. It binds both input and output to the Asus STX sound card, even when I change the plughw: numbers / change names / edit the yaml configs - no chance.

In summary: I think Javasound is binding to the single card and unable to use the SMSL DAC.

I guess this is a limitation of Javasound (or the implementation of it, as REW works just fine on my system


devices.png
).
 

Attachments

Last edited:

Attachments

Thanks!

Now there is a 24 bit WASAPI-output for the SPDIF:

=== WASAPI ===
device list: enumerated fresh
INPUT devices:
[0] Analogue 1/2 (Audient iD24) (WASAPI capture) - WASAPI
44100 Hz: 16 24 bits
[1] Line In (E1DA Cosmos ADC PCM32/768) (WASAPI capture) - WASAPI
44100 Hz: 16 24 32 bits
48000 Hz: 16 24 32 bits
88200 Hz: 16 24 32 bits
96000 Hz: 16 24 32 bits
176400 Hz: 16 24 32 bits
192000 Hz: 16 24 32 bits
352800 Hz: 16 24 32 bits
384000 Hz: 16 24 32 bits
705600 Hz: 16 24 32 bits
768000 Hz: 16 24 32 bits
[2] Microphone (High Definition Audio Device) (WASAPI capture) - WASAPI
44100 Hz: 16 24 bits
48000 Hz: 16 24 bits
88200 Hz: 16 24 bits
96000 Hz: 16 24 bits
192000 Hz: 16 24 bits
OUTPUT devices:
[0] SPDIF/ADAT 1/2 (Audient iD24) (WASAPI render) - WASAPI
44100 Hz: 16 24 bits
[1] EPSON PJ (NVIDIA High Definition Audio) (WASAPI render) - WASAPI
44100 Hz: 16 bits
48000 Hz: 16 bits
[2] Speakers (High Definition Audio Device) (WASAPI render) - WASAPI
44100 Hz: 16 24 bits
48000 Hz: 16 24 bits
88200 Hz: 16 24 bits
96000 Hz: 16 24 bits
192000 Hz: 16 24 bits
[3] Analogue 1/2 (Audient iD24) (WASAPI render) - WASAPI
44100 Hz: 16 24 bits
 
Yes, but unfortunatelly in the most usable exclusive mode it suggest only 44100.
Can you try to set sample rate in sound settings: Control Panel -> Sound -> desired device -> properties:
1786306028415.png

And run scanner again.
 
Last edited:
Oh, it's normal behavior of the iD24...

You can't change the sample rate of iD24 from the Control Panel, you'll have to change via the iD-software:

1786307791982.png


When you change it to 96 kHz via iD-software, you can only choose between 16- or 24-bit from the Control Panel, there are only 2 lines there, unlike 24 that you have:

2 channel, 16-bit, 96 kHz and 2 channel, 24-bit, 96 kHz.


And here's the report after the 96 kHz selection:

=== WASAPI ===
device list: enumerated fresh
INPUT devices:
[0] Analogue 1/2 (Audient iD24) (WASAPI capture) - WASAPI
96000 Hz: 16 24 bits
[1] Line In (E1DA Cosmos ADC PCM32/768) (WASAPI capture) - WASAPI
44100 Hz: 16 24 32 bits
48000 Hz: 16 24 32 bits
88200 Hz: 16 24 32 bits
96000 Hz: 16 24 32 bits
176400 Hz: 16 24 32 bits
192000 Hz: 16 24 32 bits
352800 Hz: 16 24 32 bits
384000 Hz: 16 24 32 bits
705600 Hz: 16 24 32 bits
768000 Hz: 16 24 32 bits
[2] ADAT 5/6 (Audient iD24) (WASAPI capture) - WASAPI
96000 Hz: 16 24 bits
[3] Microphone (High Definition Audio Device) (WASAPI capture) - WASAPI
44100 Hz: 16 24 bits
48000 Hz: 16 24 bits
88200 Hz: 16 24 bits
96000 Hz: 16 24 bits
192000 Hz: 16 24 bits
[4] ADAT 7/8 (Audient iD24) (WASAPI capture) - WASAPI
96000 Hz: 16 24 bits
[5] Loop-back 1/2 (Audient iD24) (WASAPI capture) - WASAPI
96000 Hz: 16 24 bits
[6] ADAT 3/4 (Audient iD24) (WASAPI capture) - WASAPI
96000 Hz: 16 24 bits
[7] SPDIF/ADAT 1/2 (Audient iD24) (WASAPI capture) - WASAPI
96000 Hz: 16 24 bits
OUTPUT devices:
[0] Analogue 1/2 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits
[1] EPSON PJ (NVIDIA High Definition Audio) (WASAPI render) - WASAPI
44100 Hz: 16 bits
48000 Hz: 16 bits
[2] Speakers (High Definition Audio Device) (WASAPI render) - WASAPI
44100 Hz: 16 24 bits
48000 Hz: 16 24 bits
88200 Hz: 16 24 bits
96000 Hz: 16 24 bits
192000 Hz: 16 24 bits
[3] ADAT 3/4 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits
[4] Loop-back 1/2 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits
[5] Analogue 3/4 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits
[6] ADAT 7/8 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits
[7] Analogue 5/6 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits
[8] ADAT 5/6 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits
[9] SPDIF/ADAT 1/2 (Audient iD24) (WASAPI render) - WASAPI
96000 Hz: 16 24 bits


Changing to 96 kHz activates the normally disabled ADAT-devices (My choice), so that's why there are more devices than 44.1 kHz.
 
Last edited:
Changing to 96 kHz activates the normally disabled ADAT-devices (My choise), so that's why there's more devices than 44.1 kHz.
Finally solved, Thank you!
Ok, Phonalyser still can't do it, the fix is only in scanner. I'll make the bugfix version 1.2.1 without any huge new function, now realyy bugfix release.
 
Finally solved, Thank you!
Ok, Phonalyser still can't do it, the fix is only in scanner. I'll make the bugfix version 1.2.1 without any huge new function, now realyy bugfix release.

Thank you to yourself!
 
standard ADAT is 48kHz max x8ch

SMUX compatibility cuts the channel count in half to get 96kHz

Is Phonalyser designed to handle all ADAT flavours?
 
standard ADAT is 48kHz max x8ch

SMUX compatibility cuts the channel count in half to get 96kHz

Is Phonalyser designed to handle all ADAT flavours?
Phonalyser works not direct with devices, it uses different APIs. Under Linux - JavaSound.
As far as I see JavaSound can support it, but currently I use only 2 channels.
 
Back
Top Bottom