耳机网-耳机大家坛

标题: 自制PC音乐播放器SounDevil [打印本页]

作者: joemak    时间: 2022-1-10 12:18
标题: 自制PC音乐播放器SounDevil
想要一个音质好,简洁漂亮,小而精的本地音乐播放器,找了一圈都不满意,常被提及的那些,要么太老不支持新的软硬件(新OS,高分屏),要么太商业(专有格式,直播),要么大而全却不精,有的丑还难用但音质好?略懂C++,于是自己做了一个.
音频引擎是自己设计的,部分解码器和通用算法是用的开源库,参考了几乎所有常见的软件/引擎,几乎每种路线都动手实现过,终于得到满意的结果.
UI是在类DuiLib上改的,原版渲染引擎基于GDI,对高分屏支持不好,刷新率不高,图片显示质量差,于是基于Direct2D重做了引擎.
自觉不错,献给大家
百度网盘: https://pan.baidu.com/s/1Kmt2Bq-zwIVYzSkDnI5TBw 提取码: wgd3

音频引擎为Surreal Engine(超现实引擎)
输入文件格式,支持WAV,DSD,FLAC,APE,MP3.
输出界面,支持ASIO,WASAPI独占模式.
输出格式,支持PCM,DSD native,DoP.
DSP使用64位浮点数,采用现代高质量算法,支持现代高性能指令集,具有声道转换,采样率转换(软件升频),编码转换,参数滤波器,卷积滤波器,音量控制等功能.
用户界面为DiVect UI(直接矢量界面)
渲染引擎为Direct2D,使用显卡加速,速度远超传统的GDI/GDI+,画质也更好.
采用浮点坐标和矢量图形,支持任意比例无损缩放.
支持高分屏,动态刷新率,多显示器环境.
支持多种语言.





作者: 多少春秋    时间: 2022-1-10 14:04
技术帖,膜拜

作者: andre叁仟    时间: 2022-1-10 15:52
卧艹这个太强了

作者: 人生从简    时间: 2022-1-10 20:49
给楼主这动手能力点赞

作者: 阿哥2503    时间: 2022-1-10 21:06
这才是坛子该有的贴

作者: 裤衩里的蛇    时间: 2022-1-10 22:02
牛逼,三连了。

作者: marine2000    时间: 2022-1-10 22:16
点赞点赞点赞

作者: 午夜骄阳66    时间: 2022-1-10 22:55
这厉害

作者: minkun22    时间: 2022-1-11 00:02
能力非常强大,试试音质

作者: Orwell    时间: 2022-1-11 00:08
膜拜大佬

作者: kttycn    时间: 2022-1-11 02:11
开源没?

作者: xboxp123    时间: 2022-1-11 08:06
niubility

作者: 北非烤翅    时间: 2022-1-11 08:12
论坛有不少码农,但有动手能力,有时间,有无私分享的不多,赞

作者: 天门    时间: 2022-1-11 08:19
厉害厉害

作者: 江南我最帅    时间: 2022-1-11 08:21
绑定了

作者: lsesame    时间: 2022-1-11 08:22
卧槽了,硬核玩家,牛逼

作者: toddchan1713    时间: 2022-1-11 08:24
点赞,留名,回去下载!

作者: 孙不言    时间: 2022-1-11 19:01
楼主厉害

作者: tly1987    时间: 2022-1-11 19:14
下载了,试用!能否整理硬盘中的音乐文件,或者按照某个主题自建音乐播放列表
作者: wx1968    时间: 2022-1-11 19:25
非常非常棒!!!


作者: sh1925    时间: 2022-1-11 19:34
这个要支持一下,下载来听听效果,谢谢楼主的分享。
作者: wangyp365    时间: 2022-1-11 20:09
赞赞

作者: luwj657    时间: 2022-1-11 20:15
膜拜大佬,如何升级?
作者: joemak    时间: 2022-1-11 20:19
kttycn 发表于 2022-1-11 02:11
开源没?

近期不会开源,还在快速更新中,过早开源会限制接口改进,拖慢开发进度.

