Error codes

A refusal names the stage, the code and the numbers that were measured. This is the whole catalogue, taken from the implementation.

How to read a refusal

  • The prefix is the stage: a code beginning biquad or onepole comes from the coefficient check, simulate from the stimulus check, arm from the last check before playback, resample from the conversion stage.
  • Measured values come back with the code. What you usually need is not the message but the number next to it: how far over the threshold you were.
  • Read them in order. If invalid numbers were reported upstream, the readings after that point mean nothing.
  • A code that is not in this list is not in the implementation either. The catalogue is complete by construction: a test refuses a code that has no description.
  • Numbers are never reused. Codes that were removed are not given to something else later.
  • Being refused is one of the two expected answers.

    The design is checked without making a sound, so a refusal costs nothing but the attempt. This is also what lets an AI correct its own work: paste the reply back and it can see exactly which threshold it missed.

  • If nothing loads at all, start with the shape.

    A file that fails the shape check never reaches the coefficient check, so a long list of node errors is not what you will see. You will see one graph error instead.

The catalogue

ARM

Raised in the last check before sound starts. Every one of them is about a chain containing a nonlinear node: it has to have been simulated, and the limiter and soft start have to be in place.

CODEWHAT IT SAYS
arm.not_simulated<node> modifies the signal non-linearly. Please run simulation verification in the graph editor before playback
arm.no_limiterUsing <node> requires a protection limiter. Please enable auto headroom in the output stage settings
arm.soft_start_out_of_rangeSoft start duration must be between 20 and 500 ms

GRAPH

The shape check. The file does not match the schema, and the reply lists the candidates for whatever field was not recognised.

CODEWHAT IT SAYS
graph.malformedThe graph definition does not match the schema

NODE

The coefficient check, raised per node while the values are turned into coefficients at both internal rates. The numbers that were measured come back with the code.

CODEWHAT IT SAYS
biquad.rate_out_of_rangeDesign rate is 0. Specify an internal rate (705600 / 768000)
biquad.cutoff_out_of_rangeThe cutoff is at or below 0 Hz, or at or above Nyquist
biquad.q_out_of_rangeQ is out of range (0.05 to 40)
biquad.gain_out_of_rangeThe gain is out of range (+-24 dB)
biquad.unstableThe coefficients are not finite (g and k must be positive and finite)
biquad.excessive_gainThe peak gain is too high
biquad.ultrasonic_boostIt boosts above 25 kHz. That never becomes audible, yet it still reaches the DAC, the amplifier and the tweeter, so it is refused by default
onepole.rate_out_of_rangeDesign rate is 0. Specify an internal rate (705600 / 768000)
onepole.cutoff_out_of_rangeThe cutoff is out of range (0.05 Hz to Nyquist)
onepole.unstableThe coefficients are not finite (g must be positive and finite)

RESAMPLE

The resample design, refused while it is being solved for a rate. The frequencies and tap counts involved come back with the code.

CODEWHAT IT SAYS
resample.no_transition_bandPassband is too wide for the entry rate. Lower the passband edge to prevent aliasing
resample.rates_invalidSample rate or conversion ratio is invalid (zero or not an integer ratio)
resample.taps_out_of_rangeFilter taps out of range (exceeds real-time processing limit or too short)
resample.taps_not_oddLinear phase requires an odd number of taps to maintain integer sample group delay
resample.design_failedWindow method failed to generate coefficients. Please check cutoff frequency and tap count
resample.minimum_phase_failedConversion to minimum phase failed
resample.not_finiteFilter coefficients contain invalid values (NaN or Inf)
resample.phase_mismatchDeclared phase type disagrees with coefficient symmetry (linear phase must be symmetric, minimum phase asymmetric)
resample.gain_not_unityPassband gain deviates from unity (0 dB)
resample.image_leakInsufficient stopband attenuation causes aliasing in the audible band. Use a stronger window or increase tap count
resample.stopband_too_highStopband edge is too high. It must not exceed the first image frequency (sample rate - passband)
resample.shape_out_of_rangeShaping frequency must be within the valid band (above 0 and below passband top), or transition width must be positive

RPC

The control interface between the app and the engine, rather than anything about your design. Most of these mean the engine is not running, is already running, or was asked for a device it cannot open.

CODEWHAT IT SAYS
-32700Not readable as JSON
-32600Not shaped like a JSON-RPC 2.0 request
-32601Method not found
-32602Argument has the wrong shape, or is out of range
-32603Internal daemon error
1001The audio engine is already running. Stop playback before changing this configuration
1002The audio engine is not running. Start playback first
1003Cannot open audio device
1004Unknown parameter ID
1005Real-time processing queue is full. Could not apply parameter update
1006Sample rate must belong to the 44.1 kHz, 48 kHz, or 32 kHz family
1011Real-time processing queue is full. Could not apply graph swap
1013Safety validation failed. Non-linear graphs require simulation verification and active protection limiter
1016Unknown graph ID. Check available graphs in the library
1017No workspace folder configured. Changes will not be saved across restarts
1018Cannot detect input sample rate. Specify an explicit sample rate to open the device
1019Unknown resample design name. Check available designs in the library
1020The resample design failed validation checks
1021Invalid resample design configuration. Conflicting target sample rates detected
1022The DSD modulator design failed validation checks. The audio device itself is operating normally
1023This operation cannot be performed over remote network connection
1024A measurement sweep is currently playing. Wait for it to complete or stop it first
1025This beta build has expired. Download a newer build to keep using Sonir Bench
1026The system clock is set earlier than a time this Mac has already passed. Correct the date and time to continue

SDM

The DSD modulator stage, raised when a chosen DSD rate, order or conversion cannot be made to work with what is currently open.

CODEWHAT IT SAYS
sdm.order_out_of_rangeModulator order is out of the supported range
sdm.obg_out_of_rangeOut-of-band gain is out of range. Above 1.5 a 1-bit modulator becomes unstable; at or below 1.0 noise shaping is ineffective
sdm.obg_unreachableCould not solve for target out-of-band gain at the specified order and sample rate
sdm.pole_outside_unit_circleA loop-filter pole lies on or outside the unit circle, causing instability. Please adjust order or out-of-band gain
sdm.msa_too_lowMaximum stable amplitude is too low; required attenuation to stabilize the modulator leaves insufficient signal headroom
sdm.attenuation_too_largeRequired attenuation for this design exceeds the maximum limit (12 dB)
sdm.rate_family_unsupportedInput sample rate family has no native DSD rate and family conversion is disabled. Enable conversion to 44.1 kHz family for DSD output
sdm.interpolation_design_failedCould not design internal interpolation filter for this sample rate
sdm.family_conversion_failedCould not build rate-family conversion filter between these two sample rates
sdm.exit_rate_fixedExit rate cannot be modified during DSD (DoP) output (fixed to DSD rate / 16 by DoP specification)

SIMULATE

The stimulus check, run on a chain containing something nonlinear before it is allowed to be heard. Invalid numbers, peaks, DC and ultrasonic content are all measured here.

CODEWHAT IT SAYS
simulate.not_finiteCalculation error (NaN or Inf detected). Check if filter or gain settings are causing oscillation
simulate.excessive_peakOutput exceeded 0 dBFS for reference-level input. Gain is too high, please reduce gain settings
simulate.dc_offsetA DC offset was detected in the output. For speaker protection, place a DC Blocker node after the non-linear stage
simulate.ultrasonic_energyExcessive ultrasonic energy above 25 kHz detected. To protect equipment, please add a low-pass filter to attenuate high frequencies
simulate.not_runnableCould not run simulation stimulus (block length or sample rate mismatch)