サウンド

BEEP [効果音番号[,[音程][,[音量][,[パンポット]]]]]

単純な警告音・効果音を再生する

引数

効果音番号

鳴らす音の種類

効果音番号 説明
0~156 プリセット音
224~255 ユーザ波形
256~383 BGM音源

・省略時は0。

音程

音程の値: -32768~32767 (100で半音)
・省略時は0。

音量

再生する音量: 0~127
・省略時は64。

パンポット

パンポット: 0(左)~64(中央)~127(右)
・省略時は64。

BEEP 3

BEEP([効果音番号[,[音程][,[音量][,[パンポット]]]]])

単純な警告音・効果音を再生する

引数

効果音番号

鳴らす音の種類

効果音番号 説明
0~156 プリセット音
224~255 ユーザ波形
256~383 BGM音源

・省略時は0。

音程

音程の値: -32768~32767 (100で半音)
・省略時は0。

音量

再生する音量: 0~127
・省略時は64。

パンポット

パンポット: 0(左)~64(中央)~127(右)
・省略時は64。

返値

ハンドル

発音後の停止・音量・ピッチ・パンポットを操作するためのハンドル:0~15

H=BEEP(152)

BEEPPAN ハンドル,パンポット

効果音のパンポットを変化させる

引数

ハンドル

BEEP命令を実行して取得したハンドル

パンポット

変化させるパンポットの値:0(左)~64(中央)~127(右)

H=BEEP(152)
WAIT 60
BEEPPAN H,0

BEEPPIT ハンドル,ピッチ

効果音の音程を変化させる

引数

ハンドル

BEEP命令を実行して取得したハンドル

ピッチ

変化させる音程の値:-32768~32767
・100で半音。

H=BEEP(152)
WAIT 60
BEEPPIT H,1200

BEEPSTOP [ハンドル[,フェード時間]]

効果音を停止する

引数

ハンドル

BEEP命令を実行して取得したハンドル
・省略時は全効果音を停止する。

フェード時間

秒で指定する
・実数での指定が可能。
・0で即時停止する。
・省略時は0。

BEEPSTOP

H=BEEP(152)
WAIT 60
BEEPSTOP H

BEEPVOL ハンドル,音量

効果音の音量を変化させる

引数

ハンドル

BEEP命令を実行して取得したハンドル

音量

変化させる音量の値: 0~127

H=BEEP(152)
WAIT 60
BEEPVOL H,16

BGMCLEAR [ユーザー定義曲番号]

ユーザー定義音楽を消去する

引数

ユーザー定義曲番号

曲番号:128~255
・省略時はすべての定義を消去する。

BGMCLEAR

BGMCONT [トラック番号[,フェード時間]]

一時停止中の音楽再生を再開する

・一時停止にはBGMPAUSEを利用。

引数

トラック番号

再生するトラック番号:0~15
・省略時は全トラックを再開させる。

フェード時間

秒で指定する
・実数での指定が可能。
・0で即時再開する。
・省略時は0。

BGMCONT

BGMPITCH [トラック番号,]ピッチ

再生している音楽の基準音程を変化させる

引数

トラック番号

対象のトラック番号: 0~15
・省略時は全トラックが対象。

ピッチ

変化させる音程の値:-32768~32767
・100で半音。

BGMPITCH 0,100

BGMPLAY [トラック番号,]曲番号[,音量][,フェード時間]

指定した曲の再生を開始する

引数

トラック番号

再生するトラック番号:0~15
・省略時は0。

曲番号

・プリセット音源(0~73)。
・ユーザー定義(128~255)。

音量

・再生する音量:0~127。

フェード時間

・フェードインする時間: 0~32767 秒。

BGMPLAY 128

BGMPLAY MML文字列

指定したMMLデータの再生を開始する

・MMLによる再生はトラック0で行われる。
・ユーザー定義曲番号255がMMLによる曲に書き換わる。

引数

MML文字列

コマンドの文字列

BGMPLAY "T120O4L4CC8D8EE8F8GA8G8E2" 

BGMPAUSE [トラック番号[,フェード時間]]

音楽再生を一時停止する

・再開にはBGMCONTを利用する。

引数

トラック番号

再生するトラック番号:0~15
・省略時は全トラック停止させる。

フェード時間

秒で指定する
・実数での指定が可能。
・0で即時停止。
・省略時は0。

BGMPAUSE

BGMSET ユーザー定義曲番号,MML文字列