作者: joemak    时间: 2022-1-11 20:20
tly1987 发表于 2022-1-11 19:14
下载了,试用!能否整理硬盘中的音乐文件,或者按照某个主题自建音乐播放列表

下个版本重心就是媒体库和歌单

作者: joemak    时间: 2022-1-11 20:22
luwj657 发表于 2022-1-11 20:15
膜拜大佬,如何升级?

Q群会频繁更新,网盘会更新稳定版

作者: 天国Z哥    时间: 2022-1-11 20:22
完全不懂,下载试试

作者: 一人星    时间: 2022-1-11 20:51
试了一下感觉还行,期待一下改进版。

作者: 天国Z哥    时间: 2022-1-11 21:04
就差媒体库了

作者: pipi1818    时间: 2022-1-11 21:07
好东西,下来试试
作者: pipi1818    时间: 2022-1-11 21:18
我下了1月8号的那个,跟1月10号的有区别吗?
作者: joemak    时间: 2022-1-11 21:21
pipi1818 发表于 2022-1-11 21:18
我下了1月8号的那个,跟1月10号的有区别吗?

功能没区别,看版本号就行

作者: Jay309    时间: 2022-1-11 21:21
牛逼了,这里真是卧虎藏龙

作者: pipi1818    时间: 2022-1-11 21:29
试听了几曲,会自动把16bit歌曲升到32bit,解析力很不错。
而且这个界面我真的很喜欢,简洁大方。
作者: 亦海    时间: 2022-1-11 21:43
动手帝   666

作者: nomad56789    时间: 2022-1-11 21:58
厉害啊, 赶紧下载试试先
作者: jimmyxzy    时间: 2022-1-11 22:41
硬核,赞

作者: EndlessLove    时间: 2022-1-11 23:57
厉害了 UI看着挺舒服 有无修改音频文件信息功能?有的话就可以在听歌时将歌曲信息实时更新掉 免得后面再去找

作者: EndlessLove    时间: 2022-1-11 23:59
UI的歌单列表还是加上字段标题更直观

作者: soralight    时间: 2022-1-12 11:56
好东西!顶
作者: nancy31595    时间: 2022-1-12 15:21
这个厉害,点赞!
作者: beyang    时间: 2022-1-12 15:35
建议做成开源,人多力量大,还是有很多人会 感兴趣投入的
作者: Hottytoddy    时间: 2022-1-12 15:51
完美,腾讯网易花上千万做出来的乐色还没一个有创意的爱好者做出来的好!
作者: dargon    时间: 2022-1-12 16:00
点赞
作者: Tom.G    时间: 2022-1-12 16:40
先bd一下,nb的
作者: 复制情感    时间: 2022-1-12 19:47
强力为楼主点赞!
一直用FB或毛子的APlayer,终于见到国人自己写的高码播放软件。
使用了两天,真心感觉不错。
暂时发现清空了播放列表再把新的文件夹拖进去后按播放键,结果还是播放原清空的文件。
是自己设置不对?
作者: joemak    时间: 2022-1-12 19:58
复制情感 发表于 2022-1-12 19:47
强力为楼主点赞!
一直用FB或毛子的APlayer,终于见到国人自己写的高码播放软件。
使用了两天,真心感觉 ...

正常的,停止状态按"播放"会重新播放当前歌曲.如果播放顺序不是单曲XX,按"下一个"就会播放新加入的歌曲

作者: wzx740120    时间: 2022-1-12 20:28
这个确实非常厉害了
作者: memeloo    时间: 2022-1-12 21:22
这个得支持

作者: 复制情感    时间: 2022-1-12 21:24
pipi1818 发表于 2022-1-11 21:29
试听了几曲,会自动把16bit歌曲升到32bit,解析力很不错。
而且这个界面我真的很喜欢,简洁大方。

设置好了会原汁原味的

作者: Mahandi    时间: 2022-1-12 21:26
真正的高手
作者: netsurfe    时间: 2022-1-13 06:48
硬核玩家,厉害了

