[f719589] | 1 | Python aubio module |
---|
| 2 | =================== |
---|
| 3 | |
---|
[e794a80] | 4 | This module wraps the aubio library for Python using the numpy module. |
---|
[f719589] | 5 | |
---|
[7f82f81] | 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 | |
---|
[36ce209] | 38 | Python tests are in `python/tests` and use [pytest]. |
---|
[1154fd1] | 39 | |
---|
[36ce209] | 40 | To run the all the python tests: |
---|
[7f82f81] | 41 | |
---|
[36ce209] | 42 | $ cd aubio |
---|
| 43 | $ pytest |
---|
[7f82f81] | 44 | |
---|
| 45 | Each test script can also be called one at a time. For instance: |
---|
| 46 | |
---|
[36ce209] | 47 | $ pytest -v python/tests/test_note2midi.py |
---|
[7f82f81] | 48 | |
---|
[36ce209] | 49 | [pytest]: https://pytest.org |
---|
[1154fd1] | 50 | |
---|
[7f82f81] | 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 | |
---|
[e794a80] | 69 | Before compiling this module, you must have compiled libaubio. |
---|
| 70 | |
---|
[7f82f81] | 71 | A simple way to do this is with pip: |
---|
| 72 | |
---|
| 73 | $ pip install -r requirements.txt |
---|
| 74 | |
---|
[e794a80] | 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). |
---|
[f719589] | 78 | |
---|
[49505f7] | 79 | Compiling python aubio |
---|
| 80 | ---------------------- |
---|
[f719589] | 81 | |
---|
[7f82f81] | 82 | To build the aubio Python module, run the following command from the top source |
---|
| 83 | directory of aubio: |
---|
[e794a80] | 84 | |
---|
| 85 | $ ./setup.py build |
---|
| 86 | |
---|
[7f82f81] | 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 | |
---|
[e794a80] | 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: |
---|
[f719589] | 98 | |
---|
[e794a80] | 99 | $ ./setup.py install |
---|
[c3d286c] | 100 | |
---|
[e794a80] | 101 | Alternatively, you may want to use the Python module without installing it by |
---|
[7f82f81] | 102 | setting your PYTHONPATH, for instance as follows: |
---|
[92c83ccc] | 103 | |
---|
| 104 | $ export PYTHONPATH=$PYTHONPATH:$PWD/`ls -rtd build/lib.* | head -1`:$PWD/tests |
---|
| 105 | |
---|