/talcs

A high-level Qt audio library

Primary LanguageC++GNU Lesser General Public License v3.0LGPL-3.0

TALCS

TALCS Logo

TALCS: Audio Library of CrSjimo

GitHub homepage

Run Unit Tests Deploy documentations to GitHub Pages Coverity

Modules

  • Core

    The core module includes basic buffers, sources, and utilities for audio processing. The core module is required by all other modules.

  • Essential Modules

    • Device

      The device module includes functionalities for outputting audio to the device.

    • Format

      The format module includes functionalities for accessing formatted audio files.

    • MIDI

      The MIDI module can process MIDI messages, read inputs from MIDI devices, and do MIDI-related audio processing.

  • Additional Modules

    • Remote (requires: Device, MIDI)

      The remote module provides interfaces to communicate with the remote audio bridge. See talcs-remote.

    • JUCE Adapter

      The JUCE adapter module provides adapters for some classes in JUCE.

    • DSPX (requires: Format)

      The DSPX module includes classes for building up the audio-processing context in DSPX editor applications.

    • GUI

      The GUI modules includes some audio utilities relevant to the GUI.

Essential modules will be built by default, and additional modules will not be built by default. To enable or disable the build of a module, set the corresponding CMake option on or off.

The device module provides two internal implementations: SDL and ASIO. SDL is enabled and ASIO is disabled by default. To enable or disable, set the CMake option TALCS_DEVICE_ENABLE_SDL and TALCS_DEVICE_ENABLE_ASIO on or off.

API Documentation

Documentation homepage

Dependencies

TALCS uses vcpkg to manage dependency libraries, except Qt, ASIO SDK, r8brain, and JUCE:

  • The port files of interval-tree and qmsetup are in stdware/vcpkg-overlay. The documentation about how to install libraries is also in this repository. This repository is included as a submodule in scripts/vcpkg.

  • Qt should be installed manually.

  • ASIO SDK should be downloaded manually from Steinberg's official website and configured in CMake option TALCS_ASIOSDK_DIR.

  • r8brain is included as a submodule in the TALCS repository.

  • JUCE should be manually specified in the CMake option JUCE_DIR to make CMake find it.

License of TALCS

TALCS is free software: you can redistribute it and/or modify it under the terms of the GNU Lesser General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.

TALCS is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public License along with TALCS. If not, see https://www.gnu.org/licenses/.

License of the TALCS Documentation

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.3 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".