最後の「もて耐」終了

先日の日曜は、茂木で、最後となる「もて耐」のマスターズクラスに出ていましたー

今年は、ForceV4オーナーズクラブからRC45で参加させてもらいました。
自分もRC45を所有していますから、とても好きなバイクですが、発売されてから既に17年、部品もほとんど無く、750ですが、最近の600スーパースポーツよりパワーも少なく、戦闘力では劣るものの、乗っていて楽しいバイクです、そして最高のV4サウンド。

RC45と言ってもピンキリですが、貴重なものなので、このレーサーを作るとなると、コスト的にはリッターマシンより高くなります、今回のマシンは、「梅」と言われる、エンジンノーマルな仕様です、それでも、ガレージウルフマンの伊藤さんが貴重な部品を合わせて作ったマシンは、バランスが良く、扱いやすくて、走っていると、気持ちよく、疲れないし、楽しくて攻めたくなりますww
そして、純粋培養のレーサーでもあります。
エンジンはノーマルでも、ラムエアー付きで、HRCのインジェクション用コンピューターとレース用点火系で14000回転まで回ります。
12000を超えてからの伸びが気持ちよく、綺麗にトルクフルに回るとこがインラインフォーと違うV4なんだと感じられます。

レース前に30分のスポーツ走行を2回乗りましたが、要所を押さえても16秒くらいしか出ないので、乗り方を根本的に変えないと駄目だなと思いました、リッターバイクだと、コーナー侵入でそれなりに入り、向きを変え、マシンを立てて、アクセルを開けると、10秒は簡単に出るのですがー、RC45のレーサーには同じやり方は通用しません・・、やはりコーナーリングスピードで稼がないと・・・
※以前に乗ったRC30レーサーでは、同じような乗り方で14秒くらいが出ていたので、絶対的なパワーではRC30の方が上な感じですが、他のライダーの印象では、「パワーがある」と言っていたので、自分の感覚が間違っていたのかもしれません・・・(歳はとりたく無いもんだな・・・)
それと高価で貴重なマシンを転倒で壊す事も出来ないと思い、かなりマージンをとったのですが、コーナーリングスピードを稼がないとタイムなんて出る訳無いので、この辺りは「ヘタレ」と言われても、転ばない方を選びましたー(この辺りは「おとな」ですww)

今年は震災の影響でコース改修など、スケジュールが大幅に変更になり、11月20日と言う、寒い時期の開催でしたー
なので、暑さ対策は必要無く、逆に寒すぎるのではと思っていましたが、雨で冷たかった以外は、そこまで寒くもなく、それなりに良いコンディションでしたー

参加台数が42台と、グリッド割れしていたので、予選は無く、スタート位置は「クジ」で決まりますー、しかし、なんと、「どんべから二番目」の最後尾スタートと言う、「美味しい」とこからのスタートですwww、耐久レースでは、スタート位置とゴールの順位にはあまり相関が無く、トラブルが無いチームが良い順位をゲット出来るし、スタート時は、何かと混乱に巻き込まれやすいので、後ろに誰もいないのはむしろありがたい事だったのかもしれません。
※後は前を抜くだけだしねーwww

そして、スタート。
第一ライダーはヒロさんですー、自分は、足が痛くて走れないのでルマン式は無理と思って、やってもらいましたー
何事も無く無事に走りぬき、多分30位くらいで自分と交代。

昨日からの雨は止んでいたものの、路面はWETで、二番目、第一スティントを乗りました、路面は半乾き状態ですがー、まだ濡れている場所が沢山あるので、そのままレインで出ました、二週目の裏ストレートから90度への侵入で、ブレーキのかけ方をミスって、止まれなくなり、グラベルに少し出てしまいましたが、何とかグラベルを転ばずに走り、コースに復帰、非常に危ない状況でした(汗)
それでビビリが入り、中々タイムを上げられずにいたら、今度は雨が降ってきましたー、さらに、メットのシールドが曇り、前が見えませんー、シールドを少し開けたり、色々しながら走っていると、当然タイムもボロボロで、空気口が閉まっている事に気がつくまで数週を無駄にしましたー、やっと曇りが取れて冷たい雨の中、タイムを削っていくと、何だか、エンジンのフケが悪くなりました(水温が低かったのかもしれません)、もしやガスが無いの?とヒヤヒヤしていたので、少し早いけど、大事をとって、次のライダーに交代する事にしました、この時多分25位くらい。

