Florian’s NewestDiary このページをアンテナに追加 RSSフィード

ふろりあんのさらに新しい日記

2004 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2005 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2011 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2012 | 01 |
プロフィール

Florian

Florian

伝説(だった)の大魔導師。割と過去形。



 | 

2004-04-30 オーディオ話の日

[]昨日の反省

さすが昨日の文章は書きなぐったもののライブ公開だけあっていろいろと不備が。

  • 構成がなってない

基本スタンスとして「こんな単純なことをやりたいんだけどうまく行かない」「現在のスピーカーは妥協の産物」という事を言いたかったので、持ち上げては落とすというリズムを作ろうとしていたのですが、だいぶ散文的になっちゃってます。

小見出しブロック内での落ちとしないとだめでしたね。

  • 落ちが弱い

一番初めに提示したビジョンと、結果として落ちとして持っていったビジョンが微妙に呼応していないため、落ちが弱いです。

これは、始めは「オーディオ全般」について書いていたのがどんどん膨れ上がってしまい、「スピーカーの話」間でしかできなかったためですね。かといって、スピーカーの話だけで最初のビジョンが成り立つかというと、結構微妙です。

なるべく科学用語は直接使わず、どうしても必要な時にはあらかじめ説明するという方法を取ったつもりだったのですが、まだまだ足りませんね。

足りないにもかかわらず、すごくくどく見えるのも問題。うーむ。

  • 「バスレフ」の説明がなんか不足

スピーカーの穴を「気圧による反発を防ぐため」とだけしか説明していないので、語源となった「Bass Relexer」の役目を書いていません。今度はこれを書こうとすると、共鳴によって特定周波数をブーストすることを肯定した書き方をしなくちゃならなくなるので、直前で共鳴を否定した立場からは混乱しますし。

  • 音速と、マルチウェイスピーカーによる位相のずれを書いてない

音速をそもそも定義していないので、位相について話せません。このため、耳とそれぞれのスピーカーユニットの距離がぴったり等しくないことによる位相のずれについても話せません。

それ以前に「fドメインで近似する」と言っている以上、各周波数の位相のずれを気にしても仕方ないのですが・・。

  • ステレオ効果(バイノーラル)について書いてない

これは、はっきり意図して省きました。最初に掲げた大命題からずれるので。

でも、書くべきだよね、本当なら。

  • 音の指向性について書いてない

スピーカーユニットが前後運動であっても、周波数によって指向性が出たり出なかったりという事が書いていません。

まぁ、しょっぱなでスピーカーを正面に置くと決めちゃってる時点であまり問題はないんですけど。


反省することしきり。

でも、書き直すのは手間なんだよなぁ。

ま、時間を見てゆっくり書き直しましょう。

2004-04-29 馬鹿話

海洋冒険ロマン

こんな話を思いついてみたり。

無敵の水兵(セイラー)クラーク閣下は自らの船を愛している。クラークは七つの海を紆余曲折しながら一人の女性の出会う。彼女名前は徹子。しかし、徹子は謎の組織にさらわれてしまう。謎を追い求めるクラーク。その途中には協力者のイギリス人(スコッチ)の暴露によってゲルマン斡旋ブローカー一味だと分かる。果たしてクラークは徹子に再び会うことができるのだろうか?*1

という海洋冒険ロマン活劇「曲折戦艦メンデレーエフ」ってのはどうだろう?

理系の人間じゃないと何がおもしろいのか分からないのが難点ですが・・。

[]高周波をフィルタリングしないDAC

