Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Reference recordings

Reference recordings check the automatic render against a render made elsewhere. Each one renders a generated Vital preset and MIDI file in a standard DAW host, on the retail Vital 1.0.7, exported as 32-bit float stereo at 44.1 kHz with its tail. Our host draws 20 renders of the same preset, MIDI file and tempo, in sequence on one fresh plug-in instance. One gain per recording matches its level to those renders. The comparison then asks whether the recording’s shape lies as close to the renders as they lie to each other: its peak-to-RMS ratio, its duration to the tail floor and its envelope. The testing page gives the method, and the render spread page the outputs, the gain fit, the tolerance and the floor.

The recordings and the renders stay local. This page and the report next to it hold the preset ids, the hashes of the preset, the MIDI file and the recording, and the metrics. report.json holds, per recording, the fitted gain, the comparison after it and the comparison as recorded.

38 recordings cover isolated controls, musical presets of each role, look-alike pairs and complex presets, at 120 and 140 BPM. For the 34 whose DAW exported the state it played, the exported state matches the preset on every control, at the recording’s tempo.

Result

The acceptance of #256 asks every recording to match after its gain, so it is not met. A level difference within ±3 dB is no fault: the compare stage of #12 matches the loudness of two sounds before its distances. render::spread::compare_fitted gives the verdict after the gain, and render::spread::compare the comparison as recorded, for information only.

  • After the gain fit, 12 of 38 recordings match the renders on all three outputs of the sound’s shape: the peak-to-RMS ratio on 37, the duration on 14 and the envelope on 31.
  • As recorded, for information, 0 of 38 lie within the limit on all five outputs: the RMS level on 0, the peak on 1, the peak-to-RMS ratio on 37, the duration on 12 and the envelope on 0.
  • The fitted gains lie from +1.91 to +2.43 dB, with a median of +2.17 dB. None lies beyond ±3 dB.

Every gain is positive: each recording is quieter than the renders, by the amounts above. The cause is not known, on either side: our host’s gain staging and export are as much in question as the DAW’s.

What remains unexplained

Nothing was tuned to make a recording match.

  • Duration. A clip ends at its last sample above -96 dBFS. The gain fit raises each recording before its end is measured, so the level offset does not explain an early end. The data point to the export stopping early, so an early end measures where the export stopped, not how the tail decays.
    • 21 recordings end earlier than the renders, beyond the limit, and 3 end later.
    • 14 of the earlier ones end 0.1 s or more early, from 0.22 to 1.68 s. The other 7 end 0.5 to 53.8 ms early.
    • The later ones end late by 44.2 ms (cplx_22__pad_chords_120bpm), 40.9 ms (mus_sub_bass_00__bass_octave_120bpm) and 21.7 ms (cplx_17__arp_120bpm).
  • 19 recordings miss on the duration alone.
  • 7 recordings lie beyond the limit on the envelope, at ratios from 1.02 to 2.96. 5 of them also lie beyond it on the duration.
  • The peak-to-RMS ratio lies beyond the limit on 1: iso_porta_force_0.1__chord_long_C4maj_v102, at a ratio of 1.98, and 2.96 on the envelope.

The recordings and renders stay local, so no test recomputes these numbers; they were measured on the local files after the gain fit:

  • In each of the 21 recordings that end earlier than the renders, the file ends within 371 frames, 8.4 ms, of the recording’s last sample above -96 dBFS.
  • In the 14 that end 0.1 s or more early, the last 50 ms of the recording lie within 1.9 dB of the renders’ median over the same span from the onset. The delay preset stops at -76.1 dBFS against -75.4 for the renders, so its sound still sits 20 dB above the tail floor when the file ends.

So each recording stops while it still sounds as the renders do: the export ended before the tail did. This is an inference. The calibration recording, signals of known level and decay sent through the DAW chain of the references and through our host, will settle it.

The draws

The renders of each recording also check the tolerance and the draws.

  • Each render, held out in turn and compared with the other 19 as a clip, lies within their limit at these rates over the 760 cases: 95.1 % on the RMS level, 95.1 % on the peak, 94.6 % on the peak-to-RMS ratio, 95.0 % on the duration and 95.5 % on the envelope. The rank of 19 renders covers 19 in 20, 95.0 %.
  • The lag-1 autocorrelation of each set of 20 has a median of -0.17 on the RMS level (-0.41 to 0.69), -0.05 on the peak (-0.49 to 0.48), -0.05 on the peak-to-RMS ratio (-0.48 to 0.48) and -0.06 on the duration (-0.50 to 0.40).
  • The adjacent ratio has a median of 1.09 on the RMS level (0.44 to 1.66), 1.01 on the peak (0.52 to 1.36), 1.03 on the peak-to-RMS ratio (0.50 to 1.53), 0.97 on the duration (0.28 to 1.45) and 1.01 on the envelope (0.89 to 1.30).

The lag-1 autocorrelation of independent draws lies near -0.05, within about ±0.45 for 20 renders, so these medians show no drift over a sequence.

Each recording