Session 4 started at 09:53:05

1 0:02:37 2:37.603
2 0:05:25 2:47.628
3 0:07:58 2:33.039
4 0:10:30 2:32.208
5 0:13:08 2:37.991
6 0:15:42 2:34.319
7 0:18:15 2:32.991
8 0:20:50 2:34.304
9 0:23:29 2:39.659
10 0:26:12 2:42.626
11 0:28:47 2:35.037
12 0:31:17 2:29.870
13 0:33:46 2:29.511 Best time
14 0:36:19 2:32.802
15 0:38:54 2:34.432
16 0:41:25 2:31.769
17 0:44:01 2:35.669

第三ライダーはマシンオーナーの fukurou さん、これもまた無事に走りきり、第四ライダーのおむすびさんにチェンジ、自分が予定より短く切り上げてしまったので、少し長く走ってもらいましたー、そして再び、ヒロさん、この時、既に雨は止み、レコードラインが乾き始めましたーが、まだドライで走るのは無理と考え、そのままレインで走ってもらいました。

二回目のスティントでは、雨も止み、レコードラインはほぼ乾いていたので、ドライタイヤに付け替えて、出ましたー、この時16位くらい、ピット作業を担当した人が非常に良い仕事をしてくれて、タイヤ交換を無事済ませ、自分はリアサスのコンプを元に戻して(レインを入れた時にコンプを抜いていた)出ていきましたー、レコードラインを外さなければ、路面はほぼドライな感じで、気持ち良くラップでき、RC45楽しい~って感じでした、ほどなくして前に「R1」がいたのですが、コーナーで近づいても、ストレートで逃げられてしまうを5周くらい繰り返していましたー、無理にインを刺す事も出来たけど、路面は全部がドライでは無かったので用心しながら、V字でインを差して抜きましたー、抜いて数周クリアラップが取れてそこそこ気持ちよく全開で走り、ベストが出ました(公式には2分14秒075)、その後バックマーカーに捕まり、少し集中が落ちて、ダラケましたが、かなり楽しく周回を重ねて、今回は50分ピッタリ走りました、この時15位くらい、リッターバイクだとヘロヘロになりますが、リッターバイクよりパワーの無い45だと、加速Gが少ないのでほとんど疲れません~ww

Session 8 started at 14:08:50

1 0:02:22 2:22.935
2 0:04:43 2:20.715
3 0:07:01 2:17.668
4 0:09:19 2:17.823
5 0:11:38 2:19.085
6 0:13:58 2:20.012
7 0:16:15 2:17.571
8 0:18:33 2:17.799
9 0:20:52 2:18.562
10 0:23:08 2:16.355
11 0:25:23 2:14.730
12 0:27:37 2:13.760 Best time
13 0:29:50 2:13.985
14 0:32:07 2:16.241
15 0:34:25 2:18.037
16 0:36:41 2:16.216
17 0:38:57 2:15.570
18 0:41:14 2:17.363
19 0:43:30 2:16.309
20 0:45:47 2:16.403
21 0:48:03 2:16.540
22 0:50:24 2:20.714

そして、最後のライダーに交代して、自分の任務は終わりです~
そして最後のライダー fukurou さんも走りぬき、チェッカー!
最終的には17位完走となりました!!

「RC45」って乗ってて楽しいバイクだなーとつくづく思いましたーやっぱV4ですねー

そして、今回、ピット作業や、監督、サインボード、食事、その他もろもろ、雨の中、最善を尽くしてくれたクラブメンバーや、色々雑用などをやってくれたヘルパーさんたちに感謝を捧げたいと思います。
「本当にありがとうございました~」

2011 もてぎマスターズ 7時間耐久ロードレース (リザルト)

