音频源代码

早在2000年代初,我们就做出了一项家庭决策,决定升级客厅音响。 当时的设备是基于我20年前刚获得稳定的大学后收入时购买的一系列齿轮的。 早期的收藏最好被描述为“工业时尚”,最著名的是我用套件制造的Hafler放大器和用某种复合木制品制成的Polk扬声器 ,并以丑陋的人造玫瑰木乙烯基包装包裹。 他们产生了体面的声音,但是宿舍房间风格的装饰在客厅里却没有用。

那些记得2000年代初的人会回想起,世界上大多数地区仍在消费CD上的音乐。 我们的家庭也不例外,最终我们得到了一个具有有趣功能的高级CD播放器-它能够解码常规CD以及高清兼容数字(HDCD)光盘。

根据Wikipedia的说法,HDCD是专有的音频编码/解码过程,声称可提供比标准《红皮书》音频CD更大的动态范围,同时保持与现有光盘播放器的向后兼容性。

我们的CD播放器手册指出:“ HDCD系统是根据Pacific Microsonics,Inc.的许可制造的。” “ HDCD是由加利福尼亚州太平洋微电子学公司开发的一种数字信号处理系统,它将控制代码隐藏在所记录的CD数字音频流的很小一部分中。HDCD解码器识别这些控制代码,并使用它们来处理数字音频以增加其动态范围和分辨率,同时使原始数字流与常规CD播放器兼容。”

您可能会问,HDCD如何发挥这种魔力? 相同的Wikipedia条目指出:“ HDCD通过使用自定义抖动,音频滤波器以及一些可逆的幅度和增益编码,在16位数字音频信号中编码了相当于20位数据的值; Peak Extend,这是可逆的软限制器;以及低电平范围扩展,这是低电平信号的可逆增益。”

无论该技术的优点是什么,其母公司都无法继续营业并在2000年某个时候停止运营。Wikipedia文章指出,微软收购了该公司并将代码合并到Windows Media Player中,以允许对HDCD进行解码,但似乎对它失去了兴趣。它的推广。 可能是由于出现了其他专有的高分辨率音频格式,例如SACD和DVD-A,它们能够在外观相似但不兼容的媒体上对完整的24位信号进行编码。 尽管录音室继续在SACD上发行音乐,但后一种格式都不是特别成功的,至少在商业上不是如此。 碰巧的是,SACD包含一个“混合”标准,该标准在同一张光盘上同时提供了SACD和向后兼容的CD层,从而允许以标准CD分辨率在常规CD播放器上播放这些专辑。

实际有多少艺术家和工作室使用HDCD? 好吧,Discogs提供了一份11284张HDCD录音的清单 (截至撰写本文时)。 该网站使用实际的HDCD编码音乐对HDCD提供的一些功能进行了有趣的分析。 对于那些对原始专利(Google专利所声称的权利已经过期)感兴趣的人, 可以在这里找到 。

我的HDCD故事

尽管现在我尽我所能避免被“专有技术迷恋”所影响,但我承认我并不是2000年代初开放的所有事物的坚定支持者。 我不仅购买了带有专有技术的上述高级CD播放器,而且还购买了一些恐怖的HDCD编码标题,这很恐怖!

在过去的一个周末,我设法在我们的收藏夹中找到了三个,但我敢肯定还有更多。 我设法找到的三个人包括Ensemble Dumont的La Messe du Roi ,Musica Secreta的Dangerous Graces以及启蒙时代的乐团Vivaldi Concerti ,这些都来自Linn Records Linux友好的音乐商店 。 在确保这些标题仍然可用的同时,我注意到HDCD中不再提供它们。

鉴于我手头上有这些专辑,并且该专利似乎已经过期,我决定确定是否可以将这些光盘以其完整的预期分辨率转换为开放音乐格式,此外,是否可以在不使用专有技术的情况下进行转换?软件。

我偶然发现了HDCD解码格式的第一个软件是hdcd.exe, 描述和这里提供 。 由于未提供该软件的源代码,并且由于需要运行Windows或至少运行Wine,因此我最初的兴趣大多消失了。

上面提到的Wikipedia文章提到,其他一些基于Windows的音乐播放器提供了HDCD解码。 嗯 但是后来我发现:

“ FFmpeg的libavfilter包括从FFmpeg 3.1(2016年6月)开始的HDCD过滤器,它将HDTV数据的16位PCM转换为20位PCM。”

这似乎是一个有前途的起点,因此我从发行版的存储库中安装了ffmpeg ,然后继续寻找更多提示,这时我偶然发现了对hydroaudio 的简洁描述 ,甚至提供了用于查找HDCD编码文件的脚本。在一个人的音乐目录中。 我使用了对从前面提到的Musica Secreta CD翻录的文件之一运行ffmpeg的行,如下所示:

