読者です 読者をやめる 読者になる 読者になる

未踏作業日誌――余計なもの作るよ!

未踏の作業日誌的なものを書きましょうということで書くことにしました.余計なことばっかりしています.

SDKを維持するか,別のSDKにしてしまうかの話

研究室に置いてある暇そうなノートPCにLinuxミントちゃんを入れることにしました.ミントちゃんって名前がかわいいので,bashとかで「何をしたいの?」「コマンドは?」「お兄ちゃんごめん」とか言ってくれるものだと信じています.

 

本題ですが,ASIO SDKでは,古い関数ポインタでコールバック関数の登録を行っているため,必然的にグローバル変数でバッファの管理をしなければならないような設計になっています.今のところ,これをどう隠蔽しようかな,というところを少し整理がてら書こうかなと.

気持ち的には,この実装の部分を隠蔽しないと使いづらくてしょうがないです.特に,コールバック関数は4種類あるのですが,これらを全て登録しないと落ちる仕様になっているので,余計に面倒くさいことになっているなと.

そこで,コールバック関数の処理をラッパー側で処理し,利用者はラッパーを逐次叩くことで,その間に蓄積されたデータを吐き出すような設計にしようかなと思っています.

こうすることで,ちょっと難しい関数ポインタを扱ったり,バッファをグローバル変数にしたり,もしくはそういうのを避けるためにクラスで扱おうとする代わりにstatic変数を使うようになったり,その辺りの本末転倒な部分が解消されるんじゃないかなと思いました.

一応,動くことは動くみたいですが,さすがにこの部分を利用者に弄らせるには敷居が高過ぎるのと,ASIO SDKの内部構造を理解していないと扱えないのとであまりにも不便だなと思い,このような実装にしようかなと考えました.

 

ちなみに,VOXのアンシミュを持っているのですが,引っ越しの時に壊れたっぽいです() 気持ち的にはAUDIO BOXと組み合わせたい気持ちがあったのですが,厳しい世の中です.

 

ここからはもう,暇すぎてしょうがないから無駄なこと書いているだけなのですが,今はDanbooruから取得したタグ情報を,手元にあるJPEGEXIFにタグ付けしています.ExifToolを使ってタグ付けしているのですが,なかなかこいつがプロセスを食って重たいです.進捗としてはあと2日ぐらいで全部にタグ付け終わりそうなのですが,その間に1TB相当のディスクを確保したいなと.でも確保できないんですね.

自分で1つ買おうかなと思っていますが,それは共有するつもりは全くないです() 研究室用のサーバにこれらのデータを丸ごと置くのもありなのですが,容量的にそれが可能なのかよくわからないのでどうなんでしょう? ちなみに,データの転送は1MB/秒ぐらいなので,全部転送するのにそれ相応の時間がかかります.なので,研究室費用でHDDを買って欲しいのですが,なかなか通らない.悔しい.

 

最近,どういうわけかレバーを猛烈に食べたい衝動でつらい.今日,めまいがつらいので調べてみたらレバーはビタミンB12を多く含んでいる.めまいはビタミンB12の欠乏で起きるらしい.どうやらそういうことらしい.とにかくレバーが食べたい.

この前,大学の近くの焼肉屋でレバーを食べたものの,ぜんぜん足りない気がした.すぐに欠乏するんだろう.めまいのする日はとにかく作業しづらいので,これだけはなんとか解決を試みたい.漢方薬局や耳鼻科を巡る必要があるかもしれない.

ビタミンB12製剤は,処方箋でもらうととても安い.700円ぐらいで2週間分.副作用がほとんど確認されないレベルなんだからお医者さんなしでこれを買いたいけれども,世の中の仕組みはそういうわけにはいかないので複雑だ.

 

一昨日にツイートしたAQUAPLUSのツイートが40RT,40favを超えて自己最高ベストになった.なんとなく嬉しい.かゆ,うま.