ユーザ用ツール


reference:サウンド

サウンド

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

単純な警告音・効果音の発生

引数

効果音番号

鳴らす音の種類

効果音番号 説明
0~155 プリセット音
256~383 BGM音源

省略時: 0

音程

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

音量

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

パンポット

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

BEEP 3

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

単純な警告音・効果音の発生

引数

効果音番号

鳴らす音の種類

効果音番号 説明
0~155 プリセット音
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~45)
・ユーザー定義(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文字列

ユーザー定義音楽の事前定義

引数

ユーザー定義曲番号

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

MML文字列

コマンドの文字列

BGMSET 128,"CDEFG" 

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

MMLでのユーザー定義曲の事前定義

・DATA命令を利用してMMLを内部に登録(DATA "CDEFGAB")
・DATAの終端は数値で判断(DATA 0)
・内部的にはRESTOREと同じ扱い
・BGMSETD後にREADする場合はRESTOREを使うこと

引数

ユーザー定義曲番号

ユーザー定義曲番号: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 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(負の値を指定すると位相が逆になる)

PCMVOL 16384

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

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

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

引数

バランス

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

フェード時間

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

SNDMSBAL 0,3.5

SNDMSBAL(バランス)

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

返値

現在のバランス

B=SNDMSBAL()

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(値が大きくなるほど早い)

定義文字列

"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(値が大きくなるほど早い)

配列

波形が格納された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 楽器番号,アタック,ディケイ,サスティン,リリース,配列,基準音程,ループ先頭,ループ終端,サンプル周波数[,オフセット]

楽器音の波形設定

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

引数

楽器番号

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

アタック

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

ディケイ

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

サスティン

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

リリース

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

配列

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

基準音程

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

ループ先頭

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

ループ終端

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

サンプル周波数

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

オフセット

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

DIM W[2048]
WAVSETA 224,127,0,0,127,W,69,1024,2047,44100,0
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()

reference/サウンド.txt · 最終更新: 2019/06/14 20:07 (外部編集)

ページ用ツール