[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 | |
---|
| 38 | To run the all the python tests, use the script: |
---|
| 39 | |
---|
| 40 | $ ./python/tests/run_all_tests |
---|
| 41 | |
---|
| 42 | Each test script can also be called one at a time. For instance: |
---|
| 43 | |
---|
| 44 | $ ./python/tests/test_note2midi.py -v |
---|
| 45 | |
---|
| 46 | Install in a virtualenv |
---|
| 47 | ----------------------- |
---|
| 48 | |
---|
| 49 | You should be able to install python-aubio directly from the top source |
---|
| 50 | directory of aubio. |
---|
| 51 | |
---|
| 52 | First, create a virtualenv to hold the required python module: |
---|
| 53 | |
---|
| 54 | $ virtualenv pyaubio |
---|
| 55 | $ source pyaubio/bin/activate |
---|
| 56 | |
---|
| 57 | Now install and build the python extension using: |
---|
| 58 | |
---|
| 59 | $ pip install . |
---|
| 60 | |
---|
| 61 | Install requirements |
---|
| 62 | -------------------- |
---|
| 63 | |
---|
[e794a80] | 64 | Before compiling this module, you must have compiled libaubio. |
---|
| 65 | |
---|
[7f82f81] | 66 | A simple way to do this is with pip: |
---|
| 67 | |
---|
| 68 | $ pip install -r requirements.txt |
---|
| 69 | |
---|
[e794a80] | 70 | For more information about how this module works, please refer to the [Python/C |
---|
| 71 | API Reference Manual] (http://docs.python.org/c-api/index.html) and the |
---|
| 72 | [Numpy/C API Reference](http://docs.scipy.org/doc/numpy/reference/c-api.html). |
---|
[f719589] | 73 | |
---|
[49505f7] | 74 | Compiling python aubio |
---|
| 75 | ---------------------- |
---|
[f719589] | 76 | |
---|
[7f82f81] | 77 | To build the aubio Python module, run the following command from the top source |
---|
| 78 | directory of aubio: |
---|
[e794a80] | 79 | |
---|
| 80 | $ ./setup.py build |
---|
| 81 | |
---|
[7f82f81] | 82 | Note: if libaubio was previously built using waf, the script will use it. |
---|
| 83 | Otherwise, the entire library will be built inside the python extension. |
---|
| 84 | |
---|
[e794a80] | 85 | To find out more about `setup.py` options: |
---|
| 86 | |
---|
| 87 | $ ./setup.py --help |
---|
| 88 | |
---|
| 89 | Installing |
---|
| 90 | ---------- |
---|
| 91 | |
---|
| 92 | To install the Python module: |
---|
[f719589] | 93 | |
---|
[e794a80] | 94 | $ ./setup.py install |
---|
[c3d286c] | 95 | |
---|
[e794a80] | 96 | Alternatively, you may want to use the Python module without installing it by |
---|
[7f82f81] | 97 | setting your PYTHONPATH, for instance as follows: |
---|
[92c83ccc] | 98 | |
---|
| 99 | $ export PYTHONPATH=$PYTHONPATH:$PWD/`ls -rtd build/lib.* | head -1`:$PWD/tests |
---|
| 100 | |
---|