ユーザー定義音楽を定義する

・定義した音楽はBGMPLAYで再生可能。

引数

ユーザー定義曲番号

ユーザ定義曲番号:128~255

MML文字列

コマンドの文字列

BGMSET 128,"CDEFG" 

BGMSETD ユーザー定義曲番号,@ラベル文字列

ユーザー定義音楽を事前定義する

・定義した音楽はBGMPLAYで再生可能。
・DATA命令を利用してMMLを内部に登録(DATA "CDEFGAB")。
・DATAの終端には数値の0を定義しておくこと。

引数

ユーザー定義曲番号

ユーザー定義曲番号:128~255

@ラベル文字列

DATAでMML文字列が登録されたラベルまたはラベル文字列

BGMSETD 128,"@MMLTOP" 

BGMSTOP [トラック番号[,フェード時間]]

音楽再生を停止する

引数

トラック番号

対象のトラック番号:0~15
・省略時は全トラック停止する。

フェード時間

秒で指定する
・実数での指定が可能。
・0で即時停止。
・省略時は0。

BGMSTOP

BGMVAR トラック番号,変数番号,値
BGMVAR トラック番号,変数番号 OUT 変数

BGMトラック変数の値を設定・取得する

引数

トラック番号

トラック番号:0~15

変数番号

値を設定・取得する変数の番号:0~7

返値

取得した変数の値

BGMVAR 0,1,2
V=BGMVAR(0,1)

BGMVOL [トラック番号,]音量

指定トラックの音量を設定する

引数

トラック番号

再生するトラック番号:0~15
・省略時は0。

音量

設定する音量:0~127

BGMVOL 0,64

BGMWET [トラック番号,]ウェット

指定トラックのエフェクタ効果量を設定する

・エフェクタがOFFの時は音量が変化する。エフェクタをONにして使用のこと。

引数

トラック番号

設定するトラック番号:0~15
・省略時は0。

ウェット

設定するエフェクタ効果量:0(ドライ)~127(ウェット)

BGMWET 0,64

EFCEN 状態
EFCEN OUT 変数

エフェクタの状態を設定・取得する

引数

状態

0 #EFCOFF OFF
1 #EFCON ON

返値

0: OFF
1: ON

EFCEN 0
S=EFCEN()

EFCSET プリセット番号

エフェクタを設定する(プリセット指定)

引数

プリセット番号

0 #EFCOFF OFF
1 #EFCBATH 風呂
2 #EFCCAVE 洞窟
3 #EFCSPACE 宇宙

EFCSET #EFCSPACE

EFCSET 反射音モード,反射音音量,反射音時間,残響音モード,残響音音量,残響音時間,高音減衰率,残響音音色,入力音量

エフェクタを設定する(詳細設定)

引数

反射音モード

0 #EFCREFSROOM 小さい部屋
1 #EFCREFLROOM 大きい部屋
2 #EFCREFHALL ホール
3 #EFCREFCAVE 洞窟
4 #EFCREFNONE 反射音なし

反射音音量

反射音の音量:0.0~1.0

反射音時間

反射音が減衰する時間:0~300(ミリ秒)

残響音モード

0 #EFCREVROOM 部屋
1 #EFCREVHALL ホール
2 #EFCREVMETAL 金属製の回廊
3 #EFCREVCAVE 洞窟
4 #EFCREVREV リバーブ

残響音音量

残響音の音量:0.0~1.0

残響音時間

残響音の減衰時間:100~20000(ミリ秒)

高音減衰率

残響音の高音の減衰率:0.1~1.0(値が小さいほど急速に高音が減衰する)

残響音音色

残響音の音色パラメータ:0.0~1.0

入力音量

エフェクタの入力音量:0.0~1.0

EFCSET #EFCREFSROOM,1,100,#EFCREVROOM,1,20000,1,0.01,0.5

EFCWET BEEPウェット,BGMウェット,TALKウェット,PCMウェット

エフェクタのウェットを設定する

・エフェクタがOFFの時は音量が変化する。エフェクタをONにして使用のこと。

引数

BEEPウエット

BEEPに対するエフェクタの効果:0(ドライ)~127(ウェット)

BGMウエット

BGMPLAYに対するエフェクタの効果:0(ドライ)~127(ウェット)

TALKウエット

TALKに対するエフェクタの効果:0(ドライ)~127(ウェット)

PCMウエット

