OSDN Git Service

#35891 CONFIGURATION構成の見直しで、サウンド関連の設定を CONFIGURATION/System/Sound Options/に移動。
authoryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 2 Aug 2016 14:39:41 +0000 (14:39 +0000)
committeryyagi <yyagi@16f42ceb-6dc6-49c8-ba94-f2d53467949d>
Tue, 2 Aug 2016 14:39:41 +0000 (14:39 +0000)
#24159 メトロノーム機能を追加。CONFIGUERATION/Suond Options/メトロノーム で設定。OnBeatで表拍、OffBeatで裏拍のメトロノームを再生する。
メトロノーム音はその近辺の設定で変更可能。
メトロノーム音そのものが気に入らなければ、System/Default/Sound/click_high.wav, click_low.wav を置換してください。

git-svn-id: http://svn.osdn.jp/svnroot/dtxmania/trunk@1024 16f42ceb-6dc6-49c8-ba94-f2d53467949d

DTXManiaプロジェクト/コード/スコア、曲/CDTXInput.cs
DTXManiaプロジェクト/コード/スコア、曲/CScoreIni.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CActConfigList.cs
DTXManiaプロジェクト/コード/ステージ/04.コンフィグ/CConfigXml.cs
DTXManiaプロジェクト/コード/ステージ/07.演奏/CStage演奏画面共通.cs
DTXManiaプロジェクト/コード/全体/CSkin.cs
DTXManiaプロジェクト/コード/全体/C定数.cs
実行時フォルダ/DTXManiaGR.exe
実行時フォルダ/System/resources.csv
実行時フォルダ/System/resources.xlsx

index c35f89a..94e0d9b 100644 (file)
@@ -287,6 +287,7 @@ namespace DTXMania
                                                                                                                                                        // これにより、数ms程度ながらここでのソートも高速化されている。\r
                                                        double barlength = 1.0;\r
                                                        int nEndOfSong = (this.listChip[this.listChip.Count - 1].n発声位置 + 384) - (this.listChip[this.listChip.Count - 1].n発声位置 % 384);\r
+                                                       bool bClickOffBeat = (CDTXMania.Instance.ConfigIni.eClickType == EClickType.OffBeat);           // 裏拍でメトロノーム再生\r
                                                        for (int tick384 = 0; tick384 <= nEndOfSong; tick384 += 384)  // 小節線の挿入 (後に出てくる拍子線とループをまとめようとするなら、forループの終了条件の微妙な違いに注意が必要)\r
                                                        {\r
                                                                CChip chip = new CChip(tick384, 36 * 36 - 1, EChannel.BarLine);\r
@@ -318,6 +319,19 @@ namespace DTXMania
                                                                        }\r
                                                                        nChipNo_BarLength++;\r
                                                                }\r
