聞き取りくん

1999年7月 長嶋洋一


RE:[Q] 簡単な補間方法 98/06/28 07:51


> センサーからの入力を一度 MIDI にしたものを受信すると、かなり粗いデータ
> として受け取ることになります。これはこれで途中の負荷が軽くなっていいの
> ですが、用途によっては粗すぎる場合があります。
> 
> こうした場合には、何らかの方法で補間してやればいいのではないかと思うの
> ですが、簡単に計算できる補間方法というのはどのようなものがありますでしょ
> うか。

うーーーん、僕はとりあえず線型補間ぐらいでお茶を濁して、2次とか
難しいやつは誰かにお願いしましょう。(^_^;)

もっとも簡単なのは、線型補間でしょうね。
データとデータの間を等間隔で補間するものです。


こんなカンジです。等幅フォントで見て下さい。#が入力データ、
その間を*のデータが、ここでは3ビット補間で7ポイントに
わたって入れています。生データと合わせて8ポイントです。

これは、たとえば3ビット8ポイント(n=0-7)なら、

  nポイント目の補間値 = 前回値 + n*(今回値−前回値)/8

という計算でいいわけです。4ビット16ポイントなら上式の8が16に
なります。今回値そのものは、次の値が得られた時の最初の値(n=0)と
なります。

ただし、ここまでは静的なデータというか、統計解析みたいにノンリアル
タイムの場合の話で、MIDIセンサもののような場合には、そう簡単では
ありません。

センサのようにリアルタイムにMIDIデータをもらう場合には、上の方式
では二つの課題があります。

(1)本当の「現在データ」はその瞬間には得られない

この補間とは、前回値と今回値との差を等間隔に補間するので、常に
現状の後追いとなります。今回値そのものは上式だと次回値が得られた
時にやっと、n=0の値として得られるのです。
データに変化があった時にのみMIDIで送る、というようなタイプ
のセンサの場合には、まぁMIDIが来ないということは変化がない
のですからいいとも言えますが、補間のための今回値が来ないので
いつまでたっても、最新のデータそのものの値は出てこないことに
なります。

(2)時間的に補間する機構が必要

センサ側が、データの変化があってもなくても、その内部のタイマに
従って、たとえば50msecに一度(毎秒20サンプル)というように
データを送ってくる、というような仕様であれば、リアルタイムに
補間するのはかなり楽です。ただし、データへの追従は常に50msec
の遅延がある、ということになります。
一般に僕が作るようなセンサだと、データに変化がない、あるいは
変化が一定のスレショルド以下の場合には、MIDIを送りません。
こういう場合、受け手のシステム側で等間隔の時間枠を作って
やらないといけません。内部のタイマで基準時間を刻んで、
新しい今回値が来たら、前回値との時間差を計算して、これを
補間するポイント数で割って、時間軸を決めます。あるいは等間隔
のポイントにする、ということなら、補間ポイント数が可変となって、
その都度計算することになります。

       *   *   *

知的伴奏リアルタイムものの場合には、もっと別のアプローチが必要に
なります。人間の演奏者からの情報に反応してセッション伴奏する
システムの場合には、上記の補間では遅いので、「予測モデル」が
必要になります。つまり、過去の値の変化から今度は外挿して
「次の値」を予測して、これに向かって補間した値を、同時刻で
生成していきます。実際の新しいデータが来ると、予測していた
値との相違を盛り込んで補正し、次の予測データに反映させます。
突然に演奏をブレイクしてフェルマータ(^_^;)、みたいな急激な
変化でなければ、刻々と届く音楽演奏情報に対しては、これは有効
です。

いまICCに常設展示されている、前林さんのインスタ作品のために
僕が作ったセンサでも、プレーヤに取り付ける心拍センサの内部
のAKI-80のソフトウェアでは、たまたまある心拍データを落とした
時に不整脈にならないように、前回までのデータから予測している
今回の心拍イベントを補って送るようにしています。心拍は、
それほど劇的に変化しませんので。(^_^)

...ということで、2次以上の補間とか、別のスプライン曲線
での補間とかは、誰かお願いします。(^_^;)

もろもろです 98/07/21


このところ、ひょんなことから、realBASICというのにハマッています。
いやー、こんな簡単にMacのアプリが作れるとは思いませんでした。
世の中、進歩していますねぇ。(^_^;)
さすがにMIDIを直接いじるのは無理だと思うのですが、モデムポート
経由でMIDI処理する手だてを考えているところです。

> ここで話題になるような内容を、研究している・扱っている
> 海外の(特にアメリカ)大学にはどのようのところがあるでしょうか?
> 一応インターネットであちこち検索しているのですが、多くて・・・。
> 「この大学(研究所)を調べると面白いよ」という、おすすめのところが
> ありましたら、お教えいただけると幸いです。

とりあえず確実なのは、ICMAのホームページに行って、そこからComputer Music
関係の研究機関などのリンクに行くことです。僕はこれ以外の方法を知りません。

http://www.dartmouth.edu/~icma/

から入れます。ここから捜してみたらいいと思います。

> まずAKI-H8及びマザーボード組立ました。まだ手元にAKI-H8/80の
> 本体キットしかないので。説明書どおりに作って、MBTESTを動かして
> みたら、あっさり動きました。取りあえず組立は成功のようです。

はい、これは幸先いいですね。(^_^)

> 次は8ch汎用A/D入力MIDIセンサに挑戦してみようと思う
> のですが、例の肝心なMIDI入出力に使う部品がまだ手に入っていません。
> 日本から来るのを待っていても良いのですが、いちいち部品が無い度に
> 日本に頼むのも何ですから、なんとか代用品を探したいと思っています。
> と書いたところで昔作ったMIDIインターフェイスの事を思い出しました。
> さっそく箱開けて覗いてみると、、、ありました。フォトカプラーは
> 6N138とか書いてあります。あとHEF4049BPとか言うのが見えるん
> ですけど、作った時の資料を見てみるとhex inverting bufferとか書いて
> あります。これって74HC05と似たようなもんなんでしょうか?

フォトカプラについては、なんとも言えません。MIDIのスピードは
それほど早くないのですが、工業用にはもっと遅くて使えないものもある
ので、カタログで立ち上がり時間、立ち下がり時間を調べて、少なくとも
100ns程度以下であるものを捜して下さい。

4049は普通のインバータです。これでは駄目です。4049は確かピン配置も
ヘンでしたよね。(^_^;)
ピン配置が05と同じ「インバータ6個入り」というのは、04、4069など
がありますが、これらも駄目です。(^_^;)
MIDIの出力は、オープンコレクタとかオープンドレインとかいうタイプで
電流を吸い込む必要があるのです。どうしても、という場合には、
トランジスタでも代用できますが、スピードの点でお薦めではありません。
ヨーロッパでも05はあると思いますが。74HC05でなく、74LS05とかでも
使えます。74ALS05、74F05、74S05、7405(^_^;)、などでもなんとかいける
かなぁ。(^_^;)