作者: leonbernieni    时间: 2022-1-13 07:47
本帖最后由 leonbernieni 于 2022-1-13 07:48 编辑

抓到个小虫,拉丁字符会认错



作者: joemak    时间: 2022-1-13 09:03
leonbernieni 发表于 2022-1-13 07:47
抓到个小虫,拉丁字符会认错

我模仿了图中的路径,是可以打开的.请先确认文件存在.
如果是,
请在资源管理器-右键点击文件-属性-安全-对象名称,将文件路径复制给我(不是截图,是文字).


如果您是在网络下载的,可以提供下载地址给我.
感谢!



作者: leonbernieni    时间: 2022-1-13 09:30
joemak 发表于 2022-1-13 09:03
我模仿了图中的路径,是可以打开的.请先确认文件存在.
如果是,
请在资源管理器-右键点击文件-属性-安全- ...

实际这个文件与目录同样是café blue,但是软件做播放列表索引的时候,目录的解析是对的,而里面的dff文件名解析成了caf茅 blue.dff,然后软件执行播放的时候直接提取caf茅 blue.dff去赋值文件名变量。晚上再给出详细信息。
作者: joemak    时间: 2022-1-13 09:53
leonbernieni 发表于 2022-1-13 09:30
实际这个文件与目录同样是café blue,但是软件做播放列表索引的时候,目录的解析是对的,而里面的dff文 ...

文件夹内是不是有同名的cue文件,如果是的话,我可能知道问题在哪了,方便时请将cue发给我验证,谢谢

作者: leonbernieni    时间: 2022-1-13 10:17
joemak 发表于 2022-1-13 09:53
文件夹内是不是有同名的cue文件,如果是的话,我可能知道问题在哪了,方便时请将cue发给我验证,谢谢

是的,确实有cue,utf8,先前觉得与cue无关,或许把是utf8当成gbk读取了?

作者: beijinglaoshi    时间: 2022-1-13 10:25
让人振奋的好东西,祝贺楼主!坚持!
作者: leonbernieni    时间: 2022-1-13 17:39
本帖最后由 leonbernieni 于 2022-1-13 18:23 编辑
joemak 发表于 2022-1-13 09:53
文件夹内是不是有同名的cue文件,如果是的话,我可能知道问题在哪了,方便时请将cue发给我验证,谢谢

链接: https://pan.baidu.com/s/1LC72I5hjcc-z08O79Xc8Iw 提取码: d95w
cue请查收。谢谢。


简单与fb比较了下

UTF-8 w/ BOM: SounDevil 茅
ANSI:
UTF-8 w/o BOM: foobar 茅;SounDevil 茅


作者: joemak    时间: 2022-1-13 18:27
leonbernieni 发表于 2022-1-13 17:39
链接: https://pan.baidu.com/s/1LC72I5hjcc-z08O79Xc8Iw 提取码: d95w
cue请查收。谢谢。

厉害了,确实是因为把UTF当作ANSI,因为当时看的资料说CUE只有ANSI编码,请在致谢名单留下您的大名,是leonbernieni吗?

作者: leonbernieni    时间: 2022-1-13 18:39
joemak 发表于 2022-1-13 18:27
厉害了,确实是因为把UTF当作ANSI,因为当时看的资料说CUE只有ANSI编码,请在致谢名单留下您的大名,是leonbe ...

千万别留名啊……
很少看到这么高质量的软件,用着舒心已经很满足了。



作者: styxii    时间: 2022-1-18 04:59
卧槽楼主牛!!!

已经下载谢谢谢!



作者: linbin    时间: 2022-1-20 09:25
楼主,解释一下,怎么会报有木马的动态链接库?
作者: joemak    时间: 2022-1-20 12:50
linbin 发表于 2022-1-20 09:25
楼主,解释一下,怎么会报有木马的动态链接库?

您好,感谢试用SounDevil,请问您是在哪里下载的?杀毒软件是哪个?有木马的是哪个动态链接库?何种木马?

