OSDN Ticket Archive


Ticket #23973

MIDITrail for Mac OS X 開発

登録: 2010-12-26 13:49 最終更新: 2010-12-26 15:33

報告者:
yknk
担当者:
yknk
チケットの種類:
機能リクエスト
状況:
完了
コンポーネント:
MIDITrail Ver.1.1.x for Mac OS X
マイルストーン:
Version 1.1.2 for Mac OS X (完了済み)
優先度:
7
重要度:
7
解決法:
修正済み
ファイル:
なし

詳細

MIDITrail for Mac OS X を開発する。 MIDITrail for Ver.1.1.1 Windowsのソースコードをベースとする。

チケットの履歴 (2 件中 2 件表示)

2010-12-26 13:49 更新者: yknk
  • 新しいチケット "MIDITrail for Mac OS X 開発" が作成されました
2010-12-26 15:33 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました
  • チケット完了時刻2010-12-26 15:33 に更新されました
コメント

対策

ターゲット

  • 2007年10月 Mac OS X 10.5 (Leopard) 発売開始
  • 2009年08月 Mac OS X 10.6 (Snow Leopard) 発売開始

対応OSはMac OS X 10.5(Leopard)とする。 10.5はリリースから3年経過しており、ほとんどのMacユーザが10.5以降を利用しているだろう。 10.6はリリースから1年しか経過していないため、10.6のみでは対象ユーザが限定される。

対応CPUはintel CPUのみとする。PowerPCはサポートしない。 MIDITrailは高いグラフィック性能を必要しており、 PowerPC Macに搭載されているグラフィックチップでは十分に動作しない可能性がある。

そもそも、手元に10.5搭載のPowerPC Macが存在せず、 存在したとしても個人では異なるアーキテクチャまでサポートしきれない。 (エンディアンで苦労しそう・・・)

一方intel Macの発売開始は2006年1月のため、対応OS(Mac OS X 10.5)の リリース時期と十分マッチしている。

移植方針

  • なるべくWindows版のソース(C++)をそのまま適用する。
  • 新規に作成するコードもなるべくC++で記述する。
  • どうしてもCocoaを利用しなければならないときはObjective-Cを利用する。

C / C++ / Objective-C は混在して記述可能である。 これをよく知らないままSMIDILibをObjective-Cで書き直したところ、 MIDIデータの読み込みに3秒程度かかるようになった。 パフォーマンスを分析したところ、C++の4~5倍の処理時間を要していた。 Objective-Cはメソッド呼び出しコストが高いため、大量のデータを扱うようなケースで遅くなる。 よってSMIDILibはC++に書き戻した。

技術要素

Mac OS Xへの移植にあたり、ポイントとなる技術要素の一覧を以下に示す。 これらのポイントをそれぞれ切り替えることになる。

項目WindowsMac OS X
基本制御Win32APICocoa
MIDI制御Multimedia APICoreMIDI
3DCG制御DirectX 9.0cOpenGL 2.1
開発環境Visual Studio 2008Xcode

開発環境

  • Mac OS X 10.6 (Snow Leopard)
  • Xcode 3.2.4
  • Mac mini (Mid 2007)

動作検証時のみ、Mac miniをMac OS X 10.5で起動する。 Xcode 3.2はMac OS X 10.6でしか動作しないため。

添付ファイルリスト

添付ファイルはありません