AKI-H8によるRS232C-MIDI変換器 98/07/21


realBASICというMac用のお手軽アプリ開発環境(シェアウェア)を
入手して遊んでいたところ、コントロールに「シリアル」というの
がある事が判明しました。そこで、自分で作ったMacアプリでMIDIを
モデムポートから処理できるように、RS232CとMIDIの双方向、バッファ
は全て512バイトのFIFOでバッファリング、というのをAKI-H8で
作りました。例によって昼前にこのアイデアを思い付いて、夕方には
完成しました。開発環境も実行環境もPowerBookです。(^_^)

機能としては、RS232Cはとりあえず19200のスピードで、
 ・MIDIを受信するFIFO
 ・これをMacのRS232Cに送るFIFO
 ・MacからのRS232Cを受けるFIFO
 ・これをMIDI送信するFIFO
の全てに512バイトでバッファリングしているので、けっこう安心
できます。今の気分としては、OMSより安心できます。(^_^;)

これで、既にrealBASICのアプリで、ウインドウ内のスライダーぐりぐり
でMIDI送信したり、となりのPowerBookのMAXからぐりぐり送った情報
で画面内に16進表示などしています。さてさて、何を作りましょうか。
まだrealBASICプログミングは始めて2日です。もうオンライン送金した
ので、早くレジストのキーを連絡してきて欲しいです。いま試用期間中。

電池は006P内蔵、ここにMac用モデムケーブルとMIDIの入出力ケーブルが
出ていて、ケースの大きさは 103mm * 60mm * 28mm です。けっこう小さい
でしょう。AKI-H8は入れるためにカットしています。(^_^;)

考えてみると、これがあれば、UnixマシンでもWindowsマシンでも、
同じように自分のソフトがシリアルポートとのやりとりでMIDIできる
わけですね。希望される方がいれば、回路図とソフトを公開します。
ちなみに回路はとっっっても簡単です。焼き込み用のポートをそのまま
RS232Cに使うというのは、面白いですね。AKI-H8の開発用のPowerBook
から、一度もモデムケーブルを抜かずに本番の動作確認までできました。

では回路図とプログラムです(^_^) 98/07/22 07:47


> >>考えてみると、これがあれば、UnixマシンでもWindowsマシンでも、
> >>同じように自分のソフトがシリアルポートとのやりとりでMIDIできる
> >>わけですね。希望される方がいれば、回路図とソフトを公開します。
> 
> 4系統の独立バッファの部分だけでもおいしいですよね。さっそく希望者1名(^^)/
> よろしくお願いします。m(_O_)m

そうですね、単純なFIFOバッファでなく、MIDI受信、RS232Cからの受信
ともに、MIDIメッセージとして意味を持った時にまとめて送信FIFOに出す
ようにしているので、ゴミデータなどは捨てられることになります。(^_^)
ただし、ランニングで来ているデータは、いちいち明示的にステータスを
足して出しますので、データ量が増えることにもなります。(^_^;)

では、せっかくですので忘れないうちに(例によって何も書かずに作って
しまいましたので)、ドキュメント化しておきましょう。

抵抗とかICとかの部品はテキスト画面では表現できないので(^_^;)、
■であらわします。「等幅フォント」でご覧下さい。
図中の「+」「+」は、接続する、という意味です。

電源とGNDのピンは省略しています。以下のものです。かならず+5Vラインと
最寄りのGNDとの間に、全数、105のパスコンを入れましょう。(^_^)
<+5V電源>
 ・AKI-H8の「+5V」(Powerではありません)のpinいずれか
 ・TLP552の8pin
 ・74HC05の14pin
<GND>
 ・AKI-H8の「GND」のpinいずれか
 ・TLP552の5pin
 ・74HC05の7pin
ちなみにTLP552と74HC05のピン番号は、上から見てへこみのある部分の左隣端
が1pinで、あとは反時計回りにインクリメントされます。AKI-H8は基板に
書いてあります。

AKI-H8ですが、マニュアルに従って製作しますが、唯一、MIDIで使う場合には、
以下の改造が必要となります。ちょっとだけ細かい作業ですので注意して
行って下さい。
############################################
●AKI-H8をMIDIに使う場合の改造
 シリアルポート0をRS-232CのICから切り離して、直接、CPUの
 ポートとして使います。このため、MAX232(相当品)のフラット
 パッケージの11,12ピンを、ICの根元でカットして、プリント
 パターンと分離します。プリントパターンはそのまま使うこと
 になりますので、基板上のパターンを傷つけないように、ICの
 足だけ切除してしまって下さい。足は浮いたままでいいです。
############################################


AKI-H8のプログラムは、最初にはROMライタキットまで入ったものを買って
マニュアルに従って製作し、以下のプログラムをRS232Cから転送します。
プログラム(FLASH.EXE)も付いています。PC98用の1.2MBディスクなので
注意して下さい。僕はここが一番苦労しました。(^_^;)
インテルHEXでなく、モトローラS形式のファイルです。これをFLASH.EXE
で転送して焼いたら、もう完成です。(^_^)
以下の===============で挟まれた部分を切り出して、転送して下さい。
2台目以降は、基板だけの安いキットで量産できることになります。(^_^)