作者: pipi1818    时间: 2022-1-20 23:13
播放过程中发生错误
原因: 外部函数 失败
影响: 播放终止
解决办法: 重启程序, 终端, 还不行就重启计算机
详情: read file failed
技术信息
组件: input_wav
函数: surreal::input_wav::subclass_read
源文件: input_wav.cpp 行: 121

回报一下,今天遇到这个错误,然后无论重开播放器还是重启都会时不时出现。

作者: joemak    时间: 2022-1-20 23:25
pipi1818 发表于 2022-1-20 23:13
播放过程中发生错误
原因: 外部函数 失败
影响: 播放终止

请将文件发到邮箱soundevil@qq.com,谢谢

作者: pipi1818    时间: 2022-1-20 23:29
joemak 发表于 2022-1-20 23:25
请将文件发到邮箱,谢谢

请问应该发什么文件,音乐文件还是?

作者: joemak    时间: 2022-1-21 00:00
pipi1818 发表于 2022-1-20 23:29
请问应该发什么文件,音乐文件还是?

音乐文件

作者: sunjp1963    时间: 2022-1-22 23:44
这个必须顶顶
作者: joemak    时间: 2022-1-23 01:27
版本1.2
新增:
输入AAC(.m4a).
输入DTS, DTS-HD, DTS-in-WAV.
DSD直通模式 (不转换为PCM).
WASAPI共享模式.
以命令行参数添加歌曲并播放, 可以将文件的打开方式设为SounDevil,在资源管理器里双击打开歌曲,或者右键菜单->用SounDevil"打开".
(系统更新或者重装驱动后)WASAPI设备ID改变后, 如果设备名字没有改变, 能自动迁移设置.
更改:
输入WAV, 大幅改进了兼容性, 可以支持更多的子格式和"状况".
CUE, 现在支持ANSI, UTF-8, UTF8 BOM, UTF16 LE, UTF 16 BE.
MP3解码输出格式 改为 32位浮点数.
修正:
某些芯片(如Realtek)输出格式为24bit时沙沙声噪音.
MP3,某些文件播放将近结束时, 出现错误"mp3dec_ex_read failed".
主窗口大小现在可以自动恢复上次关闭时的状态.
作者: wzx740120    时间: 2022-1-23 09:07
相当不错
作者: joemak    时间: 2022-1-27 16:30
SounDevil 1.2.1
新增:
输入AC3, AIFF, ALAC, TAK, MPC, OGG, WAVPACK, WMA.
WASAPI, 以32bit封装的有效位深是24bit的PCM.
更改:
音源数据错误, 可以继续播放的不再终止播放, 不弹出对话框, 在引擎状态 查看错误时间点和详情.
修正:
软件路径有中文会无法再次启动,(由于TOML的bug).
ASIO:
一些导致播放中止的情况 给出提示, 通常是由于在播放期间 通过(驱动/系统)控制面板修改了设置而引起.
有的驱动控制面板 不能显示.
有的驱动控制面板 会造成播放器窗口 卡住.


作者: 复制情感    时间: 2022-1-28 06:20
joemak 发表于 2022-1-27 16:30
SounDevil 1.2.1
新增:
输入AC3, AIFF, ALAC, TAK, MPC, OGG, WAVPACK, WMA.

继续使用中!
如果:1、加入网络电台播放。毛子的APlayer里面内置的网络电台有好多是高码推送,音质棒棒!适合长时间当背景。
         2、直接播放云盘里的音乐文件。省去买硬盘的开支、下载的时间。
能的话就是全网无敌了

文科的想法,见笑。


作者: 复制情感    时间: 2022-1-28 07:00
本帖最后由 复制情感 于 2022-1-28 07:02 编辑

播放DSD256文件时,有以下提示:(解码器是支持硬解到256的)

准备播放时发生错误
原因: DSD直通模式, 终端 不支持 该格式
影响: 不能开始播放
解决办法: 不使用 DSD直通模式
详情: endpoint doesn't support the sample rate of 705600
技术信息
组件: surreal
函数: surreal::engine_impl:pen
源文件: engine_impl.cpp 行: 138

