Hiroaki

Programming

S98Player for iPhoneを申請してみた

S98Playerのダウンロード数から見ても明らかに需要があるとは思えないiPhone版のS98Playerですが、思うところあってAppStoreへ申請しました。 現在ステータスがWaiting for Reviewの段階です。 上のスクリーンショットでは21日に申請となっていますが、その後バグが見つかって自分で再投稿したりしていることもあり、まだ審査は始まっていません。 Mac版と比べて、 ファイルリストに曲名や演奏時間などが出るイコライザが使えるループ再生が終了する際にきちんとフェードアウトするOPMも対応している複数音源を使うデータにも対応している(パン振りは対応してない) などの点から高機能です(誰も使わないだろうけど)。バックグラウンド再生にも当然ですが対応しています。 また、内部の構造を見なおして無駄をだいぶ省いたので、使用するメモリ量も減りました。 まぁS98ファイルなんて既に巷には出回っていませんから、「S98ナニソレ?」な人には今のところ全く恩恵はないと思います。 ただ、時間に余裕ができたら(来年あたり...?)iPad向けにFM音源用のシーケンサを作ろうと思ってい...
Programming

S98Player Ver. 0.2を作った

4年ほど前にFM音源のサウンドログを再生するアプリを作ったのですが,最近FM音源づいていてちょっとだけコードを修正したので公開します.機能は全く変わっておらず,使い勝手も悪いままですが. ...そして誰も使わないとは思いますが. アプリはこちらからどうぞ→S98Player0.2ダウンロード 修正点は以下の通り. サンプリング周波数を44100Hzから55466Hzに変更.原音に近くなりました.S98v3のヘッダをもう少しきちんと読むように.UTF8,SJIS両方読めます.しかし基本的にOPNAのみの対応....10.5SDK上でコンパイルしたので10.5以降でしか動かないかも. OPNへの対応は,サウンドログファイルをもってないのでチェックできないんですよね.ま,基本的に自分用アプリなので問題ないんですけどね(無駄にiPhone向けに移植して一人楽しんでます).
Programming

続・FM音源の仕組みを視覚的に理解する

前回のエントリで簡単なFM音源もどきを作ったわけですが、どうも物足りなく感じたため(というか、なんとなく達成感がないというか...)、並列接続も可能な4オペレータ版を作成しました。 そして、オペレータ接続アルゴリズムも8種類から選べるようにしました。 単音しかなりませんが、機能的には、往年のYM-2203音源などと同じ程度のパラメータをいじれます(多少少ないんですが)。 FM音源って? という方は、是非前エントリをご一読ください。 ダウンロード アプリ:MacFM2_appダウンロード ソース:MacFM2_sourceダウンロード となります。 使い方 まぁ、大したことができないのは相変わらずですが...。 右下のプルダウンメニューでアルゴリズムが選べますので、それを選ぶと各オペレータの接続アルゴリズムが変わります。用意した接続アルゴリズムは8種類で、これはYAMAHAのOPN系音源に準じています。 接続アルゴリズムを選ぶと、プルダウンメニューの下に接続の模式図が現れますので、雰囲気はつかめるはずです。 感想 単純な直列だけだと「ふーん」ってな感じでしたが、並列もできるようになるとか...
スポンサーリンク
Programming

FM音源の仕組みを視覚的に理解する

FM音源って知ってますか? 今じゃ表立って耳にする機会も少ないですが、つい最近まで携帯電話の着メロなんかはこのFM音源を使ってました。 「機械っぽい音」なんていわれるとまぁその通りではあるんですが、往年のNEC製PCなどで使われていたこともあり、独特な音にファンも少なからずいたりします。 このFM音源、「FM (Frequency Modulation)」と名のつく通り「周波数変調」を利用して音を作っているのですが、これがイマイチよく分かりません。いや、Wikipediaの当該ページを見ると波形を導き出す式も載っていますし、それはそれで分かるんですが、その式をいくら見たところで「どんな音がするか」がよく分からない...。 様々なサイトで「周波数変調は、扇風機の前で声を出すとあ"あ"あ"あ"あ"〜〜〜と音が変わるのと同じ原理です」なんて説明されていたりするのですが、この説明は周波数変調がわかっている人にしか理解できないものだと思うのです。 ...というわけで、式を見ても分からないなら手を動かせ、ということで、単純なFM音源を鳴らすプログラムを組んでみました。 各オペレータの波形をリアルタ...
CAN

On-vehicle movie overlaying vehicle information using CANUSB

I overlaid various vehicle information (i.e. speed, rpm, and so on) extracted by CANUSB on my on-vehicle movie. HS-CAN Data At first, I tried to use information posted byMadox.NET, but unfortunately HS-CAN Data extracted by my RX-8 look totally different from Madox's one. I'm not sure why there are big differences. But one possible reason is that Madox's RX-8 is AT. My RX-8 is 2007 5MT model. RPM: ID 0x201, (data * 256 + data) / 4Vehicle Speed(km/h): ID 0x201, (data * 256 + data - 10000) / 100Ac...
CAN

CAN + Quartz Composer + 車載動画 = PS4動画?