============================================================
S00E0000466C617368524F4D4D4F5426
S107000000000100F8
S10B00D00000028C00000296FF
S10B00E0000002C6000002D07B
S11301007A07000FFF0F7A02000FEF1079010FE05B
S1130110F80068A80B721B5146F85E00014A5E00A6
S11301200166F8FF38D45E000226F87038B238BA98
S1130130067F5E00024A5E0001865E0003005E00E9
S113014001D65E0003D25A000132F80038B2F8003B
S113015038B0F80F38B1790001F41B5046FC28B4CD
S1130160F80038B45470F80038BAF80038B8F81901
S113017038B9790001F41B5046FC28BCF80038BCA0
S1130180F80C38F854706B01EF1A6B06EF1C1D1650
S11301905860000254707EB473705860000254704B
S11301A0790E000078606A28000FF60038B37FB438
S11301B072700B5672166B86EF1C54706B06EF1A37
S11301C0790E000078606AA0000FF6000B567216D5
S11301D06B86EF1A54706B01EF226B06EF241D162A
S11301E05860000254707EBC7370586000025470F3
S10701F0790E000081
S11301F478606A28000FFA0038BB7FBC72700B5614
S113020472166B86EF2454706B06EF22790E00008E
S113021478606AA0000FFA000B5672166B86EF2201
S113022454707A01000001F45E00023A7A3100004E
S1130234000146F454707A02000008007A32000088
S1130244000146F854706B01EF100B516B81EF10F2
S11302545870000254706B01EF120B516B81EF1253
S11302647921005058600008790100006B81EF1276
S11302746A08EF300A086A88EF306A08EF31717848
S11302846A88EF3138D654707FB472507FB47240A9
S113029456706DF001006DF57EB473607FB47260C7
S11302A46B05EF16790D000028B578506AA8000F86
S11302B4F4000B5572156B85EF1601006D756D70A7
S11302C456707FBC72507FBC724056706DF0010053
S11302D46DF57EBC73607FBC72606B05EF1E790D98
S10702E4000028BD2E
S11302E878506AA8000FF8000B5572156B85EF1E3E
S11302F801006D756D7056706B01EF166B05EF1885
S11303081D15586000025470790D000078506A205A
S1130318000FF4000B5572156B85EF187370587046
S113032800340C08E8F8A8F8586000025470E8F0A4
S1130338A8F058600008F8006A88EF2654700C0883
S1130348E80F6A88EF270C08E8F06A88EF26F800B8
S11303586A88EF2854706A08EF26586000025470C0
S1130368A8C05870001AA8D0587000146A09EF285A
S11303785860002A0A096A89EF286A80EF295470AD
S11303886A80EF2A6A09EF2714980C805E00020C32
S11303986A00EF2A5E00020C5E0004A45470F100A8
S11303A86A81EF286A80EF2A6A09EF2714980C807C
S11303B85E00020C6A00EF295E00020C5E0004A4D2
S11303C86A00EF2A5E00020C54706B01EF1E6B0586
S10703D8EF201D15DD
S11303DC586000025470790D000078506A20000FA9
S11303ECF8000B5572156B85EF2073705870003441
S11303FC0C08E8F8A8F8586000025470E8F0A8F06C
S113040C58600008F8006A88EF2B54700C08E80F4A
S113041C6A88EF2C0C08E8F06A88EF2BF8006A88DE
S113042CEF2D54706A08EF2B586000025470A8C06B
S113043C5870001AA8D0587000146A09EF2D586030
S113044C002A0A096A89EF2D6A80EF2E54706A809C
S113045CEF2F6A09EF2C14980C805E0001BC6A0024
S113046CEF2F5E0001BC5E0004A45470F1006A819E
S113047CEF2D6A80EF2F6A09EF2C14980C805E0025
S113048C01BC6A00EF2E5E0001BC5E0004A46A008E
S113049CEF2F5E0001BC54706A08EF310C8AEA80BE
S11104AC0C02E27F14A26A82EF3132D6547042
S9030100FC
============================================================

これで何か面白いものを作るのは出張の新幹線内の楽しみにとっておいて、
今日はこれから終日、IndyとKymaと格闘する予定です。(^_^)

3日間途絶します(^_^;) 98/07/29 06:41


去年の家族旅行は屋久島・縄文杉でしたが、今年は今日これから、
富士山に登ります。梅雨明けしていないので天気がどうも不安では
あるのですが。(^_^;) 屋久島からはアクセスしていましたが、
5合目の駐車場にパソコンを置きたくないので、今回は国内にいる
にもかかわらず、3日間通信途絶ということになります。ICMCなど
海外に出る以外では、まったくの例外となります。

> 今日,本の整理をしていたら,トランジスタ技術誌の '97 8月号に"MIDI入力
> の8チャネル照明コントローラーの製作"という,そのものずばり
> の製作記事をみつけました。

おぉ、本当ですね、こんなのあったんだ。(^_^;)(^_^;)
重点はPICのソフトでMIDIを受けて、処理は別PICに投げる、という
ところですね。AKI-H8とどっちが便利なのか、まぁ意見は分かれる
ところかもしれません。調光部分は参考になりそうですね。僕は今の
ところ、このあたりを自分で作って、という方向にないのであまり
ひっかからなかったようです。
これはとても参考になると思いますよ。

> 僕の作品の中での調光機の役割としては、マイクから入ってきた音の波形
> をMSPでMIDI信号に変換し、MIDI調光機に送って、光を揺らすっていう
> ふうになっているのですが、この調光機では、調光のスピードが一定で、
> 僕が欲しい波形の揺れの大きさに合わせた、光の揺れってのは得れないと
> 思うのです。ディスコライトとの組み合わせ検討してみます。

うーーーむ、わざわざMIDI化するのが無駄のようでもありますね。(^_^;)
アナログを直接、トライアックの制御電圧にすればいいような。
あと、MSPでなくても、公開されているMAXオブジェクト
で、Macのマイク入力からMIDI化するものはあります。どっちが軽いか、
ですけど。「はなうたくん」でもいいわけですが。(^_^;)

> あとAKI-80/H8のMIDI周りの部品ですが、SN74HC05Nってのが手に入りました。

これは問題なくOKですね。(^_^)

> がやはりTLP552は無いようです。
> どうやらパリで手に入るのは
> この6N138のQTCってメーカーのかSHARPの物らしいです。

シャープであれば、ピン配置とかは違うと思いますが、もともと昔の定番
はPC900です。あと、改良型のPC910。これらはMIDIでは
問題なく使えます。ただし性能はTLP552の方が上です。この違いは、MIDI
入力をMIDIスルー出力して、....というのをイモヅルにして50段
ぐらいつなぐと、影響が出てきます。(^_^;)(^_^;)

RE:MIDIのハードまわり 98/08/01 13:56


> PC910,TLP552,6N138 がピン・コンパチで使えるようです。
> 6N138はHewlett Packardも作っているようで、

ほう、これは朗報ですね。これで吉原さんがフランスでもびしばし
MIDIを自作できる環境が整いましたね。(^_^)
しかし、型番からはまったくコンパチと思えないですねぇ。(^_^;)

> また、電子部品の通信販売ですが、アメリカに Digikey という会社があります。
> 受注から30分以内に梱包するという品ぞろえと倉庫システムだそうです。

これまた凄いですね。秋月や共立ではこういうの、やらないのかなぁ。

> さて、先日から話題のMIDI Out について。
> 出力の素子は特にオープン・コレクタ/ドレインにこだわる必要もないと思います。
> 極端な話、H8のTxD端子から220オームの抵抗を介してDINコネクタの5番ピンに
> 接続しても、動作はします。

うーーむ、それはそうですが、僕は個人的には賛成しかねますけど。(^_^;)
特に色々な機器を並べてライブに持ち込むことを考えると、ちょっと
このあたりは僕はきちんと電流ループにこだわりたいです。(^_^;)

> 通常4番ピンは220オームの抵抗を介して5V電源に接続しますが、この部分の
> 5V電源がスロースタートとなるようにトランジスタを2個ぐらい使った回路を
> 挿入しています。

なるほど。
ちなみに僕がAKI-H8で遭遇している起動時のMIDIラインに出ることがある
ゴミですが、上記の電源ONのノイズとは別のものです。電源は入れたままで
リセットだけかけても、たまに出ることがあります。解決策としては、
初期状態で入力(H)になっているポートをワイヤードオアになるように
余った05のゲートを使い、上記のスロースタートと同じようにAKI-H8で
一定時間後をタイマして、その後、このポートを出力状態として反転させ
ることでUART出力ラインをイネーブルする、という事でいけると思って
います。