作者: joemak    时间: 2022-1-28 09:47
复制情感 发表于 2022-1-28 06:20
继续使用中!
如果:1、加入网络电台播放。毛子的APlayer里面内置的网络电台有好多是高码推送,音质棒棒 ...

非常好的建议

作者: joemak    时间: 2022-1-28 09:49
复制情感 发表于 2022-1-28 07:00
播放DSD256文件时,有以下提示:(解码器是支持硬解到256的)

准备播放时发生错误

您使用的是WASAPI DoP, 同一个设备, DoP支持的最高频率 可能比ASIO DSD native 低一档, 您可以用ASIO试试.

作者: hongyi0200    时间: 2022-2-6 21:51
准备播放时发生错误
原因: 终端 不支持 该格式
影响: 不能开始播放
解决办法: 尝试其它格式
详情: Direct DSD to ASIO, the endpoint does not support DSD
技术信息
组件: player
函数: DUI::EnginePage::ApplyOutputConfig
源文件: EnginePage.cpp 行: 2413

解码器 AUNE S16,支持DSD512的,打开DSD直通报错,以上是报错信息,FOOBAR2000正常
作者: joemak    时间: 2022-2-7 16:13
hongyi0200 发表于 2022-2-6 21:51
准备播放时发生错误
原因: 终端 不支持 该格式
影响: 不能开始播放

您好, 这个错误的原因是ASIO驱动表示它并不支持DSD native(原生DSD), 您的设备宣传支持DSD可能是指DoP(包装成PCM的DSD).SounDevil目前不支持ASIO接口的DoP, 您可以在终端列表选择WASAPI接口的该设备, 看样本里是否有DoP, 如果有可以尝试使用.我从网上搜的资料说AUNE S16最高支持到DSD128, 您的foobar可能并非以DSD512输出(虽然输入是DSD512, 但是可能转为其它格式输出).


如果方便请到群内详谈.
谢谢!

作者: joemak    时间: 2022-2-10 23:26
版本1.3
新增:
终端支持格式, 可以手动排除 实际上不支持的格式.
WASAPI 推送模式(push).
输入DSD, 支持48000Hz频率系列, 实验性支持DSD512和DSD1024直通 或者 转PCM.
MMCSS 自定义.
播放控制栏快捷选择终端.
更改:
设置保存文件(config.toml)的内容 改为 树状结构, 旧版不能用于新版. 终端设置 放入 config.toml.
可以只显示封面或者歌词.
修正:
WASAPI, 如果终端只支持共享模式, 可以正常使用了.
ASIO, 驱动名字超过31个字符时,发生错误:loadAsioDriver failed.
ASIO, 某些驱动(例如 意大利卡Amanero)在开始播放时 闪退.
声道转换, 离散规则下, 输入声道数小于输出声道数时, 剩余声道 忘记 设为静音.
SRC算法设置更改后没有生效.
输入WAV, 文件尾部存在非RIFF标准的内容(例如APE标签), 可以正常播放了.
输入DSD, 随机显示MSB或LSB.
输入DSD, 部分DSF文件(或者seek某些位置后)末尾爆音.
用户数据迁移办法: 将user文件夹复制到新版, 删除其中的config.toml和endpoints文件夹.
作者: adagio1793    时间: 2022-2-13 11:12
膜拜
作者: gushfehz    时间: 2022-2-13 11:59

   bd nb
作者: nos001    时间: 2022-2-13 12:32
要有幸见证大佬崛起吗
作者: 夏邦盖    时间: 2022-2-18 12:47
谢谢下载试听一下,
作者: 勿空66    时间: 2022-2-18 14:11
真·硬核玩家
作者: bonjovi132    时间: 2022-2-22 15:37
牛人,真是天才
作者: jichao    时间: 2022-3-1 10:11
开始/继续播放时发生错误
原因: 终端 不可用 或者 设置发生了改变
影响: 播放终止
解决办法: 尝试播放, 不行就刷新终端状态, 排除异常状况
详情: ASIOStart failed with -1000
技术信息
组件: output_asio
函数: surreal::audio:utput_asio::play
源文件: output_asio.cpp 行: 195
作者: jichao    时间: 2022-3-1 10:15
dsd 转换pcm时报错,机器配置低了?
作者: joemak    时间: 2022-3-1 14:43
jichao 发表于 2022-3-1 10:15
dsd 转换pcm时报错,机器配置低了?

