+++ /dev/null
-using System;\r
-using System.Collections.Generic;\r
-using System.Linq;\r
-using System.Text;\r
-using System.Threading.Tasks;\r
-using System.Windows.Forms;\r
-using System.Diagnostics;\r
-\r
-namespace DTXCreator.MIDIインポート\r
-{\r
- /// <summary>\r
- /// MIDIイベントのbaseクラス\r
- /// 手抜きのため、オリジナルのCMIDIチップクラスをほぼそのまま流用。\r
- /// </summary>\r
- abstract class CMIDIイベント\r
- {\r
- public enum Eイベントタイプ : int\r
- {\r
- NoteOnOff,\r
- BPM,\r
- BarLen,\r
- Unknown\r
- }\r
-\r
- public Eイベントタイプ eイベントタイプ;\r
- public int nレーン番号;\r
- public UInt32 n時間;\r
- public int nWAV;\r
- public int nキー;\r
- public bool b入力;\r
- public bool b裏チャンネル;\r
- public string strコメント;\r
- public int nベロシティ;\r
- public int nベロシティ_DTX変換後;\r
- public int nチャンネル0to15;\r
- public int n拍子分子;\r
- public int n拍子分母;\r
-\r
- public string strWAV重複チェック\r
- {\r
- get\r
- {\r
- return "" + nキー.ToString() + " : " + nベロシティ_DTX変換後.ToString();\r
- }\r
- }\r
-\r
-\r
- public CMIDIイベント()\r
- {\r
- this.eイベントタイプ = Eイベントタイプ.Unknown;\r
- }\r
-\r
- abstract public void 挿入( Cメインフォーム mf, int n四分音符の分解能 );\r
- }\r
-\r
-\r
- /// <summary>\r
- /// NoteOn/OffのMIDIイベント\r
- /// </summary>\r
- class CMIDINote: CMIDIイベント\r
- {\r
- public CMIDINote( UInt32 _n時間, int _nキー, int _nベロシティ, int _nチャンネル0to15 )\r
- {\r
- this.nレーン番号 = 2;\r
- this.n時間 = _n時間;\r
- this.nWAV = 1;\r
- this.nキー = _nキー;\r
- this.b裏チャンネル = false;\r
- \r
- this.nベロシティ = _nベロシティ;\r
- this.nベロシティ_DTX変換後 = _nベロシティ;\r
-\r
- this.nチャンネル0to15 = _nチャンネル0to15;\r
-\r
- this.eイベントタイプ = Eイベントタイプ.NoteOnOff;\r
- }\r
-\r
- public override void 挿入( Cメインフォーム mf, int n四分音符の分解能 )\r
- {\r
- mf.mgr譜面管理者.tチップを配置または置換する\r
- ( nレーン番号, (int) n時間 * ( 192 / 4 ) / n四分音符の分解能, nWAV, 0f, b裏チャンネル );\r
- }\r
- }\r
-\r
- /// <summary>\r
- /// テンポ変更のメタイベント\r
- /// </summary>\r
- class CMIDIBPM : CMIDIイベント\r
- {\r
- float fBPM;\r
- public CMIDIBPM( UInt32 _n時間, float _fBPM )\r
- {\r
- this.nレーン番号 = 2;\r
- this.n時間 = _n時間;\r
- this.nWAV = 1;\r
- this.fBPM = _fBPM;\r
-\r
- this.eイベントタイプ = Eイベントタイプ.BPM;\r
- }\r
-\r
- public override void 挿入( Cメインフォーム mf, int n四分音符の分解能 )\r
- {\r
- int nGrid = (int) n時間 * ( 192 / 4 ) / n四分音符の分解能;\r
- mf.mgr編集モード管理者.tBPMチップを配置する( nGrid, fBPM );\r
- }\r
- }\r
-\r
-\r
- /// <summary>\r
- /// 拍子変更のメタイベント\r
- /// </summary>\r
- class CMIDIBARLen : CMIDIイベント\r
- {\r
- public CMIDIBARLen( UInt32 _n時間, int _分子, int _分母 )\r
- {\r
- this.n時間 = _n時間;\r
- this.n拍子分子 = _分子;\r
- this.n拍子分母 = _分母;\r
- this.eイベントタイプ = Eイベントタイプ.BarLen;\r
- }\r
- public override void 挿入( Cメインフォーム mf, int n四分音符の分解能 )\r
- {\r
- // 事前の小節構築過程で拍子変更処理は完了しているため、ここでは何もしない\r
- }\r
- }\r
-}\r