- キット各種完売。
- msBerryDAC改造情報
2007/07/08(日)ヘッドホンアンプ試聴中
つい先日ヘッドホンアンプを製作しまして、ずっと試聴しています。なかなかというか、無茶苦茶良いです。家にある改造済アンプ(Sansui D907Limited)のヘッドホン端子よりもいい音がします。*1
ATH-A500 というオーディオテクニカの実売8000円ぐらいのヘッドホンが家に前からありまして、どうも ATH-A900 とか ATH-AD1000 などの上位機種(他人所有)と比べてしょぼく部屋の片隅で眠ってたのですが、なんのなんのこのヘッドホンアンプで駆動すると十分魅力的な音がします。
再生はパソコンを使って、サウンドカードは Prodigy の 192VE を使ってます。今までは若干中域の厚みがないことを除いて満足してたんですが、このヘッドホンアンプを常用するようになってから、どうも音の分離が悪いなと感じ始めてます。ノイズは皆無なんですが、1つ1つの楽器の音が混ざり合ってるような気がして、家に転がっている業務向けな(でも低価格な方の)オーディオカードと比べたらやっぱり音の分離が悪い。
カードを外してみると、オペアンプとしてNJM4580が乗ってます。これを OPA2134 や OPA2604、または AD8066 に変えてみたい衝動に駆られています(汗)。しかしまぁほんと、ソースと再生装置の音を忠実に表現するアンプです。
回路図はそのうち公開します。
早速
AD8066 を発注してしまったり。
2007/07/07(土)プラットホーム汎用で、固定長の整数型を使う
int型は整数型ですが、int や long や long long などは環境によってサイズが違ったりします。これらの型は、元もとサイズ(バイト長)を固定する目的で作られたものではないからです。
プラットホーム汎用でプログラムを書く際、固定長のデータを扱う時(バイナリデータ列など)は特に注意する必要があります。C99という規格で固定長整数型として int32t などが規定されましたが、すべての環境で使えるわけではありません。また Windows プラットホームならば、__int32 などが利用出来ますが、Windows以外では利用出来ません。
自分は、だいたいの環境でうまく動くマクロを作って、これを使っています。
#if defined(__C99__) || (defined(__GNUC__) && __GNUC__ >= 3) # include <inttypes.h> # include <stdint.h> #else # if defined(__GNUC__) typedef short int16_t; typedef unsigned short uint16_t; typedef int int32_t; typedef unsigned int uint32_t; typedef long long int64_t; typedef unsigned long long uint64_t; # elif (_MSC_VER || __BORLANDC__) typedef __int16 int16_t; typedef unsigned __int16 uint16_t; typedef __int32 int32_t; typedef unsigned __int32 uint32_t; typedef __int64 int64_t; typedef unsigned __int64 uint64_t; # endif #endif