播放设备点滴

每次想着买一副好一点的耳机或者考虑音响设备的时候都会看见非常非常多的“专业名词”,评论文章里面说得天花乱坠,不停地说这个你不能少,那个不能买便宜货,当你觉得完全搞不懂只好掏腰包的时候,希望本文(及其后面的讨论)能够更好地帮助你做出相对理性的选择。

大部分时候我们的音乐源都是“文件”,它们本质上是数字信号以某种形式存放在存储介质上。有两大类录制数字信号的方式,DSD(direct stream digital) 和 PCM(Pulse-code Modulation),后者更为常见:

PCM vs. DSD
PCM vs. DSD

简单的说 PCM 直接数字化了声波的强度,而 DSD 则对强度的变化值进行的数字化,DSD 拥有更高的采样率。PCM 这类编码方式很显然适合后期处理,而 DSD 则相对困难,但是这种编码方式有利于提供更高的 dynamic range。一个声卡的作用就是将这类数字信号转换为模拟信号,用来驱动音响设备或者进行放大。有的声卡支持硬件直接解码 DSD,也有先将 DSD 转换到 PCM(这不是一个精确的转化)然后依赖 PCM 播放的,但是多数的声卡仅仅支持 PCM。被很多“发烧友”推荐的“无损”压缩格式诸如 FLAC 和 APE 其实都只是在 PCM 编码之后保证的“无损”,编码本身其实就是有损的过程,然而较高的采样率可以使得 DA 转换的结果尽量贴近原始的模拟信号。我们看到很多播放器上会号称支持 192KHz @ 24bit 就是表示 PCM 标准下 192kHz 采样率数字化时用了 24bit 的编码。

现在市面上有不少 DAC(digital analog converter),其作用就是完成数字信号到模拟信号的转换,等效于声卡。那么就会有人问,我们的手机、平板、笔记本不都有自己的声卡,可以播放音乐文件嘛,为什么我们需要单独的 DAC 呢。我看到的解释有两个,板载的声卡可能比较 crappy,比如不支持 DSD 或者更高采样率的下的 PCM,你不想在第一个转换环节就损失了原汁原味的音乐(假设你已经花精力和价钱收集到了高品质的音源文件);由于板载声卡环境比较复杂,受到的干扰比较多,因此产生的噪声会比较严重。独立的 DAC 可以更好地处理这个工作。通常 DAC 会以 USB 连接到主机,作为第二块声卡供操作系统选择。几年之前购入了 Fiio E10,这就是一个经典的 USB DAC,不少老外都进行了相关的评测,后来出了二代也算是国货精品了

MH463、E10 与山寨耳机
MH463、E10 与山寨耳机

现在市面上还有不少播放器(DAP),它的目的是提供一个简单的 OS 其唯一的作用就是播放音乐,如此一来可以做得更小、续航更长、操作更为方便。因此 DAP 本质上可以看成是 DAC + player。相对低端的播放器仅仅支持一些常见的格式,通过 firmware 的更换(最常见的大概就是 rockbox)可以支持更多的格式(如 FLAC 和 APE)和功能(比如歌词、图片)。前面用得比较多的大概就是这款小巧的 Sandisk Sansa Clip+ 了

Sandisk sansa clip+ 固定好了
Sandisk sansa clip+ 固定好了

不过如果你比较一般 E10 上的接口和 Clip+ 上的接口你就会发现,前者还会提供一个 Line Out(LO)和同轴输出,clip+ 只有 headphone,其实不少声卡也具有 LO 和 headphone 两个口,我一直很奇怪因为似乎两者能够调换(都是 3.5mm 插头),为啥需要提供两个呢?答案有两个原因,LO 和 headphone 的目的不一样,导致 LO 输出的是不经过放大的信号;headphone 是通过放大的信号;两者适合的阻抗会有一定的差异。DAC 和 DAP 上的 headphone 是为了让用户直接输出到耳机,这一般都是较低阻抗的耳机,LO 一般会通过接一个放大器(amplifier 简称 amp)再连接到输出设备。一个比较容易犯的低级错误大约是把 amp 连在 headphone 接口上,headphone 输出的信号本身被内置的放大器处理过可能已经存在失真,外接的放大器获得的效果就成为了两次叠加的效果。比较高端的 DAP(只是相对 clip+ 而言),比如 Fiio X3 2nd gen,加入了 DSD 的硬解以及 LO 这些功能,这主要是为了迎合“发烧”用户需要单独的 amp 或者使用了 DSD 音源文件的需求。

既然说到了 amp,对耳机用户而言,相关的指标无非是 impedence(阻抗)。常见的消费级别耳机的阻抗都比较低,因此常见的 DAP、手机、平板和笔记本的 headphone 输出就足以提供足够的功率驱动它们发声,但是也存在一些相对高端的耳机保留了早期耳机设计使用的高阻抗,这样一来导致的后果就是这些 headphone 输出不足以提供足够响亮的声音,这也就是之所以需要一个 amp 的原因。通常一个 amp 除了简单的模拟信号放大,还可以在这个信号上提供自己的印记:不同频谱上的信号放大的程度可以有所区别。Fiio E12 算是一个广受老外好评的性价比极高的 amp,但是就算它根据其标称的输出也可能无法驱动一些超级高阻抗的耳机。这里仅仅讨论了便携式 amp,不少家庭影院的 receiver 本身也是作为一个 amp 来使用,因此通过 LO 或者同轴就可以把 DAC、DAP 的信号输出到它们上面拖载的音响了。