PowerGlove→MIDI(AKI-80) 98/09/05


「Java & AKI-80」に僕が書いた「パワーグローブ
にファミコンだと思わせてMIDI情報を取り出す」という、あのマシンを
作ろうとしている人にリクエストされました。それをメイルでお送りしたの
ですが、せっかくですので、ここに紹介しておきます。注意して下さい。
AKI-H8でなく、AKI-80です。(^_^;)

内容ですが、回路図は「Java & AKI-80」の63ページのものです。
ソースリストが76ページからのものです。
ソースを見たところ、マクロばっかしなので、マクロの無いXA-80に戻すと
いうのはちょっと不毛な労力ですので、これをBASMでアセンブルした、
インテルHEXファイルを以下に紹介します。これをROMライタで焼いて下さい。

:0700000031FFFFF3C3800490
:0C0020002200083E0132028108FBED4D79
:02006600ED4566
:2001000010101010101010101818181818181818080808080C0C0C0C0C0C0C0C040404040F
:20012000060606060606060602020202030303030303030301010101010101010101010163
:20014000010101010101010100000000000000000000000000000000000000000000000097
:2001600000000000000000000000000000000000000000000000000000000000000000007F
:2002000010101010101010101010101008080808080808080808080804040404040404049E
:20022000040404040202020202020202020202020101010101010101010101010101010186
:2002400001010101000000000000000000000000000000000000000000000000000000009A
:2002600000000000000000000000000000000000000000000000000000000000000000007E
:200300000000000000000000000000000000000000000000000000000000000000000000DD
:200320000000000000000000000000000000000000000000000000000101010101010101B5
:20034000010101010101010101010101030303030303030302020202060606060606060641
:20036000040404040C0C0C0C0C0C0C0C0808080818181818181818181010101010101010AD
:200400000000000000000000000000000000000000000000000000000000000000000000DC
:200420000000000000000000000000000000000000000000000000000000000001010101B8
:20044000010101010101010101010101010101010202020202020202020202020404040464
:2004600004040404040404040808080808080808080808081010101010101010101010103C
:200480002100803E90360023BC30FA3EFFD3803EFFD3813EFFD3833EFFD3823ECFD31D3E2D
:2004A0000FD31D3E07D31D3ECFD31F3E00D31F3E07D31F3E80D31C3EFFD31E3E00D3173E61
:2004C00018D3193E04D3193E84D3193E01D3193E00D3193E05D3193E68D3193E20D3103EA7
:2004E000A5D3103E50D3103E0E320F81CD7305ED5EFBCDA806CD8205CD470518F53A0881B2
:20050000473A0781B8C83208813A0F81F6B047CD6605060ACD66053A078147CD6605CDA7AB
:2005200005C93A0A81473A0981B8C8320A813A0F81F6B047CD66050607CD66053A098147A1
:20054000CD6605CDCC05C93A0181473A0081B8C83E00D319DB19CB57C8210080687ED31844
:20056000783C320181C92100803A00816F3C32008170C93E40320781320981CDFD04CD22A6
:2005800005C93A0381FE32D8AF3203813A04813C320481CDA705CDCC05AF320B81320C816D
:2005A000320D81320E81C93A0481CB47200821000311000118062100041100023A07816F3B
:2005C0007EEEFFD383627EEEFFD382C93A0481CB47280821000311000118062100041100E4
:2005E000023A09816F7EEEFFD380627EEEFFD381C93A0681E60C2804CD7305C93A0681CBA5
:200600004FCA54060E033A0681CB6728203A0B8181320B81CB5F28153A0981FE7F280E3CFC
:20062000320981CD2205AF320B81320C813A0681CB6F28203A0C8181320C81CB5F28153AF3
:200640000981FE00280E3D320981CD2205AF320B81320C813A0681CB47C80E023A0681CB8C
:200660007728203A0D8181320D81CB5F28153A0781FE00280E3D320781CDFD04AF320D8121
:20068000320E813A0681CB7FC83A0E8181320E81CB5FC83A0781FE7FC83C320781CDFD04FE
:2006A000AF320D81320E81C93A0281FE00C8AF3202813A03813C3203810600CD2207DB1CB7
:2006C000CB472802CBC0CD2D07DB1CCB472802CBC8CD2D07DB1CCB472802CBD0CD2D07DBE1
:2006E0001CCB472802CBD8CD2D07DB1CCB472802CBE0CD2D07DB1CCB472802CBE8CD2D0738
:20070000DB1CCB472802CBF0CD2D07DB1CCB472802CBF8CD2D0778D31EEEFF320681CDF126
:1807200005C93EC0D31C00003E80D31CC93E00D31C00003E80D31CC9ED
:00000001FF

他にも、この本にソースとか載っている回路を作るという方で、アセンブル
したHEXの欲しい方はここでリクエストして下さい。最近ではさっぱりAKI-80
は作らなくなってしまいましたが(でも、製造中止に備えて折々に買いだめ
しているので、AKI-80とEPROMはたぶん30-40セット分くらいはストックして
あります。これだけあれば、老後まで安心でしょう(^_^;))、過去に作った
ソフトであれば、再アセンブルはカンタンですので。

汎用ディジタルオシレータ(^_^) 98/09/23 05:11


昨日は台風で一つ予定がキャンセルになって、自宅での暇な一日が
突然に発生しました。そこで半日ほどかけて、AKI-H8モノを新しく
作りました。ここで公開しておきましょう。(^_^)

まずは回路図です。非常にシンプルです。


これだけです。入力はMIDI、出力はタイマからの1本です。つまり出力は
+5VとGNDを行き来する、デューティ50%の矩形波です。クウォーツ精度の
ディジタルオシレータです。(^_^)

AKI-H8のフラッシュROMには以下のMOTデータを焼いて下さい。

