I’m loser, baby.

So why don't you kill me?

チップじゃない方のLPCについて知る

職業訓練所では今日は就職活動のための個人面談をしました。10月に在校生リストを企業に配るんですが、その自己アピール文のチェック&修正の面談です。就職相談担当の方といろいろ。

取り敢えず前々回のLPC1114のプログラムのコメントに間違いがあったのでこっそり修正。
思ったよりサイン波が良い感じで出たので欲が出てきてADSRとかも実装したくなってきました。その前にオシレーターでもうちょっと遊んでみますが。
ただ、やっぱりクロック周りで思ったのと違う結果になってしまっているところが色々あって、ハード直叩きも早く身につけたい。
とにかく音程とテンポのコントロールは音は悪くてもきちんとしたいです。Monolistの記事から勉強を進めようと思ってます。

日曜日は奥さんと散歩がてら熊本大学に行ってきました。
f:id:SenjiNiban:20150913145926j:plain
目的は写真の熊本大学五高記念館でやっている戦後70年特別企画展を見るのと大学図書館の本を見に行くこと。

企画展では戦時中の高校生の写真が凄くいい状態で保存されていて、顔つきとか表情とか今とあまり変わらなくて。www.kumamoto-u.ac.jp

図書館ではVerilogVHDLやアーキテクチャ周りの本とデジタル処理関連の本を読んでいました。
ハード周りの本はあまり読み進められなかったのですが、デジタル処理では古い本ですがこれが判りやすくて勉強になりました。

わかりやすいディジタル信号処理

わかりやすいディジタル信号処理

知りたかったのは線形予測法について。
折角なのでLPC1114にはデジタル処理をさせたくて、でも、フーリエ変換からのフィルターとかはわざわざLPC1114でやらなくても良いので、この線形予測法による変調をさせようと思ってます。これはみんな大好きSpeak&Spellに内蔵されているTI社製ICに使われている技術で、約するとLPCになるというダジャレっぽい理由もあります。
Speak&Spell以外には初期のMacinTalkにも使われています。こちらもいい具合のローファイで、須田剛一さんが好きで良くゲームの中で使ってますよね。
Killer7【CEROレーティング「Z」】

Killer7【CEROレーティング「Z」】

自分も曲の中で使ったりしてるんですが、これ、データによっては歌ってくれるんですよ。冒頭で使ってます。soundcloud.com
この線形予測法は音声の合成に向いているっていうことなんですが、もっと他にも使えないのか色々試してみたかったんです。
しかしネットで調べたり本を読んだりしても、理論と数式については資料があるんですがそこから先の説明があまりなくて、ずーっと何年も足踏みしていたんですが、上の本でやっとそこから先の説明に出会えました。
線形予測法では現在の信号に連続するいくつかの信号に係数を掛けて足すことで次の信号を予測できるんですが、例えば6個遡る式と係数で十分に声と認識できる音を合成できてしまうそうな。え、そんな軽い処理なの?
まあ、1978年当時のICレベルで音声合成できるぐらいなので、そんなに計算量やスピードが要求される訳ではないとは思っていましたが、これほどとは思わなかった。
原理は結構複雑で偏微分とか出てくるし係数を求めるには行列計算なども出てきますが使う分には簡単なアルゴリズムになるし、同じく1次元の時系列データの変調に、経営の時にさんざん聞かされた移動平均とか、同期加算とか、ヒントになることが色々出ていて為になる本でした。
線形予測と1次元時系列データの実験は、エクセルとかの表計算ソフトでもできてしまうし、プログラムの形にする前に色々と実験してみます。

あとはシステムOSとしてのForth+ibnizもそろそろ勉強再開でしょうか。

という訳で昨日突然プロジェクト名"Speak&Spell2000"となった現在構想中&勉強中の何かについて、完成時のブロック図など描いてみてどこからどんな技術が必要になるのか考えたりしてました。さっくり作るつもりだったけど結構でっかいぞ、コレ。
でも途中で止まっても、その時々で結構使えるものは出てきそう。今の段階でもMML鳴らすくらいなら行けそうです。