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.