-----
チーム名 :FORCEV4オーナーズクラブ
参戦マシン:'94年 HONDA RVF/RC45
ゼッケン:11番32番ピット

()内は所有V4マシン
チーム監督     PRYCE16(NC30)

第1ライダー    fukurou (RC30・RC45)
第2ライダー    hira (RC45)
第3ライダー    お下劣ヒロ (NC35)
第4ライダー    おむすび (NC30・RC30)

メカニック
しりうす(NC30)
bootang(RC30)
やま(RC46)
FIRE(NC30)
TOSHI(NC30)

ヘルパー
ATUSHI(NC30)
他クラブ内外から数名

Cygwin の OpenGL 開発環境構築

Cygwin で OpenGL の開発環境を構築する場合、unix 系と Windows 系、複数のやり方があるようなのだけど、情報が少ないように感じた、それで、自分で判った事をここにメモ程度に書いておこうと思う。

まず、Cygwin では、コンパイラが複数ある、通常のソースコードと、Windows の API(WIN32-API) をコンパイルできるもの(Mingwin 系)
そして、gcc3 系と、現在最新の gcc4 系

gcc3 系では、「-m」のオプションスイッチで、Windows 環境をコンパイルする事ができるが、gcc4 系では、この機能は無くなり、クロスコンパイラで、対応をするようになった。

基本的な事だが、windows 系の開発では、unix 系で普通に使えるライブラリーの多くは利用できない、windows で利用可能なようにポートされたライブラリーを別途入れる必要があり、ヘッダーのインクルードなども適切に記述する必要がある。
※たとえば、Windows で POSIX のスレッド(pthread)を使いたいなら、POSIX Threads for Win32 をインストールする必要がある。(cygwin では、gcc の windows 系クロスコンパイラに含まれている)

OpenGL のプログラム開発では、unix 系、Windows 系、どちらでも、開発を行う事が出来るけど、unix 系では、コンソールアプリケーション以外では、X-Window のアプリとして動作させなければならず、X サーバーを通して動作させる事になる。
Windows 系では、ネイティブなバイナリーを作成でき、実行コードを配布する場合も便利なので、自分は、Windows 系の開発環境でおこなっている。
※Linux や OS-X などでも少しの改修でリコンパイルでき、動作するように、している。
基本的には glut を使うので、動かすだけなら簡単と思う。

cygwin で利用できるコンパイラ
・gcc3 gcc version 3.xx コンパイラ、これだけインストールすると、単に gcc
・gcc4 gcc version 4.xx コンパイラ、gcc version 3.xx と両方インストールすると、gcc3 と gcc4
・i686-w64-mingw32 windows のソースコードをコンパイルできるクロスコンパイラ32/64 ビット
※32ビット、64ビットのバイナリー作成では、関連ライブラリーをスイッチするようだ。

メディアプレイヤーをコンパイルする場合に必要なライブラリー郡
(1)cygwin のインストーラーでインストール出来るもの
libz 圧縮、解凍ライブラリー(自分でソースコードをコンパイルして組み込む場合は不要)
pthread-win32 POSIX のスレッドライブラリー(PTHREAD-WIN32)
glut OpenGL glut ライブラリー

(2)自分でライブラリーの構築などを行うもの(基本的に全て、オープンソース)
boost         boost ライブラリー(最新のバージョンを利用したい為、別途アーカイブを展開している。)
AL OpenAL ライブラリー
DX DirectX を gcc で使う為のヘッダー、ライブラリー(DirectSound、DirectInput を利用)
freetype2 TrueType を描画(レンダリング)する為のライブラリー
libjpeg_x86 JPEG をデコード・エンコードする為のライブラリー(x86バイナリー専用の高速版)
libpng PNG をデコード・円コードする為のライブラリー
mupdf PDF をレンダリングする為のライブラリー
openjpeg JPEG2000 ライブラリー
jbig2         JBIG2 ライブラリー
id3tag        MP3-TAG ライブラリー
↑これらは、cygwin gcc でコンパイルして、ライブラリーを構築したので、別途アーカイブしてある。

