画像提示装置を検討していく.また,音での輪郭提示のメリット,限界を見定 めた上で,言語など他の聴覚要素での提示方法も検討していく.
これまでの研究により,「視覚の空間分解能」を「聴覚の時間分解能」に変換 することで,図形を認識できることを明らかにした.
これにより,触覚提示ではなしえない「聴覚ならではの図形提示」への道を 開いた.たとえば,以下のようなユースケースが考えられる.
•
公共施設などでの,他人数への非難誘導表示•
視覚特別支援学校などでの黒板的利用今後は,本方式を,様々な図形やグラフの表示に活用できるように,提示ス ピード,刺激音などのパラメタを検討していく.また
,16
行16
列のスピーカ・マトリクスを試作し,より詳細な角度,曲線の提示をした場合,その情報量を どの程度認識できるか検討していく.
さらに
,
空間音響の知見を生かし,
立体図形の表現にも挑戦していく.
また,
色やコントラストを音で伝えることを目標に,色やコントラストを音にマッピ ングする検討をしていく.第 6 章 業績一覧
査読ありフルペーパー 鈴木淳也,守井清吾,篠原寛明, 広林茂樹, 移動す る音源によるアルファベット形状の提示, 映像情報メディア学会誌, 論文特集 ヒューマンインフォメーション〜情報メディアに対する人間特性の理解と応用
〜, Vol. 67, No. 12 (2013年12月号) p. J441-J447
国際学会プレシーディング(査読あり)
Junya Suzuki, Takahiro Miura, Mayumi Tsuchiya, Hiroaki Shinohara and Tohru Ifukube, Presentation tech-nique of 2-D diagram utilizing touch-sensitive visual display and loudspeaker matrix: aurally presentation of the corresponding line direction to contact position, SICE SII2010, 2010.12, Sendai, Japan.
国内学会プレシーディング(査読なし)
1.
鈴木淳也,三浦貴大,土屋繭美,上田一貴,伊福部達, 二次元パタンを提示 するためのスピーカマトリクスの設計,
第10
回計測自動制御学会システ ムインテグレーション部門講演会論文集,2009.12,芝浦工業大学豊洲キャ ンパス.(優秀講演賞)2.
鈴木淳也,
三浦貴大,
土屋繭美,
篠原寛明,
伊福部達,
多音源定位による図 形認識-探索部分の拡大提示法-第11
回計測自動制御学会システムインテ グレーション部門講演会論文集,2010.12, 東北大学川内キャンパス.その他業績
R. Nakada, Y. Hasegawa, S. Hirobayashi, T. Yoshizawa, T. Mis-awa, J. Suzuki , Wide-Area Sound-Control System for Reducing Reverberation Using Power Envelope Inverse Filtering, IEICE Transactions on Fundamentals of Electronics, Communications and Computer Sciences, vol. E96-A, no.7, pp.1509-1517, 2013
受賞
[優秀講演賞]
鈴木淳也,三浦貴大,土屋繭美,上田一貴,伊福部達, 二次元パタンを提示するためのスピーカマトリクスの設計
,
第10
回計測自動制御学会 システムインテグレーション部門講演会論文集,2009.12,芝浦工業大学豊洲キャ ンパス.第 7 章 謝辞
本研究は,2008年から5年にわたり積み重ねてきました.研究を進めてい く上で、多くの先生方のご指導をいただきました。また、伊福部研究室(東京 大学)、廣林研究室(富山大学)の皆様とたくさんの議論を深めることができ ました。その他にも、さまざまな分野の方々にたくさんのご協力をいただきま した。ここに、深く感謝の気持ちを記したいと思います。
以下に、本博士論文を執筆する上で、特に、深くご指導、ご協力いただいた 方のお名前を記載し、感謝の意を示します。
本研究の所期の段階(2008年)から、東京大学・先端化学技術センターの伊 福部達先生に,「感覚代行」の考え方をご指導いただき,「図形(視覚情報)」を
「音の動き(聴覚情報)」に変換する研究に着手することができました。また、
同研究室の三浦貴大氏,土屋繭美氏,上田一貴氏には,実験の立案,図の作成 をはじめ、研究のさまざまな側面でご協力いただきました.同研究室の藪謙一 郎氏には,特に、ロジック回路についてご指導,ご協力をいただき,スピーカ 切り替え装置を実現し,制御可能なスピーカの数を格段に増やすことができる ようになりました。
富山大学の津田正明先生には,博士取得への道を開いていただき、多くの励 ましをいただきました。また、篠原寛明先生には、研究のフレームワークの立 案方法についてご指導いただき、揺るぎのない研究を進めることができまし た。広林茂樹先生に,実験方法,分析方法、また論文執筆にいたるまで、ご指 導いただきました.特に、「研究の訴求方法」についてご示唆をいただき、論 文執筆のポイントを学ばせていただきました。また、西条寿夫先生には,解剖 学的視点で多くのご助言をいただきました。また、安藤彰男先生には、空間音 響のご専門のお立場から、詳細なご指導をいただきました。特に、用語の適切 な解釈方法を学ばせていただきました。また、守井清吾氏とは、「視覚障碍者 に図形情報を提示する」という同じ研究目的の元、深い議論をし、切磋琢磨し てくることができました。また
,
小澤 恭平君,
高木 裕久君に,
論文の図の作 成をご協力いただきました。なお,本研究の一部は,JST A-STEP(探索タイプ
AS242Z00714K)
の助成に よる成果である.上記のとおり、ほんとうに多くの皆様のおかげで研究を進めることができ、
この博士論文をまとめることができました。皆様に深く感謝するとともに、研
2014
年3月 鈴木淳也付録 A スピーカ切り替え装置の原理および回路図
第
3
章の実験用に試作したスピーカ切り替え装置の回路図を記す.Fig. 1:
基板の外形図SP SP
G3VM-62C1
VCC 390Ω
R 390Ω
R VCC
SP SP
G3VM-62C1
VCC 390Ω
R 390Ω
R VCC
SP SP
G3VM-62C1
VCC 390Ω
R 390Ω
R VCC
SP SP
G3VM-62C1
VCC 390Ω
R 390Ω
R VCC
SP SP
G3VM-62C1
VCC 390Ω
R 390Ω
R VCC
SP SP
G3VM-62C1
VCC 390Ω
R 390Ω
R VCC
SP SP
G3VM-62C1
VCC 390Ω
R 390Ω
R VCC
SP SP
G3VM-62C1
VCC 390Ω
R VCC 390Ω
R A1 B2 C3 G2A4 G2B5 G16
Y015 Y114 Y213 Y312 Y411 Y510 Y69 Y77
74138 U
A1 B2 C3 G2A4 G2B5 G16 Y015 Y114 Y213 Y312 Y411 Y510 Y69 Y77
74138 U VCC
GND
イイイイイ
Fig. 2:
スピーカ切り替え回路Fig. 3:
基板の回路図A1 B2 C3 G2A4 G2B5 G16
Y015 Y114 Y213 Y312 Y411 Y510 Y69 Y77
74138 U VCC
A1 B2 C3 G2A4 G2B5 G16
Y015 Y114 Y213 Y312 Y411 Y510 Y69 Y77
74138 U
GND
GND
イイイイイ
Fig. 4:
4ビットで振り分ける部分付録 B 第 3 章の実験用プログラム・ソース
リスト
1: sample source
1 u s i n g S y s t e m ;
2 u s i n g S y s t e m . C o l l e c t i o n s . G e n e r i c ;
3 u s i n g S y s t e m . C o m p o n e n t M o d e l ;
4 u s i n g S y s t e m . D a t a ;
5 u s i n g S y s t e m . D r a w i n g ;
6 u s i n g S y s t e m . L i n q ;
7 u s i n g S y s t e m . T e x t ;
8 u s i n g S y s t e m . W i n d o w s . F o r m s ;
9 u s i n g S y s t e m . R u n t i m e . I n t e r o p S e r v i c e s ;
10 u s i n g S y s t e m . S p e e c h ;
11 u s i n g S y s t e m . S p e e c h . S y n t h e s i s ;
12 u s i n g M i c r o s o f t . D i r e c t X ;
13 u s i n g M i c r o s o f t . D i r e c t X . D i r e c t S o u n d ;
14
15 n a m e s p a c e s o u n d _ b l a c k b o a r d
16 {
17 p u b l i c p a r t i a l c l a s s F o r m 1 : F o r m
18 {
19 p r i v a t e P a s 5 0 0 w P a s w ;
20 s h o r t w L o g S l o t ; // デ バ イ ス の 論 理 ス ロ ッ ト 番 号 を 格 納
21 b y t e c b D a t ;
22 s t r i n g s z B u f ;
23 S p e e c h S y n t h e s i z e r syn = new S p e e c h S y n t h e s i z e r ();
24 int i n t e r v a l _ v a l = 5 0 ;
25 int m u t e _ d u r =1;
26 int [] a r r a y 1 = n u l l ;
27 int [] a r r a y 2 = n u l l ;
28 int [] a r r a y 3 = n u l l ;
29 int [] a r r a y 4 = n u l l ;
30 int [] a r r a y 5 = n u l l ;
31 int [] a r r a y 6 = n u l l ;
32 int [] a r r a y 7 = n u l l ;
33 int [] a r r a y 8 = n u l l ;
34 int [] a r r a y 9 = n u l l ;
35 int [] a r r a y 1 0 = n u l l ;
36 int [] a r r a y = n u l l ;
37 int [] r e s t = n u l l ;
38 int _ s p 6 4 = 6 4 ;
39 int pen =0;
40 b y t e m u t e = 2 5 4 ; // 無 音 用 ビ ッ ト c o n s t
41
42 p r i v a t e D e v i c e _ d e v i c e = n u l l ;
43 p r i v a t e S e c o n d a r y B u f f e r _ b u f f e r = n u l l ;
44 p r i v a t e G u i d [] id = new G u i d [ 2 0 ] ;
45 46 47
48 p r i v a t e v o i d u s e _ c o u n t ( int [] array , int [] u n u s e )
49 {
50 for ( int k =0; k < a r r a y . L e n g t h ; k ++)
51 {
52 for ( int l =1; l < = 6 4 ; l ++)
53 {
54 if ( a r r a y [ k ]== l )
55 {
56 u n u s e [ l - 1 ] + + ;
57 }
58 }
59 }
60 }
66
67 p r i v a t e v o i d F o r m 1 _ L o a d ( o b j e c t sender , E v e n t A r g s e )
68 {
69 // - - - PA - S 5 0 0接 続
-70 P a s 5 0 0 w . R e s o u r c e Ri ; // リ ソ ー ス 情 報
71 int d w S w V a l = 0; // ロ ー タ リ ー ス イ ッ チ の 値
72 int d w D i r e c t i o n s = 0; // デ ィ レ ク シ ョ ン
73 b o o l b R e s u l t ; // 処 理 結 果
74 int i ;
75
76 // 生 成
77 P a s w = new P a s 5 0 0 w ();
78 Ri = new P a s 5 0 0 w . R e s o u r c e ();
79 Ri . d w M e m B a s e = new int [ P a s 5 0 0 w . M A X _ M E M ];
80 Ri . d w M e m L e n g t h = new int [ P a s 5 0 0 w . M A X _ M E M ];
81 Ri . d w M e m A t t r i b = new int [ P a s 5 0 0 w . M A X _ M E M ];
82 Ri . d w I O P o r t B a s e = new int [ P a s 5 0 0 w . M A X _ I O ];
83 Ri . d w I O P o r t L e n g t h = new int [ P a s 5 0 0 w . M A X _ I O ];
84 Ri . d w I R Q R e g i s t e r s = new int [ P a s 5 0 0 w . M A X _ I R Q ];
85 Ri . d w I R Q A t t r i b = new int [ P a s 5 0 0 w . M A X _ I R Q ];
86 Ri . d w D M A L s t = new int [ P a s 5 0 0 w . M A X _ D M A ];
87 Ri . d w D M A A t t r i b = new int [ P a s 5 0 0 w . M A X _ D M A ];
88 Ri . d w R e s e r v e d 1 = new int [ P a s 5 0 0 w . M A X _ R S V ];
89
90 // 初 期 化
91 Ri . d w N u m M e m W i n d o w s = 0;
92 for ( i = 0; i < P a s 5 0 0 w . M A X _ M E M ; i ++)
93 {
94 Ri . d w M e m B a s e [ i ] = 0;
95 Ri . d w M e m L e n g t h [ i ] = 0;
96 Ri . d w M e m A t t r i b [ i ] = 0;
97 }
98 Ri . d w N u m I O P o r t s = 0;
99 for ( i = 0; i < P a s 5 0 0 w . M A X _ I O ; i ++)
100 {
101 Ri . d w I O P o r t B a s e [ i ] = 0;
102 Ri . d w I O P o r t L e n g t h [ i ] = 0;
103 }
104 Ri . d w N u m I R Q s = 0;
105 for ( i = 0; i < P a s 5 0 0 w . M A X _ I R Q ; i ++)
106 {
107 Ri . d w I R Q R e g i s t e r s [ i ] = 0;
108 Ri . d w I R Q A t t r i b [ i ] = 0;
109 }
110 Ri . d w N u m D M A s = 0;
111 for ( i = 0; i < P a s 5 0 0 w . M A X _ D M A ; i ++)
112 {
113 Ri . d w D M A L s t [ i ] = 0;
114 Ri . d w D M A A t t r i b [ i ] = 0;
115 }
116 for ( i = 0; i < P a s 5 0 0 w . M A X _ R S V ; i ++)
117 {
118 Ri . d w R e s e r v e d 1 [ i ] = 0;
119 }
120
121 //
-122 // PA - S 5 0 0の 使 用 を 宣 言
123 //
-124 w L o g S l o t = P a s 5 0 0 w . S L O T _ A U T O ; // 未 使 用 の デ バ イ ス を 探 し
ま す 。
125 b R e s u l t = P a s w . C r e a t e ( ref w L o g S l o t ); // 成 功 し た 場 合 、 そ の 時 の
デ バ イ ス の 論 理 ス ロ ッ ト 番 号 が 格 納 さ れ ま す 。
126 if ( b R e s u l t == f a l s e ) // デ バ イ ス が 見 つ か り ま せ
ん 。
127 {
128 E r r o r M e s s a g e ( P a s 5 0 0 w . S L O T _ A U T O );
129 // t h i s . C l o s e ( ) ;
130 r e t u r n ;
131 }
132 s z B u f = s t r i n g . C o n c a t ( " PA - S 5 0 0 C r e a t e d " , E n v i r o n m e n t . NewLine , E n v i r o n m e n t . NewLine , s t r i n g . F o r m a t ( " L o g S l o t : {0} " , w L o g S l o t ));
133 R e s u l t M e s s a g e ( s z B u f );
134 //
-135 // リ ソ ー ス 情 報 と ロ ー タ リ ー ス イ ッ チ の 値 を 取 得
136 //
-137 I n t P t r pri = M a r s h a l . A l l o c H G l o b a l ( M a r s h a l . S i z e O f ( Ri )); // ア ン マ ネ ー ジ メ モ リ 確 保
138 M a r s h a l . S t r u c t u r e T o P t r ( Ri , pri , f a l s e ); // マ ー シ
ャ リ ン グ(マ ネ ー ジ メ モ リ- >ア ン マ ネ ー ジ メ モ リ)
139 b R e s u l t = P a s w . G e t R e s o u r c e ( w L o g S l o t , pri );
140 Ri = ( P a s 5 0 0 w . R e s o u r c e )( M a r s h a l . P t r T o S t r u c t u r e ( pri , t y p e o f ( P a s 5 0 0 w . R e s o u r c e ) ) ) ; // マ ー シ ャ リ ン グ(ア ン マ ネ ー ジ メ モ リ- >マ ネ ー ジ メ モ リ)
141 M a r s h a l . F r e e H G l o b a l ( pri ); // メ モ リ
を 解 放
142 if ( b R e s u l t == f a l s e )
143 {
144 E r r o r M e s s a g e ( w L o g S l o t );
145 // t h i s . C l o s e ( ) ;
146 r e t u r n ;
147 }
148
149 if ( P a s w . G e t S w i t c h V a l u e ( w L o g S l o t , ref d w S w V a l ) == f a l s e )
150 {
151 E r r o r M e s s a g e ( w L o g S l o t );
152 // t h i s . C l o s e ( ) ;
153 r e t u r n ;
154 }
155 s z B u f = s t r i n g . C o n c a t ( " B o a r d N a m e : PA - S 5 0 0 " , E n v i r o n m e n t . NewLine , s t r i n g . F o r m a t ( " IO A d d r e s s : {0: x4 } h - {1: x4 } h " , Ri .
d w I O P o r t B a s e [0] , Ri . d w I O P o r t B a s e [0] + Ri . d w I O P o r t L e n g t h [0] -1) , E n v i r o n m e n t . NewLine , s t r i n g . F o r m a t ( " S w i t c h : {0: x } h
" , d w S w V a l ));
156 R e s u l t M e s s a g e ( s z B u f );
157 //
-158 // す べ て のP o r tの デ ィ レ ク シ ョ ン を 出 力 に 設 定 す る
159 //
-160 if ( P a s w . G e t D i r e c t i o n s ( w L o g S l o t , ref d w D i r e c t i o n s ) == f a l s e )
161 {
162 E r r o r M e s s a g e ( w L o g S l o t );
163 // t h i s . C l o s e ( ) ;
164 r e t u r n ;
165 }
166 d w D i r e c t i o n s = ~ P a s 5 0 0 w . D I R _ A _ I N P U T & d w D i r e c t i o n s ; // A P o r t の ビ ッ ト を 出 力 に 変 更 し ま す 。
167 if ( P a s w . S e t D i r e c t i o n s ( w L o g S l o t , d w D i r e c t i o n s ) == f a l s e )
168 {
169 E r r o r M e s s a g e ( w L o g S l o t );
170 // t h i s . C l o s e ( ) ;
171 r e t u r n ;
172 }
173 R e s u l t M e s s a g e ( " P o r t A の デ ィ レ ク シ ョ ン を 出 力 に 変 更" );
174
175 if ( P a s w . G e t D i r e c t i o n s ( w L o g S l o t , ref d w D i r e c t i o n s ) == f a l s e )
176 {
177 E r r o r M e s s a g e ( w L o g S l o t );
178 // t h i s . C l o s e ( ) ;
179 r e t u r n ;
180 }
181 d w D i r e c t i o n s = ~ P a s 5 0 0 w . D I R _ B _ I N P U T & d w D i r e c t i o n s ; // B P o r t の ビ ッ ト を 出 力 に 変 更 し ま す 。
182 if ( P a s w . S e t D i r e c t i o n s ( w L o g S l o t , d w D i r e c t i o n s ) == f a l s e )
183 {
184 E r r o r M e s s a g e ( w L o g S l o t );
185 // t h i s . C l o s e ( ) ;
186 r e t u r n ;
193 // t h i s . C l o s e ( ) ;
194 r e t u r n ;
195 }
196 d w D i r e c t i o n s = ~ P a s 5 0 0 w . D I R _ C _ I N P U T & d w D i r e c t i o n s ; // C P o r t の ビ ッ ト を 出 力 に 変 更 し ま す 。
197 if ( P a s w . S e t D i r e c t i o n s ( w L o g S l o t , d w D i r e c t i o n s ) == f a l s e )
198 {
199 E r r o r M e s s a g e ( w L o g S l o t );
200 // t h i s . C l o s e ( ) ;
201 r e t u r n ;
202 }
203 R e s u l t M e s s a g e ( " P o r t C の デ ィ レ ク シ ョ ン を 出 力 に 変 更" );
204
205 if ( P a s w . G e t D i r e c t i o n s ( w L o g S l o t , ref d w D i r e c t i o n s ) == f a l s e )
206 {
207 E r r o r M e s s a g e ( w L o g S l o t );
208 // t h i s . C l o s e ( ) ;
209 r e t u r n ;
210 }
211 d w D i r e c t i o n s = ~ P a s 5 0 0 w . D I R _ D _ I N P U T & d w D i r e c t i o n s ; // D P o r t の ビ ッ ト を 出 力 に 変 更 し ま す 。
212 if ( P a s w . S e t D i r e c t i o n s ( w L o g S l o t , d w D i r e c t i o n s ) == f a l s e )
213 {
214 E r r o r M e s s a g e ( w L o g S l o t );
215 // t h i s . C l o s e ( ) ;
216 r e t u r n ;
217 }
218 R e s u l t M e s s a g e ( " P o r t D の デ ィ レ ク シ ョ ン を 出 力 に 変 更" );
219
220 if ( P a s w . G e t D i r e c t i o n s ( w L o g S l o t , ref d w D i r e c t i o n s ) == f a l s e )
221 {
222 E r r o r M e s s a g e ( w L o g S l o t );
223 // t h i s . C l o s e ( ) ;
224 r e t u r n ;
225 }
226 d w D i r e c t i o n s = ~ P a s 5 0 0 w . D I R _ E _ I N P U T & d w D i r e c t i o n s ; // E P o r t の ビ ッ ト を 出 力 に 変 更 し ま す 。
227 if ( P a s w . S e t D i r e c t i o n s ( w L o g S l o t , d w D i r e c t i o n s ) == f a l s e )
228 {
229 E r r o r M e s s a g e ( w L o g S l o t );
230 // t h i s . C l o s e ( ) ;
231 r e t u r n ;
232 }
233 R e s u l t M e s s a g e ( " P o r t E の デ ィ レ ク シ ョ ン を 出 力 に 変 更" );
234
235 if ( P a s w . G e t D i r e c t i o n s ( w L o g S l o t , ref d w D i r e c t i o n s ) == f a l s e )
236 {
237 E r r o r M e s s a g e ( w L o g S l o t );
238 // t h i s . C l o s e ( ) ;
239 r e t u r n ;
240 }
241 d w D i r e c t i o n s = ~ P a s 5 0 0 w . D I R _ F _ I N P U T & d w D i r e c t i o n s ; // F P o r t の ビ ッ ト を 出 力 に 変 更 し ま す 。
242 if ( P a s w . S e t D i r e c t i o n s ( w L o g S l o t , d w D i r e c t i o n s ) == f a l s e )
243 {
244 E r r o r M e s s a g e ( w L o g S l o t );
245 // t h i s . C l o s e ( ) ;
246 r e t u r n ;
247 }
248 R e s u l t M e s s a g e ( " P o r t F の デ ィ レ ク シ ョ ン を 出 力 に 変 更" );
249
250 c b D a t = m u t e ;
251 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
252 {
253 E r r o r M e s s a g e ( w L o g S l o t );
254 // t h i s . C l o s e ( ) ;
255 r e t u r n ;
256 }
257 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
258 // R e s u l t M e s s a g e ( s z B u f );
259
260 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_B , c b D a t ) == f a l s e )
261 {
262 E r r o r M e s s a g e ( w L o g S l o t );
263 // t h i s . C l o s e ( ) ;
264 r e t u r n ;
265 }
266 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
267 // R e s u l t M e s s a g e ( s z B u f );
268
269 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_C , c b D a t ) == f a l s e )
270 {
271 E r r o r M e s s a g e ( w L o g S l o t );
272 // t h i s . C l o s e ( ) ;
273 r e t u r n ;
274 }
275 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
276 // R e s u l t M e s s a g e ( s z B u f );
277
278 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_D , c b D a t ) == f a l s e )
279 {
280 E r r o r M e s s a g e ( w L o g S l o t );
281 // t h i s . C l o s e ( ) ;
282 r e t u r n ;
283 }
284 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
285 // R e s u l t M e s s a g e ( s z B u f );
286
287 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_E , c b D a t ) == f a l s e )
288 {
289 E r r o r M e s s a g e ( w L o g S l o t );
290 // t h i s . C l o s e ( ) ;
291 r e t u r n ;
292 }
293 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
294 // R e s u l t M e s s a g e ( s z B u f );
295
296 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_F , c b D a t ) == f a l s e )
297 {
298 E r r o r M e s s a g e ( w L o g S l o t );
299 // t h i s . C l o s e ( ) ;
300 r e t u r n ;
301 }
302 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
303 // R e s u l t M e s s a g e ( s z B u f );
304 305
306 // サ ウ ン ド デ バ イ ス の 取 得
307 D e v i c e s C o l l e c t i o n d e v i c e s = new D e v i c e s C o l l e c t i o n ();
308 int j = 0;
309 f o r e a c h ( D e v i c e I n f o r m a t i o n d e v I n f o in d e v i c e s )
310 {
311 id [ j ] = d e v I n f o . D r i v e r G u i d ;
312 // d e v N a m e [ i ]= d e v I n f o . D e s c r i p t i o n ;
313 j ++;
314 }
315
316 try
317 {
318 // t h i s . _ d e v i c e = n e w D e v i c e ( id [ 2 ] ) ;
324 }
325
326 t h i s . _ d e v i c e . S e t C o o p e r a t i v e L e v e l ( this , C o o p e r a t i v e L e v e l . N o r m a l );
327
328 B u f f e r D e s c r i p t i o n B u f f e r D e s c r i p t i o n = new B u f f e r D e s c r i p t i o n ();
329 B u f f e r D e s c r i p t i o n . C o n t r o l V o l u m e = t r u e ;
330 B u f f e r D e s c r i p t i o n . C o n t r o l P a n = t r u e ;
331 B u f f e r D e s c r i p t i o n . C o n t r o l F r e q u e n c y = t r u e ;
332 B u f f e r D e s c r i p t i o n . G l o b a l F o c u s = f a l s e ;
333
334 t h i s . _ b u f f e r = new S e c o n d a r y B u f f e r ( " t o n e s / W h i t e . wav " , t h i s . _ d e v i c e );
335
336 t h i s . _ b u f f e r . Pan =0;
337 338 339
340 syn . S p e a k ( "準備できました。" );
341 }
342
343 // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
344 // 処 理 結 果 を 表 示
345 // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
346 p r i v a t e v o i d R e s u l t M e s s a g e ( s t r i n g l p s z b u f )
347 {
348 M e s s a g e B o x . S h o w ( lpszbuf , t h i s . Text , M e s s a g e B o x B u t t o n s . OK , M e s s a g e B o x I c o n . I n f o r m a t i o n );
349 }
350 // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
351 // エ ラ ー メ ッ セ ー ジ を 表 示
352 // = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
353 p r i v a t e v o i d E r r o r M e s s a g e ( s h o r t w L o g S l o t )
354 {
355 l o n g d w R e s = 0;
356 s t r i n g s z B u f = n u l l ;
357
358 d w R e s = P a s w . G e t L a s t E r r o r ( w L o g S l o t );
359 s w i t c h ( d w R e s )
360 {
361 c a s e P a s 5 0 0 w . E R R _ S Y S T E M :
362 d w R e s = S y s t e m . R u n t i m e . I n t e r o p S e r v i c e s . M a r s h a l . G e t L a s t W i n 3 2 E r r o r ();
363 s z B u f = s t r i n g . C o n c a t ( " S y s t e m e r r o r " , E n v i r o n m e n t . NewLine , E n v i r o n m e n t . NewLine , s t r i n g . F o r m a t ( " E r r o r c o d e : & H {0:
X8 } " , d w R e s ));
364 b r e a k ;
365 d e f a u l t :
366 s z B u f = s t r i n g . C o n c a t ( " PA - S 5 0 0 e r r o r " , E n v i r o n m e n t . NewLine , E n v i r o n m e n t . NewLine , s t r i n g . F o r m a t ( " E r r o r c o d e : & H {0: X8 } " , d w R e s ));
367 b r e a k ;
368 }
369 M e s s a g e B o x . S h o w ( szBuf , t h i s . Text , M e s s a g e B o x B u t t o n s . OK , M e s s a g e B o x I c o n . E r r o r );
370 }
371
372 p r i v a t e v o i d F o r m 1 _ F o r m C l o s e d ( o b j e c t sender , F o r m C l o s e d E v e n t A r g s e )
373 {
374 // PA - S 5 0 0の 使 用 を 開 放
375 //
-376 if ( P a s w . C l o s e ( w L o g S l o t ) == f a l s e )
377 {
378 E r r o r M e s s a g e ( w L o g S l o t );
379 // t h i s . C l o s e ( ) ;
380 r e t u r n ;
381 }
382 R e s u l t M e s s a g e ( " PA - S 5 0 0 C l o s e d " );
383 // t h i s . C l o s e ( ) ;
384
385 }
386
387 p r i v a t e v o i d s w _ o n ( b y t e c b D a t )
388 {
389 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
390 {
391 E r r o r M e s s a g e ( w L o g S l o t );
392 // t h i s . C l o s e ( ) ;
393 r e t u r n ;
394 }
395 }
396
397 int n o i s e _ O n O f f =0;
398 int [] u n u s e = new int [ 6 4 ] ;
399 p r i v a t e v o i d F o r m 1 _ K e y D o w n ( o b j e c t sender , K e y E v e n t A r g s e )
400 {
401 // - - - - - 停 止 ・ 無 音
402 if ( e . K e y C o d e == K e y s . E s c a p e )
403 {
404 c b D a t = m u t e ;
405 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
406 {
407 E r r o r M e s s a g e ( w L o g S l o t );
408 // t h i s . C l o s e ( ) ;
409 r e t u r n ;
410 }
411 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
412 // R e s u l t M e s s a g e ( s z B u f );
413 t h i s . T e x t = c b D a t . T o S t r i n g ();
414 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
415 }
416
417 // - - - - - ス ピ ー カ 1 か ら 出 力
418 if ( e . K e y C o d e == K e y s . F1 )
419 {
420 c b D a t = 0;
421 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
422 {
423 E r r o r M e s s a g e ( w L o g S l o t );
424 // t h i s . C l o s e ( ) ;
425 r e t u r n ;
426 }
427 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
428 // R e s u l t M e s s a g e ( s z B u f );
429 t h i s . T e x t = c b D a t . T o S t r i n g ();
430 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
431 }
432
433 // - - - - - 出 力 ス ピ ー カ を デ ク リ メ ン ト
434 if ( e . K e y C o d e == K e y s . F2 )
435 {
436 if ( c b D a t > 0)
437 {
438 cbDat - -;
439 }
440 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
441 {
442 E r r o r M e s s a g e ( w L o g S l o t );
443 // t h i s . C l o s e ( ) ;
444 r e t u r n ;
445 }
446 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
447 // R e s u l t M e s s a g e ( s z B u f );
448 t h i s . T e x t = c b D a t . T o S t r i n g ();
455 if ( c b D a t < 2 5 5 )
456 {
457 c b D a t ++;
458 }
459 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
460 {
461 E r r o r M e s s a g e ( w L o g S l o t );
462 // t h i s . C l o s e ( ) ;
463 r e t u r n ;
464 }
465 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
466 // R e s u l t M e s s a g e ( s z B u f );
467 t h i s . T e x t = c b D a t . T o S t r i n g ();
468 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
469 }
470
471 // - - - - - ス ピ ー カ6 3か ら 出 力
472 if ( e . K e y C o d e == K e y s . F4 )
473 {
474 c b D a t = 63;
475 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
476 {
477 E r r o r M e s s a g e ( w L o g S l o t );
478 // t h i s . C l o s e ( ) ;
479 r e t u r n ;
480 }
481 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
482 // R e s u l t M e s s a g e ( s z B u f );
483 t h i s . T e x t = c b D a t . T o S t r i n g ();
484 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
485 }
486
487 // - - - - - ス ピ ー カ8か ら 出 力
488 if ( e . K e y C o d e == K e y s . F5 )
489 {
490 c b D a t = 8;
491 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
492 {
493 E r r o r M e s s a g e ( w L o g S l o t );
494 // t h i s . C l o s e ( ) ;
495 r e t u r n ;
496 }
497 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
498 // R e s u l t M e s s a g e ( s z B u f );
499 t h i s . T e x t = c b D a t . T o S t r i n g ();
500 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
501 }
502
503 // - - - - - ス ピ ー カ1 6か ら 出 力
504 if ( e . K e y C o d e == K e y s . F6 )
505 {
506 c b D a t = 16;
507 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
508 {
509 E r r o r M e s s a g e ( w L o g S l o t );
510 // t h i s . C l o s e ( ) ;
511 r e t u r n ;
512 }
513 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
514 // R e s u l t M e s s a g e ( s z B u f );
515 t h i s . T e x t = c b D a t . T o S t r i n g ();
516 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
517 }
518
519 // - - - - - ス ピ ー カ2 4か ら 出 力
520 if ( e . K e y C o d e == K e y s . F7 )
521 {
522 c b D a t = 24;
523 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
524 {
525 E r r o r M e s s a g e ( w L o g S l o t );
526 // t h i s . C l o s e ( ) ;
527 r e t u r n ;
528 }
529 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
530 // R e s u l t M e s s a g e ( s z B u f );
531 t h i s . T e x t = c b D a t . T o S t r i n g ();
532 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
533 }
534
535 // - - - - - ス ピ ー カ3 2か ら 出 力
536 if ( e . K e y C o d e == K e y s . F8 )
537 {
538 c b D a t = 32;
539 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
540 {
541 E r r o r M e s s a g e ( w L o g S l o t );
542 // t h i s . C l o s e ( ) ;
543 r e t u r n ;
544 }
545 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
546 // R e s u l t M e s s a g e ( s z B u f );
547 t h i s . T e x t = c b D a t . T o S t r i n g ();
548 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
549 }
550
551 // - - - - - ス ピ ー カ4 0か ら 出 力
552 if ( e . K e y C o d e == K e y s . F9 )
553 {
554 c b D a t = 40;
555 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
556 {
557 E r r o r M e s s a g e ( w L o g S l o t );
558 // t h i s . C l o s e ( ) ;
559 r e t u r n ;
560 }
561 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
562 // R e s u l t M e s s a g e ( s z B u f );
563 t h i s . T e x t = c b D a t . T o S t r i n g ();
564 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
565 }
566
567 // - - - - - ス ピ ー カ4 8か ら 出 力
568 if ( e . K e y C o d e == K e y s . F11 )
569 {
570 c b D a t = 48;
571 if ( P a s w . O u t P o r t ( w L o g S l o t , P a s 5 0 0 w . PORT_A , c b D a t ) == f a l s e )
572 {
573 E r r o r M e s s a g e ( w L o g S l o t );
574 // t h i s . C l o s e ( ) ;
575 r e t u r n ;
576 }
577 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
578 // R e s u l t M e s s a g e ( s z B u f );
579 t h i s . T e x t = c b D a t . T o S t r i n g ();
580 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
581 }
582
ス ピ ー カ か ら 出 力
589 E r r o r M e s s a g e ( w L o g S l o t );
590 // t h i s . C l o s e ( ) ;
591 r e t u r n ;
592 }
593 // s z B u f = " P o r t A へ デ ー タ を 出 力" + "\ n " + " P o r t A O u t D a t a :
& H " + C o n v e r t . T o S t r i n g ( cbDat , 1 6 ) . T o U p p e r ( ) ;
594 // R e s u l t M e s s a g e ( s z B u f );
595 t h i s . T e x t = c b D a t . T o S t r i n g ();
596 syn . S p e a k ( c b D a t . T o S t r i n g ( ) ) ;
597 }
598
599 if ( e . K e y C o d e == K e y s . S p a c e )
600 {
601 t h i s . _ b u f f e r . S t o p ();
602 t h i s . _ b u f f e r = new S e c o n d a r y B u f f e r ( " t o n e s / W h i t e . wav " , t h i s . _ d e v i c e );
603 t h i s . _ b u f f e r . Pan =0;
604
605 if ( n o i s e _ O n O f f = = 0 )
606 {
607 t h i s . _ b u f f e r . P l a y (0 , B u f f e r P l a y F l a g s . L o o p i n g );
608 n o i s e _ O n O f f =1;
609 } e l s e {
610 t h i s . _ b u f f e r . S t o p ();
611 n o i s e _ O n O f f =0;
612 }
613
614 }
615 616 617
618 // - - - - - 刺 激 提 示 用 ト リ ガ ー
619 if ( e . K e y C o d e == K e y s . A )
620 {
621 a r r a y 1 = new int []{ mute , 8 , 15 , 22 , 28 , 36 , 43 , 50 , 5 7 } ; //
-p8
622 a r r a y 2 = new int []{8 , 16 , 24 , 32 , 40 , 48 , 56 , _ s p 6 4 }; // - v8
623 a r r a y 3 = new int []{36 , 37 , 38 , 39 , 40 , mute , -1}; // h5
624 a r r a y = new int [ 1 0 0 ] ;
625 r e s t = new int [ m u t e _ d u r ];
626 for ( int i =0; i < m u t e _ d u r ; i ++)
627 {
628 r e s t [ i ]= m u t e ;
629 }
630
631 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
632 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
633 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
634 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
635 u s e _ c o u n t ( array , u n u s e );
636
637 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
638 t i m e r 1 . E n a b l e d = t r u e ;
639 }
640
641 if ( e . K e y C o d e == K e y s . Tab )
642 {
643 S y s t e m . IO . S t r e a m W r i t e r sw = new S y s t e m . IO .
S t r e a m W r i t e r (
644 @ " t e s t . txt " ,
645 false ,
646 S y s t e m . T e x t . E n c o d i n g . G e t E n c o d i n g ( " s h i f t _ j i s "
));
647 for ( int m =0; m < 6 4 ; m ++)
648 {
649 if ( u n u s e [ m ] = = 2 )
650 {
651 sw . W r i t e L i n e ( " 2 t i m e s : " +( m + 1 ) . T o S t r i n g ()+ " \ n " );
652 }
653 if ( u n u s e [ m ] = = 1 )
654 {
655 sw . W r i t e L i n e ( " a t i m e s : " +( m + 1 ) . T o S t r i n g ()+ " \ n " );
656 }
657 if ( u n u s e [ m ] = = 0 )
658 {
659 sw . W r i t e L i n e ( " no t i m e s : " +( m + 1 ) . T o S t r i n g ()+ " \ n " );
660 }
661 }
662
663 sw . C l o s e ();
664
665 syn . S p e a k ( " D o n e " );
666 }
667
668 if ( e . K e y C o d e == K e y s . B )
669 {
670 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
671 a r r a y 2 = new int []{1 , 2 , 3 , 4 , 5 , 6 , 15 , 23 , 30 , 29 , 28 ,
27 , 26 , 2 5 } ; // h6 - v2 - h6
672 a r r a y 3 = new int []{25 , 26 , 27 , 28 , 29 , 30 , 39 , 48 ,
55 , 62 , 61 , 60 , 59 , 58 , 57 , mute , -1}; // h6 - m2 - p2
- h5
673 a r r a y = new int [ 1 0 0 ] ;
674 r e s t = new int [ m u t e _ d u r ];
675 for ( int i =0; i < m u t e _ d u r ; i ++)
676 {
677 r e s t [ i ]= m u t e ;
678 }
679
680 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
681 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
682 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
683 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
684 u s e _ c o u n t ( array , u n u s e );
685
686 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
687 t i m e r 1 . E n a b l e d = t r u e ;
688
689 }
690
691 if ( e . K e y C o d e == K e y s . C )
692 {
693 a r r a y = new int []{ mute , 23 , 14 , 5 , 4 , 11 , 18 , 25 , 33 ,
42 , 51 , 60 , 61 , 54 , 47 , mute , -1}; // m3 - p4 - m 4 p 3
694 u s e _ c o u n t ( array , u n u s e );
695
696 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
697 t i m e r 1 . E n a b l e d = t r u e ;
698 }
699
700 if ( e . K e y C o d e == K e y s . D )
701 {
702 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
703 a r r a y 2 = new int []{1 , 2 , 3 , 4 , 5 , 14 , 23 , 32 , 40 , 47 ,
54 , 61 , 60 , 59 , 58 , 57 , mute , -1}; // h5 - m3 - p4 - h4
704
705 a r r a y = new int [ 1 0 0 ] ;
706 r e s t = new int [ m u t e _ d u r ];
707 for ( int i =0; i < m u t e _ d u r ; i ++)
708 {
709 r e s t [ i ]= m u t e ;
710 }
711
712 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
719 720
721 }
722
723 if ( e . K e y C o d e == K e y s . E )
724 {
725 a r r a y 1 = new int []{ mute , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8}; // - h8
726 a r r a y 2 = new int []{1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; // - v8
727 a r r a y 3 = new int []{25 , 26 , 27 , 28 , 29 , 3 0 } ; // h6
728 a r r a y 4 = new int []{57 , 58 , 59 , 60 , 61 , 62 , 63 , _sp64 , mute ,
-1}; // h8
729
730 a r r a y = new int [ 1 0 0 ] ;
731 r e s t = new int [ m u t e _ d u r ];
732 for ( int i =0; i < m u t e _ d u r ; i ++)
733 {
734 r e s t [ i ]= m u t e ;
735 }
736
737 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
738 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
739 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
740 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
741 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
742 a r r a y = a r r a y . C o n c a t ( a r r a y 4 ). T o A r r a y ();
743 u s e _ c o u n t ( array , u n u s e );
744
745 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
746 t i m e r 1 . E n a b l e d = t r u e ;
747 748 749
750 }
751
752 if ( e . K e y C o d e == K e y s . F )
753 {
754 a r r a y 1 = new int []{ mute , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8}; // h8
755 a r r a y 2 = new int []{1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; // - v8
756 a r r a y 3 = new int []{25 , 26 , 27 , 28 , 29 , 30 , mute , -1}; // h6
757
758 a r r a y = new int [ 1 0 0 ] ;
759 r e s t = new int [ m u t e _ d u r ];
760 for ( int i =0; i < m u t e _ d u r ; i ++)
761 {
762 r e s t [ i ]= m u t e ;
763 }
764
765 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
766 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
767 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
768 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
769 u s e _ c o u n t ( array , u n u s e );
770
771 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
772 t i m e r 1 . E n a b l e d = t r u e ;
773 }
774
775 if ( e . K e y C o d e == K e y s . G )
776 {
777 // a r r a y 1 = n e w i n t []{0 , 24 , 15 , 6 , 5 , 4 , 3 , 10 , 17 , 25 , 33 ,
41 , 50 , 59 , 60 , 61 , 62 , 55 , 4 8 } ;
778 a r r a y 1 = new int []{ mute , 23 , 14 , 5 , 4 , 11 , 18 , 25 ,
33 , 42 , 51 , 60 , 61 , 54 , 4 7 } ; // m3 - p4 - m 4 p 3
779 a r r a y 2 = new int []{45 , 46 , 47 , 4 8 } ; // h4
780 a r r a y 3 = new int []{48 , 56 , _sp64 , mute , -1}; // - v3
781
782 a r r a y = new int [ 1 0 0 ] ;
783 r e s t = new int [ m u t e _ d u r ];
784 for ( int i =0; i < m u t e _ d u r ; i ++)
785 {
786 r e s t [ i ]= m u t e ;
787 }
788
789 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
790 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
791 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
792 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
793 u s e _ c o u n t ( array , u n u s e );
794
795 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
796 t i m e r 1 . E n a b l e d = t r u e ;
797 }
798 799
800 if ( e . K e y C o d e == K e y s . H )
801 {
802 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
803 a r r a y 2 = new int []{25 , 26 , 27 , 28 , 29 , 30 , 31 , 3 2 } ; // h8
804 a r r a y 3 = new int []{8 , 16 , 24 , 32 , 40 , 48 , 56 , _sp64 , mute ,
-1}; // - v8
805
806 a r r a y = new int [ 1 0 0 ] ;
807 r e s t = new int [ m u t e _ d u r ];
808 for ( int i =0; i < m u t e _ d u r ; i ++)
809 {
810 r e s t [ i ]= m u t e ;
811 }
812
813 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
814 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
815 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
816 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
817 u s e _ c o u n t ( array , u n u s e );
818
819 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
820 t i m e r 1 . E n a b l e d = t r u e ;
821 }
822
823 if ( e . K e y C o d e == K e y s . I )
824 {
825 a r r a y = new int []{ mute , 4 , 12 , 20 , 28 , 36 , 44 , 52 , 60 , mute ,
-1}; // - v8
826 u s e _ c o u n t ( array , u n u s e );
827
828 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
829 t i m e r 1 . E n a b l e d = t r u e ;
830 }
831
832 if ( e . K e y C o d e == K e y s . J )
833 {
834 a r r a y = new int []{ mute , 7 , 15 , 23 , 31 , 31 , 39 , 47 , 54 ,
61 , 60 , 51 , 42 , 33 , mute , -1};
835 u s e _ c o u n t ( array , u n u s e );
836
837 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
838 t i m e r 1 . E n a b l e d = t r u e ;
839 }
840
841 if ( e . K e y C o d e == K e y s . K )
842 {
843 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
844 a r r a y 2 = new int []{5 , 12 , 19 , 2 6 } ; // - p4 // こ の 行 と 次 の 行 が
「 く 」 に な る よ う に す る こ と
845 a r r a y 3 = new int []{26 , 35 , 44 , 53 , 62 , mute , -1}; // - m5
852 }
853
854 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
855 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
856 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
857 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
858 u s e _ c o u n t ( array , u n u s e );
859
860 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
861 t i m e r 1 . E n a b l e d = t r u e ;
862 }
863
864 if ( e . K e y C o d e == K e y s . L )
865 {
866 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
867 a r r a y 2 = new int []{57 , 58 , 59 , 60 , 61 , 62 , 63 , _sp64 , mute ,
-1}; // h8
868
869 a r r a y = new int [ 1 0 0 ] ;
870 r e s t = new int [ m u t e _ d u r ];
871 for ( int i =0; i < m u t e _ d u r ; i ++)
872 {
873 r e s t [ i ]= m u t e ;
874 }
875
876 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
877 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
878 u s e _ c o u n t ( array , u n u s e );
879
880 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
881 t i m e r 1 . E n a b l e d = t r u e ;
882 }
883
884 // M :斜 辺 部 が 1 段 下 が っ て い る 。 確 認 す る こ と 。
885 if ( e . K e y C o d e == K e y s . M )
886 {
887 a r r a y 1 = new int []{ mute , 57 , 49 , 41 , 33 , 25 , 17 , 9 , 1}; // v8
888 a r r a y 2 = new int []{2 , 11 , 20 , 2 9 } ; // p4 // 一 段 下 が っ て い る
の で は ・ 確 認 す る こ と 。
889 a r r a y 3 = new int []{29 , 22 , 15 , 8}; // - m4 // こ こ も 一 段 下 が っ
て い る の で は ?
890 a r r a y 4 = new int []{8 , 16 , 24 , 32 , 40 , 48 , 56 , _sp64 , mute ,
-1}; // - v8
891
892 a r r a y = new int [ 1 0 0 ] ;
893 r e s t = new int [ m u t e _ d u r ];
894 for ( int i =0; i < m u t e _ d u r ; i ++)
895 {
896 r e s t [ i ]= m u t e ;
897 }
898
899 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
900 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
901 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
902 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
903 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
904 a r r a y = a r r a y . C o n c a t ( a r r a y 4 ). T o A r r a y ();
905 u s e _ c o u n t ( array , u n u s e );
906
907 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
908 t i m e r 1 . E n a b l e d = t r u e ;
909 }
910
911 if ( e . K e y C o d e == K e y s . N )
912 {
913 a r r a y 1 = new int []{ mute , 57 , 49 , 41 , 33 , 25 , 17 , 9 , 1}; // v8
914 a r r a y 2 = new int []{2 , 11 , 20 , 29 , 38 , 47 , 5 6 } ; // - m7
915 a r r a y 3 = new int []{ _sp64 , 56 , 48 , 40 , 32 , 24 , 16 , 8 , mute ,
-1}; // v8
916
917 a r r a y = new int [ 1 0 0 ] ;
918 r e s t = new int [ m u t e _ d u r ];
919 for ( int i =0; i < m u t e _ d u r ; i ++)
920 {
921 r e s t [ i ]= m u t e ;
922 }
923
924 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
925 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
926 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
927 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
928 u s e _ c o u n t ( array , u n u s e );
929
930 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
931 t i m e r 1 . E n a b l e d = t r u e ;
932 }
933
934 if ( e . K e y C o d e == K e y s . O )
935 {
936 a r r a y = new int []{ mute , 24 , 15 , 6 , 5 , 4 , 3 , 10 , 17 ,
25 , 33 , 41 , 50 , 59 , 60 , 61 , 62 , 55 , 48 ,
40 , 32 , 24 , mute , -1}; // m3 - h3 - p2 - v3 - m 2 h 3 p 2 v 3
937 u s e _ c o u n t ( array , u n u s e );
938
939 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
940 t i m e r 1 . E n a b l e d = t r u e ;
941 }
942
943 if ( e . K e y C o d e == K e y s . P )
944 {
945 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
946 a r r a y 2 = new int []{1 , 2 , 3 , 4 , 5 , 6 , 7 , 16 , 24 , 31 ,
30 , 29 , 28 , 27 , 26 , 25 , mute , -1}; // h7v2 - h7
947
948 a r r a y = new int [ 1 0 0 ] ;
949 r e s t = new int [ m u t e _ d u r ];
950 for ( int i =0; i < m u t e _ d u r ; i ++)
951 {
952 r e s t [ i ]= m u t e ;
953 }
954
955 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
956 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
957 u s e _ c o u n t ( array , u n u s e );
958
959 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
960 t i m e r 1 . E n a b l e d = t r u e ;
961 }
962
963 // Q :中 の 直 線 が 長 す ぎ る か も 。
964 if ( e . K e y C o d e == K e y s . Q )
965 {
966 a r r a y 1 = new int []{ mute , 24 , 15 , 6 , 5 , 4 , 3 , 10 , 17 ,
25 , 33 , 41 , 50 , 59 , 60 , 61 , 62 , 55 , 48 ,
40 , 32 , 2 4 } ; // m3 - h3 - p3 - v2 - m2 - m 3 p 2 v 3
967 a r r a y 2 = new int []{35 , 36 , 37 , 46 , 55 , _sp64 , mute , -1};
// h3 - m3
968
969 a r r a y = new int [ 1 0 0 ] ;
970 r e s t = new int [ m u t e _ d u r ];
971 for ( int i =0; i < m u t e _ d u r ; i ++)
972 {
973 r e s t [ i ]= m u t e ;
974 }
981 t i m e r 1 . E n a b l e d = t r u e ;
982 }
983
984 if ( e . K e y C o d e == K e y s . R )
985 {
986 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
987 a r r a y 2 = new int []{2 , 3 , 4 , 5 , 6 , 7 , 16 , 24 , 31 , 30 ,
29 , 28 , 27 , 26 , 2 5 } ; // h6v2 - h7
988 a r r a y 3 = new int []{28 , 37 , 46 , 55 , _sp64 , mute , -1}; // - m5
989
990 a r r a y = new int [ 1 0 0 ] ;
991 r e s t = new int [ m u t e _ d u r ];
992 for ( int i =0; i < m u t e _ d u r ; i ++)
993 {
994 r e s t [ i ]= m u t e ;
995 }
996
997 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
998 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
999 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1000 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
1001 u s e _ c o u n t ( array , u n u s e );
1002
1003 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1004 t i m e r 1 . E n a b l e d = t r u e ;
1005 }
1006
1007 if ( e . K e y C o d e == K e y s . S )
1008 {
1009 // a r r a y = n e w i n t []{0 , 14 , 5 , 4 , 11 , 19 , 28 , 29 ,
30 , 39 , 48 , 55 , 62 , 61 , 60 , 59 , 50 , 41 ,
33 , 0 , -1}; // m2 - p2 - m2h2 - m2 - p2 - h 3 m 2 v 1 // 鈴 木
1010 a r r a y = new int []{ mute , 23 , 14 , 5 , 12 , 19 , 28 , 29 , 30 , 39 ,
48 , 55 , 61 , 60 , 51 , 42 , 33 , mute , -1}; // 高 木
1011 u s e _ c o u n t ( array , u n u s e );
1012
1013 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1014 t i m e r 1 . E n a b l e d = t r u e ;
1015 }
1016
1017 if ( e . K e y C o d e == K e y s . T )
1018 {
1019 a r r a y 1 = new int []{ mute , 1 , 2 , 3 , 4 , 5 , 6 , 7}; // h7
1020 a r r a y 2 = new int []{4 , 12 , 20 , 28 , 36 , 44 , 52 , 60 , mute , -1};
// - v8
1021
1022 a r r a y = new int [ 1 0 0 ] ;
1023 r e s t = new int [ m u t e _ d u r ];
1024 for ( int i =0; i < m u t e _ d u r ; i ++)
1025 {
1026 r e s t [ i ]= m u t e ;
1027 }
1028
1029 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1030 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
1031 u s e _ c o u n t ( array , u n u s e );
1032
1033 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1034 t i m e r 1 . E n a b l e d = t r u e ;
1035 }
1036
1037 if ( e . K e y C o d e == K e y s . U )
1038 {
1039 a r r a y = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 42 , 51 , 60 ,
61 , 54 , 47 , 40 , 32 , 24 , 16 , 8 , mute , -1}; //
-v5 - m 3 p 4 v 4
1040 u s e _ c o u n t ( array , u n u s e );
1041
1042 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1043 t i m e r 1 . E n a b l e d = t r u e ;
1044 }
1045
1046 if ( e . K e y C o d e == K e y s . V )
1047 {
1048 a r r a y 1 = new int []{ mute , 1 , 10 , 19 , 28 , 37 , 46 , 55 , _ s p 6 4 };
// - m8
1049 a r r a y 2 = new int []{56 , 48 , 40 , 32 , 24 , 16 , 8 , mute , -1}; //
v7
1050
1051 a r r a y = new int [ 1 0 0 ] ;
1052 r e s t = new int [ m u t e _ d u r ];
1053 for ( int i =0; i < m u t e _ d u r ; i ++)
1054 {
1055 r e s t [ i ]= m u t e ;
1056 }
1057
1058 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1059 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
1060 u s e _ c o u n t ( array , u n u s e );
1061
1062 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1063 t i m e r 1 . E n a b l e d = t r u e ;
1064 }
1065
1066 // M :斜 辺 部 が 1 段 下 が っ て い る 。 確 認 す る こ と 。
1067 if ( e . K e y C o d e == K e y s . W )
1068 {
1069 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ; //
-v8
1070 a r r a y 2 = new int []{50 , 43 , 36 , 2 0 } ; // p4
1071 a r r a y 3 = new int []{38 , 47 , 5 6 } ; // - m3
1072 a r r a y 4 = new int []{ _sp64 , 56 , 48 , 40 , 32 , 24 , 16 , 8 , mute ,
-1}; // v8
1073
1074 a r r a y = new int [ 1 0 0 ] ;
1075 r e s t = new int [ m u t e _ d u r ];
1076 for ( int i =0; i < m u t e _ d u r ; i ++)
1077 {
1078 r e s t [ i ]= m u t e ;
1079 }
1080
1081 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1082 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
1083 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1084 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
1085 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1086 a r r a y = a r r a y . C o n c a t ( a r r a y 4 ). T o A r r a y ();
1087 u s e _ c o u n t ( array , u n u s e );
1088
1089 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1090 t i m e r 1 . E n a b l e d = t r u e ;
1091 }
1092
1093 if ( e . K e y C o d e == K e y s . X )
1094 {
1095 a r r a y 1 = new int []{ mute , 1 , 10 , 19 , 28 , 37 , 46 , 55 , _ s p 6 4 };
// - m8
1096 a r r a y 2 = new int []{8 , 15 , 22 , 29 , 36 , 43 , 50 , 57 , mute , -1};
// - p8
1097
1098 a r r a y = new int [ 1 0 0 ] ;
1099 r e s t = new int [ m u t e _ d u r ];
1100 for ( int i =0; i < m u t e _ d u r ; i ++)
1101 {
1102 r e s t [ i ]= m u t e ;
1109 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1110 t i m e r 1 . E n a b l e d = t r u e ;
1111 }
1112
1113 if ( e . K e y C o d e == K e y s . Y )
1114 {
1115 a r r a y 1 = new int []{ mute , 1 , 10 , 19 , 2 8 } ; // - m4
1116 a r r a y 2 = new int []{8 , 15 , 22 , 2 9 } ; // - p4
1117 a r r a y 3 = new int []{37 , 45 , 53 , 61 , mute , -1}; // - v4
1118
1119 a r r a y = new int [ 1 0 0 ] ;
1120 r e s t = new int [ m u t e _ d u r ];
1121 for ( int i =0; i < m u t e _ d u r ; i ++)
1122 {
1123 r e s t [ i ]= m u t e ;
1124 }
1125
1126 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1127 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
1128 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1129 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
1130 u s e _ c o u n t ( array , u n u s e );
1131
1132 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1133 t i m e r 1 . E n a b l e d = t r u e ;
1134 }
1135
1136 if ( e . K e y C o d e == K e y s . Z )
1137 {
1138 a r r a y 1 = new int []{ mute , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8}; // h8
1139 a r r a y 2 = new int []{15 , 22 , 29 , 36 , 43 , 5 0 } ; // - p6
1140 a r r a y 3 = new int []{57 , 58 , 59 , 60 , 61 , 62 , 63 , _sp64 , mute ,
-1}; // h8
1141
1142 a r r a y = new int [ 1 0 0 ] ;
1143 r e s t = new int [ m u t e _ d u r ];
1144 for ( int i =0; i < m u t e _ d u r ; i ++)
1145 {
1146 r e s t [ i ]= m u t e ;
1147 }
1148
1149 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1150 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
1151 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1152 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
1153 u s e _ c o u n t ( array , u n u s e );
1154
1155 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1156 t i m e r 1 . E n a b l e d = t r u e ;
1157 }
1158
1159 // 最 外 角 の 四 角 形
1160 if ( e . K e y C o d e == K e y s . D1 )
1161 {
1162 a r r a y 1 = new int []{ mute , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8};
1163 a r r a y 2 = new int []{8 , 16 , 24 , 32 , 40 , 48 , 56 , _ s p 6 4 };
1164 a r r a y 3 = new int []{ _sp64 , 63 , 62 , 61 , 60 , 59 , 58 , 5 7 } ;
1165 a r r a y 4 = new int []{57 , 49 , 41 , 33 , 25 , 17 , 9 , 1 , mute , -1};
1166
1167 a r r a y = new int [ 1 0 0 ] ;
1168 r e s t = new int [ m u t e _ d u r ];
1169 for ( int i =0; i < m u t e _ d u r ; i ++)
1170 {
1171 r e s t [ i ]= m u t e ;
1172 }
1173
1174 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1175 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
1176 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1177 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
1178 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1179 a r r a y = a r r a y . C o n c a t ( a r r a y 4 ). T o A r r a y ();
1180
1181 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1182 t i m e r 1 . E n a b l e d = t r u e ;
1183 }
1184
1185 // 横 線
1186 if ( e . K e y C o d e == K e y s . D2 )
1187 {
1188 a r r a y 1 = new int []{ mute , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8};
1189 a r r a y 2 = new int []{9 , 10 , 11 , 12 , 13 , 14 , 15 , 1 6 } ;
1190 a r r a y 3 = new int []{17 , 18 , 19 , 20 , 21 , 22 , 23 , 2 4 } ;
1191 a r r a y 4 = new int []{25 , 26 , 27 , 28 , 29 , 30 , 31 , 3 2 } ;
1192 a r r a y 5 = new int []{33 , 34 , 35 , 36 , 37 , 38 , 39 , 4 0 } ;
1193 a r r a y 6 = new int []{41 , 42 , 43 , 44 , 45 , 46 , 47 , 4 8 } ;
1194 a r r a y 7 = new int []{49 , 50 , 51 , 52 , 53 , 54 , 55 , 5 6 } ;
1195 a r r a y 8 = new int []{57 , 58 , 59 , 60 , 61 , 62 , 63 , mute , -1};
1196
1197 a r r a y = new int [ 1 0 0 ] ;
1198 r e s t = new int [ m u t e _ d u r ];
1199 for ( int i =0; i < m u t e _ d u r ; i ++)
1200 {
1201 r e s t [ i ]= m u t e ;
1202 }
1203
1204 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1205 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();
1206 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1207 a r r a y = a r r a y . C o n c a t ( a r r a y 3 ). T o A r r a y ();
1208 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1209 a r r a y = a r r a y . C o n c a t ( a r r a y 4 ). T o A r r a y ();
1210 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1211 a r r a y = a r r a y . C o n c a t ( a r r a y 5 ). T o A r r a y ();
1212 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1213 a r r a y = a r r a y . C o n c a t ( a r r a y 6 ). T o A r r a y ();
1214 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1215 a r r a y = a r r a y . C o n c a t ( a r r a y 7 ). T o A r r a y ();
1216 a r r a y = a r r a y . C o n c a t ( r e s t ). T o A r r a y ();
1217 a r r a y = a r r a y . C o n c a t ( a r r a y 8 ). T o A r r a y ();
1218
1219 t i m e r 1 . I n t e r v a l = i n t e r v a l _ v a l ;
1220 t i m e r 1 . E n a b l e d = t r u e ;
1221 }
1222
1223 // 縦 線
1224 if ( e . K e y C o d e == K e y s . D3 )
1225 {
1226 a r r a y 1 = new int []{ mute , 1 , 9 , 17 , 25 , 33 , 41 , 49 , 5 7 } ;
1227 a r r a y 2 = new int []{2 , 10 , 18 , 26 , 34 , 42 , 50 , 5 8 } ;
1228 a r r a y 3 = new int []{3 , 11 , 19 , 27 , 35 , 43 , 51 , 5 9 } ;
1229 a r r a y 4 = new int []{4 , 12 , 20 , 28 , 36 , 44 , 52 , 6 0 } ;
1230 a r r a y 5 = new int []{5 , 13 , 21 , 29 , 37 , 45 , 53 , 6 1 } ;
1231 a r r a y 6 = new int []{6 , 14 , 22 , 30 , 38 , 46 , 54 , 6 2 } ;
1232 a r r a y 7 = new int []{7 , 15 , 23 , 31 , 39 , 47 , 55 , 6 3 } ;
1233 a r r a y 8 = new int []{8 , 16 , 24 , 32 , 40 , 48 , 56 , mute , -1};
1234
1235 a r r a y = new int [ 1 0 0 ] ;
1236 r e s t = new int [ m u t e _ d u r ];
1237 for ( int i =0; i < m u t e _ d u r ; i ++)
1238 {
1239 r e s t [ i ]= m u t e ;
1240 }
1241
1242 a r r a y = a r r a y 1 . C o n c a t ( r e s t ). T o A r r a y ();
1243 a r r a y = a r r a y . C o n c a t ( a r r a y 2 ). T o A r r a y ();