S00E0000466C617368524F4D4D4F5426
S107000000002000D9
S10B00D0000020D2000020DC37
S113100000010203040506070809000000000000B0
S113101000010203040506000000000000000000B8
S11320007A07000FFF0F7A02000FEF1079010FE03C
S1132010F80068A80B721B5146F85E002050F8FFC9
S113202038D45E00206CF87038B2067FF843386409
S1132030F8303865790007D06B80EF1A6B80FF6C3E
S11320407F6070005E0020905E00210C5A002044E7
S1132050F80038B2F80038B0F80F38B1790001F45D
S11320601B5046FC28B4F80038B454707A010000C1
S113207001F45E0020807A310000000146F45470C0
S11320807A02000008007A320000000146F854701A
S11320906B01EF100B516B81EF10587000025470FD
S11320A06B01EF120B516B81EF12792100505860D5
S11320B00008790100006B81EF126A08EF260A0815
S11320C06A88EF266A08EF2771786A88EF2738D67F
S11320D054707FB472507FB4724056706DF001003B
S11320E06DF57EB473607FB472606B05EF16790D86
S10720F0000028B50C
S11320F478506AA8000FF4000B5572156B85EF1620
S113210401006D756D7056706B01EF166B05EF185A
S11321141D15586000025470790D000078506A2030
S1132124000FF4000B5572156B85EF18737058701C
S113213400340C08E8F8A8F8586000025470E8F07A
S1132144A8F058600008F8006A88EF2154700C085E
S1132154E80F6A88EF220C08E8F06A88EF21F80098
S11321646A88EF2354706A08EF21586000025470A0
S1132174A8C05870001AA8D0587000146A09EF2335
S11321845860000E0A096A89EF236A80EF245470A9
S11321945470F1006A81EF236A80EF256A09EF2204
S11321A41498A8AD5870000254706A08EF25E80F1C
S11321B4175017706A0AEF24AA005870001EAA0168
S11321C45870001CAA0258700020AA0358700024F7
S11321D4AA0458700028AA055870002C5A00221625
S10721E46E0B10105B
S11321E86A8BEF1C54706E0B10006A8BEF1D5470D2
S11321F86E0B10006A8BEF1E54706E0B10006A8B07
S1132208EF1F54706E0B10006A8BEF205470790423
S113221800006A09EF1C1751790327105213093478
S11322286A09EF1D1751790303E8521309346A0940
S1132238EF1E175179030064521309346A09EF1F1B
S113224817517903000A521309346A0BEF20175305
S113225809347A02000F424053426B82EF1A6B82B1
S1072268FF6C547040
S9032000DD

ソースは美しくないので(^_^;)省略です。本には載せます。

このオシレータの仕様ですが、MIDI入力として、
 「発振周波数を10進数として桁別に入力して指定する」
としました。MIDIステータスは「チャンネルアフタータッチ」、さらに
MIDIの14チャンネルを用いています。(^_^;)
CPUの乗算/除算命令だけで内部処理する関係で、意味のある(演算出力
が規定範囲外で不定とならない、有効範囲内の)出力の上限周波数は
約32400Hz、下限周波数は約16Hzとなりますが、これはサウンドとしては、
人間の可聴帯域を十分に含んでいます。そして、アフタータッチの
ノートナンバの1から5までをHz単位の数字(0-9)として与えます。
この5桁の周波数データを設定して、最後に「その周波数で発振」という
コマンドに相当するものとして、ノートナンバの0(データは何でもよい)
を使います。周波数精度は出力周波数が高いほど悪くて、最高の30KHz
あたり(聞こえない(^_^;))でたぶん3%ぐらいです。あまり詳しく
計算していませんが。整数1000000を入力数値で割って、その商を、内部
的に1000000を割る分周データとしています。誰か計算してみましょう。
余りの切り捨て誤差が周波数の誤差となります。

周波数の設定がピンとこない人は、以下のMAXパッチを走らせて下さい。
これは何のコメントもない淡白なものですが、内容は一目瞭然。5つ並んだ
箱に、数値を並べてボタンでGO。(^_^)
たとえば「1」「2」「3」「4」「5」と並べてボタンを押せば12345Hzの
矩形波が出てきます。なお、ゼロの桁は明示的にゼロとして下さい。
AKI-H8の電源投入時の初期値は500Hzです。各桁とも、以前に設定された
値が保存されていることになっています。たぶん。(^_^;)

max v2;
#N vpatcher 91 91 588 430;
#P button 144 152 28 0;
#P message 160 186 14 9 1;
#P number 377 144 35 9 0 0 0 3;
#P user IncDec 359 144 15 15 0 0;
#P newex 352 167 65 9 polyout 5 14;
#P newex 287 144 65 9 polyout 4 14;
#P user IncDec 294 121 15 15 0 0;
#P number 312 121 35 9 0 0 0 3;
#P number 247 98 35 9 0 0 0 3;
#P user IncDec 229 98 15 15 0 0;
#P newex 222 121 65 9 polyout 3 14;
#P newex 157 98 65 9 polyout 2 14;
#P user IncDec 164 75 15 15 0 0;
#P number 182 75 35 9 0 0 0 3;
#P number 117 52 35 9 0 0 0 3;
#P user IncDec 99 52 15 15 0 0;
#P newex 92 75 65 9 polyout 1 14;
#P newex 160 207 65 9 polyout 0 14;
#P connect 17 0 16 0;
#P connect 16 0 0 0;
#P connect 15 0 13 0;
#P connect 15 0 14 0;
#P connect 14 0 15 0;
#P connect 11 0 10 0;
#P connect 10 0 12 0;
#P connect 10 0 11 0;
#P connect 9 0 7 0;
#P connect 9 0 8 0;
#P connect 8 0 9 0;
#P connect 5 0 4 0;
#P connect 4 0 6 0;
#P connect 4 0 5 0;
#P connect 3 0 2 0;
#P connect 3 0 1 0;
#P connect 2 0 3 0;
#P pop;

AKI-H8版MIDIオルゴール(^_^;) 98/09/26 22:00


ということで、今日はまたまたAKI-H8で遊びました。今度はいよいよ、MIDI
音楽演奏情報を受けてサウンドを生成する、一種のシンセサイザ(オルゴール
程度)ということです。ここでは音色(楽音波形)については簡単なPWM波形に
限定して、MIDI受信、音楽的ピッチ生成、エンベロープ変調、を持ち、
「外付部品を最小限にして、AKI-H8のソフトウェア処理で実現する」という
のを目標としました。これまた一日仕事で完成です。(^_^)

以下が、この「MIDIオルゴール」の全回路図です。AKI-H8以外には、外付けの
74HC4053がたった1個という、超シンプルなものです。


仕様としては、MIDIの1チャンネルと2チャンネルのそれぞれ1音(最後に
到着した最新イベント)を鳴らします。そして、PWM波形のデューティ比
を、MIDIの1/2チャンネルのプログラムチェンジでゼロから127まで可変
します。さらに、減衰エンベロープのスピードとして、MIDIの3/4
チャンネルのゼロから127までのパラメータとして可変できます。

以下は、AKI-H8に書き込むフラッシュROMのデータです。