PCMSTREAMに対するエフェクタの効果:0(ドライ)~127(ウェット)

EFCWET 64,64,64,64
EFCWET 0,0,127,0

PCMCONT

PCM再生を再開する

PCMCONT

PCMPOS 再生位置

PCM再生位置を設定する

・一定周期で行われるPCMデータの送出が次回はどの配列インデックスから行われるか設定する。

引数

再生位置

PCMSTREAMで指定した配列のインデックス

PCMPOS 1024

PCMPOS OUT 変数

PCM再生位置を取得する

・一定周期で行われるPCMデータの送出が次回はどの配列インデックスから行われるかを返す。

返値

PCMSTREAMで指定した配列のインデックス

PCMPOS OUT P

PCMSTOP

PCM再生を停止する

PCMSTOP

PCMSTREAM PCMデータ配列[,サンプリング周波数]

PCM再生を開始する

引数

PCMデータ配列

PCMデータが収容されている配列。1次元配列はモノラル、2次元配列はステレオ音声として再生される。
配列はリングバッファとして扱われ、再生しながら書き換えることが可能。

サンプリング周波数

再生するデータのサンプリング周波数(Hz):1~192000
・省略時は48000。

DIM PCMDATA[2,48000]
PCMSTREAM PCMDATA,48000

PCMSTREAM PCMデータ配列L,PCMデータ配列R[,サンプリング周波数]

PCM再生を開始する

引数

PCMデータ配列L

ステレオ音声の左側のPCMデータが収容されている配列。
配列はリングバッファとして扱われ、再生しながら書き換えることが可能。

PCMデータ配列R

ステレオ音声の右側のPCMデータが収容されている配列。
配列はリングバッファとして扱われ、再生しながら書き換えることが可能。

サンプリング周波数

再生するデータのサンプリング周波数(Hz):1~192000
・省略時は48000。

DIM PCML[48000],PCMR[48000]
PCMSTREAM PCML,PCMR,48000

PCMVOL チャンネル,音量[,サンプル数]

PCM音量を設定する

引数

チャンネル

音量を設定するチャンネルを指定

0 #PVLEFT
1 #PVRIGHT

音量

設定する音量:-32767~32767(負の値を指定すると位相が逆になる)

サンプル数

設定する音量になるまでの出力サンプル数
・省略時は0。

PCMVOL 0,0,48000

PCMVOL [チャンネル,]音量

PCM音量を設定する

引数

チャンネル

音量を設定するチャンネルを指定

0 #PVLEFT
1 #PVRIGHT

・省略時は両方。

音量

設定する音量:-32767~32767(負の値を指定すると位相が逆になる)

PCMVOL 16384

PCMVOL OUT 左音量[,右音量]

PCM音量を取得する

返値

左音量

現在の左チャンネル又はモノラル音量: -32767~32767

右音量

現在の右チャンネルの音量: -32767~32767

PCMVOL OUT L,R

RECCHK OUT 状態

RECSTARTによる録音の状態を取得

返値

録音完了/停止=0,録音中=1

RECSTART 10
WHILE RECCHK():WEND

RECDATA サンプル位置 OUT 左,右

RECSTARTで録音されたサンプル値を取り出す

引数

サンプル位置

0~RECLEN()-1

返値

左チャンネルのサンプル値

右チャンネルのサンプル値

RECSTART 10
WHILE RECCHK():WEND
FOR I=0 TO RECLEN()-1
  RECDATA I OUT L,R
NEXT

RECLEN()

RECSTARTで確保されたバッファのサンプル数を返す

返値

バッファのサンプル数

RECSTART 10
? RECLEN() '480000

RECPOS()

RECSTARTで録音される現在のサンプル位置を返す

返値

サンプル位置

RECSTART 10
WHILE RECCHK()
 ? RECPOS
WEND

RECSAVE 配列[,サンプル数][,サンプル位置]

RECSTARTで録音したサンプル値を配列に取り出す

引数

配列

1次元配列又は2次元配列を指定する。要素数は自動で調整される
1次元配列の時は左右のサンプルの平均値。2次元配列の時は[0,x]に左チャンネル、[1,x]に右チャンネルのサンプル値

サンプル数

取り出すサンプルの数
・省略時はRECPOS()と同じ値。

サンプル位置

サンプルを取り出す先頭位置
・省略時は0。

RECSTART 5
BGMPLAY 3
WHILE RECCHK():WEND
BGMSTOP
DIM BUF[2,1]
RECSAVE BUF
WAIT 60
PCMSTREAM BUF,48000
INPUT A$