RX-8 CANデータと車載動画を組み合わせてPS4的動画を作る CANデータを使った動画、もう少し派手めに...ということで、作ってみました。 といっても、CANのデータからいちいち速度などの情報を手で入力していては日がくれてしまうので、それらを自動でレンダリングする術を考えなければなりません。 今回は、Quartz Composerのカスタムパッチを作ることでCANログをQuartz Composerに取り込むことにしました。 Quartz Composer? Quartz Composerは、いわゆるビジュアルプログラミング環境です。Mac OS Xの開発環境(無料)に同梱されています。 これを使うと簡単にモーショングラフィクスを作成できるのですが、当然のことながらCANデータログを読み込んでくれるようなパッチはありませんので、それを自作することにしました。 昔はカスタムパッチの作成手順は公開されていなかったので面倒でしたが、今はオフィシャルの情報をたどると簡単に作ることができます。 Objective-C 2.0のプロパティなどを使うことで、パッチのポートの宣言なども煩雑になら...
CAN

CANデータを見るプログラムを動画にしてみた

走行中のRX-8車内コンピュータデータを読み取ってみる 先般のエントリにてRX-8のCANデータをグラフにしてみましたが、リアルタイム情報を車載動画にピクチャインピクチャとして重ね合わせた動画をつくり、ニコニコ動画にアップロードしました。 今までは見る専門だったので、どの程度の方に見て頂けるかはまったく未知数でしたが、一日経たない間に300人以上の方に見て頂けたようで。 人気動画とは比べものになりませんが、場末のブログにひっそり置いておくよりはよっぽど見て頂けるので嬉しいです。 次はもう少し派手目に作ります。
Programming

iPhoneのSafariを使って走行中の道路名をtweetしてみた

というわけで、サーバに展開した国交省のデータを使って、実際にTwitterでつぶやくようなアプリを作ってみました。 といっても、専用アプリを書くのは面倒なので、ひとまずはiPhoneのSafariからGPS情報をサーバに送りつぶやくようにしてみました。 仕組み iPhoneのSafariは、JavaScriptを利用して現在位置を取得するGeolocation APIに準拠しています。そこで、定期的にiPhoneから現在位置をサーバに投げてやり、サーバ側で道路名を解析してTwitterにツイートさせてやるような仕組みを作りました。 iPhoneのSafariでGPS情報を扱う方法は、Ascii.jpのiPhoneのGPSをJavaScriptで操ろうという記事が参考になります。 ...というか、今回やったことはこの6ページ目にあるサンプル03をちょいといじっただけです。 ここのソースコードにupdate関数があり、位置情報が更新された際に呼び出されます。結構これは頻繁に呼び出されるので、たとえば10分おきにサーバに情報を伝えたい、なんてときには、update関数の最後あたりに var ...
Programming

せっかくなので道路をGoogleMaps上にプロットする

前回のエントリで記したとおり、自分が道路上にいるかどうかを調べるためには、そもそも道路のデータを保持していなければなりません。 このデータを使って地図上に高速道路や国道のラインをプロットすることが出来ます。 最初、前回のエントリで作ったデモに組み込もうと思って試しにやってみたんですが、位置データが多すぎるため、blazedsを使って単純にサーバからクライアントにプッシュするとTomcatが落ちてしまいました...(たぶんシリアル化する時に落ちてる)。 GoogleMaps APIを調べてみると位置データをエンコード化して読み込ませるというオプションがあったので、サーバ側でデータをエンコードした上でクライアントにプッシュすることで、そちらを実装してみたらうまくいったので公開します。 あ、そうそう、前回のデモでは関東圏だけしか動きませんでしたが、DBをアップデートしたので、今は日本全国調べられます。 説明 前回のデモに追加で実装したので、前回のサイト(停止しました)を訪れて同じように動かすだけです。 前回は、地図中心点に道路があるかどうかを調べ、道路に名前がついていればその旨表示するだけで...
Programming

緯度経度から、その場所を走っている道路名を調べる

うわー、これまたタイトルからしてニッチ(笑 最近、「流行っている」と形容するのも恥ずかしいtwitterですが、「○○なう」などとつぶやいている人が結構見受けられます。「○○」にはその時訪れた場所だったり、その際やっている行動だったりが入るわけなんですが。 これ、車の運転中にはできないですよね、危なくて。なので、つぶやきをそれっぽく自動化できないか考えてみた訳なんですが...。 前回のエントリでは車の中を流れる各種データを取り出すことが出来たので、たとえば、エンジンを切らずに速度0が一定時間続いた回数をして「(ほぼ)信号待ちの回数」としてカウントし、「信号待ち100回目なう」などとつぶやくことは出来そうです。あるいは、制限速度を超えたら「現在XXkm/hで巡航中。○○県警かかってこいや」とつぶやくことも可能でしょう(よい子はまねしちゃいけません)。 ...ただまぁ、大がかりなわりにはあまり面白そうなつぶやきのネタにはならなそうですし、第一この設備が一般的ではないので、他の人にとっては「ふーん」程度であまり参考にならないです(自分で運転を解析するにはとても面白い情報なんですけどね)。 そ...
スポンサーリンク