【光雅集】3

本贴最后更新于 1125 天前,其中的信息可能已经时移世易

audio 时频绘图

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

左右声道可见

rightmysoulwaveform.png

leftmysoulwaveform.png

频率不可见

mysoulspectrum.png

使用 spek 可见

mysoul.png

对比频率图表

以 A4=440Hz 为准

Note Frequency (Hz) Wavelength (cm)
C0 16.35 2109.89
C^#^0 /D^b^ 0 17.32 1991.47
D0 18.35 1879.69
D^#^0 /E^b^ 0 19.45 1774.20
E0 20.60 1674.62
F0 21.83 1580.63
F^#^0 /G^b^ 0 23.12 1491.91
G0 24.50 1408.18
G^#^0 /A^b^ 0 25.96 1329.14
A0 27.50 1254.55
A^#^0 /B^b^ 0 29.14 1184.13
B0 30.87 1117.67
C1 32.70 1054.94
C^#^1 /D^b^ 1 34.65 995.73
D1 36.71 939.85
D^#^1 /E^b^ 1 38.89 887.10
E1 41.20 837.31
F1 43.65 790.31
F^#^1 /G^b^ 1 46.25 745.96
G1 49.00 704.09
G^#^1 /A^b^ 1 51.91 664.57
A1 55.00 627.27
A^#^1 /B^b^ 1 58.27 592.07
B1 61.74 558.84
C2 65.41 527.47
C^#^2 /D^b^ 2 69.30 497.87
D2 73.42 469.92
D^#^2 /E^b^ 2 77.78 443.55
E2 82.41 418.65
F2 87.31 395.16
F^#^2 /G^b^ 2 92.50 372.98
G2 98.00 352.04
G^#^2 /A^b^ 2 103.83 332.29
A2 110.00 313.64
A^#^2 /B^b^ 2 116.54 296.03
B2 123.47 279.42
C3 130.81 263.74
C^#^3 /D^b^ 3 138.59 248.93
D3 146.83 234.96
D^#^3 /E^b^ 3 155.56 221.77
E3 164.81 209.33
F3 174.61 197.58
F^#^3 /G^b^ 3 185.00 186.49
G3 196.00 176.02
G^#^3 /A^b^ 3 207.65 166.14
A3 220.00 156.82
A^#^3 /B^b^ 3 233.08 148.02
B3 246.94 139.71
C4 261.63 131.87
C^#^4 /D^b^ 4 277.18 124.47
D4 293.66 117.48
D^#^4 /E^b^ 4 311.13 110.89
E4 329.63 104.66
F4 349.23 98.79
F^#^4 /G^b^ 4 369.99 93.24
G4 392.00 88.01
G^#^4 /A^b^ 4 415.30 83.07
A4 440.00 78.41
A^#^4 /B^b^ 4 466.16 74.01
B4 493.88 69.85
C5 523.25 65.93
C^#^5 /D^b^ 5 554.37 62.23
D5 587.33 58.74
D^#^5 /E^b^ 5 622.25 55.44
E5 659.25 52.33
F5 698.46 49.39
F^#^5 /G^b^ 5 739.99 46.62
G5 783.99 44.01
G^#^5 /A^b^ 5 830.61 41.54
A5 880.00 39.20
A^#^5 /B^b^ 5 932.33 37.00
B5 987.77 34.93
C6 1046.50 32.97
C^#^6 /D^b^ 6 1108.73 31.12
D6 1174.66 29.37
D^#^6 /E^b^ 6 1244.51 27.72
E6 1318.51 26.17
F6 1396.91 24.70
F^#^6 /G^b^ 6 1479.98 23.31
G6 1567.98 22.00
G^#^6 /A^b^ 6 1661.22 20.77
A6 1760.00 19.60
A^#^6 /B^b^ 6 1864.66 18.50
B6 1975.53 17.46
C7 2093.00 16.48
C^#^7 /D^b^ 7 2217.46 15.56
D7 2349.32 14.69
D^#^7 /E^b^ 7 2489.02 13.86
E7 2637.02 13.08
F7 2793.83 12.35
F^#^7 /G^b^ 7 2959.96 11.66
G7 3135.96 11.00
G^#^7 /A^b^ 7 3322.44 10.38
A7 3520.00 9.80
A^#^7 /B^b^ 7 3729.31 9.25
B7 3951.07 8.73
C8 4186.01 8.24
C^#^8 /D^b^ 8 4434.92 7.78
D8 4698.63 7.34
D^#^8 /E^b^ 8 4978.03 6.93
E8 5274.04 6.54
F8 5587.65 6.17
F^#^8 /G^b^ 8 5919.91 5.83
G8 6271.93 5.50
G^#^8 /A^b^ 8 6644.88 5.19
A8 7040.00 4.90
A^#^8 /B^b^ 8 7458.62 4.63
B8 7902.13 4.37

