Wiki source code of DirectSound.txt

Last modified by John Stroy on 2012/11/25 04:44

Show last authors
1 = Notes =
2 Translation: via Google [[in English>>DirectSound\.en\.txt]]
3
4 = Contents =
5 {{{
6 ☆☆☆ DirectSound系 ☆☆☆
7 WAVEファイルの再生を行います。
8 また、OGGファイルの再生をすることもできます。
9
10 ☆☆☆
11 DSINIT 引数なし
12
13 戻り値(stat)
14 成功:1 or DS_OK
15 失敗:0 or DS_ERR
16
17 機能
18 DirectSoundを初期化します。HMMINITで初期化した場合は呼ばなくても結構です。
19        明確的に初期化したいときに呼んでください。
20
21
22 ☆☆☆
23 DSEND 引数なし
24
25 戻り値(stat)
26 必ず1が返ってくる。
27
28 機能
29 DirectSoundを終了します。
30
31
32 ☆☆☆
33 DSLOADFNAME p1, p2, p3, p4
34
35 引数
36 p1:ファイル名
37 p2:バッファ番号(0から1023までの値) 省略時0
38 p3:ファイルのシーク位置 省略時0
39 p4は0を指定するとウィンドウがアクティブではない時は音が鳴らないようにします。
40       1を指定するとウィンドウの状態にかかわらず音が鳴るようにします。
41
42 戻り値(stat)
43 成功:1 or DS_OK
44 失敗:0 or DS_ERR
45
46 機能
47 p1で指定されたファイル名のWAVEファイルを、p3の位置から、p2のバッファに読み込みます。
48
49 使用例)hmminit 1 ;DirectSoundを初期化する
50 dsloadfname "wave.wav", 10 ;バッファ10番にファイルの最初からロード
51
52
53 ☆☆☆
54 DSLOADFNAME2 p1, p2, p3, p4
55
56 引数
57 p1:ファイル名
58 p2:シーク位置 省略時0
59 p3:バッファーのサイズ 省略時2
60 p4は0を指定するとウィンドウがアクティブではない時は音が鳴らないようにします。
61       1を指定するとウィンドウの状態にかかわらず音が鳴るようにします。
62
63 戻り値(stat)
64 成功:1 or DS_OK
65 失敗:0 or DS_ERR
66
67 機能
68 ストリーム再生させたいp1で指定されたファイル名のWAVEファイルを、p2の位置から、1024番のバッファに読み込みます。
69     p3は何秒間のストリームバッファを作るか。
70     p3は、WAVEファイルを何秒間で分割するかということです。
71
72 使用例)hmminit 1
73 fname = "stream.wav" ;このWAVEファイルを5分の長さ
74 dsloadfname2 "stream.wav", 0, 4 ;バッファ1024番に4秒毎に読み込みさせる。
75 dsplay 1024 ;再生。1024番はストリーム専用のバッファです。
76
77
78 ☆☆☆
79 DSLOADMEMORY p1, p2, p3
80
81 引数
82 p1:WAVEのデータ
83 p2:バッファ番号(0から1023までの値) 省略時0
84 p3は0を指定するとウィンドウがアクティブではない時は音が鳴らないようにします。
85       1を指定するとウィンドウの状態にかかわらず音が鳴るようにします。
86
87 戻り値(stat)
88 成功:1 or DS_OK
89 失敗:0 or DS_ERR
90
91 機能
92 p1のWAVEデータをp2のバッファにロード
93
94 使用例)hmminit 1
95 fname = "wave.wav"
96 exist fname
97 wavesize = strsize
98 sdim wavebuf, wavesize
99 bload fname, wavebuf, wavesize
100 dsloadmemory wavebuf, 0
101
102 ☆☆☆
103 DSOGGLOADFNAME p1, p2, p3
104
105 引数
106 p1:ファイル名
107 p2:バッファ番号(0から1023までの値) 省略時0
108 p3:ウィンドウのアクティブ状態での再生フラグ 省略時0
109
110 戻り値(stat)
111 成功:1 or DS_OK
112 失敗:0 or DS_ERR
113
114 機能
115 p1で指定されたファイル名のOGGファイルを、p2のバッファに読み込みます。
116 p3は0を指定するとウィンドウがアクティブではない時は音が鳴らないようにします。
117       1を指定するとウィンドウの状態にかかわらず音が鳴るようにします。
118 DSPLAY命令で再生することができます。
119
120 この命令は、読み込みが完了するまで、次の命令に進まなくなります。
121 大きいファイルを再生することで、リアルタイムな画面更新に影響が出て不都合がある場合は
122 この命令の変わりに、DSOGGLOADFNAMETHREAD命令の方を使用すると、改善される可能性があります。
123
124
125 ☆☆☆
126 DSOGGLOADFNAMETHREAD p1, p2, p3
127
128 引数
129 p1:ファイル名
130 p2:バッファ番号(0から1023までの値) 省略時0
131 p3:ウィンドウのアクティブ状態での再生フラグ 省略時0
132
133 戻り値(stat)
134 成功:1 or DS_OK
135 失敗:0 or DS_ERR
136
137 機能
138 p1で指定されたファイル名のOGGファイルを、p2のバッファに読み込みます。
139 p3は0を指定するとウィンドウがアクティブではない時は音が鳴らないようにします。
140       1を指定するとウィンドウの状態にかかわらず音が鳴るようにします。
141 DSPLAY命令で再生することができます。
142
143 この命令は読み込みの完了などにかかわらず、即座に次の命令に進みます。
144 読み込みが完了したか調べる場合は、DSOGGLOADINGCHECK命令を使用します。
145
146
147 ☆☆☆
148 DSOGGLOADINGCHECK p1
149
150 引数
151 p1:バッファ番号(0から1023までの値) 省略時0
152
153 機能
154 p1で指定されたバッファにOGGファイルが読み込み中かどうかを調べます。
155
156 戻り値(stat)
157 読み込み中:1
158 読み込み終了:0
159
160
161 ☆☆☆
162 DSPLAY p1, p2
163
164 引数
165 p1:バッファ番号(0から1024までの値)
166 p2:ループフラグ 省略時0
167 0の時はループしない
168   1の時はループする
169
170 戻り値(stat)
171 成功:1 or DS_OK
172 失敗:0 or DS_ERR
173
174 機能
175 p1のバッファを再生させる。
176
177 使用例)hmminit 1
178 dsloadfname "wave.wav", 0
179 dsplay 0
180
181
182 ☆☆☆
183 DSSTOP p1
184
185 引数
186 p1:バッファ番号(0から1024までの値)
187
188 戻り値(stat)
189 成功:1 or DS_OK
190 失敗:0 or DS_ERR
191
192 機能
193 p1のバッファの再生を止める。
194
195
196 ☆☆☆
197 DSRELEASE p1
198
199 引数
200 p1:バッファ番号(0から1024までの値)
201
202 戻り値(stat)
203 成功:1 or DS_OK
204 失敗:0 or DS_ERR
205
206 機能
207 p1のバッファを解放する。
208 2度と使わないwavを持っているのはメモリの無駄なので解放したほうが無難でしょう。
209
210
211 ☆☆☆
212 DSSETVOLUME p1, p2
213
214 引数
215 p1:バッファ番号(0から1024)
216 p2:音量(0から100)
217 0の時、音量最小
218      100の時、音量最大
219
220 戻り値(stat)
221 成功:1 or DS_OK
222 失敗:0 or DS_ERR
223
224 機能
225 p1のバッファの音量を変更する。
226
227
228 ☆☆☆
229 DSGETVOLUME p1
230
231 引数
232 p1:バッファ番号(0から1024)
233
234 戻り値(stat)
235 音量が返る。
236
237 機能
238 p1のバッファの音量を調べる。
239
240
241 ☆☆☆
242 DSSETMASTERVOLUME p1
243
244 引数
245 p1:音量(0から100)
246
247 戻り値(stat)
248 成功:1 or DS_OK
249 失敗:0 or DS_ERR
250
251 機能
252 WAVEのマスターの音量を変えます。
253 ※これで音量を変えるとアクセサリ->エンターテイメント->ボリュームコントロールのWAVEの所が変動します。
254
255
256 ☆☆☆
257 DSGETMASTERVOLUME 引数なし
258
259 戻り値(stat)
260 成功:取得した音量
261 失敗:0 or DS_ERR
262 ※失敗したときと、音量が0の時は同じ値が返るので注意してください。
263
264 機能
265 WAVEのマスターの音量を取得する。
266
267
268 ☆☆☆
269 DSSETMASTERFORMAT p1, p2, p3
270
271 引数
272 p1:チャンネル数
273 p2:サンプリングレート
274 p3:ビット数
275
276 戻り値(stat)
277 成功:1 or DS_OK
278 失敗:0 or DS_ERR
279
280 機能
281 WAVEマスターの音質を設定します。
282 チャンネル数はステレオだったら2、モノラルだったら1
283 サンプリングレートは11.025kHzなら11025、22.05kHzなら22050、44.1kHzなら44100
284 1サンプルあたりのビット数、8か16
285 ちなみに初期設定は2,44100,16です。
286 で、何でこんなのがあるかというと、音質やCPUパワーなどに合わせて変更できるほうが便利だからです。
287 鳴らしたいwavファイルと基本音質の設定が違うとミキシングする時にCPUパワーを食いやすいです。
288 といってもそれほど気にするほどのものでもないと思います。
289
290
291 ☆☆☆
292 DSCHECKPLAY p1
293
294 引数
295 p1:バッファ番号(0から1024)
296
297 戻り値(stat)
298 再生中:1 or DS_OK
299 停止中:0 or DS_ERR
300
301 機能
302 p1のバッファが再生されているかチェックする。
303
304 使用例)
305 hmminit 1
306 dsloadfname "wave.wav", 0
307 dsplay 0
308
309 *@
310 await 10
311 dscheckplay 0
312 if stat == DS_OK : goto *@b
313
314 dialog "再生が終了しました"
315 end
316
317
318 ☆☆☆
319 DSDUPLICATE p1, p2
320
321 引数
322 p1:コピー先バッファ番号(0から1023までの値)
323 p2:コピー元バッファ番号(0から1023までの値)
324
325 戻り値(stat)
326 成功:1 or DS_OK
327 失敗:0 or DS_ERR
328
329 機能
330 コピー元バッファー番号と同じ状態のものを、コピー先バッファー番号につくります。
331 DIRECTSOUNDの仕様上、同じ音でも重ね合わせる場合は2個バッファーを作成しなければならないのです。
332 しかし、それはメモリの無駄なので1つのメモリで共有させることができます。
333
334 使用例
335 hmminit 1
336 dsloadfname "wave.wav", 0
337 dsduplicate 1, 0
338 dsplay 1
339 stop
340
341 }}}