Ticket #37955

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

Eröffnet am: 2018-02-12 01:34 Letztes Update: 2018-02-20 01:30

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

Details

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

Ticket-Verlauf (3/10 Historien)

2018-02-12 01:34 Aktualisiert von: yknk
  • New Ticket "iOS版 内部シンセサイザのサポート" created
2018-02-12 01:34 Aktualisiert von: yknk
  • Details Updated
2018-02-12 02:03 Aktualisiert von: yknk
  • Summary Updated
  • Details Updated
2018-02-19 01:12 Aktualisiert von: yknk
Kommentar

仕様

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

対応方針

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

2018-02-19 01:14 Aktualisiert von: yknk
Kommentar

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

SMAppleDLSDevCtrl

未使用のためヘッダファイルとmmファイルを削除する。

SMIDILib.h

参照するヘッダファイルを更新

変更前
#import "SMAppleDLSDevCtrl.h"
変更後
#import "SMWavetableSynthCtrl.h"

SMOutDevCtrlEx クラス

enum SMPortType の PortAppleDLSDevice をPortWavetableSynthに差し替え。 メンバに保持していたApple DLS Music Device (SMAppleDLSDevCtrl)のオブジェクトを、 内部シンセ(SMWavetableSynthCtrl)のオブジェクトに差し替え。 これに伴い、m_AppleDLSDevCtrlに対してメソッドを呼び出している箇所を、 すべてm_WavetableSynthCtrlに差し替え。

SMOutDevCtrlEx::SetInternalSynthsizerWavetableFilePath

ウェーブテーブルファイルパス設定メソッドを追加。

SMOutDevCtrlEx::GetManufacturerName

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

SMOutDevCtrlEx::OpenPortDevAll

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

SMSequencer クラス

MIDI出力デバイス制御(SMOutDevCtrl)のメンバを、拡張MIDI出力デバイス制御(SMOutDevCtrlEx)のメンバに差し替え。

SMSequencer::SetInternalSynthsizerWavetableFilePath

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

SMSequencerThread::run

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

SMLiveMonitor クラス

MIDI出力デバイス制御(SMOutDevCtrl)のメンバを、拡張MIDI出力デバイス制御(SMOutDevCtrlEx)のメンバに差し替え。

SMLiveMonitor::SetInternalSynthsizerWavetableFilePath

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

SMWavetableSynthCtrl クラス

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

(Edited, 2018-02-19 23:00 Aktualisiert von: yknk)
2018-02-19 01:14 Aktualisiert von: yknk
Kommentar

対策2:MIDITrail本体修正

MIDITrailApp::getWavetableFilePath

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

MIDITrailApp::onPlayButton

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

MIDITrailApp::onStartMonitoring

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

MTFileViewCtrl::makeFileList

MIDIファイル一覧を作成するとき、拡張子が *.dls *.sf2 のファイルを無視するように修正。

MTSettingBGIMGViewCtrl::makeFileCellForIndexPath

画像ファイルが存在しない場合のメッセージにファイル拡張子を追記。

MTSettingMIDIOutDevViewCtrl クラス

MIDI出力デバイス制御(SMOutDevCtrl)のメンバを、拡張MIDI出力デバイス制御(SMOutDevCtrlEx)のメンバに差し替え。

MTSettingViewCtrl クラス

MIDI出力デバイス制御(SMOutDevCtrl)のメンバを、拡張MIDI出力デバイス制御(SMOutDevCtrlEx)のメンバに差し替え。 Wavetable選択ビュー(MTSettingWavetableViewCtrl)のメンバを追加。

MTSettingViewCtrl::initWithNibName

Wavetable選択ビューの生成処理を追加。

MTSettingViewCtrl::numberOfSectionsInTableView

内部シンセサイザ設定セクション追加に伴うセクション数変更を反映。

MTSettingViewCtrl::tableView titleForHeaderInSection

内部シンセサイザ設定セクション追加に伴うセクションヘッダ追加。

MTSettingViewCtrl::tableView numberOfRowsInSection

内部シンセサイザ設定セクション追加に伴うセクション内項目数を追加。

MTSettingViewCtrl::tableView cellForRowAtIndexPath

内部シンセサイザ設定セクション追加に伴うセル作成処理を追加。

MTSettingViewCtrl::makeInternalSynthsizerCellForIndexPath

内部シンセサイザ用セル作成メソッドを追加。

MTSettingViewCtrl::onSelectInternalSynthesizerCellForIndexPath

内部シンセサイザ用セル選択イベントメソッドを追加。 Wavetableファイル選択ビューを表示。

MTSettingWavetableViewCtrl クラス

Wavetableファイル(DLS/SF2)選択ビュークラスを新規追加。

(Edited, 2018-02-19 23:01 Aktualisiert von: yknk)
2018-02-19 01:15 Aktualisiert von: yknk
Kommentar

対策3:DLS/SF2ファイル読み込み対応

Targets: MIDITrail / Info / Document Types に次の二項目を追加。 Webブラウザやメールで *.dls *.sf2 ファイルを開いたときの"Open in..."に対応する。

----
Name: Downloadable Sounds
Types: public.downloadable-sound
----
Name: SoundFont
Types: com.soundblaster.soundfont
----

2018-02-19 01:15 Aktualisiert von: yknk
Kommentar

対策4:マニュアル改定

マニュアルの「3.導入方法 (2)音源の準備」を改定し、内部ウェーブテーブルシンセサイザを利用する方法を追記。 説明用の画像を追加する共に、既存の画像を作り直した。(Sound1.png, Sound2.png, Sound3.png) マニュアルの「5.設定 (4) Internal Wavetable Synthesizer」を追加。

2018-02-20 01:30 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