Friday, August 31, 2018

Vinyl LP Record

In this post I will detail one 12" stereophonic 33⅓ vinyl LP record. Initially I was hoping to be able to image the grooves cut into the surface and recover the audio track visually, but the resolution of a borrowed microscope demonstrated that the task was beyond its capabilities. Unfortunately that's left me to issue a caveat from the outset: reader beware; no experimental fact checking has taken place...

First, some mathematical properties:
Rotations per minute: 33⅓ = 100/3
Rotations per second: => 5/9ths
Outermost groove radius: 146.05mm
Innermost groove radius: 60.3mm
This gives us about 85.75mm of playable radius.
We're told that each side can contain up to 23 minutes (1380 seconds) of audio, the playback of which would require the disc to rotate 767 times (5/9 x 1380).
Fitting 767 rotations into 85.75mm gives us roughly 0.112mm separation between adjacent edges of the groove.
Finally, we define the spiral travelled by the stylus at time t as some initial offset less 0.112mm for each 2πθ of rotation as it moves from the outermost to the innermost radius.
let r(t) = 146.05 - 0.112 * (5 / 9) * t;
Let's switch to using µm, as things are starting to get tiny!

Note: the groove on a stereophonic record is a 90 degree cut rotated 45 degrees so that it looks like a V cut into the vinyl. The inner surface (closest to the center of the record) modulates one of the stereo audio tracks, while the outer surface (closest to the edge of the record) modulates the other. To increase likelihood of the stylus tracking the groove the V should never be shallower (or, equivalently, narrower) than 25µm.

We'll divide the 112µm groove into a handful of regions:
  1. First, our mandatory 25µm notch, which we later split into an inner 12.5µm and an outer 12.5µm.
  2. An optional (but recommended) gap
  3. Inner and outer channels for modulating the left and right stereo data
Mathematically we say the groove width is made up of these components: 112µm - 25µm - gap = 2 * audio;
This tells us: once we've picked a size for the gap, we will know the maximum width for each of our audio channels; we don't need to refer to the gap size again once we've worked out the audio channel widths.

Now it's time to scale our input audio signals... For simplicity, let's ignore the bitness of a digital audio signal and assume that the signal amplitude fits into the range from +1 to -1. Note that the 0 point maps exactly onto the half-channel.
*Another assumption: positive samples have shallower grooves*
Remember: at time t, the stylus can be found at radius = r(t) [defined above].
let inner and outer be the left and right audio samples (numbers between -1 and +1) at time t. Combined with the rotation of the disc (giving us θ at time t) these four equations below define the groove geometry...
Surface: inner radial offset = (audio / 2) * (inner - 1) - 12.5µm
Surface: outer radial offset = (audio / 2) * (1 - outer) + 12.5µm
Groove: radial offset = (audio / 2) * (inner - outer) / 2
Groove: vertical offset = (audio / 2) * ((inner + outer) / 2 - 1) - 12.5µm

The image below is a stylized aid for identifying the described parts of a groove, as seen looking down the groove from head on. The image shows the inner channel modulated to a positive audio sample and the outer channel modulated to a negative audio sample. The stylus is offset to the right as a result of this stereo modulation.
  • Green: maximum and minimum audio modulation points (where audio signal is +1 or -1)
  • Orange: the imaginary "zero" line
  • Light blue: surface of the inner modulation area
  • Red: surface of the outer modulation area
  • Black: stylus position
  • Dark gray: uncut portion of vinyl LP record
  • Light gray: mandatory unusable 25µm notch
  • do we map left to inner and right to outer?
  • do we map positive to high (shallower V) and negative to low (deeper V)
  • what's an appropriate audio channel width? if we know the maximum modulation in the 45 degree vector, we can scale it by SQRT(2) to find the channel width.
  • is it appropriate to map the zero sample point to half of the audio channel width? it might