Class PrePostProcessor#

Note

Construct via the Class AniraWeb factory in most cases: aniraWeb.PrePostProcessor(...) rather than new PrePostProcessor(...). The factory threads the WASM instance through for you.

class PrePostProcessor(wasmInstance, config, createFn)#

TypeScript wrapper for anira::PrePostProcessor Thread-safe C API wrapper

Extends:
  • BaseWrapper

Arguments:
  • wasmInstance (AniraWasmInstance)

  • config (PossiblePointer<InferenceConfig>)

  • createFn ((configPtr: number) => number)

afterInference(buffers, backend)#

Mirrors anira::PrePostProcessor::after_inference(). Receives the model’s output tensors (a VectorBufferF) produced by the backend. Runs on the inference worker, not the audio worklet.

Arguments:
  • buffers (PossiblePointer<VectorBufferF>)

  • backend (number)

beforeInference(buffers, backend)#

Mirrors anira::PrePostProcessor::before_inference(). Receives the model’s input tensors (a VectorBufferF) about to be fed to the backend. Runs on the inference worker, not the audio worklet.

Arguments:
  • buffers (PossiblePointer<VectorBufferF>)

  • backend (number)

destroy()#

Free the underlying C++ object. See Lifecycle and Cleanup for when to call this.

getInput(channel, tensorIndex)#

Mirrors anira::PrePostProcessor::get_input().

Arguments:
  • channel (number)

  • tensorIndex (number)

Returns:

number

getOutput(channel, tensorIndex)#

Mirrors anira::PrePostProcessor::get_output().

Arguments:
  • channel (number)

  • tensorIndex (number)

Returns:

number

popSamplesFromBuffer(ringBuffer, buffer, numSamples)#

Mirrors anira::PrePostProcessor::pop_samples_from_buffer().

Arguments:
  • ringBuffer (PossiblePointer<RingBuffer>)

  • buffer (PossiblePointer<BufferF>)

  • numSamples (number)

popSamplesFromBuffer(ringBuffer, buffer, numNewSamples, numOldSamples)#

Mirrors anira::PrePostProcessor::pop_samples_from_buffer().

Arguments:
  • ringBuffer (PossiblePointer<RingBuffer>)

  • buffer (PossiblePointer<BufferF>)

  • numNewSamples (number)

  • numOldSamples (number)

popSamplesFromBuffer(ringBuffer, buffer, numNewSamples, numOldSamples, offset)#

Mirrors anira::PrePostProcessor::pop_samples_from_buffer().

Arguments:
  • ringBuffer (PossiblePointer<RingBuffer>)

  • buffer (PossiblePointer<BufferF>)

  • numNewSamples (number)

  • numOldSamples (number)

  • offset (number)

popSamplesFromBuffer(ringBuffer, buffer, numNewSamples, numOldSamples, offset, numBatches)#

Batched overlapping-window extraction: runs the offset extraction numBatches times in native code, striding the output offset by the window size (numNewSamples + numOldSamples) each batch. Prefer this over a JS loop for large batches — it crosses the JS↔Wasm boundary once instead of once per batch element.

Mirrors anira::PrePostProcessor::pop_samples_from_buffer().

Arguments:
  • ringBuffer (PossiblePointer<RingBuffer>)

  • buffer (PossiblePointer<BufferF>)

  • numNewSamples (number)

  • numOldSamples (number)

  • offset (number)

  • numBatches (number)

postProcess(buffers, ringBuffers, backend)#

Mirrors anira::PrePostProcessor::post_process().

Arguments:
  • buffers (PossiblePointer<VectorBufferF>)

  • ringBuffers (PossiblePointer<VectorRingBuffer>)

  • backend (number)

preProcess(ringBuffers, buffers, backend)#

Mirrors anira::PrePostProcessor::pre_process().

Arguments:
  • ringBuffers (PossiblePointer<VectorRingBuffer>)

  • buffers (PossiblePointer<VectorBufferF>)

  • backend (number)

pushSamplesToBuffer(buffer, ringBuffer, numSamples)#

Mirrors anira::PrePostProcessor::push_samples_to_buffer().

Arguments:
  • buffer (PossiblePointer<BufferF>)

  • ringBuffer (PossiblePointer<RingBuffer>)

  • numSamples (number)

setInput(value, channel, tensorIndex)#

Mirrors anira::PrePostProcessor::set_input().

Arguments:
  • value (number)

  • channel (number)

  • tensorIndex (number)

setOutput(value, channel, tensorIndex)#

Mirrors anira::PrePostProcessor::set_output().

Arguments:
  • value (number)

  • channel (number)

  • tensorIndex (number)