Java言語による 「DTM アプリケーション」の開発 ~Java Sound API の利用~ 北海道情報大学 情報メディア学部 情報メディア学科 新井山ゼミ 0421605 迫 大志 発表内容(目次) 1. 2. 3. 4. 制作概要 制作目的 研究内容 開発成果 5. 6. 7. 8. 評価 考察 今後の課題 参考文献 制作概要 • 制作目的 – DTMアプリケーションの開発 • 制作手順 – 1.必要機能の洗い出し – 2.機能の実現手段の模索 – 3.機能を実装 – 4.2~3繰り返し • 成果 – 実際のアプリケーション 制作目的 • 目的 – Javaプログラミング能力向上 • アプリケーション制作 • GUIの制作技術向上 • DTMプログラミングの知識修得 – DTMの新規参入者獲得 • DTMソフトウェアが高価 研究内容 • Java Sound API – 入出力への効果と制御のための低レベル API – 利用パッケージ • Java.Sound.midi.* – MIDI イベントの転送 – シーケンシング – イベントからのサウンドを合成 研究内容 • MIDI基礎知識 – MIDI Message • ノートオン,ノートオフ,プログラムチェンジ,etc... – Tick • MIDIで使われる時間の単位 – Event • MIDI MessageにTickを指定 – Track • Eventの集まり 研究内容 • MIDIファイルの構造 – SMF(Standard MIDI File) • MIDIファイルの共通保存形式 • ヘッダーブロック – ファイルデータの基本情報 » フォーマット等 • トラックブロック – 実際の演奏情報 » MIDIチャンネルメッセージ等 研究内容 • GM(General MIDI) – 音色の種類や番号などを共通に定義したもの – GM基本仕様 • チャンネル – 音声情報を伝達するケーブルのようなもの » 各チャンネルで個別の音色を演奏 » 10chのみ鍵盤(ピッチ)ごとにリズム音色指定 • 音色数 – プログラムナンバーに対応した128音色 – パーカッションマップに対応した47音色 開発成果 • DTMアプリケーション – 動作環境 • JRE 1.6.0_03以上 – SMFファイルフォーマット1 • フォーマット0 – 1Trackで構成されたファイル • フォーマット1 – 複数Trackを含む、主にチャンネルを2系統以上 使用したい時に使われる仕様 開発成果 • Fileメニュー – 新規作成 – ファイル入力 – ファイル出力 • Trackメニュー – Track追加削除 • プロジェクトタブ – プロジェクトファイル 名などを表示 開発成果 • Sound Panelタブ – – – – Trackの表示 チャンネル表示 音色情報表示 ミュート設定 開発成果 • Piano Rollタブ – Track内イベント表示 – Eventの設置 • 1px1Tickの設定 • クリックでノートオン・オフ時のTickを指定 – Sequencerの再生・停止・一時停止 評価 • Javaプログラミング能力の向上 – GUIについての理解と知識は向上 – JavaでのDTMプログラミングに必要な知識不足 • 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 サウンド編 – 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
© Copyright 2025 ExpyDoc