今回は、OpenGL プログラムを走らせるだけなので、↑のライブラリー構築などは割愛する。

(1) 基本的なインストール
・まず、cygwin をインストールしなければならない、インストール方法は、非常に沢山他のサイトなどで詳しく説明されているので割愛する。
・重要なのは「必要なコンポーネント」と思う。(下のリストは、足りない物があったり、余分な物があるかもしれない)
・「Devel-gcc-mingw」関係を全部インストール
・「Devel-gcc4」関係をとりあえず全部インストール(※gcc4-core と gcc4-g++ があればOK)
・「Devel-gccmakedep」をインストール(Makefile で従属規則を自動生成するのに使う)
・「Devel-mingw64-i686」関係を全てインストール
・「Devel-make」(GNU Version)をインストール

(2)インストールを確認
・今回は、コンパイラとして「i686-w64-mingw32-gcc」を使うので、コンソールから、

i686-w64-mingw32-gcc --version

以下のようなメッセージが出れば、とりあえずコンパイラのインストールは成功。

i686-w64-mingw32-gcc (GCC) 4.5.3
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

(3)gcc3 系 mingw の OpenGL 関係をコピー(この手順が適正か判らないが・・・)
・i686-w64-mingw32 環境にも OpenGL 関係のヘッダーやライブラリーはあるのだが、イマイチ使いにくいので、gcc3 系の OpenGL ライブラリーを手動でコピーして使う、ライブラリーは互換性があるようなので、4系でも使えるようだが、gdb などでデバッグするような場合は問題が起こるかもしれない。
・元のファイルをリネームして一応保存しておき、mingw 関係のヘッダーなどをコピー
cd /usr/i686-w64-mingw32/sys-root/mingw/include/GL
mv gl.h gl_h
mv glu.h glu_h
cp /usr/include/w32api/GL/*.h .
cd /usr/i686-w64-mingw32/sys-root/mingw/lib
mv libopengl32.a libopengl32_a
mv libglu32.a libglu32_a
cp /usr/lib/w32api/libopengl32.a .
cp /usr/lib/w32api/libglu32.a .
cp /usr/lib/w32api/libglut32.a .

(4)OpenGL が動作するか確認
・まず、ソースコード「main.cpp」を入力

#include <cstdio>
#include <GL/glut.h>

static GLint faces[6][4] = {  /* Vertex indices for the 6 faces of a cube. */
{0, 1, 2, 3}, {3, 2, 6, 7}, {7, 6, 5, 4},
{4, 5, 1, 0}, {5, 6, 2, 1}, {7, 4, 0, 3} };
static GLfloat v[8][3];  /* Will be filled in with X,Y,Z vertexes. */

static GLfloat g_angleX =  60.0f;
static GLfloat g_angleZ = -20.0f;

static void reshape_task(int width, int height)
{
}

static void idle_task()
{
glutPostRedisplay();
}

static void display_task()
{
int w = ::glutGet(GLUT_WINDOW_WIDTH);
int h = ::glutGet(GLUT_WINDOW_HEIGHT);
glViewport(0, 0, w, h);

glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

// Setup the view of the cube.
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluPerspective(40.0,    // field of view in degree
1.0,        // aspect ratio
1.0,        // Z near
10.0);    // Z far
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
gluLookAt(0.0, 0.0, 5.0,    // eye is at (0,0,5)
0.0, 0.0, 0.0,    // center is at (0,0,0)
0.0, 1.0, 0.);    // up is in positive Y direction

// Adjust cube position to be asthetic angle.
glTranslatef(0.0, 0.0, -1.0);
glRotatef(g_angleX, 1.0, 0.0, 0.0);
glRotatef(g_angleZ, 0.0, 0.0, 1.0);

g_angleX += 1.0f;
g_angleZ += 0.5f;

for(int i = 0; i < 6; ++i) {
struct rgb {
GLfloat r, g, b;
};
static const rgb col[6] = {
{ 1.0f, 1.0f, 1.0f },
{ 0.2f, 1.0f, 1.0f },
{ 1.0f, 0.2f, 1.0f },
{ 1.0f, 1.0f, 0.2f },
{ 0.2f, 0.2f, 1.0f },
{ 1.0f, 0.2f, 0.2f }
};
glColor3f(col[i].r, col[i].g, col[i].b);
glBegin(GL_QUADS);
glVertex3fv(&v[faces[i][0]][0]);
glVertex3fv(&v[faces[i][1]][0]);
glVertex3fv(&v[faces[i][2]][0]);
glVertex3fv(&v[faces[i][3]][0]);
glEnd();
}

glutSwapBuffers();
}

