搬来和同事合租以后,终于可以无顾忌的开喇叭了,只是原来20块的便携音箱实在寒酸,就上网买了个漫步者R1200T,郁闷的是听起来感觉还是很山寨啊!想了一想,恐怕问题出在音频系统上,现在用的是默认的ALSA,早就耳闻音质不如OSS,可惜OSS已经被主流抛弃了,只能自己整一整了,不然这音箱就白换了。 网上转了一圈,发现OSS都停止开发好多年了,最新版是OSS v4.2 build 2008(好像开发者还在找工作中。。。),别忙着动手,先看看是不是支持我的声卡:创新Audigy2,源码里看支持列表devlists/Linux,果然有我这块古董啊 (从Oasis兄处购得,惭愧一直也没堪大用),马上下代码开搞,参考官方的编译指南

1.解压缩源码后,进去新建一个build目录: mkdir build && cd build

2.配置仅编译我声卡的驱动: ../configure --only-drv=oss_sblive

3.编译: make build

4.切换成root,安装: make install

但是,编译内核模块的时候出错了,我的内核是3.11.6的,看来2008版还是没能跟上时代,如果是好东西,肯定还有别人用,上网找补丁吧,最后在OSS论坛里发现了宝,有哥们放出了打好补丁的包。直接搞定!(最新的3.12内核也支持)

5.不出意外的话,现在可以用osstest程序测试一下了,我觉得声音好像动听多了,哈哈! (注:安装成功还有一个前提,那就是原ALSA支持没有编入内核,必须是模块安装,否则OSS就无法卸载并替换ALSA了。)

6.把/etc/init.d/oss放入开机启动。 (开始放到default runlevel里,居然没有效果,可能是启动脚本不符合openrc的规范,暂时放/etc/local.d/oss.start里启动吧。)

测试完成后,给系统增加oss的USE,重新编译相关软件吧:我平时只用mplayer,改ao为oss即可。flash插件直接支持oss,不用动。 GNOME3的音量控制器刚好支持总音量调节,很好!如果不灵,可以用oss自带的ossmix(命令行版本)或ossxmix(gtk界面)。

听音测试后,明显感觉声场有了,音质比ALSA强多了啊!

顺便在OSS论坛翻了一下,还有可以改进的地方,在执行configure之前,把这个文件里的GRC_MAX_QUALITY=3改成6,然后ossmix把混音器的resampler质量设置到Production:(据说会有更好的音质,不过坛子里也有人说Production过头了,我等俗人,啥也不懂,就设置到低一档的High+吧) ossmix vmix0-src High+

再进一步逛,发现牛人说OSS软混音器GRC3重采用的算法很挫,不如直接把音源交给声卡播放好(oss提供的ossplay有个-R参数可以绕过软混音器),前提是你的声卡硬件支持播放文件的采样率,这个可以用ossinfo -v9查看,我声卡支持的是: Native sample rates (min - max): 8000 - 48000 (8000,11025,16000,22050,24000,32000,44100,48000) 一般从CD音源出来的采样率都是44.1k,正好支持,放一个试试了: ossplay -v -R cd.wav 嗯,自我感觉确实好听!

不过这么放音乐还是很麻烦,大多数歌曲都是mp3等压缩格式啊,ossplay只支持wav的样子。好说,牛人各种讨论,最后说有个俄罗斯的大神写了个很好的重采算法,音质碉堡了,就是不开源啊(可以联系原作者),只提供了一个deadbeef播放器插件,直接放到deadbeef的插件目录里,看自带的howto设置一下就可以用了。

总之,自我感觉良好,音箱没白买啊!