• 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

Revision1689ff8bd2598535ffea75fc547e8ac622e0d7fe (tree)
Time2019-08-28 03:41:11
Authoryoshy <yoshy@user...>
Commiteryoshy

Log Message

Merge branch 'develop' into master/yossiepon

Change Summary

Incremental Difference

--- a/LICENSE.txt
+++ b/LICENSE.txt
@@ -1,5 +1,5 @@
11
2-Copyright (c) 2010-2017, WADA Masashi <yknk@users.osdn.me>
2+Copyright (c) 2010-2019, WADA Masashi <yknk@users.osdn.me>
33 All rights reserved.
44
55 Redistribution and use in source and binary forms, with or without
--- a/MIDITrail/MIDITrail.rc
+++ b/MIDITrail/MIDITrail.rc
@@ -84,10 +84,9 @@ BEGIN
8484 MENUITEM "Grid Box", IDM_ENABLE_GRIDBOX
8585 // <<< add 20180404 yossiepon end
8686 MENUITEM SEPARATOR
87- MENUITEM "Auto save viewpoint", 32838
88- MENUITEM SEPARATOR
89- MENUITEM "Reset viewpoint", IDM_RESET_VIEWPOINT
90- MENUITEM "Save viewpoint", IDM_SAVE_VIEWPOINT
87+ MENUITEM "Viewpoint 1\t7", IDM_RESET_VIEWPOINT
88+ MENUITEM "Viewpoint 2\t8", IDM_VIEWPOINT2
89+ MENUITEM "Viewpoint 3\t9", IDM_VIEWPOINT3
9190 MENUITEM SEPARATOR
9291 MENUITEM "Window size...", IDM_WINDOWSIZE
9392 END
--- a/MIDITrail/MIDITrailApp.cpp
+++ b/MIDITrail/MIDITrailApp.cpp
@@ -4,7 +4,7 @@
44 //
55 // MIDITrail アプリケーションクラス
66 //
7-// Copyright (C) 2010-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -647,14 +647,24 @@ LRESULT MIDITrailApp::_WndProcImpl(
647647 result = _OnMenuAutoSaveViewpoint();
648648 if (result != 0) goto EXIT;
649649 break;
650+ case IDM_SAVE_VIEWPOINT:
651+ //視点保存
652+ result = _OnMenuSaveViewpoint();
653+ if (result != 0) goto EXIT;
654+ break;
650655 case IDM_RESET_VIEWPOINT:
651656 //視点リセット
652657 result = _OnMenuResetViewpoint();
653658 if (result != 0) goto EXIT;
654659 break;
655- case IDM_SAVE_VIEWPOINT:
656- //視点保存
657- result = _OnMenuSaveViewpoint();
660+ case IDM_VIEWPOINT2:
661+ //静的視点2に移動
662+ result = _OnMenuViewpoint(2);
663+ if (result != 0) goto EXIT;
664+ break;
665+ case IDM_VIEWPOINT3:
666+ //静的視点3に移動
667+ result = _OnMenuViewpoint(3);
658668 if (result != 0) goto EXIT;
659669 break;
660670 case IDM_ENABLE_PIANOKEYBOARD:
@@ -1227,6 +1237,24 @@ EXIT:;
12271237 }
12281238
12291239 //******************************************************************************
1240+// メニュー選択:静的視点移動
1241+//******************************************************************************
1242+int MIDITrailApp::_OnMenuViewpoint(
1243+ unsigned long viewpointNo
1244+ )
1245+{
1246+ int result = 0;
1247+
1248+ if (m_PlayStatus == NoData) goto EXIT;
1249+
1250+ //静的視点に移動
1251+ m_pScene->MoveToStaticViewpoint(viewpointNo);
1252+
1253+EXIT:;
1254+ return result;
1255+}
1256+
1257+//******************************************************************************
12301258 // メニュー選択:視点リセット
12311259 //******************************************************************************
12321260 int MIDITrailApp::_OnMenuResetViewpoint()
@@ -1649,6 +1677,24 @@ int MIDITrailApp::_OnKeyDown(
16491677 result = _OnMenuPlaySpeedUp();
16501678 if (result != 0) goto EXIT;
16511679 break;
1680+ case '7':
1681+ case VK_NUMPAD7:
1682+ //視点リセット
1683+ result = _OnMenuResetViewpoint();
1684+ if (result != 0) goto EXIT;
1685+ break;
1686+ case '8':
1687+ case VK_NUMPAD8:
1688+ //静的視点2移動
1689+ result = _OnMenuViewpoint(2);
1690+ if (result != 0) goto EXIT;
1691+ break;
1692+ case '9':
1693+ case VK_NUMPAD9:
1694+ //静的視点3移動
1695+ result = _OnMenuViewpoint(3);
1696+ if (result != 0) goto EXIT;
1697+ break;
16521698 case 'O':
16531699 if (GetKeyState(VK_CONTROL) & 0x8000) {
16541700 //ファイルオープン
@@ -2154,9 +2200,9 @@ int MIDITrailApp::_ChangeMenuStyle()
21542200 IDM_VIEW_2DPIANOROLL,
21552201 IDM_VIEW_PIANOROLLRAIN,
21562202 IDM_VIEW_PIANOROLLRAIN2D,
2157- IDM_AUTO_SAVE_VIEWPOINT,
21582203 IDM_RESET_VIEWPOINT,
2159- IDM_SAVE_VIEWPOINT,
2204+ IDM_VIEWPOINT2,
2205+ IDM_VIEWPOINT3,
21602206 IDM_ENABLE_PIANOKEYBOARD,
21612207 IDM_ENABLE_RIPPLE,
21622208 IDM_ENABLE_PITCHBEND,
@@ -2196,9 +2242,9 @@ int MIDITrailApp::_ChangeMenuStyle()
21962242 { MF_ENABLED, MF_ENABLED, MF_GRAYED, MF_GRAYED, MF_ENABLED, MF_GRAYED }, //IDM_VIEW_2DPIANOROLL
21972243 { MF_ENABLED, MF_ENABLED, MF_GRAYED, MF_GRAYED, MF_ENABLED, MF_GRAYED }, //IDM_VIEW_PIANOROLLRAIN
21982244 { MF_ENABLED, MF_ENABLED, MF_GRAYED, MF_GRAYED, MF_ENABLED, MF_GRAYED }, //IDM_VIEW_PIANOROLLRAIN2D
2199- { MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_AUTO_SAVE_VIEWPOINT
22002245 { MF_GRAYED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_RESET_VIEWPOINT
2201- { MF_GRAYED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_SAVE_VIEWPOINT
2246+ { MF_GRAYED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_VIEWPOINT2
2247+ { MF_GRAYED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_VIEWPOINT3
22022248 { MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_ENABLE_PIANOKEYBOARD
22032249 { MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_ENABLE_RIPPLE
22042250 { MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED, MF_ENABLED }, //IDM_ENABLE_PITCHBEND
@@ -2411,13 +2457,16 @@ int MIDITrailApp::_LoadSceneConf()
24112457 if (result != 0) goto EXIT;
24122458
24132459 //自動視点保存
2414- result = m_ViewConf.GetInt(_T("AutoSaveViewpoint"), &autoSaveViewpoint, 0);
2415- if (result != 0) goto EXIT;
2416-
2417- m_isAutoSaveViewpoint = false;
2418- if (autoSaveViewpoint == 1) {
2419- m_isAutoSaveViewpoint = true;
2420- }
2460+ //result = m_ViewConf.GetInt(_T("AutoSaveViewpoint"), &autoSaveViewpoint, 0);
2461+ //if (result != 0) goto EXIT;
2462+ //
2463+ //m_isAutoSaveViewpoint = false;
2464+ //if (autoSaveViewpoint == 1) {
2465+ // m_isAutoSaveViewpoint = true;
2466+ //}
2467+
2468+ //自動視点保存:常に有効とする
2469+ m_isAutoSaveViewpoint = true;
24212470
24222471 EXIT:;
24232472 return result;
--- a/MIDITrail/MIDITrailApp.h
+++ b/MIDITrail/MIDITrailApp.h
@@ -4,7 +4,7 @@
44 //
55 // MIDITrail アプリケーションクラス
66 //
7-// Copyright (C) 2010-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2018 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -262,6 +262,7 @@ private:
262262 int _OnMenuStopMonitoring();
263263 int _OnMenuAutoSaveViewpoint();
264264 int _OnMenuResetViewpoint();
265+ int _OnMenuViewpoint(unsigned long viewpointNo);
265266 int _OnMenuSaveViewpoint();
266267 int _OnMenuEnableEffect(MTScene::EffectType type);
267268 int _OnMenuWindowSize();
--- a/MIDITrail/MIDITrailVersion.h
+++ b/MIDITrail/MIDITrailVersion.h
@@ -4,7 +4,7 @@
44 //
55 // MIDITrail バージョン定義
66 //
7-// Copyright (C) 2014-2017 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2014-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -16,12 +16,12 @@
1616 //******************************************************************************
1717
1818 //バージョン文字列
19-// >>> modify 20180412 yossiepon begin
20-#define MIDITRAIL_VERSION_STRING_X86 _T("1.2.3 (x86), mod. yossiepon_20180412")
21-#define MIDITRAIL_VERSION_STRING_X64 _T("1.2.3 (x64), mod. yossiepon_20180412")
22-// <<< modify 20180412 yossiepon end
19+// >>> modify 20190828 yossiepon begin
20+#define MIDITRAIL_VERSION_STRING_X86 _T("1.2.4 (x86), mod. yossiepon_20190828")
21+#define MIDITRAIL_VERSION_STRING_X64 _T("1.2.4 (x64), mod. yossiepon_20190828")
22+// <<< modify 20190828 yossiepon end
2323
2424 //コピーライト
25-#define MIDITRAIL_COPYRIGHT _T("Copyright (C) 2010-2017 WADA Masashi");
25+#define MIDITRAIL_COPYRIGHT _T("Copyright (C) 2010-2019 WADA Masashi");
2626
2727
--- a/MIDITrail/MTScene.cpp
+++ b/MIDITrail/MTScene.cpp
@@ -4,7 +4,7 @@
44 //
55 // MIDITrail シーン基底クラス
66 //
7-// Copyright (C) 2010-2014 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2018 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -160,6 +160,16 @@ void MTScene::SetViewParam(
160160 }
161161
162162 //******************************************************************************
163+// 静的視点移動
164+//******************************************************************************
165+void MTScene::MoveToStaticViewpoint(
166+ unsigned long viewpointNo
167+ )
168+{
169+ return;
170+}
171+
172+//******************************************************************************
163173 // 視点リセット
164174 //******************************************************************************
165175 void MTScene::ResetViewpoint()
--- a/MIDITrail/MTScene.h
+++ b/MIDITrail/MTScene.h
@@ -4,7 +4,7 @@
44 //
55 // MIDITrail シーン基底クラス
66 //
7-// Copyright (C) 2010-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2018 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -95,6 +95,7 @@ public:
9595 virtual void GetDefaultViewParam(MTViewParamMap* pParamMap);
9696 virtual void GetViewParam(MTViewParamMap* pParamMap);
9797 virtual void SetViewParam(MTViewParamMap* pParamMap);
98+ virtual void MoveToStaticViewpoint(unsigned long viewpointNo);
9899
99100 //視点リセット
100101 virtual void ResetViewpoint();
--- a/MIDITrail/MTScenePianoRoll3D.cpp
+++ b/MIDITrail/MTScenePianoRoll3D.cpp
@@ -4,7 +4,7 @@
44 //
55 // ピアノロール3Dシーン描画クラス
66 //
7-// Copyright (C) 2010-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -634,6 +634,34 @@ void MTScenePianoRoll3D::SetViewParam(
634634 }
635635
636636 //******************************************************************************
637+// 静的視点移動
638+//******************************************************************************
639+void MTScenePianoRoll3D::MoveToStaticViewpoint(
640+ unsigned long viewpointNo
641+ )
642+{
643+ MTScene::MTViewParamMap::iterator itr;
644+ MTViewParamMap paramMap;
645+
646+ if (viewpointNo == 1) {
647+ GetDefaultViewParam(&paramMap);
648+ SetViewParam(&paramMap);
649+ }
650+ else if (viewpointNo == 2) {
651+ SetViewParam(&m_Viewpoint2);
652+ }
653+ else if (viewpointNo == 3) {
654+ SetViewParam(&m_Viewpoint3);
655+ }
656+ else {
657+ GetDefaultViewParam(&paramMap);
658+ SetViewParam(&paramMap);
659+ }
660+
661+ return;
662+}
663+
664+//******************************************************************************
637665 // 視点リセット
638666 //******************************************************************************
639667 void MTScenePianoRoll3D::ResetViewpoint()
@@ -746,6 +774,70 @@ int MTScenePianoRoll3D::_LoadConf()
746774
747775 SetBGColor(DXColorUtil::MakeColorFromHexRGBA(hexColor));
748776
777+ result = _LoadConfViewpoint(&confFile, 2, &m_Viewpoint2);
778+ if (result != 0) goto EXIT;
779+
780+ result = _LoadConfViewpoint(&confFile, 3, &m_Viewpoint3);
781+ if (result != 0) goto EXIT;
782+
783+EXIT:;
784+ return result;
785+}
786+
787+//******************************************************************************
788+// 設定ファイル読み込み:視点
789+//******************************************************************************
790+int MTScenePianoRoll3D::_LoadConfViewpoint(
791+ MTConfFile* pConfFile,
792+ unsigned long viewpointNo,
793+ MTViewParamMap* pParamMap
794+ )
795+{
796+ int result = 0;
797+ int eresult = 0;
798+ TCHAR sectionStr[32] = {0};
799+ float x, y, z = 0.0f;
800+ float phi, theta = 0.0f;
801+ float manualRollAngle = 0.0f;
802+ float autoRollVelocity = 0.0f;
803+
804+ //セクション名作成
805+ eresult = _stprintf_s(sectionStr, 32, _T("Viewpoint-%d"), viewpointNo);
806+ if (eresult < 0) {
807+ result = YN_SET_ERR("Program error.", viewpointNo, 0);
808+ goto EXIT;
809+ }
810+
811+ //セクション設定
812+ result = pConfFile->SetCurSection(sectionStr);
813+ if (result != 0) goto EXIT;
814+
815+ //パラメータ取得
816+ result = pConfFile->GetFloat(_T("X"), &x, 0.0f);
817+ if (result != 0) goto EXIT;
818+ result = pConfFile->GetFloat(_T("Y"), &y, 0.0f);
819+ if (result != 0) goto EXIT;
820+ result = pConfFile->GetFloat(_T("Z"), &z, 0.0f);
821+ if (result != 0) goto EXIT;
822+ result = pConfFile->GetFloat(_T("Phi"), &phi, 0.0f);
823+ if (result != 0) goto EXIT;
824+ result = pConfFile->GetFloat(_T("Theta"), &theta, 0.0f);
825+ if (result != 0) goto EXIT;
826+ result = pConfFile->GetFloat(_T("ManualRollAngle"), &manualRollAngle, 0.0f);
827+ if (result != 0) goto EXIT;
828+ result = pConfFile->GetFloat(_T("AutoRollVelocity"), &autoRollVelocity, 0.0f);
829+ if (result != 0) goto EXIT;
830+
831+ //マップ登録
832+ pParamMap->clear();
833+ pParamMap->insert(MTViewParamMapPair("X", x));
834+ pParamMap->insert(MTViewParamMapPair("Y", y));
835+ pParamMap->insert(MTViewParamMapPair("Z", z));
836+ pParamMap->insert(MTViewParamMapPair("Phi", phi));
837+ pParamMap->insert(MTViewParamMapPair("Theta", theta));
838+ pParamMap->insert(MTViewParamMapPair("ManualRollAngle", manualRollAngle));
839+ pParamMap->insert(MTViewParamMapPair("AutoRollVelocity", autoRollVelocity));
840+
749841 EXIT:;
750842 return result;
751843 }
--- a/MIDITrail/MTScenePianoRoll3D.h
+++ b/MIDITrail/MTScenePianoRoll3D.h
@@ -4,7 +4,7 @@
44 //
55 // ピアノロール3Dシーン描画クラス
66 //
7-// Copyright (C) 2010-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -26,6 +26,7 @@
2626 #include "MTTimeIndicator.h"
2727 #include "MTMeshCtrl.h"
2828 #include "MTBackgroundImage.h"
29+#include "MTConfFile.h"
2930 #include "SMIDILib.h"
3031
3132 using namespace SMIDILib;
@@ -97,6 +98,7 @@ public:
9798 void GetDefaultViewParam(MTViewParamMap* pParamMap);
9899 void GetViewParam(MTViewParamMap* pParamMap);
99100 void SetViewParam(MTViewParamMap* pParamMap);
101+ void MoveToStaticViewpoint(unsigned long viewpointNo);
100102
101103 //視点リセット
102104 void ResetViewpoint();
@@ -150,6 +152,8 @@ private:
150152
151153 //視点情報
152154 MTViewParamMap m_ViewParamMap;
155+ MTViewParamMap m_Viewpoint2;
156+ MTViewParamMap m_Viewpoint3;
153157
154158 //ノートデザインオブジェクト
155159 MTNoteDesign m_NoteDesign;
@@ -171,6 +175,7 @@ private:
171175 // <<< modify access level 20161223 yossiepon end
172176
173177 int _LoadConf();
178+ int _LoadConfViewpoint(MTConfFile* pConfFile, unsigned long viewpointNo, MTScene::MTViewParamMap* pParamMap);
174179
175180 };
176181
--- a/MIDITrail/MTScenePianoRoll3DLive.cpp
+++ b/MIDITrail/MTScenePianoRoll3DLive.cpp
@@ -4,7 +4,7 @@
44 //
55 // ライブモニタ用ピアノロール3Dシーン描画クラス
66 //
7-// Copyright (C) 2012-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2012-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -612,6 +612,34 @@ void MTScenePianoRoll3DLive::SetViewParam(
612612 }
613613
614614 //******************************************************************************
615+// 静的視点移動
616+//******************************************************************************
617+void MTScenePianoRoll3DLive::MoveToStaticViewpoint(
618+ unsigned long viewpointNo
619+ )
620+{
621+ MTScene::MTViewParamMap::iterator itr;
622+ MTViewParamMap paramMap;
623+
624+ if (viewpointNo == 1) {
625+ GetDefaultViewParam(&paramMap);
626+ SetViewParam(&paramMap);
627+ }
628+ else if (viewpointNo == 2) {
629+ SetViewParam(&m_Viewpoint2);
630+ }
631+ else if (viewpointNo == 3) {
632+ SetViewParam(&m_Viewpoint3);
633+ }
634+ else {
635+ GetDefaultViewParam(&paramMap);
636+ SetViewParam(&paramMap);
637+ }
638+
639+ return;
640+}
641+
642+//******************************************************************************
615643 // 視点リセット
616644 //******************************************************************************
617645 void MTScenePianoRoll3DLive::ResetViewpoint()
@@ -679,6 +707,70 @@ int MTScenePianoRoll3DLive::_LoadConf()
679707
680708 SetBGColor(DXColorUtil::MakeColorFromHexRGBA(hexColor));
681709
710+ result = _LoadConfViewpoint(&confFile, 2, &m_Viewpoint2);
711+ if (result != 0) goto EXIT;
712+
713+ result = _LoadConfViewpoint(&confFile, 3, &m_Viewpoint3);
714+ if (result != 0) goto EXIT;
715+
716+EXIT:;
717+ return result;
718+}
719+
720+//******************************************************************************
721+// 設定ファイル読み込み:視点
722+//******************************************************************************
723+int MTScenePianoRoll3DLive::_LoadConfViewpoint(
724+ MTConfFile* pConfFile,
725+ unsigned long viewpointNo,
726+ MTViewParamMap* pParamMap
727+ )
728+{
729+ int result = 0;
730+ int eresult = 0;
731+ TCHAR sectionStr[32] = {0};
732+ float x, y, z = 0.0f;
733+ float phi, theta = 0.0f;
734+ float manualRollAngle = 0.0f;
735+ float autoRollVelocity = 0.0f;
736+
737+ //セクション名作成
738+ eresult = _stprintf_s(sectionStr, 32, _T("Viewpoint-%d"), viewpointNo);
739+ if (eresult < 0) {
740+ result = YN_SET_ERR("Program error.", viewpointNo, 0);
741+ goto EXIT;
742+ }
743+
744+ //セクション設定
745+ result = pConfFile->SetCurSection(sectionStr);
746+ if (result != 0) goto EXIT;
747+
748+ //パラメータ取得
749+ result = pConfFile->GetFloat(_T("X"), &x, 0.0f);
750+ if (result != 0) goto EXIT;
751+ result = pConfFile->GetFloat(_T("Y"), &y, 0.0f);
752+ if (result != 0) goto EXIT;
753+ result = pConfFile->GetFloat(_T("Z"), &z, 0.0f);
754+ if (result != 0) goto EXIT;
755+ result = pConfFile->GetFloat(_T("Phi"), &phi, 0.0f);
756+ if (result != 0) goto EXIT;
757+ result = pConfFile->GetFloat(_T("Theta"), &theta, 0.0f);
758+ if (result != 0) goto EXIT;
759+ result = pConfFile->GetFloat(_T("ManualRollAngle"), &manualRollAngle, 0.0f);
760+ if (result != 0) goto EXIT;
761+ result = pConfFile->GetFloat(_T("AutoRollVelocity"), &autoRollVelocity, 0.0f);
762+ if (result != 0) goto EXIT;
763+
764+ //マップ登録
765+ pParamMap->clear();
766+ pParamMap->insert(MTViewParamMapPair("X", x));
767+ pParamMap->insert(MTViewParamMapPair("Y", y));
768+ pParamMap->insert(MTViewParamMapPair("Z", z));
769+ pParamMap->insert(MTViewParamMapPair("Phi", phi));
770+ pParamMap->insert(MTViewParamMapPair("Theta", theta));
771+ pParamMap->insert(MTViewParamMapPair("ManualRollAngle", manualRollAngle));
772+ pParamMap->insert(MTViewParamMapPair("AutoRollVelocity", autoRollVelocity));
773+
682774 EXIT:;
683775 return result;
684776 }
--- a/MIDITrail/MTScenePianoRoll3DLive.h
+++ b/MIDITrail/MTScenePianoRoll3DLive.h
@@ -4,7 +4,7 @@
44 //
55 // ライブモニタ用ピアノロール3Dシーン描画クラス
66 //
7-// Copyright (C) 2012-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2012-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -26,6 +26,7 @@
2626 #include "MTTimeIndicator.h"
2727 #include "MTMeshCtrl.h"
2828 #include "MTBackgroundImage.h"
29+#include "MTConfFile.h"
2930 #include "SMIDILib.h"
3031
3132 using namespace SMIDILib;
@@ -87,6 +88,7 @@ public:
8788 void GetDefaultViewParam(MTViewParamMap* pParamMap);
8889 void GetViewParam(MTViewParamMap* pParamMap);
8990 void SetViewParam(MTViewParamMap* pParamMap);
91+ void MoveToStaticViewpoint(unsigned long viewpointNo);
9092
9193 //視点リセット
9294 void ResetViewpoint();
@@ -127,6 +129,8 @@ private:
127129
128130 //視点情報
129131 MTViewParamMap m_ViewParamMap;
132+ MTViewParamMap m_Viewpoint2;
133+ MTViewParamMap m_Viewpoint3;
130134
131135 //ノートデザインオブジェクト
132136 MTNoteDesign m_NoteDesign;
@@ -136,6 +140,7 @@ private:
136140
137141 void _Reset();
138142 int _LoadConf();
143+ int _LoadConfViewpoint(MTConfFile* pConfFile, unsigned long viewpointNo, MTScene::MTViewParamMap* pParamMap);
139144
140145 };
141146
--- a/MIDITrail/MTScenePianoRollRain.cpp
+++ b/MIDITrail/MTScenePianoRollRain.cpp
@@ -4,7 +4,7 @@
44 //
55 // ピアノロールレインシーン描画クラス
66 //
7-// Copyright (C) 2010-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -459,6 +459,7 @@ void MTScenePianoRollRain::GetDefaultViewParam(
459459 D3DXVECTOR3 viewPointVector;
460460 float phi, theta = 0.0f;
461461
462+ //視点情報作成
462463 viewPointVector.x = 0.0f;
463464 viewPointVector.y = 0.0f;
464465 viewPointVector.z = - (1.5f * 16.0f / 2.0f) - 10.0f;
@@ -588,6 +589,34 @@ void MTScenePianoRollRain::SetViewParam(
588589 }
589590
590591 //******************************************************************************
592+// 静的視点移動
593+//******************************************************************************
594+void MTScenePianoRollRain::MoveToStaticViewpoint(
595+ unsigned long viewpointNo
596+ )
597+{
598+ MTScene::MTViewParamMap::iterator itr;
599+ MTViewParamMap paramMap;
600+
601+ if (viewpointNo == 1) {
602+ GetDefaultViewParam(&paramMap);
603+ SetViewParam(&paramMap);
604+ }
605+ else if (viewpointNo == 2) {
606+ SetViewParam(&m_Viewpoint2);
607+ }
608+ else if (viewpointNo == 3) {
609+ SetViewParam(&m_Viewpoint3);
610+ }
611+ else {
612+ GetDefaultViewParam(&paramMap);
613+ SetViewParam(&paramMap);
614+ }
615+
616+ return;
617+}
618+
619+//******************************************************************************
591620 // 視点リセット
592621 //******************************************************************************
593622 void MTScenePianoRollRain::ResetViewpoint()
@@ -701,6 +730,70 @@ int MTScenePianoRollRain::_LoadConf()
701730
702731 SetBGColor(DXColorUtil::MakeColorFromHexRGBA(hexColor));
703732
733+ result = _LoadConfViewpoint(&confFile, 2, &m_Viewpoint2);
734+ if (result != 0) goto EXIT;
735+
736+ result = _LoadConfViewpoint(&confFile, 3, &m_Viewpoint3);
737+ if (result != 0) goto EXIT;
738+
739+EXIT:;
740+ return result;
741+}
742+
743+//******************************************************************************
744+// 設定ファイル読み込み:視点
745+//******************************************************************************
746+int MTScenePianoRollRain::_LoadConfViewpoint(
747+ MTConfFile* pConfFile,
748+ unsigned long viewpointNo,
749+ MTViewParamMap* pParamMap
750+ )
751+{
752+ int result = 0;
753+ int eresult = 0;
754+ TCHAR sectionStr[32] = {0};
755+ float x, y, z = 0.0f;
756+ float phi, theta = 0.0f;
757+ float manualRollAngle = 0.0f;
758+ float autoRollVelocity = 0.0f;
759+
760+ //セクション名作成
761+ eresult = _stprintf_s(sectionStr, 32, _T("Viewpoint-%d"), viewpointNo);
762+ if (eresult < 0) {
763+ result = YN_SET_ERR("Program error.", viewpointNo, 0);
764+ goto EXIT;
765+ }
766+
767+ //セクション設定
768+ result = pConfFile->SetCurSection(sectionStr);
769+ if (result != 0) goto EXIT;
770+
771+ //パラメータ取得
772+ result = pConfFile->GetFloat(_T("X"), &x, 0.0f);
773+ if (result != 0) goto EXIT;
774+ result = pConfFile->GetFloat(_T("Y"), &y, 0.0f);
775+ if (result != 0) goto EXIT;
776+ result = pConfFile->GetFloat(_T("Z"), &z, 0.0f);
777+ if (result != 0) goto EXIT;
778+ result = pConfFile->GetFloat(_T("Phi"), &phi, 0.0f);
779+ if (result != 0) goto EXIT;
780+ result = pConfFile->GetFloat(_T("Theta"), &theta, 0.0f);
781+ if (result != 0) goto EXIT;
782+ result = pConfFile->GetFloat(_T("ManualRollAngle"), &manualRollAngle, 0.0f);
783+ if (result != 0) goto EXIT;
784+ result = pConfFile->GetFloat(_T("AutoRollVelocity"), &autoRollVelocity, 0.0f);
785+ if (result != 0) goto EXIT;
786+
787+ //マップ登録
788+ pParamMap->clear();
789+ pParamMap->insert(MTViewParamMapPair("X", x));
790+ pParamMap->insert(MTViewParamMapPair("Y", y));
791+ pParamMap->insert(MTViewParamMapPair("Z", z));
792+ pParamMap->insert(MTViewParamMapPair("Phi", phi));
793+ pParamMap->insert(MTViewParamMapPair("Theta", theta));
794+ pParamMap->insert(MTViewParamMapPair("ManualRollAngle", manualRollAngle));
795+ pParamMap->insert(MTViewParamMapPair("AutoRollVelocity", autoRollVelocity));
796+
704797 EXIT:;
705798 return result;
706799 }
--- a/MIDITrail/MTScenePianoRollRain.h
+++ b/MIDITrail/MTScenePianoRollRain.h
@@ -4,7 +4,7 @@
44 //
55 // ピアノロールレインシーン描画クラス
66 //
7-// Copyright (C) 2010-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -22,6 +22,7 @@
2222 #include "MTNotePitchBend.h"
2323 #include "MTMeshCtrl.h"
2424 #include "MTBackgroundImage.h"
25+#include "MTConfFile.h"
2526 #include "SMIDILib.h"
2627
2728 using namespace SMIDILib;
@@ -83,6 +84,7 @@ public:
8384 virtual void GetDefaultViewParam(MTViewParamMap* pParamMap);
8485 void GetViewParam(MTViewParamMap* pParamMap);
8586 void SetViewParam(MTViewParamMap* pParamMap);
87+ void MoveToStaticViewpoint(unsigned long viewpointNo);
8688
8789 //視点リセット
8890 void ResetViewpoint();
@@ -126,6 +128,8 @@ private:
126128
127129 //視点情報
128130 MTViewParamMap m_ViewParamMap;
131+ MTViewParamMap m_Viewpoint2;
132+ MTViewParamMap m_Viewpoint3;
129133
130134 //演奏位置
131135 unsigned long m_CurTickTime;
@@ -136,6 +140,7 @@ private:
136140 void _Reset();
137141 void _SetLightColor(DXDirLight* pLight);
138142 int _LoadConf();
143+ int _LoadConfViewpoint(MTConfFile* pConfFile, unsigned long viewpointNo, MTScene::MTViewParamMap* pParamMap);
139144
140145 };
141146
--- a/MIDITrail/MTScenePianoRollRainLive.cpp
+++ b/MIDITrail/MTScenePianoRollRainLive.cpp
@@ -4,7 +4,7 @@
44 //
55 // ライブモニタ用ピアノロールレインシーン描画クラス
66 //
7-// Copyright (C) 2012-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2012-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -447,7 +447,7 @@ void MTScenePianoRollRainLive::GetDefaultViewParam(
447447 viewPointVector.z = -(1.5f * 16.0f / 2.0f) - 10.0f;
448448 phi = 90.0f; //+Z軸方向
449449 theta = 90.0f; //+Z軸方向
450-
450+
451451 pParamMap->clear();
452452 pParamMap->insert(MTViewParamMapPair("X", viewPointVector.x));
453453 pParamMap->insert(MTViewParamMapPair("Y", viewPointVector.y));
@@ -571,6 +571,34 @@ void MTScenePianoRollRainLive::SetViewParam(
571571 }
572572
573573 //******************************************************************************
574+// 静的視点移動
575+//******************************************************************************
576+void MTScenePianoRollRainLive::MoveToStaticViewpoint(
577+ unsigned long viewpointNo
578+ )
579+{
580+ MTScene::MTViewParamMap::iterator itr;
581+ MTViewParamMap paramMap;
582+
583+ if (viewpointNo == 1) {
584+ GetDefaultViewParam(&paramMap);
585+ SetViewParam(&paramMap);
586+ }
587+ else if (viewpointNo == 2) {
588+ SetViewParam(&m_Viewpoint2);
589+ }
590+ else if (viewpointNo == 3) {
591+ SetViewParam(&m_Viewpoint3);
592+ }
593+ else {
594+ GetDefaultViewParam(&paramMap);
595+ SetViewParam(&paramMap);
596+ }
597+
598+ return;
599+}
600+
601+//******************************************************************************
574602 // 視点リセット
575603 //******************************************************************************
576604 void MTScenePianoRollRainLive::ResetViewpoint()
@@ -639,6 +667,70 @@ int MTScenePianoRollRainLive::_LoadConf()
639667
640668 SetBGColor(DXColorUtil::MakeColorFromHexRGBA(hexColor));
641669
670+ result = _LoadConfViewpoint(&confFile, 2, &m_Viewpoint2);
671+ if (result != 0) goto EXIT;
672+
673+ result = _LoadConfViewpoint(&confFile, 3, &m_Viewpoint3);
674+ if (result != 0) goto EXIT;
675+
676+EXIT:;
677+ return result;
678+}
679+
680+//******************************************************************************
681+// 設定ファイル読み込み:視点
682+//******************************************************************************
683+int MTScenePianoRollRainLive::_LoadConfViewpoint(
684+ MTConfFile* pConfFile,
685+ unsigned long viewpointNo,
686+ MTViewParamMap* pParamMap
687+ )
688+{
689+ int result = 0;
690+ int eresult = 0;
691+ TCHAR sectionStr[32] = {0};
692+ float x, y, z = 0.0f;
693+ float phi, theta = 0.0f;
694+ float manualRollAngle = 0.0f;
695+ float autoRollVelocity = 0.0f;
696+
697+ //セクション名作成
698+ eresult = _stprintf_s(sectionStr, 32, _T("Viewpoint-%d"), viewpointNo);
699+ if (eresult < 0) {
700+ result = YN_SET_ERR("Program error.", viewpointNo, 0);
701+ goto EXIT;
702+ }
703+
704+ //セクション設定
705+ result = pConfFile->SetCurSection(sectionStr);
706+ if (result != 0) goto EXIT;
707+
708+ //パラメータ取得
709+ result = pConfFile->GetFloat(_T("X"), &x, 0.0f);
710+ if (result != 0) goto EXIT;
711+ result = pConfFile->GetFloat(_T("Y"), &y, 0.0f);
712+ if (result != 0) goto EXIT;
713+ result = pConfFile->GetFloat(_T("Z"), &z, 0.0f);
714+ if (result != 0) goto EXIT;
715+ result = pConfFile->GetFloat(_T("Phi"), &phi, 0.0f);
716+ if (result != 0) goto EXIT;
717+ result = pConfFile->GetFloat(_T("Theta"), &theta, 0.0f);
718+ if (result != 0) goto EXIT;
719+ result = pConfFile->GetFloat(_T("ManualRollAngle"), &manualRollAngle, 0.0f);
720+ if (result != 0) goto EXIT;
721+ result = pConfFile->GetFloat(_T("AutoRollVelocity"), &autoRollVelocity, 0.0f);
722+ if (result != 0) goto EXIT;
723+
724+ //マップ登録
725+ pParamMap->clear();
726+ pParamMap->insert(MTViewParamMapPair("X", x));
727+ pParamMap->insert(MTViewParamMapPair("Y", y));
728+ pParamMap->insert(MTViewParamMapPair("Z", z));
729+ pParamMap->insert(MTViewParamMapPair("Phi", phi));
730+ pParamMap->insert(MTViewParamMapPair("Theta", theta));
731+ pParamMap->insert(MTViewParamMapPair("ManualRollAngle", manualRollAngle));
732+ pParamMap->insert(MTViewParamMapPair("AutoRollVelocity", autoRollVelocity));
733+
642734 EXIT:;
643735 return result;
644736 }
--- a/MIDITrail/MTScenePianoRollRainLive.h
+++ b/MIDITrail/MTScenePianoRollRainLive.h
@@ -4,7 +4,7 @@
44 //
55 // ライブモニタ用ピアノロールレインシーン描画クラス
66 //
7-// Copyright (C) 2012-2016 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2012-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -22,6 +22,7 @@
2222 #include "MTNotePitchBend.h"
2323 #include "MTMeshCtrl.h"
2424 #include "MTBackgroundImage.h"
25+#include "MTConfFile.h"
2526 #include "SMIDILib.h"
2627
2728 using namespace SMIDILib;
@@ -86,6 +87,7 @@ public:
8687
8788 //視点リセット
8889 void ResetViewpoint();
90+ void MoveToStaticViewpoint(unsigned long viewpointNo);
8991
9092 //エフェクト設定
9193 void SetEffect(MTScene::EffectType type, bool isEnable);
@@ -123,9 +125,12 @@ private:
123125
124126 //視点情報
125127 MTViewParamMap m_ViewParamMap;
128+ MTViewParamMap m_Viewpoint2;
129+ MTViewParamMap m_Viewpoint3;
126130
127131 void _Reset();
128132 int _LoadConf();
133+ int _LoadConfViewpoint(MTConfFile* pConfFile, unsigned long viewpointNo, MTScene::MTViewParamMap* pParamMap);
129134
130135 };
131136
--- a/MIDITrail/MTTimeIndicator.cpp
+++ b/MIDITrail/MTTimeIndicator.cpp
@@ -4,7 +4,7 @@
44 //
55 // タイムインジケータ描画クラス
66 //
7-// Copyright (C) 2010-2013 WADA Masashi. All Rights Reserved.
7+// Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
88 //
99 //******************************************************************************
1010
@@ -212,15 +212,17 @@ int MTTimeIndicator::Draw(
212212
213213 // <<< add 20180404 yossiepon end
214214
215-// >>> add 20120728 yossiepon begin
216-
217215 //テクスチャステージ設定
218- // カラー演算:無効
219- pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_DISABLE);
220- // アルファ演算:無効
221- pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_DISABLE);
216+ // カラー演算:引数1を使用 引数1:テクスチャ
217+ pD3DDevice->SetTextureStageState(0, D3DTSS_COLOROP, D3DTOP_SELECTARG1);
218+ pD3DDevice->SetTextureStageState(0, D3DTSS_COLORARG1, D3DTA_TEXTURE);
219+ // アルファ演算:引数1を使用 引数1:テクスチャ
220+ pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAOP, D3DTOP_SELECTARG1);
221+ pD3DDevice->SetTextureStageState(0, D3DTSS_ALPHAARG1, D3DTA_TEXTURE);
222222
223-// <<< add 20120728 yossiepon end
223+ //テクスチャフィルタ
224+ pD3DDevice->SetSamplerState(0, D3DSAMP_MINFILTER, D3DTEXF_LINEAR);
225+ pD3DDevice->SetSamplerState(0, D3DSAMP_MAGFILTER, D3DTEXF_LINEAR);
224226
225227 if (m_isEnableLine) {
226228 result = m_PrimitiveLine.Draw(pD3DDevice);
@@ -258,6 +260,7 @@ int MTTimeIndicator::_CreateVertexOfIndicator(
258260 D3DXVECTOR3 vectorRU;
259261 D3DXVECTOR3 vectorLD;
260262 D3DXVECTOR3 vectorRD;
263+ float delta = 0.0f;
261264
262265 // y x
263266 // 0+----+1 |/
@@ -280,8 +283,12 @@ int MTTimeIndicator::_CreateVertexOfIndicator(
280283 pVertex[2].p = vectorLD;
281284 pVertex[3].p = vectorRD;
282285
283- //再生面の幅がゼロの場合はラインを描画する
284- if (vectorLU.z == vectorRU.z) {
286+ //再生面の幅がゼロに近い場合はラインを描画する
287+ delta = vectorLU.z - vectorRU.z;
288+ if (delta < 0) {
289+ delta = -1.0f * delta;
290+ }
291+ if (delta < 0.1) {
285292 m_isEnableLine = true;
286293 }
287294
--- a/MIDITrail/resource.h
+++ b/MIDITrail/resource.h
@@ -76,6 +76,8 @@
7676 #define IDM_ENABLE_TIMEINDICATOR 32841
7777 // <<< add 20180404 yossiepon end
7878 #define IDM_ENABLE_BACKGROUNDIMAGE 32842
79+#define IDM_VIEWPOINT2 32843
80+#define IDM_VIEWPOINT3 32844
7981 #define IDC_STATIC -1
8082
8183 // Next default values for new objects
@@ -84,7 +86,7 @@
8486 #ifndef APSTUDIO_READONLY_SYMBOLS
8587 #define _APS_NO_MFC 1
8688 #define _APS_NEXT_RESOURCE_VALUE 134
87-#define _APS_NEXT_COMMAND_VALUE 32843
89+#define _APS_NEXT_COMMAND_VALUE 32848
8890 #define _APS_NEXT_CONTROL_VALUE 1024
8991 #define _APS_NEXT_SYMED_VALUE 110
9092 #endif
--- a/MIDITrail/template/conf/PianoRoll2D.ini
+++ b/MIDITrail/template/conf/PianoRoll2D.ini
@@ -12,7 +12,7 @@ QuarterNoteLength=1.0
1212 NoteBoxHeight=0.1
1313 NoteBoxWidth=0.0
1414 NoteStep=0.1
15-ChStep=0.0
15+ChStep=0.001
1616 RippleHeight=1.0
1717 RippleWidth=1.0
1818 PictBoardRelativePos=1.0
@@ -78,6 +78,30 @@ NumberOfStars=2000
7878 Board=data\Board.png
7979 Ripple=data\Ripple2.png
8080
81+#[Mesh]
82+#XFile=mesh\model.x
83+#PositionX=0.0
84+#PositionY=0.0
85+#PositionZ=0.0
86+
87+[Viewpoint-2]
88+X=-12.6
89+Y=10.0
90+Z=-12.8
91+Phi=35.0
92+Theta=101.0
93+ManualRollAngle=0.0
94+AutoRollVelocity=0.0
95+
96+[Viewpoint-3]
97+X=12.6
98+Y=10.0
99+Z=-12.8
100+Phi=145.0
101+Theta=101.0
102+ManualRollAngle=0.0
103+AutoRollVelocity=0.0
104+
81105 [PianoKeyboard]
82106 KeyDownDuration=40
83107 KeyUpDuration=40
--- a/MIDITrail/template/conf/PianoRoll2DLive.ini
+++ b/MIDITrail/template/conf/PianoRoll2DLive.ini
@@ -12,10 +12,10 @@ QuarterNoteLength=1.0
1212 NoteBoxHeight=0.1
1313 NoteBoxWidth=0.0
1414 NoteStep=0.1
15-ChStep=0.0
15+ChStep=0.001
1616 RippleHeight=1.0
1717 RippleWidth=1.0
18-PictBoardRelativePos=1.0
18+PictBoardRelativePos=0.0
1919 LiveNoteLengthPerSecond=2.0
2020 LiveMonitorDisplayDuration=30000
2121
@@ -75,3 +75,21 @@ Ripple=data\Ripple.png
7575 #PositionY=0.0
7676 #PositionZ=0.0
7777
78+[Viewpoint-2]
79+X=-19.3
80+Y=10.0
81+Z=-14.1
82+Phi=55.7
83+Theta=101.7
84+ManualRollAngle=0.0
85+AutoRollVelocity=0.0
86+
87+[Viewpoint-3]
88+X=10.0
89+Y=10.0
90+Z=-14.1
91+Phi=145.0
92+Theta=101.7
93+ManualRollAngle=0.0
94+AutoRollVelocity=0.0
95+
--- a/MIDITrail/template/conf/PianoRoll3D.ini
+++ b/MIDITrail/template/conf/PianoRoll3D.ini
@@ -79,6 +79,30 @@ Board=data\Board.png
7979 Ripple=data\Ripple2.png
8080 Keyboard=data\Keyboard.png
8181
82+#[Mesh]
83+#XFile=mesh\model.x
84+#PositionX=0.0
85+#PositionY=0.0
86+#PositionZ=0.0
87+
88+[Viewpoint-2]
89+X=-14.0
90+Y=10.0
91+Z=-7.0
92+Phi=35.0
93+Theta=101.7
94+ManualRollAngle=0.0
95+AutoRollVelocity=0.0
96+
97+[Viewpoint-3]
98+X=14.0
99+Y=10.0
100+Z=-7.0
101+Phi=145.0
102+Theta=101.7
103+ManualRollAngle=0.0
104+AutoRollVelocity=0.0
105+
82106 [PianoKeyboard]
83107 KeyDownDuration=40
84108 KeyUpDuration=40
--- a/MIDITrail/template/conf/PianoRoll3DLive.ini
+++ b/MIDITrail/template/conf/PianoRoll3DLive.ini
@@ -75,3 +75,21 @@ Ripple=data\Ripple.png
7575 #PositionY=0.0
7676 #PositionZ=0.0
7777
78+[Viewpoint-2]
79+X=-15.4
80+Y=10.0
81+Z=-8.7
82+Phi=52.0
83+Theta=101.0
84+ManualRollAngle=0.0
85+AutoRollVelocity=0.0
86+
87+[Viewpoint-3]
88+X=11.4
89+Y=10.0
90+Z=-12.0
91+Phi=145.0
92+Theta=101.0
93+ManualRollAngle=0.0
94+AutoRollVelocity=0.0
95+
--- a/MIDITrail/template/conf/PianoRollRain.ini
+++ b/MIDITrail/template/conf/PianoRollRain.ini
@@ -91,3 +91,21 @@ KeyDispRangeEnd=127
9191 #PositionY=0.0
9292 #PositionZ=0.0
9393
94+[Viewpoint-2]
95+X=6.0
96+Y=3.6
97+Z=-18.8
98+Phi=113.0
99+Theta=112.0
100+ManualRollAngle=0.0
101+AutoRollVelocity=0.0
102+
103+[Viewpoint-3]
104+X=-6.0
105+Y=3.6
106+Z=-18.8
107+Phi=67.0
108+Theta=112.0
109+ManualRollAngle=0.0
110+AutoRollVelocity=0.0
111+
--- a/MIDITrail/template/conf/PianoRollRain2D.ini
+++ b/MIDITrail/template/conf/PianoRollRain2D.ini
@@ -91,3 +91,21 @@ KeyDispRangeEnd=127
9191 #PositionY=0.0
9292 #PositionZ=0.0
9393
94+[Viewpoint-2]
95+X=6.8
96+Y=6.0
97+Z=-9.0
98+Phi=115.0
99+Theta=109.0
100+ManualRollAngle=0.0
101+AutoRollVelocity=0.0
102+
103+[Viewpoint-3]
104+X=-6.8
105+Y=6.0
106+Z=-9.0
107+Phi=65.0
108+Theta=109.0
109+ManualRollAngle=0.0
110+AutoRollVelocity=0.0
111+
--- a/MIDITrail/template/conf/PianoRollRain2DLive.ini
+++ b/MIDITrail/template/conf/PianoRollRain2DLive.ini
@@ -91,3 +91,21 @@ KeyDispRangeEnd=127
9191 #PositionY=0.0
9292 #PositionZ=0.0
9393
94+[Viewpoint-2]
95+X=6.8
96+Y=6.0
97+Z=-9.0
98+Phi=115.0
99+Theta=109.0
100+ManualRollAngle=0.0
101+AutoRollVelocity=0.0
102+
103+[Viewpoint-3]
104+X=-6.8
105+Y=6.0
106+Z=-9.0
107+Phi=65.0
108+Theta=109.0
109+ManualRollAngle=0.0
110+AutoRollVelocity=0.0
111+
--- a/MIDITrail/template/conf/PianoRollRainLive.ini
+++ b/MIDITrail/template/conf/PianoRollRainLive.ini
@@ -91,3 +91,21 @@ KeyDispRangeEnd=127
9191 #PositionY=0.0
9292 #PositionZ=0.0
9393
94+[Viewpoint-2]
95+X=6.0
96+Y=3.6
97+Z=-18.8
98+Phi=113.0
99+Theta=112.0
100+ManualRollAngle=0.0
101+AutoRollVelocity=0.0
102+
103+[Viewpoint-3]
104+X=-6.0
105+Y=3.6
106+Z=-18.8
107+Phi=67.0
108+Theta=112.0
109+ManualRollAngle=0.0
110+AutoRollVelocity=0.0
111+
--- a/README.en.txt
+++ b/README.en.txt
@@ -1,8 +1,8 @@
11 ******************************************************************************
22
3- MIDITrail source code Ver.1.2.3 for Windows
3+ MIDITrail source code Ver.1.2.4 for Windows
44
5- Copyright (C) 2010-2017 WADA Masashi. All Rights Reserved.
5+ Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
66
77 Web : https://osdn.jp/projects/miditrail/
88 Mail: yknk@users.osdn.me
--- a/README.ja.txt
+++ b/README.ja.txt
@@ -1,8 +1,8 @@
11 ******************************************************************************
22
3- MIDITrail ソースコード Ver.1.2.3 for Windows
3+ MIDITrail ソースコード Ver.1.2.4 for Windows
44
5- Copyright (C) 2010-2017 WADA Masashi. All Rights Reserved.
5+ Copyright (C) 2010-2019 WADA Masashi. All Rights Reserved.
66
77 Web : https://osdn.jp/projects/miditrail/
88 Mail: yknk@users.osdn.me