Started
This commit is contained in:
commit
f45a9cf312
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
|||||||
|
/target
|
||||||
|
/run
|
1644
Cargo.lock
generated
Normal file
1644
Cargo.lock
generated
Normal file
File diff suppressed because it is too large
Load Diff
12
Cargo.toml
Normal file
12
Cargo.toml
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
[package]
|
||||||
|
name = "audiotest"
|
||||||
|
version = "0.1.0"
|
||||||
|
authors = ["andr3"]
|
||||||
|
edition = "2018"
|
||||||
|
|
||||||
|
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
|
||||||
|
|
||||||
|
[dependencies]
|
||||||
|
cpal = "0.13.1"
|
||||||
|
num-complex = "0.3.1"
|
||||||
|
image = "0.23.12"
|
690
run.txt
Normal file
690
run.txt
Normal file
@ -0,0 +1,690 @@
|
|||||||
|
Audio Test:
|
||||||
|
Geting audio input:
|
||||||
|
Got config: StreamConfig { channels: 1, sample_rate: SampleRate(384000), buffer_size: Default }
|
||||||
|
Starting len: 0
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: 2031.1113
|
||||||
|
center: 2320.9202
|
||||||
|
center: 26923.928
|
||||||
|
center: 117546.72
|
||||||
|
center: 18371.844
|
||||||
|
center: 89.2022
|
||||||
|
center: 500.3014
|
||||||
|
center: 22334.268
|
||||||
|
center: 39480.168
|
||||||
|
center: 5655.695
|
||||||
|
center: 4710.687
|
||||||
|
center: 643.5967
|
||||||
|
center: 2011.2443
|
||||||
|
center: 2986.1655
|
||||||
|
center: 5707.3687
|
||||||
|
center: 4728.5767
|
||||||
|
center: 6896.886
|
||||||
|
center: 57073.06
|
||||||
|
center: 324.83862
|
||||||
|
center: 10413.74
|
||||||
|
center: 22430.717
|
||||||
|
center: 3857.2686
|
||||||
|
center: 4640.9155
|
||||||
|
center: 406.69818
|
||||||
|
center: 15993.602
|
||||||
|
center: 7389.506
|
||||||
|
center: 9092.286
|
||||||
|
center: 4103.5547
|
||||||
|
center: 10718.313
|
||||||
|
center: 8854.663
|
||||||
|
center: 1268.1268
|
||||||
|
center: 18428.066
|
||||||
|
center: 2430.1287
|
||||||
|
center: 51975.824
|
||||||
|
center: 618.8661
|
||||||
|
center: 12986.857
|
||||||
|
center: 1457.4575
|
||||||
|
center: 7627.938
|
||||||
|
center: 888.3817
|
||||||
|
center: 2750.2568
|
||||||
|
center: 5426.428
|
||||||
|
center: 20452.42
|
||||||
|
center: 84379.33
|
||||||
|
center: 14416.17
|
||||||
|
center: 9933.385
|
||||||
|
center: 11257.673
|
||||||
|
center: 158.01053
|
||||||
|
center: 24689.518
|
||||||
|
center: 4015.0176
|
||||||
|
center: 12129.81
|
||||||
|
center: 1696.017
|
||||||
|
center: 5762.913
|
||||||
|
center: 2036.8901
|
||||||
|
center: 82121.305
|
||||||
|
center: 548.1412
|
||||||
|
center: 5557.4233
|
||||||
|
center: 2453.202
|
||||||
|
center: 28790.023
|
||||||
|
center: 2578.658
|
||||||
|
center: 3519.55
|
||||||
|
center: 934.0422
|
||||||
|
center: 112734.75
|
||||||
|
center: 105091.766
|
||||||
|
center: 1436.033
|
||||||
|
center: 1040.6259
|
||||||
|
center: 6223.329
|
||||||
|
center: 4617.11
|
||||||
|
center: 400.06595
|
||||||
|
center: 20380.111
|
||||||
|
center: 12726.654
|
||||||
|
center: 1855.0885
|
||||||
|
center: 2882.1733
|
||||||
|
center: 22924.059
|
||||||
|
center: 101310.195
|
||||||
|
center: 15793.605
|
||||||
|
center: 12800.167
|
||||||
|
center: 690.21704
|
||||||
|
center: 49025.35
|
||||||
|
center: 637.9289
|
||||||
|
center: 4027.347
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: 1161.8999
|
||||||
|
center: 105139.23
|
||||||
|
center: 1358.9448
|
||||||
|
center: 892.5615
|
||||||
|
center: 2260.65
|
||||||
|
center: 1107.7091
|
||||||
|
center: 170.60666
|
||||||
|
center: 2300.7803
|
||||||
|
center: 987.9872
|
||||||
|
center: 89.85326
|
||||||
|
center: 135.57477
|
||||||
|
center: 2423.6494
|
||||||
|
center: 843.7888
|
||||||
|
center: 2348.6252
|
||||||
|
center: 330.20633
|
||||||
|
center: 1851.1389
|
||||||
|
center: 1237.345
|
||||||
|
center: 1023.59955
|
||||||
|
center: 1302.2617
|
||||||
|
center: 2779.6648
|
||||||
|
center: 354.6044
|
||||||
|
center: 509.48483
|
||||||
|
center: 2377.6167
|
||||||
|
center: 1876.2759
|
||||||
|
center: 1918.5946
|
||||||
|
center: 1391.6147
|
||||||
|
center: 2707.9502
|
||||||
|
center: 752.9018
|
||||||
|
center: 3187.3745
|
||||||
|
center: 2869.126
|
||||||
|
center: 5193.3364
|
||||||
|
center: 70.19446
|
||||||
|
center: 273.9206
|
||||||
|
center: 276.0692
|
||||||
|
center: 3269.9712
|
||||||
|
center: 1701.6759
|
||||||
|
center: 1131.254
|
||||||
|
center: 994.9833
|
||||||
|
center: 2480.564
|
||||||
|
center: 2228.843
|
||||||
|
center: 2151.8235
|
||||||
|
center: 1375.6486
|
||||||
|
center: 378.76782
|
||||||
|
center: 58.56343
|
||||||
|
center: 535.1102
|
||||||
|
center: 704.05774
|
||||||
|
center: 1049.728
|
||||||
|
center: 2519.3691
|
||||||
|
center: 3385.6526
|
||||||
|
center: 3957.8855
|
||||||
|
center: 4754.4434
|
||||||
|
center: 43.17607
|
||||||
|
center: 1963.65
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: 1121.8591
|
||||||
|
center: 3014.0725
|
||||||
|
center: 3388.4263
|
||||||
|
center: 792.8876
|
||||||
|
center: 154.16129
|
||||||
|
center: 2378.1804
|
||||||
|
center: 85.2204
|
||||||
|
center: 166.37509
|
||||||
|
center: 2521.1577
|
||||||
|
center: 415.94843
|
||||||
|
center: 2161.8943
|
||||||
|
center: 616.03595
|
||||||
|
center: 7650.4023
|
||||||
|
center: 122.93094
|
||||||
|
center: 1850.946
|
||||||
|
center: 2078.6584
|
||||||
|
center: 335.71027
|
||||||
|
center: 2317.7039
|
||||||
|
center: 4042.0342
|
||||||
|
center: 1898.307
|
||||||
|
center: 1838.5259
|
||||||
|
center: 176.44273
|
||||||
|
center: 625.3767
|
||||||
|
center: 1927.7709
|
||||||
|
center: 639.6147
|
||||||
|
center: 312.7572
|
||||||
|
center: 1946.7892
|
||||||
|
center: 647.61426
|
||||||
|
center: 3277.1233
|
||||||
|
center: 466.34064
|
||||||
|
center: 1108.7056
|
||||||
|
center: 4496.6587
|
||||||
|
center: 159.33643
|
||||||
|
center: 809.46796
|
||||||
|
center: 1009.162
|
||||||
|
center: 388.80566
|
||||||
|
center: 1178.3425
|
||||||
|
center: 748.15216
|
||||||
|
center: 319.1537
|
||||||
|
center: 362.24866
|
||||||
|
center: 3914.8008
|
||||||
|
center: 757.17474
|
||||||
|
center: 797.702
|
||||||
|
center: 9607.199
|
||||||
|
center: 1434.6464
|
||||||
|
center: 631.1357
|
||||||
|
center: 2396.3643
|
||||||
|
center: 2317.1404
|
||||||
|
center: 3770.143
|
||||||
|
center: 440.52762
|
||||||
|
center: 86.75669
|
||||||
|
center: 2688.924
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
||||||
|
center: NaN
|
185
src/main.rs
Normal file
185
src/main.rs
Normal file
@ -0,0 +1,185 @@
|
|||||||
|
use cpal::traits::{HostTrait, DeviceTrait, StreamTrait};
|
||||||
|
use cpal::StreamInstant;
|
||||||
|
use std::{thread, time};
|
||||||
|
use std::sync::{Arc, Mutex};
|
||||||
|
use std::sync::mpsc;
|
||||||
|
use num_complex::Complex;
|
||||||
|
use image::{ImageBuffer, RgbImage};
|
||||||
|
|
||||||
|
#[derive(Debug)]
|
||||||
|
struct MyRecData {
|
||||||
|
instant: StreamInstant,
|
||||||
|
data: Vec<f32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
struct ProcessData {
|
||||||
|
duration: time::Duration,
|
||||||
|
data: Vec<f32>,
|
||||||
|
}
|
||||||
|
|
||||||
|
const IMAGEX: u32 = 500;
|
||||||
|
const IMAGEY: u32 = 500;
|
||||||
|
|
||||||
|
fn generate_buffer () -> RgbImage {
|
||||||
|
|
||||||
|
let mut imgbuf: RgbImage = ImageBuffer::new(IMAGEX, IMAGEY);
|
||||||
|
|
||||||
|
for i in 0..IMAGEX {
|
||||||
|
*imgbuf.get_pixel_mut(i, 250) = image::Rgb([255,255,255]);
|
||||||
|
}
|
||||||
|
|
||||||
|
//imgbuf.save("test.png").unwrap();
|
||||||
|
imgbuf
|
||||||
|
}
|
||||||
|
|
||||||
|
fn process(p_data: ProcessData, x: u32) {
|
||||||
|
let time = p_data.duration.as_nanos() as f32 / (10.0_f32).powf(9.0);
|
||||||
|
|
||||||
|
let mut sum: Complex<f32> = Complex::new(0.0, 0.0);
|
||||||
|
|
||||||
|
let test_frec = 440.0f32;
|
||||||
|
|
||||||
|
let data_size = p_data.data.len() as u32;
|
||||||
|
let gragh_step = (data_size as f64 / (IMAGEX as f64 - 1.0f64)).floor() as u32;
|
||||||
|
|
||||||
|
println!("gs:{}", gragh_step);
|
||||||
|
|
||||||
|
let step = (time as f32 / data_size as f32) * gragh_step as f32;
|
||||||
|
|
||||||
|
let mut i: u32 = 0;
|
||||||
|
let mut max = 0.0f64;
|
||||||
|
|
||||||
|
while i < data_size && i/gragh_step < IMAGEX - 1 {
|
||||||
|
if max < *p_data.data.get(i as usize).unwrap() as f64 {
|
||||||
|
max = *p_data.data.get(i as usize).unwrap() as f64;
|
||||||
|
}
|
||||||
|
i += gragh_step;
|
||||||
|
}
|
||||||
|
|
||||||
|
let scale = 240.0f64 / max;
|
||||||
|
|
||||||
|
let mut img_buff: RgbImage = generate_buffer();
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
|
||||||
|
while i < data_size && i/gragh_step < IMAGEX - 1 {
|
||||||
|
let y = (250.0f64 - (*p_data.data.get(i as usize).unwrap() as f64 * scale).floor()) as u32;
|
||||||
|
let to_sum = Complex::from_polar(*p_data.data.get(i as usize).unwrap() as f32 * scale as f32, - 2.0 * std::f32::consts::PI * test_frec * ( i as f32/gragh_step as f32) * step);
|
||||||
|
sum += to_sum;
|
||||||
|
if y < 500 && y > 0 {
|
||||||
|
*img_buff.get_pixel_mut((i/gragh_step) as u32, y ) = image::Rgb([0, 255, 255]);
|
||||||
|
}
|
||||||
|
i += gragh_step;
|
||||||
|
}
|
||||||
|
// sum = sum.scale(1.0f32 / (data_size as f32 /gragh_step as f32));
|
||||||
|
if !sum.re.is_nan() && !sum.im.is_nan() {
|
||||||
|
println!("center: {}", (sum.im.powf(2.0) + sum.im.powf(2.0)).sqrt() )
|
||||||
|
}
|
||||||
|
let x1 = sum.re + (IMAGEX/2) as f32;
|
||||||
|
let y1 = sum.im + 250.0;
|
||||||
|
if x1 > 0.0 && x1 < IMAGEX as f32 && y1 > 0.0 && y1 < 500.0 {
|
||||||
|
*img_buff.get_pixel_mut( x1 as u32, y1 as u32 ) = image::Rgb([255, 255, 255]);
|
||||||
|
//println!("center");
|
||||||
|
}
|
||||||
|
|
||||||
|
println!("Processed {}", x);
|
||||||
|
|
||||||
|
img_buff.save(format!("run/process{}.png", x)).unwrap();
|
||||||
|
}
|
||||||
|
|
||||||
|
//fn main1() {
|
||||||
|
////generateBuffer();
|
||||||
|
//let complex = Complex::from_polar(1.0, std::f32::consts::FRAC_PI_2);
|
||||||
|
//println!("im: {}, re: {}", complex.im, complex.re);
|
||||||
|
//}
|
||||||
|
|
||||||
|
fn main() {
|
||||||
|
|
||||||
|
println!("Audio Test:");
|
||||||
|
|
||||||
|
let host = cpal::default_host();
|
||||||
|
|
||||||
|
let rec_data: Arc<Mutex<Vec<MyRecData>>> = Arc::new(Mutex::new(Vec::new()));
|
||||||
|
let rec_data_c = rec_data.clone();
|
||||||
|
|
||||||
|
let (m_t, m_r) = mpsc::channel();
|
||||||
|
|
||||||
|
println!("Geting audio input:");
|
||||||
|
|
||||||
|
let device = host.default_input_device().expect("no output device available!");
|
||||||
|
|
||||||
|
let mut supported_configs_range = device.supported_input_configs().expect("Error while geting the configs");
|
||||||
|
let supported_config = supported_configs_range.next().expect("no supported config").with_max_sample_rate().into();
|
||||||
|
|
||||||
|
println!("Got config: {:?}", supported_config);
|
||||||
|
|
||||||
|
let stream = device.build_input_stream(&supported_config,
|
||||||
|
move |data: &[f32], input_info: &cpal::InputCallbackInfo| {
|
||||||
|
// println!("Data:\n Input info:{:?}", input_info.timestamp().capture);
|
||||||
|
let mdata = MyRecData {instant: input_info.timestamp().capture, data: data.to_vec()};
|
||||||
|
rec_data_c.lock().ok().unwrap().insert(0, mdata);
|
||||||
|
()
|
||||||
|
},
|
||||||
|
move |err| {
|
||||||
|
println!("Error: {:?}", err);
|
||||||
|
}).expect("Failed to build stream");
|
||||||
|
|
||||||
|
stream.play().expect("faild to play");
|
||||||
|
|
||||||
|
let t = thread::spawn(move || {
|
||||||
|
let mut run = true;
|
||||||
|
let mut op = None;
|
||||||
|
let mut len = None;
|
||||||
|
let mut last = None;
|
||||||
|
let mut x = 0;
|
||||||
|
while run {
|
||||||
|
let mut v = rec_data.lock().ok().unwrap();
|
||||||
|
let md = m_r.try_recv();
|
||||||
|
let vlen = v.len();
|
||||||
|
if len.is_none() {
|
||||||
|
println!("Starting len: {}", vlen);
|
||||||
|
len = Some(vlen);
|
||||||
|
}
|
||||||
|
if len.unwrap() != vlen {
|
||||||
|
// println!("Cur len: {}", v.len());
|
||||||
|
len = Some(vlen);
|
||||||
|
}
|
||||||
|
if md.is_ok() {
|
||||||
|
println!("got stop");
|
||||||
|
op = Some(md.ok().unwrap());
|
||||||
|
}
|
||||||
|
if op.is_some() {
|
||||||
|
if vlen <= 0 {
|
||||||
|
println!("stoping process");
|
||||||
|
run = op.unwrap();
|
||||||
|
} else {
|
||||||
|
// println!("Queue:{}", vlen);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if vlen > 0 {
|
||||||
|
x += 1;
|
||||||
|
// println!("got one id: {}", x);
|
||||||
|
let mdata: MyRecData = v.pop().unwrap();
|
||||||
|
drop(v);
|
||||||
|
if last.is_none() {
|
||||||
|
last = Some(mdata.instant);
|
||||||
|
} else {
|
||||||
|
let instant = mdata.instant.duration_since(&last.unwrap()).unwrap();
|
||||||
|
process(ProcessData {duration: instant, data: mdata.data}, x);
|
||||||
|
last = Some(mdata.instant);
|
||||||
|
// println!("time:{:?}", instant);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
println!("Stoped processing");
|
||||||
|
});
|
||||||
|
|
||||||
|
thread::sleep(time::Duration::from_secs(2));
|
||||||
|
|
||||||
|
stream.pause().expect("faild to close");
|
||||||
|
|
||||||
|
println!("stoping");
|
||||||
|
m_t.send(false).ok();
|
||||||
|
t.join().unwrap();
|
||||||
|
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user