🙋
如何表格中上色?

  • 游戏

    沉迷游戏伤身,强撸灰飞烟灭。

    169 引用 • 800 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...

推荐标签 标签

  • wolai

    我来 wolai:不仅仅是未来的云端笔记!

    2 引用 • 14 回帖 • 4 关注
  • FreeMarker

    FreeMarker 是一款好用且功能强大的 Java 模版引擎。

    23 引用 • 20 回帖 • 425 关注
  • golang

    Go 语言是 Google 推出的一种全新的编程语言,可以在不损失应用程序性能的情况下降低代码的复杂性。谷歌首席软件工程师罗布派克(Rob Pike)说:我们之所以开发 Go,是因为过去 10 多年间软件开发的难度令人沮丧。Go 是谷歌 2009 发布的第二款编程语言。

    492 引用 • 1384 回帖 • 365 关注
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    7 引用 • 26 回帖
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 319 关注
  • Hibernate

    Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了非常轻量级的对象封装,使得 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。

    39 引用 • 103 回帖 • 686 关注
  • OAuth

    OAuth 协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是 oAuth 的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此 oAuth 是安全的。oAuth 是 Open Authorization 的简写。

    36 引用 • 103 回帖 • 11 关注
  • 反馈

    Communication channel for makers and users.

    123 引用 • 906 回帖 • 200 关注
  • Electron

    Electron 基于 Chromium 和 Node.js,让你可以使用 HTML、CSS 和 JavaScript 构建应用。它是一个由 GitHub 及众多贡献者组成的活跃社区共同维护的开源项目,兼容 Mac、Windows 和 Linux,它构建的应用可在这三个操作系统上面运行。

    15 引用 • 136 回帖 • 4 关注
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 444 关注
  • Scala

    Scala 是一门多范式的编程语言,集成面向对象编程和函数式编程的各种特性。

    13 引用 • 11 回帖 • 111 关注
  • 996
    13 引用 • 200 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    16 引用 • 53 回帖 • 126 关注
  • 单点登录

    单点登录(Single Sign On)是目前比较流行的企业业务整合的解决方案之一。SSO 的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

    9 引用 • 25 回帖 • 1 关注
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    21 引用 • 37 回帖 • 511 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 631 关注
  • PWA

    PWA(Progressive Web App)是 Google 在 2015 年提出、2016 年 6 月开始推广的项目。它结合了一系列现代 Web 技术,在网页应用中实现和原生应用相近的用户体验。

    14 引用 • 69 回帖 • 135 关注
  • Docker

    Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的操作系统上。容器完全使用沙箱机制,几乎没有性能开销,可以很容易地在机器和数据中心中运行。

    479 引用 • 902 回帖
  • GraphQL

    GraphQL 是一个用于 API 的查询语言,是一个使用基于类型系统来执行查询的服务端运行时(类型系统由你的数据定义)。GraphQL 并没有和任何特定数据库或者存储引擎绑定,而是依靠你现有的代码和数据支撑。

    4 引用 • 3 回帖 • 19 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 180 关注
  • WebComponents

    Web Components 是 W3C 定义的标准,它给了前端开发者扩展浏览器标签的能力,可以方便地定制可复用组件,更好的进行模块化开发,解放了前端开发者的生产力。

    1 引用 • 22 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    35 引用 • 200 回帖 • 29 关注
  • 安装

    你若安好,便是晴天。

    130 引用 • 1184 回帖
  • MySQL

    MySQL 是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 是最流行的关系型数据库管理系统之一。

    675 引用 • 535 回帖
  • 区块链

    区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。所谓共识机制是区块链系统中实现不同节点之间建立信任、获取权益的数学算法 。

    91 引用 • 751 回帖
  • IPFS

    IPFS(InterPlanetary File System,星际文件系统)是永久的、去中心化保存和共享文件的方法,这是一种内容可寻址、版本化、点对点超媒体的分布式协议。请浏览 IPFS 入门笔记了解更多细节。

    20 引用 • 245 回帖 • 233 关注
  • Tomcat

    Tomcat 最早是由 Sun Microsystems 开发的一个 Servlet 容器,在 1999 年被捐献给 ASF(Apache Software Foundation),隶属于 Jakarta 项目,现在已经独立为一个顶级项目。Tomcat 主要实现了 JavaEE 中的 Servlet、JSP 规范,同时也提供 HTTP 服务,是市场上非常流行的 Java Web 容器。

    162 引用 • 529 回帖 • 1 关注