r/audiophile • • 2d ago

Discussion Step into the light, all are welcome - AKA I built an open-source vinyl capture tool and fell down a hole about pre-RIAA EQ curves

Hi, my first post here so be kind 😄 and a note to the mods - this post is about free software, MIT licensed, and non-commercial; it's free and open-source that was built with my love of audio, and the promotion of the same. Please don't delete.

I've been working on a free open-source vinyl capture solution, it is bit-perfect capture and encoding on all platforms Linux, macOS, and Windows - VCW, a vinyl capture workstation.

I am posting because of one part of it that turned out far more interesting than I expected, and I would like to hear from people who know more about it than I do.

The curves

If your record was cut after roughly 1955, your phono stage is correct and you can skip this bit, er - no not the correct term there for sure 😄. If the record was cut before that, it probably was not cut to RIAA. Columbia, Decca, EMI, NAB, AES and others each had their own characteristic. Play one back through a RIAA stage and you get the wrong tonal balance, usually a few dB out at both extremes.

Plenty of hardware and software can apply these curves. What I could not find anywhere was agreement on what the numbers actually are. So I worked them out from the published sources. The tool now carries sixteen curves, each with a citation to where its parameters came from and a note recorded wherever the sources disagree.

Some of what fell out of that:

  • A lot of published tables quote "dB at 10 kHz" for the treble section alone, not for the complete curve. Columbia LP is widely listed as -16 dB. The complete curve reads -15.54 dB. Read the table as the whole curve and you are wrong before you start.
  • NAB references 0 dB at 700 Hz, not 1 kHz. Every value in an NAB table is offset by 1.488 dB from everybody else's.
  • A trailing "-0" in a curve code means there is no treble network at all. It does not mean 0 dB of treble. Three curves in common tables are like this and all three get misread.
  • EMI and HMV are the same curve (Blumlein, 531 us turnover, no shelf, no rolloff). HMV then splits on a date: English HMV 33s cut after mid-July 1953 use the Columbia LP characteristic instead.
  • The "Decca 640 us / 53 us" curve that circulates online appears to be fictitious, a misreading of where a published graph leaves flat, taken for time constants. Decca's 78 characteristic and its post-1950 LP characteristic are two different real curves.
  • One row in a widely copied published table (RCA 45) has an arithmetic slip in it that has since propagated. The same page computes the equivalent row correctly two lines above.

The filter

Applying the EQ correctly at 44.1 kHz is harder than it looks, because the correction has to stay accurate right up against Nyquist. A straight bilinear transform of RIAA is 13.5 dB out at the top of the band at 44.1 kHz. Matched-z gets that to 3.1 dB. Fitting one extra pole and zero pair gets it to 0.078 dB worst case across 20 Hz to 20 kHz. That last one is what ships, and the conformance figure is measured in the test suite at all six rates from 44.1 to 192 kHz, so a regression fails the build rather than quietly sounding slightly wrong.

The EQ curve is never baked into the capture. Any post-processing performed is applied non-destructively. The EQ curve is a stored decision that is then applied on audition, on render and on export, and the exported files carry a tag saying which curve was used and whether it was actually applied. If the tool cannot establish a bit-perfect path it says so rather than claiming one.

Honest status

This is an alpha release, and it says so. Capture, track detection, metadata lookup, crash recovery and export (WAV, AIFF, FLAC, ALAC, MP3, Ogg Vorbis) all work and I use it on my own records. Capture-path verification has only been done on Linux x86_64 so far. The Mac and Windows builds exist and run, but I have not yet validated a recording device on either, so treat those as experimental.

Repo, releases and the full write-up on the curves: https://github.com/shunte88/vcw

What I would most like back: if you have pre-RIAA records and a source for a curve I have wrong, or one I am missing entirely, would you please share it with me. And, equally happy to be told my DSP is wrong.

Folks using macOS or Windows - give the solution a spin and let me know what you find