应该不是配置的问题,刷新终端状态试试。如果不行,请进群聊吧
作者: lhz6974    时间: 2022-3-7 09:19
有动手能力,有时间,有无私分享的不多,赞
作者: joemak    时间: 2022-3-14 14:26
SounDevil 1.4
2022年3月14日
新增:
下载封面,歌词,调整时间.
歌单, 显示总数和总时长, 搜索歌曲, 定位当前播放歌曲, 拖放添加文件 可以 选择新建列表或添加到指定列表, 显示正在添加文件并且可以取消, 显示添加文件遇到的问题, 显示歌曲时长, 打开文件所在位置.
DSD转PCM滤波器 自定义.
图形均衡器(EQ).
平滑音量变化.
手动停止时淡出, 定位(Seek)时淡入淡出.
A-B循环播放.
播放控制栏, 显示 频率, 声道.
迷你频谱 显示立体声.
更改:
歌单显示改用虚拟列表.
歌单保存格式更改, 不兼容旧版.
封面, 歌词, 优先读取音源同路径外部文件.
修正:
程序缩放不是100%时, 重启窗口大小错误.
文件扩展名不是小写时 不会加入歌单.
歌词时间使用毫秒时,不能读取.
参数滤波器 仅有 主增益 生效, 滤波器未生效.
参数滤波器 一处内存泄漏.
连续快速seek可能导致进度条不再走动(声音是正常的).
FFmpeg输入, seek到接近文件尾部 偶尔会报错.
作者: pipi1818    时间: 2022-3-15 22:01
提一些小意见,软件窗口过大,只能全屏模式,调整缩放只能改变字体大小。
播放列表不能移动曲目顺序,不能批量删除曲目。
播放列表不能导出,更新1.43版本之后copy user文件夹无法显示旧的列表(旧版可以)。

作者: joemak    时间: 2022-3-16 10:43
pipi1818 发表于 2022-3-15 22:01
提一些小意见,软件窗口过大,只能全屏模式,调整缩放只能改变字体大小。
播放列表不能移动曲目顺序,不能 ...

1把user文件夹删了吧。3列表文件不能向前兼容。抱歉,只能重新设置了
作者: boby883    时间: 2022-3-20 09:25
很不错,在用
作者: boby883    时间: 2022-3-20 10:42
真的很不错
作者: boby883    时间: 2022-3-20 12:48
声音好过FOOBAR很多
作者: 复制情感    时间: 2022-3-24 07:41
新版 有很大改善,点赞!
期待惊喜不断!
作者: 耳机大乱炖    时间: 2022-3-29 21:15
技术牛贴,期待不断完善
作者: rgchenyuan    时间: 2022-4-14 20:20
给楼主这动手能力点赞
作者: joemak    时间: 2022-4-21 13:55
版本1.5
新增:
网络地址播放.
DLNA播放, 接受其他设备的推送(投屏).
网络电台, logo需另外下载.
PCM Bit Perfect.(目前支持WAV和APE).
WASAPI, 系统默认输出设备.
输入格式, MP1, MP2.
音源信息面板.
用户可添加语言翻译文件.
...
更改:
多处减少界面卡顿.
删除音源文件改为放入回收站.
键盘音量控制取消.
修正:
当系统语言没有翻译文件时, 自动使用英文.
软件路径改变后 报错 找不到文件, 现在改名或移动后会自动适应.
部分图片格式不能显示.
SRC Sinc算法, seek后, 进度条短暂闪烁.
lrc歌词, 时间的小数部分只有十分位的.
作者: vcoono    时间: 2022-4-23 09:39
试了下,非常好用,音质不错1.5版本在哪里下载?





欢迎光临 耳机网-耳机大家坛 (http://bbs.erji.net/) Powered by Discuz! X3.2