void init()
{
// Setup cube vertex data.
v[0][0] = v[1][0] = v[2][0] = v[3][0] = -1;
v[4][0] = v[5][0] = v[6][0] = v[7][0] =  1;
v[0][1] = v[1][1] = v[4][1] = v[5][1] = -1;
v[2][1] = v[3][1] = v[6][1] = v[7][1] =  1;
v[0][2] = v[3][2] = v[4][2] = v[7][2] =  1;
v[1][2] = v[2][2] = v[5][2] = v[6][2] = -1;

// Use depth buffering for hidden surface elimination.
glEnable(GL_DEPTH_TEST);
}

int main(int argc, char** argv);

int main(int argc, char** argv)
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DOUBLE | GLUT_RGBA | GLUT_DEPTH);
glutInitWindowSize(512, 512);
glutCreateWindow("test cube");
glutDisplayFunc(display_task);
glutReshapeFunc(reshape_task);
glutIdleFunc(idle_task);

init();

glutMainLoop();
return 0;
}

・続いて「Makefile」を入力
#-----------------------------------------------#
# GNU-Makefile for "gcc" #
#-----------------------------------------------#
TARGET = OpenGL_Test
PSOURCES = main.cpp
CSOURCES =

OPTLIBS = opengl32 glu32 glut32

INC_SYS =
# /usr/i686-w64-mingw32/sys-root/mingw/include
# /usr/boost_1_43_0
INC_LIB =

PINC_APP =
CINC_APP =
LIBDIR =

INC_S = $(addprefix -I, $(INC_SYS))
INC_L = $(addprefix -I, $(INC_LIB))
INC_P = $(addprefix -I, $(CINC_APP))
INC_C = $(addprefix -I, $(PINC_APP))
CINCS = $(INC_S) $(INC_L) $(INC_C)
PINCS = $(INC_S) $(INC_L) $(INC_P)
LIBS = $(addprefix -L, $(LIBDIR))
LIBN = $(addprefix -l, $(STDLIBS))
LIBN += $(addprefix -l, $(OPTLIBS))

#
# Compiler, Linker Options, Resource_compiler
#
CP = i686-w64-mingw32-g++
CC = i686-w64-mingw32-gcc
LK = i686-w64-mingw32-g++
RC =

POPT = -O3
COPT = -O3
LOPT =

COF = -o
LOF = -o

PFLAGS = -DWIN32
CFLAGS = -DWIN32
LFLAGS =

# -Wuninitialized -Wunused -Werror -Wshadow
CWARN = -Wimplicit -Wreturn-type -Wswitch -Wformat

OBJECTS = $(PSOURCES:.cpp=.o) $(CSOURCES:.c=.o)

.SUFFIXES :
.SUFFIXES : .res .hpp .h .c .cpp .o

$(TARGET).exe: $(OBJECTS) Makefile
$(LK) $(LOF)$(TARGET).exe $(LFLAGS) $(LIBS) $(OBJECTS) $(LIBN)

.c.o:
$(CC) $(COPT) $(CFLAGS) $(CINCS) $(CWARN) -c $< $(COF)$@

.cpp.o:
$(CP) $(POPT) $(PFLAGS) $(PINCS) $(CWARN) -c $< $(COF)$@

.rc.c:
$(RC) $< $@

all:
make clean
make depend
make $(TARGET)

install:
cp ./$(TARGET).exe /usr/local/bin/.

run:
./$(TARGET).exe

