yum -y install freetype-devel libxml2-devel expat-devel
[root@localhost mysoul]# ls
Cargo.lock Cargo.toml src target test
[root@localhost mysoul]# cat Cargo.toml
[package]
name = "mysoul"
version = "0.1.0"
edition = "2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
png = "0.16.8"
minimp3 = "0.5.1"
audio-visualizer = "0.2.2"
[root@localhost mysoul]# cat src/main.rs
use minimp3::{Decoder as Mp3Decoder, Frame as Mp3Frame, Error as Mp3Error};
use audio_visualizer::ChannelInterleavement;
use audio_visualizer::Channels;
use audio_visualizer::waveform::staticc::png_file::waveform_static_png_visualize;
use std::path::PathBuf;
use std::fs::File;
use std::collections::BTreeMap;
use audio_visualizer::spectrum::staticc::png_file::spectrum_static_png_visualize;
fn main() {
let mut path = PathBuf::new();
path.push("test/samples");
path.push("mysoul.mp3");
let mut decoder = Mp3Decoder::new(File::open(path).unwrap());
let mut lrlr_mp3_samples = vec![];
loop {
match decoder.next_frame() {
Ok(Mp3Frame { data: samples_of_frame, .. }) => {
for sample in samples_of_frame {
lrlr_mp3_samples.push(sample);
}
}
Err(Mp3Error::Eof) => break,
Err(e) => panic!("{:?}", e),
}
}
waveform_static_png_visualize(
&lrlr_mp3_samples,
Channels::Stereo(ChannelInterleavement::LRLR),
"test/out",
"mysoul_waveform.png"
);
let mut spec = BTreeMap::new();
spectrum_static_png_visualize(
&spec,
"test/out",
"mysoul_spectrum.png",
&[]
);
}
[root@localhost mysoul]# ls test
out samples
左右声道可见
频率不可见
使用 spek 可见
对比频率图表
以 A4=440Hz 为准
Note | Frequency (Hz) | Wavelength (cm) |
---|---|---|
C |
16.35 | 2109.89 |
C^#^ |
17.32 | 1991.47 |
D |
18.35 | 1879.69 |
D^#^ |
19.45 | 1774.20 |
E |
20.60 | 1674.62 |
F |
21.83 | 1580.63 |
F^#^ |
23.12 | 1491.91 |
G |
24.50 | 1408.18 |
G^#^ |
25.96 | 1329.14 |
A |
27.50 | 1254.55 |
A^#^ |
29.14 | 1184.13 |
B |
30.87 | 1117.67 |
C |
32.70 | 1054.94 |
C^#^ |
34.65 | 995.73 |
D |
36.71 | 939.85 |
D^#^ |
38.89 | 887.10 |
E |
41.20 | 837.31 |
F |
43.65 | 790.31 |
F^#^ |
46.25 | 745.96 |
G |
49.00 | 704.09 |
G^#^ |
51.91 | 664.57 |
A |
55.00 | 627.27 |
A^#^ |
58.27 | 592.07 |
B |
61.74 | 558.84 |
C |
65.41 | 527.47 |
C^#^ |
69.30 | 497.87 |
D |
73.42 | 469.92 |
D^#^ |
77.78 | 443.55 |
E |
82.41 | 418.65 |
F |
87.31 | 395.16 |
F^#^ |
92.50 | 372.98 |
G |
98.00 | 352.04 |
G^#^ |
103.83 | 332.29 |
A |
110.00 | 313.64 |
A^#^ |
116.54 | 296.03 |
B |
123.47 | 279.42 |
C |
130.81 | 263.74 |
C^#^ |
138.59 | 248.93 |
D |
146.83 | 234.96 |
D^#^ |
155.56 | 221.77 |
E |
164.81 | 209.33 |
F |
174.61 | 197.58 |
F^#^ |
185.00 | 186.49 |
G |
196.00 | 176.02 |
G^#^ |
207.65 | 166.14 |
A |
220.00 | 156.82 |
A^#^ |
233.08 | 148.02 |
B |
246.94 | 139.71 |
C |
261.63 | 131.87 |
C^#^ |
277.18 | 124.47 |
D |
293.66 | 117.48 |
D^#^ |
311.13 | 110.89 |
E |
329.63 | 104.66 |
F |
349.23 | 98.79 |
F^#^ |
369.99 | 93.24 |
G |
392.00 | 88.01 |
G^#^ |
415.30 | 83.07 |
A |
440.00 | 78.41 |
A^#^ |
466.16 | 74.01 |
B |
493.88 | 69.85 |
C |
523.25 | 65.93 |
C^#^ |
554.37 | 62.23 |
D |
587.33 | 58.74 |
D^#^ |
622.25 | 55.44 |
E |
659.25 | 52.33 |
F |
698.46 | 49.39 |
F^#^ |
739.99 | 46.62 |
G |
783.99 | 44.01 |
G^#^ |
830.61 | 41.54 |
A |
880.00 | 39.20 |
A^#^ |
932.33 | 37.00 |
B |
987.77 | 34.93 |
C |
1046.50 | 32.97 |
C^#^ |
1108.73 | 31.12 |
D |
1174.66 | 29.37 |
D^#^ |
1244.51 | 27.72 |
E |
1318.51 | 26.17 |
F |
1396.91 | 24.70 |
F^#^ |
1479.98 | 23.31 |
G |
1567.98 | 22.00 |
G^#^ |
1661.22 | 20.77 |
A |
1760.00 | 19.60 |
A^#^ |
1864.66 | 18.50 |
B |
1975.53 | 17.46 |
C |
2093.00 | 16.48 |
C^#^ |
2217.46 | 15.56 |
D |
2349.32 | 14.69 |
D^#^ |
2489.02 | 13.86 |
E |
2637.02 | 13.08 |
F |
2793.83 | 12.35 |
F^#^ |
2959.96 | 11.66 |
G |
3135.96 | 11.00 |
G^#^ |
3322.44 | 10.38 |
A |
3520.00 | 9.80 |
A^#^ |
3729.31 | 9.25 |
B |
3951.07 | 8.73 |
C |
4186.01 | 8.24 |
C^#^ |
4434.92 | 7.78 |
D |
4698.63 | 7.34 |
D^#^ |
4978.03 | 6.93 |
E |
5274.04 | 6.54 |
F |
5587.65 | 6.17 |
F^#^ |
5919.91 | 5.83 |
G |
6271.93 | 5.50 |
G^#^ |
6644.88 | 5.19 |
A |
7040.00 | 4.90 |
A^#^ |
7458.62 | 4.63 |
B |
7902.13 | 4.37 |
🙋
如何表格中上色?
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于