Ticket #39188

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

Eröffnet am: 2019-05-03 13:32 Letztes Update: 2019-05-03 15:14

Auswertung:
Verantwortlicher:
Status:
Geschlossen
Priorität:
5 - Mittel
Schweregrad:
5 - Mittel
Lösung:
Gefixt
Datei:
Keine

Details

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

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

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

Ticket-Verlauf (3/8 Historien)

2019-05-03 13:32 Aktualisiert von: yknk
  • New Ticket "macOS版 内部シンセサイザ追加" created
2019-05-03 13:32 Aktualisiert von: yknk
Kommentar

仕様

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

対応方針

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

2019-05-03 13:33 Aktualisiert von: yknk
Kommentar

対策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 Aktualisiert von: yknk
Kommentar

対策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 Aktualisiert von: yknk
Kommentar

対策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 Aktualisiert von: yknk
Kommentar

対策4:マニュアル改定

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

2019-05-03 15:14 Aktualisiert von: yknk
  • Lösung Update from Keine to Gefixt
  • Status Update from Offen to Geschlossen

Dateianhangliste

Keine Anhänge

Bearbeiten

Please login to add comment to this ticket » Anmelden