+\r
+                                                               // 小節線上のクリック音の挿入\r
+                                                               int deltaOffBeat = (int) ( 384.0 / 8 / barlength );\r
+                                                               if ( !bClickOffBeat )                                                                                                                           // 裏拍でのメトロノーム再生の設定でなければ(Off設定であっても)\r
+                                                               {\r
+                                                                       this.listChip.Add( new CChip( tick384, 1, EChannel.Click ) );                                   // 小節線上に、表拍のクリック音を挿入\r
+                                                               }\r
+                                                               else if ( tick384 + 384 / 8 <= nEndOfSong )                                                                                     // 裏拍設定で、かつ曲長内に収まるなら\r
+                                                               {\r
+                                                                       this.listChip.Add( new CChip( tick384 + deltaOffBeat, 1, EChannel.Click ) );    // 小節線から8分音符だけ後に、裏拍のクリック音を挿入\r
+                                                               }\r
+\r
+\r
                                                                for (int i = 0; i < 100; i++)               // 拍線の挿入\r
                                                                {\r
                                                                        int tickBeat = (int)(((double)(384 * i)) / (4.0 * barlength));\r
@@ -329,6 +343,15 @@ namespace DTXMania
                                                                        {\r
                                                                                CChip chip = new CChip(tick384 + (tickBeat + n発声位置_C1_同一小節内), 36 * 36 - 1, EChannel.BeatLine);\r
                                                                                this.listChip.Add(chip);\r
+                                                                               if ( !bClickOffBeat )                   // メトロノーム設定が裏拍設定でなければ、拍音を挿入\r
+                                                                               {\r
+                                                                                       this.listChip.Add( new CChip( tick384 + ( tickBeat + n発声位置_C1_同一小節内 ), 2, EChannel.Click ) );\r
+                                                                               }\r
+                                                                               else if ( ( tickBeat + deltaOffBeat + n発声位置_C1_同一小節内 ) < 384 )        // 裏拍設定、かつ小節内に収まっていれば、拍音を挿入\r
+                                                                               {\r
+                                                                                       this.listChip.Add( new CChip( tick384 + ( tickBeat + deltaOffBeat + n発声位置_C1_同一小節内 ), 2, EChannel.Click ) );\r
+                                                                               }\r
+                                                                               \r
                                                                        }\r
                                                                }\r
                                                        }\r
index 797908d..a9f02ab 100644 (file)
@@ -126,6 +126,7 @@ namespace DTXMania
                        public int nRisky;    // #23559 2011.6.20 yyagi 0=OFF, 1-10=Risky\r
                        public string 最終更新日時;\r
                        public bool bギターとベースを入れ替えた; // #35417 2015.08.30 chnmr0 add\r
+                       public EClickType eMetronome;           // #24159 2016.8.2 yyagi\r
 \r
                        public C演奏記録()\r
                        {\r
@@ -155,6 +156,7 @@ namespace DTXMania
                                this.レーン9モード = true;\r
                                this.nRisky = 0;                  // #23559 2011.6.20 yyagi\r
                                this.bギターとベースを入れ替えた = false; // #35417 2015.08.30 chnmr0 add\r
+                               this.eMetronome = EClickType.Off;\r
                        }\r
 \r
                        public bool bフルコンボじゃない\r
@@ -894,6 +896,30 @@ namespace DTXMania
                                                                                        c演奏記録.bSTAGEFAILED有効 = C変換.bONorOFF(para[0]);\r
                                                                                }\r
                                                                                #endregion\r
+                                                                               #region [ Metronome ]\r
+                                                                               else if (item.Equals("Metronome"))\r
+                                                                               {\r
+                                                                                       switch ( int.Parse( para ) )\r
+                                                                                       {\r
+                                                                                               case 0:\r
+                                                                                                       {\r
+                                                                                                               c演奏記録.eMetronome = EClickType.Off;\r
+                                                                                                               continue;\r
+                                                                                                       }\r
+                                                                                               case 1:\r
+                                                                                                       {\r
+                                                                                                               c演奏記録.eMetronome = EClickType.OnBeat;\r
+                                                                                                               continue;\r
+                                                                                                       }\r
+                                                                                               case 2:\r
+                                                                                                       {\r
+                                                                                                               c演奏記録.eMetronome = EClickType.OffBeat;\r
+                                                                                                               continue;\r
+                                                                                                       }\r
+                                                                                       }\r
+                                                                                       throw new Exception( "Metronome の値が無効です。" );\r
+                                                                               }\r
+                                                                               #endregion\r
                                                                                else\r
                                                                                {\r
                                                                                        #region [ DamageLevel ]\r
@@ -1092,6 +1118,7 @@ namespace DTXMania
                                writer.WriteLine("Drums={0}", sect.bDrums有効 ? 1 : 0);\r
                                writer.WriteLine("StageFailed={0}", sect.bSTAGEFAILED有効 ? 1 : 0);\r
                                writer.WriteLine("DamageLevel={0}", (int)sect.eダメージレベル);\r
+                               writer.WriteLine("Metronome={0}", (int)sect.eMetronome);\r
                                writer.WriteLine("UseKeyboard={0}", sect.b演奏にキーボードを使用した ? 1 : 0);\r
                                writer.WriteLine("UseMIDIIN={0}", sect.b演奏にMIDI入力を使用した ? 1 : 0);\r
                                writer.WriteLine("UseJoypad={0}", sect.b演奏にジョイパッドを使用した ? 1 : 0);\r
index aeb44d4..e0d49e7 100644 (file)
@@ -15,6 +15,7 @@ namespace DTXMania
                STDGBSValue<COptionLabel> KeyAssignMenu;\r
                STDGBSValue<COptionLabel> DisplayMenu;\r
                STDGBSValue<COptionLabel> EDrumsMenu;\r
+               COptionLabel SoundMenu;\r
                COptionLabel HitRangeMenu;\r
                COptionStringList skins;\r
 \r
@@ -156,6 +157,10 @@ namespace DTXMania
                        {\r
                                t項目リストの設定(Eメニュー種別.System);\r
                        }\r
+                       else if ( this.eメニュー種別 == Eメニュー種別.SoundSettings)\r
+                       {\r
+                               t項目リストの設定(Eメニュー種別.System);\r
+                       }\r
                }\r
 \r
                public bool tEnter押下()\r