RECSTART 時間

BEEP/BGMPLAY/TALKで再生されている音を録音

・サンプリング周波数48KHzで、引数で与えた時間のあいだ録音を行う。
・指定時間後に録音が停止する。
・途中で録音を停止したい時はRECSTOPを用いる。

引数

時間

録音する秒数 0.1~60

RECSTART 5
BGMPLAY 3
WHILE RECCHK():WEND
BGMSTOP
DIM BUF[2,1]
RECSAVE BUF
WAIT 60
PCMSTREAM BUF,48000
INPUT A$

RECSTART

BEEP/BGMPLAY/TALKで再生されている音を録音

・サンプリング周波数48KHzで録音する(時間無制限)。
・バッファは5秒間分用意される。
・録音を停止するときはRECSTOPを用いる。

LENGTH=48000/3
DIM BUF[2,LENGTH]
PCMSTREAM BUF,48000
PCMVOL 0,16384
PCMVOL 1,16384
RECSTART
BGMPLAY 1
PPOS=0
WPOS=0
LOOP
 NPOS=RECPOS()
 IF PPOS!=NPOS THEN
  FOR I=PPOS to NPOS-1
   RECDATA I OUT L,R
   BUF[0,WPOS]=L
   BUF[1,WPOS]=R
   WPOS=(WPOS+1) mod LENGTH
  NEXT
  PPOS=NPOS
 ENDIF
ENDLOOP

RECSTOP

RECSTARTによる録音を停止

RECSTART 10
WAIT 60*5
RECSTOP

SNDMSBAL バランス[,フェード時間]

メインインタプリタ/サブインタプリタの音量バランスを設定する

・サブプログラム内でのみ設定可能。

引数

バランス

設定するバランス:0(サブ側のみ)~64(メイン/サブ均等)~127(メイン側のみ)

フェード時間

設定したバランスになるまでの時間:0~32767(秒)

SNDMSBAL 0,3.5

SNDMSBAL OUT バランス

メインインタプリタ/サブインタプリタの音量バランスを取得する

返値

現在のバランス

SNDMSBAL OUT B

SNDMVOL 音量[,フェード時間]

サウンド全体の音量を設定する

・サブプログラムからの設定は無視される。

引数

音量

設定する音量: 0~127

フェード時間

設定した音量になるまでの時間:0~32767(秒)

SNDMVOL 0,1.5

SNDMVOL OUT 音量

サウンド全体の音量を取得する

返値

現在の音量(フェード中であれば指定した時間内で変化する)

V=SNDMVOL()

SNDSTOP

すべての音の発声を停止する

'BGM/BEEP/TALK
SNDSTOP

TALK 文字列

与えた文字列に従って音声合成を開始する

引数

ひらがな/カタカナ/句読点などの文字列 又は $ から始まる音素文字列

  a b d e f g h i j k m n o p q(ん) r s t u w y z
  by ch cl(っ:はねる音) dy gy hy ky my ny py sh ts
  #(0.1秒無音)

上記に加えて < で始まり > で終わる制御文字列

<S数値> スピード: 0(速)~1024(遅) 標準:128
<P数値> ピッチ: 0(高)~1024(低) 標準:128
<V数値> 音量: 0(小)~128(大) 標準:128

TALK "<S128>こんにちわ。わたしは、プチコンフォーです" 
TALK "$<S128>koqnichiwa######watashiwa##puchikoqfoodesu" 

TALKSTOP

音声合成を停止する

TALKSTOP

WAVSET 楽器番号,アタック,ディケイ,サスティン,リリース,定義文字列[,基準音程]

楽器音の波形を設定する

引数

楽器番号

波形を設定する楽器番号:224~255

アタック

音量が大きくなり最大になるまでの時間:0~127(値が大きくなるほど早い)

ディケイ

音量が最大値から小さくなり一定になるまでの時間:0~127(値が大きくなるほど早い)

サスティン

音を伸ばしている時の音量:0~127(値が大きくなるほど大きい)

リリース

音量が小さくなって0になるまでの時間:0~127(値が大きくなるほど早い)
・リリースを0にするとBGMSTOPで再生音が停止できなくなるが、SNDSTOP命令で強制停止ができる。

定義文字列

"00"~"FF" を8ビットの1サンプルとして連続して記述(128が減算され -128~127 の値として扱われる)
16,32,64,128,256,512サンプルで指定