The gain is the fitted gain in dB. The duration difference is the recording’s duration after the gain minus the median of the renders, in ms. Each ratio is the difference over its limit: above 1 lies beyond the limit. The first three ratios are the verdict after the gain, the last five the comparison as recorded.

IdBPMGain (dB)Duration difference (ms)Peak-to-RMSDurationEnvelopeRMS, as recordedPeak, as recordedPeak-to-RMS, as recordedDuration, as recordedEnvelope, as recorded
iso_init__chord_long_C4maj_v102120+2.20+0.30.800.440.7741.723.910.800.441.82
iso_uni_v7_det40__chord_long_C4maj_v102120+2.16-0.10.210.360.9552.552.060.210.361.67
iso_chorus_mix100__chord_long_C4maj_v102120+2.20-18.10.411.330.8935.562.060.411.762.81
iso_amp_rel1__chord_short_C4maj_v102120+2.34+2.60.390.931.037.391.640.391.881.96
iso_reverb_d1__chord_short_C4maj_v102120+2.32-22.00.360.500.704.641.650.362.631.11
iso_lfo_amp_1_8__chord_long_C4maj_v102120+2.17+0.20.240.250.8428.8015.470.240.301.72
iso_comp_fast__chord_long_C4maj_v102120+2.17-2.20.660.730.9338.682.970.660.773.47
iso_dist_soft_12db__chord_long_C4maj_v102120+2.18-0.50.381.160.85183.438.380.381.375.97
iso_delay_1_8_fb50__chord_short_C4maj_v102120+2.43-1683.40.43187.460.887.491.940.43187.481.91
mus_pad_00__chord_long_C4maj_v102120+2.00-1062.40.344.221.023.241.410.344.221.11
mus_supersaw_00__chord_long_C4maj_v102120+2.10-707.30.485.530.9619.802.580.485.562.32
mus_keys_00__phrase_pad_chords_120bpm_v102120+2.18-40.40.240.340.944.781.290.240.341.68
mus_stab_00__chord_short_C4maj_v102120+2.14-238.80.464.050.755.852.750.464.181.35
mus_pluck_00__strum_120bpm120+2.15-606.00.3453.340.9810.281.340.3453.932.47
iso_porta_force_0.1__chord_long_C4maj_v102120+2.16+0.61.980.542.96216.10104.931.980.5014.68
mus_pad_00__pad_chords_120bpm120+2.18-1202.20.465.101.034.491.550.465.121.24
mus_arp_00__arp_120bpm120+2.20-782.50.445.961.0411.271.100.445.983.22
mus_lead_00__lead_legato_120bpm120+2.16-388.40.3819.180.7578.483.330.3819.471.03
mus_reese_bass_00__bass_octave_120bpm120+2.05-65.60.470.500.873.9394.140.470.531.48
iso_porta_0.1__lead_glide_120bpm120+2.13+0.20.520.380.9954.971.140.520.409.91
mus_fx_00__chord_long_C4maj_v102120+2.18-1253.90.385.491.139.791.700.385.521.96
conf_cutoff_vs_wavetable_v1_a__chord_long_C4maj_v102120+2.15+0.20.470.320.9472.9316.820.470.301.54
conf_cutoff_vs_wavetable_v1_b__chord_long_C4maj_v102120+2.17-0.20.590.210.95217.37109.930.590.261.35
conf_phaser_flanger_chorus_v1_a__chord_long_C4maj_v102120+2.17-2.80.341.390.9949.782.180.342.422.75
conf_phaser_flanger_chorus_v1_b__chord_long_C4maj_v102120+2.13-3.20.961.960.8762.044.390.962.132.32
conf_phaser_flanger_chorus_v1_c__chord_long_C4maj_v102120+2.26-17.70.331.430.9844.421.450.331.812.60
conf_spread_vs_stereo_fx_v1_a__chord_long_C4maj_v102120+2.17-0.80.311.280.8221.181.910.311.391.57
conf_spread_vs_stereo_fx_v1_b__chord_long_C4maj_v102120+2.18-53.80.193.120.8027.902.410.193.532.24
mus_pad_05__chord_long_C2maj_v102120+1.99-860.00.502.830.965.932.630.502.861.15
mus_keys_04__chord_short_C5maj_v102120+2.39-217.60.262.190.738.911.640.262.221.08
mus_bell_00__pad_chords_120bpm120+2.12-470.00.721.940.915.572.360.721.971.47
cplx_22__pad_chords_120bpm120+2.17+44.20.5424.670.9538.621.560.5423.901.10
mus_808_00__bass_glide_120bpm120+2.13-2.40.250.730.8923.624.090.250.874.02
mus_reese_bass_05__bass_glide_120bpm120+2.06+0.40.320.250.943.463.330.320.371.22
mus_sub_bass_00__bass_octave_120bpm120+2.20+40.90.8247.471.09157.9646.020.8247.164.10
cplx_17__arp_120bpm120+2.21+21.70.8259.940.9764.424.850.8259.814.03
mus_arp_02__arp_140bpm140+1.91-349.10.463.900.976.280.540.463.951.88
mus_lead_03__lead_glide_140bpm140+2.23-381.60.647.050.9014.601.540.647.161.17