@@ -413,17 +418,13 @@ namespace DTXMania
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nRisky);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.eActiveInst);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPlaySpeed);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bTimeStretch);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nSleepPerFrameMs);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nSleepUnfocusMs);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bForceHighPowerPlan);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bStageFailed);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bRandSubBox);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bWaveAdjust);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPreSoundWeightMs);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPreImageWeightMs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bBGMPlay);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bAudience);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.eDamageLevel);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bScoreIni);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.nChipVolume);\r
@@ -433,16 +434,10 @@ namespace DTXMania
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bBufferedInput);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLog);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLoadSoundSpeed);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nSoundDeviceType);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nWASAPIBufferSizeMs);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bEventDrivenWASAPI);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.strASIODevice );\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.bUseOSTimer);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nMasterVolume);\r
-                               list項目リスト.Add(CDTXMania.Instance.ConfigIni.nPolyphonicSounds);\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bLoadDTXDetail);// #36177 2016.7.30 ikanick\r
                                list項目リスト.Add(CDTXMania.Instance.ConfigIni.bUseBoxDefSkin);\r
                                list項目リスト.Add(skins);\r
+                               list項目リスト.Add(SoundMenu);\r
                                list項目リスト.Add(DisplayMenu.System);\r
                                list項目リスト.Add(HitRangeMenu);\r
                                list項目リスト.Add(KeyAssignMenu.System);\r
@@ -461,7 +456,27 @@ namespace DTXMania
                                        CDTXMania.Instance.actEnumSongs.On活性化();\r
                                };\r
                        }\r
