• R/O
  • HTTP
  • SSH
  • HTTPS

Commit

Tags
No Tags

Frequently used words (click to add to your profile)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

MIDITrail をピカピカにする。鍵盤方向自動切替・多ポート・歌詞対応等


Commit MetaInfo

Revision6635dcc58cb24f3e8e5afa5849de243dd373ba3f (tree)
Time2018-04-11 18:25:50
Authoryoshy <yoshy@user...>
Commiteryoshy

Log Message

Merge branch 'develop' into master/yossiepon

Change Summary

Incremental Difference

--- a/MIDITrail/MTGridBox.h
+++ b/MIDITrail/MTGridBox.h
@@ -45,20 +45,29 @@ public:
4545 //解放
4646 void Release();
4747
48-// >>> modify 20120728 yossiepon begin
48+// >>> modify access level to protected 20161224 yossiepon begin
4949 protected:
50+// <<< modify 20161224 yossiepon end
5051
5152 DXPrimitive m_Primitive;
52- MTNoteDesign m_NoteDesign;
53-
54-// <<< modify 20120728 yossiepon end
5553
54+// >>> modify access level 20161224 yossiepon begin
5655 private:
56+// <<< modify 20161224 yossiepon end
5757
58-// >>> modify 20120728 yossiepon begin
5958 unsigned long m_BarNum;
6059 SMPortList m_PortList;
61-// <<< modify 20120728 yossiepon end
60+
61+// >>> modify access level to protected 20161224 yossiepon begin
62+protected:
63+// <<< modify 20161224 yossiepon end
64+
65+ MTNoteDesign m_NoteDesign;
66+
67+// >>> modify access level 20161224 yossiepon begin
68+private:
69+// <<< modify 20161224 yossiepon end
70+
6271 bool m_isVisible;
6372
6473 //頂点バッファ構造体
--- a/MIDITrail/MTNoteBox.h
+++ b/MIDITrail/MTNoteBox.h
@@ -80,8 +80,19 @@ public:
8080 //スキップ状態
8181 void SetSkipStatus(bool isSkipping);
8282
83-// >>> modify 20120728 yossiepon begin
83+private:
84+
85+ //発音ノート情報構造体
86+ struct NoteStatus {
87+ bool isActive;
88+ bool isHide;
89+ unsigned long index;
90+ unsigned long startTime;
91+ };
92+
93+// >>> modify access level to protected 20161224 yossiepon begin
8494 protected:
95+// <<< modify 20161224 yossiepon end
8596
8697 //頂点バッファ構造体
8798 struct MTNOTEBOX_VERTEX {
@@ -90,7 +101,8 @@ protected:
90101 DWORD c; //ディフューズ色
91102 };
92103
93-protected:
104+// >>> modify access level to protected 20161224 yossiepon begin
105+// <<< modify 20161224 yossiepon end
94106
95107 //ノートデザイン
96108 MTNoteDesign m_NoteDesign;
@@ -107,10 +119,39 @@ protected:
107119 unsigned long m_CurNoteIndex;
108120 unsigned long m_ActiveNoteNum;
109121
122+// >>> modify access level 20161224 yossiepon begin
123+private:
124+// <<< modify 20161224 yossiepon end
125+
126+ NoteStatus* m_pNoteStatus;
127+
128+ //スキップ状態
129+ bool m_isSkipping;
130+
131+// >>> modify access level to protected 20161224 yossiepon begin
132+protected:
133+// <<< modify 20161224 yossiepon end
134+
110135 //ピッチベンド情報
111136 MTNotePitchBend* m_pNotePitchBend;
112137
138+// >>> modify access level 20161224 yossiepon begin
139+private:
140+// <<< modify 20161224 yossiepon end
141+
142+ //頂点バッファFVFフォーマット
143+ DWORD _GetFVFFormat(){ return (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE); }
144+
145+ int _CreateAllNoteBox(LPDIRECT3DDEVICE9 pD3DDevice);
146+ int _CreateActiveNoteBox(LPDIRECT3DDEVICE9 pD3DDevice);
147+
148+// >>> modify access level to protected 20161224 yossiepon begin
149+protected:
150+// <<< modify 20161224 yossiepon end
151+
152+// >>> modify 20120728 yossiepon begin
113153 virtual int _CreateNoteStatus();
154+// <<< modify 20120728 yossiepon end
114155
115156 int _CreateVertexOfNote(
116157 SMNote note,
@@ -121,47 +162,28 @@ protected:
121162 bool isEnablePitchBend = false
122163 );
123164
124- int _TransformActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
125- virtual int _UpdateStatusOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
126- virtual int _UpdateVertexOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
127-
128- int _HideNoteBox(unsigned long index);
129- int _ShowNoteBox(unsigned long index);
130-
131-// <<< modify 20120728 yossiepon end
132-
165+// >>> modify access level 20161224 yossiepon begin
133166 private:
134-
135- //発音ノート情報構造体
136- struct NoteStatus {
137- bool isActive;
138- bool isHide;
139- unsigned long index;
140- unsigned long startTime;
141- };
142-
143-// >>> modify 20120728 yossiepon begin
144-private:
145-
146- //発音中ノートボックス
147- NoteStatus* m_pNoteStatus;
148-
149- //スキップ状態
150- bool m_isSkipping;
151-
152- //頂点バッファFVFフォーマット
153- DWORD _GetFVFFormat(){ return (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE); }
154-
155- int _CreateAllNoteBox(LPDIRECT3DDEVICE9 pD3DDevice);
156- int _CreateActiveNoteBox(LPDIRECT3DDEVICE9 pD3DDevice);
167+// <<< modify 20161224 yossiepon end
157168
158169 unsigned long _GetVertexIndexOfNote(unsigned long index);
159170
160171 void _MakeMaterial(D3DMATERIAL9* pMaterial);
161172 void _MakeMaterialForActiveNote(D3DMATERIAL9* pMaterial);
162173
174+// >>> modify access level to protected 20161224 yossiepon begin
175+protected:
176+// <<< modify 20161224 yossiepon end
177+
178+ int _TransformActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
179+// >>> modify 20120728 yossiepon begin
180+ virtual int _UpdateStatusOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
181+ virtual int _UpdateVertexOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
163182 // <<< modify 20120728 yossiepon end
164183
184+ int _HideNoteBox(unsigned long index);
185+ int _ShowNoteBox(unsigned long index);
186+
165187 };
166188
167189
--- a/MIDITrail/MTNoteDesign.cpp
+++ b/MIDITrail/MTNoteDesign.cpp
@@ -4,7 +4,7 @@
44 //
55 // ノートデザインクラス
66 //
7-// Copyright (C) 2010-2012 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2013 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -493,15 +493,19 @@ D3DXCOLOR MTNoteDesign::GetNoteBoxColor(
493493 {
494494 D3DXCOLOR color;
495495
496- //チャンネル番号によって色を変える
497- //ポート番号とノート番号による色の変化は未サポート
498-
499- if (chNo >= 16) {
500- //データ異常だが無視する
501- color = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); //RGBA
496+ if (m_NoteColorType == Channel) {
497+ //チャンネル番号によって色を変える
498+ if (chNo >= 16) {
499+ //データ異常だが無視する
500+ color = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); //RGBA
501+ }
502+ else {
503+ color = m_NoteColor[chNo];
504+ }
502505 }
503- else {
504- color = m_NoteColor[chNo];
506+ else if (m_NoteColorType == Scale) {
507+ //音階によって色を変える
508+ color = m_NoteColorOfScale[(noteNo % 12)];
505509 }
506510
507511 return color;
@@ -591,9 +595,13 @@ void MTNoteDesign::_Clear(void)
591595 m_PortIndex[i] = 0;
592596 }
593597
598+ m_NoteColorType = Channel;
594599 for (i = 0; i < 16; i++) {
595600 m_NoteColor[i] = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); //RGBA
596601 }
602+ for (i = 0; i < 12; i++) {
603+ m_NoteColorOfScale[i] = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); //RGBA
604+ }
597605 m_ActiveNoteEmissive = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); //RGBA
598606 m_GridLineColor = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); //RGBA
599607 m_PlaybackSectionColor = D3DXCOLOR(1.0f, 1.0f, 1.0f, 1.0f); //RGBA
@@ -611,8 +619,9 @@ int MTNoteDesign::_LoadConfFile(
611619 )
612620 {
613621 int result = 0;
614- TCHAR key[16] = {_T('\0')};
622+ TCHAR key[32] = {_T('\0')};
615623 TCHAR hexColor[16] = {_T('\0')};
624+ TCHAR noteColorType[16] = {_T('\0')};
616625 unsigned long i = 0;
617626 MTConfFile confFile;
618627
@@ -651,15 +660,34 @@ int MTNoteDesign::_LoadConfFile(
651660 result = confFile.SetCurSection(_T("Color"));
652661 if (result != 0) goto EXIT;
653662
663+ //ノートカラー種別を取得
664+ result = confFile.GetStr(_T("NoteColorType"), noteColorType, 16, _T("CHANNEL"));
665+ if (result != 0) goto EXIT;
666+
667+ //ノートカラー種別を決定
668+ m_NoteColorType = Channel;
669+ if (_tcscmp(noteColorType, _T("SCALE")) == 0) {
670+ m_NoteColorType = Scale;
671+ }
672+
654673 //ノート色情報を取得
655674 for (i = 0; i < 16; i++) {
656- _stprintf_s(key, 16, _T("Ch-%02d-NoteRGBA"), i+1);
675+ _stprintf_s(key, 32, _T("Ch-%02d-NoteRGBA"), i+1);
657676 result = confFile.GetStr(key, hexColor, 16, _T("FFFFFFFF"));
658677 if (result != 0) goto EXIT;
659678
660679 m_NoteColor[i] = DXColorUtil::MakeColorFromHexRGBA(hexColor);
661680 }
662681
682+ //音階用ノート色情報を取得
683+ for (i = 0; i < 12; i++) {
684+ _stprintf_s(key, 32, _T("Scale-%02d-NoteRGBA"), i+1);
685+ result = confFile.GetStr(key, hexColor, 16, _T("FFFFFFFF"));
686+ if (result != 0) goto EXIT;
687+
688+ m_NoteColorOfScale[i] = DXColorUtil::MakeColorFromHexRGBA(hexColor);
689+ }
690+
663691 //グリッドライン色情報を取得
664692 result = confFile.GetStr(_T("GridLineRGBA"), hexColor, 16, _T("444444FF"));
665693 if (result != 0) goto EXIT;
--- a/MIDITrail/MTNoteDesign.h
+++ b/MIDITrail/MTNoteDesign.h
@@ -4,7 +4,7 @@
44 //
55 // ノートデザインクラス
66 //
7-// Copyright (C) 2010-2012 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2013 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -46,7 +46,9 @@ public:
4646 virtual ~MTNoteDesign(void);
4747
4848 //初期化
49- int Initialize(const TCHAR* pSceneName, SMSeqData* pSeqData);
49+// >>> modify 20161225 yossiepon begin
50+ virtual int Initialize(const TCHAR* pSceneName, SMSeqData* pSeqData);
51+// <<< modify 20161225 yossiepon end
5052
5153 //演奏位置取得
5254 float GetPlayPosX(unsigned long curTickTime);
@@ -175,22 +177,6 @@ public:
175177 //再生面カラー取得
176178 D3DXCOLOR GetPlaybackSectionColor();
177179
178-// >>> modify 20120728 yossiepon begin
179-protected:
180-
181- float m_RippleHeight;
182- float m_RippleWidth;
183-
184- SMPortList m_PortList;
185- unsigned char m_PortIndex[256];
186-
187- float m_ActiveNoteWhiteRate;
188-
189- virtual void _Clear();
190- virtual int _LoadConfFile(const TCHAR* pSceneName);
191-
192-// <<< modify 20120728 yossiepon end
193-
194180 private:
195181
196182 enum NoteColorType {
@@ -198,16 +184,36 @@ private:
198184 Scale
199185 };
200186
201-// >>> modify 20120728 yossiepon begin
202187 unsigned long m_TimeDivision;
203188 float m_QuarterNoteLength;
204189 float m_NoteBoxHeight;
205190 float m_NoteBoxWidth;
206191 float m_NoteStep;
207192 float m_ChStep;
193+
194+// >>> modify access level to protected 20161224 yossiepon begin
195+protected:
196+// <<< modify 20161224 yossiepon end
197+
198+ float m_RippleHeight;
199+ float m_RippleWidth;
200+
201+// >>> modify access level 20161224 yossiepon begin
202+private:
203+// <<< modify 20161224 yossiepon end
204+
208205 float m_PictBoardRelativePos;
209206
210-// <<< modify 20120728 yossiepon end
207+// >>> modify access level to protected 20161224 yossiepon begin
208+protected:
209+// <<< modify 20161224 yossiepon end
210+
211+ SMPortList m_PortList;
212+ unsigned char m_PortIndex[256];
213+
214+// >>> modify access level 20161224 yossiepon begin
215+private:
216+// <<< modify 20161224 yossiepon end
211217
212218 NoteColorType m_NoteColorType;
213219 D3DXCOLOR m_NoteColor[16];
@@ -216,13 +222,30 @@ private:
216222 D3DXCOLOR m_GridLineColor;
217223 D3DXCOLOR m_PlaybackSectionColor;
218224
219-// >>> modify 20120728 yossiepon begin
220225 int m_ActiveNoteDuration;
226+
227+// >>> modify access level to protected 20161224 yossiepon begin
228+protected:
229+// <<< modify 20161224 yossiepon end
230+
231+ float m_ActiveNoteWhiteRate;
232+
233+// >>> modify access level 20161224 yossiepon begin
234+private:
235+// <<< modify 20161224 yossiepon end
236+
221237 int m_RippleDuration;
222238
223239 int m_LiveMonitorDisplayDuration;
224240 float m_LiveNoteLengthPerSecond;
225241
242+// >>> modify access level to protected 20161224 yossiepon begin
243+protected:
244+// <<< modify 20161224 yossiepon end
245+
246+// >>> modify 20120728 yossiepon begin
247+ virtual void _Clear();
248+ virtual int _LoadConfFile(const TCHAR* pSceneName);
226249 // <<< modify 20120728 yossiepon end
227250
228251 };
--- a/MIDITrail/MTNoteDesignMod.cpp
+++ b/MIDITrail/MTNoteDesignMod.cpp
@@ -30,6 +30,27 @@ MTNoteDesignMod::~MTNoteDesignMod(void)
3030 }
3131
3232 //******************************************************************************
33+// 初期化
34+//******************************************************************************
35+int MTNoteDesignMod::Initialize(
36+ const TCHAR* pSceneName,
37+ SMSeqData* pSeqData
38+ )
39+{
40+ int result = 0;
41+
42+ //基底クラスの初期化処理を呼び出す
43+ MTNoteDesign::Initialize(pSceneName, pSeqData);
44+
45+ //パラメータ設定ファイル読み込み
46+ result = _LoadConfFile(pSceneName);
47+ if (result != 0) goto EXIT;
48+
49+EXIT:;
50+ return result;
51+}
52+
53+//******************************************************************************
3354 // 波紋ディケイ時間取得(msec)
3455 //******************************************************************************
3556 unsigned long MTNoteDesignMod::GetRippleDecayDuration()
@@ -46,6 +67,22 @@ unsigned long MTNoteDesignMod::GetRippleReleaseDuration()
4667 }
4768
4869 //******************************************************************************
70+// 波紋上書き回数
71+//******************************************************************************
72+unsigned long MTNoteDesignMod::GetRippleOverwriteTimes()
73+{
74+ return (unsigned long)m_RippleOverwriteTimes;
75+}
76+
77+//******************************************************************************
78+// 波紋描画間隔
79+//******************************************************************************
80+float MTNoteDesignMod::GetRippleSpacing()
81+{
82+ return m_RippleSpacing;
83+}
84+
85+//******************************************************************************
4986 // 波紋縦サイズ取得
5087 //******************************************************************************
5188 float MTNoteDesignMod::GetRippleHeight(
@@ -213,6 +250,14 @@ int MTNoteDesignMod::_LoadConfFile(
213250 result = confFile.GetInt(_T("ReleaseDuration"), &m_RippleReleaseDuration, 250);
214251 if (result != 0) goto EXIT;
215252
253+ //波紋上書き回数
254+ result = confFile.GetInt(_T("OverwriteTimes"), &m_RippleOverwriteTimes, 3);
255+ if (result != 0) goto EXIT;
256+
257+ //波紋描画間隔
258+ result = confFile.GetFloat(_T("Spacing"), &m_RippleSpacing, 0.002f);
259+ if (result != 0) goto EXIT;
260+
216261 EXIT:;
217262 return result;
218263 }
--- a/MIDITrail/MTNoteDesignMod.h
+++ b/MIDITrail/MTNoteDesignMod.h
@@ -22,10 +22,17 @@ public:
2222 MTNoteDesignMod(void);
2323 virtual ~MTNoteDesignMod(void);
2424
25+ //初期化
26+ virtual int Initialize(const TCHAR* pSceneName, SMSeqData* pSeqData);
27+
2528 //波紋表示時間取得
2629 unsigned long GetRippleDecayDuration();
2730 unsigned long GetRippleReleaseDuration();
2831
32+ //波紋描画情報取得
33+ unsigned long GetRippleOverwriteTimes();
34+ float GetRippleSpacing();
35+
2936 //波紋サイズ取得
3037 float GetRippleHeight(float rate);
3138 float GetRippleWidth(float rate);
@@ -50,9 +57,15 @@ protected:
5057
5158 private:
5259
60+ //ディケイ時間
5361 int m_RippleDecayDuration;
62+ //リリース時間
5463 int m_RippleReleaseDuration;
5564
65+ //上書き回数
66+ int m_RippleOverwriteTimes;
67+ //描画間隔
68+ float m_RippleSpacing;
5669 };
5770
5871
--- a/MIDITrail/MTNoteRipple.h
+++ b/MIDITrail/MTNoteRipple.h
@@ -54,9 +54,7 @@ public:
5454 );
5555
5656 //更新
57-// >>> modify 20120728 yossiepon begin
58- virtual int Transform(LPDIRECT3DDEVICE9 pD3DDevice, D3DXVECTOR3 camVector, float rollAngle);
59-// <<< modify 20120728 yossiepon end
57+ int Transform(LPDIRECT3DDEVICE9 pD3DDevice, D3DXVECTOR3 camVector, float rollAngle);
6058
6159 //描画
6260 // >>> modify 20120728 yossiepon begin
@@ -97,8 +95,9 @@ public:
9795 //スキップ状態
9896 void SetSkipStatus(bool isSkipping);
9997
100-// >>> modify 20120728 yossiepon begin
98+// >>> modify access level to protected 20120728 yossiepon begin
10199 protected:
100+// >>> modify 20120728 yossiepon end
102101
103102 //ノート発音状態構造体
104103 struct NoteStatus {
@@ -121,11 +120,21 @@ protected:
121120 //頂点バッファFVFフォーマット
122121 DWORD _GetFVFFormat(){ return (D3DFVF_XYZ | D3DFVF_NORMAL | D3DFVF_DIFFUSE | D3DFVF_TEX1); }
123122
124-protected:
123+// >>> modify access level to protected 20161224 yossiepon begin
124+// >>> modify 20161224 yossiepon end
125125
126126 //描画系
127127 DXPrimitive m_Primitive;
128128 LPDIRECT3DTEXTURE9 m_pTexture;
129+// >>> modify access level 20161224 yossiepon begin
130+private:
131+// >>> modify 20161224 yossiepon end
132+
133+ D3DMATERIAL9 m_Material;
134+
135+// >>> modify access level to protected 20161224 yossiepon begin
136+protected:
137+// >>> modify 20161224 yossiepon end
129138
130139 //再生時刻
131140 unsigned long m_CurTickTime;
@@ -140,6 +149,17 @@ protected:
140149 MTNotePitchBend* m_pNotePitchBend;
141150
142151 //ノート発音状態情報
152+
153+// >>> modify access level 20161224 yossiepon begin
154+private:
155+// >>> modify 20161224 yossiepon end
156+
157+ NoteStatus* m_pNoteStatus;
158+
159+// >>> modify access level to protected 20161224 yossiepon begin
160+protected:
161+// >>> modify 20161224 yossiepon end
162+
143163 unsigned long m_ActiveNoteNum;
144164
145165 //表示可否
@@ -148,24 +168,23 @@ protected:
148168 //スキップ状態
149169 bool m_isSkipping;
150170
151- virtual int _CreateNoteStatus();
152- virtual int _CreateVertex(LPDIRECT3DDEVICE9 pD3DDevice);
153- virtual void _MakeMaterial(D3DMATERIAL9* pMaterial);
154- virtual int _TransformRipple(LPDIRECT3DDEVICE9 pD3DDevice);
155- virtual int _UpdateVertexOfRipple(LPDIRECT3DDEVICE9 pD3DDevice);
171+// >>> modify access level 20161224 yossiepon begin
172+private:
173+// >>> modify 20161224 yossiepon end
156174
157-// <<< modify 20120728 yossiepon end
175+ int _CreateTexture(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName);
158176
159-private:
177+// >>> modify access level to protected 20161224 yossiepon begin
178+protected:
179+// >>> modify 20161224 yossiepon end
160180
161-// >>> modify 20120728 yossiepon begin
162- //描画系
163- D3DMATERIAL9 m_Material;
181+ virtual int _CreateNoteStatus();
182+ virtual int _CreateVertex(LPDIRECT3DDEVICE9 pD3DDevice);
164183
165- //ノート発音状態情報
166- NoteStatus* m_pNoteStatus;
184+// >>> modify access level 20161224 yossiepon begin
185+private:
186+// >>> modify 20161224 yossiepon end
167187
168- int _CreateTexture(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName);
169188 int _SetVertexPosition(
170189 MTNOTERIPPLE_VERTEX* pVertex,
171190 NoteStatus* pNoteStatus,
@@ -174,7 +193,13 @@ private:
174193 bool* pIsTimeout
175194 );
176195
177-// <<< modify 20120728 yossiepon end
196+// >>> modify access level to protected 20161224 yossiepon begin
197+protected:
198+// >>> modify 20161224 yossiepon end
199+
200+ virtual void _MakeMaterial(D3DMATERIAL9* pMaterial);
201+ virtual int _TransformRipple(LPDIRECT3DDEVICE9 pD3DDevice);
202+ virtual int _UpdateVertexOfRipple(LPDIRECT3DDEVICE9 pD3DDevice);
178203
179204 };
180205
--- a/MIDITrail/MTNoteRippleMod.cpp
+++ b/MIDITrail/MTNoteRippleMod.cpp
@@ -17,12 +17,6 @@
1717 using namespace YNBaseLib;
1818
1919 //******************************************************************************
20-// パラメータ定義
21-//******************************************************************************
22-//波紋の上書き回数
23-#define MTNOTERIPPLE_MAX_OVERWRITE_NUM 3
24-
25-//******************************************************************************
2620 // コンストラクタ
2721 //******************************************************************************
2822 MTNoteRippleMod::MTNoteRippleMod(void) : MTNoteRipple()
@@ -56,9 +50,9 @@ int MTNoteRippleMod::Create(
5650
5751 Release();
5852
59- // 基底クラスの生成処理を呼び出す
60- result = MTNoteRipple::Create(pD3DDevice, pSceneName, pSeqData, pNotePitchBend);
61- if (result != 0) goto EXIT;
53+ //// 基底クラスの生成処理を呼び出す
54+ //result = MTNoteRipple::Create(pD3DDevice, pSceneName, pSeqData, pNotePitchBend);
55+ //if (result != 0) goto EXIT;
6256
6357 //ノートデザインModオブジェクト初期化
6458 result = m_NoteDesignMod.Initialize(pSceneName, pSeqData);
@@ -72,51 +66,10 @@ int MTNoteRippleMod::Create(
7266 result = track.GetNoteListWithRealTime(&m_NoteListRT, pSeqData->GetTimeDivision());
7367 if (result != 0) goto EXIT;
7468
75-EXIT:;
76- return result;
77-}
78-
79-//******************************************************************************
80-// 移動
81-//******************************************************************************
82-int MTNoteRippleMod::Transform(
83- LPDIRECT3DDEVICE9 pD3DDevice,
84- D3DXVECTOR3 camVector,
85- float rollAngle
86- )
87-{
88- int result = 0;
89- D3DXVECTOR3 moveVector;
90- D3DXMATRIX rotateMatrix;
91- D3DXMATRIX moveMatrix;
92- D3DXMATRIX worldMatrix;
93-
94- m_CamVector = camVector;
95-
96- //波紋の頂点更新
97- result = _TransformRipple(pD3DDevice);
69+ // 基底クラスの生成処理を呼び出す
70+ result = MTNoteRipple::Create(pD3DDevice, pSceneName, pSeqData, pNotePitchBend);
9871 if (result != 0) goto EXIT;
9972
100- //行列初期化
101- D3DXMatrixIdentity(&rotateMatrix);
102- D3DXMatrixIdentity(&moveMatrix);
103- D3DXMatrixIdentity(&worldMatrix);
104-
105- //回転行列
106- //TODO: ini で切り替えられるようにする
107- //D3DXMatrixRotationX(&rotateMatrix, D3DXToRadian(rollAngle + 180.0f));
108- D3DXMatrixRotationX(&rotateMatrix, D3DXToRadian(rollAngle));
109-
110- //移動行列
111- moveVector = m_NoteDesign.GetWorldMoveVector();
112- D3DXMatrixTranslation(&moveMatrix, moveVector.x, moveVector.y, moveVector.z);
113-
114- //行列の合成
115- D3DXMatrixMultiply(&worldMatrix, &rotateMatrix, &moveMatrix);
116-
117- //変換行列設定
118- m_Primitive.Transform(worldMatrix);
119-
12073 EXIT:;
12174 return result;
12275 }
@@ -366,6 +319,9 @@ int MTNoteRippleMod::_UpdateVertexOfRipple(
366319
367320 ZeroMemory(m_KeyDownRate, sizeof(float) * MTNOTERIPPLE_MAX_PORT_NUM * SM_MAX_CH_NUM * SM_MAX_NOTE_NUM);
368321
322+ // 波紋上書き回数
323+ unsigned long overwriteTimes = m_NoteDesignMod.GetRippleOverwriteTimes();
324+
369325 //発音中ノートの波紋について頂点を更新
370326 for (i = 0; i < MTNOTERIPPLE_MAX_RIPPLE_NUM; i++) {
371327 if (m_pNoteStatusMod[i].isActive) {
@@ -380,7 +336,7 @@ int MTNoteRippleMod::_UpdateVertexOfRipple(
380336 if ((note.portNo < MTNOTERIPPLE_MAX_PORT_NUM)
381337 && (m_KeyDownRate[note.portNo][note.chNo][note.noteNo] < m_pNoteStatusMod[i].keyDownRate)) {
382338 //頂点更新:波紋の描画位置とサイズを変える
383- for(j = 0; j < MTNOTERIPPLE_MAX_OVERWRITE_NUM; j++) {
339+ for(j = 0; j < overwriteTimes; j++) {
384340 _SetVertexPosition(
385341 &(pVertex[activeNoteNum*6]), //頂点バッファ書き込み位置
386342 note, //ノート情報
@@ -436,8 +392,8 @@ int MTNoteRippleMod::Draw(
436392 pD3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
437393
438394 //レンダリングステート設定:加算合成
439- //pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_ONE);
440395 pD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_ONE);
396+ pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
441397
442398 //プリミティブ描画
443399 if (m_ActiveNoteNum > 0) {
@@ -447,8 +403,8 @@ int MTNoteRippleMod::Draw(
447403 }
448404
449405 //レンダリングステート設定:通常のアルファ合成
450- //pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
451406 pD3DDevice->SetRenderState(D3DRS_DESTBLEND, D3DBLEND_INVSRCALPHA);
407+ pD3DDevice->SetRenderState(D3DRS_SRCBLEND, D3DBLEND_SRCALPHA);
452408
453409 EXIT:;
454410 return result;
@@ -506,6 +462,9 @@ int MTNoteRippleMod::_CreateVertex(
506462 unsigned long vertexNum = 0;
507463 MTNOTERIPPLE_VERTEX* pVertex = NULL;
508464
465+ // 波紋上書き回数
466+ unsigned long overwriteTimes = m_NoteDesignMod.GetRippleOverwriteTimes();
467+
509468 //プリミティブ初期化
510469 result = m_Primitive.Initialize(
511470 sizeof(MTNOTERIPPLE_VERTEX),//頂点サイズ
@@ -515,7 +474,7 @@ int MTNoteRippleMod::_CreateVertex(
515474 if (result != 0) goto EXIT;
516475
517476 //頂点バッファ生成
518- vertexNum = 6 * MTNOTERIPPLE_MAX_RIPPLE_NUM * MTNOTERIPPLE_MAX_OVERWRITE_NUM;
477+ vertexNum = 6 * MTNOTERIPPLE_MAX_RIPPLE_NUM * overwriteTimes;
519478 result = m_Primitive.CreateVertexBuffer(pD3DDevice, vertexNum);
520479 if (result != 0) goto EXIT;
521480
@@ -523,7 +482,7 @@ int MTNoteRippleMod::_CreateVertex(
523482 result = m_Primitive.LockVertex((void**)&pVertex);
524483 if (result != 0) goto EXIT;
525484
526- ZeroMemory(pVertex, sizeof(MTNOTERIPPLE_VERTEX) * 6 * MTNOTERIPPLE_MAX_RIPPLE_NUM * MTNOTERIPPLE_MAX_OVERWRITE_NUM);
485+ ZeroMemory(pVertex, sizeof(MTNOTERIPPLE_VERTEX) * 6 * MTNOTERIPPLE_MAX_RIPPLE_NUM * overwriteTimes);
527486
528487 //バッファのロック解除
529488 result = m_Primitive.UnlockVertex();
@@ -546,6 +505,7 @@ int MTNoteRippleMod::_SetVertexPosition(
546505 int result = 0;
547506 unsigned long i = 0;
548507 float rh, rw = 0.0f;
508+ float spacing = 0.0f;
549509 float alpha = 0.0f;
550510 D3DXVECTOR3 center;
551511 D3DXCOLOR color;
@@ -569,6 +529,9 @@ int MTNoteRippleMod::_SetVertexPosition(
569529 rh = m_NoteDesignMod.GetRippleHeight(pNoteStatus->keyDownRate);
570530 rw = m_NoteDesignMod.GetRippleWidth(pNoteStatus->keyDownRate);
571531
532+ //波紋描画間隔
533+ spacing = m_NoteDesignMod.GetRippleSpacing();
534+
572535 //描画終了確認
573536 if ((rh <= 0.0f) || (rw <= 0.0f)) {
574537 goto EXIT;
@@ -579,10 +542,10 @@ int MTNoteRippleMod::_SetVertexPosition(
579542 // Zファイティングによって発生するちらつきやかすれを回避する
580543 // グラフィックカードによって現象が異なる
581544 if (center.x < m_CamVector.x) {
582- center.x -= 0.002f * (MTNOTELYRICS_MAX_LYRICS_NUM + MTNOTERIPPLE_MAX_RIPPLE_NUM) - (rippleNo + 1) * 0.002f;
545+ center.x -= spacing * (MTNOTELYRICS_MAX_LYRICS_NUM + MTNOTERIPPLE_MAX_RIPPLE_NUM - (rippleNo + 1));
583546 }
584547 else {
585- center.x -= 0.002f * MTNOTELYRICS_MAX_LYRICS_NUM + (rippleNo + 1) * 0.002f;
548+ center.x -= spacing * (MTNOTELYRICS_MAX_LYRICS_NUM + rippleNo + 1);
586549 }
587550
588551 //頂点座標
--- a/MIDITrail/MTNoteRippleMod.h
+++ b/MIDITrail/MTNoteRippleMod.h
@@ -40,9 +40,6 @@ public:
4040 MTNotePitchBend* pNotePitchBend
4141 );
4242
43- //更新
44- virtual int Transform(LPDIRECT3DDEVICE9 pD3DDevice, D3DXVECTOR3 camVector, float rollAngle);
45-
4643 //描画
4744 virtual int Draw(LPDIRECT3DDEVICE9 pD3DDevice);
4845
--- a/MIDITrail/MTPianoKeyboard.h
+++ b/MIDITrail/MTPianoKeyboard.h
@@ -80,19 +80,6 @@ public:
8080 //共有用テクスチャ取得
8181 LPDIRECT3DTEXTURE9 GetTexture();
8282
83-// >>> modify 20120728 yossiepon begin
84-protected:
85-
86- //キーボードプリミティブ
87- DXPrimitive m_PrimitiveKeyboard;
88-
89- //キーボードデザイン
90- MTPianoKeyboardDesign m_KeyboardDesign;
91-
92- int _RotateKey(unsigned char noteNo, float angle, D3DXCOLOR* pColor = NULL);
93-
94-// <<< modify 20120728 yossiepon end
95-
9683 private:
9784
9885 //頂点バッファ構造体
@@ -111,14 +98,31 @@ private:
11198 unsigned long indexNum;
11299 } MTBufInfo;
113100
101+// >>> modify access level to protected 20161224 yossiepon begin
102+protected:
103+// <<< modify 20161224 yossiepon end
104+
105+ //キーボードプリミティブ
106+ DXPrimitive m_PrimitiveKeyboard;
107+
108+// >>> modify access level 20161224 yossiepon begin
114109 private:
110+// <<< modify 20161224 yossiepon end
115111
116-// >>> modify 20120728 yossiepon begin
117112 //テクスチャ
118113 LPDIRECT3DTEXTURE9 m_pTexture;
119114 D3DXIMAGE_INFO m_ImgInfo;
120115
121-// <<< modify 20120728 yossiepon end
116+// >>> modify access level to protected 20161224 yossiepon begin
117+protected:
118+// <<< modify 20161224 yossiepon end
119+
120+ //キーボードデザイン
121+ MTPianoKeyboardDesign m_KeyboardDesign;
122+
123+// >>> modify access level 20161224 yossiepon begin
124+private:
125+// <<< modify 20161224 yossiepon end
122126
123127 //バッファ情報
124128 MTBufInfo m_BufInfo[SM_MAX_NOTE_NUM];
@@ -157,9 +161,17 @@ private:
157161 int _LoadTexture(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName);
158162 void _MakeMaterial(D3DMATERIAL9* pMaterial);
159163
160-// >>> modify 20120728 yossiepon begin
164+// >>> modify access level to protected 20161224 yossiepon begin
165+protected:
166+// <<< modify 20161224 yossiepon end
167+
168+ int _RotateKey(unsigned char noteNo, float angle, D3DXCOLOR* pColor = NULL);
169+
170+// >>> modify access level 20161224 yossiepon begin
171+private:
172+// <<< modify 20161224 yossiepon end
173+
161174 D3DXVECTOR3 _RotateYZ(float centerY, float centerZ, D3DXVECTOR3 p1, float angle);
162-// <<< modify 20120728 yossiepon end
163175
164176 int _HideKey(unsigned char noteNo);
165177
--- a/MIDITrail/MTPianoKeyboardCtrl.h
+++ b/MIDITrail/MTPianoKeyboardCtrl.h
@@ -77,8 +77,9 @@ public:
7777 //スキップ状態
7878 void SetSkipStatus(bool isSkipping);
7979
80-// >>> modify 20120728 yossiepon begin
80+// >>> modify access level to protected 20161224 yossiepon begin
8181 protected:
82+// <<< modify 20161224 yossiepon end
8283
8384 //キー状態
8485 enum KeyStatus {
@@ -95,13 +96,8 @@ protected:
9596 float keyDownRate;
9697 };
9798
98-// >>> modify 20140920 yossiepon begin
99-protected:
100- //シングルキーボードフラグ
101- bool m_isSingleKeyboard;
102-// <<< modify 20120920 yossiepon end
103-
104-protected:
99+// >>> modify access level to protected 20161224 yossiepon begin
100+// <<< modify 20161224 yossiepon end
105101
106102 //ノートデザイン
107103 MTNoteDesign m_NoteDesign;
@@ -122,16 +118,44 @@ protected:
122118 NoteStatus* m_pNoteStatus;
123119 float m_KeyDownRate[SM_MAX_CH_NUM][SM_MAX_NOTE_NUM];
124120
121+// >>> modify access level 20161224 yossiepon begin
122+private:
123+// <<< modify 20161224 yossiepon end
124+
125+ //スキップ状態
126+ bool m_isSkipping;
127+
128+// >>> modify access level to protected 20161224 yossiepon begin
129+protected:
130+// <<< modify 20161224 yossiepon end
131+
125132 //ピッチベンド情報
126133 MTNotePitchBend* m_pNotePitchBend;
127134
128135 //表示可否
129136 bool m_isEnable;
130137
138+ //シングルキーボードフラグ
139+ bool m_isSingleKeyboard;
140+
131141 int _CreateNoteStatus();
142+// >>> modify 20120728 yossiepon begin
132143 virtual int _CreateKeyboards(LPDIRECT3DDEVICE9 pD3DDevice, const TCHAR* pSceneName, SMSeqData* pSeqData);
144+// <<< modify 20120728 yossiepon end
133145
134146 int _TransformActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
147+
148+// >>> modify access level 20161224 yossiepon begin
149+private:
150+// <<< modify 20161224 yossiepon end
151+
152+ int _UpdateStatusOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
153+
154+// >>> modify access level to protected 20161224 yossiepon begin
155+protected:
156+// <<< modify 20161224 yossiepon end
157+
158+// >>> modify 20120728 yossiepon begin
135159 virtual int _UpdateNoteStatus(
136160 unsigned long playTimeMSec,
137161 unsigned long keyDownDuration,
@@ -140,20 +164,8 @@ protected:
140164 NoteStatus* pNoteStatus
141165 );
142166 virtual int _UpdateVertexOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
143- float _GetPichBendShiftPosX(unsigned char portNo, unsigned char chNo);
144-
145-// <<< modify 20120728 yossiepon end
146-
147-private:
148-
149-// >>> modify 20120728 yossiepon begin
150- //スキップ状態
151- bool m_isSkipping;
152-// <<< modify 20120728 yossiepon end
153-
154-// >>> modify 20120728 yossiepon begin
155- int _UpdateStatusOfActiveNotes(LPDIRECT3DDEVICE9 pD3DDevice);
156167 // <<< modify 20120728 yossiepon end
168+ float _GetPichBendShiftPosX(unsigned char portNo, unsigned char chNo);
157169
158170 };
159171
--- a/MIDITrail/MTPianoKeyboardCtrlMod.cpp
+++ b/MIDITrail/MTPianoKeyboardCtrlMod.cpp
@@ -66,7 +66,7 @@ int MTPianoKeyboardCtrlMod::Create(
6666 }
6767
6868 //ノートデザインオブジェクト初期化
69- result = m_NoteDesign.Initialize(pSceneName, pSeqData);
69+ result = m_NoteDesignMod.Initialize(pSceneName, pSeqData);
7070 if (result != 0) goto EXIT;
7171
7272 //キーボードデザイン初期化
@@ -175,7 +175,7 @@ int MTPianoKeyboardCtrlMod::Transform(
175175 if (result != 0) goto EXIT;
176176
177177 //再生面頂点座標取得
178- m_NoteDesign.GetPlaybackSectionVirtexPos(
178+ m_NoteDesignMod.GetPlaybackSectionVirtexPos(
179179 0,
180180 &vectorLU,
181181 &vectorRU,
@@ -186,9 +186,11 @@ int MTPianoKeyboardCtrlMod::Transform(
186186 float boardHeight = vectorLU.y - vectorLD.y;
187187 float keyboardWidth = m_KeyboardDesignMod.GetPortOriginX(0) * -2.0f;
188188
189+ float rippleSpacing = m_NoteDesignMod.GetRippleSpacing();
190+
189191 //移動ベクトル:再生面に追従する
190- moveVector2 = m_NoteDesign.GetWorldMoveVector();
191- moveVector2.x += m_NoteDesign.GetPlayPosX(m_CurTickTime);
192+ moveVector2 = m_NoteDesignMod.GetWorldMoveVector();
193+ moveVector2.x += m_NoteDesignMod.GetPlayPosX(m_CurTickTime);
192194
193195 unsigned char lastPortNo = 0;
194196
@@ -243,7 +245,7 @@ int MTPianoKeyboardCtrlMod::Transform(
243245 moveVector1.y -= m_KeyboardDesignMod.GetWhiteKeyHeight() / 4.0f;
244246
245247 //鍵盤の長さ+リップルマージン+歌詞マージンだけ手前に
246- moveVector1.z -= m_KeyboardDesignMod.GetWhiteKeyLen() + 0.002f * (MTNOTELYRICS_MAX_LYRICS_NUM + MTNOTERIPPLE_MAX_RIPPLE_NUM) * (keyboardWidth / boardHeight);
248+ moveVector1.z -= m_KeyboardDesignMod.GetWhiteKeyLen() + rippleSpacing * (MTNOTELYRICS_MAX_LYRICS_NUM + MTNOTERIPPLE_MAX_RIPPLE_NUM) * (keyboardWidth / boardHeight);
247249
248250 } else {
249251
@@ -355,7 +357,7 @@ int MTPianoKeyboardCtrlMod::_UpdateVertexOfActiveNotes(
355357 }
356358
357359 //ノートの色
358- noteColor = m_NoteDesign.GetNoteBoxColor(note.portNo, note.chNo, note.noteNo);
360+ noteColor = m_NoteDesignMod.GetNoteBoxColor(note.portNo, note.chNo, note.noteNo);
359361
360362 //発音対象キーを回転
361363 // すでに同一ノートに対して頂点を更新している場合
--- a/MIDITrail/MTPianoKeyboardCtrlMod.h
+++ b/MIDITrail/MTPianoKeyboardCtrlMod.h
@@ -12,6 +12,7 @@
1212
1313 #include "MTPianoKeyboardCtrl.h"
1414 #include "MTPianoKeyboardDesignMod.h"
15+#include "MTNoteDesignMod.h"
1516
1617
1718 //******************************************************************************
@@ -49,6 +50,9 @@ protected:
4950
5051 private:
5152
53+ //ノートデザイン
54+ MTNoteDesignMod m_NoteDesignMod;
55+
5256 //キーボードデザイン
5357 MTPianoKeyboardDesignMod m_KeyboardDesignMod;
5458
--- a/MIDITrail/MTPianoKeyboardDesign.h
+++ b/MIDITrail/MTPianoKeyboardDesign.h
@@ -194,29 +194,6 @@ public:
194194 unsigned char GetKeyDispRangeEnd();
195195 bool IsKeyDisp(unsigned char noteNo);
196196
197-// >>> modify 20120728 yossiepon begin
198-protected:
199-
200- //ポート情報
201- SMPortList m_PortList;
202- unsigned char m_PortIndex[SM_MAX_PORT_NUM];
203-
204- //キーボード配置情報
205- float m_KeyboardStepY;
206-
207- //発音中キー色情報
208- int m_ActiveKeyColorDuration;
209- float m_ActiveKeyColorTailRate;
210-
211- virtual void _Initialize();
212- virtual int _LoadConfFile(const TCHAR* pSceneName);
213-
214-// <<< modify 20120728 yossiepon end
215-
216-// >>> modify 20140920 yossiepon begin
217- ActiveKeyColorType m_ActiveKeyColorType;
218-// <<< modify 20120920 yossiepon end
219-
220197 private:
221198
222199 //キー情報
@@ -227,11 +204,20 @@ private:
227204
228205 private:
229206
230-// >>> modify 20120728 yossiepon begin
231207 //キー情報配列
232208 MTKeyInfo m_KeyInfo[SM_MAX_NOTE_NUM];
233209
234-// <<< modify 20120728 yossiepon end
210+// >>> modify access level to protected 20161224 yossiepon begin
211+protected:
212+// <<< modify 20161224 yossiepon end
213+
214+ //ポート情報
215+ SMPortList m_PortList;
216+ unsigned char m_PortIndex[SM_MAX_PORT_NUM];
217+
218+// >>> modify access level 20161224 yossiepon begin
219+private:
220+// <<< modify 20161224 yossiepon end
235221
236222 //スケール情報
237223 float m_WhiteKeyStep;
@@ -255,27 +241,64 @@ private:
255241 int m_KeyUpDuration;
256242
257243 //キーボード配置情報
258-// >>> modify 20120728 yossiepon begin
244+
245+// >>> modify access level to protected 20161224 yossiepon begin
246+protected:
247+// <<< modify 20161224 yossiepon end
248+
249+ float m_KeyboardStepY;
250+
251+// >>> modify access level 20161224 yossiepon begin
252+private:
253+// <<< modify 20161224 yossiepon end
254+
259255 float m_KeyboardStepZ;
260256 int m_KeyboardMaxDispNum;
261-// <<< modify 20120728 yossiepon end
262257
263258 //キー色情報
264259 D3DXCOLOR m_WhiteKeyColor;
265260 D3DXCOLOR m_BlackKeyColor;
266261
267262 //発音中キー色情報
268-// >>> modify 20120728 yossiepon begin
269263 D3DXCOLOR m_ActiveKeyColor;
270-// <<< modify 20120728 yossiepon end
271264
272-// >>> modify 20120728 yossiepon begin
265+// >>> modify access level to protected 20161224 yossiepon begin
266+protected:
267+// <<< modify 20161224 yossiepon end
268+
269+ int m_ActiveKeyColorDuration;
270+ float m_ActiveKeyColorTailRate;
271+ ActiveKeyColorType m_ActiveKeyColorType;
272+
273+// >>> modify access level 20161224 yossiepon begin
274+private:
275+// <<< modify 20161224 yossiepon end
276+
273277 //キー表示範囲
274278 int m_KeyDispRangeStart;
275279 int m_KeyDispRangeEnd;
276280
281+// >>> modify access level to protected 20161224 yossiepon begin
282+protected:
283+// <<< modify 20161224 yossiepon end
284+
285+// >>> modify 20120728 yossiepon begin
286+ virtual void _Initialize();
287+// <<< modify 20120728 yossiepon end
288+
289+// >>> modify access level 20161224 yossiepon begin
290+private:
291+// <<< modify 20161224 yossiepon end
292+
277293 void _InitKeyType();
278294 void _InitKeyPos();
295+
296+// >>> modify access level to protected 20161224 yossiepon begin
297+protected:
298+// <<< modify 20161224 yossiepon end
299+
300+// >>> modify 20120728 yossiepon begin
301+ virtual int _LoadConfFile(const TCHAR* pSceneName);
279302 // <<< modify 20120728 yossiepon end
280303
281304 };
--- a/MIDITrail/MTPianoKeyboardDesignMod.cpp
+++ b/MIDITrail/MTPianoKeyboardDesignMod.cpp
@@ -199,6 +199,11 @@ int MTPianoKeyboardDesignMod::_LoadConfFile(
199199 unsigned long i = 0;
200200 MTConfFile confFile;
201201
202+ //基底クラスの読み込み処理を呼び出す
203+ result = MTPianoKeyboardDesign::_LoadConfFile(pSceneName);
204+ if (result != 0) goto EXIT;
205+
206+ //設定ファイルを開く
202207 result = confFile.Initialize(pSceneName);
203208 if (result != 0) goto EXIT;
204209
--- a/MIDITrail/MTPianoKeyboardMod.cpp
+++ b/MIDITrail/MTPianoKeyboardMod.cpp
@@ -164,7 +164,7 @@ int MTPianoKeyboardMod::PushKey(
164164 goto EXIT;
165165 }
166166
167- angle = m_KeyboardDesign.GetKeyRotateAngle() * keyDownRate;
167+ angle = m_KeyboardDesignMod.GetKeyRotateAngle() * keyDownRate;
168168
169169 if (keyDownRate < 1.0f) {
170170 //キーが下降中/上昇中の場合は色を変更せず回転させる
--- a/MIDITrail/MTScenePianoRoll3D.h
+++ b/MIDITrail/MTScenePianoRoll3D.h
@@ -121,6 +121,7 @@ private:
121121
122122 // >>> modify access level to protected 20161223 yossiepon begin
123123 protected:
124+// <<< modify 20161223 yossiepon end
124125
125126 //一人称カメラ
126127 MTFirstPersonCam m_FirstPersonCam;
@@ -137,11 +138,9 @@ protected:
137138 MTMeshCtrl m_MeshCtrl;
138139 MTBackgroundImage m_BackgroundImage;
139140
140-// <<< modify 20161223 yossiepon end
141-
142-// >>> add 20161223 yossiepon begin
141+// >>> modify access level 20161223 yossiepon begin
143142 private:
144-// <<< add 20161223 yossiepon end
143+// <<< modify access level 20161223 yossiepon end
145144
146145 //マウス視線移動モード
147146 bool m_IsMouseCamMode;
@@ -157,6 +156,7 @@ private:
157156
158157 // >>> modify access level to protected 20161223 yossiepon begin
159158 protected:
159+// <<< modify 20161223 yossiepon end
160160
161161 //スキップ状態
162162 bool m_IsSkipping;
@@ -166,11 +166,9 @@ protected:
166166 // <<< modify 20120728 yossiepon end
167167 void _SetLightColor(DXDirLight* pLight);
168168
169-// <<< modify 20161223 yossiepon end
170-
171-// >>> add 20161223 yossiepon begin
169+// >>> modify access level 20161223 yossiepon begin
172170 private:
173-// <<< add 20161223 yossiepon end
171+// <<< modify access level 20161223 yossiepon end
174172
175173 int _LoadConf();
176174
--- a/MIDITrail/MTScenePianoRoll3DMod.cpp
+++ b/MIDITrail/MTScenePianoRoll3DMod.cpp
@@ -89,7 +89,7 @@ int MTScenePianoRoll3DMod::Create(
8989 m_PictBoard.SetEnable(false);
9090
9191 //ピアノキーボード制御
92- result = m_PianoKeyboardCtrl.Create(pD3DDevice, GetName(), pSeqData, &m_NotePitchBend, m_IsSingleKeyboard);
92+ result = m_PianoKeyboardCtrlMod.Create(pD3DDevice, GetName(), pSeqData, &m_NotePitchBend, m_IsSingleKeyboard);
9393 if (result != 0) goto EXIT;
9494
9595 EXIT:;
@@ -134,7 +134,7 @@ int MTScenePianoRoll3DMod::Transform(
134134 if (result != 0) goto EXIT;
135135
136136 //ピアノキーボード更新
137- result = m_PianoKeyboardCtrl.Transform(pD3DDevice, rollAngle);
137+ result = m_PianoKeyboardCtrlMod.Transform(pD3DDevice, rollAngle);
138138 if (result != 0) goto EXIT;
139139
140140 EXIT:;
@@ -201,7 +201,7 @@ int MTScenePianoRoll3DMod::Draw(
201201 if (result != 0) goto EXIT;
202202
203203 //ピアノキーボード描画
204- result = m_PianoKeyboardCtrl.Draw(pD3DDevice);
204+ result = m_PianoKeyboardCtrlMod.Draw(pD3DDevice);
205205 if (result != 0) goto EXIT;
206206
207207 } else {
@@ -209,7 +209,7 @@ int MTScenePianoRoll3DMod::Draw(
209209 //キーボード>波紋>歌詞>タイムインジケータ>メッシュの順で奥から描画
210210
211211 //ピアノキーボード描画
212- result = m_PianoKeyboardCtrl.Draw(pD3DDevice);
212+ result = m_PianoKeyboardCtrlMod.Draw(pD3DDevice);
213213 if (result != 0) goto EXIT;
214214
215215 //ノート波紋描画
@@ -246,7 +246,7 @@ void MTScenePianoRoll3DMod::Release()
246246 m_NoteBoxMod.Release();
247247 m_NoteRippleMod.Release();
248248 m_NoteLyrics.Release();
249- m_PianoKeyboardCtrl.Release();
249+ m_PianoKeyboardCtrlMod.Release();
250250
251251 MTScenePianoRoll3D::Release();
252252 }
@@ -288,8 +288,8 @@ int MTScenePianoRoll3DMod::OnRecvSequencerMsg(
288288 m_NoteBoxMod.SetCurTickTime(parser.GetPlayTickTime());
289289 m_NoteLyrics.SetPlayTimeMSec(parser.GetPlayTimeMSec());
290290 m_NoteLyrics.SetCurTickTime(parser.GetPlayTickTime());
291- m_PianoKeyboardCtrl.SetPlayTimeMSec(parser.GetPlayTimeMSec());
292- m_PianoKeyboardCtrl.SetCurTickTime(parser.GetPlayTickTime());
291+ m_PianoKeyboardCtrlMod.SetPlayTimeMSec(parser.GetPlayTimeMSec());
292+ m_PianoKeyboardCtrlMod.SetCurTickTime(parser.GetPlayTickTime());
293293 }
294294 //テンポ変更通知
295295 else if (parser.GetMsg() == SMMsgParser::MsgTempo) {
@@ -326,8 +326,8 @@ int MTScenePianoRoll3DMod::OnRecvSequencerMsg(
326326 m_NoteRippleMod.SetSkipStatus(true);
327327 m_NoteLyrics.Reset();
328328 m_NoteLyrics.SetSkipStatus(true);
329- m_PianoKeyboardCtrl.Reset();
330- m_PianoKeyboardCtrl.SetSkipStatus(true);
329+ m_PianoKeyboardCtrlMod.Reset();
330+ m_PianoKeyboardCtrlMod.SetSkipStatus(true);
331331 m_IsSkipping = true;
332332 }
333333 //スキップ終了通知
@@ -336,7 +336,7 @@ int MTScenePianoRoll3DMod::OnRecvSequencerMsg(
336336 m_NoteBoxMod.SetSkipStatus(false);
337337 m_NoteRippleMod.SetSkipStatus(false);
338338 m_NoteLyrics.SetSkipStatus(false);
339- m_PianoKeyboardCtrl.SetSkipStatus(false);
339+ m_PianoKeyboardCtrlMod.SetSkipStatus(false);
340340 m_IsSkipping = false;
341341 }
342342
@@ -354,7 +354,7 @@ void MTScenePianoRoll3DMod::_Reset()
354354 m_NoteBoxMod.Reset();
355355 m_NoteRippleMod.Reset();
356356 m_NoteLyrics.Reset();
357- m_PianoKeyboardCtrl.Reset();
357+ m_PianoKeyboardCtrlMod.Reset();
358358 }
359359
360360 //******************************************************************************
@@ -367,7 +367,7 @@ void MTScenePianoRoll3DMod::SetEffect(
367367 {
368368 switch (type) {
369369 case EffectPianoKeyboard:
370- m_PianoKeyboardCtrl.SetEnable(isEnable);
370+ m_PianoKeyboardCtrlMod.SetEnable(isEnable);
371371 break;
372372 case EffectRipple:
373373 m_NoteRippleMod.SetEnable(isEnable);
--- a/MIDITrail/MTScenePianoRoll3DMod.h
+++ b/MIDITrail/MTScenePianoRoll3DMod.h
@@ -70,7 +70,7 @@ private:
7070 MTNoteBoxMod m_NoteBoxMod;
7171 MTNoteRippleMod m_NoteRippleMod;
7272 MTNoteLyrics m_NoteLyrics;
73- MTPianoKeyboardCtrlMod m_PianoKeyboardCtrl;
73+ MTPianoKeyboardCtrlMod m_PianoKeyboardCtrlMod;
7474
7575 };
7676
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRoll2D.ini
@@ -0,0 +1,105 @@
1+[FirstPersonCam]
2+VelocityFB=15.0
3+VelocityLR=15.0
4+VelocityUD=10.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.0
14+NoteStep=0.1
15+ChStep=0.0
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272EE
25+Ch-02-NoteRGBA=81EF72EE
26+Ch-03-NoteRGBA=7291EFEE
27+Ch-04-NoteRGBA=EFA272EE
28+Ch-05-NoteRGBA=72EF91EE
29+Ch-06-NoteRGBA=8372EFEE
30+Ch-07-NoteRGBA=EFD072EE
31+Ch-08-NoteRGBA=72EFC1EE
32+Ch-09-NoteRGBA=B072EFEE
33+Ch-10-NoteRGBA=DEEF72EE
34+Ch-11-NoteRGBA=72EFEFEE
35+Ch-12-NoteRGBA=E072EFEE
36+Ch-13-NoteRGBA=B0EF72EE
37+Ch-14-NoteRGBA=72BFEFEE
38+Ch-15-NoteRGBA=EF72D0EE
39+Ch-16-NoteRGBA=EF72A0EE
40+Scale-01-NoteRGBA=D50000EE
41+Scale-02-NoteRGBA=480BFFEE
42+Scale-03-NoteRGBA=FFFF40EE
43+Scale-04-NoteRGBA=9F009FEE
44+Scale-05-NoteRGBA=AAFFD5EE
45+Scale-06-NoteRGBA=9F001CEE
46+Scale-07-NoteRGBA=409FFFEE
47+Scale-08-NoteRGBA=FFAF0BEE
48+Scale-09-NoteRGBA=9F00D5EE
49+Scale-10-NoteRGBA=75FF75EE
50+Scale-11-NoteRGBA=6A0035EE
51+Scale-12-NoteRGBA=75E7FFEE
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=AAAAAAAA
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+;Duration=1600
64+DecayDuration=100
65+ReleaseDuration=250
66+OverwriteTimes=3
67+Spacing=0.002
68+
69+[Stars]
70+NumberOfStars=2000
71+
72+[Bitmap]
73+Board=data\Board.png
74+Ripple=data\Ripple2.png
75+
76+[PianoKeyboard]
77+KeyDownDuration=40
78+KeyUpDuration=40
79+KeyboardStepY=0.34
80+KeyboardStepZ=1.5
81+KeyboardMaxDispNum=16
82+WhiteKeyColor=FFFFFFDD
83+BlackKeyColor=FFFFFFDD
84+ActiveKeyColorType=STANDARD
85+;ActiveKeyColor=FF0000FF
86+Ch-01-ActiveKeyColor=E61A1AEE
87+Ch-02-ActiveKeyColor=1FFF01EE
88+Ch-03-ActiveKeyColor=013DFFEE
89+Ch-04-ActiveKeyColor=FF6101EE
90+Ch-05-ActiveKeyColor=01FF43EE
91+Ch-06-ActiveKeyColor=2501FFEE
92+Ch-07-ActiveKeyColor=FFC001EE
93+Ch-08-ActiveKeyColor=01FFA2EE
94+Ch-09-ActiveKeyColor=7F01FFEE
95+Ch-10-ActiveKeyColor=DEFF01EE
96+Ch-11-ActiveKeyColor=01FCFFEE
97+Ch-12-ActiveKeyColor=DE01FFEE
98+Ch-13-ActiveKeyColor=7FFF01EE
99+Ch-14-ActiveKeyColor=019DFFEE
100+Ch-15-ActiveKeyColor=FF01C0EE
101+Ch-16-ActiveKeyColor=FF0161EE
102+ActiveKeyColorDuration=400
103+ActiveKeyColorTailRate=0.5
104+KeyDispRangeStart=0
105+KeyDispRangeEnd=127
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRoll2DLive.ini
@@ -0,0 +1,77 @@
1+[FirstPersonCam]
2+VelocityFB=15.0
3+VelocityLR=15.0
4+VelocityUD=10.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.0
14+NoteStep=0.1
15+ChStep=0.0
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272FF
25+Ch-02-NoteRGBA=81EF72FF
26+Ch-03-NoteRGBA=7291EFFF
27+Ch-04-NoteRGBA=EFA272FF
28+Ch-05-NoteRGBA=72EF91FF
29+Ch-06-NoteRGBA=8372EFFF
30+Ch-07-NoteRGBA=EFD072FF
31+Ch-08-NoteRGBA=72EFC1FF
32+Ch-09-NoteRGBA=B072EFFF
33+Ch-10-NoteRGBA=DEEF72FF
34+Ch-11-NoteRGBA=72EFEFFF
35+Ch-12-NoteRGBA=E072EFFF
36+Ch-13-NoteRGBA=B0EF72FF
37+Ch-14-NoteRGBA=72BFEFFF
38+Ch-15-NoteRGBA=EF72D0FF
39+Ch-16-NoteRGBA=EF72A0FF
40+Scale-01-NoteRGBA=D50000FF
41+Scale-02-NoteRGBA=480BFFFF
42+Scale-03-NoteRGBA=FFFF40FF
43+Scale-04-NoteRGBA=9F009FFF
44+Scale-05-NoteRGBA=AAFFD5FF
45+Scale-06-NoteRGBA=9F001CFF
46+Scale-07-NoteRGBA=409FFFFF
47+Scale-08-NoteRGBA=FFAF0BFF
48+Scale-09-NoteRGBA=9F00D5FF
49+Scale-10-NoteRGBA=75FF75FF
50+Scale-11-NoteRGBA=6A0035FF
51+Scale-12-NoteRGBA=75E7FFFF
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=FFFFFFFF
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+Duration=1600
64+
65+[Stars]
66+NumberOfStars=2000
67+
68+[Bitmap]
69+Board=data\Board.png
70+Ripple=data\Ripple.png
71+
72+#[Mesh]
73+#XFile=mesh\model.x
74+#PositionX=0.0
75+#PositionY=0.0
76+#PositionZ=0.0
77+
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRoll3D.ini
@@ -0,0 +1,106 @@
1+[FirstPersonCam]
2+VelocityFB=15.0
3+VelocityLR=15.0
4+VelocityUD=10.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.1
14+NoteStep=0.1
15+ChStep=0.5
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272EE
25+Ch-02-NoteRGBA=81EF72EE
26+Ch-03-NoteRGBA=7291EFEE
27+Ch-04-NoteRGBA=EFA272EE
28+Ch-05-NoteRGBA=72EF91EE
29+Ch-06-NoteRGBA=8372EFEE
30+Ch-07-NoteRGBA=EFD072EE
31+Ch-08-NoteRGBA=72EFC1EE
32+Ch-09-NoteRGBA=B072EFEE
33+Ch-10-NoteRGBA=DEEF72EE
34+Ch-11-NoteRGBA=72EFEFEE
35+Ch-12-NoteRGBA=E072EFEE
36+Ch-13-NoteRGBA=B0EF72EE
37+Ch-14-NoteRGBA=72BFEFEE
38+Ch-15-NoteRGBA=EF72D0EE
39+Ch-16-NoteRGBA=EF72A0EE
40+Scale-01-NoteRGBA=D50000EE
41+Scale-02-NoteRGBA=480BFFEE
42+Scale-03-NoteRGBA=FFFF40EE
43+Scale-04-NoteRGBA=9F009FEE
44+Scale-05-NoteRGBA=AAFFD5EE
45+Scale-06-NoteRGBA=9F001CEE
46+Scale-07-NoteRGBA=409FFFEE
47+Scale-08-NoteRGBA=FFAF0BEE
48+Scale-09-NoteRGBA=9F00D5EE
49+Scale-10-NoteRGBA=75FF75EE
50+Scale-11-NoteRGBA=6A0035EE
51+Scale-12-NoteRGBA=75E7FFEE
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=AAAAAAAA
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+;Duration=1600
64+DecayDuration=100
65+ReleaseDuration=250
66+OverwriteTimes=3
67+Spacing=0.002
68+
69+[Stars]
70+NumberOfStars=2000
71+
72+[Bitmap]
73+Board=data\Board.png
74+Ripple=data\Ripple2.png
75+Keyboard=data\Keyboard.png
76+
77+[PianoKeyboard]
78+KeyDownDuration=40
79+KeyUpDuration=40
80+KeyboardStepY=0.34
81+KeyboardStepZ=1.5
82+KeyboardMaxDispNum=16
83+WhiteKeyColor=FFFFFFDD
84+BlackKeyColor=FFFFFFDD
85+ActiveKeyColorType=STANDARD
86+;ActiveKeyColor=FF0000FF
87+Ch-01-ActiveKeyColor=E61A1AEE
88+Ch-02-ActiveKeyColor=1FFF01EE
89+Ch-03-ActiveKeyColor=013DFFEE
90+Ch-04-ActiveKeyColor=FF6101EE
91+Ch-05-ActiveKeyColor=01FF43EE
92+Ch-06-ActiveKeyColor=2501FFEE
93+Ch-07-ActiveKeyColor=FFC001EE
94+Ch-08-ActiveKeyColor=01FFA2EE
95+Ch-09-ActiveKeyColor=7F01FFEE
96+Ch-10-ActiveKeyColor=DEFF01EE
97+Ch-11-ActiveKeyColor=01FCFFEE
98+Ch-12-ActiveKeyColor=DE01FFEE
99+Ch-13-ActiveKeyColor=7FFF01EE
100+Ch-14-ActiveKeyColor=019DFFEE
101+Ch-15-ActiveKeyColor=FF01C0EE
102+Ch-16-ActiveKeyColor=FF0161EE
103+ActiveKeyColorDuration=400
104+ActiveKeyColorTailRate=0.5
105+KeyDispRangeStart=0
106+KeyDispRangeEnd=127
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRoll3DLive.ini
@@ -0,0 +1,77 @@
1+[FirstPersonCam]
2+VelocityFB=15.0
3+VelocityLR=15.0
4+VelocityUD=10.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.1
14+NoteStep=0.1
15+ChStep=0.5
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272FF
25+Ch-02-NoteRGBA=81EF72FF
26+Ch-03-NoteRGBA=7291EFFF
27+Ch-04-NoteRGBA=EFA272FF
28+Ch-05-NoteRGBA=72EF91FF
29+Ch-06-NoteRGBA=8372EFFF
30+Ch-07-NoteRGBA=EFD072FF
31+Ch-08-NoteRGBA=72EFC1FF
32+Ch-09-NoteRGBA=B072EFFF
33+Ch-10-NoteRGBA=DEEF72FF
34+Ch-11-NoteRGBA=72EFEFFF
35+Ch-12-NoteRGBA=E072EFFF
36+Ch-13-NoteRGBA=B0EF72FF
37+Ch-14-NoteRGBA=72BFEFFF
38+Ch-15-NoteRGBA=EF72D0FF
39+Ch-16-NoteRGBA=EF72A0FF
40+Scale-01-NoteRGBA=D50000FF
41+Scale-02-NoteRGBA=480BFFFF
42+Scale-03-NoteRGBA=FFFF40FF
43+Scale-04-NoteRGBA=9F009FFF
44+Scale-05-NoteRGBA=AAFFD5FF
45+Scale-06-NoteRGBA=9F001CFF
46+Scale-07-NoteRGBA=409FFFFF
47+Scale-08-NoteRGBA=FFAF0BFF
48+Scale-09-NoteRGBA=9F00D5FF
49+Scale-10-NoteRGBA=75FF75FF
50+Scale-11-NoteRGBA=6A0035FF
51+Scale-12-NoteRGBA=75E7FFFF
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=FFFFFFFF
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+Duration=1600
64+
65+[Stars]
66+NumberOfStars=2000
67+
68+[Bitmap]
69+Board=data\Board.png
70+Ripple=data\Ripple.png
71+
72+#[Mesh]
73+#XFile=mesh\model.x
74+#PositionX=0.0
75+#PositionY=0.0
76+#PositionZ=0.0
77+
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRollRain.ini
@@ -0,0 +1,93 @@
1+[FirstPersonCam]
2+VelocityFB=10.0
3+VelocityLR=10.0
4+VelocityUD=5.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.1
14+NoteStep=0.1
15+ChStep=0.5
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272FF
25+Ch-02-NoteRGBA=81EF72FF
26+Ch-03-NoteRGBA=7291EFFF
27+Ch-04-NoteRGBA=EFA272FF
28+Ch-05-NoteRGBA=72EF91FF
29+Ch-06-NoteRGBA=8372EFFF
30+Ch-07-NoteRGBA=EFD072FF
31+Ch-08-NoteRGBA=72EFC1FF
32+Ch-09-NoteRGBA=B072EFFF
33+Ch-10-NoteRGBA=DEEF72FF
34+Ch-11-NoteRGBA=72EFEFFF
35+Ch-12-NoteRGBA=E072EFFF
36+Ch-13-NoteRGBA=B0EF72FF
37+Ch-14-NoteRGBA=72BFEFFF
38+Ch-15-NoteRGBA=EF72D0FF
39+Ch-16-NoteRGBA=EF72A0FF
40+Scale-01-NoteRGBA=D50000FF
41+Scale-02-NoteRGBA=480BFFFF
42+Scale-03-NoteRGBA=FFFF40FF
43+Scale-04-NoteRGBA=9F009FFF
44+Scale-05-NoteRGBA=AAFFD5FF
45+Scale-06-NoteRGBA=9F001CFF
46+Scale-07-NoteRGBA=409FFFFF
47+Scale-08-NoteRGBA=FFAF0BFF
48+Scale-09-NoteRGBA=9F00D5FF
49+Scale-10-NoteRGBA=75FF75FF
50+Scale-11-NoteRGBA=6A0035FF
51+Scale-12-NoteRGBA=75E7FFFF
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=AAAAAAFF
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+Duration=1600
64+
65+[Stars]
66+NumberOfStars=2000
67+
68+[Bitmap]
69+Board=data\Board.png
70+Ripple=data\Ripple.png
71+Keyboard=data\Keyboard.png
72+
73+[PianoKeyboard]
74+KeyDownDuration=40
75+KeyUpDuration=40
76+KeyboardStepY=0.34
77+KeyboardStepZ=1.5
78+KeyboardMaxDispNum=16
79+WhiteKeyColor=FFFFFFFF
80+BlackKeyColor=FFFFFFFF
81+ActiveKeyColorType=STANDARD
82+ActiveKeyColor=FF0000FF
83+ActiveKeyColorDuration=400
84+ActiveKeyColorTailRate=0.5
85+KeyDispRangeStart=0
86+KeyDispRangeEnd=127
87+
88+#[Mesh]
89+#XFile=mesh\model.x
90+#PositionX=0.0
91+#PositionY=0.0
92+#PositionZ=0.0
93+
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRollRain2D.ini
@@ -0,0 +1,93 @@
1+[FirstPersonCam]
2+VelocityFB=10.0
3+VelocityLR=10.0
4+VelocityUD=5.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.1
14+NoteStep=0.1
15+ChStep=0.5
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272FF
25+Ch-02-NoteRGBA=81EF72FF
26+Ch-03-NoteRGBA=7291EFFF
27+Ch-04-NoteRGBA=EFA272FF
28+Ch-05-NoteRGBA=72EF91FF
29+Ch-06-NoteRGBA=8372EFFF
30+Ch-07-NoteRGBA=EFD072FF
31+Ch-08-NoteRGBA=72EFC1FF
32+Ch-09-NoteRGBA=B072EFFF
33+Ch-10-NoteRGBA=DEEF72FF
34+Ch-11-NoteRGBA=72EFEFFF
35+Ch-12-NoteRGBA=E072EFFF
36+Ch-13-NoteRGBA=B0EF72FF
37+Ch-14-NoteRGBA=72BFEFFF
38+Ch-15-NoteRGBA=EF72D0FF
39+Ch-16-NoteRGBA=EF72A0FF
40+Scale-01-NoteRGBA=D50000FF
41+Scale-02-NoteRGBA=480BFFFF
42+Scale-03-NoteRGBA=FFFF40FF
43+Scale-04-NoteRGBA=9F009FFF
44+Scale-05-NoteRGBA=AAFFD5FF
45+Scale-06-NoteRGBA=9F001CFF
46+Scale-07-NoteRGBA=409FFFFF
47+Scale-08-NoteRGBA=FFAF0BFF
48+Scale-09-NoteRGBA=9F00D5FF
49+Scale-10-NoteRGBA=75FF75FF
50+Scale-11-NoteRGBA=6A0035FF
51+Scale-12-NoteRGBA=75E7FFFF
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=AAAAAAFF
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+Duration=1600
64+
65+[Stars]
66+NumberOfStars=2000
67+
68+[Bitmap]
69+Board=data\Board.png
70+Ripple=data\Ripple.png
71+Keyboard=data\Keyboard.png
72+
73+[PianoKeyboard]
74+KeyDownDuration=40
75+KeyUpDuration=40
76+KeyboardStepY=0
77+KeyboardStepZ=0.001
78+KeyboardMaxDispNum=1
79+WhiteKeyColor=FFFFFFFF
80+BlackKeyColor=FFFFFFFF
81+ActiveKeyColorType=NOTE
82+ActiveKeyColor=FF0000FF
83+ActiveKeyColorDuration=400
84+ActiveKeyColorTailRate=0.3
85+KeyDispRangeStart=0
86+KeyDispRangeEnd=127
87+
88+#[Mesh]
89+#XFile=mesh\model.x
90+#PositionX=0.0
91+#PositionY=0.0
92+#PositionZ=0.0
93+
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRollRain2DLive.ini
@@ -0,0 +1,93 @@
1+[FirstPersonCam]
2+VelocityFB=10.0
3+VelocityLR=10.0
4+VelocityUD=5.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.1
14+NoteStep=0.1
15+ChStep=0.5
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272FF
25+Ch-02-NoteRGBA=81EF72FF
26+Ch-03-NoteRGBA=7291EFFF
27+Ch-04-NoteRGBA=EFA272FF
28+Ch-05-NoteRGBA=72EF91FF
29+Ch-06-NoteRGBA=8372EFFF
30+Ch-07-NoteRGBA=EFD072FF
31+Ch-08-NoteRGBA=72EFC1FF
32+Ch-09-NoteRGBA=B072EFFF
33+Ch-10-NoteRGBA=DEEF72FF
34+Ch-11-NoteRGBA=72EFEFFF
35+Ch-12-NoteRGBA=E072EFFF
36+Ch-13-NoteRGBA=B0EF72FF
37+Ch-14-NoteRGBA=72BFEFFF
38+Ch-15-NoteRGBA=EF72D0FF
39+Ch-16-NoteRGBA=EF72A0FF
40+Scale-01-NoteRGBA=D50000FF
41+Scale-02-NoteRGBA=480BFFFF
42+Scale-03-NoteRGBA=FFFF40FF
43+Scale-04-NoteRGBA=9F009FFF
44+Scale-05-NoteRGBA=AAFFD5FF
45+Scale-06-NoteRGBA=9F001CFF
46+Scale-07-NoteRGBA=409FFFFF
47+Scale-08-NoteRGBA=FFAF0BFF
48+Scale-09-NoteRGBA=9F00D5FF
49+Scale-10-NoteRGBA=75FF75FF
50+Scale-11-NoteRGBA=6A0035FF
51+Scale-12-NoteRGBA=75E7FFFF
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=AAAAAAFF
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+Duration=1600
64+
65+[Stars]
66+NumberOfStars=2000
67+
68+[Bitmap]
69+Board=data\Board.png
70+Ripple=data\Ripple.png
71+Keyboard=data\Keyboard.png
72+
73+[PianoKeyboard]
74+KeyDownDuration=40
75+KeyUpDuration=40
76+KeyboardStepY=0
77+KeyboardStepZ=0.001
78+KeyboardMaxDispNum=1
79+WhiteKeyColor=FFFFFFFF
80+BlackKeyColor=FFFFFFFF
81+ActiveKeyColorType=NOTE
82+ActiveKeyColor=FF0000FF
83+ActiveKeyColorDuration=400
84+ActiveKeyColorTailRate=0.3
85+KeyDispRangeStart=0
86+KeyDispRangeEnd=127
87+
88+#[Mesh]
89+#XFile=mesh\model.x
90+#PositionX=0.0
91+#PositionY=0.0
92+#PositionZ=0.0
93+
--- /dev/null
+++ b/MIDITrail/template/conf/PianoRollRainLive.ini
@@ -0,0 +1,93 @@
1+[FirstPersonCam]
2+VelocityFB=10.0
3+VelocityLR=10.0
4+VelocityUD=5.0
5+VelocityPT=6.0
6+AcceleRate=2.0
7+VelocityAutoRoll=6.0
8+VelocityManualRoll=1.0
9+
10+[Scale]
11+QuarterNoteLength=1.0
12+NoteBoxHeight=0.1
13+NoteBoxWidth=0.1
14+NoteStep=0.1
15+ChStep=0.5
16+RippleHeight=1.0
17+RippleWidth=1.0
18+PictBoardRelativePos=1.0
19+LiveNoteLengthPerSecond=2.0
20+LiveMonitorDisplayDuration=30000
21+
22+[Color]
23+NoteColorType=CHANNEL
24+Ch-01-NoteRGBA=EF7272FF
25+Ch-02-NoteRGBA=81EF72FF
26+Ch-03-NoteRGBA=7291EFFF
27+Ch-04-NoteRGBA=EFA272FF
28+Ch-05-NoteRGBA=72EF91FF
29+Ch-06-NoteRGBA=8372EFFF
30+Ch-07-NoteRGBA=EFD072FF
31+Ch-08-NoteRGBA=72EFC1FF
32+Ch-09-NoteRGBA=B072EFFF
33+Ch-10-NoteRGBA=DEEF72FF
34+Ch-11-NoteRGBA=72EFEFFF
35+Ch-12-NoteRGBA=E072EFFF
36+Ch-13-NoteRGBA=B0EF72FF
37+Ch-14-NoteRGBA=72BFEFFF
38+Ch-15-NoteRGBA=EF72D0FF
39+Ch-16-NoteRGBA=EF72A0FF
40+Scale-01-NoteRGBA=D50000FF
41+Scale-02-NoteRGBA=480BFFFF
42+Scale-03-NoteRGBA=FFFF40FF
43+Scale-04-NoteRGBA=9F009FFF
44+Scale-05-NoteRGBA=AAFFD5FF
45+Scale-06-NoteRGBA=9F001CFF
46+Scale-07-NoteRGBA=409FFFFF
47+Scale-08-NoteRGBA=FFAF0BFF
48+Scale-09-NoteRGBA=9F00D5FF
49+Scale-10-NoteRGBA=75FF75FF
50+Scale-11-NoteRGBA=6A0035FF
51+Scale-12-NoteRGBA=75E7FFFF
52+GridLineRGBA=444444FF
53+PlaybackSectionRGBA=AAAAFF4E
54+CaptionRGBA=AAAAAAFF
55+BackGroundRGB=000000
56+
57+[ActiveNote]
58+Duration=400
59+WhiteRate=0.9
60+EmissiveRGBA=1A1A1A1A
61+
62+[Ripple]
63+Duration=1600
64+
65+[Stars]
66+NumberOfStars=2000
67+
68+[Bitmap]
69+Board=data\Board.png
70+Ripple=data\Ripple.png
71+Keyboard=data\Keyboard.png
72+
73+[PianoKeyboard]
74+KeyDownDuration=40
75+KeyUpDuration=40
76+KeyboardStepY=0.34
77+KeyboardStepZ=1.5
78+KeyboardMaxDispNum=16
79+WhiteKeyColor=FFFFFFFF
80+BlackKeyColor=FFFFFFFF
81+ActiveKeyColorType=STANDARD
82+ActiveKeyColor=FF0000FF
83+ActiveKeyColorDuration=400
84+ActiveKeyColorTailRate=0.5
85+KeyDispRangeStart=0
86+KeyDispRangeEnd=127
87+
88+#[Mesh]
89+#XFile=mesh\model.x
90+#PositionX=0.0
91+#PositionY=0.0
92+#PositionZ=0.0
93+
--- /dev/null
+++ b/MIDITrail/template/conf/Player.ini
@@ -0,0 +1,16 @@
1+[PlayerControl]
2+AllowMultipleInstances=0
3+AutoPlaybackAfterOpenFile=0
4+
5+[ViewControl]
6+ShowFileName=0
7+
8+[SkipControl]
9+SkipBackTimeSpanInMsec=10000
10+SkipForwardTimeSpanInMsec=10000
11+MovingTimeSpanInMsec=400
12+
13+[PlaybackSpeedControl]
14+SpeedStepInPercent=1
15+MaxSpeedInPercent=400
16+