Examples#

This section provides examples and demonstrations of how to use anira in various contexts, from simple audio processing to complex real-time plugins.

Built-in Examples#

anira comes with several built-in examples that demonstrate different use cases and integration patterns. These examples are available when building with -DANIRA_WITH_EXAMPLES=ON.

JUCE Audio Plugin#

Location: examples/juce-audio-plugin/

This example demonstrates how to integrate anira into a JUCE-based VST3 plugin for real-time audio processing. It shows:

  • Setting up anira within a JUCE plugin architecture

  • Managing real-time constraints in an audio plugin context

  • Handling parameter changes and state management

  • Building and deploying a VST3 plugin with neural network inference

Key files:

  • PluginProcessor.h/cpp: Main plugin processor with anira integration

  • PluginParameters.h/cpp: Parameter management

  • CMakeLists.txt: Build configuration for JUCE plugin

Building:

cmake . -B build -DANIRA_WITH_EXAMPLES=ON
cmake --build build --target anira-juce-plugin-example_VST3

Note

In the JUCE plugin example, there are several different models available. You can select the model by changing the MODEL_TO_USE variable in the CMakeLists.txt file. MODEL_TO_USE == 8 loads the RAVE model from a JSON configuration via anira::JsonConfigLoader — see the “Loading the Configuration from JSON” section of the Usage Guide guide.

CLAP Plugin Example#

Location: examples/clap-audio-plugin/

Demonstrates anira integration with the CLAP (CLever Audio Plugin) format:

  • CLAP plugin architecture with anira

  • Real-time audio processing with neural networks

  • Modern plugin format implementation

Key files:

  • anira-clap-demo.h/cpp: Main CLAP plugin implementation

  • anira-clap-demo-pluginentry.cpp: Plugin entry point

Building:

cmake . -B build -DANIRA_WITH_EXAMPLES=ON
cmake --build build --target anira-clap-demo

Benchmark Examples#

Location: examples/benchmark/

Three different benchmark examples showing various benchmarking scenarios:

Simple Benchmark#

Location: examples/benchmark/simple-benchmark/

Basic benchmarking setup demonstrating:

  • Single configuration benchmarking

  • Basic performance measurement

  • Simple benchmark fixture usage

CNN Size Benchmark#

Location: examples/benchmark/cnn-size-benchmark/

Benchmarks different CNN model sizes to evaluate:

  • Performance scaling with model complexity

  • Memory usage patterns

  • Optimal model size selection for real-time constraints

Advanced Benchmark#

Location: examples/benchmark/advanced-benchmark/

Comprehensive benchmarking suite featuring:

  • Multiple configuration testing

  • Parameterized benchmarks

  • Statistical analysis

  • Performance comparison across backends

Minimal Inference Examples#

Location: examples/minimal-inference/

These examples show the minimal code required to perform inference with each backend supported by anira. They do not use the anira library, but show how to use the underlying libraries directly.

External Examples#

Neural Network Inference Template#

Repository: nn-inference-template

A more comprehensive JUCE/VST3 plugin template that uses anira for real-time safe neural network inference. This plugin is more complex than the simple JUCE Audio Plugin example and features:

  • Professional GUI implementation

  • Advanced parameter management

  • State saving and loading

  • Real-world plugin architecture patterns

  • Production-ready code structure

This template serves as an excellent starting point for developing commercial audio plugins with neural network processing.