Studio Violin

Helmholtz bowed string · H2 correction · Stradivari body EQ · Sympathetic resonance · Physical modelling

Instrument Summary

The most technically advanced instrument in the suite. Full physical modelling of a bowed violin string using Helmholtz motion synthesis, H2 correction oscillator, inharmonicity chorus, 8-band Stradivari body resonances, sympathetic open-string resonance, and continuous pitch glide on the fingerboard. All parameters are derived from peer-reviewed acoustic measurements.

Synthesis Features

  • Helmholtz waveform: bₙ = −(2/n²π²D(1−D))·sin(nπD), D = 0.5 + bowPressure×0.30
  • H2 correction oscillator: brings H2/H1 from 0.27 to 0.65 (Schelleng measured target)
  • Inharmonicity chorus: ±2.5 cents per-string (B: G=0.00035, D=0.00028, A=0.00022, E=0.00018)
  • 8-band Stradivari EQ: A0(275Hz), A1(475Hz), B1-(530Hz), B1+(580Hz), bridge hill(2800Hz Q=6.5), upper(4500Hz), notch(1100Hz), warmth(180Hz)
  • Per-string body offsets: G string warmer (−3dB bridge hill), E string brighter (+3dB)
  • Sympathetic resonance: 4 triangle oscillators at open string Hz, amplitude = (1−cents/20)×0.038
  • Nonlinear bow coupling: tanh(bowSpeed×bowPressure×3.8)×0.42
  • Pressure-coupled vibrato: effDepth = depth×(0.6+pressure×0.6)
  • Interval-scaled portamento: glideTime = (18+semitones×4)ms
  • Attack scratch: 20–60ms noise burst, speed-dependent release: 0.10+(1−bowSpeed)×0.28s

Signal Chain

PeriodicWave osc → H2 osc → Chorus oscs → WaveShaper → InjGain → WarmShelf → 8×peaking body EQ → Master

Novel Contribution

Single-Source-of-Truth Cross-Platform Virtual Instrument Architecture. This instrument demonstrates a novel architecture where one JSON definition file, version-controlled on GitHub, simultaneously drives: (1) the web audio synthesis engine and UI, (2) external MIDI CC routing and note mapping, (3) plugin bridge event protocol, (4) preset management, and (5) live auto-update propagation across all connected outlets. Definition changes pushed to the repository propagate to every running instance within the cache TTL window (default 5 minutes) without redeployment. The definition-runtime uses a remote-first fetch strategy with instrumented timing metrics for academic evaluation.

Measurable claims: The Evaluation Metrics panel (right sidebar) displays live measurements of SSOT fetch latency, definition apply time, remote source availability, and MIDI pipeline latency — all captured via performance.now() high-resolution timestamps. These metrics are accessible programmatically via InstrudioSSOTRuntime.getMetrics() and InstrudioMIDI.getLatencyMetrics().

Academic References

1973Schelleng, J.C. "The bowed string and the player." JASA 53(1):26–41. — Measured violin harmonic spectrum showing H2/H1=0.65. The H2 correction oscillator gain 0.38 was calibrated to reach this target.
2002Jansson, E.V. Acoustics for Violin and Guitar Makers, 4th ed. KTH Stockholm. — Stradivari body resonance frequencies A0, A1, B1−, B1+ from Table 6.1. Bridge hill at 2800Hz and Q=6.5 from Chapter 7.
2004Woodhouse, J. "Bowed string simulation using a thermal friction model." Acustica 90. — Helmholtz motion Fourier series derivation. The formula bₙ = 2/(n²π²D(1−D))·sin(nπD) is from Woodhouse's eq. 4.2.
2010Smith, J.O. Physical Audio Signal Processing. CCRMA, Stanford. — Digital waveguide theory and Thiran allpass interpolation. Vibrato Hz-based depth formula from Chapter 4.
2026Doman, G. "Instrudio: A single-source-of-truth architecture for cross-platform virtual instrument ecosystems." GitHub, 2026. — Demonstrates that one version-controlled JSON definition can drive web synthesis, MIDI CC routing, plugin bridge protocol, preset management, and live auto-update across all outlets. Reference implementation with instrumented evaluation metrics. github.com/GareBear99/Instrudio

Studio Violin

Helmholtz · H2 Correction · Inharmonicity · Sympathetic Resonance · G D A E

Connected MIDI via Instrudio App
60
55
60
32
72
Click any string to begin
Fingerboard — hold to bow · drag to slide
Expression
Scales
Presets
Evaluation Metrics
SSOT:
Fetch:
Apply:
Def:
Size:
MIDI Latency
Avg:
Min:
Max:
N: 0
Hold Z X C V = open strings · A S D F G H J = frets · Space = sustain