suikanさんの日記(id:suikan:20040428#p4)を読んで、「レコーディング技術が進んだので、DACの出力で高周波をフィルタリングしなくてもOK」(意訳)というすてき記事にちょい受けしてみたり。

うーん、これが高再現性である状況というと、もうこれはゲームミュージックしかないですね。22KHz,8bitのPCMやら、DAC内蔵のFM音源やら、4bitDACのSSGやら。

どうせ(^^;)この辺の音源は最低分周比で出力しても44.1kHzよりも低いはずだし、そもそもレベル方向だって量子化されてて、量子化解像度も16bit以下でしょう。ならば、元からジャギーがかった音源ですので、DACの量子化ノイズは「そもそもの音に入っていたもの」と見なすことができます。

つまり、くだんの記事はこう読むことができる訳ですな。

かつて(90年代以前のゲームミュージックの)CDの録音技術が未熟だったころ、ディジタル録音時に44.1Khzを超える成分を完全に取り除くことはできなかった。(中略)しかし、優秀なレコーディング技術によって高周波成分を完全に取り除ける今、オーバーサンプルなしでもDACに出力フィルタは(90年代以前のゲームミュージックを再現するのに)不要だ。

やっぱり、基盤直接続の原音だよね。PCM,FM音源の再ミキシングやコーラス、リバーブ、イコライズ等のアナログフィルタはかましちゃだめだよね、と。

やー、気が合うなぁ(笑)。

ゲームミュージックは原音ですよ、原音。


・・なんてなことは、その人は思ってなかったんでしょうけど(^^;)。

[]オーディオの基礎:スピーカーの話

(今日もライブ公開。そもそもなんでこんなこと書いてるのやら)

オーディオの話をし始めると、とんでもないマニアックな内容や、なぞの主観評価とかがいろいろ出てくるので、不思議な世界に突入するのですが、まぁ、自分の知識(間違ってるかもだけど)、をまとめておくためにもちょっと。

オーディオは突き詰めると信号処理工学の世界に突入します。人というデバイスにどうやって音が伝わるのかというただ一点をクリアにするための考え方。これが、「オーディオ」という評論の正体です。

そもそも、オーディオの世界では、目の前で鳴っている音が最上とされます。

でも、CDレコードに落とした時点でなんらかの物が抜け落ち、それを別のデバイスで鳴らした時点でまたなんらかの物が抜け落ち、それを人が聞く時にまたなんらかの物が抜け落ちと、いろいろと途中で落ちて行く物が出て来ます。

これを、なんとかして「最上」の状態に持っていこうといろいろ細工をする。これが、オーディオマニアがたくさんのお金と時間を掛けて追い求めているものになります。

まず、始めに疑うべきは、目の前で鳴っている音をどうやって人は感じているかというところです。音の中身はなんでもかまいません。音楽でもいいし、何かの立てる自然音でも、人の声でもかまいません。とりあえず、お話を簡単にするためにこれらの物を引っくるめて「音源」と呼びましょう。

音という物の正体は小学校でも習うように「空気の振動」です。もう少し正確に言うと、空気の圧力(気圧)が変化したことをその回りの空気が何とか元に戻そうとして、その分を補い、補ったことによって今度は別のところが補い・・と、気圧の変化が伝わって行くことが「音」です。

「音」はそれ単体では存在せず、必ず聞く人が必要です。人じゃなくて物であってもかまいません。とにかく、空気が動いているだけではそれは「音」ではなく、空気以外の何かを動かして初めて「音」になります。

人の場合、音の多くは耳というデバイスが聞きます。耳は小さい板(鼓膜)によって空気の振動を「音」として捕らえるのです。

これから分かることは、鼓膜を元の音と同じ形で振動させてやれば、最上のオーディオとして機能するに違いない、ということです。

ところが、そこまで世界は簡単ではありません。

人の「耳」というデバイスの音を感じている部分は確かに鼓膜かもしれませんが、鼓膜に音が届く前に、耳たぶで微妙に反射し、耳の穴を通ってきます。耳たぶで反射する時には音の鳴っている位置によって微妙に音が変わりますし、細い管を通るとまた微妙に音が変わります。

結果として、実際には音源がない状態で、「鳴っている音で直接鼓膜を振動」させても、それは、「目の前で鳴っている最上の音」とイコールにはならないのです。

そこで、次善の策を取ります。

人の耳の形は個人差がありますし、あんまりそこにこだわっても仕方ない。耳に入る直前の状態を再現しよう、と。

一応、気圧の変化の伝わり方には方向があります。耳たぶの形は結構複雑で、方向によって微妙に反射が異なるのですが、この際、どうせ音が鳴っているのは正面がほとんどだと仮定して、顔の正面から音を鳴らします。

音を鳴らすためには、もともとの音源の出している空気の振動と全く同じ形の振動をつくってやる必要があります。

ところが、「全く同じ」というのは、予想外に難しいのです。

音を鳴らすためには、空気を振動させる装置が必要になります。

この装置のことを「スピーカー」と呼びます。スピーカーにはいろんな種類があるのですが、多くは板を前後に動かすことによって、板の近くの体積を変化させ、気圧の変化を作ります。板を押し出すことによって空気を圧縮し、板を引くことによって空気を薄めるという感じで。同じ気圧にずっと保持することはできませんが、瞬間的な気圧の変化だけでしたら、板の動きだけで十分近似できます。

ところが、板を動かすって事は、質量(重さ)のある物体を動かすということです。質量のある物体は、なるべくそこに止まろうとする力「慣性」が働きます。慣性の力は、質量が大きければ大きいほど、つまり、重ければ重いほど強くなります。

そのうえ、速く動かそうとすればするほど動かすための力、つまり「慣性」をねじ伏せるための力も大きく必要になります。

結果として、速く動かす(高い音を出す)ためにはそれなりに板が軽くなければなりません。

ところが、音のエネルギーというのは、高い音であればあんまり気圧を変化させなくても割合大きく取れるのですが、低い音で、なおかつ大きなエネルギーを持たせようとすると、今度は気圧の差をすごく大きく取らなくてはなりません。気圧の差を作るためには、体積の変化が必要ですので、板の面積を広くするか、板の動く距離を長くする必要があります。

じゃあ、板を大きくしようとすると、今度はそれに合わせて重くなり、慣性が強く働くため、更に更に強い力が必要になります。

じゃあ、目一杯力を強くしてやればそれでいいかというと、今度はまた別の問題が出て来ます。大きい物体は、その自重によって「たわむ」のです。「たわむ」と、板が動かしたい本来の動きより一瞬遅れてついてくる形になります。遅れてくるって事は、正しい気圧の差にならないということです。

ホントのホントに堅い物体であればたわみが起こりづらいのかもしれませんが、今度はたわまないと「折れる」事になります。

軽くしないとうまく動かない。堅くすると重くなるか、動きによって折れちゃう。大きい、低い音も出そうとすると八方塞がりです。

ここで、発想の転換をします。

人間の耳の奥には「蝸牛器官」という物が入っています。これは、名の通りカタツムリのような形の器官で、鼓膜を震わせた空気の振動を解釈するための物です。解釈は「どのくらいの高さの音が」「どれくらいの音量で」鳴っているかという方法で行います。

つまり、人間の耳は、どうやら「振動」をそのまま感じているのではなく、いったん音の高さ(周波数)に変換してから解釈してるっぽいのです。

と、なれば。

高い音と低い音が一緒に鳴っている(ように聞こえる)音は、高い音だけと、低い音だけを別々に鳴らしても、人の耳には区別がつかない(はず)なのです。

これをうまく応用します。

まず、高い音は、高い音専用のスピーカーで鳴らします。このスピーカーは、そもそも低い音は小さい音でしか鳴りません。そして、低い音は低い音専用のスピーカーで鳴らします。こっちも、高い音(速い動き)はそもそもできません。

すると、お互いが得意とするところはきっちり聞こえて、聞こえないはずの音は、もう片方のスピーカーが覆い隠してくれるからさほど問題なかろう、と。

でも。

お互いの得意不得意の部分をぴったり重ねるのは結構大変です。得意っぽい音の高さはそれぞれ違いますし、不得意っぽい音の高さが、うまい具合にほかのスピーカーの得意なところにはまるとは限りません。すると、お互いの得意と得意のちょうど境目に不得意な音の高さが出てしまいますし。場合によっては特定の音の高さだけ

高さだけが元よりも大きくなってしまうかも知れません。

そこで、スピーカーに行く前に得意不得意がうまく均されるように、音の高さによって大きさを変えるという作業を行います。

スピーカーはそもそも電気で動きますので、電気信号をいじってやれば、特定の音の高さだけを大きくしたり、小さくしたりすることができます。このための電気的な機械を「バンドパスフィルタ」と言います。そして、「フィルタ」をいくつか束ねて目指している音の大きさにする機械を「イコライザ」と言います。

ところが、まだ思った通りの音にはなりません。

スピーカーは板を動かしています。そして、物を動かすためには、それに力を掛けなくてはなりません。力をかけると、「押されている物」にかけられる力と、「押している物」がかけている力が、ちょうど反対方向で同じ大きさになります。

ここで、動かしたいのは「板」なのですが、動かしている側の機械も、板と同じように動いてしまう可能性が考えられます。すると、板は思ったようには動かず、結果的に期待している音にはなりません。

そこで、板を動かすための機械はどこかに固定し、板だけがきちんと動くようにします。

ここまでやっても、まだ元の音にはなりません。スピーカーの板が「たわむ」ということは、こんどはそのたわみによって「びよーん」と変な音がするのです。たわんでいる物の堅さと長さによってこの「びよーん」の音の高さが変わります。この音の高さのことを「固有振動数」と言います。どんな力を加えられても、板は大体その音で「びよーん」と鳴るようになります。

鳴らないようにするために一番いいのは、おさまえつけることです。板を適度な力で押さえ付けてやれば、固有振動数で音を鳴らそうとするのを止めることができます。もちろん、固有振動数以外の音もおさまえつけられてしまいますが。

次善の策としては、あまり堅くないできれば軽い物体で板を作る事にします。あまり堅くない物体であれば、そんなに「びよーん」と言う音がしないはずです。堅くない物体だと、「たわみ」は大きくなりますが、変な音がしちゃうよりはましです。

さあ、これでスピーカーは何とかそれっぽい音を出せるようになりました。

でも、まだこれだけでは足りません。

スピーカーは人の前に置かなければなりません。もちろん、空中に動かないように浮いていればいいのですが、重力が働いている現実ではそんな風に置くことはできません。仕方がないので、スピーカー自体を板か棒の上にくくりつけます。板や棒はきちんと固定できるほど頑丈な物。スピーカーひとつでは全部の音を再現できませんので、二つないしは三つのスピーカーをくくりつけておきます。

ところが、こんどはこれをどこに置くのかということを考えなくてはなりません。スピーカーからは正面にだけ音が出ている訳ではなくて、ちょうど真後ろにも同じように音が出ています。例えば、部屋の中にスピーカーを置くと、壁とかで音が跳ね返って、正面からの音と、真後ろから出て壁に跳ね返った音が混じって、元の音とだいぶ違う音が聞こえてしまいます。

そこで、スピーカーの後ろから出た音をなんらかの方法で聞こえないようにしてやる必要があります。

一番確実なのは、スピーカーの板をちょうど挟む形で無限の広さの壁を作ることです。でも、無限の広さの壁なんてのは実現できる物ではありません。

次善の策としては、スピーカーの後ろ側を、部屋の一部として隔離してしまうことです。密閉してしまえば、元より音は聞こえないはずです。

ところが、音というのは結構やっかいです。「聞こえないように」と簡単に言いましたが、音を完全に無くす確実な方法はなかなかありません。すごく頑丈な壁で隔離したとしても、スピーカーの板から音は漏れてきてしまいます。

仕方ないので、隔離するのはあきらめてスポンジのような柔らかい物で音を吸収する方向で考えます。吸収するとはいっても、完全に吸い取ることはできませんので、ある程度小さくする程度で我慢するしかありません。

まぁ、それでもそこそこ小さい音しか漏れてこないようになったとしましょう。

これでもまだ問題があります。先程、堅い物は「びよーん」という固有振動数を持っているという話をしましたが、同じような感じで、構成する面自体がある程度平行になっている狭い空間は、平行になっているところで「ぼー」と特定の周波数の音が聞こえてきます。これは、音が跳ね返った物に、更に跳ね返って・・と繰り返した末に鳴る音で、「共鳴」と言います。共鳴する音の高さもやはり「固有振動数」と言います。

共鳴を起こさせないためには空間を不規則な形にする必要があります。

だいぶいい線まできました。でも、まだ元の音にすることはできません。

音が聞こえないように密閉すると、本来聞こえてはいけないはずの音を遮断することはできるのですが、今度は密閉しているために別の問題が出てきます。

音は、気圧の変化です。つまり、スピーカーの板のところでは、気圧がいろいろ変わっていると言えます。

ところが、大きく気圧を変えるためには、そのための元になる空気が必要です。たとえば、スピーカーが大きく引いて、スピーカーの前の気圧を低くしようとした、としましょう。すると、密閉されてる側の空気は逆に押されています。押されるということは密閉されている側では気圧が高くなったということで、高くなった気圧はなんらかの反発をします。

つまり、密閉されていると、実はスピーカーは自由に動けないのです。

高い音ならば問題ありません。気圧の変化は早いですが、変化量自体はあまり大きくないので、反発も小さいです。

でも、低い、大きい音を鳴らそうとすると空気の反発は大きくなります。反発が大きくなると、思った通りに板が動きませんので、思った通りの音を鳴らすことができません。

仕方がないので、スピーカーの裏側を密閉するのはあきらめ、空間に穴を空けます。ただし、できればあんまり音は漏れてほしくないので、いろいろ複雑な形で道を作るとか細工をします。

さて。

ここまで見てきた物をまとめましょう。

  • 目的
    • 音源と全く同じ形の空気の振動を耳に伝える
  • 方法
    • 「全く同じ形」は難しいので、似たように聞こえるよう人をごまかす
  • 作り方
    • いろんな音の高さを再現するため、複数の、大きさの異なるスピーカーで、
    • なるべく軽い板を使い、
    • なるべく強い力で、
    • 動かす部分はなるべく重く、固定し
    • なるべく頑丈な箱で囲み、
    • なるべく箱の中は複雑な形状で、
    • 箱の一部に穴を空けること

これを踏まえた上で手元のスピーカーを見てみましょう。なんとなくそれっぽく作られているのが分かると思います。

でも。

さっきから私は何度「次善の策」という言葉を使ったのやら。やりたいことはすごく単純なのに、なかなかそれに近づけない。これがオーディオの世界なのです。

こんなにも面倒なので、「別に、音を再現しないでも楽しめるよね」という見方もあります。この立場にたつと、今までお話してきたのは「High Fidelity(高忠実性:Hi-Fi)」とよび、再現性を気にせずに楽しむ方向を「Low Fidelity(低忠実性:Lo-Fi)」と呼びます。

スピーカーの話をしているだけでこんなにも面倒なのですから、もっと奥まった、アンプやレコードにまで踏み込むとどうなるかは推して知るべしです。

(続く・・かな?)

[](追記)

と、言うような話を、なぜか小学生の頃ずっと読み返していた「絵で見るオーディオ・ガイド」(誠文堂新光社)で、知識ではなく血肉として受け取っていたような。

父親が当時持っていた本で、未だに記憶に残っている本ってのは、しみじみ考え直してみるとすごい本ばかりだったんだなぁ、と思い知ります。

ほかにも「FF車のドライビングテクニック」という本が大のお気に入りでしたが、これは、スバルの小関監督の本だったし。今読んでも、これよりも細かく書いているドライビングテクニックの本って、見たこと無いです、私。

*1:どうせ会えん(笑) 

suikansuikan 2004/04/29 19:57 23日の続きです。「xxミリ秒で処理を行うという考えをやめろ」というものでした。常に全速で描画を行い、「前回の描画からyyミリ秒経過したからモデルをそれだけ動かす」という考え方に変える話でした。

FlorianFlorian 2004/04/29 22:06 なるほど、海外のFPSによくある方法論の話だったのですね。でも、実はその方法論は重大な問題があるんですよねぇ。

FlorianFlorian 2004/04/29 22:15 「問題点」は書いていくと長いのでまた別の機会に(^^;)

2004-04-27 WMAについて

[]コレクションのWMA

いろいろあって(^^;)、 Florian の持っているMP3のコレクションをWMAに切り替え、ついでに常用プレイヤーをBeatJam-XXTremeからWindowsMediaPlayer9かLilithに変えてみました。

まず一番驚いたのが、少なくとも Florian の持っている機器(SRS-GS70,MDR-EX51,EG-CDP1000,Timedomain mini)ではMP3WMAの違いがわからないということです。曲によって差はあるのでしょうし、全てのケースで聞き比べたわけではないのですが、少なくとも常用する限りでは再エンコードによる音質劣化はあんまり感じられないというのがびっくりです。

WMA情報を集めた結果、どうやらMPEG AudioやATRACと同じように、DCT(離散コサイン変換)ないしはFFT(高速フーリエ変換)によるfドメインの解析を、音響心理解析によって情報を間引くという方針みたいですから、純粋に波形だけを媒介物と考えると結構抜け落ちる情報量がありそうな気がするのですが、それでもこの再現性はかなり立派です。

あとは、MicrosoftWMAライセンスでごねたりして使えなくなる日が来ないことを祈るばかりですね(^^;)。いや、MPEG Audioもライセンス的には結構面倒なんですけど。標準化ってなんだろうなぁ……。

そうそう。せっかくWMAにしたので、EG-CDP1000で聴いている曲も刷新してみました。

少なくとも、今日の夜の間聴いていた限りでは、EG-CDP1000でのWMAの音飛びは一度もありませんでした。うーん、この間のトラックとばしは運が悪かったのかな?

2004-04-24 オーディオの日

[]CCCD

初めて「CCCD」(Copy Contol CD)なる物を買ってみました。大島ミチルさんが音楽を担当した「鋼の錬金術師 オリジナルサウンドトラック1」です。

詳細は書きませんが、何とも手強い円盤でした。ふつーに聞くことすら出来ないんだもんなぁ(^^;)。

あ、今は聞くことが出来るようになりました。念のため。ふう。

[]オーディオマニアの業

上記の「鋼の錬金術師」と、それとは別口でとある方に作曲していただいた音楽をきちんと聴くために珍しく書斎のPCオーディオアンプに接続し直して再生を。


Florian 宅の書斎のPCは、そこそこ音周りには気を配っていて、歴代のPCのほとんどがEnsoniq(E-MU)のチップを使っています。今はSoundBlaster Audigy Plutinumかな? やっぱり、Ensoniqのチップって、こう、ひと味違った音が鳴りますし。さすがに今はSPIFではなく、普通にアナログで接続していますが。

にもかかわらず、普段の再生環境はSONYの肩掛けスピーカーSRS-GS70を使っています。これは、アンプを内蔵しているアクティブスピーカーの一種なのですが、首の後ろを経由して肩にかけ、耳に向かって下から上方向に音を出すタイプのスピーカーです。

スピーカーのバックエンド部分が肩に直接接するので、何となくボディソニック風味に使うことも出来るし、わざわざ触れないように角度をつけることによって、小音量でも耳元で鳴っているのできちんと聞こえるようになったりします。

何よりも、直接耳に接する部分が無くて、耳に対する遮蔽も行わないので、音がきちんと聞こえる割には外界の音も入ってくるためとっさの事にも対応できるというメリットもあります。

もちろん、イヤホンに比べると経の大きめなフルレンジのスピーカーなので、あんまり再現性って意味では良くないです。アンプも残念ながら歪みやホワイトノイズが多いですし。

でも、「大きな音は出せない」「音が鳴っていても、外界の音に気を配らなくてはならない」「でも、鳴っている音は最低限聞き取れるようにしたい」という運用に対する利便性を考えるとヘッドホンやきちんとしたアンプ・スピーカーを使うわけにもいかないですし、仕方ない選択肢としてここ5年近くずっと使い続けています。

あ、もちろんきちんとした(か、どうかはちょっと微妙ですが(^^;))アナログアンプとスピーカーも使える形にしています。アンプとしては、ONKYOのA812XGという50W+50W(だったよな?)のものを。スピーカーはPIONEERの2Wayの木製エンクロージャの密閉式のものを。

アンプは今から10年以上前のものですし、スピーカーにいたっては Florian 自身よりも年上というおじいちゃんですが(^^;)、少なくとも経年変化でどうにかなるというレベルはとうの昔に落ち着いちゃっているので、そこそこな音が鳴る、と思います。


もとい。そこそこな音が鳴ると思って*いました*。

なにせ、ここのところずっとオフィスTimedomain miniを使って聞くか、そうじゃなければ出先でMDR-EX51で聞くかのどちらかでしたので、肩掛けスピーカーも、木製スピーカーも全然使っていなかったのです。

鋼の錬金術師」も、もう一つの方もオーケストラが中心の、ダイナミックレンジが大変大きい曲です。音域でいうと高音域から低音域までまんべんなく使っていて、どこかをブーストかけると一発でばれるというシビアな音源です。

まずはじめ、肩掛けスピーカーでしばらく聞いていました。特に「鋼の錬金術師」なんかはよくテレビで聞くやたらとドラマチックな曲ですので、耳にだいぶ残っていたのですが、せっかくのCD音源なのに今ひとつありがたみがない音がします。

これは、再生機器が良くないと踏んでアナログアンプに接続し直し、そこそこな大音量で再生を。

……やっぱり今ひとつ集中できません。具体的には何がまずいのかというと、肩掛けスピーカーもアナログアンプ+スピーカーも「そこにスピーカーがある」ということをいやでも意識させられるのです。肩掛けスピーカーはさておき、音が「スピーカーから鳴っている」ということが真正面で正座して聞いても、やっぱり意識させられるのです。曲自体ではなくて、音の鳴り具合が気になると、当然ですが、音楽音楽として聞くことが出来なくなります。

仕方ないので、PCにMDR-EX51を直接つないで再生することに。当然ですが、いつもと同じ(正確には、ノートPCよりはずっといい音で)聞こえます。でも、MDR-EX51と延長ケーブルではPC裏面のオーディオジャックから Florian の首まで届きません。

さらに仕方ないので、CD-RにWAV経由で焼いて、PanasonicCDプレイヤー(SL-CT570)で聞くことに。

素晴らしいです。うん。大島ミチルさんも、もう一つの方も。ずっと聞いていたいって感じ。


微妙に考察すると、やはり、こんな大騒動になった一番の原因は「慣れ」でしょうね。

Timedomain miniやMDR-EX51みたいな再現性の高いものをずっと使い続けてきたせいで、再現性がそこまで高くないもので聴くと、耳が「こんな音であるはずがない」と訴えるのです。普段は再現性の高さをいちいちありがたがったりしないくせに。

高級なオーディオシステムを組んでいる人たちは、やっぱり同じように「素晴らしい音」というものに慣れてしまったがために湯水のごとくお金をつぎ込んで、そのレベルを維持しようと、それ以上の感覚にしようといろいろ苦心しているのでしょう。

そう思うと、「素晴らしい音」ってのを聴いてしまったら、もう戻れないんだなぁ、と。

うー、書斎で仕事すること、あんまり多くないけど、書斎用にTimedomain miniをもう一つ買うしかないのかなぁ。

2004-04-23 世界の解釈

世界の解釈方法

(今日のこの項は今一つまとまっていません。もう少し考えて書き直した方がいいのですけど、かきかけの文章のライブ公開って事で(^^;))

Squeak eToysを初めて触った時、大変感心した事がひとつあります。

「旋回」という動作を実現するためにはeToysのスクリプティングタイルでは「一歩進む」と「ちょっと向きを変える」という二つの行動をほぼ同時に行い、これを時間軸に沿って連続させることによって結果的に「旋回」という動作になるという見せ方を行います。

これは、「フレーム」という単位に慣れ親しんでいるゲーム屋の視点からすると、火を見るよりも明らかな世界の真実なのですが、数学的には「微分方程式によって記述される運動」と表現することが出来ます。

ところが、現実世界に生きているほとんどの人は、時間というのは「ただ単に流れるもの」であって、時間の関数として世界を捕らえることも、時間方向に微分することによってその中間の状態を記述し易くなるということもできない傾向にあります。旋回しながら動いている物体は、「円を描いている」事は分かっても、その行動がどのような方法論で実現できるかには意識が及びづらいです。

そういう意味で、端っから「動く物を作るには微小時間(ノーマル)を時間に沿って何度も繰り返す(チクタク)事によって実現できる」と言い切ったプログラミングスタイルを、ループ何かよりも前に押し付けるeToysって、世界のモデル化のバッサリ感がすごいなぁ、と。

例えば、ほとんどのプログラミングの教材は、移動という行為を以下の形で書きます。懐かしのBASICだとこんな感じ。

10 for i=0 to 40

20 locate i,0

30 print " a "

35 pause(2)

40 next i

ところが、この書き方には大変な問題点があります。ループのための方法論としてループ回数とx座標は全く同じものであるという前提があるため、この中には「時刻」のパラメータは入っていません。もちろん、結果的にループ回数iを「時刻」と見なすこともできますが、残念ながらプログラミングの教材は、こんな書き方を行います。

10 for i=0 to 40 step 2

20 locate i,0

30 print " a "

35 pause(2)

40 next i

確かにこれで速度は速くなります。でも、これでは先程「時刻のパラメータ」と見なした変数iが、不連続な時刻を表現してしまいます。

じゃあ、逆にこんな表現にするとどうなるかというと、

10 for i=0 to 40

20 locate i,0

30 print " a "

35 pause(1)

40 next i

時間のパラメータと見なしたはずの変数iが、連続してこそいれ、元の時間よりもずっと速く流れて行きます。

もちろん、数学的な素養を持つ人ならば分かるはずです。最初の例と二つ目の例は「微小時間あたりの変位」が事なり、三つ目の例とは「微小時間に対する分解能が事なる」ために、結果的にどちらも速度と位置の関数の係数、要は「速度」が変化しているということが。

でも、どちらにしても、iは時刻を表している訳ではありません。結果として、iは座標、正確にはある基準点からの相対座標を表しています。つまり、これらのプログラムは「座標」というものだけを数値化して持っており、「時刻」は観察者の中にしか存在しない、つまり、時間の関数としての座標という考え方は、記述上は存在しないのです。

また、このプログラムには重大な問題点がもう一つあります。

逐次処理を行うというノイマンコンピュータプログラミング言語では、純粋に同時に二つ以上の処理を行うことはできません。なので、このプログラムを習得した人に「もう一個、左に向かう文字をつくって、一緒に動かして」というと、そのほとんどは以下のようなミスを犯します。

10 for i=0 to 40

20 locate i,0

30 print " a "

35 pause(2)

40 next i

110 for i=40 to 0 step -1

120 locate i,1

130 print " b "

135 pause(2)

140 next i

確かに文字「b」は左に向かって動きます。

ですが、当然ですが同時に2つの文字は動いてくれません。

これは、元のプログラムをある程度解釈した人でもおおむねこうなります。学習結果を元に以下のように類推できるからです。

  • for文のiが座標のはず
  • 座標を逆に小さくすれば左に行くはず

ところが、この発想の中には二つ以上の物を「同時に」動かすという方法は含まれていません。また、多くの場合それがなぜできないかということも分かりません。気づかないのはなぜかというと、ふだん私達が生きている現実は、「逐次処理」に純粋になっている訳ではなく、暗黙的に並列処理が行われている事が、あまりに当たり前すぎるためです。

これに気づくためには、数学的なブレイクスルーが必要になります。具体的には、以下に気づく必要があります。

  • 世界は時間の関数として記述できる
  • コンピュータの中では時間は離散的なものである
  • 離散的な微小時間に行われたことは、逐次処理的にこなされたとしても観察者からは「同時」と見なせる

これを、 Florian は「Δtの世界に生きる」と呼んでいます。例えば、時間軸に沿った世界のシミュレーションは必ず「Δtの世界に生きる」必要があります。

「Δtの世界」というのは実際には実在する訳ではありません。現実時間はどうやら連続的なものみたいですし(この際、プランク時間は知覚できないので無視(^^;))、同時に起きていることは、純粋に「同時」ということがあり得ます。

じゃあ、「Δtの世界」というのは何かというと、これはもう単なる世界の捕らえ方でしかあり得ません。世界は結構複雑なものですから、複雑なまま、ありのままで捕らえようとすると結構ストレスが大きくなります。これを、例えば微分という方法によって解釈すれば、ある場面(この場合、コンピュータによる現実のシミュレーション)においては大変便利なことが有り得るという、そのための捕らえ方です。

世界の捕らえ方はひとつではありません。たまたまここで扱っているような数値化可能な世界であれば、周期的な数値を扱うための「フーリエ変換」という方法だってあります。数値化不可能な世界であっても今度はそれなりに解釈のための方法論は残されています。


ただ、仮説を立て、仮説を検証することによって解釈のための方法を編み出す・・という自然科学的な方法論は、無意識のうちに人間に備わるものではなく、なんらかの形で習得しないと身につかないものだと思っています。

もちろん、教育者としての Florian はこれをなんとか理解させようといろいろ苦心しています。でも、 Florian はが主に教える二十歳前後の人間に「世界の見方を変えるのだ」といっても理解するまでが一苦労です。彼らだって、それまでの人生で算数や、数学や、理科などの自然科学的方法論にたくさん触れてきているはずなのに。

そういう意味で、なにかもっとうまい教育の方法というのがないものかといつも思っています。

(続く、かな?)

余談

・・と、いうのを、おおしまさんの書いていたAlan Kayの講義抄録(id:squeaker:20040420#p6))を見て一気に書き上げてみたり。

まぁ、教育とはいっても Florian の場合はゲーム屋の速成栽培が中心なので、自然科学的方法論をたたき込むのが目的ではなく、便利な道具として自然科学的方法論を使えるようにするというのが目的なんですけどね。

ちなみに、 Florian が「Δtの世界」に初めて気が付いたのは10歳の時でした。友人の父親が持っていたHP-45でプログラムを組み、「子供の科学」でBASICを読んで電気屋さんでゲームを組み上げた時ですね。そのまま、それとは知らずに微分、積分の発想までたどり着いたような記憶があります。

でも、高校レベルの微分方程式では全然ピンとこず、大学に入ってdx/dtという記述方法を見てはじめて「これのことだったのか!」と偉く感心したような。

・・でも、 Florian は数学苦手です(^^;)。

suikansuikan 2004/04/29 09:17 はじめまして。ゲームといえば、3dfxのVoodoo Graphicsプログラミングマニュアルで初めて「実時間に束縛されたプログラミング」を見て関心した覚えがあります。PDF捨てなきゃよかったと公開することしきりです。

FlorianFlorian 2004/04/29 13:23 「実時間に拘束された」というと、1フレームの長さが不定でも処理自体は実時間に合わせるという考え方でしょうか?

FlorianFlorian 2004/04/29 13:25 それとも、最低応答時間を保証するというリアルタイムOS的な考え方でしょうか?

FlorianFlorian 2004/04/29 13:27 どちらにしても、3dfx亡き今となっては原典を当たることはできないんですけどね(^^;)。

2004-04-22 ちゅうを飼う

なぜSqueakか?

最近、ゲームもやらずに(や、一応本業ゲーム屋なので、それもどうかと思いますが(^^;))空き時間をひたすらSqueakにつぎ込んじゃってますが、なぜわざわざSqueakなのかって話をちょっと。

まず一番の理由は Florian の興味の範疇がやたらと広いからというのが挙げられます。そりゃもう、本業の方ではいろんな怪しげシステムをとっかえひっかえしながら使っていますが、そもそも不思議OSが大好きなんですよ。Symbian(EPOC32)やら、PIECEやら、BTRONやら、BeOSやら。仕事で使っている組み込み用、コンテンツOSもいれると、結構すごいことに。

Smalltalk大学のころSONY/TektronixのSmalltalkマシンで触ったのが最後(ちなみに最初はOh!MZの記事で知った)で、以前からMI-Zaurusで動いたいたという話もあって興味あったのですが、しばらくブランクがありました。これが、Zaurus用のセルフ開発環境をいろいろと試していた時にたまたま引っ掛かり、別の本をさがしていた時にたまたま「Squeak入門」と「Play with Squeak」を見つけたというのが使い始めた理由です。

ようは、単に運と巡り合わせで積極的な理由が始めからあった訳ではないって事ですね(^^;)。

二つ目の理由としてはSqueak自体のユーザーインターフェースが気に入ったからという物が挙げられます。

Florian は良いUIとして以下の条件を考えています。

  • 何にでも同じ操作が成り立つ(直交性)
  • パッと見て何をしていいのかすぐ分かる(直観的)
  • いつでも別の物事に取り掛かれる(モードレス

さすがにこの辺は、Xerox Star直系の環境だけあって大変意識的です。ハローというちょっと習得を必要とするインターフェースはありますが、ハローのお陰でできることは大変増えていますし、一度ハローの持つメタファーになれてしまえば大変直交性高く扱うことができます。「回転」なんてのがすべての画面上のオブジェクトに対して出来ると知った時にはなかなか感動的でしたね。メニューすらもまわるんだもんなぁ(^^;)。

これは、ユーザーインタフェースというものに対して、かなり高度な抽象化がなされており、なおかつその抽象化によって得られる利益がかなり大きいという確信のなせる技でしょうね。

あと、SqueakAlan Kay博士の提唱する「パーソナルなコンピュータDynaBookの系譜に位置するという出自からも明らかなように、人間の知識活動を補佐する方向でさまざまな設計がなされています。

Florian 自身はコンピュータを、絵かきの筆や、作曲家ピアノと同じぐらいの意味で「イメージ実現のための便利な道具」としてしか見ていませんが、それでも「パーソナルコンピュータ」は人間の活動を補佐する、ないしは拡張する存在であってほしいと思っています(実はこの観点に立つと、 Florian はパーソナルコンピュータを必要としていないのですが、それは、さておき(^^;))。

なので、Squeakの持つ知識処理のための方法論や、どんなメディアでも平気で扱うようなスタンスや、それらの総体としての生命感が大変好ましく見えます。


とはいえ。

UIに意識的なのは、現代のOSは多かれ少なかれ常識と化していますので、程度の差こそあれどんな環境を使ってもそこそこ統一感のある使い勝手を味わうことは出来ます。WindowsMacintoshだって、Xerox starの反省を踏まえたものになっていますし、Gnome,KDEや古くはMotifだってUIのガイドラインを決めた上でアプリケーションの実装がなされています。

知識処理も、Squeakが飛び抜けていいという訳ではありません。ActiveXやOpenDoc(なつかしい(^^;))は統括的な知識処理のために作られたものでしょうし、純粋に知識処理を行うというだけであれば、OS自体がハイパーテキスト構造を持っているBTRONの方が人間の感覚に近い知識表現を行うことが出来るかも知れません。

そうして見ると、Squeakという環境は教育目的のため以外は明らかな優位性を持っている訳ではないのかも知れません。

ここで言う教育とは、eToysだけを指すものではなくて、Squeakを使う人が意識せざるを得ないさまざまな項目一つ一つすべてを指しています。曰く、オブジェクトを生成し、内部にデータを溜め、操作することによって自然と「オブジェクト指向環境」を意識するようになるということや、単純な文法によるプログラミング言語によって、逐次処理というメタファーを受け入れることや、システムの全ソースが書き換え可能・再評価可能な状態でユーザーに預けられている事など。

でも。

遥か昔、 Florian がまだコンピュータというものを知らなかった頃、初めてマイクロコンピュータに触った時には、その環境には知識処理的な観点こそあまりありませんでしたが、徐々にノイマンコンピュータという新たな世界が開けて行く感触に感動した記憶があります。その感触は、BASICという教育及び簡易処理を目的とした環境から、マシン語を覚え、当時のOSに当たる「マシンモニタ」のソースを読む(当時 Florian が使っていたMZ-700には、マニュアルに全ソースコードが乗っていた)ことでさらに広がって行きました。

もちろん、 Florian は特殊な例です。1980年代前半のマイコンブームは数多くのマイクロコンピュータを世界に広げましたが、BASICによって世界が広がる感触を得た人は残念ながら稀でしょう。ほとんどの人は、マニュアルを片手に言われるまま操作をするだけで、血肉として新しい世界を受け入れるには至らなかったと思います。

でも、 Florian にはSqueakに、あの当時のわくわくが、もっと敷居の低い形で込められているような気がしています。そして、まがりなりにも知識処理という実用性が備わっている上で、「コンピュータとは何か」や、ひいては「世界をどのように理解するか」という訓練を、Squeakを使っている人は徐々に理解して行けるのではないかと。

世界が広がることは人間としての根源的な快楽のひとつだと Florian は思っています。それは、例えば初めて乗った自転車のような、近所の森にもぐりこんでケガをするような、おばあちゃんの昔話を聞くようなものと同じレベルで、コンピュータというメタファによって、世界の構造に触れることも、はやり快楽だと思えるのです。

そういう意味で、 Florian は、世界を人に見せるおせっかいのために、そして何より自分がその快楽を追体験するためにSqueakを使っていたり、Squeakについていろいろ書いているのかもしれませんね。

アンテナ

4/18に「ページビュー」を表示するようにしてこの方まったく「アンテナ」に更新が引っかからなくなってちょっとショック。

どうせページビュー気にするような物でもないのでさくさく削除してみました。

今度は引っかかるかな?

(追記)引っかかりました。「ページビュー」は使っちゃダメなのかなぁ?

超漢字原稿プロセッサ

いろいろ調べた結果、やっぱり、仮身は貼り付けられないようです。原稿プロセッサはそもそも印刷イメージ用で、きちんと電子化された文章は基本文章編集でやれってことなんでしょうね。

旧態依然としたリニアな文章が印刷物では幅を利かせている現状では、印刷物の原稿を作るためのソフトはこの方向になるんだろうなぁ。

sumimsumim 2004/05/03 04:06 せっかく Squeak の UI が気に入っておられると書いていただいているのにこういうかたちで水を差すのは気が引けたので差し控えていたのですが、4/30 を拝見すると日記の内容は書き捨てではなく吟味して必要なら書き直しておられる様子なので、改めてちょっとツッコませていただきます。それは、GUI の歴史における Star システムの位置づけです。まず、押さえておきたいのが Star は、Smalltalk システムの開発を含む一連のいわゆる“Dynabook プロジェクト”とは別のプロジェクトの産物だという事実です。担当研究所も Smalltalk や ALTO は PARC ですが、Star は SDD と別で分かれています(ただし、ハードウエアは PARC の ALTO からの技術転用です)。加えて、Smalltalk システムは Star システム誕生以前の 70 年代中盤にはすでにその GUI をほぼ完成させています。したがって、Smalltalk-80 やそのサブセットから派生した Squeak が Star の直系ということは考えにくいと思います。似たようなコンテキストで、Win や Mac の GUI が Star の反省…という言い切りがありますが、ジョブズやゲイツらが PARC で見て感銘を受けたのは Smalltalk-76 を GUI ベース OS として動かしていた ALTO であったことを知っていると、これも(よく見かける記述ではありますが)ダウトだと思います。Star は Xerox からハードウエア込みで唯一製品化された GUI システムということで引き合いに出されることが多いのですが、世間で言われているほどの影響力は実は結果的にはなかったのではないかと個人的には考えています(むしろ後発の Lisa の影響を受けてウインドウシステムをタイルからオーバーラップ形式に焼き直したりしたりしているくらいで…(笑))。なお、ハローが実現するウィジェット単位の意識的な操作は、Smalltalk の伝統的で非富豪的な GUI フレームワークのそれより、スタンフォードや Sun で研究開発されていた SELF システムの 4.0 以降で採用された Morphic という直感的で富豪的な GUI フレームワークによるところが大きいです(Morphic は、Squeak では 1.13 で取り入れられ、3.0 以降でデフォになりました)。余談ですがこれは、PARC での ThingLab という制約プログラミング環境の流れを汲むものということもあるので、Squeak の UI がゲーム開発関係の Florian さんの琴線に触れたのも偶然ではないかもしれませんね。以上、こまかいことですが正確な記述を心がけておられるようお見受けしましたので、老婆心ながら。長々とすみません(^_^;)。

FlorianFlorian 2004/05/09 14:17 ありがとうございます。実は、sumimさんの5/8の日記を見て、自分の知識が混乱していることに気付きました。訂正ありがとうございます。ちょっと整理しますね。

2004-04-21 EG-CDP1000

EG-CDP1000そうそう

昨日(id:Florian:20040420#p5)あんなことを書きましたが、WMAでは今度はまた別の致命的欠陥が。

  • 使っていると、曲の途中で再生を終了し、次の曲にいきなり飛ぶ

……一瞬ビートが途切れて何事もなく進むのとどっちがストレスかと言われると、微妙なセンかなぁ。WMAの方が音飛びが起こる頻度は少ない気がするけど。

それとは別に、コレクションのWMA化計画は着々と進んでいます。最新のCPU使うと、16GByteを15時間くらいで再エンコード出来るんね(^^;)。fドメイン同士の再圧縮なので、音質はひどいことになると思うけど、まぁ、試しに。

2004-04-20 プログラムを作ろう!

Microsoft C++最適化コンパイラ

今まで、Windowsゲームを作ろうとしたら、高いVisualC++を買わなくてはならなかったのですが、今はいろいろ無償配布されて居るんですね。

この辺をMicrosoftのページから頂いてくれば一応無償の開発環境が作れるようです。

これに、

辺りを組み合わせると、往年のマイコンBASICマガジン並みのコストの敷居の低い開発環境が出来上がるかも。

……いや、セットアップの時間的コストや、ダウンロードに使う回線コストを考えると、結構面倒かも(^^;)。

でも、貧乏人(笑)にはありがたい環境ですね。今までBorlandCもあったけど、オープンソースのサンプルがたくさんあるMicrosoft系のコンパイラの方が嬉しいこと多いし。

ただ、この辺の物を組み合わせて、たとえば「C++ゲーム制作!」みたいな書籍の付録に付けるってことをやろうとするとなんとなくMicrosoftに嫌がられそうだなぁ。

[]EG-CDP1000その後

実に一月近くずっと使い続けていますが、この間に判ったことがありました。

EG-CDP1000の最大の欠点としてMP3で音飛び(id:Florian:20040414#p3)するというのがあるのですが、常に聞きっぱなしで特に意識していない状態であっても、ビート一つ分(0.5秒程度)ずれると、それまで聞いていなくても頭の片隅で「あ、今飛んだな」ってのが聞こえて何となく気になります。

おそらく、私の頭の中では音楽を聴きながら一緒にうたっているのでしょうね。「次の音はこうなるだろう」とかいろいろと予想しながら。何せ、ずっと聴き続けている曲ばかりなので、ハーモニーやら音の感触やらまで全部頭に入っている状態ですし。

ところが、「音飛び」がおこると、この瞬間だけ Florian の予想していた音とちがう物が耳から飛び込んできて、なおかつ頭の中で歌っていたものとずれてしまう、と。すると、その瞬間に「なんだこのへたくそ」と音源に怒るか、「 Florian は音痴だなぁ」と自分に怒るかしたくなるですね。ようは、思い通りに行かないという状況自体がストレスであると言うことが出来ると思います。

やはり、以外なのが聞いていないくせに結構気になるという事ですね。まぁ、蛍光灯の電灯の点滅を見ていなくてもその点滅が気になるとか、ほとんど聞こえなくてもテレビの出す高周波ノイズが気になるとか、そんなレベルと同じなんでしょうけど。

波形的な意味ではなく、時間方向での再現は音楽では必須なんだなぁ、と、今更ながら思ってみた Florian だったのでした。

WMAだと大丈夫なのかなぁ?ちょっとWMAで試してみようかなぁ……。

MP3からWMAに「ディレクトリ構造」自体を保持した上でバッチ変換するツール、どこかにないかなぁ?

[]原稿プロセッサ

やっと発売の発表がなされましたね、世界唯一のBTRON実装系(^^;)「超漢字」のキラーアプリ超漢字原稿プロセッサ」(http://www.chokanji.com/ckgproc/)。……長かったなぁ(^^;)。超漢字になる前の「B-Right/V R1」の頃からずーっとアナウンスされてたもんなぁ。

常々、小説・随筆書きのために適したワープロソフトが少ない(こういう意味では、一太郎はかなりいいセン)と思っていたので、うまくすればかなり良い感じにその筋の人にブレイクするかなぁ……とは思っています。昔、「PCワープロ専用機に比べてまだまだだ」という事を言っていた作家さんが居ましたが(山根一真さんだったかな?)、そういう人向けにハード(良いキーボード・きれいで速いプリンタ)を含めた専用機として売ったりすると、おもしろい気はしています。印刷機能に「FAXで送る時用に赤ペンの部分を別印刷する機能」なんてのがついてるぐらいですから、電子化した原稿を直接送ることはこのソフトの第一義じゃないんでしょうし(^^;)。

ちょっと気になるのが「エクスポート」の機能。

当然、「原稿プロセッサ」のファイルのままどこかに送っても誰も読めないので(^^;)、実身を直接コピーするわけではなく何らかの形で読めるファイルに直す必要があるのですが、これがXHTMLベースXMLファイルとして作られるとのこと。

これに対して、

って事が気になりますねぇ。

あと、エクスポートによって送信可能なようになっているということは、原稿プロセッサ内で文章のデータが完結しているということで、逆をいうと原稿プロセッサ原稿(変な言い方)は、内部に仮身を持つことは想定してないんですかね、やっぱり。

下書きで書いた「基本文章編集」の原稿をコピー&ペーストしたらどうなるんだろう、とかも気になります。きちんと文字としてペーストされてくれるのかなぁ?

うー、気になるなー。原稿用紙上の電子化されていない原稿なんか書かないけどすごーく気になるなぁ。がらくたPCと一緒に「超漢字4原稿プロセッサパック」(http://www.chokanji.com/ck4/ckgprocpack.html)を買っちゃおうかなぁ(おい)。

Plan9

当然だけど、同じ事(id:stinger:20040406#p5)考えてる人って居るんだなぁ(^^;)。

Plan9はずっと気になってるんだけど、一度インストールしようとして結局再起動に失敗したっきり放置してたような……。っていうか、せっかくのPlan9をスタンドアローンで使おうって辺りが間違っているというか。

思想的にはおもしろいんですけど。

[]EG-CDP1000さらに

(試行中)

もしかして、WMAならば音飛び(id:Florian:20040420#p2)しないわけ(;_;)?2時間近く流しっぱなしなんだけど、一度も気付かない……。

このプレイヤーWMA部分がメインで、MP3部分はおまけだったのかも……。

うーん、これのためだけにうちの10G超のMP3コレクション(もちろん、手元のCDリッピングしたものね)をWMAに再エンコードし直して、切り替えるのも癪だしなぁ……。

2004-04-19 祝!はてな市民

30日目

「日常生活を書かない」というコンセプトを抱えた上で(たまに「バー・シャンハイ」(id:Florian:20040415#p1)みたいなのもあるけど(^^;))実は書くことがないんじゃないかとい危惧もありましたが、割合続くもんですねぇ。いや、後半はSqueakZaurusネタばっかりでしたし、Timedomain miniEG-CDP1000でもだいぶ引っ張ってましたけど。

市民になるとキーワードを登録できるですね(^^)。何を布教(おい)しようかなぁ。

[]馬鹿ネタ

「デジタルは味がない」「真空管プリアンプには独特の味が」「でも再現性が今ひとつ……」。

そんなあなたに真空管DSP!回路内のMOS-FETを真空管に置き換えることでデジタルならではの高音質と、暗闇でぼんやり光るヒーターの明かりをあなたに!

というネタを考えてみた。何本の三極管が必要になる事やら(^^;)。

……あ、もちろん音質は想像してはいけません。仮に作っても、論理的にはMOS-DSPと同じです(笑)。

2004-04-18 SL-C700の日(続き)

[]チェンジセットを削除してみる

おおしまさん(id:squeaker)にアドバイスを受けて、changesetのdestroyをしてみることに。

実は、Classのシュリンクと聞いて真っ先にやったのが、ChangeSetツールのメニューにある"Uninstall this ChangeSet"だったのですが、何をやってもHaltしてしまうため、Changeset経由のシュリンクは諦めていたのでしたが、"destroy"のメニューが削除だったんですね。いや、名前からするといかにもなんですけど(^^;)。

それ以前にSystemBrouserツール経由であらかたクラスは削除していたのですが、その上でさらにChangeSetもdestroyしてみました。

以下は"Smalltalk garbageCollect."後に"Help->VM statistics"で出た値です。

イメージ

12660940

イメージ-クラス

11105880

イメージ-クラス-チェンジセット

10089600

試しに、今度はチェンジセットを削除してからやってみたものも。

イメージ

12660940

イメージ-チェンジセット

11829224

イメージ-チェンジセット-クラス

10055438

チェンジセットを削除してからの方が若干小さいような気もしますが、まぁ、この辺はガーベジコレクトをさんざんやってるとそのうちまた変化するし。

と、いうわけで、実に10M近くにまで減らすことが出来たのでした。削減量、約2.5Mbyte、元容量の20%の削減は結構メモリに響いてきますね。

……とはいえ、私のSpecialKernel入りZaurusはターミナルのみでそれ以外は何も動いていない状態で、

total used free

Mem: 29844 26832 3012

Swap: 62588 11560 51028

Total: 92432 38392 54040

という素敵なメモリ食いっぷりなので、2M程度削減したところでメモリ領域はswap経由になるでしょうですから、パフォーマンスに与える影響はさほど大きくないんですけどね(^^;)。やっぱり、仮想メモリって遅いし。

ま、元の目的(パフォーマンス改善のために必要メモリを減らそう)はこの際さておき、相対的に貧弱な環境でのチューニングが大変楽しかったので週末はなかなか有意義な時間を過ごしました。いろいろ教えてくださったSqueakコミュニティの皆さん、ありがとうございました。

編集

せっかくなのでカテゴリをつけてみました。[Squeak][Audio][Zaurus][PDA]だけですが。……って、私の文章は偏ってるなぁ(^^;)。

ついでに、タイムドメインminiについて言及している部分を全て「Timedomain mini」と変更しました。商品名は英字で書くみたいなので。

ニンジン

どうでも良いけど、おおしまさんの日記(id:squeaker:20040417#p1)にあった、「朴念仁」と「僕はニンジンと言いたいらしい(着ぐるみ付き)」というネタは世代言語なんだろうなぁ、と思ってみた Florian は、ばっちりリアルタイムで「あーる」のいろんなものを集めていました。つい最近、アニメ版の脚本を書いていた方に会って舞い上がってみたりね(^^;)。

[]クロックアップ

カーネルパッチのぴろさんのページ(http://www.piro.hopto.org/~piro/pukiwiki/pukiwiki.php)が復活していたのでいろいろと情報収集。

ふーむ、なるほど。RunModeとTurboModeってなんだろう?

(検索中)

あー、やっぱり動的周波数変更なのかぁ。

ryutaさんの「戦うデジタリアン」のXScaleのクロックのページ(http://www.t12.jp/~ryuta/misclab/zaurus/chcclk.html)

ふむ。でも、この説明によれば、今のカーネルはRunModeはあんまり使ってないっぽいですね。LinuxZaurusは省電力としてはOSCPU-IDLEやHALTなんかで明示的に止めておいて、その間の電力をなるべく使わない方向で制御してるのかな? だとしたら、CPUの速度を目一杯速くしても、CPU-IDLEの時間がOS的に長ければあんまり電力は消費しないで済むのかな?

考えてみれば、昨日の日記や文章を電車でZEditorで書いていてもあんまり消費電力は変わらなかったけど、Squeakを使い始めたら途端に減り始めたもんなぁ。ZEditorはポーリングで動くリアルタイムプログラムではないでしょうし、普段はCPU-IDLEでずっとユーザーの入力を待っているでしょうから、さほど変わらないんでしょうね。

ま、ぴろさんのページでクロックを自動変更するアプレットがあったので、しばらくはこれで使ってみましょう。

そうそう。周波数は、通常カーネルで200MHz、定格外(最高速)で400MHzだと思ってたんですが、実際には、

(通常カーネル)

メモリバス 100MHz

RunMode 200MHz

TurboMode 400MHz

PXBux 100MHz

(定格外)

メモリバス 120MHz

RunMode 200MHz

TurboMode 471MHz

PXBus 120MHz

だったんですね。メモリバス、TurboModeともに20%高速化ってのが結構効いてるんだろうなぁ。

ところで、PXBusってなんだろう(^^;)? Peripheral eXternal-BUSなのかな?

[]追記

PXBUSは、単なる"PX"A-250用のinternal Busの事でした。Zaurusの場合外部メモリバスと等価かな。

2004-04-17 SL-C700の日

[]SL-C700

早速Special kernelを入れて電車の中でいろいろと。

CPUクロックがだいぶ違うので当然ですが、かなり快適です。Squeakも何かすごく速くなったような気が。とはいえ、恐らく仮想メモリswapに結構なボトルネックがあることを考えると、メモリをたくさん使わざるを得ないsqueakはもっとRAMが大きければ快適なんでしょうね。

[]SL-C700の障害

ところで、 Florian のSL-C700はいくつか不思議な挙動を示しています。

OSの起動後、コンソールを開いてメモリの量を監視していると、なぜかメモリがどんどん消費されて行きます。この消費のせいでそのうち搭載メモリをすべて使いつぶし、「アプリケーションを終了してください」ダイアログが出た後おもむろにメモリが解放されます。

起動時にしばらく時間がかかるだけではあるのですが、一体どういう原因か分からずちょっとこわいです。qpeserverのどれかがメモリを使っているかまでは突き止めたのですが、それが何かまでは分からずじまいです。

ふだんZaurusDriveを「ネットワーク」で使っているのですが、このままの設定ではシンク・バックアップができません。

いったん「シリアル」に設定し直せばいいのですが、バックアップのたびにPCあぷりをインストールし直すのもめんどうですし。

あ、いや、分かってるんですよ。ハードウェア的な障害ではなく、OSレベルの障害だということは。クリーンインストールをして、必要なものを徐々にそろえて行けば原因究明できることも分かってます。

時間かかるのが分かっているので後込みしているだけで(^^;)。

[]イメージのシュリンク

おおしまさん(id:squeaker)のコメント「要らないクラスを削除するとメモリを食わなくなる(意訳)」を読んで、まったくもってその通りだと思ったのでいろいろ調べてみることに。

調査方針としてとりあえず以下を掲げてみました。

  1. Squeakの.imageを現在の.imageと.changesから作る方法。
  2. 上記もしくは直接.imageを作る方法
  3. Squeak3.6に含まれている機能のリストアップ
  4. 上記に含まれていながら実際には使用されることは少ない(と思われる)機能の洗い出し
  5. 上記の機能の多機能との依存関係

ぐぐって検索……と、早速こんなところが引っかかってみたり。

副題に「どうやって小さくするか」とかリンクに「PDA用MiniSqueak」とかありますね。ちょっと古いですけど。

ともあれ、Imageファイルの生成以外はZaurus上で出来るかな?(多分、出来はするけど凄く重そう) 暫く行き帰りに試してみましょう。

[]シュリンクするクラス

  • Baloon3D-*

 どうせWonderlandはZaurusでは使い物にならないしー。

  • Network-*

 多分、Scamperとかはここの筈。

  • Speech-*

 サウンド周りは鳴らないようにしてるので。

[]その他

  • ところで現在のメモリの使用量を取る方法は(^^;)?
  • .imageを作る方法は?
  • そもそもどうやってパフォーマンスを測ればいい?System-Benchmarkカテゴリの中身をどうすればいいんだろう?

……先は長そうだ(^^;)

[]先人の知恵

スペックを考えると無謀なことをしていた時代があったのですね。

Squeak on Pocket PostPet(http://nishis-web.hp.infoseek.co.jp/smalltalk/Squeak/ppp/)

いや、ここまでシェイプアップしなくてもいいんですけど(^^;)。そもそもMVCじゃなくてMorphicベースだし。

でも、このページからたどれるところには「イメージ(PoPoPeSqueak3)をどうやって作ったか」までは書いていませんね。もう少し調べてみましょう。

[]検索続き

昼間のgatech.eduを重点的に調べてみたら、やっぱりこんなページがありました。

Smalltalk majorShrink(http://minnow.cc.gatech.edu/squeak/2182)

やっぱりBaloon3Dは真っ先に削られるかぁ。これで1Mbyteくらい。"Smalltalk garbageCollect."でGCをかけた上で残りメモリが出るのは判ったんだけど、size is nowってどうやって出してるんだろう?

#ああ、楽しいなぁ(^^)。

[]changesファイルについて

gatech.eduに、.changesファイルと、.imagesについて詳しく書かれてありました。

imageについて(http://minnow.cc.gatech.edu/squeak/2213)

changesについて(http://minnow.cc.gatech.edu/squeak/49)

つまり、

ようは、はじめに立てた「changesからimageを作る」ってのは、全然とんちんかんな言いぐさだったわけですね。なるほど。

ついでに、.sourcesと.changesから合成した.sourcesファイルを作る方法も乗っていたり。

ソースコードの凝縮(http://minnow.cc.gatech.edu/squeak/759)

Smalltalk condenseSources.

なんと、Workspaceでこれをやるだけで良かったのですね。おもしろいなぁ。

でも、changesが無くなったからと言って、使用メモリ量が急激に減るわけではないみたいですね(^^;)。コメントを削除(ソースファイルの圧縮)してもあんまり変わらないし。

[]今日の成果

いろいろやった結果、確かにSqueakが使用するメモリ領域はかなり削減されたようです。

  • "Squeak -memory 20m"で起動し、"Smalltalk garbageCollect."した結果

9674628

  • "Squeak"で起動し(ディフォルトでは16mらしい)、"Smalltalk garbageCollect."した結果

3658108

2963644

20mだの、16mだの言うメモリの量が、実際に"m=2^20"かどうかはちょっとさておき、試しに計算してみるとこんな感じ。

イメージ:

(16*1024*1024)-3658108=13119108

(20*1024*1024)-9674628=11296892

イメージ:

(16*1024*1024)-2963644=13813572

あんまり変わらないかなぁ。確かに数百Kbyte小さくなってはいるんだけど。

ま、ここまでたどり着くのがえらい楽しかったのでよしとしましょう(^^)。

[]余談

時に、これらのものを含めたイメージの再配布ってどういう扱いになるんだろう?

いろんなchangesetを当てちゃってるし、妙にUIのカスタマイズもされちゃってるし、あんまりリファレンスとして適当じゃないけど、LinuxZaurus用Squeakでさくっと動かせるバイナリを用意しておくと、通勤電車プログラマーが増えそうな予感はするんだけど。

squeakersqueaker 2004/04/17 15:30 Squeakが使うメモリに関しては、「フル・イメージ」を使うのではなく、Web ServerとかWeb Browserとかいらないクラスを削除したイメージを作ってそれを使うと良いかとは思います。

squeakersqueaker 2004/04/18 04:21 help...メニューからvm statisticsを選ぶと、メモリ使用状況が出てきます。ChangeSetオブジェクトから消したはずのクラスがぶら下がっていたりするバージョンもあるので、changesetも不必要なものはdestroyしたりすると良い事があるかもしれません。

FlorianFlorian 2004/04/18 05:00 なるほど。ありがとうございます。

FlorianFlorian 2004/04/18 05:00 詳細はさておき、絶大な効果がありました(^^)。結果についてはまた後ほど。

FlorianFlorian 2004/04/18 05:00 すっかり寝るのを忘れて楽しんでしまいました(^^;)(日本時間では今朝5時)

2004-04-16 Special Kernel

[]SL-C700 Special Kernel続き

インストールできました。理由は簡単で、

zImage

と、カーネルイメージファイル名を指定するところで、

zImag

と、1文字削れていたからだったのでした(^^;)。Iが大文字って方にばかり気を取られていたので気づかなかったようです。反省。

確かにこれは速いですねぇ。でも、一瞬で電池が無くなりそうですねぇ(^^;)。

2,3日使ってみて、電池の持ちを見た上でcccr_changeを明示的に書き込むタイミングを模索してみましょう。あんまり動的にクロック変えたくないんだけど。

それにしても、相変わらず「シリアル接続」ではバックアップできるのに、「ネットワーク接続」ではバックアップが出来ない(途中で中断されちゃう)のはなぜなんでしょうねぇ。当然ながら、カーネルを入れ替えても状況は変わりませんでした。試しにSHARP純正のカーネルを入れ直してみたんですけどこれも変わらず。なんか変なアプリを入れちゃったのかなぁ……。

2004-04-15 とりあえずビール

バー・シャンハイ

先日なぜかオフィスの郵便受けに近所の飲み屋さんのチラシが入っていました。曰く、

まずいビールを飲んでいませんか?

と。

オフィスは都内の結構都心っぽいところ(笑)にあって、毎日何かしらのチラシやらパンフレットやらが入っているのですが、まぁ、その大半は怪しげなものですね。曰く「市販できないレベルのパワーアシスト自転車」やら、「何か怪しげな健康職品」やら。

こういったものは、たいがい、PPC用紙に縦横比が均等ではないDTP風のフォントで書かれ、たくさん切られた枠のなかには眉唾物の売り文句と、使用者の声がたいがい入っていたりします。

で、先の飲み屋さんのチラシは、バッチリこの例に引っ掛かっているのですな。いつも通り、オフィスのグチャグチャになっている郵便受けを整理していたら運よく Florian の目に止まったのですが、もうちょっと適当に見ていたらきっと気づかずに見過ごしてましたね。

ま、フォーマットはさて置き。

書いてあること自体はかなりまともでした。

何で日本の人はビールというととりあえず飲むものとして低く見るかねぇ。

  • チンチンに冷やしたグラスで

あーそうじゃないと泡がくずれるんだよねー。

  • クラスの壁から泡が立ち上りるのは論外

そうそう。きちんと洗わないと糸屑や水アカですぐこうなるの。

  • 木目こまやかな泡の蓋を作るには注ぐのに時間がかかる

そうそう。いやがられるんだよねー、飲み屋でやろうとすると。

と、いうわけで。

相棒とこの間行ってきました。

駅の裏手のちょっと怪しげなビルの1階。

表から見るとあまり広くなさげなところでしたが奥はそこそこ深くて、結構な広さでした。まぁ、飲み屋さんですから照明は暗くて、ごまかされちゃっている可能性はありますが。

お店の雰囲気というと、誤解を恐れずに言うなら「Cowboy Be-pop風ウソ中華風味」という感じ(^^;)。もちろん、もしかしたら本国(って、どこ? やっぱり中華人民かな(^^;)?)でも飲み屋さんと言えばこんな感じなのかも知れませんが、大変作り物っぽい何かに仕上がっています。

「とりあえずビール。パイントで」

とりあえずじゃねーだろ(^^;)。

チラシ自体は怪しげでしたが、確かにビールはおいしかったです。後半、グラスが足りなくなったのか、ぬるいグラスに水滴まで付いていましたけど(^^;)。

JR恵比須西口駅前、バスターミナル方面、ローソンの近くの「バー・シャンハイ」というお店でした。

ビール好きで、興味があったら是非。ちょっと高いけど(^^;)。

2004-04-14 SL-C700 Special Kernel

[]SL-C700 Special Kernel

おおしまさん(id:squeaker)のLinuxZaurus用Squeakの話でabeeさんに「SL-C700を使ってるのならspecial kernelを使うといい」との助言を受けたので、試しにいろいろ細工を。

読んでいる人向けにspecial kernelについてちょっと。

SL-B500,C700,C750,C760,C860 Special Kernel(http://tetsu.homelinux.org/zaurus/kernel/)

ようは、SL-C700は省電力との兼ね合いとかで普段はCPUの動作クロックを200MHzに制限しているのですが、これをCPUの持っている本来の機能(っていうか、本来は定格外(^^;))である400MHzにしたり、もろもろの変更を行った上で特定用途向けに高速動作させるようにしよう、と言うものです*1

LinuxZaurusのOSはばっちりGPL準拠のLinuxですから、バイナリを手に入れることが出来る人は当然ながらソースも手に入れることが出来るので、こういう細工が出来るですね。実は、出てすぐの時にも試そうとして、いろいろあって放置されていたのでした。

kernelですので、boot時のイメージとしてファイルシステムもしくは直接ROMに書いておいて、それをbootstrapで読むって形になります。このため、単なるファイルの置き換えではなく、SHARP純正のカーネル書き換えツールを使って、何らかリムーバブルメディアからアップデートする必要があります。カーネル書き換えツールは、SHARP純正のカーネルをアップデートする際にも使いますので、最新の純正カーネル(1.50JP)に合わせたものを一緒に落としてきて、普段はSWAPのためにはめ殺しになっているSDカードを抜き出してそこにWindows経由で書き込み。

後は、メインテナンスメニューに従って起動。

……しない(^^;)?

Please Reset.

んー? これだけ?

(Q1-9) カーネルが書き替わらない。

(A1-9) ファイル名がzImageとなっているかお確かめ下さい。書き込みが成功の場合は、Successと表示がでるはずです。

「I」が大文字であることを確認しないと駄目なんだけど、確かにファイル名自体は正しいっぽいなぁ。もちろん、カーネルバージョンを確認しても、

Linux version 2.4.18-rmk7-pxa3-embedix-021129(zaurus@sharplinux) (gcc version 2.95.2 19991024 (release)) #1 The, 8 Jul 2003 16:32:08 +0900

これって、1.50JPのメッセージだよねぇ……。いったんrootfsを空にした上で1.50JPのイメージからやり直そうかなぁ。アプリのインストールはちょっと面倒だけど、どうせ凄く大事なデータは入ってないし。

[]Squeak3.6-5424バグ報告

バグというか、使い方が悪いのではまったというか(^^;)。

Squeakプログラミング入門」を読みながら「第3章ツールについて」を実行していました。

Object subclass: #Foo

instanceValiableNames: ''

classValiableNames: ''

poolDictionaries: ''

category: 'ObjectLand'

MyFoo := Foo new.

で、せっかっく次ページ(p70)に「メニューが出るのでdeclare Globalするんだよ」と書いてあるにもかかわらず、「あー、打ち込み間違ったのか。Fooに補完」とか間違ってしちゃった大馬鹿 Florian 。

Foo := Foo new.

明らかにやばいコードですね。補完されてから「ん?これはちょっと……」と思ったけど後の祭り

imageをsaveする前に抜けていたから良かったですが、あれでimageをsaveしていたらchangesを再インストールする羽目になったのでしょうね、やっぱり……。

教訓:命名規則重要(Squeakでは変数は「小文字始まり」として考えている。「行頭が小文字」だったらこんな事にはならなかった)

[]EG-CDP1000(CD-WMA-MP3プレイヤー)とTimedomain mini(アクティブスピーカー)

#相変わらず検索で来る人が多いのでいい気になっている(笑)。

愛用しています。仕事中は手放せません。

でも、やっぱり気になります。EG-CDP1000の「音飛び」。

いろいろ試してみて、どうやら、エンコードのせいではないらしいと言うことは、判りました。LAMEでエンコードしてもやっぱり起こるし。ついでに、CD-RWのせいでないことも判りました。CD-Rでも同じようになるし。

と、なると、今度はどういうタイミングでなるのかということを調査するしかないと。

まず、いつでも起こるかというと、「いつでも」ではありません。たとえば、以下の順で再生を行います。

  1. 1曲を再生する
  2. 曲の途中で音飛びがあったら、数秒戻して聞き直す

ところが、同じところであっても音飛びは起きないんですね。

じゃあ、というわけでその2。

  1. 1曲を再生する
  2. 曲の途中で音飛びがあったら、その曲(ファイル)の最初に戻って聞き直す

これでも起きません。

うむむ、というわけでその3。

  1. アルバム(ディレクトリ)を再生する。
  2. 初めて音飛びをした時点で、アルバム(ディレクトリ)の最初に戻って聞き直す

これは再現性があります。大体、はじめの音飛びが起こるまでが約8分。ファイルにして3曲ぐらい。この間もずっとバッファにデータを取り込み続けているので、駆動部分的な理由とは思いがたいです。

となると、推測される理由としては、

  1. CDサブシステムが再生用バッファ(メモリ)にデータを書き込み続ける。
  2. そのうち、バッファの最大長をちょっと越えて書き込んじゃう(これがちょうど8分)
  3. でも、すぐにバッファのはじめの位置に戻り、つづきを書き込む
  4. 最大長を越えちゃった部分(ちょっと)だけ音が飛ぶ

かなぁ。

ちょうどMP3で再生していると、バッファの最大長が480secらしいので、60で割ると8分。うーん、バッファがリング状になっているだろうから、そのループするタイミングがちょうど音飛びの位置なのかと考えると、微妙につじつまが合います。

いや、最大長がどうのじゃなくて、単にループするときにアドレス計算を間違ってるだけかも知れないけど(^^;)。

後は、推理を補うためにこういうテストをすればいいのかな?

(その1)

  1. 10分以上ある曲を聴く
  2. 2回聞いて、同じところで音飛びが起こるか?

(その2)

  1. ディレクトリ内の1曲目以外から連続して聞く
  2. 再生開始から初めて音飛びするまでの時間が同じか?

(その3)

  1. 30分以上聞き続ける
  2. 音飛びをするタイミングが定期的か?

……って、原因究明したところで、解決策がある訳じゃないんですが(^^;)。

あ、それとは無関係にTimedomain miniはいい音です。しみじみ聞いているとやっぱりいいスピーカーですね、これ。

曲によっては全然ありがたくない上に、あまりに自然なので、ずっと聞き続けているとますますありがたみが薄れてきますが、たまに書斎で肩掛けスピーカー(そんな物を愛用しているですよ(^^;)。訳あって)で音楽を聴いたりすると、あまりの音の聞こえ無さ加減に愕然としますね。

人間の感覚は大体「慣れ」によって均されてしまいますが、オーディオって特に慣れるのが早いので、ひどい音でもずっと聞き続けていると何となく「そんなものか」と思えてきますし、すごい音でもずっと聞き続けていると「これがふつー」と思っちゃうから感動が薄いですよね。どのみち客観評価も、絶対評価も出来るような物ではないんですけど。

[]オーディオ評論

……って話を上に書いたら、ITmediaで小寺さんが似たようなことを(もっと判りやすく)書いていたので悔しいからリンク

……滅びるよなぁ、やっぱり。

*1:微妙に間違っていました。詳しくはid:Florian:20040418#p4参照のこと

sumimsumim 2004/04/14 17:53 いえいえ。そのままあわてずに Foo := Foo class と逆のことをすれば無問題です。

FlorianFlorian 2004/04/14 18:42 classメッセージ……おお、そのインスタンスの保持するclassクラスの値を戻り値とするんですね。なるほど。

FlorianFlorian 2004/04/14 18:43 Foo := Foo class.後に一度システムブラウザを閉じてからシステムブラウザを開き直したら治りました。ありがとうございました(^^)。

abeeabee 2004/04/16 21:45 special kernelですが、私は「カーネルの入れ換え手順」通りで問題なくできました。不思議ですね。

FlorianFlorian 2004/04/17 02:37 私が悪うございました>Special kernel

FlorianFlorian 2004/04/17 02:38 zImag(スペルミス)でした。最後の「.bin」を削ったとき、ついでに1文字消しちゃってたみたいです。

2004-04-11 ちゅうの本が飼える

[]Squeakプログラミング入門(ASIN:4434043307)

新宿の紀伊国屋にあることが分かりました。どうせ都区内に出る必要があるし、ザウルススタイラスが(また(^^;))折れてしまったので、買い出しがてら行ってこようかと。

・・って、スタイラスはわざわざ新宿まで行かなくても買えるんですけど、近所のヨドバシに行った時に買いそびれちゃったので、忘れないうちに。ちなみに、近所のヨドバシには「Squeakプログラミング入門」は入荷すらしていませんでした。別の本を探して入った三省堂にも、有燐堂にも、リブロにも、大正堂にも入荷していませんでした(あ、有燐堂は別の店舗には入荷してるとか言ってたな)。うーん、さすがに一般の本屋さんにはこの手の本は入りづらいかなぁ。

[]Squeak雑感

せっかくなのでおおしまさん(id:squeaker)のLinuxZaurus版Squeak+Squeak3.6(英語版)で通勤電車Squeakをしている感想を。

  • 重い

そりゃ重いですね、当然です(^^;)。LinuxZaurusのCPUパワーと、SDカードスワップを考えれば。

特に、ワークスペースやブラウザを引っ張り出す時、ドラッグしたまましばらく待たされます。引っ張り出さないで済むように常にワールドに最小化状態で置いていますけど。

それよりも、単なるループをしようとするだけでも非常にフレームレートが低いのはなぜなんでしょう?Morphをsteppingを使ってアニメーションさせてもそんなにフレームレート低くないのに。

ループって、例えばこんなのです。

1 to: 5 do: [ :a | Transcript show: a value ].

・・うろ覚えで書いたけど、これ、動くのかな(^^;)?

  • 小さい

小さい液晶に640x480という高解像度がZaurusの売りなのですが、小さくて何がまずいって、あちこちのアイコンがとんでもなく小さくなるのですね。ウィンドウの上についているアイコンも、ハローも(どうでもいいですが、Squeak公式っぽい日本語では表記は「ハロー」みたいですけど、英語Haloの発音はheilouのような・・)。

見るだけならば、小さくても、まぁ、何とかなるのですが、 Florian のZaurusタッチパネルのキャリブレーションが今一つらしく、よくアイコンのタップやドラッグに失敗するのですよ。

あと、ブラウザの各項目の大きさを変更する仕切り線と、メニューボタンが隣接しているので、よくタップミスをします。おかげで、どこかの項目だけやけに小さくなったりします。

  • 見づらい

電車の中みたいな薄暗い環境で電池を気にして暗くしているのが一番の敗因なのですが、いろんなものが見づらいです。

フォントは、大きくしました。でも、キャレットの太さと色の変え方が分からないので、キャレットをよくみうしないます。フレームレートが低いので、カーソルキーをオートリピートすると致命的(分かってるならするな(^^;)>自分)。

  • 電池がなくなる

往復の電車Squeakしていると、帰りには電池がなくなります。

・・はっ、これは、 Florian のSL-C700の電池がへたってきてるせい(^^;)?


ともあれ、大変楽しくSqueakしています。教則本を片手にあれこれ試すのはいくつになっても楽しい物ですね(^^)。

[](追記)Squeak雑感つづき

珍しくPC上でSqueakを立ち上げたら、先ほど書いた「見づらい」を回避する方法がすぐ見つかりました。

Worldで左クリック->Appearance..->insertion point color

あー、キャレットのことを「インサーションポイント」っていうんね。なるほど。

[]Squeak雑感に対する返答(id:squeaker:20040410#p3)

おおしまさん、返答ありがとうございます。

  • CPUパワーについて

LinuxZaurus使って長いので、PXA250のキャッシュバグはあちこちで聞いたことあります。うー、物理メモリの兼ね合いもあるし、いい加減750以降に乗り換えるのが得策なんだろうなぁ。何せ、Squeak以外でも「重い」以外には特に不満を感じてないので、踏ん切りが今ひとつ……。

「比較的納得のいく」速度は気になるんですけど。

  • フレームレートについて

具体的には、以下の2点です。

  1. 単なる単純ループで「ループしてるのが見える」ほど遅いのはなぜだろう?
  2. ループがそんなに遅い割にはもっと複雑なことをやっている(はず)のGUI関係の処理はそんなに重くないのはなぜだろう?

現代の処理系に於いて、割合プリミティブな処理が表から見える形で進むほどの速度ということはほぼ考えられないので、一体どういう事なのかというのが気になったのでした。

……待てよ?

b := 0.

Transcript show: 'start'.

1 to: 200 do: [ :a | b := b + a. Transcript show: b value.].

Transcript show: 'end'.

遅いよなぁ。

b := 0.

Transcript show: 'start'.

1 to: 200 do: [ :a | b := b + a.].

Transcript show: 'end'.

……速いじゃん(^^;)。すいません。VMの処理速度じゃなくて、"Transcript show:"に1フレームかかるんですね。上の処理に限っていうと、Transcriptに対して一時的にdrawOn:を抑制させてやれば速くなりそうですね。

  • Haloについて

Halo(後光)は、あちこちで使われている日本語で「ハロー効果」とかいうものが既にあるみたいですね。思わず調べちゃいました。

だったら無理に原語に近い発音に矯正する必要はありませんね。オードリー・ヘップバーンさんはいつまでも「ヘップバーン」な訳ですし(変な例え(^^;))。

  • 電池の減り

おお、何か当てがあるのですね。楽しみにしています。

いや、C760やC860を買えば個人的には問題は解決しちゃいそうな気はしますが(^^;)。

[]Squeakプログラミング入門

飼えました。案の定新宿の紀伊国屋以外では売っていませんでした。コンピュータ専門書のコーナーにはなぜか無くて、倉庫からわざわざ店員さんに持ってきて頂きました。入荷したばっかりだったのかな?

しばらくは行き帰りが楽しそうです(^^)。

[]スピーカー

某所でLogicool SoundMan G1(SP-40)(http://www.logicool.co.jp/products/speakers/sp_40.html)が素晴らしいという話を聞いて、ちょっと気になってたり。……って、ヨドバシ行ったんならなぜ聞いてこないねお前は>自分

さすがにJBLHPプラチナスピーカー(ASIN:B0000AJ61F)は、店頭では試聴機につながっていないでしょうけど、これも気になってるんだよなぁ。HPパソコンはどうせたくさんあるんだし、どこかにはつながってると良いんだけど。

と、外出するとき、いろいろやるべきことが抜け落ちる今日この頃です。記憶力落ちたなぁ。もう少しまじめにZaurusメモを書こう。

ところで、またスピーカーを買うのかね(^^;)? というか、買ってどこに置くだね。

abeeabee 2004/04/13 20:13 お買い上げありがとうございます。C700を買い換える前にspecial kernelを一度お試しください。

2004-04-09 ネズミ飼いの本を飼いたい

[]Squeakプログラミング入門

Squeakプログラミング入門」という本が出ています。よく行く都内某所のデパート本屋さんには入荷していませんでしたが。そもそも入荷予定がないらしい。そんなぁ。

うーむ、前回「Squeak入門」を飼ったときと同じジュンク堂まで行けば確実にあるんだろうなぁ。とはいえ、お買い物をしに遠征出来るほど時間に余裕が無いんだよなぁ(;_;)。

あ、ちなみに、先の都内某所の本屋さんには「Squeak入門」はおいてありました。前にはなかったのに。出版後暫くたってから入荷って事は、その筋で話題になったのかな?

sumimsumim 2004/04/09 18:06 オンラインブックストアはお嫌いですか?

FlorianFlorian 2004/04/10 01:34 受け取る方法さえあれば、アカデミアネットワークでSqueakersと、実践Squeakers教室といっしょに頼むつもりでした。いかんせん、自分が普段オフィスにいないからなぁ(^^;)。

sumimsumim 2004/04/10 07:23 アカデミアならヤマトのメール便なので(私のはまだ届いていませんが、そのようです)受領印は不要で、指定した住所(ご自宅かオフィス)のメールボックスにいれてくれるはずです。

2004-04-06 MP3プレイヤーつづき

[]EG-CDP1000その後

忙しいと音楽が心にしみるよね。と言うわけで、謎のCD-MP3プレイヤーEG-CDP1000、買ってこの方ずっと大活躍しています。ずっとTimedomain miniがつながりっぱなしです。

ボタンが堅かったり、ボタン意味が再生中と停止中で違ったり、ローディング直後にいきなり再生し始めたり(せめて、再生モードとディレクトリだけでも指定させてくれぇ(;_;))、使いづらいには確かに使いづらいのですが、少なくともLet's NOTE R1ののDACとアンプに比べればずっと腰のある音が鳴ります。……って、省電力ノートPCのおまけサウンドチップと腐ってもオーディオ機器を比べるなって(^^;)。

あ、いや、4年落ちのPanasonicのポータブルCDプレイヤーに比べても、決して悪くはないですよ。少なくともLine-out端子を使っている限りは。前述したとおり、ヘッドホン端子は聞くに耐えない音ですけど。

意外だったのが、MP3CD-DAで聞き比べてみても少なくとも今 Florian が使っている音響設備ではほぼ違和感がなかったこと。まぁ、この手の組み込みMP3デコーダー(多分ASICかレディメイドDSPで実装してるんだろうな。コストを考えると、汎用CPUでやってるとは思いがたいし)がそんなに音質を犠牲にしているわけはないのですが、それでも Florian の耳腐ってるのかなぁ、とかついでに思ってみたり(^^;)。

ちなみに、WMAは使ってないので、その点の音質についてはよく判りません。 Florian はおたくなので、詳細の判らない技術はありがたみがないので使えないのですよ。ヒントでもいいのでWMAエンコード技術を解説してるところ、ないかなぁ。

そう言えば、今のPanasonicCDプレイヤーって、MP3対応のも含めてデジタルアンプ搭載なんですね。PanasonicのLSIの図を見ている限りでは1bit-DPCMのアンプみたいなので、SHARPの1bitデジタルアンプに大変感心した身としてはちょっと聞いてみたかったり。

結局違いが分からない可能性はありますけど(^^;)。

[](追記)

あ、書くの忘れてた。

なぜか、BeatJam XXTremeでエンコードして、B's recorderで焼いたCD-RWMP3(128kbps/CBR)では、たまに音飛びします。

他の組み合わせのものは試していないのですが、MP3で音飛び? なぜ?

KJKJ 2004/05/06 12:42 はじめまして。EG-CDP1000 の最近、購入者です。購入前に、参考にさせて頂きました。『>MP3で音飛び?』 で少々不安でしたが、車載利用ですが、今のところ音飛びは、ありません。ヒマなとき、また覗くかもしれません。よろしくお願いします。(^^)

2004-04-05 ASTROBOY鉄腕アトム(PS2)/SEGA,SONICTEAM

タイトルが被るんだなぁ。ま、いいや。

[]ASTROBOY鉄腕アトム(PS2)SEGA,SONICTEAM

Havoc2を採用した国産初のゲームということで興味をもって買ってから幾星霜。なかなか遊ぶことができずにいましたが、ちまちまやってつい先日クリアしました。

いや、元から期待していた訳ではないんですよ。キャラ物だからとか、子供向けだからとかそういう理由ではなくて、純粋に開発期間とゲームの規模の兼ね合いの話で。

だって、セガ手塚プロの提携の話があったのが去年の5月。発売が3月だから、プレスの期間も含めて10カ月。純粋に開発期間で言うと8カ月を切るぐらいの間に、PS2でコンシューマレベルに作り込まれた作品ってのは、さすがに無理があります。あ、もちろん Florian がふだん作ってる作品はもっと早いですよ。でも、コンシューマの一般的なリソース量とは結構差があるし。

で、遊んでみた感想を。

  • 個人的にはおもしろかったけど、人には薦めづらい。

これですね、うん。

なにせ、力学的物理シミュレーションのHavocを使っているので、ゲームのあちこちにむだに世界を感じます。風が吹けば風の軌跡が空間の埃で感じ取れるし、その辺に落ちているいろんな物体に触れば、触った影響があちこちに伝播していくし。

グラフィックだってかなりいい感じです。フォーカルブラーとLOD(Level Of Detail。ソニックチームの人はLevel Of Distanceって言ってたけど)を駆使し、逆光やHDRによるヘイローもきれいに見え、何より、等身大の空中都市を、「きちんと大きい物」として書き切ったデザインと技術はかなり衝撃を受けます。都市がおもちゃのように見える空中から、吹き抜けの歩行者デッキに降りると、何事もなかったかのように人が歩いているのも、世界全体のスケールと人のスケールを考えるとかなりすごいです。

その辺を歩いている人はアニメ風味のシェーディングなのに、アトム達はスペキュラーやら環境マッピングまで使いまくってツルツルなのも、意図的にやっていると判れば確かに現実をどのレベルで捕らえているのかが判っておもしろいですし。

音楽だって悪くないです。PSO小林さんがアニメBGMを元に編曲した音楽も、レコーディングや音場に気を配ったいい曲ばかりです(個人的にはメトロポリス昼間のピアノが好き(^^))。タイトルとかで流れる主題歌サキソフォン版は今一つですが、これは、メロディーがインストに向いてないからでしょうし。開発スケジュールのせいなんでしょうけど、個人的には「光の道」の方がよかったなぁ。・・って、「光の道」だとメロディーがあちこちのジングルに使いづらいか。

操作感もおもしろいです。マクロスもそうだったので、セガの芸風かもしれないのですが、ゆっくり移動する時には左レバーは平行移動成分を扱い、高速移動する時には左レバーはヨーとピッチを表現するというモード分けの操作になっています。どちらの状態でも、基本的に判定とかは変わらず、なおかつ高速移動状態ではばっちりアシストが入るので、操作に幻惑されることもあまりありません。なにせ、パワーがある時には高速移動ボタンを押しっぱなしにしているだけで特定の敵に対し自動的に加速をつけて体当たりし続けるのですから、ゲームに詳しくない人でも何か爽快な気がします。

個人的にはボス戦もおもしろかったですが、やっぱり白眉はメトロポリスのリング潜りですね。

ナイツを三次元機動にするとこうなるんだろうなと言うすばらしい自由度の空を飛ぶ感覚に、きちんと等身大のマップが遥か彼方まで見渡せるというぜいたくな作り。加速リングをくぐった時の目が回る感覚も捨て難いです。

にもかかわらず。

ゲームとしてはかなり微妙です。

多分、ボスとの戦闘をゲームの中心にもって行こうという意志が始めはあったのでしょうが、つくっているうちに気づいちゃったんじゃないのかなぁ。ボスだけだと、ゲームが短すぎで淡泊って事に。

(ここから先は妄想です。念のため)

で、仕方がないのでいろいろご褒美をつけることに。

本来ならばつける予定のなかった「カードのコレクション」を急遽でっちあげ、これに付随してお話をつなぐくらいの意味しかなかったメトロポリスのシーンや、お茶の水亭などにカードを隠すための仕掛けをたくさん用意して。とは言っても、ゲーム本編を下手にいじるとボスとの戦闘という一番の骨格にひびが入ってしまうので、シナリオスクリプト上のちょっとした細工だけでカードのクエストを実装したり。

・・そう考えると、ゲームにちっともからんでこない「犬の話を聞く」だの「なぞ文字解析」だの「100万馬力」だのが無理やり入っていたり、コマンド選択戦闘やら、100まで数えるやら、大気観測やらが無駄に入っているのも、「ここは無視してください。ホントは入れたくなかったの」という製作者の叫びが聞こえてくるかのようです。

後半のマップの「道中」が単調で無意味に長いのも、カードを取らせるためと、プレイ時間を長くするための苦汁の選択だったのでしょうし。

ここはやはり、見てほしくないだろう部分はサクッと無視して、力がかかっている部分だけでもきちんと見てあげるのが筋かなぁ、と。

遊べる部分と、遊ばせるための準備と、無駄な時間稼ぎの部分がそれぞれちぐはぐなため、結果的にどこをどう遊べばいいのか分からなくなった不遇のゲーム

鉄腕アトム」(PS2)は、そんなゲームです。

同じような技術を使った、キャラのからまない(もうちょっとスケジュールに余裕のある(^^;))ソニックチームの新作を見てみたいです。

きっとおもしろいと思うんだけどなぁ。

2004-04-04 Beepを飼う

エイプリルフール総括

はてなでも気がついたら「ブログ」になっていたエイプリルフールでしたが、 Florian 的に大受けだったのはこれでした。

Mondara MNU/Linux

http://www.mondara.org

……仮名漢字交じりで書きづらい辺りが何ともです(^^;)。わざわざこのためにドメインとったのかぁ……。ジョークRFCを片っ端から実装している(事になっている)のもなかなか。

でもしかし、もむのかぁ……。うーむ。来年の「くにゅ」ってのはどういうオノマトペなんだろうなぁ。

おかまの日

から内挿して、

  • 4/4:おかまの子の祭り

……って言い出したのは、どこのどいつだろう(^^;)?

Beep復刻版

ええもう、ばっちりBeeperでセガ人でしたので、買わざるを得ないというか何というか。

裏話を見るのがすごくおもしろかったです。正直、記事そのものはどれもこれも覚えているし(^^;)。……っていうか、よく覚えてるなぁ、私。

後半、すごくつまらなくなった理由も解明されたし。外部編集プロダクションによる無難な雑誌になったんね。なるほど。

ソノシートは、ナムコ関連のものが軒並みハズされていたのがちょっと残念。アサルトのアレンジ、もう一度聞きたかったな。

hirata_yasuyukihirata_yasuyuki 2004/04/05 07:42 MNU ⇔ KNU ということでお察しください。:)

FlorianFlorian 2004/04/05 15:24 やっぱり……苦乳?(あくまで感触だと思いたくないらしい(^^;))

2004-04-02 さくら

とはいっても、NHK地上波CCさくらの再放送が始まった話とかじゃなくて(^^;)。

さくら

Florian 宅の近くにも、仕事場の近くにも、電車から見下ろす景色にもピンクが目に飛び込んでくる今日このごろですが、しみじみ考えると桜って一年にほんの数週間だけ派手な色になり、残りは全部緑というある意味地味な木なんですよね。

いや、まぁ、樹木ってのは多かれ少なかれその傾向はあって、派手な色で主張するのは、花の季節か紅葉の季節だけですから、残りの季節は地味な緑か、裸木かで過ごす形にならざるを得ません。

そう考えると、街中に植えてある木のうち、割合的にかなりの数が「桜」であると考えると、春以外の季節は花などが見られる時間はほとんど無いという、ある意味片寄った分布になるんだろうな、と思って見たり。

都市生活者の生活のめりはりをつけるために、意図的にある時期に集中するように植栽計画を立てているのか、それとも、植栽計画的には季節感を感じられるように均等分布させたいのを、日本人の桜好きがぶち壊しているのか。

どういう意図が働いているのかちょっと知りたい今日このごろです。

・・それとは無関係に花見はするけどね。今日の夜は晴れだそうで。よかったよかった(^^)。

2004-04-01

暮らしのパレット

一部方面で話題沸騰中の「暮らしのパレット」ですが、今月(群青)は今までに比べればかなりまともな文章でした。

いい文章とは言い難いのですが(えらそう(^^;))、一応話の筋はとおってるし。

やっぱりクレームついたのかな?

今日の教訓

  1. 48倍速のCD-Rを4倍速のドライブでかいたものを、古いCDドライブで読んでは行けない。
  2. 数年火をいれてなかったハードディスクは信用するな。
  3. ハードディスクから異音が出たら、素直にあきらめろ。

・・がらくたPCLinuxを入れるには、やっぱりこつがいるなぁ。何せ7年物だし・・。

 |