using System.IO;\r
using System.Drawing;\r
using System.Diagnostics;\r
+using System.Xml;\r
+using System.Runtime.Serialization;\r
using DTXCreator.譜面;\r
using DTXCreator.WAV_BMP_AVI;\r
using DTXCreator.Properties;\r
if ((bool)cMIDI.dgvチャンネル一覧.Rows[vMIDIイベント.nチャンネル0to15].Cells["ChLoad"].Value)\r
{\r
cMIDI.nドラムチャンネルのキー毎のノート数[vMIDIイベント.nキー] ++;\r
- }\r
}\r
}\r
+ }\r
for ( int i = 0 ; i < 128 ; i++ )\r
this.dgv割り当て一覧.Rows[127-i].Cells["Notes"].Value = cMIDI.nドラムチャンネルのキー毎のノート数[i];\r
\r
case 78 : str楽器名 = "Mute Cuica"; break;\r
case 79 : str楽器名 = "Open Cuica"; break;\r
case 80 : str楽器名 = "Mute Triangle"; break;\r
- case 81 : str楽器名 = "Open Triangle"; break;\r
- }\r
+ case 81 : str楽器名 = "Open Triangle"; break; }\r
this.dgv割り当て一覧.Rows.Add( i, strキー名[i%12], strレーン名, b裏チャンネル, 0, str楽器名 );\r
\r
// 黒鍵に色付け\r
\r
this.dgv割り当て一覧.FirstDisplayedScrollingRowIndex = 81;//key35=LBDが表示される位置\r
\r
+ if (Control.IsKeyLocked(Keys.CapsLock))\r
+ {\r
+ tMIDIインポート設定をファイルから読み込む();\r
+\r
+ }\r
+ else\r
+ {\r
+ tMIDIインポート設定をファイルに保存する();\r
+ }\r
}\r
\r
public void tMIDIチャンネル一覧を作成する()\r
// チャンネル一覧で選択されているものと、ノートのみ数える\r
if ( !vMIDIイベント.b入力 || vMIDIイベント.eイベントタイプ != CMIDIイベント.Eイベントタイプ.NoteOnOff ) continue;\r
\r
- string str = "" + vMIDIイベント.nレーン番号 + ":" + vMIDIイベント.n時間;\r
- if ( lMIDIイベント_重複.Contains( str ) ) cMIDI.n重複チップ数 ++;\r
- else lMIDIイベント_重複.Add( str );\r
- }\r
+ string str = "" + vMIDIイベント.nレーン番号 + ":" + vMIDIイベント.n時間;\r
+ if ( lMIDIイベント_重複.Contains( str ) ) cMIDI.n重複チップ数 ++;\r
+ else lMIDIイベント_重複.Add( str );\r
+ }\r
\r
this.label重複チップ数.Text = resource.GetString("label重複チップ数.Text") + " : " + cMIDI.n重複チップ数;\r
}\r
\r
// 最終拍子イベント以降、曲最後までの小節について、この先のロジックで小節長を変更するために、ダミーで最後に拍子変更のイベントを入れる。\r
\r
- int n最終分子 = 1;\r
- int n最終分母 = 1;\r
+ int n最終分子 = 4;\r
+ int n最終分母 = 4;\r
int n最終時間 = (int)cml[ cml.Count - 1 ].n時間;\r
\r
cml.Reverse();\r
}\r
cml.Reverse();\r
\r
- if ( n最終時間 >= 0 )\r
+ //if ( n最終時間 >= 0 )\r
{\r
cml.Add( new CMIDIBARLen( (UInt32)n最終時間, n最終分子, n最終分母 ) );\r
}\r
-\r
+ /*\r
// 拍子変更以外のイベントが小節外にある時チップが配置されなかったので最初のcm.eイベントタイプ条件式をなくした\r
this.formメインフォーム.mgr譜面管理者.dic小節.Clear();\r
foreach ( CMIDIイベント cm in cml )\r
}\r
}\r
}\r
-\r
+ */\r
// 最初のcm.eイベントタイプ条件式をなくす変更前\r
- /*\r
+ \r
foreach ( CMIDIイベント cm in cml )\r
{\r
if ( cm.eイベントタイプ == CMIDIイベント.Eイベントタイプ.BarLen )\r
}\r
}\r
}\r
- }*/\r
- }\r
+ }\r
+ }\r
\r
/// <summary>\r
/// WAVリストを順番にソートする\r
}\r
}\r
\r
+// [Serializable]\r
+ [DataContract]\r
+ [KnownType( typeof( DTXC_MIDIConvSetting ) )]\r
+ public struct DTXC_MIDIConvSetting\r
+ {\r
+ [DataMember]\r
+ public int MIDI_Key;\r
+ [DataMember]\r
+ public string DTX_Lane;\r
+ [DataMember]\r
+ public bool BackCH;\r
+\r
+ public DTXC_MIDIConvSetting(int _MIDI_Key, string _DTX_Lane, bool _BackCH)\r
+ {\r
+ MIDI_Key = _MIDI_Key;\r
+ DTX_Lane = _DTX_Lane;\r
+ BackCH = _BackCH;\r
+ }\r
+ }\r
+ \r
+ private void tMIDIインポート設定をファイルに保存する()\r
+ {\r
+ DTXC_MIDIConvSetting[] mcs = new DTXC_MIDIConvSetting[ 128 ];\r
+\r
+ for (int i = 0; i < 127; i++)\r
+ {\r
+ mcs[ i ].MIDI_Key = (int) this.dgv割り当て一覧.Rows[ i ].Cells[ "MIDI_Key" ].Value;\r
+ mcs[ i ].DTX_Lane = (string) this.dgv割り当て一覧.Rows[ i ].Cells[ "DTX_Lane" ].Value;\r
+ mcs[ i ].BackCH = (bool) this.dgv割り当て一覧.Rows[ i ].Cells[ "BackCH" ].Value;\r
+ }\r
+\r
+ using ( var stream = new FileStream( "DTXCreatorSMFSettings.xml", FileMode.Create ) )\r
+ {\r
+ var serializer = new System.Xml.Serialization.XmlSerializer( typeof( DTXC_MIDIConvSetting[] ) );\r
+ serializer.Serialize( stream, mcs );\r
+ }\r
+ }\r
+ private void tMIDIインポート設定をファイルから読み込む()\r
+ {\r
+ DTXC_MIDIConvSetting[] mcs; //= new DTXC_MIDIConvSetting[ 128 ];\r
+\r
+ using ( var stream = new FileStream( "DTXCreatorSMFSettings.xml", FileMode.Open ) )\r
+ {\r
+ var serializer = new System.Xml.Serialization.XmlSerializer( typeof( DTXC_MIDIConvSetting[] ) );\r
+ mcs = (DTXC_MIDIConvSetting[]) serializer.Deserialize( stream );\r
+ }\r
+\r
+ for ( int i = 0; i < 127; i++ )\r
+ {\r
+ this.dgv割り当て一覧.Rows[ i ].Cells[ "MIDI_Key" ].Value = mcs[ i ].MIDI_Key;\r
+ this.dgv割り当て一覧.Rows[ i ].Cells[ "DTX_Lane" ].Value = mcs[ i ].DTX_Lane;\r
+ this.dgv割り当て一覧.Rows[ i ].Cells[ "BackCH" ].Value = mcs[ i ].BackCH;\r
+ this.dgv割り当て一覧.Rows[ i ].Cells[ "Key" ].Value = i%12;\r
+ }\r
+ }\r
+\r
}\r
}\r