5 Upvotes

10 comments sorted by

2

u/rankinrez 1d ago edited 1d ago

You should probably over-sample on the EQ stage to avoid the Nyquist/aliasing problems you mention due to the high frequency of the top curve.

Other than that looks cool. What hardware is best for this? I expect any AD with a line level input will perform badly due to level mismatch, perhaps something for mic level works ok?

One thing I typically do after recording is normalise levels. Easy to do manually, harder to automate (esp. if there are any loud pops an automated system might confuse with the music and thus set the threshold too high).

1

u/shunte88 1d ago

it's actually pretty lightweight given its rust

I've gotten feedback from folks running it on a Pi 4 initially using the CLI they then migrated to using the web interface via vcw serve.

the tooling supports functionality for the entire ripping process on command line, and has a UI compiled into the solution that uses the same assets as the web interface.

I run it on two linux machines one of which is a beefy development box, but the other is just a simple office machine.

I have a windows machine but have to admit I've not booted it up in a good 5 years - its on the list

all builds are fully functional across all supported OS, when I cut a release all are built and put through their paces

1

u/rankinrez 1d ago

Nah I mean what audio hardware is well suited to taking an input signal directly from a phono cartridge, as opposed to the much higher voltage line level?

1

u/shunte88 1d ago

there are lots of head amps out there - I've had great success with the NAD phono pre-amp devices. I moved away from those USB flavors a while back, first with a second hand PS Audio phono-stage and now I use a Rega headamp. Most of these solutions have RIAA functionality on board.

If you're going to use a Pi there are a number of ADC/DAC combos that can be used, I have a HiFiBerry DAC+ ADC that works rather nicely and it's a nice one stop solution. They also have a DAC2 ADC PRO model that adds some additional functionality. No RIAA here so a software solution like vcw helps close the gap.

https://www.hifiberry.com/blog/adding-a-turntable-to-your-pi-based-audio-system/

1

u/rankinrez 1d ago edited 1d ago

Right but isn’t the input sensitivity mismatch a major issue??

Like if the circuit is expecting line level voltage of 0.5-2v (like the HiFi Berry) and it gets 5mv then I would not expect it to work well. You’re way to close to the noise floor to begin with.

You’d probably have better luck using something expecting mic level input, but even that is designed for a hotter signal than a phono cartridge produces. And is expecting a much lower input impedance.

Obviously phono stages are built to receive such low input, but they apply the equalisation curve so not suitable.

1

u/shunte88 1d ago

there are several models out there, a lot in the DIY community - just have a quick Google Wayne Kirkwood phono and you'll find some examples.

it depends on the manufacturer and the intended audience but these phono-amps have the necessary functionality baked in to make them a usable solution, everything from simple gain controls to matrixed dip switches that apply the correct amount of line level amplification for MM/MC without introducing adverse effects - checkout the rega line for examples.

vcw is intended to be a one size fits all tool for enthusiasts, audiophiles, archivists, and weekend vinyl warriors; the EQ specifics fall into the domain of the audiophiles and archivists - and if these individuals are aware of specific EQ requirements a given recording requires they'll likely have the time to research the required interfaces if they're looking to digitize said recording.

1

u/rankinrez 1d ago

Well that was my original question I guess.

You could have just responded to my first question with a link to the Wayne Kirkwood box. But I did as you said and googled. TIL!

2

u/shunte88 1d ago

lots of info out there from DC in the DIY to the "how much" variety

here's a typical Michael Fremer article from Analog Planet, in which ADC units priced from $300 to $3999 are discussed
https://www.analogplanet.com/node/119851/results

scroll to the bottom and there are several related articles

this can turn into a bit of a money pit if you're not careful - ask me how I know 😂

1

u/philipb63 1d ago

Fantastic write up!

1

u/shunte88 1d ago

thanks much, hopefully you'll check it out and find it useful - all feedback welcome when you step into the light 😃