This project extends PureData to build a telephone simulator.
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
demo
pd-help
src
tests
third-party
CMakeLists.in.windows
CMakeLists.txt
CODING.md
LICENSE.md
LOGO.svg
README.md
doxyfile

README.md

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

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

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

Linux-like (e.g., Ubuntu 16.10 and Windows 10 using Ubuntu Bash):

Install Tools and Dependencies

For Ubuntu 16.10: sudo apt install build-essential git cmake puredata puredata-dev libsndfile-dev libresample-dev libfftw3-dev libwebsockets-dev libopus-dev libgsm1-dev libspeex-dev libspeexdsp-dev libjson-c-dev

For Windows 10 using Ubuntu Bash): sudo apt install build-essential git cmake puredata puredata-dev libsndfile-dev libresample-dev libfftw3-dev libwebsockets-dev libopus-dev libgsm1-dev libspeex-dev libspeexdsp-dev libjson-c-dev

NOTE for Bash on Ubuntu on Windows:

  • this environment behaves like Ubuntu 14.04, and
  • this environment does not provide a XServer and thus PureData's UI cannot be shown.

Compile and Install externals

git clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone && cmake . && cmake --build . && make install

MacOS using Homebrew:

Install Tools and Dependencies

  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. Install required tools and dependencies: brew install cmake git libsndfile libresample fftw libwebsockets opus-tools libgsm speex json-c

Compile and Install externals

git clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone && cmake . && cmake --build . && make install

Microsoft Windows 7/8/10:

ATTENTION: Following these instruction will only build a small subset of the included externals as no external libraries are installed.

Install Tools and Dependencies

  1. Install PureData
  2. Install cmake
  3. Install TDM-GCC

Compile and Install externals

Run in shell (e.g., cmd.exe):

git clone https://github.com/TheTelephone/TheTelephone
cd TheTelephone
cmake -G"MinGW Makefiles" -DPUREDATA_ROOT="C:/Program Files (x86)/Pd/"
cmake --build .

NOTE: PUREDATA_ROOT needs to contain the correct path to PureData. NOTE: The compiled externals need to be installed manually.

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