ffmpeg  -hide_banner -nostats -y -v verbose -i \
'01 - Musica Secreta - Questi odorati fiori.flac'
-vn -af hdcd -f s24le /dev/null 2>&1 | grep "_hdcd_"

并收到以下输出:

[Parsed_hdcd_0 @ 0x55b2137e2c80] Disabling automatic format conversion.
[Parsed_hdcd_0 @ 0x55b2137e2c80] Auto-convert: disabled
[Parsed_hdcd_0 @ 0x55b2137e2c80] Looking for 16-bit HDCD in sample format s16
[Parsed_hdcd_0 @ 0x55b2137e2c80] CDT period: 2000ms (88200 samples @44100Hz)
[Parsed_hdcd_0 @ 0x55b2137e2c80] Process mode: process stereo channels together
[Parsed_hdcd_0 @ 0x55b2137e2c80] Force PE: off
[Parsed_hdcd_0 @ 0x55b2137e2c80] Analyze mode: [0] disabled
[Parsed_hdcd_0 @ 0x55b2137e2c80] Channel 0: counter A: 0, B: 1657, C: 1657
[Parsed_hdcd_0 @ 0x55b2137e2c80] Channel 0: pe: 1657, tf: 0, almost_A: 0, checkfail_B: 0, unmatched_C: 0, cdt_expired: 0
[Parsed_hdcd_0 @ 0x55b2137e2c80] Channel 0: tg 0.0: 1657
[Parsed_hdcd_0 @ 0x55b2137e2c80] Channel 1: counter A: 0, B: 1657, C: 1657
[Parsed_hdcd_0 @ 0x55b2137e2c80] Channel 1: pe: 1657, tf: 0, almost_A: 0, checkfail_B: 0, unmatched_C: 0, cdt_expired: 0
[Parsed_hdcd_0 @ 0x55b2137e2c80] Channel 1: tg 0.0: 1657
[Parsed_hdcd_0 @ 0x55b2137e2c80] Packets: type: B, total: 3314
[Parsed_hdcd_0 @ 0x55b2137e2c80] HDCD detected: yes, peak_extend: enabled permanently, max_gain_adj: 0.0 dB, transient_filter: not detected, detectable errors: 0

注意上面提到的最后一行,实际上是检测到了HDCD。 同样,似乎启用了“峰值扩展”功能。 据我了解,此功能可以在将整体信号电平降低两倍后,逆转应用于音乐最响亮部分的压缩/限制,从而恢复某些原始录音的额外动态范围。 鼓德温(Goodwin)的High End网站在此处详细介绍了此主题。

现在,是时候尝试一下整个过程了。 由于某种原因,我没有信心将16位未解码的FLAC一步转换为24位解码的FLAC,因此我分两步进行了转换,如下所示:

for f16 in *.flac; do
trk=`basename "$f16" .flac`
w24="$trk"_24.wav
ffmpeg -i "$f16" -af hdcd -acodec pcm_s24le "$w24"
flac "$w24"
done

这给了我一组24位44.1kHz FLAC文件,我使用file命令对其进行了验证。 那时,我要做的就是确保所有标签看起来都不错,就是这样。

说起音乐...

我今年在音乐专栏休息了一会儿,因为除了听我已经掌握的东西以外,我没有做太多事情。 但是一些新物品悄悄进入了我的收藏。

Emancipator的最新产品“ Mountain of Memory”可从该Linux友好型和艺术家友好型在线商店Bandcamp获得 。 如果您喜欢Emancipator的早期版本,对此不会感到失望。

剑桥克莱尔学院合唱团和德米特里合奏团发行了由ArvoPärt,Peteris Vasks和James MacMillan创作的精美音乐作品集 ,名称为“ ArvoPärtStabat”。 我没有仔细听过这张专辑,但即使如此,我对这里介绍的三位作曲家作品之间的相似之处也感到震惊。 也许是关于北欧景观和天气的共同影响? 我以96/24 FLAC的价格从Presto Classical (另一家Linux友好的在线商店)下载了这首优美的合唱音乐。 对于那些对此音乐有更多了解的人,在该站点上有克莱尔学院合唱团指挥格拉汉姆·罗斯的专访。

最后,还有一些有趣的新闻-HDtracks ,这是一个在线商店,提供了许多出色的高分辨率下载,使我困扰了很多年(以至于向他们发送了很多抱怨的电子邮件),终于使他们能够从中购买音乐而无需使用他们的下载管理器! 我实际上还没有在那买东西,但我会尽快给它回旋并报告。

