Frieve Vinyl Explained – Microscopic stylus/groove physics simulation
Understanding Frieve Vinyl: A Microscopic Physics Simulation
This application provides a high-fidelity, slow-motion simulation of an analog stylus navigating a vinyl record groove. Rather than relying on simple visual approximations, it employs rigorous microscopic physics—specifically rigid-body dynamics, viscoelastic damping, and Hertz/Winkler contact models.
All calculations are performed using SI units to ensure that resonance frequencies, distortion, and Signal-to-Noise Ratio (SNR) align with real-world empirical data.
🛠️ Interface & Control Parameters
The simulation offers a comprehensive suite of controls to manipulate the playback environment:
| Category | Parameters | Details/Options |
|---|---|---|
| Navigation | View Controls | Drag to orbit, Wheel/Pinch to zoom, Pause/Play |
| Visuals | Overlays | Contact markers (red = no contact), Part labels, PVC chain-scale, Ghost stylus (tracking error), Travel-axis ruler |
| Signal | Input Source | Pink noise (music-like), Sine wave (test), Silence (noise floor) |
| Signal | EQ & Levels | Frequency (100Hz to 15kHz), Peak level, HF cutoff, Bass mono filter |
| Groove | Physicality | Speed (33⅓, 45, 78 rpm), Radius, Roughness , Dust, Static, Scratches |
| Stylus | Hardware | Shape (Elliptical mil vs. Spherical mil), Side radius, Scanning radius, VTF, Tip mass, Compliance |
🎚️ The Mastering Signal Chain
The process of converting an electrical signal into a physical groove follows a specific sequence of transformations:
The final output dictates the normal displacement of the left and right groove walls at a angle.
🔬 Microscopic Physics & Contact
When the stylus meets the PVC, the interaction is governed by extreme pressures. At a Vertical Tracking Force (VTF) of :
- Normal Force: Each wall experiences approximately .
- Contact Pressure: The pressure reaches .
Since this pressure exceeds the yield stress of PVC, the microscopic "peaks" (asperities) within the contact patch are crushed. The simulation handles this by using an analytic patch-averaging factor to distinguish between visible surface roughness and the actual roughness felt by the stylus.
Tracing Distortion
Distortion is not added via a formula; it is an emergent property of the geometry. The simulator constantly compares the stylus's scanning-radius parabola against the actual wall gap. This naturally simulates:
- Inner-groove treble loss.
- Pinch-effect distortion.
📏 Noise and the "Bit Ruler"
To quantify resolution, the simulation uses a Bit Ruler that maps a full-scale wall displacement of along the modulation axes.
Noise Calibration:
- Default Roughness:
σ=13.17nm - Effective Resolution: bits
- SNR:
- Dynamic Range (DR): (at peak level)
Sources of Interference
- Groove Roughness: Modeled as a three-scale process to simulate molecular errors and stamper precision.
- Contaminants: A physical deposition model for grit, fibers, and flakes. Only particles physically compressed by the stylus cause deformation.
- Static: Injected as electrical pulses (mimicking the playback chain) rather than mechanical vibrations.
⚠️ Model Constraints & Simplifications
To maintain performance, certain real-world complexities are omitted:
Groove-direction vibrationStick-slip phenomenaWow, flutter, and eccentricityRecord warpCartridge electrical loading- Note: Roughness is treated as one-dimensional along the groove, with lateral averaging handled analytically.
📊 Validation & Analysis
The simulation's accuracy is verified against known physical orders of magnitude.
Performance Metrics
| Test Case | Result |
|---|---|
| 1kHz Sine (5cm/s) | Output Error: / |
| Contact Resonance | |
| Cantilever Deflection | (static) |
| Arm Resonance |
Analysis Workflow
To evaluate the current configuration, the user can perform the following:
- Calibrate to SNR 60dB
- Set Measurement Time (0.25s for speed, 1.0s for accuracy)
- Run Measurement Calculate Frequency Response (with 1/24-oct smoothing), Noise Spectrum, and Skip Rate.
// Conceptual representation of the physics loop
while (simulating) {
calculate_hertz_winkler_contact(stylus_pos, wall_geometry);
apply_viscoelastic_damping(velocity, damping_coeff);
update_rigid_body_dynamics(force, mass);
integrate_displacement();
}