基準音程

定義した波形の音程のノート番号を指定。
・省略時は69("O4A":オクターブ4のラ)。

WAVSET 224,127,0,0,127,"FF00"*8,69
BGMPLAY "@224O4A1" 

WAVSETA 楽器番号,アタック,ディケイ,サスティン,リリース,配列[,基準音程][,波形先頭][,波形終端]

楽器音の波形を設定する

・3号互換モード。
・サンプル長と基準音程によっては正しい音程が出ないことがある。

引数

楽器番号

波形を設定する楽器番号:224~255

アタック

音量が大きくなり最大になるまでの時間:0~127(値が大きくなるほど早い)

ディケイ

音量が最大値から小さくなり一定になるまでの時間:0~127 (値が大きくなるほど早い)

サスティン

音を伸ばしている時の音量:0~127(値が大きくなるほど大きい)

リリース

音量が小さくなって0になるまでの時間:0~127(値が大きくなるほど早い)
・リリースを0にするとBGMSTOPで再生音が停止できなくなるが、SNDSTOP命令で強制停止ができる。

配列

波形が格納された1次元配列
・1要素を8ビットの1サンプルとして扱う。(128が減算され -128~127 の値として扱われる)

基準音程

定義した波形の音程のノート番号を指定。
・省略時は69("O4A":オクターブ4のラ)。

波形先頭

波形の先頭位置のインデックスを指定。
・省略時は0。

波形終端

波形の終端位置のインデックスを指定。
・省略時は配列の末尾。

DIM W[2048]
WAVSETA 224,127,0,0,127,W,69,0,2047
BGMPLAY "@224O4A1" 

WAVSETA 楽器番号,アタック,ディケイ,サスティン,リリース,配列,基準音程,ループ先頭,ループ終端,サンプル周波数[,オフセット][,BEEPループフラグ]

楽器音の波形を設定する

・サウンドのメモリ容量が許す限りの長さの波形を収容可能(サンプル周波数 48000Hz で 80秒程度)。
・ループ設定、サンプル周波数の指定が可能。
・サンプル長と基準音程、サンプル周波数によっては正しい音程が出ないことがある。

引数

楽器番号

波形を設定する楽器番号:224~255

アタック

音量が大きくなり最大になるまでの時間:0~127(値が大きくなるほど早い)

ディケイ

音量が最大値から小さくなり一定になるまでの時間:0~127 (値が大きくなるほど早い)

サスティン

音を伸ばしている時の音量:0~127(値が大きくなるほど大きい)

リリース

音量が小さくなって0になるまでの時間:0~127(値が大きくなるほど早い)
・リリースを0にするとBGMSTOPで再生音が停止できなくなるが、SNDSTOP命令で強制停止ができる。

配列

波形が格納された1次元配列
・1要素を符号付き16ビットの1サンプルとして扱う。

基準音程

定義した波形の音程のノート番号
・省略時は69("O4A":オクターブ4のラ)。

ループ先頭

波形のループ先頭位置のインデックス(オフセットが加味される)
・省略時は0。

ループ終端

波形のループ終端位置のインデックス(オフセットが加味される)
・省略時は配列の末尾。

サンプル周波数

波形のサンプル周波数(単位はHz): 1~96000。
・省略時は 28160。

オフセット

配列の参照開始位置のインデックス
・省略時は0。

BEEPループフラグ

波形をBEEPで再生したときにループするかを指定する
・省略時は0(ループしない)。

DIM W[2048]
WAVSETA 224,127,0,0,127,W,69,1024,2047,44100,0,#false
BGMPLAY "@224O4A1" 

BGMCHK [トラック番号] OUT 変数

指定したトラックの音楽の再生状態を返す

引数

トラック番号

再生状態を取得したいトラックの番号:0~15
・省略時は0。

返値

0:再生していない
1:再生中

R=BGMCHK(1)
PRINT R

CHKMML MML文字列 OUT 変数

MML文字列の内容が正常にMMLとして解釈できるかどうかを返す

引数

MML文字列

コマンドの文字列

返値

-1:正常
0:エラー(解釈エラーになった文字列位置)

R=CHKMML("T120O4L4CC8D8EE8F8GA8G8E2")
PRINT R

TALKCHK OUT 変数

音声合成の状態を調査する

返値

FALSE=停止中、TRUE=再生中

RET=TALKCHK()