History

Merge branch 'master' into feature/pytest

Paul Brossier committed 7 years ago

Commit e893e6f2 parents bf3f09b c4a8bc115 files · +299 −128Browse files

Showing the changes to python (2 of 15 files). Show all

Unified · Split

2 files
  1. python/README.md +88 −84
  2. python/tests/test_source_channels.py +1 −1
python/README.md+88−84
@@ -1,105 +1,109 @@
1−Python aubio module
2−===================
1+aubio
2+=====
33
4−This module wraps the aubio library for Python using the numpy module.
4+aubio is a collection of tools for music and audio analysis.
55
6−Using the Python aubio module
7−-----------------------------
6+This package integrates the aubio library with [NumPy] to provide a set of
7+efficient tools to process and analyse audio signals, including:
88
9−After installing python-aubio, you will be able to import the aubio module:
9+- read audio from any media file, including videos and remote streams
10+- high quality phase vocoder, spectral filterbanks, and linear filters
11+- Mel-Frequency Cepstrum Coefficients and standard spectral descriptors
12+- detection of note attacks (onset)
13+- pitch tracking (fundamental frequency estimation)
14+- beat detection and tempo tracking
1015
11− $ python
12− [...]
13− >>> import aubio
14− >>> help(aubio.miditofreq)
16+aubio works with both Python 2 and Python 3.
1517
16−Finding some inspiration
17−------------------------
18+Links
19+-----
1820
19−Some examples are available in the `python/demos` directory. These scripts are
20−small programs written in python and using python-aubio.
21+- [module documentation][doc_python]
22+- [installation instructions][doc_python_install]
23+- [aubio manual][manual]
24+- [aubio homepage][homepage]
25+- [issue tracker][bugtracker]
2126
22−For instance, `demo_source.py` reads a media file.
27+Demos
28+-----
2329
24− $ ./python/demos/demo_source.py /path/to/sound/sample.wav
30+Some examples are available in the [`python/demos`][demos_dir] folder. Each
31+script is a command line program which accepts one ore more argument.
2532
26−and `demo_timestretch_online.py` stretches the original file into a new one:
33+**Notes**: installing additional modules is required to run some of the demos.
2734
28− $ ./python/demo/demo_timestretch_online.py loop.wav stretched_loop.wav 0.92`
35+### Analysis
2936
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.
37+- `demo_source.py` uses aubio to read audio samples from media files
38+- `demo_onset_plot.py` detects attacks in a sound file and plots the results
39+ using [matplotlib]
40+- `demo_pitch.py` looks for fundamental frequency in a sound file and plots the
41+ results using [matplotlib]
42+- `demo_spectrogram.py`, `demo_specdesc.py`, `demo_mfcc.py` for spectral
43+ analysis.
3444
35−Testing the Python module
36−-------------------------
45+### Real-time
3746
38−Python tests are in `python/tests` and use [pytest].
47+- `demo_pyaudio.py` and `demo_tapthebeat.py` use [pyaudio]
48+- `demo_pysoundcard_play.py`, `demo_pysoundcard.py` use [PySoundCard]
49+- `demo_alsa.py` uses [pyalsaaudio]
3950
40−To run the all the python tests:
51+### Others
4152
42− $ cd aubio
43− $ pytest
53+- `demo_timestretch.py` can change the duration of an input file and write the
54+ new sound to disk,
55+- `demo_wav2midi.py` detects the notes in a file and uses [mido] to write the
56+ results into a MIDI file
4457
45−Each test script can also be called one at a time. For instance:
58+### Example
4659
47− $ pytest -v python/tests/test_note2midi.py
60+Use `demo_timestretch_online.py` to slow down `loop.wav`, write the results in
61+`stretched_loop.wav`:
4862
49−[pytest]: https://pytest.org
63+ $ python demo_timestretch_online.py loop.wav stretched_loop.wav 0.92
5064
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
65+Built with
9566 ----------
9667
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−
68+The core of aubio is written in C for portability and speed. In addition to
69+[NumPy], aubio can be optionally built to use one or more of the following
70+libraries:
71+
72+- media file reading:
73+
74+ - [ffmpeg] / [avcodec] to decode and read audio from almost any format,
75+ - [libsndfile] to read audio from uncompressed sound files,
76+ - [libsamplerate] to re-sample audio signals,
77+ - [CoreAudio] to read all media formats supported by macOS, iOS, and tvOS.
78+
79+- hardware acceleration:
80+
81+ - [Atlas] and [Blas], for accelerated vector and matrix computations,
82+ - [fftw3], to compute fast Fourier Transforms of any size,
83+ - [Accelerate] for accelerated FFT and matrix computations (macOS/iOS),
84+ - [Intel IPP], accelerated vector computation and FFT implementation.
85+
86+[ffmpeg]: https://ffmpeg.org
87+[avcodec]: https://libav.org
88+[libsndfile]: http://www.mega-nerd.com/libsndfile/
89+[libsamplerate]: http://www.mega-nerd.com/SRC/
90+[CoreAudio]: https://developer.apple.com/reference/coreaudio
91+[Atlas]: http://math-atlas.sourceforge.net/
92+[Blas]: https://en.wikipedia.org/wiki/Basic_Linear_Algebra_Subprograms
93+[fftw3]: http://fftw.org
94+[Accelerate]: https://developer.apple.com/reference/accelerate
95+[Intel IPP]: https://software.intel.com/en-us/intel-ipp
96+
97+[demos_dir]:https://github.com/aubio/aubio/tree/master/python/demos
98+[pyaudio]:https://people.csail.mit.edu/hubert/pyaudio/
99+[PySoundCard]:https://github.com/bastibe/PySoundCard
100+[pyalsaaudio]:https://larsimmisch.github.io/pyalsaaudio/
101+[mido]:https://mido.readthedocs.io
102+
103+[manual]: https://aubio.org/manual/latest/
104+[doc_python]: https://aubio.org/manual/latest/python.html
105+[doc_python_install]: https://aubio.org/manual/latest/python_module.html
106+[homepage]: https://aubio.org
107+[NumPy]: https://www.numpy.org
108+[bugtracker]: https://github.com/aubio/aubio/issues
109+[matplotlib]:https://matplotlib.org/
python/tests/test_source_channels.py+1−1
@@ -8,7 +8,7 @@ import unittest · 7 unmodified lines
88 import aubio
99 import numpy as np
1010 from numpy.testing import assert_equal
11−from utils import get_tmp_sink_path
11+from .utils import get_tmp_sink_path
1212
1313 class aubio_source_test_case(unittest.TestCase):
1414

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t