パスワードを忘れた? アカウント作成
2087626 journal
日記

akiraaniの日記: プチコンmk-IIのTALK文のピッチデータについて

日記 by akiraani

プチコンmk-IIを購入したのでちょっと遊んでました。まずは目玉の一つであるtalk文で。
リファレンスによれば、TALK文は@Nnでピッチを変えることができる。
nは0~3500の数値で音階目安は

C3=@N1447
C#3=@N1510
D3=@N1559
 :
C4=@N2137

となっている。
で、この値だけど、グラフにプロットして確認してみると、音階に対して一次関数的に動いているようだけど、どういうわけか上がり幅が一定ではない。
で、ちょっとエクセルでむにゃむにゃして一次関数の最小二乗法の関数(LINESET関数)を使って傾きを調べた結果、半音で58、1オクターブで696増加していると計算するとだいたいつじつまが合うことが判明。
この場合基点はB0が0でC1が58C#1が116……と上がっていく。

と思われる。値に揺らぎがあるのは再生方式とかでなんか理由があるものと思われますがよくわかりません。

ちなみに、@Tnで音の長さが変わります。実測してないので確かなことは言えませんが、多分これフレーム数そのままですな。BPMと互換の式を作ることも不可能ではないけど、プログラム的には気持ち悪いからBPMで指定するのはあきらめた方がよさげ。

ここまでわかれば、あとは既存の楽曲をコンバートしてプチコンにうたわせることが可能なはず。

文字列変数は255文字が限界で、引数で取れるのは2つの文字列変数までの模様。リファレンス上はたくさん指定できるように書いて歩けど、長すぎると3つ指定したらIllegal function callになるっぽい。合計の文字列そのものに限界がある模様
TALK文の実行から再生開始までは10フレーム程度のラグがある模様
TALKCHK文で終了まで待ち合わせると、実際の音声発生終了よりだいぶ長く待ちが入る。
無視して次のTALK文を実行すると、実行中のTALK文がぶった切られて再生が始まる
@Tがフレーム数かどうかを調べようとしたが、TALKCHK文があんな調子なのでわかりにくい。現状調べてみた限りだと、音の長さに比例しているようだが、単純にフレーム数というわけでもない?

というわけで、TALK文に歌わせるのはちょっと難しそうだ。ただ、二次開局であれば不可能ではないと思うのでチャレンジは継続させていきたい。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

アレゲはアレゲを呼ぶ -- ある傍観者

読み込み中...