-                       else if (eMenu == Eメニュー種別.Drums)\r
+                       else if ( eMenu == Eメニュー種別.SoundSettings )\r
+                       {\r
+                               list項目リスト.Add( ReturnToMenu.System );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bTimeStretch );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bWaveAdjust );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bBGMPlay );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bAudience );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nChipVolume );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nAutoVolume );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nSoundDeviceType );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nWASAPIBufferSizeMs );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bEventDrivenWASAPI );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.strASIODevice );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.bUseOSTimer );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nMasterVolume );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nPolyphonicSounds );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.eClickType );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nClickHighVolume );\r
+                               list項目リスト.Add( CDTXMania.Instance.ConfigIni.nClickLowVolume );\r
+                       }\r
+                       else if ( eMenu == Eメニュー種別.Drums )\r
                        {\r
                                list項目リスト.Add(ReturnToMenu.Drums);\r
                                COptionEnum<EThreeState> AllAuto = new COptionEnum<EThreeState>(EThreeState.X);\r
@@ -620,6 +635,7 @@ namespace DTXMania
 \r
                                EDrumsMenu[ EPart.Drums ] = new COptionLabel( "strCfgEDrumsOption" );\r
                                HitRangeMenu = new COptionLabel( "strCfgHitRangeOption" );\r
+                               SoundMenu = new COptionLabel( "strCfgSoundOption" );\r
 \r
                                DisplayMenu.Drums.OnEnterDelegate = () =>\r
                                {\r
@@ -637,7 +653,6 @@ namespace DTXMania
                                {\r
                                        t項目リストの設定(Eメニュー種別.DisplaySystem);\r
                                };\r
-\r
                                KeyAssignMenu.Drums.OnEnterDelegate = () =>\r
                                {\r
                                        t項目リストの設定(Eメニュー種別.KeyAssignDrums);\r
@@ -679,6 +694,10 @@ namespace DTXMania
                                {\r
                                        t項目リストの設定( Eメニュー種別.HitRangeSettings );\r
                                };\r
+                               SoundMenu.OnEnterDelegate = () =>\r
+                               {\r
+                                       t項目リストの設定( Eメニュー種別.SoundSettings );\r
+                               };\r
 \r
                                #region [ スキン選択肢と、現在選択中のスキン(index)の準備 #28195 2012.5.2 yyagi ]\r
                                int ns = (CDTXMania.Instance.Skin.strSystemSkinSubfolders == null) ? 0 : CDTXMania.Instance.Skin.strSystemSkinSubfolders.Length;\r
@@ -791,6 +810,11 @@ namespace DTXMania
                                }\r
                                #endregion\r
 \r
+                               #region [ メトロノーム音 音量設定 ]\r
+                               CDTXMania.Instance.Skin.soundClickHigh.n音量 = CDTXMania.Instance.ConfigIni.nClickHighVolume;\r
+                               CDTXMania.Instance.Skin.soundClickLow.n音量 = CDTXMania.Instance.ConfigIni.nClickLowVolume;\r
+                               #endregion\r
+\r
                                #region [ サウンドのタイムストレッチモード変更 ]\r
 \r
                                FDK.CSound管理.bIsTimeStretch = CDTXMania.Instance.ConfigIni.bUseOSTimer;\r
@@ -1149,6 +1173,7 @@ namespace DTXMania
                        DisplayBass,\r
                        EDrumsSettings,\r
                        HitRangeSettings,\r
+                       SoundSettings,\r
                        Unknown\r
                }\r
 \r
index bccb678..81e0562 100644 (file)
@@ -252,6 +252,14 @@ namespace DTXMania
                // #24820 2013.1.17 yyagi ASIOデバイス\r
                public COptionStringList strASIODevice;\r
 \r
+               [DataMember( Order = 106 )]\r
+               public COptionEnum<EClickType> eClickType;\r
+               [DataMember( Order = 106 )]\r
+               public COptionInteger nClickHighVolume;\r
+               [DataMember( Order = 106 )]\r
+               public COptionInteger nClickLowVolume;\r
+\r
+\r
                [DataMember]\r
                public STDGBSValue<COptionBool> bLight;\r
                [DataMember]\r
@@ -302,6 +310,8 @@ namespace DTXMania
                [DataMember]\r
                public STDGBSValue<COptionBool> bDisplayJudge;\r
 \r
+\r
+       \r
                /// <summary>\r
                /// 楽器左端座標。ここを基準に各パーツを配置する。\r
                /// </summary>\r
@@ -532,6 +542,10 @@ namespace DTXMania
                        nMasterVolume = new COptionInteger(100);\r
                        nPolyphonicSounds = new COptionInteger(4);\r
 \r
+                       eClickType = new COptionEnum<EClickType>(EClickType.Off);\r
+                       nClickHighVolume = new COptionInteger(100);\r
+                       nClickLowVolume = new COptionInteger(100);\r
+\r
                        // dgb\r
                        bEmphasizePlaySound = new STDGBSValue<COptionBool>();\r
                        bReverse = new STDGBSValue<COptionBool>();\r
@@ -769,6 +783,11 @@ namespace DTXMania
                        eActiveInst.Initialize( "strCfgSysPlayMode", typeof(EActiveInstrument));\r
                        nShowLagType.Initialize( "strCfgSysShowLagType", typeof(EShowLagType));\r
 \r
+                       eClickType.Initialize( "strCfgSysClickType", typeof( EClickType ) );\r
+                       nClickHighVolume.Initialize( "strCfgSysClickHighVolume", 0, 101 );\r
+                       nClickLowVolume.Initialize( "strCfgSysClickLowVolume", 0, 101 );\r
+\r
+\r
                        // integer\r
                        nSleepPerFrameMs.Initialize( "strCfgSysSleepPerFrame", -1, 33 );\r
                        nSleepUnfocusMs.Initialize( "strCfgSysSleepUnfocus", 0, 33 );\r
index d4441fb..37bf777 100644 (file)
@@ -182,6 +182,7 @@ namespace DTXMania
                                Drums.bDrums有効 = CDTXMania.Instance.ConfigIni.bDrums有効;\r
                                Drums.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
                                Drums.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
+                               Drums.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
                                Drums.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Drums;\r
                                Drums.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Drums;\r
                                Drums.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Drums;\r
@@ -246,6 +247,7 @@ namespace DTXMania
                                Guitar.bDrums有効 = CDTXMania.Instance.ConfigIni.bDrums有効;\r
                                Guitar.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
                                Guitar.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
+                               Guitar.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
                                Guitar.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Guitar;\r
                                Guitar.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Guitar;\r
                                Guitar.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Guitar;\r
@@ -309,6 +311,7 @@ namespace DTXMania
                                Bass.bSTAGEFAILED有効 = CDTXMania.Instance.ConfigIni.bStageFailed;\r
                                Bass.eダメージレベル = CDTXMania.Instance.ConfigIni.eDamageLevel;\r
                                // #24280 2011.1.29 yyagi\r
+                               Bass.eMetronome = CDTXMania.Instance.ConfigIni.eClickType;\r
                                Bass.b演奏にキーボードを使用した = this.b演奏にキーボードを使った.Bass;\r
                                Bass.b演奏にMIDI入力を使用した = this.b演奏にMIDI入力を使った.Bass;\r
                                Bass.b演奏にジョイパッドを使用した = this.b演奏にジョイパッドを使った.Bass;\r
@@ -3156,7 +3159,23 @@ namespace DTXMania
                                                }\r
                                        }\r
                                }\r
