Agentic AI • LangGraph • iOS 17+

Will It Sound Good
When You Post It?

AuraLinter is a recording-quality coach for creators. Record or import audio, get evidence-backed verdicts on intelligibility, clipping, noise, and echo — then hear and export the corrected version. Plus: ask DSP questions and get compiler-verified C++ kernels from a multi-agent LangGraph backend.

iOS 17.0+ • SwiftUI • AVAudioEngine • FastAPI + LangGraph Backend

How It Works

From microphone to compiler-verified C++ kernel — an agentic DSP pipeline on your iPhone.

Capture Mic • File • AVAudioEngine
Orchestrate LangGraph Multi-Agent Graph
Verify & Export clang++ Compile • SSE Stream

Engineered for DSP Intelligence

A SwiftUI frontend backed by a FastAPI + LangGraph agentic orchestration engine — with compiler-verified code generation and Production RAG.

Recording Quality Coach

Record or import audio, select your intent (Video, Podcast, Voice), and get evidence-backed verdicts: speech coverage, loudness, clipping, noise, room echo, and intelligibility — each with confidence scoring and actionable fixes.

Evidence, Not Vanity Scores

Every finding comes with evidence: framewise envelope waveforms, speech/silence intervals, clipping markers, and measured values. cant_tell verdicts are honest when the model lacks confidence — no fake metrics.

A/B Preview & Export

Toggle between original and corrected audio with hold-to-hear-original. Export to Video MP4, Audio M4A, or WAV — all with loudness normalization applied to your target level.

Agentic DSP Engine

Switch to the Ask tab for multi-agent DSP code generation. A LangGraph state machine with Coder → Critique loop generates C++ kernels, verifies them with clang++ -fsyntax-only, and streams the process live via SSE from a FastAPI backend. Production RAG over the DSP canon with hybrid pgvector search.

Core Capabilities

Each capability is a complete surface: capture, query, generate, and verify — all orchestrated by agentic AI.

Onboarding — 'The check': will it sound good when you post it?

Onboarding

A 3-page guided tour introducing the creator recording-quality loop: check, verdict, fix. Honest expectations about what the app can and can't measure.

Guided 3 Pages Skip
Check tab — recording-quality coach entry with waveform and intent chips

Check Tab

The main entry point. Record or import audio, select an intent (Video, Podcast, Voice), add a reference track, and submit for AI-powered quality analysis.

Record Import Reference
Processing — live tool log streaming during AI analysis

Live Processing

Watch the LangGraph agent work: router classification, loudness measurement, EQ testing, compressor evaluation — each step streamed live as it happens.

LangGraph SSE Live Log
Results — verdict bar with evidence waveform and finding cards

Quality Results

Evidence-backed findings: speech coverage, loudness, clipping, noise, echo, and intelligibility. Each card shows the verdict, confidence, evidence, and actionable fix.

Verdicts Evidence Fixes
Editor — waveform with A/B corrected-audio toggle and export controls

Editor & Export

A/B preview: toggle between original and corrected audio with hold-to-hear-original. Export to Video MP4, Audio M4A, or WAV with loudness normalization applied.

A/B Export MP4/M4A/WAV
Projects tab — local and server-side project history

Projects

Local SwiftData persistence plus server-side run history. Reopen any past check, revisit results, or continue an editor session exactly where you left off.

SwiftData History Resume
Ask tab — DSP Q&A agent with audio attachment for code generation

Ask (Agentic Q&A)

Ask DSP questions, attach audio for context, and get compiler-verified C++ kernels. Full LangGraph multi-agent pipeline with clang++ critique loop.

LangGraph C++ clang++
Settings — backend configuration, API keys, storage management

Settings

Configure backend endpoint and API key, manage local storage per-project, view server run history, and access support resources. Self-host or connect to managed.

Backend Storage History

Built For

Whether you're shipping an audio product, publishing DSP research, or learning the fundamentals.

Audio Developer

  • Generate custom C++ DSP kernels with compiler verification
  • Query the DSP canon for implementation patterns
  • Iterative critique loop with clang++ syntax checking
  • Export verified kernels directly from the app

Researcher

  • Production RAG over DSP textbooks and papers
  • Hybrid pgvector search with source citations
  • Structured LLM routing for complex queries
  • LangGraph state inspection for reproducibility

Student

  • Learn DSP by seeing AI generate and verify code
  • Watch agentic reasoning unfold in real-time
  • Query textbooks with natural language questions
  • Understand C++ filter design through interactive iteration

Technical Specifications

Under the hood of the agentic DSP orchestration stack.

Frontend SwiftUI (iOS 17.0+) • AVAudioEngine capture • URLSession SSE streaming
Backend FastAPI + LangGraph StateGraph with Postgres checkpointer
LLM Provider Amazon Bedrock (switchable to Anthropic direct) • Haiku router • Opus coder/judge
Vector Store pgvector (HNSW dense) + keyword ts_rank • RRF merge • Voyage AI embeddings (1024-dim)
Code Verification Sandboxed clang++ -fsyntax-only • bounded critique loop • graceful failure states
Audio Analysis librosa (STFT, MFCC, delta/delta-delta, spectral descriptors, pitch)
Observability Arize Phoenix OTel tracing • structured logging • token-usage tracking
Auth & Security API-key auth middleware • configurable rate limiting • CORS by explicit origin list
Deployment Docker • Fly.io • docker-compose local dev
Hardware iOS 17.0+ • iPhone / iPad

Frequently Asked Questions

Real answers about agentic DSP orchestration.

AuraLinter uses a LangGraph multi-agent state machine to route your audio queries through specialized AI agents: a Router classifies the request, a Coder generates C++ DSP kernels, a Critique node verifies compilation with clang++ -fsyntax-only, and a Judge decides whether to accept or retry. The entire process streams live to your iPhone via SSE.
Yes. AuraLinter uploads audio to the managed service for analysis and, when enabled, GPU scoring and enhancement. The service stages temporary audio files during processing; synchronous files normally expire after about 30 minutes and long-job files may remain for up to about four hours. Saved projects also remain in the App's private storage until you delete them. See the Privacy Policy for the complete data flow and retention details.
The default configuration uses Amazon Bedrock with tiered models: Claude Haiku 4.5 for fast request routing, and Claude Opus 4.6 for code generation and critique. The provider is switchable via the LLM_PROVIDER environment variable — direct Anthropic API is one env var away. Model tiering (router/coder/answer/judge) is fully configurable.
AuraLinter uses hybrid search over a pgvector Postgres database: dense HNSW vector search (Voyage AI 1024-dim embeddings) and keyword PostgreSQL ts_rank search. Results are merged via Reciprocal Rank Fusion (RRF) for the best of both worlds. Every RAG answer includes numbered source citations from the ingested DSP corpus, so you can verify exactly where the information came from.
Absolutely. The backend is open-source Python (FastAPI + LangGraph). You can run it locally via docker compose up -d db && uv run uvicorn app.main:app --reload, or deploy to Fly.io, AWS, or any Docker-capable platform. Configure your iOS app's Settings to point at your own backend endpoint with your own API key structure.
AuraLinter requires iOS 17.0 or later. It runs on any iPhone or iPad that supports iOS 17. The app uses SwiftUI, AVAudioEngine, URLSession, and system frameworks only — no third-party dependencies needed on the device. The compute-intensive work (LLM inference, code compilation, vector search) runs on the backend.