Instructions to get Friture running

Most of Friture code-base is written in Python. As such, it is interpreted and does not need compilation, apart from the special cases below.

Dependencies

  • Python3 (3.4 or later recommended)
  • PyQt5
  • PyAudio
  • PyOpenGL
  • PyOpenGL-accelerate
  • Numpy
  • Scipy
  • Cython
  • docutils
  • psutil

UI and resource files

If friture.ui or resource.qrc are changed, the corresponding python files need to be rebuilt:

pyuic4 ui/friture.ui --from-imports > friture/ui_friture.py
pyuic4 ui/settings.ui --from-imports > friture/ui_settings.py
pyrcc4 resources/friture.qrc -o friture/friture_rc.py

Cython extension

Friture uses Cython extensions where computing is a bottleneck. These extensions can be built automatically with:

python setup.py build_ext --inplace

On Windows, if you use mingw:

python setup.py build_ext --inplace --compiler=mingw32)

Alternatively, to build the ‘exp_smoothing_conv’ extension manually on Linux, you can do:

cython exp_smoothing_conv.pyx

then (all as one command)

gcc -shared -pthread -fPIC -fwrapv -O2 -Wall -fno-strict-aliasing -I/usr/include/python2.6 -o exp_smoothing_conv.so exp_smoothing_conv.c

Filters parameters

The filters parameters are precomputed in a file called ‘generated_filters.py’. To rebuild this file, run the script named ‘filter_design.py’.

Windows executable

To build an executable for Windows, with the python interpreter included, run:

python setup.py py2exe

You get a ‘dist’ directory with friture.exe and a collection of dependencies (dlls and compiled python extensions), that can be bundled together in an installer.