clean:
rm -f $(OBJECTS)
rm -f $(TARGET)

dllname:
objdump -p $(TARGET).exe | grep "DLL Name"

tarball:
chmod -x *.[hc]pp Makefile
rm -f $(TARGET)_$(shell date +%Y%m%d%H)_src.tgz
tar cfvz $(TARGET)_$(shell date +%Y%m%d%H)_src.tgz \
*.[hc]pp Makefile
chmod 444 $(TARGET)_$(shell date +%Y%m%d%H)_src.tgz

zip:
$(LK) $(LOF)$(TARGET).exe $(LFLAGS) $(LIBS) -mwindows $(OBJECTS) $(LIBN)
rm -f $(TARGET)_$(shell date +%Y%m%d%H).zip
zip $(TARGET)_$(shell date +%Y%m%d%H).zip *.exe *.dll

depend:
makedepend -Y -- $(CFLAGS) $(INC_P) -- $(CSOURCES) $(PSOURCES)
# DO NOT DELETE

(5) コンパイルと実行
・まずコンパイル
make
・実行
make run
・画面に、512×512のWindowが作られ、四角い箱が回転すれば成功!

PCオーディオ(その2)

さて、部品が揃ったので早速組み立てです。

今度は、以前の失敗で懲りて、全部ソケットを使います、「直」に載せると、余分な工程が無くて、作業が速いのですが、前回のように壊すと、どうする事もできずに、作り直しですww
ソケットを使った事で、ソケットと変換基板下のスペースを有効活用できます。

とりあえず、丁度良い大きさのユニバーサル基板があったので、それにPCM2704を標準的な回路で組んで、PCに接続して、認識する事を確認しました。
※オーディオを再生させて、信号が正常な事をオシロスコープで確認しました。

次に、CS8416関係ですが、SSOPでも幅が狭くて、秋月の変換基板ではパッドの部分が不足していたのでダイセン電子の変換基板を使います、ただ、この基板の横幅は、600ミルでは無く、通常の28PINソケットが使えません。
一般的なソケットでは無く、ヘッダーピンにしたので、基板下のスペースをさらに有効に使えます、PLLのフィルターは、このスペースに配置しました。

・オーディオマニアが陥る霊感商法
USB に繋いだオーディオ機器は音が悪いとされます、それを改善する為、1本数万円の高価なケーブル(霊感商法と何ら変わらないと思います)まで売っています、確かに、電源ラインには、PCで発生したスイッチングノイズが乗っており、これらが音質に与える影響はあるかと思いますし、USB一口では、500mAの電流しか取れませんから、別に電源を取りたいと考えるのでしょうが、設計してみると、ヘッドホンアンプと、USBデバイス、D/Aなど諸々で、500mAあれば十分ですし、可聴範囲のノイズは聞こえない程度に取り除けば良い事です。
USB の信号は差動のデジタル信号で通信を行なっており、ケーブルの品質がある程度あれば、値段の差による音の違いは無いと思われます、ブラインドテストをすれば、ハッキリすると思いますが、数万円のケーブルと、ダイソーで買える100円のケーブルに何の違いもありません、デジタルデータは、価格の大小に関係無く、完璧に転送できますし、USBオーディオの仕様や仕組み、その他必要な知識も無い人が、ジッタの影響とか、欠損するデジタルデータとか、論理的裏付けの無い技術論は滑稽で仕方ありませんww
数万円のケーブルは抵抗が低くて、100円で売っているケーブルより優れていますが、何十メートルも伸ばす訳ではありませんし、デジタルデータは差動信号による半二重のパケット通信です、デジタルデータは欠損無く通信できますし、エラーコレクションもありますからデジタルデータの欠損は通常ありません、もしあるようなら、USBのクライアントとして認識できなくなります。
影響を与えるのは電源ラインだけですが、それも、500mA程度ですから、ある程度のゲージを使った銅線であれば問題無いレベルです。