S00E0000466C617368524F4D4D4F5426
S107000000002000D9
S10B00D0000020F0000020FAFB
S1131000EEE4E17AD4D2C8E0BD9AB2F6A8EA9F70C2
S1131010967C8E0A86127E8CEEE4E17AD4D2C8E006
S1131020BD9AB2F6A8EA9F70967C8E0A86127E8CD1
S1131030EEE4E17AD4D2C8E0BD9AB2F6A8EA9F7092
S1131040967C8E0A86127E8C777270BD6A69647094
S11310505ECD597B54754FB84B3E470543093F4618
S11310603BB9385E353432382F662CBD2A3A27DC3B
S1131070259F238221841FA31DDC1C2F1A9A191C70
S113108017B3165E151D13EE12CF11C110C20FD187
S11310900EEE0E170D4D0C8E0BD90B2F0A8E09F782
S11310A0096708E0086107E80777070B06A6064704
S11310B005EC0597054704FB04B30470043003F4FF
S11310C003BB03850353032302F602CB02A3027D72
S11310D002590238021801FA01DD01C201A9019186
S11310E0017B01650151013E012C011C010C00FD36
S10910F000EE00E100D454
S10D10F600C800BD00B200A8009F6F
S11320007A07000FFF0F7A02000FEF1079010FE03C
S1132010F80068A80B721B5146F85E00206AF8FFAF
S113202038D45E002086F87038B2067FF8433864EF
S1132030F843386EF8033862F8123865F812386FCF
S11320407F6070007F607010F8E038DEF8406A88C7
S1132050EF296A88EF2A6A88EF2B6A88EF2C5E00E3
S113206020AA5E00212A5A00205EF80038B2F80048
S113207038B0F80F38B1790001F41B5046FC28B48E
S1132080F80038B454707A01000001F45E00209A1D
S11320907A310000000146F454707A02000008000F
S11320A07A320000000146F854706B01EF100B51B7
S11320B06B81EF105870000254705E0022A46B0114
S11320C0EF120B516B81EF12792100505860000819
S11320D0790100006B81EF126A08EF270A086A880A
S11320E0EF276A08EF2871786A88EF2838D654708A
S10720F07FB47250F4
S11320F47FB4724056706DF001006DF57EB4736069
S11321047FB472606B05EF16790D000028B5785023
S11321146AA8000FF4000B5572156B85EF160100C6
S11321246D756D7056706B01EF166B05EF181D1509
S1132134586000025470790D000078506A20000F33
S1132144F4000B5572156B85EF18737058700034D7
S11321540C08E8F8A8F8586000025470E8F0A8F0F6
S113216458600008F8006A88EF2254700C08E80FDE
S11321746A88EF230C08E8F06A88EF22F8006A887B
S1132184EF2454706A08EF22586000025470A8C008
S11321945870001AA8D0587000146A09EF245860C4
S11321A4006C0A096A89EF246A80EF2554706A096E
S11321B4EF231498A8C058700014A8C158700028BD
S11321C4A8C25870003CA8C35870003C54706A807D
S11321D4EF296B02EF1A0C0310837003FBFF1773D1
S10921E452236B8BFF6A1E
S11321EA54706A80EF2A6B02EF1C0C03108370038E
S11321FAFBFF177352236B8BFF7454706A80EF2BA8
S113220A54706A80EF2C5470F1006A81EF246A805B
S113221AEF266A09EF231498A89058700008A8912A
S113222A5870000A5470A0005860000A5470A00045
S113223A5860003454706A08EF25108817501770D5
S113224A6F0210006B82FF6C6B82EF1A6A03EF292D
S113225A10837003FBFF177352236B8BFF6A790199
S113226AFFFF6B81EF1E54706A08EF251088175021
S113227A17706F0210006B82FF766B82EF1C6A0382
S113228AEF2A10837003FBFF177352236B8BFF74C0
S113229A7901FFFF6B81EF2054706B02EF1E6A0313
S11322AAEF2B10837003FBFF177352236B8BEF1E05
S11322BA6B02EF206A03EF2C10837003FBFF177383
S11322CA52236B8BEF206B01EF1E31DC6B01EF2086
S10722DA31DD54702B
S9032000DD

CQの単行本のAKI-H8の章ですが、これで終わりにして次の章に行くつもり
だったのですが、もう一つ、面白いネタを思い付いてしまったので(^_^;)、
あと1トライ、したいと思います。挫折したら次に進みます。
でも、続きはICMCから帰ってからですから(さすがにAKI-H8開発キットを
アメリカに持っていくつもりはありません。小型軽量なので簡単ですが、
ICMCに集中したいので)、だいぶ先になると思います。

AKI-H8版「聞き取りくん」(^_^;) 98/09/27 21:27


今日はまたまた一日仕事で、AKI-H8によるリアルタイムピッチトレーサを
完成させました。(^_^)

AKI-H8版ピッチトラッカー「聞き取りくん」の回路図です。ピッチ抽出
したい入力信号のレベルに合わせた適当なアンプとフィルタを作り、
結果として0-1V程度の、なるべく丸い波形になるようにします。倍音成分
が強く残っていては駄目です。(^_^;)
僕はOPアンプLM324の単一電源アンプと平滑回路を2段、組みました。
これを、10Kあたりの抵抗を経て同じLM324を単一電源動作させたコンパレータ
の反転入力に入れ、非反転入力には同じ10Kの抵抗でGNDにすれば、出力と
しては0-4Vあたりに振れたディジタル信号となります。デューティ比は
どうでも構いません(立ち上がりエッジの間隔でピッチを調べます)。
また、この入力をダイオードで整流して適当な平滑回路(僕は473と100Kを
GNDとの間に入れただけ(^_^;))として振幅成分を取り出し、これもAKI-H8
のアナログ入力に入れます。これで、無信号時にはピッチトレースを停止
します。
このアナログ部分の回路はテキストでは書きにくいので、Draftcadで30分
ほどで描けたのですが、単行本までお待ち下さい。(^_^;)


以下が、フラッシュROMに焼くデータです。(^_^;)

