hrtlacek / faustTools

Python Based Tools for Developing FAUST dsp programs

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Tools for analyzing Faust programs

At the moment there is one tool present, faustwatch.py

Faustwatch

Faustwatch is a tool that observes a .dsp file used by the dsp language FAUST. If the file is changed (saved after editing):

  • the blockdiagram can be automatically shown in the default browser
  • the impulse response can be plotted in the time domain
  • the impulse response can be plotted in the frequency domain.
  • the time and frequency domain plots of the last saved version are always visible so the current and last saved version can be compared.
  • the impulse response is played back via pyo and Jack Audio

Basically it is supposed to make FAUST development faster.

Here you can see it in action:

Install

Dependencies

This has only been tested under Linux and with python 3.6.3. It requires a number of standared libraries such as numpy,scipy:

  • numpy 1.15.4
  • scipy 1.1.0

and it requires some more uncommon libraries:

  • pyo 0.9.0
  • pyqtgraph 0.10.0
  • pyinotify 0.9.6
  • pyzmq 17.1.2

This tool has not been tested with other versions of these libraries. Of course there is a good chance it will work just fine with newer versions of these.

Configuration

The file config.py has to be changed in order to make sure that:

  • the architecture file for offline processing can be found.
  • the right python executable is used to start the plotting process.

usage

usage: faustwatch [-h] [--svg] [--ir] [--af AF] [--impLen IMPLEN] [--line] N

Watch a dsp file for changes and take a specific action.

positional arguments:
  N                Path to a .dsp file

optional arguments:
  -h, --help       show this help message and exit
  --svg            Make an svg block diagram and open it.
  --ir             Get impulse response and plot it.
  --af AF          Send through audio file.
  --impLen IMPLEN  Length of impulse. Default is unit impulse, so 1.
  --line           Get response to line from -1 to 1. So input-output
                   amplitude relationship. Useful for plotting transfer
                   functions of non-linearities

About

Python Based Tools for Developing FAUST dsp programs


Languages

Language:Python 100.0%