しかしながら、それでも、人知の及ばない何かが作用して、月の満ち欠けだとか、微弱な電磁波とか、何か影響’を与えるかもしれませんが、「ダブルブラインドテスト」でもやって、それで80%以上の確からしさでも常にマークしない限り、そんな戯言を信用する訳にはいきません。

USB_AUDIO

・OP-AMPの電源は、+-12VのDC/DCを使っています。
・ヘッドホンアンプには、+-5VのDC/DCを使っています。
・DACには、低損失の5Vレギュレーター
※USBの電源は、通常5.2V程度ありますので、三端子レギュレーターで5V、及びロジック用などに3.3Vを生成しています、高周波のノイズを落とす為にフェライトビーズを入れています。
・とりあえずの実験用なので、とりあえず、ボリューム用二連の10Kを使っていますが、最終的にはデジタルボリュームに変えたいと思います。

さて、ネットにある色々な回路を観ると、多くの方が、非常に大きなコンデンサー(オーディオ用)を電源に入れていますが、果たしてそんな大きな容量が必要でしょうか?
※低ESRのコンデンサーは効果があると思います。

例えば、よく使う三端子レギュレーターは、入力側に0.1uF、出力側に10uF程度入れれば、十分なレギュレーションが得られるように設計されています、もちろん流れる電流のダイナミックレンジにより発生するリップルは変化しますが・・・
また、OP-AMPは電源の変動を出力に出さない為の工夫が色々施されていますから、多少のリップルが乗った場合でも、それが出力に現れる事は少ないのですから、大きなコンデンサを入れる意味はあまり無いと思います。

視聴しながら、テストする場合でも、大きな容量を入れた場合と、標準的な容量(データシート推奨の容量)を入れた場合で、ブラインドテストを行い、85%位以上の人が検知出来ないのなら、標準の容量で十分なハズです。
自分でテストするのでは、客観性に欠けますし、精神状態が変われば、結果も変わりかねません。
明らかに違う場合は別ですが、それは、何か根本的に間違っているとしか思えません。

測定器を使って、「大きな容量のコンデンサを入れるとリップルが少なくなる」と言う人もいますが、多分検知できる程のレベルでは無いと思います。

よって、コンデンサーの容量は、適切な値にする事が最も適切で、最大の効果を得る早道だと考えます。

今回の試作では、電解コンデンサーは低ESR品の100uFが二個で、残りは0.1uF~47uFの積層セラミックコンデンサーです。
ボーカロイドからクラシック、ロック、J-POPなど色々なジャンルの音を出してみましたが、現状でも十分な感じがしますが、これから、一応、測定を行い、それにより改修を行う必要はあります。
まぁ、測定を始める以前に音がまともでなかったら無駄ですからー

回路図に起こすのはこれからですーー

PCオーディオ(その1)

最近、自宅を離れ、渋谷に通って仕事をしていますがー、そこで支給されているPC、DELL製のそこそこ高速なヤツです。
※Corei7の2.8GHzとか

作業は共同作業なのですが、周りの雑音を聞きたく無い時は、イヤホンで音楽を聞きます、iPhoneから聞いても良いのですがー、気晴らしに観るYouTubeとかニコニコの動画はPCで観るので、差し直すのはメンドイしでPCで音楽も聞きたいのですがー、「音」が最悪ですー、DELLに限らず、メーカー製のPCでも、フロントパネルに出ているイヤホンジャック、かなり劣悪の品質と言わざるをえません、PCの電源ノイズがモロに乗っているし、長時間の視聴には耐え難いものがあります。

ならば、USBのオーディオインターフェースでヘッドホンアンプ付属の適当なやつをと思ったのですがー、安いやつは、チープな音しか出ないし、コンパクトで、高音質なやつは値段も高いと言う事で、色々考えているうちに、「自分で作ればいいんじゃね?」
と言う、いつものパターンに突入しましたww

丁度、秋月で、TI製のUSBオーディオインターフェース(PCM2704)を売りだしたので、1個買っていそいそと試作してみましたー

