2 using System.Collections.Generic;
5 using System.Threading.Tasks;
6 using System.Windows.Forms;
7 using System.Diagnostics;
9 namespace DTXCreator.MIDIインポート
13 /// 手抜きのため、オリジナルのCMIDIチップクラスをほぼそのまま流用。
15 abstract class CMIDIイベント
17 public enum Eイベントタイプ : int
25 public Eイベントタイプ eイベントタイプ;
32 public string strコメント;
34 public int nベロシティ_DTX変換後;
35 public int nチャンネル0to15;
39 public string strWAV重複チェック
43 return "" + nキー.ToString() + " : " + nベロシティ_DTX変換後.ToString();
50 this.eイベントタイプ = Eイベントタイプ.Unknown;
53 abstract public void 挿入( Cメインフォーム mf, int n四分音符の分解能 );
58 /// NoteOn/OffのMIDIイベント
60 class CMIDINote: CMIDIイベント
62 public CMIDINote( UInt32 _n時間, int _nキー, int _nベロシティ, int _nチャンネル0to15 )
70 this.nベロシティ = _nベロシティ;
71 this.nベロシティ_DTX変換後 = _nベロシティ;
73 this.nチャンネル0to15 = _nチャンネル0to15;
75 this.eイベントタイプ = Eイベントタイプ.NoteOnOff;
78 public override void 挿入( Cメインフォーム mf, int n四分音符の分解能 )
80 mf.mgr譜面管理者.tチップを配置または置換する
81 ( nレーン番号, (int) n時間 * ( 192 / 4 ) / n四分音符の分解能, nWAV, 0f, b裏チャンネル );
88 class CMIDIBPM : CMIDIイベント
91 public CMIDIBPM( UInt32 _n時間, float _fBPM )
98 this.eイベントタイプ = Eイベントタイプ.BPM;
101 public override void 挿入( Cメインフォーム mf, int n四分音符の分解能 )
103 int nGrid = (int) n時間 * ( 192 / 4 ) / n四分音符の分解能;
104 mf.mgr編集モード管理者.tBPMチップを配置する( nGrid, fBPM );
112 class CMIDIBARLen : CMIDIイベント
114 public CMIDIBARLen( UInt32 _n時間, int _分子, int _分母 )
119 this.eイベントタイプ = Eイベントタイプ.BarLen;
121 public override void 挿入( Cメインフォーム mf, int n四分音符の分解能 )
123 // 事前の小節構築過程で拍子変更処理は完了しているため、ここでは何もしない