Merge branch 'master' into feature/pytest
[aubio.git] / python / README.md
1 Python aubio module
2 ===================
3
4 This module wraps the aubio library for Python using the numpy module.
5
6 Using the Python aubio module
7 -----------------------------
8
9 After installing python-aubio, you will be able to import the aubio module:
10
11     $ python
12     [...]
13     >>> import aubio
14     >>> help(aubio.miditofreq)
15
16 Finding some inspiration
17 ------------------------
18
19 Some examples are available in the `python/demos` directory. These scripts are
20 small programs written in python and using python-aubio.
21
22 For instance, `demo_source.py` reads a media file.
23
24     $ ./python/demos/demo_source.py /path/to/sound/sample.wav
25
26 and `demo_timestretch_online.py` stretches the original file into a new one:
27
28     $ ./python/demo/demo_timestretch_online.py loop.wav stretched_loop.wav 0.92`
29
30 Note: you might need to install additional modules to run some of the demos.
31 Some demos use [matplotlib](http://matplotlib.org/) to draw plots, others use
32 [PySoundCard](https://github.com/bastibe/PySoundCard) to play and record
33 sounds.
34
35 Testing the Python module
36 -------------------------
37
38 Python tests are in `python/tests` and use [pytest].
39
40 To run the all the python tests:
41
42     $ cd aubio
43     $ pytest
44
45 Each test script can also be called one at a time. For instance:
46
47     $ pytest -v python/tests/test_note2midi.py
48
49 [pytest]: https://pytest.org
50
51 Install in a virtualenv
52 -----------------------
53
54 You should be able to install python-aubio directly from the top source
55 directory of aubio.
56
57 First, create a virtualenv to hold the required python module:
58
59     $ virtualenv pyaubio
60     $ source pyaubio/bin/activate
61
62 Now install and build the python extension using:
63
64     $ pip install .
65
66 Install requirements
67 --------------------
68
69 Before compiling this module, you must have compiled libaubio.
70
71 A simple way to do this is with pip:
72
73     $ pip install -r requirements.txt
74
75 For more information about how this module works, please refer to the [Python/C
76 API Reference Manual] (http://docs.python.org/c-api/index.html) and the
77 [Numpy/C API Reference](http://docs.scipy.org/doc/numpy/reference/c-api.html).
78
79 Compiling python aubio
80 ----------------------
81
82 To build the aubio Python module, run the following command from the top source
83 directory of aubio:
84
85     $ ./setup.py build
86
87 Note: if libaubio was previously built using waf, the script will use it.
88 Otherwise, the entire library will be built inside the python extension.
89
90 To find out more about `setup.py` options:
91
92     $ ./setup.py --help
93
94 Installing
95 ----------
96
97 To install the Python module:
98
99     $ ./setup.py install
100
101 Alternatively, you may want to use the Python module without installing it by
102 setting your PYTHONPATH, for instance as follows:
103
104     $ export PYTHONPATH=$PYTHONPATH:$PWD/`ls -rtd build/lib.* | head -1`:$PWD/tests
105