Go Back   Home > Forums > >
Home Forums Rules Articles diyAudio Store Blogs Gallery Wiki Register Donations FAQ Calendar Search Today's Posts Mark Forums Read

Equipment & Tools From test equipment to hand tools

Digital Distortion Compensation for Measurement Setup
Digital Distortion Compensation for Measurement Setup
Please consider donating to help us continue to serve you.

Ads on/off / Custom Title / More PMs / More album space / Advanced printing & mass image saving
Reply
 
Thread Tools Search this Thread
Old 13th May 2019, 11:54 PM   #181
1audio is offline 1audio  United States
diyAudio Member
 
Join Date: Mar 2004
Location: SF Bay Area
Digital Distortion Compensation for Measurement Setup
I believe the Juli windows app can be patched for a loopback.

The xp sound engine is much better for this. As is ASIO. For later versions you need to switch everything in the sound control to the target sample rate a at least the target bit depth.

Microsoft's first.audio priority is to have sound or they get calls which are expensive. . . The correct sound without distortion is a secondary issue.

I wonder how Linux for windows will handle this.
__________________
Demian Martin
Product Design Services
  Reply With Quote
Old 14th May 2019, 04:36 AM   #182
phofman is offline phofman  Czech Republic
diyAudio Member
 
Join Date: Apr 2005
Location: Pilsen
Thanks to all. Both sides of the VC loopback were configured at exactly the same 192/24 (96/24 for the other spectrum), there is a screenshot of that. It was not a default device. IMO that spectrum looks like 16bit decimation somewhere along the path.

ASIO would likely work but a duplex independent ASIO bridge is required.

Quote:
I believe the Juli windows app can be patched for a loopback.
Yes but I doubt more than one application can open the same ASIO side of the soundcard. We need playback for octave (real soundcard), playback for arta (loopback to octave), capture for octave (real soundcard), capture for arta (loopback from octave to arta). Plus octave are two independent processes, each opening its own device.

Splitting a routed multichannel soundcard into independent multiple virtual devices (running all at the same samplerate) is trivial in linux.

Quote:
I wonder how Linux for windows will handle this.
We will see. If it was proper virtualization with PCI passthrough for selected devices, it would be OK. But then it would require using linux apps for the measurement. I can imagine someone running Arta in wine windows emulation on ubuntu on WSL in windows. Not me, I do not see any need for the windows bottom layer, but it would work. But such setup can be already done, some virtual machines offer PCI/USB passthrough.
  Reply With Quote
Old 14th May 2019, 01:36 PM   #183
scott wurcer is offline scott wurcer  United States
diyAudio Member
 
scott wurcer's Avatar
 
Join Date: Jan 2004
Location: Belmont MA
Quote:
Originally Posted by phofman View Post
IMO that spectrum looks like 16bit decimation somewhere along the path.
Quite possible, there are not many unique codes in a 1kHz tone at exactly 96k sampling maybe looking at couple of cycles would show something?
__________________
"The way up and the way down are one in the same"
  Reply With Quote
Old 14th May 2019, 05:03 PM   #184
phofman is offline phofman  Czech Republic
diyAudio Member
 
Join Date: Apr 2005
Location: Pilsen
As always open source comes to the rescue of the dumb closed windows.

The wonderful Jackd (ported from linux to windows) offers multiple virtual ASIO devices with any number of channels JACK Audio Connection Kit|Using JACK on Windows. The patch configuration is easily scriptable (the GUI is just a layer on top of a command-line program, the whole chain can be started automatically with a script - BTW that is the way to code good software, not like GUI-only driver tools without any automation available that most HW manufacturers sell for windows/OSX).

The attached screenshot shows Arta -> ASIO JackRouter -> playback process in octave -> ASIO JackRouter -> capture process in octave -> ASIO JackRouter -> Arta FFT, 192/24 (jackd uses float32 internally). Again - this is how a bit-perfect chain should look like, but this time natively in Win10.

It will work.
Attached Images
File Type: png alsa_config.png (67.7 KB, 276 views)
File Type: png arta-jackd-win10.png (91.2 KB, 269 views)
  Reply With Quote
Old 21st May 2019, 05:32 PM   #185
phofman is offline phofman  Czech Republic
diyAudio Member
 
Join Date: Apr 2005
Location: Pilsen
Linux installation procedure gradually builds up Installation on Linux * pavhofman/nonlinear-compensation Wiki * GitHub. Not finished yet, the project is still for older octave 4.
  Reply With Quote
Old 24th May 2019, 10:21 AM   #186
thumb is offline thumb  Europe
diyAudio Member
 
Join Date: Oct 2006
Location: Denmark
Thanks, for your sharing. I was stuck on 96kHz with EMU 0202 and wineasio(Qjackctl) and you show a way to get 192kHz for Arta and wine in linux :P
  Reply With Quote
Old 24th May 2019, 02:46 PM   #187
phofman is offline phofman  Czech Republic
diyAudio Member
 
