prani
prani (Sanskrit: प्राणी — living being / creature) — Creature and animal vocal synthesis for Rust.
Procedural synthesis of non-human voices: wolves, cats, lions, birds, snakes, insects, dragons, and fantasy creatures. Built on svara's formant synthesis engine with species-specific vocal tract models, bioacoustic call patterns, and behavioral vocalization mapping.
Features
- 13 species with bioacoustically-derived vocal parameters
- 5 vocal apparatus types: Laryngeal, Syringeal, Stridulatory, Vibratile, NoiseOnly
- 14 vocalization types: Howl, Bark, Growl, Roar, Hiss, Chirp, Trill, and more
- 7 behavioral intents: Alarm, Territorial, Mating, Distress, Idle, Threat, Social
- Bioacoustic realism: cat purr (25 Hz cycling), formant transitions, cricket pulse-train chirps, biphonation, nasal resonance, spectral tilt
- Subharmonics with time-varying amplitude and deterministic chaos for lions, dragons, crocodilians
- Dual-source syrinx for songbirds (two simultaneous pitches)
- Dragon fire-breath noise component
- Spatial audio: Doppler shift, distance attenuation with atmospheric HF absorption
- Sequencing: call bouts, phrases, multi-voice chorus synthesis
- 7 built-in voice presets: Alpha Wolf, Wolf Pup, House Cat, Kitten, Male Lion, Ancient Dragon, Young Dragon
- ~1,000x real-time,
no_stdcompatible, all typesSend + Sync + Serialize + Deserialize
Quick Start
use *;
// Create a wolf voice and synthesize a howl
let voice = new;
let samples = voice.vocalize.unwrap;
// Use a preset for a specific character
use presets;
let alpha = ALPHA_WOLF.build;
let howl = alpha.vocalize_with_intent.unwrap;
// Synthesize a wolf pack chorus
use synthesize_chorus;
let pack: =
.map
.collect;
let chorus = synthesize_chorus.unwrap;
// Apply distance attenuation
use apply_distance_attenuation;
let far_away = apply_distance_attenuation;
License
GPL-3.0-only