MIDITrail をピカピカにする。鍵盤方向自動切替・多ポート・歌詞対応等
Revisión | fae58944d5d5641671ada09cb431923804a6bc7f (tree) |
---|---|
Tiempo | 2018-04-12 09:45:30 |
Autor | yoshy <yoshy@user...> |
Commiter | yoshy |
[FIX] PianoRoll3Dで多ポート時のキーボード基準位置がずれている不具合を修正
@@ -313,9 +313,9 @@ END | ||
313 | 313 | |
314 | 314 | STRINGTABLE |
315 | 315 | BEGIN |
316 | -// >>> modify 20180404 yossiepon begin | |
317 | - IDS_APP_TITLE "MIDITrail 1.2.3 mod. yossiepon_20180404" | |
318 | -// <<< modify 20180404 yossiepon end | |
316 | +// >>> modify 20180412 yossiepon begin | |
317 | + IDS_APP_TITLE "MIDITrail 1.2.3 mod. yossiepon_20180412" | |
318 | +// <<< modify 20180412 yossiepon end | |
319 | 319 | IDC_MIDITRAIL "MIDITRAIL" |
320 | 320 | END |
321 | 321 |
@@ -16,8 +16,10 @@ | ||
16 | 16 | //****************************************************************************** |
17 | 17 | |
18 | 18 | //バージョン文字列 |
19 | -#define MIDITRAIL_VERSION_STRING_X86 _T("1.2.3 (x86), mod. yossiepon_20180404") | |
20 | -#define MIDITRAIL_VERSION_STRING_X64 _T("1.2.3 (x64), mod. yossiepon_20180404") | |
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 | |
21 | 23 | |
22 | 24 | //コピーライト |
23 | 25 | #define MIDITRAIL_COPYRIGHT _T("Copyright (C) 2010-2017 WADA Masashi"); |
@@ -1599,20 +1599,20 @@ int MTPianoKeyboard::Transform( | ||
1599 | 1599 | } |
1600 | 1600 | |
1601 | 1601 | // >>> add 20120729 yossiepon begin |
1602 | +// >>> modify 20180411 yossiepon begin | |
1602 | 1603 | //****************************************************************************** |
1603 | 1604 | // 移動 |
1604 | 1605 | //****************************************************************************** |
1605 | 1606 | int MTPianoKeyboard::Transform( |
1606 | 1607 | LPDIRECT3DDEVICE9 pD3DDevice, |
1607 | - D3DXVECTOR3 moveVector1, | |
1608 | - D3DXVECTOR3 moveVector2, | |
1609 | - float scale, | |
1610 | - float z, | |
1608 | + D3DXVECTOR3 basePosVector, | |
1609 | + D3DXVECTOR3 playbackPosVector, | |
1611 | 1610 | float rollAngle |
1612 | 1611 | ) |
1613 | 1612 | { |
1614 | 1613 | return YN_SET_ERR("Program error.", 0, 0); |
1615 | 1614 | } |
1615 | +// <<< modify 20180411 yossiepon end | |
1616 | 1616 | // <<< add 20120729 yossiepon end |
1617 | 1617 | |
1618 | 1618 | //****************************************************************************** |
@@ -47,7 +47,14 @@ public: | ||
47 | 47 | //更新 |
48 | 48 | int Transform(LPDIRECT3DDEVICE9 pD3DDevice, D3DXVECTOR3 moveVector, float rollAngle); |
49 | 49 | // >>> add 20120729 yossiepon begin |
50 | - virtual int Transform(LPDIRECT3DDEVICE9 pD3DDevice, D3DXVECTOR3 moveVector1, D3DXVECTOR3 moveVector2, float scale, float z, float rollAngle); | |
50 | +// >>> modify 20180411 yossiepon begin | |
51 | + virtual int Transform( | |
52 | + LPDIRECT3DDEVICE9 pD3DDevice, | |
53 | + D3DXVECTOR3 basePosVector, | |
54 | + D3DXVECTOR3 playbackPosVector, | |
55 | + float rollAngle | |
56 | + ); | |
57 | +// <<< modify 20180411 yossiepon end | |
51 | 58 | // <<< add 20120729 yossiepon end |
52 | 59 | |
53 | 60 |
@@ -173,11 +173,7 @@ int MTPianoKeyboardCtrlMod::Transform( | ||
173 | 173 | unsigned char portNo = 0; |
174 | 174 | unsigned char chNo = 0; |
175 | 175 | int index; |
176 | - D3DXVECTOR3 portWindowLU; | |
177 | - D3DXVECTOR3 portWindowRU; | |
178 | - D3DXVECTOR3 portWindowLD; | |
179 | - D3DXVECTOR3 portWindowRD; | |
180 | - D3DXVECTOR3 transformVector; | |
176 | + D3DXVECTOR3 basePosVector; | |
181 | 177 | D3DXVECTOR3 playbackPosVector; |
182 | 178 | |
183 | 179 | //アクティブポートフラグクリア |
@@ -189,20 +185,6 @@ int MTPianoKeyboardCtrlMod::Transform( | ||
189 | 185 | result = _TransformActiveNotes(pD3DDevice); |
190 | 186 | if (result != 0) goto EXIT; |
191 | 187 | |
192 | - //再生面頂点座標取得 | |
193 | - m_NoteDesignMod.GetPlaybackSectionVirtexPos( | |
194 | - 0, | |
195 | - &portWindowLU, | |
196 | - &portWindowRU, | |
197 | - &portWindowLD, | |
198 | - &portWindowRD | |
199 | - ); | |
200 | - | |
201 | - float boardHeight = m_KeyboardDesignMod.GetPlaybackSectionHeight(); | |
202 | - float keyboardWidth = m_KeyboardDesignMod.GetKeyboardWidth(); | |
203 | - | |
204 | - float resizeSacle = boardHeight / keyboardWidth; | |
205 | - | |
206 | 188 | //移動ベクトル:再生面に追従する |
207 | 189 | playbackPosVector = m_NoteDesignMod.GetWorldMoveVector(); |
208 | 190 | playbackPosVector.x += m_NoteDesignMod.GetPlayPosX(m_CurTickTime); |
@@ -229,13 +211,13 @@ int MTPianoKeyboardCtrlMod::Transform( | ||
229 | 211 | } |
230 | 212 | |
231 | 213 | //移動ベクトル:キーボード基準座標 |
232 | - transformVector = m_KeyboardDesignMod.GetKeyboardBasePos(keyboardIndex, rollAngle); | |
214 | + basePosVector = m_KeyboardDesignMod.GetKeyboardBasePos(keyboardIndex, rollAngle); | |
233 | 215 | |
234 | 216 | //移動ベクトル:ピッチベンドシフトを反映 |
235 | - transformVector.x += GetMaxPitchBendShift(portNo); | |
217 | + basePosVector.x += GetMaxPitchBendShift(portNo); | |
236 | 218 | |
237 | 219 | //キーボード移動 |
238 | - result = m_pPianoKeyboard[keyboardIndex]->Transform(pD3DDevice, transformVector, playbackPosVector, resizeSacle, portWindowLU.z, rollAngle); | |
220 | + result = m_pPianoKeyboard[keyboardIndex]->Transform(pD3DDevice, basePosVector, playbackPosVector, rollAngle); | |
239 | 221 | if (result != 0) goto EXIT; |
240 | 222 | } |
241 | 223 |
@@ -90,19 +90,10 @@ D3DXVECTOR3 MTPianoKeyboardDesignMod::GetKeyboardBasePos( | ||
90 | 90 | angle += angle < 0.0f ? 360.0f : 0.0f; |
91 | 91 | bool flip = !((angle > 120.0f) && (angle < 300.0f)); |
92 | 92 | |
93 | - float boardHeight = GetPlaybackSectionHeight(); | |
94 | - float keyboardWidth = GetKeyboardWidth(); | |
95 | - | |
96 | - float rippleMargin = GetRippleMargin(); // * antiResizeScale; | |
97 | - | |
98 | - //キーボード描画時にリサイズがかかってはならない相対座標用の逆リサイズ比 | |
99 | - //対象:ポート間隔、リップルマージン | |
100 | - float antiResizeScale = keyboardWidth / boardHeight; | |
101 | - | |
102 | 93 | //ポート単位の原点座標 |
103 | 94 | ox = GetPortOriginX(); |
104 | - oy = GetPortOriginY(keyboardIndex, antiResizeScale, flip); | |
105 | - oz = GetPortOriginZ(keyboardIndex, antiResizeScale, flip); | |
95 | + oy = GetPortOriginY(keyboardIndex, flip); | |
96 | + oz = GetPortOriginZ(keyboardIndex, flip); | |
106 | 97 | |
107 | 98 | return D3DXVECTOR3(ox, oy, oz); |
108 | 99 | } |
@@ -141,10 +132,12 @@ float MTPianoKeyboardDesignMod::GetPortOriginX() | ||
141 | 132 | // | |
142 | 133 | // -z |
143 | 134 | |
144 | - float originX = -GetKeyboardWidth() / 2.0f; | |
135 | + float originX = -GetPlaybackSectionHeight() / 2.0f; | |
145 | 136 | |
146 | 137 | //鍵盤の1/2の幅だけ高音側に移動 |
147 | - return originX + GetWhiteKeyStep() / 2.0f; | |
138 | + originX += GetWhiteKeyStep() * GetKeyboardResizeRatio() / 2.0f; | |
139 | + | |
140 | + return originX; | |
148 | 141 | } |
149 | 142 | |
150 | 143 | //****************************************************************************** |
@@ -152,19 +145,19 @@ float MTPianoKeyboardDesignMod::GetPortOriginX() | ||
152 | 145 | //****************************************************************************** |
153 | 146 | float MTPianoKeyboardDesignMod::GetPortOriginY( |
154 | 147 | int keyboardIndex, |
155 | - float antiResizeScale, | |
156 | 148 | bool flip |
157 | 149 | ) |
158 | 150 | { |
159 | 151 | // angle: 120°〜300°(rotateX: 90°, rotateZ: 90°) |
160 | 152 | // +y |
161 | 153 | // | |
162 | - // +z<---0-----------------------------Ch.15------------>-z | |
154 | + // | Ch.15 | |
163 | 155 | // | |
164 | 156 | // | +--------------+ |
165 | 157 | // | portC +--------------@ Ch.0 |
166 | 158 | // | Ch.15 |
167 | 159 | // | |
160 | + // +z<---0---------------------------------------------->-z | |
168 | 161 | // | +--------------+ |
169 | 162 | // | portB +--------------@ Ch.0 |
170 | 163 | // | Ch.15 |
@@ -182,32 +175,36 @@ float MTPianoKeyboardDesignMod::GetPortOriginY( | ||
182 | 175 | // portA +--------------@ Ch.0 | |
183 | 176 | // Ch.15 | |
184 | 177 | // | |
178 | + // +z<----------------------------------------0-------------->-z | |
185 | 179 | // +--------------+ | |
186 | 180 | // portB +--------------@ Ch.0 | |
187 | 181 | // Ch.15 | |
188 | 182 | // | |
189 | 183 | // +--------------+ | |
190 | - // +z<----------portC +--------------@ Ch.0---0-------------->-z | |
184 | + // portC +--------------@ Ch.0 | | |
191 | 185 | // | |
192 | 186 | // | @:OriginY(for portA,B,C) |
193 | 187 | // -y |
194 | 188 | |
195 | - float portWidth = GetChStep() * 16.0f; | |
189 | + float portWidth = GetPortWidth(); | |
196 | 190 | |
197 | 191 | // TODO シングルキーボードの判定方法を再検討 |
198 | 192 | int keyboardDispNum = GetKeyboardMaxDispNum() > 1 ? m_PortList.GetSize() : 1; |
199 | 193 | |
200 | - float originY = portWidth * (keyboardDispNum - keyboardIndex - 1); | |
194 | + float originY; | |
201 | 195 | |
202 | 196 | if (!flip) { |
203 | - originY = 0; //-(originY + GetChStep() * 15.0f); | |
204 | - } | |
197 | + originY = -portWidth * (float)(keyboardDispNum - keyboardIndex * 2) / 2.0f; | |
205 | 198 | |
206 | - //キーボードリサイズ後に正しいポート間隔となるよう逆比をかける | |
207 | - originY *= antiResizeScale; | |
199 | + //チャネル間隔の62.5%の高さだけ下に | |
200 | + originY -= GetChStep() * 0.625f; | |
201 | + } | |
202 | + else { | |
203 | + originY = portWidth * (float)(keyboardDispNum - (keyboardIndex + 1) * 2) / 2.0f; | |
208 | 204 | |
209 | - //鍵盤の1/4の高さだけ下に | |
210 | - originY -= GetWhiteKeyHeight() / 4.0f; | |
205 | + //チャネル間隔の37.5%の高さだけ上に | |
206 | + originY += GetChStep() * 0.375f; | |
207 | + } | |
211 | 208 | |
212 | 209 | return originY; |
213 | 210 | } |
@@ -217,7 +214,6 @@ float MTPianoKeyboardDesignMod::GetPortOriginY( | ||
217 | 214 | //****************************************************************************** |
218 | 215 | float MTPianoKeyboardDesignMod::GetPortOriginZ( |
219 | 216 | int keyboardIndex, |
220 | - float antiResizeScale, | |
221 | 217 | bool flip |
222 | 218 | ) |
223 | 219 | { |
@@ -252,14 +248,11 @@ float MTPianoKeyboardDesignMod::GetPortOriginZ( | ||
252 | 248 | |
253 | 249 | float originZ; |
254 | 250 | |
255 | - //キーボードリサイズ後に正しいリップルマージンとなるよう逆比をかける | |
256 | - float rippleMargin = GetRippleSpacing() * antiResizeScale; | |
257 | - | |
258 | 251 | if (!flip) { |
259 | - originZ = -(GetWhiteKeyLen() + rippleMargin); | |
252 | + originZ = -(GetWhiteKeyLen() * GetKeyboardResizeRatio() + GetRippleMargin()); | |
260 | 253 | } |
261 | 254 | else { |
262 | - originZ = rippleMargin; | |
255 | + originZ = GetRippleMargin(); | |
263 | 256 | } |
264 | 257 | |
265 | 258 | return originZ; |
@@ -318,7 +311,7 @@ float MTPianoKeyboardDesignMod::GetKeyboardWidth() | ||
318 | 311 | //****************************************************************************** |
319 | 312 | float MTPianoKeyboardDesignMod::GetGridHeight() |
320 | 313 | { |
321 | - return GetNoteStep() * 127; | |
314 | + return GetNoteStep() * 127.0f; | |
322 | 315 | } |
323 | 316 | |
324 | 317 | //****************************************************************************** |
@@ -326,7 +319,23 @@ float MTPianoKeyboardDesignMod::GetGridHeight() | ||
326 | 319 | //****************************************************************************** |
327 | 320 | float MTPianoKeyboardDesignMod::GetGridWidth() |
328 | 321 | { |
329 | - return GetChStep() * 15; | |
322 | + return GetChStep() * 15.0f; | |
323 | +} | |
324 | + | |
325 | +//****************************************************************************** | |
326 | +// ポート高さ取得 | |
327 | +//****************************************************************************** | |
328 | +float MTPianoKeyboardDesignMod::GetPortHeight() | |
329 | +{ | |
330 | + return GetGridHeight(); | |
331 | +} | |
332 | + | |
333 | +//****************************************************************************** | |
334 | +// ポート幅取得 | |
335 | +//****************************************************************************** | |
336 | +float MTPianoKeyboardDesignMod::GetPortWidth() | |
337 | +{ | |
338 | + return GetChStep() * 16.0f; | |
330 | 339 | } |
331 | 340 | |
332 | 341 | //****************************************************************************** |
@@ -362,6 +371,15 @@ float MTPianoKeyboardDesignMod::GetRippleMargin() | ||
362 | 371 | } |
363 | 372 | |
364 | 373 | //****************************************************************************** |
374 | +// キーボードリサイズ比取得 | |
375 | +//****************************************************************************** | |
376 | +float MTPianoKeyboardDesignMod::GetKeyboardResizeRatio() | |
377 | +{ | |
378 | + //キーボード基準の相対座標に適用するリサイズ比 | |
379 | + return GetPlaybackSectionHeight() / GetKeyboardWidth(); | |
380 | +} | |
381 | + | |
382 | +//****************************************************************************** | |
365 | 383 | // 発音中キーカラー取得 |
366 | 384 | //****************************************************************************** |
367 | 385 | D3DXCOLOR MTPianoKeyboardDesignMod::GetActiveKeyColor( |
@@ -28,12 +28,15 @@ public: | ||
28 | 28 | virtual int Initialize(const TCHAR* pSceneName, SMSeqData* pSeqData); |
29 | 29 | |
30 | 30 | //キーボード基準座標取得 |
31 | - D3DXVECTOR3 GetKeyboardBasePos(int keyboardIndex, float angle); | |
31 | + D3DXVECTOR3 GetKeyboardBasePos( | |
32 | + int keyboardIndex, | |
33 | + float angle | |
34 | + ); | |
32 | 35 | |
33 | 36 | //ポート原点座標取得 |
34 | 37 | float GetPortOriginX(); |
35 | - float GetPortOriginY(int keyboardIndex, float antiResizeScale, bool flip); | |
36 | - float GetPortOriginZ(int keyboardIndex, float antiResizeScale, bool flip); | |
38 | + float GetPortOriginY(int keyboardIndex, bool flip); | |
39 | + float GetPortOriginZ(int keyboardIndex, bool flip); | |
37 | 40 | |
38 | 41 | //ノートボックス高さ・幅取得 |
39 | 42 | float GetNoteBoxHeight(); |
@@ -53,6 +56,10 @@ public: | ||
53 | 56 | float GetGridHeight(); |
54 | 57 | float GetGridWidth(); |
55 | 58 | |
59 | + //ポート高さ・幅取得 | |
60 | + float GetPortHeight(); | |
61 | + float GetPortWidth(); | |
62 | + | |
56 | 63 | //再生面高さ・幅取得 |
57 | 64 | float GetPlaybackSectionHeight(); |
58 | 65 | float GetPlaybackSectionWidth(); |
@@ -63,6 +70,9 @@ public: | ||
63 | 70 | //波紋描画マージン取得 |
64 | 71 | float GetRippleMargin(); |
65 | 72 | |
73 | + //キーボードリサイズ比取得 | |
74 | + float GetKeyboardResizeRatio(); | |
75 | + | |
66 | 76 | //発音中キーカラー取得 |
67 | 77 | D3DXCOLOR GetActiveKeyColor( |
68 | 78 | unsigned char chNo, |
@@ -77,10 +77,8 @@ EXIT:; | ||
77 | 77 | //****************************************************************************** |
78 | 78 | int MTPianoKeyboardMod::Transform( |
79 | 79 | LPDIRECT3DDEVICE9 pD3DDevice, |
80 | - D3DXVECTOR3 moveVector1, | |
81 | - D3DXVECTOR3 moveVector2, | |
82 | - float scale, | |
83 | - float z, | |
80 | + D3DXVECTOR3 basePosVector, | |
81 | + D3DXVECTOR3 playbackPosVector, | |
84 | 82 | float rollAngle |
85 | 83 | ) |
86 | 84 | { |
@@ -89,18 +87,16 @@ int MTPianoKeyboardMod::Transform( | ||
89 | 87 | D3DXMATRIX rotateMatrix1; |
90 | 88 | D3DXMATRIX rotateMatrix2; |
91 | 89 | D3DXMATRIX rotateMatrix3; |
92 | - D3DXMATRIX moveMatrix1; | |
93 | - D3DXMATRIX moveMatrix2; | |
94 | - D3DXMATRIX moveMatrix3; | |
90 | + D3DXMATRIX basePosMatrix; | |
91 | + D3DXMATRIX playbackPosMatrix; | |
95 | 92 | D3DXMATRIX worldMatrix; |
96 | 93 | |
97 | 94 | //行列初期化 |
98 | 95 | D3DXMatrixIdentity(&scaleMatrix); |
99 | 96 | D3DXMatrixIdentity(&rotateMatrix1); |
100 | 97 | D3DXMatrixIdentity(&rotateMatrix2); |
101 | - D3DXMatrixIdentity(&rotateMatrix3); | |
102 | - D3DXMatrixIdentity(&moveMatrix1); | |
103 | - D3DXMatrixIdentity(&moveMatrix2); | |
98 | + D3DXMatrixIdentity(&basePosMatrix); | |
99 | + D3DXMatrixIdentity(&playbackPosMatrix); | |
104 | 100 | D3DXMatrixIdentity(&worldMatrix); |
105 | 101 | |
106 | 102 | //回転行列 |
@@ -120,21 +116,20 @@ int MTPianoKeyboardMod::Transform( | ||
120 | 116 | D3DXMatrixRotationX(&rotateMatrix3, D3DXToRadian(rollAngle)); |
121 | 117 | |
122 | 118 | //移動行列 |
123 | - D3DXMatrixTranslation(&moveMatrix1, moveVector1.x, moveVector1.y, moveVector1.z); | |
124 | - D3DXMatrixTranslation(&moveMatrix2, moveVector2.x, moveVector2.y, moveVector2.z); | |
125 | - D3DXMatrixTranslation(&moveMatrix3, 0.0f, 0.0f, z / scale); | |
119 | + D3DXMatrixTranslation(&basePosMatrix, basePosVector.x, basePosVector.y, basePosVector.z); | |
120 | + D3DXMatrixTranslation(&playbackPosMatrix, playbackPosVector.x, playbackPosVector.y, playbackPosVector.z); | |
126 | 121 | |
127 | 122 | //スケール行列 |
123 | + float scale = m_KeyboardDesignMod.GetKeyboardResizeRatio(); | |
128 | 124 | D3DXMatrixScaling(&scaleMatrix, scale, scale, scale); |
129 | 125 | |
130 | - //行列の合成:ピッチベンド移動1→鍵盤向き補正回転1・2→グリッド面まで移動3→ホイール回転3→スケール→再生面追従移動2 | |
131 | - D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &moveMatrix1); | |
126 | + //行列の合成:スケール→原点移動→回転1・2(鍵盤向き補正)→回転3(ホイール角度)→再生位置追従移動 | |
127 | + D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &scaleMatrix); | |
128 | + D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &basePosMatrix); | |
132 | 129 | D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &rotateMatrix1); |
133 | 130 | D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &rotateMatrix2); |
134 | - D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &moveMatrix3); | |
135 | 131 | D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &rotateMatrix3); |
136 | - D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &scaleMatrix); | |
137 | - D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &moveMatrix2); | |
132 | + D3DXMatrixMultiply(&worldMatrix, &worldMatrix, &playbackPosMatrix); | |
138 | 133 | |
139 | 134 | //変換行列設定 |
140 | 135 | m_PrimitiveKeyboard.Transform(worldMatrix); |
@@ -34,7 +34,12 @@ public: | ||
34 | 34 | ); |
35 | 35 | |
36 | 36 | //更新 |
37 | - virtual int Transform(LPDIRECT3DDEVICE9 pD3DDevice, D3DXVECTOR3 moveVector1, D3DXVECTOR3 moveVector2, float scale, float z, float rollAngle); | |
37 | + int Transform( | |
38 | + LPDIRECT3DDEVICE9 pD3DDevice, | |
39 | + D3DXVECTOR3 basePosVector, | |
40 | + D3DXVECTOR3 playbackPosVector, | |
41 | + float rollAngle | |
42 | + ); | |
38 | 43 | |
39 | 44 | //キー状態変更 |
40 | 45 | virtual int PushKey( |
@@ -68,7 +68,7 @@ ReleaseDuration=250 | ||
68 | 68 | SrcBlend=5 |
69 | 69 | DestBlend=2 |
70 | 70 | OverwriteTimes=3 |
71 | -;-- e.g.) BlackBG : Src/Dest/Overwrite = 5/2/3, PictureBG : Src/Dest/Overwrite = 5/2/2 | |
71 | +;-- e.g.) BlackBG : Src/Dest/Overwrite = 5/2/3, PictureBG : Src/Dest/Overwrite = 5/2/1 | |
72 | 72 | Spacing=0.002 |
73 | 73 | |
74 | 74 | [Stars] |
@@ -68,7 +68,7 @@ ReleaseDuration=250 | ||
68 | 68 | SrcBlend=5 |
69 | 69 | DestBlend=2 |
70 | 70 | OverwriteTimes=3 |
71 | -;-- e.g.) BlackBG : Src/Dest/Overwrite = 5/2/3, PictureBG : Src/Dest/Overwrite = 5/2/2 | |
71 | +;-- e.g.) BlackBG : Src/Dest/Overwrite = 5/2/3, PictureBG : Src/Dest/Overwrite = 5/2/1 | |
72 | 72 | Spacing=0.002 |
73 | 73 | |
74 | 74 | [Stars] |
@@ -1,13 +1,14 @@ | ||
1 | 1 | ピカピカMIDITrail 鍵盤方向自動切替・多ポート・歌詞対応等 |
2 | 2 | |
3 | -MIDITrail 1.2.3 mod. yossiepon_20180404 | |
3 | +MIDITrail 1.2.3 mod. yossiepon_20180412 | |
4 | 4 | mail: yoshy@users.sourceforge.jp |
5 | 5 | |
6 | -改造点 20180404: | |
6 | +改造点 20180412: | |
7 | 7 | ・[UPDATE] 1.2.3をマージ |
8 | 8 | ・[ADD] リップルと背景画像のブレンド方法を指定できる設定を追加 |
9 | 9 | →INIファイル中のRippleセクション SrcBlendおよびDestBlend |
10 | 10 | ・[FIX] 多ポートのシーケンスでPianoRoll2Dのキーボードが1つに集約されない不具合を修正 |
11 | +・[FIX] PianoRoll3Dで多ポート時のキーボード基準位置がずれている不具合を修正 | |
11 | 12 | |
12 | 13 | 改造点 20170528: |
13 | 14 | ・[FIX] タイトル(シーケンス名)が空の場合、ファイル名を代替表示するよう修正 |