【光雅集】3

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

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

🙋
如何表格中上色?

  • 游戏

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

    180 引用 • 821 回帖

相关帖子

欢迎来到这里!

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

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

推荐标签 标签

  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    88 引用 • 1235 回帖 • 414 关注
  • AWS
    11 引用 • 28 回帖 • 9 关注
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 689 关注
  • 招聘

    哪里都缺人,哪里都不缺人。

    189 引用 • 1057 回帖
  • Word
    13 引用 • 40 回帖 • 1 关注
  • JavaScript

    JavaScript 一种动态类型、弱类型、基于原型的直译式脚本语言,内置支持类型。它的解释器被称为 JavaScript 引擎,为浏览器的一部分,广泛用于客户端的脚本语言,最早是在 HTML 网页上使用,用来给 HTML 网页增加动态功能。

    729 引用 • 1278 回帖
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    93 引用 • 901 回帖
  • IPFS

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

    21 引用 • 245 回帖 • 234 关注
  • jsDelivr

    jsDelivr 是一个开源的 CDN 服务,可为 npm 包、GitHub 仓库提供免费、快速并且可靠的全球 CDN 加速服务。

    5 引用 • 31 回帖 • 94 关注
  • 安全

    安全永远都不是一个小问题。

    203 引用 • 818 回帖
  • 钉钉

    钉钉,专为中国企业打造的免费沟通协同多端平台, 阿里巴巴出品。

    15 引用 • 67 回帖 • 296 关注
  • 开源

    Open Source, Open Mind, Open Sight, Open Future!

    409 引用 • 3588 回帖
  • CAP

    CAP 指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可兼得。

    12 引用 • 5 回帖 • 636 关注
  • 代码片段

    代码片段分为 CSS 与 JS 两种代码,添加在 [设置 - 外观 - 代码片段] 中,这些代码会在思源笔记加载时自动执行,用于改善笔记的样式或功能。

    用户在该标签下分享代码片段时需在帖子标题前添加 [css] [js] 用于区分代码片段类型。

    133 引用 • 886 回帖
  • 深度学习

    深度学习(Deep Learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。

    53 引用 • 40 回帖
  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 205 关注
  • 酷鸟浏览器

    安全 · 稳定 · 快速
    为跨境从业人员提供专业的跨境浏览器

    3 引用 • 59 回帖 • 45 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 55 关注
  • Telegram

    Telegram 是一个非盈利性、基于云端的即时消息服务。它提供了支持各大操作系统平台的开源的客户端,也提供了很多强大的 APIs 给开发者创建自己的客户端和机器人。

    5 引用 • 35 回帖 • 2 关注
  • JVM

    JVM(Java Virtual Machine)Java 虚拟机是一个微型操作系统,有自己的硬件构架体系,还有相应的指令系统。能够识别 Java 独特的 .class 文件(字节码),能够将这些文件中的信息读取出来,使得 Java 程序只需要生成 Java 虚拟机上的字节码后就能在不同操作系统平台上进行运行。

    180 引用 • 120 回帖 • 1 关注
  • ReactiveX

    ReactiveX 是一个专注于异步编程与控制可观察数据(或者事件)流的 API。它组合了观察者模式,迭代器模式和函数式编程的优秀思想。

    1 引用 • 2 回帖 • 175 关注
  • PWL

    组织简介

    用爱发电 (Programming With Love) 是一个以开源精神为核心的民间开源爱好者技术组织,“用爱发电”象征开源与贡献精神,加入组织,代表你将遵守组织的“个人开源爱好者”的各项条款。申请加入:用爱发电组织邀请帖
    用爱发电组织官网:https://programmingwithlove.stackoverflow.wiki/

    用爱发电组织的核心驱动力:

    • 遵守开源守则,体现开源&贡献精神:以分享为目的,拒绝非法牟利。
    • 自我保护:使用适当的 License 保护自己的原创作品。
    • 尊重他人:不以各种理由、各种漏洞进行未经允许的抄袭、散播、洩露;以礼相待,尊重所有对社区做出贡献的开发者;通过他人的分享习得知识,要留下足迹,表示感谢。
    • 热爱编程、热爱学习:加入组织,热爱编程是首当其要的。我们欢迎热爱讨论、分享、提问的朋友,也同样欢迎默默成就的朋友。
    • 倾听:正确并恳切对待、处理问题与建议,及时修复开源项目的 Bug ,及时与反馈者沟通。不抬杠、不无视、不辱骂。
    • 平视:不诋毁、轻视、嘲讽其他开发者,主动提出建议、施以帮助,以和谐为本。只要他人肯努力,你也可能会被昔日小看的人所超越,所以请保持谦虚。
    • 乐观且活跃:你的努力决定了你的高度。不要放弃,多年后回头俯瞰,才会发现自己已经成就往日所仰望的水平。积极地将项目开源,帮助他人学习、改进,自己也会获得相应的提升、成就与成就感。
    1 引用 • 487 回帖 • 1 关注
  • WiFiDog

    WiFiDog 是一套开源的无线热点认证管理工具,主要功能包括:位置相关的内容递送;用户认证和授权;集中式网络监控。

    1 引用 • 7 回帖 • 609 关注
  • abitmean

    有点意思就行了

    30 关注
  • SendCloud

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

    2 引用 • 8 回帖 • 485 关注
  • Caddy

    Caddy 是一款默认自动启用 HTTPS 的 HTTP/2 Web 服务器。

    12 引用 • 54 回帖 • 165 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 54 回帖 • 18 关注