Skip to content

Latest commit

 

History

History
82 lines (57 loc) · 3.17 KB

README.md

File metadata and controls

82 lines (57 loc) · 3.17 KB

TheTelephone

Extending PureData to build a telephone simulator.

This includes:

  • simulation of Voice-over-IP degradations (i.e., coding, compression, and network degradations),
  • standardized degradations of the speech signal (e.g., MNRU and resampling), and
  • extended signal processing (e.g., voice activity detection).

Moreover, PureData is extended with the following features:

  • the capability of offline processing (synchronous read and write),
  • the communication via Websockets, and
  • a dynamic convolver (e.g., for binaural synthesis).

Build procedure

Install dependencies

For Ubuntu 16.10:

sudo apt install build-essential cmake puredata-dev libsndfile-dev libresample-dev libfftw3-dev libwebsockets-dev libopus-dev libgsm1-dev libspeex-dev libspeexdsp-dev libjson-c-dev

For MacOS using Homebrew:

  1. Install PureData
  2. Make sure PureData's header file m_pd.h is in your path (should match your PureData version).
    To grab the most recent, run: curl https://raw.githubusercontent.com/pure-data/pure-data/master/src/m_pd.h > /usr/local/include/m_pd.h
  3. Install Homebrew
  4. brew install cmake libsndfile libresample fftw libwebsockets opus-tools libgsm speex json-c

Compile

cd TheTelephone && cmake . && make

ATTENTION: only the externals are compiled (and later installed) for which all required libraries are installed.

Install externals

make install

By default the compiled externals are installed into the home directory of the current user:

  • Linux: $ENV{HOME}/Library/Pd
  • MacOS: $ENV{HOME}/pd-externals

This can be overriden by setting CMAKE_INSTALL_PREFIX.

For further information about installing externals, please take a look here.

Documentation

Documentation can be generated using Doxygen.

For Ubuntu 16.10 install the following packages:

sudo apt install doxygen graphviz

Run:

cd TheTelephone && cmake . && make doc

License

This project is licensed as GPLv3 or later.

An exception are all externals linking or including third-party code.

For these externals, the license of the third-party code applies if this license is incompatbile to the GPLv3 otherwise the GPLv3 or later applies.

Authors

  • Dennis Guse
  • Frank Haase