翻译自: https://opensource.com/article/20/7/hdcd

音频源代码

音频源代码_使用开放源代码从丢失的格式中恢复音频相关推荐

  1. autocad形源代码_在开放源代码库中使用AutoCAD文件格式

    autocad形源代码 许多开发人员和地理信息系统(GIS)专业人员无法使用图形交换格式(DXF)或"图形"(DWG)文件. 这些AutoCAD格式通常要求您具有Windows®和 ...

  2. osi7层协议源代码_捍卫开放源代码的17年:立即加入OSI

    osi7层协议源代码 开源倡议 (OSI)是国际信任的纽带,可以保护和促进开源软件以及开发和依赖开源软件的社区. OSI的工作主要以我们在认证开放源代码软件许可证方面的工作而著称,如今,OSI的工作已 ...

  3. zeppelin连接数据源_使用开放源代码合同(open-zeppelin)创建以太坊令牌

    zeppelin连接数据源 by Danny 通过丹尼 使用开放源代码合同(open-zeppelin)创建以太坊令牌 (Create an Ethereum token using open sou ...

  4. glass安装_借助开放源代码,Google Glass得以快速发展

    glass安装 我最近有一个   Google Glass 设备通过资源管理器程序 . 资源管理器计划专为希望及早参与并帮助塑造Glass未来的人们而设计. 我们正在一点一点地扩展,并尝试将新的Exp ...

  5. microsd卡无法读取_如何从无法读取的microSD卡中恢复数据?

    microsd卡无法读取 We have all been there and had a storage device of some kind experience a failure, leav ...

  6. 微信第三方扫描登录 java源代码_微信开放平台基于网站应用授权登录源码(java)...

    1. 第三方发起微信授权登录请求,微信用户允许授权第三方应用后,微信会拉起应用或重定向到第三方网站,并且带上授权临时票据code参数: 2. 通过code参数加上AppID和AppSecret等,通过 ...

  7. g代码生成器 源代码_如何生成源代码?

    g代码生成器 源代码 在本文中,我将讨论软件开发的不同阶段,在这些阶段中可以以编程方式生成源代码,并且我将比较不同的方法. 我还将描述在特定阶段生成代码的特定工具的体系结构和想法(尤里卡时刻的种类). ...

  8. linux内核源代码_如何从源代码构建和安装最新的Linux内核

    linux内核源代码 by Sreehari 通过Sreehari 如何从源代码构建和安装最新的Linux内核 (How to build and install the latest Linux k ...

  9. python小程序源代码_【程序源代码】Spring Boot 考试小程序

    " 关键字:考试 小程序" 正文:考试小程序 01 - 学之思在线考试系统是一款 java + vue 的前后端分离的考试系统.主要优点是开发.部署简单快捷.界面设计友好.代码结构 ...

最新文章

  1. python语言属于哪一种语言_Python与Java:你应该学习哪种语言,他们有什么区别?...
  2. 面向对象程序设计要考虑的7个原则
  3. iOS: 环信的推送
  4. 48 SD配置-定价配置-定义条件表
  5. flutter java混编_有赞 Flutter 混编方案
  6. 关于C语言可变参数函数的一些研究和总结
  7. oracle导入导出还原,Oracle 备份 还原 数据库 导入导出
  8. ubuntu shell 直接输入密码
  9. 计算机控制手机源码,Total Control电脑控制手机助手
  10. 嵌入式STM32入门之一个简单STM32汇编程序的编写
  11. 福昕PDF阅读器 连续阅读
  12. 软件测试工程师岗位职责、岗位要求
  13. 视觉素材-10 个值得珍藏的高清桌面壁纸网站
  14. 正则表达式中问号(?)的用法详解
  15. 7-21 查验身份证 (15 分)
  16. XLR接头(卡农头)数字音频线制作教程
  17. 用计算机进行情报检测属于计算机应用中,[单选] 计算机用于情报检索属于计算机应用中的()。...
  18. 企业微信工作台集成CAS实现单点登录
  19. ⑰霍兰德EI*如何选选专业?高考志愿填报选专业
  20. 五笔字型词组输入规则(口诀:打词方法)

热门文章

  1. Mybatis中的缓存详解
  2. 利用TICK搭建Docker容器可视化监控中心
  3. 以社会工程学助力网络安全
  4. Mylyn 2.0,第 1 部分: 集成的任务管理
  5. Drupal常用开发工具(一)——Devel模块
  6. Centos 6.5 linux 安装nginx
  7. 社会计算:服务群体社会的大数据科学
  8. Notepad++ 使用心得
  9. 得到节点值的两种方法
  10. linux常用指令(持续更新)