Java言語による 「DTM アプリケーション」の開発 ~Java Sound API の利用~ 北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ 0421605 迫 大志
発表内容(目次) 制作概要 制作目的 研究内容 開発成果 評価 考察 今後の課題 参考文献
制作概要 制作目的 制作手順 成果 DTMアプリケーションの開発 1.必要機能の洗い出し 2.機能の実現手段の模索 3.機能を実装 4.2~3繰り返し 成果 実際のアプリケーション
制作目的 目的 Javaプログラミング能力向上 DTMの新規参入者獲得 アプリケーション制作 GUIの制作技術向上
研究内容 Java Sound API 入出力への効果と制御のための低レベル API 利用パッケージ Java.Sound.midi.* シーケンシング イベントからのサウンドを合成
研究内容 MIDI基礎知識 MIDI Message Tick Event Track ノートオン,ノートオフ,プログラムチェンジ,etc... Tick MIDIで使われる時間の単位 Event MIDI MessageにTickを指定 Track Eventの集まり
研究内容 MIDIファイルの構造 SMF(Standard MIDI File) MIDIファイルの共通保存形式 ヘッダーブロック ファイルデータの基本情報 フォーマット等 トラックブロック 実際の演奏情報 MIDIチャンネルメッセージ等
研究内容 GM(General MIDI) 音色の種類や番号などを共通に定義したもの GM基本仕様 チャンネル 音声情報を伝達するケーブルのようなもの 各チャンネルで個別の音色を演奏 10chのみ鍵盤(ピッチ)ごとにリズム音色指定 音色数 プログラムナンバーに対応した128音色 パーカッションマップに対応した47音色
開発成果 DTMアプリケーション 動作環境 SMFファイルフォーマット1 JRE 1.6.0_03以上 フォーマット0 1Trackで構成されたファイル フォーマット1 複数Trackを含む、主にチャンネルを2系統以上 使用したい時に使われる仕様
開発成果 Fileメニュー Trackメニュー プロジェクトタブ 新規作成 ファイル入力 ファイル出力 Track追加削除 プロジェクトファイル 名などを表示
開発成果 Sound Panelタブ Trackの表示 チャンネル表示 音色情報表示 ミュート設定
開発成果 Piano Rollタブ Track内イベント表示 Eventの設置 Sequencerの再生・停止・一時停止 1px1Tickの設定 クリックでノートオン・オフ時のTickを指定 Sequencerの再生・停止・一時停止
評価 Javaプログラミング能力の向上 DTMアプリケーション GUIについての理解と知識は向上 改善点多々 機能不足 市販のものとは比べ物にならない DTMアプリケーションを制作する上でのノウハウ 獲得
考察 知識の不足箇所 機能不足 DTMプログラミング Channelのミュート方法 Event設置時のマーカー表示 Tickを固定長にして選択 Velocityの変化 他規格への互換 etc... DTMプログラミング Java Sound APIでの実現方法の模索
今後の課題 不足機能の実装 機能の拡張 MIDI MessageにVelocityの変化を実装 Tickを固定長にして選択 音符ごとの固定長に指定 Soundbankの選択 デフォルトのsoundbankが存在すると認識しないので JREに含まれるsoundbank.gmを削除すること 他規格への互換 GUI外装の装飾 機能の拡張 VSTなどソフトウェア・シンセサイザの利用 MIDI機器への入出力
参考文献 Java で Hello World サウンド編 Java で MIDI にこんにちは Java Sound プログラマーズガイド http://www.hellohiro.com/sound.htm Java で MIDI にこんにちは http://www.cwbp.com/mdpw/java/ Java Sound プログラマーズガイド http://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/ sound/programmer_guide/contents.html 詳説MIDI規格 http://www.pluto.dti.ne.jp/~daiki/Midi/Midi.html