S00E0000466C617368524F4D4D4F5426
S107000000002000D9
S1131000717170706F6F6F6E6E6D6D6C6C6C6B6BFE
S11310106A6A6A696969686868676767676666664E
S11310206565656564646464636363636362626284
S113103062616161616160606060605F5F5F5F5FAB
S11310405E5E5E5E5E5E5D5D5D5D5D5D5C5C5C5CCB
S11310505C5C5B5B5B5B5B5B5B5A5A5A5A5A5A5AE2
S113106059595959595959595858585858585858F5
S11310705757575757575757575656565656565604
S11310805656555555555555555555545454545410
S11310905454545454535353535353535353535318
S11310A05252525252525252525252525151515121
S11310B05151515151515151505050505050505025
S11310C0505050504F4F4F4F4F4F4F4F4F4F4F4F29
S11310D04F4F4E4E4E4E4E4E4E4E4E4E4E4E4E4E2B
S11310E04D4D4D4D4D4D4D4D4D4D4D4D4D4D4D4D2D
S10910F04C4C4C4C4C4C2F
S11310F64C4C4C4C4C4C4C4C4C4C4B4B4B4B4B4B2D
S11311064B4B4B4B4B4B4B4B4B4B4B4A4A4A4A4A2B
S11311164A4A4A4A4A4A4A4A4A4A4A4A4A49494929
S11311264949494949494949494949494949494926
S11311364848484848484848484848484848484826
S11311464848484847474747474747474747474722
S1131156474747474747474747474646464646461C
S11311664646464646464646464646464646464616
S11311764645454545454545454545454545454515
S1131186454545454545454545444444444444440D
S11311964444444444444444444444444444444406
S11311A64444434343434343434343434343434304
S11311B643434343434343434343434343434242F8
S11311C642424242424242424242424242424242F6
S11311D642424242424242424242414141414141EC
S10911E64141414141417A
S11311EC41414141414141414141414141414141E0
S11311FC41414140404040404040404040404040DD
S113120C40404040404040404040404040404040CF
S113121C4040403F3F3F3F3F3F3F3F3F3F3F3F3FCC
S113122C3F3F3F3F3F3F3F3F3F3F3F3F3F3F3F3FBF
S113123C3F3F3F3F3F3E3E3E3E3E3E3E3E3E3E3EBA
S113124C3E3E3E3E3E3E3E3E3E3E3E3E3E3E3E3EAF
S113125C3E3E3E3E3E3E3E3E3E3D3D3D3D3D3D3DA6
S113126C3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D9F
S113127C3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D3D8F
S113128C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C8F
S113129C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C3C7F
S11312AC3C3C3C3C3C3C3C3C3B3B3B3B3B3B3B3B77
S11312BC3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B6F
S11312CC3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B3B5F
S10912DC3B3B3B3A3A3AAA
S11312E23A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A59
S11312F23A3A3A3A3A3A3A3A3A3A3A3A3A3A3A3A49
S11313023A3A3A3A3A3A3A3A3A3A3A39393939393D
S11313123939393939393939393939393939393938
S11313223939393939393939393939393939393928
S1131332393939393939393939393938383838381D
S11313423838383838383838383838383838383818
S11313523838383838383838383838383838383808
S113136238383838383838383838383838383737FA
S113137237373737373737373737373737373737F8
S113138237373737373737373737373737373737E8
S113139237373737373737373737373737373737D8
S11313A237373737373636363636363636363636D3
S11313B236363636363636363636363636363636C8
S11313C236363636363636363636363636363636B8
S10913D2363636363636CE
S11313D836363636363636363535353535353535AA
S11313E835353535353535353535353535353535A2
S11313F83535353535353535353535353535353592
S11314083535353535353535353535353535353581
S1131418353535353534343434343434343434347C
S11314283434343434343434343434343434343471
S11314383434343434343434343434343434343461
S11314483434343434343434343434343434343451
S1131458343434343433333333333333333333334C
S11314683333333333333333333333333333333341
S11314783333333333333333333333333333333331
S11314883333333333333333333333333333333321
S11314983333333333333333333332323232323217
S11314A83232323232323232323232323232323211
S11314B83232323232323232323232323232323201
S10914C8323232323232EF
S11314CE32323232323232323232323232323232EB
S11314DE32323232323232323232323231313131DF
S11314EE31313131313131313131313131313131DB
S11314FE31313131313131313131313131313131CB
S113150E31313131313131313131313131313131BA
S113151E31313131313131313131313131313131AA
S113152E31313131313131313130303030303030A1
S113153E303030303030303030303030303030309A
S113154E303030303030303030303030303030308A
S113155E303030303030303030303030303030307A
S113156E303030303030303030303030303030306A
S113157E303030303030303030302F2F2F2F2F2F60
S113158E2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F5A
S113159E2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F4A
S11315AE2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F3A
S10915BE2F2F2F2F2F2F0A
S11315C42F2F2F2F2F2F2F2F2F2F2F2F2F2F2F2F24
S11315D42F2F2F2F2F2F2F2F2F2F2E2E2E2E2E2E1A
S11315E42E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E14
S11315F42E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2E04
S11316042E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2EF3
S11316142E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2EE3
S11316242E2E2E2E2E2E2E2E2E2E2E2E2E2E2E2ED3
S11316342E2E2E2E2E2D2D2D2D2D2D2D2D2D2D2DCE
S11316442D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DC3
S11316542D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DB3
S11316642D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2DA3
S11316742D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D93
S11316842D2D2D2D2D2D2D2D2D2D2D2D2D2D2D2D83
S11316942D2D2D2D2D2D2C2C2C2C2C2C2C2C2C2C7D
S11316A42C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C73
S10916B42C2C2C2C2C2C25
S11316BA2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C5D
S11316CA2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C4D
S11316DA2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C3D
S11316EA2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2C2D
S11316FA2C2C2C2C2C2C2B2B2B2B2B2B2B2B2B2B27
S113170A2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B1C
S113171A2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B0C
S113172A2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2BFC
S113173A2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2BEC
S113174A2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2BDC
S113175A2B2B2B2B2B2B2B2B2B2B2B2B2B2B2B2BCC
S113176A2B2B2B2A2A2A2A2A2A2A2A2A2A2A2A2AC9
S113177A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2ABC
S113178A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2AAC
S113179A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A9C
S10917AA2A2A2A2A2A2A3A
S11317B02A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A86
S11317C02A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A76
S11317D02A2A2A2A2A2A2A2A2A2A2A2A2A2A2A2A66
S11317E02929292929292929292929292929292966
S11317F02929292929292929292929292929292956
S11318002929292929292929292929292929292945
S11318102929292929292929292929292929292935
S11318202929292929292929292929292929292925
S11318302929292929292929292929292929292915
S11318402929292929292929292929292929292905
S113185029292929292929292928282828282828FC
S113186028282828282828282828282828282828F5
S113187028282828282828282828282828282828E5
S113188028282828282828282828282828282828D5
S113189028282828282828282828282828282828C5
S10918A02828282828284F
S11318A628282828282828282828282828282828AF
S11318B6282828282828282828282828282828289F
S11318C6282828282828282828282828282828288F
S11318D6282828282727272727272727272727278B
S11318E6272727272727272727272727272727277F
S11318F6272727272727272727272727272727276F
S1131906272727272727272727272727272727275E
S1131916272727272727272727272727272727274E
S1131926272727272727272727272727272727273E
S1131936272727272727272727272727272727272E
S1131946272727272727272727272727272727271E
S11319562727272727272727272727272726262611
S1131966262626262626262626262626262626260E
S113197626262626262626262626262626262626FE
S113198626262626262626262626262626262626EE
S109199626262626262664
S113199C26262626262626262626262626262626D8
S11319AC26262626262626262626262626262626C8
S11319BC26262626262626262626262626262626B8
S11319CC26262626262626262626262626262626A8
S11319DC2626262626262626262626262626262698
S11319EC2626262626262626252525252525252590
S11319FC2525252525252525252525252525252588
S1131A0C2525252525252525252525252525252577
S1131A1C2525252525252525252525252525252567
S1131A2C2525252525252525252525252525252557
S1131A3C2525252525252525252525252525252547
S1131A4C2525252525252525252525252525252537
S1131A5C2525252525252525252525252525252527
S1131A6C2525252525252525252525252525252517
S1131A7C2525252525252525252525252525252507
S1091A8C25242424242478
S1131A922424242424242424242424242424242401
S1131AA224242424242424242424242424242424F1
S1131AB224242424242424242424242424242424E1
S1131AC224242424242424242424242424242424D1
S1131AD224242424242424242424242424242424C1
S1131AE224242424242424242424242424242424B1
S1131AF224242424242424242424242424242424A1
S1131B022424242424242424242424242424242490
S1131B122424242424242424242424242424242480
S1131B222424242424242424242424242424232372
S1131B322323232323232323232323232323232370
S1131B422323232323232323232323232323232360
S1131B522323232323232323232323232323232350
S1131B622323232323232323232323232323232340
S1131B722323232323232323232323232323232330
S1091B8223232323232388
S1131B88232323232323232323232323232323231A
S1131B98232323232323232323232323232323230A
S1131BA823232323232323232323232323232323FA
S1131BB823232323232323232323232323232323EA
S1131BC823232323232323232323232323232323DA
S1131BD823232323222222222222222222222222D6
S1131BE822222222222222222222222222222222CA
S1131BF822222222222222222222222222222222BA
S1131C0822222222222222222222222222222222A9
S1131C182222222222222222222222222222222299
S1131C282222222222222222222222222222222289
S1131C382222222222222222222222222222222279
S1131C482222222222222222222222222222222269
S1131C582222222222222222222222222222222259
S1131C682222222222222222222222222222222249
S1091C7822222222222297
S1131C7E2222222222222222222222222222222233
S1131C8E222222222121212121212121212121212F
S1131C9E2121212121212121212121212121212123
S1131CAE2121212121212121212121212121212113
S1131CBE2121212121212121212121212121212103
S1131CCE21212121212121212121212121212121F3
S1131CDE21212121212121212121212121212121E3
S1131CEE21212121212121212121212121212121D3
S1131CFE21212121212121212121212121212121C3
S1131D0E21212121212121212121212121212121B2
S1131D1E21212121212121212121212121212121A2
S1131D2E2121212121212121212121212121212192
S1131D3E2121212121212121212121212121212182
S1131D4E212121212120202020202020202020207D
S1131D5E2020202020202020202020202020202072
S1091D6E202020202020AC
S1131D74202020202020202020202020202020205C
S1131D84202020202020202020202020202020204C
S1131D94202020202020202020202020202020203C
S1131DA4202020202020202020202020202020202C
S1131DB4202020202020202020202020202020201C
S1131DC4202020202020202020202020202020200C
S1131DD420202020202020202020202020202020FC
S1131DE420202020202020202020202020202020EC
S1131DF420202020202020202020202020202020DC
S1131E0420202020202020202020202020202020CB
S1131E142020202020202020202020201F1F1F1FBF
S1131E241F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FBB
S1131E341F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FAB
S1131E441F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F9B
S1131E541F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F8B
S1091E641F1F1F1F1F1FBB
S1131E6A1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F75
S1131E7A1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F65
S1131E8A1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F55
S1131E9A1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F45
S1131EAA1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F35
S1131EBA1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F25
S1131ECA1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F15
S1131EDA1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F05
S1131EEA1F1F1F1F1F1F1F1F1F1F1F1F1F1F1F1FF5
S1131EFA1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EF5
S1131F0A1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EE4
S1131F1A1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1ED4
S1131F2A1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EC4
S1131F3A1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EB4
S1131F4A1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1EA4
S1091F5A1E1E1E1E1E1ECA
S1131F601E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E8E
S1131F701E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E7E
S1131F801E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E6E
S1131F901E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E5E
S1131FA01E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E4E
S1131FB01E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E3E
S1131FC01E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E2E
S1131FD01E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E1E
S11320007A07000FFF0F7A02000FEF1079010FE03C
S1132010F80068A80B721B5146F85E002052F808BE
S113202038E87FE97270F8FF38D45E00206E7FE8ED
S11320307050F87038B2F8433878F84438797F60D4
S113204070205E0021245E0020925E0020D45A009E
S11320502042F80038B2F80038B0F80F38B17900F0
S113206001F41B5046FC28B4F80038B454707A01CC
S1132070000001F45E0020827A310000000146F482
S113208054707A02000008007A320000000146F81A
S113209054706B01EF100B516B81EF1058700002FD
S11320A054706B01EF120B516B81EF1279210050C9
S11320B058600008790100006B81EF126A08EF2273
S11320C00A086A88EF226A08EF2371786A88EF2387
S11320D038D654706B01EF166B06EF181D16586057
S11320E0000254707EB47370586000025470790E0D
S10520F00000EB
S11320F278606A28000FF80038B37FB472700B5609
S113210272266B86EF1854706B06EF16790E000079
S113211278606AA0000FF8000B5672266B86EF16E2
S113212254706B01EF140B516B81EF14792107D0BB
S1132132587000025470790100006B81EF147EE83D
S1132142737058600002547023E07FE87270F800E5
S11321520C8C38E87FE870307FE87050175417749E
S1132162110378406AA3000FEF1AA34058A000029C
S113217254706B02FF807922AD9C58500002547058
S11321827922053558200002547079030FFF177323
S113219252237904A8F45343790B0000E30F6E35FD
S11321A210000A05F0905E00210A0C505E00210A1D
S11321B2F0645E00210A0C505E00210AF0005E000A
S10721C2210A547027
S9032000DD

