SmileSound 蒸気サウンドのベータテスト

要望の多かったSmileSoundでの蒸気サウンド機能をDSSP20230416およびファームウェア20230416に追加し、テスト対象として8620サウンドデータおよびC58サウンドデータ9600サウンドデータを作成しました。これは正式版ではなく、蒸気サウンド機能の動作チェック用であり、大きな機能変更を行う場合があります。

ベータテストでは、実際に手を動かして動作確認を頂き、どのように改善すべきかを提言いただくことを希望いたしますので、よろしくお願いいたします。

  • 走り出しに動輪と音を合わせたい→CV57で調整。CV57で設定した値[ms(ミリ秒)]の10倍の値が反映されます。現在は足すことしかできません。
  • 中間速度での音の出方が不明(現在、3乗で補完するように調整。)
  • HISSというのが良く分からないがパシフィック様の中身をまねて実装。
  • その他、不足や勘違いしている箇所の指摘
  • サウンドの制御周期が50msなので、もしかすると音が少しずれる原因になっているかもしれない。

弊社へのフィードバックはデジタル鉄道模型フォーラムにお願いいたします。

今回、追加した機能項目を以下に挙げます。

追加項目説明
stmコマンド4つあるスロットに、蒸気音を当てはめる機能
stmcコマンドstmコマンドで指定した蒸気音を全てクリア
stmsコマンド走り始めの時の蒸気音の時間間隔[ms]と、最高速度時の時間間隔[ms]を設定する機能
CV57走り始めの時の蒸気音の時間間隔を調整するCVです。設定した値の10倍の数値が足されます。1を入れると10msが足されます。
CV58最高速度時の時間間隔[ms]を調整するCVです。設定した値の1倍の数値が足されます。1を入れると1msが足されます。

蒸気音を出す仕組み(現状仕様)

低速時、音を出す間隔を長くし、高速時には音を出す間隔を短くすることで、上記のシュポシュポという音を再現しています。しかし、直線的に間隔を縮めると、低速時に急激に音の変わり方が激しくなります。そこで、下記のオレンジ色の線を描くように補間処理を行って、スムーズに音の間隔が短くなるように調整しております。この調整具合も、今回のテストの対象となります。

4つの音を、順番に鳴らしますが、2つのチャンネルを組み合わせ、交互に再生させています。この動きが特殊なため、ファームウェアで専用の機能を実装しています。0→1や1→2等に動く時間間隔は、上記の速度~蒸気音再生間隔[ms(ミリ秒)]で制御しています。ファイル名は後述するstmコマンドで指定しますので、わかりやすいように任意の名前を付けるとよいでしょう。また、音はサウンドフロー上で走行中に変更できるため、低速時のシュポシュポの音、高速時のシュポシュポの音をstmコマンドで切り替えることもできます。

実際にシュポシュポの音を制御しているのは、「蒸気_Drive.csv」というサウンドフローです。赤枠で囲った部分が、今回追加した新しいコマンドです。シュポシュポの音を速度に合わせて自動調整する機能をファームウェアに搭載しています。

DESKTOPSTATION,SOUNDLOW,SMILESOUND
label,START,,
if,fnc==0,START,
call,発電機.csv,1,
call,HISS.csv,1,
call,neji_cp.csv,0,
stms,1,800,
stms,2,50,
label,NO_SPEED,,
if,spd>0,A_SPEED,
if,fnc==0,END,
goto,NO_SPEED,,
label,A_SPEED,,
stm,A-01.wav,0,0
stm,A-02.wav,1,0
stm,A-03.wav,2,0
stm,A-04.wav,3,0
label,A_SPEED_WAIT,,
wait,50,,
if,acc<-1,GENSOKU, if,spd>30,B_SPEED,A_SPEED_WAIT
label,B_SPEED,,
stm,B-01.wav,0,0
stm,B-02.wav,1,0
stm,B-03.wav,2,0
stm,B-04.wav,3,0
label,B_SPEED_WAIT,,
wait,50,,
if,spd<=30,A_SPEED, if,acc<-1,GENSOKU, if,spd>80,C_SPEED,B_SPEED_WAIT
label,C_SPEED,,
stm,C-01.wav,0,0
stm,C-02.wav,1,0
stm,C-03.wav,2,0
stm,C-04.wav,3,0
label,C_SPEED_WAIT,,
wait,50,,
if,spd<=30,B_SPEED, if,spd>130,D_SPEED,C_SPEED_WAIT
label,D_SPEED,,
stm,D-01.wav,0,0
stm,D-02.wav,1,0
stm,D-03.wav,2,0
stm,D-04.wav,3,0
label,D_SPEED_WAIT,,
if,spd<=30,C_SPEED, wait,50,, goto,D_SPEED_WAIT,, label,GENSOKU,, if,spd>20,GENSOKU,
if,ref==0,BSKEEL,
if,acc<-1,GENSOKU,A_SPEED_WAIT label,BSKEEL,, call,bskeel.csv,0, label,WAIT_STOP,, wait,100,, if,spd>0,WAIT_STOP,
goto,NO_SPEED,,
label,END,,
if,fnc==1,END,
stop
,,,
ret,,,

蒸気_Drive.csv
タイトルとURLをコピーしました