Join Date: Apr 2005
Location: Pilsen
Yeah, jackd has a fixed pre-configured frequency. WDM device -> wine - > alsa offers all samplerates/sample bits the hardware supports, direct access to the hardware without any resampling/modifications. IMO easier and more reliable than configuration in windows where the windows sound subsystem is difficult to circumvent and ASIO workarounds must be used.

Plus all alsa features are available to windows applications - bit-perfect loopbacks, merged soundcards, arbitrary routing of channels (i.e. virtual balanced outputs/inputs), and last but not least fully-maintained drivers for legacy hardware in the latest linux kernel.
  Reply With Quote
Old 3rd June 2019, 07:44 PM   #188
phofman is offline phofman  Czech Republic
diyAudio Member
 
Join Date: Apr 2005
Location: Pilsen
The new adapter version finally allows switching between loopback and DUT.

My very first real measurement - opamps distortion. Noniverting, unit gain, output reduced by -1dB with a voltage divider.

Images:

1. The adapter with simple opamp measurement board connected.

2. Non-compensated measurement of RC4556N at 3kHz

3. Split-compensated loopback at the same level as the previous measurement

4. Compensated measurement of RC4556N

5. Repeated compensated measurement of RC4556N

6. Compensated measurement of NE5532P

7. The tool split-compensating both sides during measurement.

Clearly NE5532P has lower distortion than RC4556N. Both distortions are way above the compensated loopback distortion.

I am glad the dirt-cheap 10-turn Bourns fake pot from ebay does the job perfectly, allowing easy setting down to a few thousands of dB. Since both voltage-divider and low-pass filter transfers are measured and used during the split-sides calculation, the wire-wound pot inductance does not matter.

The 5k pot is connected to the soundcard output permanently to keep same load during calibration and measurement.

The subtracting input mode was used: R input signal minus L input signal while L input is connected to output ground. This eliminated ADC artifacts and common-mode noise, to some extent.
Attached Images
File Type: jpg adapter_with_opamp_board.jpg (277.6 KB, 146 views)
File Type: png RC4556N-noncompensated.png (16.8 KB, 173 views)
File Type: png loopback-at-level.png (16.6 KB, 163 views)
File Type: png RC4556N-compensated-1.png (16.4 KB, 73 views)
File Type: png RC4556N-compensated-2.png (16.5 KB, 70 views)
File Type: png NE5532P-compensated.png (16.5 KB, 75 views)
File Type: png tool-split-compensating.png (59.9 KB, 78 views)

Last edited by phofman; 3rd June 2019 at 08:14 PM.
  Reply With Quote
Old 3rd June 2019, 08:07 PM   #189
KSTR is offline KSTR  Germany
diyAudio Member
 
KSTR's Avatar
 
Join Date: Jul 2007
Location: Central Berlin, Germany
I've silently followed this extremely interesting thread from the beginning but now things seem to have matured to a point where it's about time to implement this with my RME ADI-2 Pro FS. Currently I have only a Puppy (Slackware) Linux installed on a old laptop, looks like I need to install a full-blown Ubuntu on my main machine to get this running, right?
  Reply With Quote
Old 4th June 2019, 05:29 AM   #190
phofman is offline phofman  Czech Republic
diyAudio Member
 
Join Date: Apr 2005
Location: Pilsen
I would not use less than i3, 4GB RAM. This single-channel mode where compensation runs only on one channel takes about 3 x 20% = 60% of my old xeon X5xxx core. It's good to have multiple cores to avoid potential xruns.

As of linux distribution - you need octave 5.1 and compilation stack for compiling playrec. If you can do it in puppy, why not.

Nevertheless installing Ubuntu 18.04/Mint 19 (only Ubuntu LTS versions make sense, the intermediate Ubuntu versions are betas for new features) on a 120GB SSD (20EUR brand new) takes 20 minutes.
  Reply With Quote

Reply


Digital Distortion Compensation for Measurement SetupHide this!Advertise here!
Thread Tools Search this Thread
Search this Thread:

Advanced Search

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Baffle compensation for nearfield measurement lup31337 Software Tools 4 6th May 2016 08:33 PM
digital scopes and distortion measurement akis Equipment & Tools 5 12th October 2012 06:26 PM
Measurement setup /graph Sanon Multi-Way 3 26th July 2011 10:58 AM
Polar Measurement setup thadman Multi-Way 7 7th June 2009 06:29 PM
Help choosing measurement and modelling setup SimontY Multi-Way 65 26th April 2007 05:05 PM


New To Site? Need Help?

All times are GMT. The time now is 03:07 PM.


Search Engine Optimisation provided by DragonByte SEO (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Resources saved on this page: MySQL 14.29%
vBulletin Optimisation provided by vB Optimise (Pro) - vBulletin Mods & Addons Copyright © 2020 DragonByte Technologies Ltd.
Copyright ©1999-2020 diyAudio
Wiki