OSDN Ticket Archive


Ticket #39188

macOS版 内部シンセサイザ追加

登録: 2019-05-03 13:32 最終更新: 2019-05-03 15:14

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

詳細

内部シンセサイザを追加する。 Wavetableファイル(DLS/SF2)を指定可能とする。

iOS版の以下の機能をマージする。

  • #37955 iOS版 内部シンセサイザ追加

チケットの履歴

2019-05-03 13:32 更新者: yknk
  • 新しいチケット "macOS版 内部シンセサイザ追加" が作成されました
2019-05-03 13:32 更新者: yknk
コメント

仕様

  • 内部シンセサイザの名称は"Internal Wavetable Synthesizer"とする。
  • MIDI出力デバイスとして選択可能とする。
  • Wavetableファイル(DLS/SF2)を指定可能とする。
  • 拡張子が *.dls *.sf2 のファイルをMIDI OUT設定ダイアログで選択する。
  • 16チャンネルをサポートし、10チャンネルはパーカッション固定とする。
2019-05-03 13:33 更新者: yknk
コメント

対応方針

Appleが提供するサンプラーをそのまま利用することで、お手軽に対応する。 サンプラーについて十分な情報が公開されていないため、詳細な仕様と性能は不明。

2019-05-03 13:33 更新者: yknk
コメント

対策1:シンプルMIDIライブラリ修正

SMIDILib.h

参照するヘッダファイルを追加。

#import "SMWavetableSynthCtrl.h"

SMOutDevCtrlEx クラス

enum SMPortType にPortWavetableSynthを追加。 メンバに内部シンセ制御(SMWavetableSynthCtrl)のオブジェクトを追加。

SMOutDevCtrlEx::SetInternalSynthsizerWavetableFilePath

内部シンセWavetableファイルパス設定メソッドを追加。

SMOutDevCtrlEx::Initialize

内部シンセ制御の初期化処理を追加。

SMOutDevCtrlEx::GetDevNum

デバイス数に内部シンセを加算。

SMOutDevCtrlEx::GetDevDisplayName

内部シンセ制御のデバイス表示名取得処理を追加。

SMOutDevCtrlEx::GetDevIdName

内部シンセ制御のデバイス識別名取得処理を追加。

SMOutDevCtrlEx::GetManufacturerName

メーカー名取得メソッドを追加。出力デバイスからメーカー名を取得。

SMOutDevCtrlEx::SetDevForPort

内部シンセ制御のデバイス登録処理を追加。

SMOutDevCtrlEx::OpenPortDevAll

ポートに内部シンセが選択されている場合だけ、内部シンセのオープン処理を実行するように修正。

SMOutDevCtrlEx::ClosePortDevAll

内部シンセ制御のデバイスクローズ処理を追加。

SMOutDevCtrlEx::SendShortMsg

内部シンセ制御のMIDIデータ送信処理を追加。

SMOutDevCtrlEx::SendLongMsg

内部シンセ制御のMIDIデータ(ロングメッセージ)送信処理を追加。

SMOutDevCtrlEx::NoteOffAll

内部シンセ制御の全ノートオフ処理を追加。

SMSequencer::SetInternalSynthsizerWavetableFilePath

内部シンセWavetableファイルパス登録メソッドを追加。

SMSequencerThread::run

スレッド優先度を0.8から0.9に変更。内部シンセサイザを追加したため、おまじない。

SMLiveMonitor::SetInternalSynthsizerWavetableFilePath

内部シンセWavetableファイルパス登録メソッドを追加。

SMWavetableSynthCtrl クラス

Wavetableシンセ制御クラスを新規作成。

2019-05-03 13:33 更新者: yknk
コメント

対策2:MIDITrailアプリケーションクラス修正

MIDITrailApp

メンバにWavetableファイルURLオブジェクト(m_pWavetableFileURL)を追加。

MIDITrailApp::MIDITrailApp

WavetableファイルURLオブジェクトの初期化処理を追加。

MIDITrailApp::Terminate

WavetableファイルURLオブジェクトの解放処理を追加。

MIDITrailApp::OnMenuPlay

シーケンサへのWavetableファイルパス設定処理を追加。

MIDITrailApp::OnMenuStartMonitoring(

ライブモニタ制御へのWavetableファイルパス設定処理を追加。

MIDITrailApp::getWavetableFilePath

Wavetableファイルパス取得メソッドを追加。

2019-05-03 13:34 更新者: yknk
コメント

対策3:MIDI OUT設定ダイアログ修正

MTMIDIOUTCfgDlg

メンバにWavetableファイルパステキストフィールド(m_pEditWavetableFilePath)を追加。 メンバにWavetable用ユーザ設定オブジェクト(m_pUserConfWavetable)を追加。 メンバにWavetableファイルパスURLオブジェクト(m_pWavetableFileURL)を追加。

MTMIDIOUTCfgDlg::init

WavetableファイルパスURLの初期化処理を追加。

MTMIDIOUTCfgDlg::dealloc

Wavetable用ユーザ設定オブジェクトとWavetableファイルパスURLオブジェクトの破棄処理を追加。

MTMIDIOUTCfgDlg::onBtnWavetableFileBrowse

Wavetableファイル選択ボタン押下のイベントハンドラを追加。

MTMIDIOUTCfgDlg::onBtnWavetableFileClear

Wavetableファイルクリアボタン押下のイベントハンドラを追加。

MTMIDIOUTCfgDlg::initDlg

Wavetableファイルパス初期化処理呼び出しを追加。

MTMIDIOUTCfgDlg::initConfFile

Wavetable用ユーザ設定オブジェクトの初期化処理を追加。

MTMIDIOUTCfgDlg::initWavetableFilePath

Wavetableファイルパス初期化メソッドを追加。

MTMIDIOUTCfgDlg::save

Wavetable設定保存処理呼び出しを追加。

MTMIDIOUTCfgDlg::saveWavetable

Wavetable設定保存メソッドを追加。

MTMIDIOUTCfgDlg.xib

Wavetableファイルパスのテキストフィールド、ブラウズボタン、クリアボタンを追加。

2019-05-03 13:34 更新者: yknk
コメント

対策4:マニュアル改定

MIDI OUT設定ダイアログの説明を修正。

2019-05-03 15:14 更新者: yknk
  • 解決法なし から 修正済み に更新されました
  • 状況オープン から 完了 に更新されました

添付ファイルリスト

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