Ismir2012SoftwareSessionPlan » History » Version 6

Luis Figueira, 2012-10-03 01:31 PM

1 2 Luis Figueira
h1. Ismir2012: Software Session Plan
2 1 Luis Figueira
3 1 Luis Figueira
4 1 Luis Figueira
h2. Length and plan
5 1 Luis Figueira
6 1 Luis Figueira
* 90 min (75 + 15m interval)
7 1 Luis Figueira
8 1 Luis Figueira
h2. Software Requirements
9 1 Luis Figueira
10 1 Luis Figueira
* Python 
11 1 Luis Figueira
* Numpy
12 1 Luis Figueira
* Matplotlib
13 4 Luis Figueira
* Nose and Nosetests
14 4 Luis Figueira
* ipython (desirable, not mandatory)
15 1 Luis Figueira
16 3 Luis Figueira
h2. Repository
17 3 Luis Figueira
18 3 Luis Figueira
https://code.soundsoftware.ac.uk/hg/python-tutorial-skeleton
19 3 Luis Figueira
20 1 Luis Figueira
h2. Script
21 1 Luis Figueira
22 4 Luis Figueira
* Clone/Check if repository was successfully cloned
23 4 Luis Figueira
* Explore folder and files 
24 4 Luis Figueira
* Launch python shell (ipyhon)
25 4 Luis Figueira
* import audiofile.py and plot samples
26 4 Luis Figueira
* Explain what the test files are and introduction to nose 
27 5 Luis Figueira
* Create estimate_tempo.py (main programme)
28 4 Luis Figueira
<pre>
29 4 Luis Figueira
import tempo_estimator as est
30 4 Luis Figueira
import sys
31 4 Luis Figueira
32 4 Luis Figueira
filename = sys.argv[1]
33 4 Luis Figueira
34 4 Luis Figueira
tempo = est.estimate_tempo_of_file(filename)
35 4 Luis Figueira
</pre> 
36 4 Luis Figueira
* Easy Mercurial: 
37 4 Luis Figueira
** ignore pyc and py~
38 4 Luis Figueira
** commit estimate_tempo.py
39 4 Luis Figueira
** commit .hgignore
40 4 Luis Figueira
* Create estimate_tempo.py
41 1 Luis Figueira
* Create test file test_estimate_tempo.py
42 4 Luis Figueira
<pre>
43 5 Luis Figueira
import estimate_tempo as est
44 4 Luis Figueira
45 4 Luis Figueira
def test_tempo_120bpm():
46 4 Luis Figueira
    tempo = est.estimate_tempo_of_file("test files/120bpm.wav")
47 4 Luis Figueira
48 4 Luis Figueira
    # we consider the test to be passed if error is less than 1/4 of bpm
49 4 Luis Figueira
    error = abs(tempo - 120) < 0.25
50 1 Luis Figueira
    assert 
51 1 Luis Figueira
52 4 Luis Figueira
</pre>
53 5 Luis Figueira
* Commit both files
54 5 Luis Figueira
* Start writing the code of tempo_estimator.py
55 6 Luis Figueira
<pre>
56 6 Luis Figueira
</pre>
57 6 Luis Figueira
* Slide: how to detect tempo?
58 6 Luis Figueira
* Create detection_function.py and test_detection_function.py
59 6 Luis Figueira
<pre></pre>
60 6 Luis Figueira
* Commit