Skip to content

Repository files navigation

ViveSound SDK

CI

This is the SDK for building apps and plugins for ViveEngine.

ViveEngine is an audio orchestration engine for desktop that sits between audio apps and the OS to intercept, process, and reroute audio streams.

This SDK provides open-source client-side components for application integration, custom audio processing plugins, and developer tooling.

SDK components

API specifications

Version 1.2.0

.NET components

Version 1.2.0

Go components

Version 1.2.0

Sample projects

  • dotnet-appSample docs

    Cross-platform .NET MAUI application demonstrating real-time audio processing with ViveEngine.

Quick start

  1. Install the engine

    Download and install ViveEngine, then download the SDK. See the Setting up guide.

  2. Control the engine from the command line

    Use vive-ctl to send commands to the engine from a terminal or scripts. See the vive-ctl tutorial.

  3. Interact with the engine from an application

    Use a client library (ViveSound.Sdk.Ctl for .NET or vsctl for Go) or the gRPC API to control the engine from your own code. See the control API reference and the C# demo app tutorial.

  4. Extend the engine with plugins

    Use the plugin API (vive_plugin.h) to add custom processing to the engine. See the native plugin tutorial.

Release model

ViveEngine is versioned and released separately from the SDK.

The SDK consists of three independently versioned modules:

  • API specs
  • .NET components
  • Go components

Each module has its own release cycle and Git tags. Modules are usually released individually within a short time frame.

Both engine and SDK use Semantic Versioning with 3 components: major.minor.patch.

  • Major is increased for a new generation that is not compatible with the previous one.
  • Minor is increased when new features are added.
  • Patch is increased for bug fixes that do not affect compatibility.

Compatibility policy

To check compatibility, compare the major and minor versions:

SDK module 1.3.x  ->  ViveEngine 1.3.x or newer

For example, SDK module 1.3.2 is compatible with engine 1.3.0, 1.3.5, 1.4.x, and newer versions within the same major version. Patch versions are independent. They do not affect engine compatibility.

When the minor version changes, there are two update paths:

Engine update:

  • Existing user code continues to work.
  • Existing SDK versions continue to work.
  • New API features are not available until the corresponding SDK module is updated.

SDK update:

  • Existing user code continues to work.
  • The minimum required engine version increases.
  • New API features become available.

Git tags

SDK modules are versioned independently, so each module uses its own Git tag prefix. Instead of a single v1.2.3 tag for the whole SDK, releases are tagged per module.

Module Tag format
API specifications api/v1.2.3
.NET components net/v1.2.3
Go components go/v1.2.3

Changelog

ViveEngine changelog can be found on Release Notes page.

Releases of individual SDK modules are documented in CHANGELOG.md.

Contributing

Issues and pull requests in this repository are for the ViveSound SDK specifically — client-side code that sits on top of ViveEngine.

You are welcome to open issues and pull requests to improve the SDK. To get dedicated support, please refer to the Contact us page in the documentation instead of opening an issue here.

By submitting a pull request to this repository, you agree to license your contribution under the Apache License 2.0.

License

ViveEngine is proprietary software distributed under a commercial license. See Licensing options for details.

This SDK acts as a client to ViveEngine and is open source, licensed under the Apache License 2.0.

About

SDK for building apps and plugins for ViveEngine.

Resources

Contributing

Stars

Watchers

Forks

Releases

Contributors

Languages