Hatena::Groupgeneration1986

もろこしヘッド出張版

2008-04-03

SPP (ソング ポジション ポインタ) による再生位置変更イベントの同期処理

| 23:12

みけと他の DAW 等を組み合わせて使えるようにするんだ!→ 何故かソングポジションポインタ(以下 SPP)メッセージを送信しても反応してくれない → Reason って SPP に対応してないの? → Cubase で確認したらちゃんと同期出来た → なにがなんでもやったるけんのう

(8時間半経過)

でけたー!!!!!! ← イマココ!

デフォルトのレシーバでは SPP とソングセレクトメッセージだけ反応しないという謎な挙動によるものでした(フォーマットが正しいかとかはちゃんとチェックされてるし、それ以外のメッセージは Windows 側で設定した MIDI Yoke NT: 1 へ送られている)。Sun の Real Time Sequencer が SPP 達をフィルタリングしてたのかも。明示的にデバイスを指定してやればうまくいきます。

MidiDevice device;
Receiver   receiver;

:

MidiDevice.Info[] infos = MidiSystem.getMidiDeviceInfo();

for (int i = 0; i < infos.length; i++) {
    MidiDevice.Info info = infos[i];
    
    if (info.getName().equals("MIDI Yoke NT:  1") && info.getDescription().equals("External MIDI Port")) {
        device = MidiSystem.getMidiDevice(info);
    }
}

if (device == null) {
    receiver = MidiSystem.getReceiver();
} else {
    device.open();
    receiver = device.getReceiver();
}

: (receiver にメッセージを送って思う存分ちゃかぽこ鳴らす)

receiver.close();
if (device != null) {
    device.close();
}

こんな感じに MIDI Yoke NT: n のレシーバを取得すれば SPP もうまく行き渡るです。やはり「中途半端にうまくいく」は危険ですな。久々にハマった。

miskymisky2008/04/04 01:48まくぶくでコード書いて更新しては DELL のほうに移ってテストの繰り返しで、なんというかこう世の中には癒しが足りないと思った。

2008-04-01

くそみそコンパイル.mp3

| 11:51

私は全宇宙の全真理・全哲学を凌駕する存在となりました。一人二役です。存分に引くがよい。

追伸. そういえば GCC とか全然使ったことがないんで正しいこと言ってるかどうかわからんですあと徹夜明けなので眠い

miskymisky2008/04/01 11:51エイプリルフールだから何かしなきゃと思って何かしてみたらこんなことになりましたひどい。これは全て相棒のせいだそうに違いない。去年書きかけたシナリオを完結させてフルボイスでお送りするべきだという相棒の強い意向に応えたつもりですが作業終わった後ちょっと失望した。 MacBook のマイクで録音したのでノイズ混じりだったりしますがノイズリダクションがめんどくなったのでパスです。数時間で作ったのでかなり端折ってたり正しいこと言ってるか分からないというかこう眠い。徹夜明けです。ボクを見捨てないで。

自分の中では 4月1日 = 嘘をつく日 ではなく 前衛的馬鹿(プログレッシヴ-バカ)になる日 という認識です駄目すぎる

miskymisky2008/04/01 11:52黒歴史の増やし方を知ったいい日だった

miskymisky2008/04/01 11:54(あまりにもひどいので出張版限定で貼りますです)

wakataka_423wakataka_4232008/04/01 12:03ウホッ、いいコンパイラ

talootaloo2008/04/01 21:45俺のスパゲッティコード、リファクタリングしろ

miskymisky2008/04/03 16:31アッー!

2008-03-17

キューゼロが紛れ込んだようです

| 01:45

Twitter: @misky - http://twitter.com/misky

ニコニコ: http://www.nicovideo.jp/user/280138

中学の頃からリアルタイムレンダリング技術に興味を持ち、独学で C/C++, D, Java, Ruby, Lua/Squirrel, HTML/CSS, (GLSL) とか勉強しました。現在は Java (正確には Proce55ingJava モード) で "コード進行アシスタント付きシーケンサ" を作っています。ちと文字列だけでは説明し辛いので、近いうちにニコニコに開発過程動画を上げる予定です。

  • 以下、日記のプロフィールからの転載

合唱指揮者と古楽器奏者のもとに生まれる。そのため物心付いた頃からピアノを触っていたが、全く指導を受けなかったので「感覚だけで弾く」というスタイルが定着してしまった。

楽譜が読めないので、弾きたい曲は 採譜→暗譜 をしてから弾いている。実は今でも楽譜が読めない。でも Reason だったらそんなのかんけーないもんね!


中学 1 年生の夏休み、たまたま立ち寄った書店で C と出会う。main を mein と書き間違えて、Hello World するまで 1 時間近く悩んだ経歴あり。アホの子確定。

しばらく LSI-C 試食版で遊ぶ。


中学 2 年生になってコンパイラを Borland C++ Compiler 5.5.1 に乗り換えた。Lua の存在を知ったのもこの頃。

それと HTML の勉強がてら、Web サイトを立ち上げた。今となっては良い黒歴史。

学校の行事にどうしても必要だったため Flash MX を購入。以後時々 Flash で遊ぶようになる。


中学 3 年生になり SDL | OpenGL の組み合わせで幸せになれることに気付く。ゴミプログラムを大量生産したが、この頃のノウハウは現在まで受け継がれることとなる。

もろこしヘッドにて日記をつけはじめ、Mist Engine の開発に着手。CSS をいじりはじめたのも同時期。


高校 1 年生。Lua を組み込んでみたり GLSL でシェーダを書いてみたり。その中で個人的に有限会社 eHeadLine の山下社長と話す機会が得られた。やはりサーバサイドでは Java が主戦力だと知り勉強しようとするも、モチベーションが上がらず。

とりあえず OOP が出来る言語でもやっておくかということで C++ 開始。コンパイラは VC を使うようになった (けど IDE は苦手)。


id:shinichiro_h さんに SDL-OFF に誘われる。プログラマの方とオフで会ったのはこれが初めてだった。

なんとも濃ゆい時間を過ごしたのち、帰りの電車で 「C++ の初期化リスト (の構文) はちょっとキモい」 みたいなことを言ったら褒められた。


高校 2 年生。音声の再生に OpenAL を使い始める。また、SDL の周辺ライブラリを活用して文字列の描画を OpenGL 上で行ったり、動画テクスチャを実装したりした。

Variance Shadow Maps を Pure GLSL で実装することに成功。また、Squirrel を組み込んだりもした。

この頃から 「うまくいかない時はとりあえずライブラリのソースを見に行く」 という癖が付く。


高校3年生。Mist Engine の記述言語を D に移行。ありがとう。いい薬です。

miskyworks.net を立ち上げる。id:shinichiro_h さんが ICFPC 2007 に D と Ruby で参加されていたことに影響されてか、しばらくして Ruby をはじめる。人工無脳リヴァを書き、毎日自立して日記を書くようにした。(コメントを送信するとすぐにリヴァが返事を返してきます)