一个有意思的事情是 iPhone 上是否能接驳 amp。也许你想是不是就拿 headphone 当 LO 就完了,事实上还有一些通过苹果的数据插头转 LO 的转接线,发烧的大部分都这样连 amp。

我比较好奇的是是否一个耳机真的需要高阻抗才能成为所谓的“发烧级别”的耳机呢。一圈搜索下来觉得似乎并不是这样,这似乎也意味着没有必要使用一个单独的 amp 来驱动这些既昂贵又需要额外的 amp 的耳机了。

评估一个耳机最重要的指标大约是 frequency response 曲线,所谓的耳机的“味”大约就是每种耳机产生的曲线有所不同,低频中频高频表现的是否突出往往能够比较容易看出来。耳机发声的原理是通过电磁作用产生振动,这部分其实超级简单,就是一块永久磁铁和一个导电线圈,运动的部件可以是线圈(称为动圈),也可以是磁铁(称为动铁),通常的耳机都为动圈设计,后者常见于助听设备,后来也被用于生产耳机,只是两者互有优缺点,后来甚至出现了所谓的圈铁耳机,大致的原理就是不同频段的动不同部分。这种往往会增加不少成本,但是不少好的耳机还是仅仅使用一种(比如 Senheiser IE8/80/800)。比较有意思的大概是老外可能也觉得耳机很多 over-priced 了,这么长的一个帖子里面大家欢乐的讨论了不少国产耳机。

——————
The seven good kine are seven years; and the seven good ears are seven years:the dream is one

播放设备点滴

两机比较

从 Nexus 6 换到了 iPhone 6S plus。

硬件

  • Nexus 6 虽然硬件有点老,在 Android M 上尚还能够正常工作,我属于比较 light phone user,电池勉强够用,每晚还是得充电;iPhone 硬件比较新,电池很牛,好像 70+% 开始用,出去开了 GPS tracking 居然最后也没用完电
  • 不喜欢 N6 的按钮位置,很容易误碰电源;iPhone 6S plus 的电源位置虽然不容易碰到,但是如果喜欢用 Volume up 拍照的话就悲剧了,因为那样也很容易碰到电源按钮
  • 不喜欢 N6 背后是个弧形,放在桌上老是晃悠
  • N6 太宽,单手操作比较困难,iPhone 窄,加上还有一定的软件帮助,略好;N6 更容易摔,也是因为尺寸吧
  • N6 充电可以用 micro USB,这个比较通用(暂时),苹果的 lightning cable 比较贵(好在有公司的)
  • N6 的前置摄像头真的很差…

软件

  • 习惯了 Android 的界面,总有后退和多任务切换按钮,iPhone 有个硬件按钮可惜没提供另外两个(多任务可以通过双击 home button)
  • Google camera 的颜色似乎讨喜一点,苹果的比较中规中矩
  • photo sphere 苹果没有,只能用一个 Street View 的程序替代?
  • iOS 没有 Cardboard Camera
  • iOS 只有 app 支持 chromecast 才能投影,Android 有系统支持
  • iOS 的 3D touch 挺有意思,不知道为啥大部分 google 的 app 不支持
  • iOS 看起来比 Android 要 responsive 一点,不知道关掉动画之后会不会非常 snappy

后话

  • 不知道为啥 google 不在 iOS 上弄一些和 Android 上功能一样的 app,camera 就是其中一个
  • google 两个平台上同一个软件居然功能不一样,比如 Android 上 Google Photo 就支持 sphere 而 iOS 就不

——————
And we dreamed a dream in one night, I and he; we dreamed each man according to the interpretation of his dream

两机比较

iPad 上的 gcc

很悲剧的没搞明白就试了下,不知道白费了多少功夫,太不爽了 -.-b

iPad 2/iOS 5 越狱后发现有两个分区,其中一个 1.1G,另一个 14G,前者用来安装一些系统文件,后者主要是用来存放下载的 app 的。一直想在 iPad 上面装个 gcc,甚至 g++。

今天总算搞定了。首先你需要 cydia 里面添加 insanelyi 的源,之后就可以选择安装 gnu c compiler,然后,很重要的一步是通过 rsync 从 iPhoneSDK 里面把头文件同步过来,否则编译通不过。有人说要把 lib、Framework 之类的搞过来,其实不需要的。

vim on iPad 2,似乎没找到 emacs 的。

另外一点是关于恢复的:安装 installous 的时候会给安装 appsync 的东西是允许 itunes 那边拖个 ipa 就能安装的工具,同时,如果你的 iPad 通过 transfer purchases 将“盗版 apps”传回后通过 itunes 的 backup 功能是可以将这些程序同时也备份的,这样,如果 iPad 没有 appsync,想把这些程序 restore 回去是不可以的;但是有了 appsync,这就 ok 了。

编译 hello world 并成功执行。

其实 gcc 太 heavy 了,有个 tcc 就行。有装 python 的,感觉就是可用的 lib 多些。只剩下 200Mb 的空间了,不知道有啥值得装的不…

——————
And Abram said, Behold, to me you have given no seed: and, see, one born in my house is my heir.

iPad 上的 gcc