This repo contains the VocalTractLab backend source code and the C/C++ API for on-going development work. This is not the place for official stable releases!
You can find the bleeding edge builds here including new and experimental features, some of which may break your old projects. For official stable releases, please check the VocalTractLab website.
Please feel free to fork this repo and make your own contributions, though!
The main branch of this repo is reviewed on a semi-regular basis for inclusion into the official release.
This repo may be included in other repos as a submodule wherever the backend source code or the C/C++ API is needed.
This repo contains sources of the backend of the articulatory synthesizer VocalTractLab. The backend can be accessed through a C/C++ API offering convenient C-style functions to provide the most commonly used functionality (e.g. converting a gestural score file into an audio file using default synthesis settings), or as a static C++ library for full access to all objects in the backend. This repo therefore contains separate projects/targets for both the C/C++ API and the C++ static library.
- Clone the current main branch:
git clone https://github.com/TUD-STKS/VocalTractLabBackend-dev
- Get the latet release of CMake for your platform
- Create a folder
out
inside the cloned repository folder - Open a shell/command prompt and navigate to
out
- Configure the project and generate a build system:
cmake .. -DCMAKE_BUILD_TYPE=Release
- Build the library (still from within the folder
out
)
cmake --build . --config Release
This will build both the API and the static library, as well as some unit testing executables. If you are only interested in one of those, you can specify the --target
parameter:
cmake --build . --config Release --target VocalTractLabApi
or
cmake --build . --config Release --target VocalTractLabBackend
The final binary files are placed into the subdirectory lib
(of the repository root). Do not look for them in the out
directory, which is only used as a temporary folder for the build process and can be safely deleted once the binaries are built.
- Open a shell/command prompt
- Navigate to cloned repository folder (not the
out
folder from the build process) - run the tests by executing
VtlApiTests
in thelib
folder created by the build process:
./lib/VtlApiTests
- Open
VocalTractLabApi.sln
in the folderbuild/msw
- Build the project
VocalTractLabApi
orVocalTractLabBackend
To include the VocalTractLab backend into your own projects, add the folder include
from this repository to your project's include directories and link against the API or static backend library in the folder lib
.
You can then include the API functions like so:
#include "VocalTractLabApi/VocalTractLabApi.h"
C++-Objects can be included from the static backend library through their respective header:
#include "VocalTractLabBackend/Speaker.h" // or substitute your desired header here
The VocalTractLab API functions are documented with extensive comments in VocalTractLabApi.h
. Unfortunately, since they were not previously public, the classes beyond the API in the static library are not (yet) documented consistently.