-                               else if (!pChip.bHit && (pChip.nバーからの距離dot.Drums < 0))\r
+                               else if ( pChip[ EChannel.Click ] && !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
+                               {\r
+                                       pChip.bHit = true;\r
+                                       if ( CDTXMania.Instance.ConfigIni.eClickType != EClickType.Off )\r
+                                       {\r
+                                               switch (pChip.n整数値)\r
+                                               {\r
+                                                       case 1:\r
+                                                               CDTXMania.Instance.Skin.soundClickHigh.t再生する();\r
+                                                               break;\r
+                                                       case 2:\r
+                                                               CDTXMania.Instance.Skin.soundClickLow.t再生する();\r
+                                                               break;\r
+                                               }\r
+                                       }\r
+                               }\r
+                               else if ( !pChip.bHit && ( pChip.nバーからの距離dot.Drums < 0 ) )\r
                                {\r
                                        // other chips\r
                                        pChip.bHit = true;\r
index 0701661..e3c5da2 100644 (file)
@@ -68,6 +68,19 @@ namespace DTXMania
                                }\r
                        }\r
 \r
+                       public int n音量\r
+                       {\r
+                               set\r
+                               {\r
+                                       for ( int i = 0; i < this.rSound.GetLength( 0 ); i++ )\r
+                                       {\r
+                                               CSound sound = this.rSound[ i ];\r
+                                               if ( sound != null )\r
+                                                       sound.n音量 = value;\r
+                                       }\r
+                               }\r
+                       }\r
+\r
                        public int n音量_現在のサウンド\r
                        {\r
                                get\r
@@ -284,7 +297,9 @@ namespace DTXMania
                public Cシステムサウンド sound決定音 = null;\r
                public Cシステムサウンド sound取消音 = null;\r
                public Cシステムサウンド sound変更音 = null;\r
-               public readonly int nシステムサウンド数 = (int)Eシステムサウンド.Count;\r
+               public Cシステムサウンド soundClickHigh = null;\r
+               public Cシステムサウンド soundClickLow  = null;\r
+               public readonly int nシステムサウンド数 = (int) Eシステムサウンド.Count;\r
                public Cシステムサウンド this[Eシステムサウンド sound]\r
                {\r
                        get\r
@@ -327,6 +342,12 @@ namespace DTXMania
                                        case Eシステムサウンド.SOUNDタイトル音:\r
                                                return this.soundタイトル音;\r
 \r
+                                       case Eシステムサウンド.SOUNDClickHigh:\r
+                                               return this.soundClickHigh;\r
+\r
+                                       case Eシステムサウンド.SOUNDClickLow:\r
+                                               return this.soundClickLow;\r
+\r
                                        case Eシステムサウンド.BGM起動画面:\r
                                                return this.bgm起動画面;\r
 \r
@@ -348,53 +369,59 @@ namespace DTXMania
                        {\r
                                switch (index)\r
                                {\r
-                                       case 0:\r
+                                       case (int) Eシステムサウンド.SOUNDカーソル移動音:\r
                                                return this.soundカーソル移動音;\r
 \r
-                                       case 1:\r
+                                       case (int) Eシステムサウンド.SOUND決定音:\r
                                                return this.sound決定音;\r
 \r
-                                       case 2:\r
+                                       case (int) Eシステムサウンド.SOUND変更音:\r
                                                return this.sound変更音;\r
 \r
-                                       case 3:\r
+                                       case (int) Eシステムサウンド.SOUND取消音:\r
                                                return this.sound取消音;\r
 \r
-                                       case 4:\r
+                                       case (int) Eシステムサウンド.SOUND歓声音:\r
                                                return this.sound歓声音;\r
 \r
-                                       case 5:\r
+                                       case (int) Eシステムサウンド.SOUNDステージ失敗音:\r
                                                return this.soundSTAGEFAILED音;\r
 \r
-                                       case 6:\r
+                                       case (int) Eシステムサウンド.SOUNDゲーム開始音:\r
                                                return this.soundゲーム開始音;\r
 \r
-                                       case 7:\r
+                                       case (int) Eシステムサウンド.SOUNDゲーム終了音:\r
                                                return this.soundゲーム終了音;\r
 \r
-                                       case 8:\r
+                                       case (int) Eシステムサウンド.SOUNDステージクリア音:\r
                                                return this.soundステージクリア音;\r
 \r
-                                       case 9:\r
+                                       case (int) Eシステムサウンド.SOUNDフルコンボ音:\r
                                                return this.soundフルコンボ音;\r
 \r
-                                       case 10:\r
+                                       case (int) Eシステムサウンド.SOUND曲読込開始音:\r
                                                return this.sound曲読込開始音;\r
 \r
-                                       case 11:\r
+                                       case (int) Eシステムサウンド.SOUNDタイトル音:\r
                                                return this.soundタイトル音;\r
 \r
-                                       case 12:\r
+                                       case (int) Eシステムサウンド.BGM起動画面:\r
                                                return this.bgm起動画面;\r
 \r
-                                       case 13:\r
+                                       case (int) Eシステムサウンド.BGMオプション画面:\r
                                                return this.bgmオプション画面;\r
 \r
-                                       case 14:\r
+                                       case (int) Eシステムサウンド.BGMコンフィグ画面:\r
                                                return this.bgmコンフィグ画面;\r
 \r
-                                       case 15:\r
+                                       case (int) Eシステムサウンド.BGM選曲画面:\r
                                                return this.bgm選曲画面;\r
+\r
+                                       case (int) Eシステムサウンド.SOUNDClickHigh:\r
+                                               return this.soundClickHigh;\r
+\r
+                                       case (int) Eシステムサウンド.SOUNDClickLow:\r
+                                               return this.soundClickLow;\r
                                }\r
                                throw new IndexOutOfRangeException();\r
                        }\r
@@ -540,7 +567,9 @@ namespace DTXMania
                        this.soundフルコンボ音 = new Cシステムサウンド(@"Sounds\Full combo.ogg", false, false, true);\r
                        this.sound曲読込開始音 = new Cシステムサウンド(@"Sounds\Now loading.ogg", false, true, true);\r
                        this.soundタイトル音 = new Cシステムサウンド(@"Sounds\Title.ogg", false, true, false);\r
-                       this.bgm起動画面 = new Cシステムサウンド(@"Sounds\Setup BGM.ogg", true, true, false);\r
+                       this.soundClickHigh = new Cシステムサウンド( @"Sounds\Click_High.wav", false, false, false );\r
+                       this.soundClickLow = new Cシステムサウンド( @"Sounds\Click_Low.wav", false, false, false );\r
+                       this.bgm起動画面 = new Cシステムサウンド( @"Sounds\Setup BGM.ogg", true, true, false );\r
                        this.bgmオプション画面 = new Cシステムサウンド(@"Sounds\Option BGM.ogg", true, true, false);\r
                        this.bgmコンフィグ画面 = new Cシステムサウンド(@"Sounds\Config BGM.ogg", true, true, false);\r
                        this.bgm選曲画面 = new Cシステムサウンド(@"Sounds\Select BGM.ogg", true, true, false);\r
index 7d45cbb..a0bdbe3 100644 (file)
@@ -290,7 +290,7 @@ namespace DTXMania
                //nouse_e9                      = 0xE9,\r
                //nouse_ea                      = 0xEA,\r
                //nouse_eb                      = 0xEB,\r
-               //nouse_ec                      = 0xEC,\r
+               Click                           = 0xEC,         // metronome click\r
                //nouse_ed                      = 0xED,\r
                //nouse_ee                      = 0xEE,\r
                //nouse_ef                      = 0xEF,\r
@@ -352,6 +352,8 @@ namespace DTXMania
                SOUND決定音,\r
                SOUND取消音,\r
                SOUND変更音,\r
+               SOUNDClickHigh,\r
+               SOUNDClickLow,\r
                Count               // システムサウンド総数の計算用\r
        }\r
 \r
@@ -841,6 +843,19 @@ namespace DTXMania
        }\r
 \r
        [DataContract]\r
+       public enum EClickType\r
+       {\r
+               [EnumMember]\r
+               Off,\r
+               [EnumMember]\r
+               OnBeat,                 // 表拍\r
+               [EnumMember]\r
+               OffBeat                 // 裏拍\r
+//             [EnumMember]\r
+//             Triplet                 // 3連符\r
+       }\r
+\r
+       [DataContract]\r
        public class STPadValue<T>\r
        {\r
                [DataMember]\r
index d6654e7..21256f0 100644 (file)
Binary files a/実行時フォルダ/DTXManiaGR.exe and b/実行時フォルダ/DTXManiaGR.exe differ
index 0c16257..8510c01 100644 (file)
Binary files a/実行時フォルダ/System/resources.csv and b/実行時フォルダ/System/resources.csv differ
index 628fd63..6a326c0 100644 (file)
Binary files a/実行時フォルダ/System/resources.xlsx and b/実行時フォルダ/System/resources.xlsx differ