渡米準備 98/09/29 08:07


> 「聞き取りくん」の入力周波数の下限(ソフト上)を数Hz
> まで下げていただければ,昔に
> お示しした脳波検出回路の出力を直結できます。
> 応答が早いですので,へたにFFTするより,ずっと面白いと思いますよ。

実現はきわめて容易です。ソフトの実体部分を変えずに、内部で
2MHzのクロックを使っているところを、いったん別のタイマで10分周
した信号を入れてやるだけで(外付部品ゼロ(^_^))、4.5Hz-150Hzに
なります。それだけですね。ただし、出てくるMIDIノートナンバは、
そのままでは、ずれて出てきます。(^_^;)
きちんとやるなら、ソフトの修正です。現状の45Hz-1500Hzというのは、
内部カウンタの16ビット幅がオーバーフローしないぎりぎりのところで
最大の精度が出るようにしました。具体的には、
 ・入力クロックのエッジ間隔を2MHzのカウンタで計測する
 ・そのカウンタ値に4095を乗算する
 ・その結果を43252で除算する
 ・その商は16進で000-FFFになる(4096通り)
 ・この値を、対応したMIDIノートナンバの置かれたデータテーブルから参照する
   (まず、このデータテーブルを作るソフトをCで書きました(^_^))
というアルゴリズムです。周波数が低いほど精度がいいので、下限を延ばすため
には、精度を悪くしないといけないのです。悪くと言っても凄くいいのですが。
ですから、最初から最低周波数を1Hzとか0.1Hzとかに決めれば、上限がそれに
対応して下がってくるだけで、なんとでも作れます。まぁ時間があれば、
かなぁ。僕はあまり脳波の深みに入りたい、という気になっていないので。
(^_^;)