Immersitech SDK Documentation
Engage SDK documentation
|
Immersitech Sound Manager SDK to process and mix 3D spatial audio.
The Immersitech Sound Manager SDK is a C/C++ library that functions as an audio mixer and audio processor featuring 3D spatial audio processing, noise reduction, and speech enhancement.
The Sound Manager SDK is currently made for people who have direct access to raw audio data. If you can access this, the SDK can collect them and return to you a raw audio output buffer that has been processed. Additionally, the Immersitech Sound Manager SDK allows you to edit or query the audio settings in real time for any listener or speaker.
Before diving into how to utilize the library, be sure to check out Key Concepts for All Modules to get an understanding of terminology that will be used throughout the documentation.
Let's take a high level look at the small number of simple steps needed to utilize the library:
The first step in your code will be to initialize the Immersitech library. This step will allow Immersitech to set everything up internally for audio processing.
Optionally, check the version of your library to ensure you are up to date
Now that the library is initialized, we can begin to create conferences. Note that if you haven't initialized the Immersitech library the returned library will be NULL.
Let's add two participants into this conference, both with 1 channel input
We can store the return IDs to access them later and edit their settings
Now that we have some participants in our conference, let us start processing audio
This happens in two steps, first input all the Participants audio, then process and generate the output for each participant
The first of the two steps is to add each Participant's audio into the engine when you receive it. Do this once for each participant, as we are establishing this the participant's input audio and this is the audio that should be used when considering this participant as a source.
Please ensure that your input buffer has the correct number of samples and that you enter the number of FRAMES into the function call and not the number of samples. For more clarification on buffer sizes please refer to Understanding Audio Buffer Sizes .
The second step of audio processing is to generate the output for each participant as a listener. This means call the process function once for each participant to generate the stereo output of what that participant should hear.
To do so, simply provide an output buffer in which to store the results. The output buffer data will be formatted the way you specified upon initializing the library. Find more information about the different output formats under immersitech_output_format. Once again, you will want to ensure that the output buffer you provide has enough memory allocated for the number of frames and number of output channels you selected.
And that's it! You can now adjust the features of the audio processing for each participant by using the edit state function. There is a full list of the available audio effects and their default states at immersitech_audio_controls
To move a participant in 3D space, simply adjust their location:
If at any point a participant chooses to leave the call, remove them from the conference:
When a conference is finished, free all the memory for that conference:
When you are finished using the Immersitech library, be sure to destroy the library to free the memory allocated during initialization. Do not call this function before you are completely finished using the library:
If you are now looking to examine a fully functional piece of code using the Immersitech Library, please reference the included immersitech_example.c
file.
In order to use the Immersitech Sound Manager libraries, you will need these files:
To use the Immersitech Sound Manger Library, include immersitech_sound_manager.h in your projects and add the functions to your code. You will also need to make sure to link the dynamic library to your project and ensure it is in the location you linked it to. Make sure also in your code that the path you supply to your license file matches the path you gave to the Immersitech Library.
For the full detailed API description, please visit immersitech_sound_manager.h