Plugin.Maui.VoiceOrb
1.0.0
dotnet add package Plugin.Maui.VoiceOrb --version 1.0.0
NuGet\Install-Package Plugin.Maui.VoiceOrb -Version 1.0.0
<PackageReference Include="Plugin.Maui.VoiceOrb" Version="1.0.0" />
<PackageVersion Include="Plugin.Maui.VoiceOrb" Version="1.0.0" />
<PackageReference Include="Plugin.Maui.VoiceOrb" />
paket add Plugin.Maui.VoiceOrb --version 1.0.0
#r "nuget: Plugin.Maui.VoiceOrb, 1.0.0"
#:package Plugin.Maui.VoiceOrb@1.0.0
#addin nuget:?package=Plugin.Maui.VoiceOrb&version=1.0.0
#tool nuget:?package=Plugin.Maui.VoiceOrb&version=1.0.0
Plugin.Maui.VoiceOrb
An animated, audio-reactive voice orb control for .NET MAUI, in the style of modern voice assistants. A soft, glowing sphere that breathes at rest and deforms organically with live audio.
Renders on a fully transparent SkiaSharp canvas, so it layers over any page, gradient,
image or video. Depends only on SkiaSharp — bring your own audio, or add
Plugin.Maui.VoiceOrb.Audio for
microphone capture.
Setup
using Plugin.Maui.VoiceOrb;
builder.UseMauiApp<App>()
.UseVoiceOrb(); // initialises SkiaSharp
Use
<ContentPage xmlns:orb="clr-namespace:Plugin.Maui.VoiceOrb;assembly=Plugin.Maui.VoiceOrb">
<orb:VoiceOrbView x:Name="Orb"
HeightRequest="320" WidthRequest="320"
State="Idle"
PrimaryColor="#9A8CFF" SecondaryColor="#5A50DC"
GlowColor="#7878FF" PulseColor="White"
MorphStrength="1.2" AnimationSpeed="1.0"
ShowGlow="True" IsInteractive="True" />
</ContentPage>
Then feed it loudness:
Orb.SetAudioLevel(level); // 0..1, safe to call from an audio thread
Orb.SetState(OrbState.Listening); // Idle | Listening | Speaking | Thinking
SetAudioLevel accepts values at whatever rate your capture delivers them. The control
smooths with a fast attack and slow release, so it tracks speech without strobing on every
consonant, and repaints itself at 60 fps.
API
| Member | Notes |
|---|---|
State |
Idle, Listening, Speaking, Thinking. Bindable two-way. |
AudioLevel / SetAudioLevel |
0..1 loudness. The setter method is thread-safe. |
PrimaryColor, SecondaryColor |
Orb body and its falloff. |
GlowColor, PulseColor |
Halo, and the ripple / level ring / thinking spark. |
AnimationSpeed |
Rate multiplier. 0 freezes. |
MorphStrength |
Outline deformation. 0 stays perfectly round. |
ShowGlow |
Turn the halo off to render cheaper. |
IsInteractive |
Whether tapping toggles state. |
TapCommand, Tapped |
Fired on tap with the new OrbState. |
Only Listening and Speaking react to audio; Idle and Thinking ignore the level.
Bring your own audio
Implement IAudioLevelSource to drive the orb from a speech SDK, a playback engine or a
network stream. SimulatedAudioLevelSource ships in the box and produces a speech-shaped
envelope, which is handy for designing without a microphone.
IAudioLevelSource source = new SimulatedAudioLevelSource(Dispatcher);
source.LevelChanged += (_, level) => Orb.SetAudioLevel(level);
await source.StartAsync();
Notes
- Everything is sized relative to the view, so the orb looks identical at any DPI, and nothing is ever clipped by the view bounds.
- The animation timer starts on
Loadedand stops onUnloaded, so an off-screen orb costs nothing. - Give the view room: the halo extends to the edge of its bounds, so a square roughly twice the visual orb diameter looks best.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0-android36.0 is compatible. net10.0-ios26.0 is compatible. net10.0-maccatalyst26.0 is compatible. net10.0-windows10.0.19041 is compatible. |
-
net10.0-android36.0
- Microsoft.Maui.Controls (>= 10.0.90)
- SkiaSharp.Views.Maui.Controls (>= 4.151.2)
-
net10.0-ios26.0
- Microsoft.Maui.Controls (>= 10.0.90)
- SkiaSharp.Views.Maui.Controls (>= 4.151.2)
-
net10.0-maccatalyst26.0
- Microsoft.Maui.Controls (>= 10.0.90)
- SkiaSharp.Views.Maui.Controls (>= 4.151.2)
-
net10.0-windows10.0.19041
- Microsoft.Maui.Controls (>= 10.0.90)
- SkiaSharp.Views.Maui.Controls (>= 4.151.2)
NuGet packages (1)
Showing the top 1 NuGet packages that depend on Plugin.Maui.VoiceOrb:
| Package | Downloads |
|---|---|
|
Plugin.Maui.VoiceOrb.Audio
Microphone capture for Plugin.Maui.VoiceOrb. Converts live PCM frames to a normalised loudness level the orb can react to, using Plugin.Maui.Audio. Install this only if you want the orb driven by the microphone. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 1.0.0 | 77 | 9/8/2026 |