Getting Started with Windows C++ SDK

Add SDK to your project

Visual Studio 2017 IDE

The Voicemod Windows SDK is distributed with three files:

  • VoicemodSDK.h
  • VoicemodSDK.lib
  • VoicemodSDK.dll

You need to modify the configuration properties of your C++ project to get our SDK integrated following the next steps:

  1. You have to tell to compiler under which directory our include file (.h extension) is. One way to achieve this is modifying the Additional Include Directories property. This will tell the compiler to look in a particular directory for the includes. You can find this option under Project Properties->Configuration Properties->C/C++->General->Additional Include Directories.
  2. You have to tell the linker how to find the symbols defined inside our library. To achieve this point you need to add the file with the .lib extension as Additional Dependencies. To do this, go to Project Properties->Configuration Properties->Linker->Input->Additional Dependencies and put the path and the name of our .lib file, including the extension.
  3. Finally, copy our DLL library (.dll extension) into the same directory as your executable file.

 

Initialize and Destroy the SDK

First of all, you need to include VoicemodSDK.h file at your code to get access to the SDK:

Our SDK uses the VoicemodSDK namespace to access all methods.
As your first API call, you have to call InitEngine method with your own Client Key and your own application bundle id like this:

The BundleId is a string that is set up during development, usually in the form of com.company-name.windows-app-name
The ClientKey is a string generated by our system and unique for each developer.
You need to pass a pointer function as third parameter to be asynchronously notified if the session checking fails because of the state of your license. The callback will be only notified if the client key checking fails.

This pointer function must have the following structure:

Before closing your application, as last API call, you have to free resources related with the SDK calling DestroyEngine method:

 

Get session status

You can periodically track the checking of your client key calling this API method:

This API call informs you through a SessionStatus variable type about the state of the validation of your client key and if the engine is processing the input audio or not.

 

Processing Modes

Depending on your needs we have created two different ways to use our Audio Engine.

The Stand-alone Audio Processing is in case you already have an audio capture process and you just need the Audio Engine to pass the audio data to be transform with our voices and have access to the audio data transformed.

The Live Processing is in case you are starting from scratch and you want our Audio Engine to capture and render audio through the input device, transform the audio with our voices and send back the audio to the output device.