Skip to content

Commit 790699a

Browse files
committed
Make plots easily
1 parent d9339a2 commit 790699a

File tree

5 files changed

+25
-12
lines changed

5 files changed

+25
-12
lines changed

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,3 +2,4 @@
22
/output
33
/perf*
44
/flamegraph.svg
5+
/__pycache__

README.md

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,13 +43,20 @@ For multi-channel example see [examples/two_channels.rs](/examples/two_channels.
4343

4444
The *linear* Converter is not recommended unless performance is really important.
4545

46-
Use [plots.py](/plots.py) to show the result of tests.
46+
Use [plots.py](/plots.py) to show the result of tests. It need *numpy*, *scipy*
47+
and *matplotlib*.
4748

48-
```python
49+
```
50+
$ cargo test -r --test testwav -- --ignored --exact --show-output generate
51+
$ cargo test -r --test sinc -- --ignored --exact --show-output ta120_2_96k_down
52+
$ python
53+
>>> import plots
4954
>>> import os
5055
>>> os.chdir('output')
51-
>>> import plots
52-
>>> plots.show_wav_spectrogram('sweep_96k_44k_xxx.wav')
56+
>>> plots.spectrum('beep_96k_44k_s_a120_2.wav')
57+
>>> plots.spectrogram('sweep_96k_44k_s_a120_2.wav')
58+
>>> plots.impulse('impulse_96k_44k_s_a120_2.wav')
59+
>>> plots.impulse('impulse_96k_44k_s_a120_2.wav', True)
5360
```
5461

5562
See [tests](/tests/) for more details.

plots.py

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
from scipy.signal import ShortTimeFFT
55
from scipy.signal.windows import kaiser
66

7-
def _show_spectrum(fs, data, name, impulse: None | str = None):
7+
def _spectrum(fs, data, name, impulse: None | str = None):
88
passband = impulse == 'passband'
99
N = len(data)
1010
half_N = N // 2
@@ -27,19 +27,19 @@ def _show_spectrum(fs, data, name, impulse: None | str = None):
2727
plt.title(prefix + name)
2828
plt.show()
2929

30-
def show_wav_spectrum(filename):
30+
def spectrum(filename):
3131
fs, data = wavfile.read(filename)
32-
_show_spectrum(fs, data, filename)
32+
_spectrum(fs, data, filename)
3333

34-
def show_wav_impulse(filename, passband=False):
34+
def impulse(filename, passband=False):
3535
fs, data = wavfile.read(filename)
36-
_show_spectrum(fs, data, filename, impulse='passband' if passband else '')
36+
_spectrum(fs, data, filename, impulse='passband' if passband else '')
3737

38-
def show_raw_impulse(filename, fs, passband=False):
38+
def raw_impulse(filename, fs, passband=False):
3939
data = np.fromfile(filename, np.float64)
40-
_show_spectrum(fs, data, filename, impulse='passband' if passband else '')
40+
_spectrum(fs, data, filename, impulse='passband' if passband else '')
4141

42-
def show_wav_spectrogram(filename):
42+
def spectrogram(filename):
4343
fs, data = wavfile.read(filename)
4444
N = len(data)
4545
window_size = 2048

tests/sinc.rs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -296,11 +296,13 @@ fn ta120_2_96k_down() {
296296
let trans_width = 2050.0 / 22050.0;
297297
let src = Src::new_by_trans_width(96000, 44100, 120.0, 512, trans_width);
298298
println!("order of 96 to 44k {remark} is {}", src.manager.order());
299+
convert("beep", &src, remark);
299300
convert("sweep", &src, remark);
300301
impulse(&src, remark);
301302
let trans_width = 4000.0 / 24000.0;
302303
let src = Src::new_by_trans_width(96000, 48000, 120.0, 512, trans_width);
303304
println!("order of 96k to 48k {remark} is {}", src.manager.order());
305+
convert("beep", &src, remark);
304306
convert("sweep", &src, remark);
305307
impulse(&src, remark);
306308
}

tests/testwav.rs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,10 @@ fn generate() {
7979
std::env::set_current_dir("output").unwrap();
8080
gen_beep(44100);
8181
gen_beep(48000);
82+
gen_beep(96000);
83+
gen_beep(192000);
8284
gen_sweep(44100);
8385
gen_sweep(48000);
8486
gen_sweep(96000);
87+
gen_sweep(192000);
8588
}

0 commit comments

Comments
 (0)