PCM2704は、ヘッドホンを鳴らす為のアンプも内蔵しており、このチップだけで、ヘッドホン出力が提供出来るものです、しかし、内蔵アンプは単一電源で動作する、簡易的な物で、音も期待するまでもなく、それなりの音しか出ませんし、出力も小さく、とても、自分が要求するようなレベルの物では無い事が直ぐに判りましたー
色々回路をいじっているうちに、誤配線をしてしまい、あっとゆーまに燃やして、お亡くなりになりましたー、半導体独特の燃えた匂いを嗅いだ時は、何ともいえない、気分です・・・・・・
※虚しいやら、ムカツクやら

PCM2704 試作
PCM2704 試作

※使える部品は再利用の為取り外している

最初は、1000円くらいで、そこそこ納得のいく音が出ればイイくらいに思ってましたがー、「自分のミスによる大きな損失」が次のやつを「ちゃんと」作るモチベーションに変わりましたー

そこで、ネットを探してみると、DAI(デジタルオーディオインターフェース)、D/Aコンバーターの製作例は多くて、みなさんハンパ無い投資をしている人もいますww
自分は、「まともな音」が聞ければ良いので、自分の考える範囲で、部品をセレクトして、発注してしまいました。

PCM2704(TEXAS INSTRUMENTS)
※USBからオーディオデータを取り出すのは、とりあえず、この石です、最大48KHz16ビットと最低限のものですがー、探しても、市販されているデバイスで、入手可能な物は、ほとんど無く、とりあえず、このデバイスで「良し」としました。
TENOR社にTE7022Lと言うデバイスがあり、96KHz/24Bits が可能なようですが、入手先を見つけられませんでした。
USBオーディオの標準デバイスとして、192KHz/24Bitsをサポートするのは、自分で組むしかなさそうです。(USB2.0をサポートした、デバイス
を備えた、マイクロプロセッサとFPGAが必要な感じです)

CS8416(CIRRUS LOGIC)
※PCM2704はアナログ出力の他に、S/PDIF信号も出力します、CS8416は、その信号をデコードして、D/Aコンバーターに必要なクロックと、データ信号を出力します、PLL回路や、オーバーサンプリングに必要なロジックも内蔵していて、最大192KHz、24ビットを扱え、外付け部品も少ない優れものです。
S/PDIF入力は、何系統かありますから、USB、光、COXIALなどを備えて切り替えが出来れば、D/Aコンバーター付きヘッドホンアンプとして使えます。

PCM1798(BURR-BROWN/TEXAS INSTRUMENTS)
※バーブラウン社は、デジタルオーディオ関係のデバイスの製造で有名な会社ですが、今はTIの傘下となっています。
このD/Aコンバーターは、192KHzのサンプリングで24ビット出力が可能な物です、ファミリーとして、さらに高性能なPCM1794と言う、最高ランクのD/Aがあり、マニアの間では、それを使うのが一般的のようですが、コストが倍以上しますし、PCM1794の性能を引き出すには、周辺回路にもかなりコストをかけないと、意味が無いので、今回は見送る事としました、データシートを読む限り、このデバイスでも、相当優れた性能を出せる事がわかります。

OPA2604(BURR-BROWN/TEXAS INSTRUMENTS)
このOP-AMPも、バーブラウン製です、高速、ローノイズ、低歪の高性能アンプです、スルーレートがなんと25V/usもあります。
秋月で300円ですが、それを調べる前にDigiKeyで370円で沢山買ってしまいました・・・(かなり痛いです・・)

TPA6120(TEXAS INSTRUMENTS)
ヘッドホンアンプは、まともな物を作ろうと思うと、意外と難しいです、色々と各社からICは出ていますが、どれもこれも、チープな物ばかりで、「本物」がありません、「ベスト」は、ディスクリートで組むべきでしょうが、スペースとコストを考えると、それも無理です、そんな時、見つけました、良さそうなのが・・
電流帰還型で超高速(1600V/us)、非常に大きなドライブ能力(低インピーダンス)、低ノイズ、オフセット電圧も小さく、+-両電源なので、カップリングコンデンサも必要ありません。
値段も600円程度と、まさに理想的。

これら部品と諸々で合計で5000円程度。

続く~