SmileSound サウンドフロー最終!

悪戦苦闘を続けてきた SmileSound のサウンドフロー編集も、今回で一区切りに!

これまで段階的に調整を行ってきたが、結局目指していたのは

 「超低速域のタイミング」と「中高速域のタイミング」のバランスをどのようにとるのか?」

という点。


これまでの流れを再整理すると↓のようなトライ&エラーでした。

Step1:オリジナル状態

・よく出来ている。音をつけたい!という点であれば十分!

・とはいえ、加速/減速で音量差なしが気になる
・ドラフト音と動輪動作にズレがある
・特に低速域で周期の違和感が大きい


Step2:減速判定の導入

減速時専用の音量ファイルを用意し、サウンドフロー側で加減速判定を実装。

減速時は小音量ドラフト再生とすることで、走行感は大きく改善した。

完全絶気=無音状態の再現も考えてはみたが、サウンドフローファイルの上限(128アイテム=128指令という上限設定あり)があるため、ここは断念。


Step3:STMSパラメータ調整

次にSTMS多点化による精密同期をトライ。しかし、いろいろと課題があり、

・調整点の増加 = フローファイルの上限制限
・調整難易度 = 超低速<>低速<>中速<>… という各ステップの切り替えタイミングでのドラフト音間隔のずれを違和感のないレベルまで調整するのは困難

ということで、ある程度まで追い込めたものの採用は断念。


Step4:超低速域の固定周期化

そこで発想を「えいっ!」と転換。

超低速域では STMS を参照せず、ドラフト間隔を固定値とする方式へ変更した。

■ 始動直後4拍

STMS1:1200
STMS2:1200

最初の4拍は1200ms間隔で一定周期で安定再生。

つまり、動輪1回転で4800ms=4.8秒。
計算すると約4.12km/h相当の速度で走行を開始する状態を再現できる。


■ 4拍後の設定

ここからはSTMSの機能を使用して、モータ回転状況に応じてドラフト音間隔を自動調整してもらうことに。

4拍の再生が終了した段階で、STMSを以下のように設定しなおし。

STMS1:1000 > 約5km/h相当
STMS2:80 > 80 × 4 = 320ms/回転 → 約62km/h相当


おまけ:停止時および再始動処理

こまかな点の補足ではあるが、始動時の“固定周期ドラフト音設定”は、始動時だけでなく、

停止 → 再始動後も必ず同じフローを通るようサウンドフローファイルを再設計した。

・再始動時は必ず“4拍固定”から開始

というフローを追加して、再始動時も安定して、慎重さの漂うゆっくりとしたドラフト音の再現を行えた。


最後に

大分時間がかかってしまった SmileDecoder のサウンドフローのトライ。

100点満点とは言えないものの、それなりの設定ができた(と思うことにする)。

ESUなどSmileSoundに比べて高性能かつ倍以上のコストのかかるデコーダを使用すれば、完成度の高いサウンド表現もできるようではある。

完成度を高める!ということだけを目的とするのであればESU一択かもしれないが、自分の場合は

 ・初めてトライするSmileSoundを理解すること
 ・少しでもうまく工作すること
 ・できるように勉強すること自体が目的

まだまだ完璧な理解には至っていないものの、今回の調整は一旦ここまでとしようと思う。


しばらく停滞してしまっている本体の加工作業を再開し、出来たら暖かくなるころまでには走行できる状態まで持っていきたい。

その後は、

・中古D51の再生+DCC化
・こっそり購入済みのC62のディテールアップとDCC化
・中古で購入のラインゴルト客車のDCC室内灯化

やりたいと思っていることはいっぱい。
問題は時間とやる気。

ぼちぼち頑張っていこう。

サウンドフロー再設計の途中経過

(減速ラベル〜STMS検証、その先へ)

最近ブログ更新が止まっていました。

蒸気機関車のドラフト音と動輪・ロッドの動きを、できるだけ一致させることが目標ですが、DSSPに用意されているパラメータ調整で対応するには、技術的な限界も見えてきました。
「完璧な同期」を目指しているわけではありませんが、DSSPやサウンドフローを見ていると、

もう少し何とかできるのでは?

という感触もあり。

そこで現在は、ChatGPTに相談しつつサンプルフローの再設計を進めています。

一度手を入れ始めると想像以上に奥が深く、トライ&エラーの連続。

ブログ更新が止まっていた一番の理由は、サウンドフローの見直しトライに時間を取られていたためです。


■ 今回の再設計の本質

目標は大きく2つ。

  1. 加減速状態に応じたドラフト音ボリュームの制御

  2. ドラフト音と動輪動作タイミングのマッチング

どちらも「完璧」ではなく、「それらしく自然に聞こえること」が目的地です。


■ 悪戦苦闘の流れと、構造の変化

細かな試行錯誤は多数ありますが、構造の変化という観点で整理してみます。


1.出発点=オリジナル状態

オリジナルのフローは非常によく出来ています。

【オリジナル構造】

始動検出 → 速度段階判定 → ドラフト再生

 

基本は速度依存のみ。加速・減速の判定はありません。

ただし気になってきたのが、

・減速時も加速時と同じドラフト音
・超低速域の表現が単調
・動輪回転とドラフト音タイミングが完全には一致しない

という点でした。


2.減速判定の導入

2-1 減速専用ラベルの追加

まず着手したのは、減速時の音量抑制。

発想はシンプルで、

減速時だけ別ラベルへ分岐し、別音声を再生する

という方式。

 

【減速判定追加構造】

始動検出 → 減速判定 → 段階判定 → 再生

構造分離自体は比較的スムーズに実装できました。


2-2 3状態化(加速/惰行/減速)+ボリューム制御

さらに発展させ、

  • 音声ファイルは共通化

  • 状態に応じて再生ボリュームのみ変更

という方式も検討。

 

【3状態制御構造のフロー】

始動検出 → 加速/惰行/減速 判定 → ドラフト再生(音量制御)

 

メリットととしては以下の2点

  • 音声ファイル数削減

  • フロー行数節約

ここで音量制御は実現!こできるはずがこれも挫折。。

再生ボリュームをサウンドフロー内で個別調整はできない仕様。うむむむむ。


3.STMSによるタイミング調整

 ドラフト音の再生間隔は STMS という仕組みで制御されています。  
STMS1 では起動直後、STMS2 では最高速時のドラフト間隔を指定し、  
中間は速度に応じて線形に補間されるというシンプルな機能。

 

ただし、このシンプルさの影響で両端を合わせても、中間速度でズレが発生するというのが問題点。

原因として考えられるのが、

モータ特性が完全な線形ではないこと( 特に超低速時)

つまり、
線形補間では線形ではないモータの特性には物理的に追従できない。

「端を合わせると中央が狂う」状態です。

 この状態を自分なりに理解を進めると、↓のようなことが起こっているものと推定。

 

赤い線が電圧に対してのモータ回転=車両速度。起動直後=超低速時とそれ以降=中速運転時では、入力の電圧に対してのレスポンスに差がある。

仮にSTMS1を1000ms=初期ドリフト音1秒間隔 とすると、速度20以下ではズレが大きくなる=ドラフト音のほうが早すぎる

STMS1を1500msにすることで、速度20以下でも音と動作のズレは少なくなる、が、速度20を過ぎてからの音ズレ (ドラフト音が遅い)が顕著に発生する。

非線形のものを線形で補間はできない!が。ここまでのまとめ。

 


3-1 疑似多点設定トライ

非線形のモータ特性に合わせて追従するには、何らかの方法を考えなければいけない。

柔よく剛を制すの精神。

 

理想状態として考えたもの: 
 速度ごとに非線形で間隔設定したい。

 例:速度10で間隔1000ms 速度20で 間隔800 速度40で 間隔400 速度60で 間隔200。。。 といった非線形調整。 
 これができれば簡単に音と動作を一致させられる!と思ったがSmileSoundeではこの機能は実装なし。
 ということで早速挫折。

 

その後、疑似多点設定トライのために行ったのが、速度帯多段化。
 起動直後=超低速 /低速 /中速/高速の4段階に分離。
 各々の速度帯で、STMS1とSTMS2を再設定したらなんとかなるんじゃないか?というトライ。
 結果から行くとSmileDecoderではSTMSの設定変更は可能だが、どうしても速度帯変遷の際にドラフト音再生間隔のズレがめだってしまい、実装は断念。
 イメージでは↓のような調整ができないかとトライしたが、やはりスムースな速度帯の変遷の難易度が高くNG。 いや、もう少しやればもしかしたらなんとかなるかも。。。。ならないかも。。。

説明
 超低速から、高速の4段階にそれぞれSTMS1,2を設定、異なる傾斜のドラフト間隔/速度ライン(破線)を作成。
理屈的には、実車の速度似合わせ、ちょうどよいタイミングで超低速>低速>中速>高速のSTMS設定に切り替えれば違和感なくドラフト音のタイミング切り替えと調整ができる。はず。。なんだけどなぁ。
 

 


4.起動1拍目の独立化(現在検討中)

ここで発想を再度転換。

本物の蒸気機関車では、始動時は急激に蒸気を入れないはず。

最初の一拍目から2拍目には間があり、2拍目以降でそこから徐々に加速する状態を再現するだけでいい。

そこで考えているのが

1拍目のみ独立再生
2拍目以降はSTMS管理

という構造。

【1拍目独立構造】

始動検出 →  0.5秒後に1拍目再生 →  1秒後にSTMS設定 → 加速/惰行/減速 判定 → ドラフト再生

この方法であれば、1拍目から2拍目の長い間隔はSTMSの影響を受けずに固定値で設定できるはず。

で、今はこのフローを作成中。


■ 今回の再設計の本質

今回やっているのは、

「音を増やす」作業ではなく、

状態判定に基づいて音を制御する仕組みづくり

です。


■ 見えてきたこと

今回の見直しで明確になったのは、

・ラベル設計の重要性
・多段化の限界
・線形補間のクセ
・状態別ボリューム制御の可能性

まだ完成ではありません。

しばらく試行錯誤が続きそうですが、
ChatGPTの助けも借りながら、引き続き挑戦していきます。

なかなか終わりの見えない、SmileSoundサウンドフローの調整作業。

 

本日までの進捗を。

1.やっていること。

何をしているかというと。具体的には

①減速時のドラフト音のボリューム小化 > こっちは成功

②速度別のドラフトとロッド動作同期の改善 > 苦戦中

という状況。

いかに本日までの悪戦苦闘のまとめを。

 

2.なぜ減速時もドラフト音が大きいのか?

 まずは、減速中でもドラフト音がおおきい問題について。

加速時も減速時もドラフト音のボリュームが同じというのは、オリジナルのサウンドフローでは加速時と減速時の判別が行われていないことが理由。

さっそくサウンドフローを開いて斜め読み。当然すぐに100%の理解はできないものの、大まかに理解を。

 

 オリジナルフローは大まかに以下の流れとなっていることがわかった。

1.停止⇄低速(A)⇄中速(B)⇄高速(C)⇄超高速(D)の、5つの状態(ラベル)判定をしている。

2.それぞれに用意された音声ファイル(各4ファイル)を再生している。

3.音声再生完了後には、速度検出を行なって結果に応じてラベル間を移動している。

4.なお、低速(A)の状態からは、”減速+停止直前速度”の検出で、ブレーキ音再生をしている。

 

フローを理解すると↓の通り。Labelという塊があって、ドラフト音を鳴らしている。Labelの最後で条件判定を行い、次はどのLabelに進むのかを判断するというもの。

3.どうすれば減速時のドラフト音が調整できる?

 減速時のドラフト音を小さくするためには?

簡単に考えれば、 加速時と減速時で再生する音のボリュームを変えれば良い。

ただし、DSSPの仕組みでは一つの音声ファイルのボリュームを大きくしたり、小さくしたりするという調整はできないので、

加速時用のドラフト音とは別に、減速時用のドラフト音のファイルを準備する。

 

4.サウンドフローの書き換え内容は?

 ここが少し面倒。 

もともとのラベルのながれは

  停止⇄低速(A)⇄ 中速(B)⇄ 高速(C)⇄ 超高速(D)

上下のLabel間を移動するというで至ってシンプルなもの。

 

これを↓のように変える必要がある

  停止→加速・低速 → 加速・中速 → 加速・高速 → 加速・超高速

        ↕         ↕      ↕       ↕

  停止←減速・低速 ← 減速・中速 ← 減速・高速 ← 減速・超高速

 

加速状態と減速状態を分離、それぞれに低速から超高速のLebelを準備する(加速用Lebelは元のままでOK減速用を追加)。

また、Lebelの最後に”加速状態を判定”する条件を追加し、次に進むLebelを判定させるフローを追加しておく。

 

減速用のラベルの中では加速用と同じく4個の音声を再生させるが、減速用の音声ファイルはオリジナルの音声ファイルをベースに、外部ソフトで音量調整を実施し、別ファイル名でDSSPに読み込ませておく。

 

5.ChatGPTによるフローファイルの作成

 上記のオリジナルファイルを元に希望する内容に書き換えれば良いのだが、手作業でのフロー作成はミスをする可能性も高い。

そこで活用したのが、ChatGPT。

一通り上記の説明とオリジナルのフローを貼り付けて「そのまま使えるフローファイル作ってくれたまえ!」

で、目的のファイルが1発で作成完了!というわけにはいかず、何度かの修正とリクエストを繰り返して完成したのが↓

 

 

 加速時用のLabelの最後に減速状態にある場合の判定フローが追加されている

 減速状態にあると判断されると”GENSOKU”のLabelに進行

 

"GENSOKU"Label内では最初に速度判定を実施して、速度にあった”Laberに移行する仕組み。

なお、減速状態ということで、絶気運転を意味する”ZEKKI”というLabel名で統一している。

 

で、出来上がったものが↓

 

冒頭の宣言の通り、目的通り加速時と減速時の音声ファイル切り替えは成功。

さらにさらに実機に近づけるのために、絶気状態再現として完全無音惰行なども再現できそう。

 

さて、もう一つの課題、ドラフト音とロッド動作タイミングについては以前苦戦中。

上記の動画を見ても途中でリズムがずれる状態が聞こえてしまっている。

これまでの紆余曲折をまとめるだけで大変な労力になるので、この次は奮闘の結果をまとめる予定。。

 

 

 

先日までに C55 用の汽笛ファイルの編集、入れ替えを完了し、そろそろ本体の加工を再開したいところではあるが、もうしばらく SmileSound の微調整を続けることにした。

SmileDecoder の調整には、これまでと同じく DSSP を使用。
音声ファイルの差し替えやタイミング調整は一通り行ってきたものの、動作を見ているうちに、どうも気になる点が増えてきた。

今回のブログは100%備忘録レベルのため、テキストやまもり。画像なしでご容赦ください。


気になっている点①:減速時のドラフト音

加速時も減速時も、同じボリュームでドラフト音が鳴り続け、停止直前まで力強いドラフト音が再生されている。

車で例えると、
エンジン音とブレーキ音が同時に鳴っているような状態。
さすがに違和感が。。。


気になっている点②:ドラフト音とロッド動作のズレ

もう一つは、ドラフト音と車輪の動き、つまりロッド類の往復動作とのタイミングのズレが、依然として大きいこと。

特に中速域で、このズレが目立つ。


これら二つの現象については、「模型だから」で目を瞑ることもできる。
ただ、実物との乖離があまりに大きく、自分で何とかできないものかと思い、DSSP のサウンドフローの仕組みを少し整理してみることにした。


DCCサウンドフローの仕組み

DCC におけるサウンド再生の流れを簡単に整理すると、以下のような感じ。

  1. コマンドステーションでファンクションキーを押す

  2. ファンクション番号がデコーダに認識される

  3. 対応するサウンドフローファイル(CSV)が参照される

  4. フローに記述された内容に従って音声ファイルが再生される

基本的にはかなりシンプルな仕組み。

例えば、
F2 には汽笛(長)の CSV が割り当てられており、
走行中のドラフト音は F1 に割り当てられた「蒸気.Drive.csv」で制御されている。


ドラフト音用サウンドフローの概要

走行中のドラフト音を制御しているのが、F1 に割り当てられている「蒸気.Drive.csv」

この機能は、デコーダに電源が入った時点から有効=起動する設定になっている。

サウンドフローは CSV フォーマットで記述されており、テキストエディタで編集可能。
中身はシークエンス形式になっていて、上から順に処理を実行し、条件判定によって分岐したり、音声ファイルの再生を指示したり。

フローの中では、「ラベル」と呼ばれるブロックを条件に応じて行ったり来たりする構造になっている。

ドラフト音まわりの大まかな流れを整理すると、だいたい次のような感じ。


ドラフト音制御の基本フロー(概略)

******************

  • スタート:停止状態
     → ドラフト音なし

  • モータの回転を検出
     → 低速運転モード
     → 低速用ドラフト音を再生

  • 速度が 30 を超える
     → 中速運転モード
     → 中速用ドラフト音を再生

  • 速度が 80 を超える
     → 高速運転モード
     → 高速用ドラフト音を再生

  • 速度が 80 を下回る
     → 中速運転モード
     → 中速用ドラフト音を再生

  • 速度が 30 を下回る
     → 低速運転モード
     → 低速用ドラフト音を再生

  • さらに減速して停止
     → 停止状態
     → ドラフト音停止

******************

実際には WAIT や細かな制御が入っているが、
基本的には「速度帯」に応じて再生するドラフト音を切り替えている、という理解で良さそう。


現在の課題と考えられる対策

課題①:減速時もドラフト音が大きい

原因として考えられるのは、

  • 音声ファイルが速度帯ごとにしか用意されていないこと

  • 車両が加速中なのか、減速中なのかを判定していないこと

このため、減速中であっても、その速度帯に対応したドラフト音がそのまま再生されてしまう。

対策としては、

  • 加速/減速の状態判定を追加する

  • 減速時にはドラフト音のボリュームを落とす

といった方向が考えられそう。


課題②:ドラフト音とロッド動作のズレ

こちらは、

  • 現状の 4 段階の速度帯分けではピッチ調整が粗い

  • 特に中速域で、音と実際の走行速度とのズレが目立つ

といった点が原因が想定される。

音声ファイルの再生ピッチについては、もう少し理解が必要そう。


まずは課題①から

課題①については、仕組みもだいぶ見えてきたので、まずはこちらから試してみることにした。

とはいえ、サウンドフローを手作業でいじるのはなかなか面倒。
そこで、ChatGPT に手伝ってもらいながら、フローを組み替えてみることに。

さて、うまくいくだろうか??

悪戦苦闘の結果は次のUpdateで。。

 

大分長くブログの更新期間が開いてしまいました。。

 

趣味以外のもろもろ(実家のPCの修理とか、バラ剪定とか、リビングの椅子の修理とか、仕事とか。。)があり、あまり模型いじりにかける時間が取れない日がつづいておりました。

 

とはいえ、何もして居なかったわけではなく、デコーダ書き換えを行いやすくするための延長ケーブルの作成とか、SmileDecoderのCV値いじりなど、ぼちぼちと取り組んでおります。

もう一点、最近遊んでいるのがSmileDecoderに入れる音声ファイルの編集。

今回は、音声ファイル自体の調整と入れ替え作業の流れを整理。

 

 

 SmileDecoder用には様々な音声ファイルが用意されておりDesktopstation HPからDLが可能。

今回使用しているC57/C59用のファイル内には、汽笛やドラフト、発電機動作音などの各種の音声ファイル(中身は各種のWav形式の音声ファイル)、再生のタイミングや順序を記載したサウンドフローというファイル(中身はテキストベースのcsvファイル)が含まれている。

このC57/59用ファイルは、同じC型蒸気のC55に基本的にはそのままでも使用できる。

 

 以前のブログに記載した通り、音声ファイルごとの音量や、音程(イコライザ)調整はDSSPという各種データの調整機能付き、デコーダ書き込みアプリにて調整が行える。

ただし、音声ファイル自体の調整はDSSP上では行えない。

 

今回、C57/59用ファイルをそのままC55に適用してみたところ、期待以上に良い感じの音声再生が行えて入るのだが、一つだけ気になる点が。いわゆる”汽笛音”

 

 オリジナルのファイルには、出発前に発する ”ぶぅっおー---------!っっ…” というながーい汽笛音”と、

走行中や入れ替え作業開始前などに発する”ぶぉっ!”という短い汽笛音が準備されている。

 今どきの復活蒸気では、出発前のセレモニーとしてながー---い汽笛音を鳴らすことも多く、見ている我々の”わくわく感”を引き起こすスイッチとして大いにその効果を発揮してくれているが、現役時代の蒸気機関車では、そんなに長い汽笛は忙しい出発作業の合間の時間と蒸気の無駄遣い。

実際には出発前の汽笛だって、もっと短時間の”ぶっおおーっ!!”だったはず。

 

しかもC55といえば、九州や北海道の普通列車、客貨混合列車の牽引や、せめて急行列車の牽引が主業務だったはずであり、東海道、山陽本線の優等列車牽引を任されたC59や、それを引き継いで牽引をしたC57(C57は普通列車も多いはずだけど)ほど華やかかつ芝居がかった汽笛はちょっと似つかわしくない感じがする。

 

ということで、さっそく”ちょっと短い汽笛音”の作成にトライというのが今回の流れ。

(さらに発展すれば音程の調整や、自主録音音源の使用などもできるかと)

 

では早速、作業手順を

①まずはDSSPの中の音声設定の仕組みと音声ファイルの取り出し方

 DSSPアプリの左下側に”サウンドフロー”のリストと、右下側には”ファイル名”がリスト表示されている。

 左側のサウンドフローというものが、音声再生の順序、タイミングを設定しているもの。

 ちょっとしたスクリプト=フロー形式のプロラムになっている。

 これを書き換える、入れ替えることで様々な音再生機能を追加できるが、
 今回の主目的”音声ファイルの更新、置き換え”とは主旨が異なるので今回は割愛。

  右下のファイル名を見ると、C57汽笛.wavとかそれっぽい名前のファイルが見つかる。

 まずはこのファイルを取り出して長さ調整ができるかトライ。やり方はとてもシンプル。

 ファイル名の上で、”右クリック>エクスポート”で、保存場所を指定すればよい。

 PCの指定フォルダを確認すると、保存された”c57汽笛.wav”が見つかるはず。

 ちなみにファイルの更新や追加のときは反対の流れの作業をすればよさそう。”右クリック>インポート”でファイル選択。

 

②音声編集ソフトの準備。

 これまで動画の簡単な編集作業をPCで実施した経験はあるが、音声ファイルの編集は初の作業。

 本格的な編集には知識が必要そうだが、今回の目的”ファイルの短縮”位であれば音声ファイルの”部分切り出し、貼り付け”ができれば何とかなると予想。

 今回使用した音声編集ソフトは Audacityというもの。

特にこだわりもないので、インターネット上で検索しておすすめに出てきたものをDL。もちろん、お気に入り、使い慣れているソフトがある場合はそちらでどうぞ。

 

③音声ファイルの読みこみと編集

 Audacityのインストールが完了したら後は、”①”で保存した”C57汽笛.wav”のファイルを開く。

どうやら、オリジナルの汽笛ファイルは全部で11秒ちょっとの長さ。

”ぶっ”っと鳴りはじめて”おぉぉー-・・”という余韻に入る音声ファイルの中心部分は1秒~8秒のあたり。

つまり7秒前後の長ーい汽笛音ということ。

 今回は九州の普通列車、客貨混合列車などの生活のなかにいた蒸気機関車の音が目標なので、長くても4,5秒でもよいのかなと。

 

 ↓C57_汽笛.wavの中身。

 

 

適当にソフトをいじっていると音声ファイルの一部削除、コピー、貼り付け作業は簡単にできる様子。

切り取りたい部分をカーソルで選択(始点から終点を選択)し、右クリックでメニューを開いて”切り取り”をするだけ。

汽笛音はある程度均一な音が連続して再生されているだけのため、多少適当に切り取ってしまっても特に違和感はなさそう。

前半部、中盤部、後半部から少しずつ部分切り取りを行って作ったファイルが↓

参考までにオリジナルのファイル(下)と並べるとこんな感じ。

ファイル全体の長さが約11秒から約7秒に短縮、汽笛吹鳴のメイン部分は7秒程度が5秒程度まで短縮できた。

せっかくなので音声ファイルをuploadしてみようと思ったがアメブロは音声ファイルを受け付けていないようなのでギブアップ。

 

④新音声ファイルのDSSPへの読み込み

 新しく作成した音声ファイルだが、元のファイルを上書き保存してしまうのが一番手っ取り早い更新手順。

 が、せっかくなので、新たにC55_汽笛7s.wavという名前で新しくファイルを作成したので、そのファイルのDSSPへの読み込みと、サウンド設定をすることに。

 読み込み作業は書き出し作業と同じく簡単。

 DSSPの画面、”ファイル”のリスト上で”右クリック>インポート” を選択して、目的のC55_汽笛_7s.wavを選ぶとすぐにリストに表示追加される。これでDSSPへの読み込みが完了。

 

 最後の手順は”サウンドフロー”の設定変更。

オリジナルの設定では依然として、”C57_汽笛.wav”が再生されるように設定されているので、これを”C55_汽笛_7S.wav”に変更を。

実際の作業手順は

 画面左下のサウンドフローのリストから”汽笛.長.csv”を選択し、画面上側に表示されている音再生の行 ”C57汽笛.wav”をダブルクリックからファイル選択メニューに入って”C55汽笛_7s.wav”に変更する。

 

↓C55汽笛_7.wavの選択画面。

 

以上でファイルの更新+設定変更は完了。この後はデコーダ書き込みしてのモンストレーション。

といったこころで今日の作業はおしまい。

 

今回の作業も音声ファイルの編集などの初トライの内容ではあったが、比較的簡単に思った通りの作業を完了することができた。

音源自体の自主作成(録音からノイズ除去など)はさらに高い技術が必要なはずではあるが、このくらいの作業であれば”なんとかなる”もの。

この後はCV値の最終調整作業に進める予定。少し時間がかかりそうな雰囲気ではあるがぼちぼち頑張ろうと思う。。

 

 

 

 

 

 

 安達製作所製C55も下回りの調整を完了(先日のブログからもう少し調整を実施)。

従来方式の(PWMではない)DC環境でできるだけ低速、スムースに発信できる状態になったので、デコーダ設定を再開します。

 

先日のブログにて

1.ハード調整

2.起動パルス、BMFE調整

3.始動電圧CV2

4.ドラフト再生感覚 CV57,CV58の

順で調整予定と記載した。

 

その後、何とか”1”を完了し、次のソフト調整を開始した次第。

再度、理解を深めるために各パラメータの機能を勉強していくと、どうも自分の理解が少し誤っていたことに気がついてきた。

 

これ以降の手順は上記の”1>2>3>4”ではなく、”1>3>2>4”で進めたほうがよさそう。

さらに、2と3は実際の動作にあわせて何度か調整を行ったり来たりするのがよさそう。

 

 

何度かの手戻りもありつつ、手順2以降を一通り完了したのでを作業内容を以下に。

 

なお、実際の作業はいたってアナログ。

デコーダにCV値を書く>動作確認する>CV値書く>動作確認するの繰り返し。

”ワックスかける!、ワックス取る!”だって、練習するだけで強くなれるんだから、頑張ればSmiledecoderだって攻略できるに違いない。

 

 

で、まずは”最初に”CV2の設定値を。

CV2 は 起動電圧(モータが回り始める最低電圧)
あくまで 起動のしやすさに影響するだけで、ドラフト音の間隔には直接関係しない

ちなみにCV2=38という意味合いとしては

車両の始動をする際には

 ”(38/255) * 供給電圧(大体15V)に相当する電圧”

がモータに供給されるということ。

また、再低速で運転する際に供給される電圧=停止することなく動き続ける電圧 ということになる。

何度か調整を行い、急なスタートでも、渋いスタートでもないくらいの状態かつ、最低速でも止まらないレベル=”38”位がちょうどよいと判断して、CV2は完了。

モータタブの右側に表示されているBMFE一旦横に置いて起き、先に”始動パルスアシスト”の設定を続ける。

 

 

 始動パルスアシストの機能は、下図のイメージに描かれている通り”起動時に一瞬だけ供給する電圧をあげて、始動をスムース”にするというもの。

今回は、設定画面中の”普通アシスト”を選択(すると、適当な値がCV65,64に入力される)。

 設定のコツとしては、始動がカクカクする場合は。Off>普通>強めの順に設定を強くしていく。逆にロケットスタート気味の場合、強め>普通>Offの順に弱くすればよい。

動作確認の結果、”普通アシスト”を選定。↓が普通設定のパラメータ値。

 

 

 次に、モータタブの右横に表示されているBEMFに戻って微調整。

一番わかりにくそうな”BEFM”というもの。そもそもBEFMって何?というところから。

BEMFの機能、効果を簡単にまとめると

・モータの回転状況、負荷変動補正して、回転数を安定させる

・モータの回転状況を確認して、音声再生、停止のタイミングを制御する

という2つの機能を有するらしい。

 

で、実際の調整といえば、先にすべきは回転数=動作の安定化。

大まかな考え方では、BEMFをある程度効かせるほうが、動作はスムースになる。

ただし、BEMFを強く効かせすぎると、逆に動きにギクシャク感を生じたり、

”音の再生が先走る”状態になることもあるようなので、ここは動きと音の再生タイミングのバランスを見ながら進めることにする。

 逆の言い方をすると”動作の安定性を若干犠牲にして音声再生タイミングの調整を優先するような微調整=トレードオフの微調整”も行えるとのこと。

 

 

BEMFに関する各パラメータの働きを調べたので備忘録として以下にまとめを

正直、すべてを理解をするのは困難なので、実際の調整は”基準値からのトライ&エラーでの微調整”というながれ。

 

●CV10|BEMFカットオフ速度 

 =BEMFの機能をOnにする最低レベルの設定

 小さくする >   超低速からBEMFが働き、初動が安定する。ただし、一発目のドラフト音もはやめに”ボッ!”

 大きくする >   低速運転は不安定になる方向。ドラフト音の一発目のタイミングは遅めにできる。
重量の思い真鍮製16番ということで、少しちいさめ”2”でスタート。

●CV54|BEMF電圧係数
 =BEMFが動作をアシスト機能するときの”強さ”の設定。

 大きくする > 止まりそうになっても止まらない。ただし、やりすぎは動作が不安定(遅くなったり、早くなったり)
 小さくする > 止まりそうになったら止まっちゃう

 ソフトの初期値より少し上げて”96”に設定。


●CV55|比例ゲイン(P)変更  

 =あまり触らなくてよいパラメータ。基本”16”でOKらしい。

  ちなみに効果としては、CV54のさらに高精度調整的な感じ。

 (丁寧に書くと、想定値、実際の状況(回転数)の乖離が大きければ大きいほど、強く補正をかけるというもの。特に加速時に効果が見えるものらしい。が、そもそもそんなに触らないでOK。
 大きくする   > 応答が鋭い   =速度補正がシビア
 小さくする >   応答鈍め  =速度補正が緩慢


●CV56|積分ゲイン(I)

 =こちらもそんなに触らないでよいパラメータ・基本は32でOKらしい。

 このパラメータは、ある”程度長時間の動作のばらつきをみて”結果から次の補正を調整するもの。こちらは減速時の滑らかさに影響するようだが、こちらもそんなに触らないでOKらしい。

変更       走り    
↑ 大きく    低速安定   
↓ 小さく    失速注意   

 

●CV118|計測ギャップ

 正直あまり使わなくていいような気がするパラメータ

 BMFEはモータの状態を周期的に確認する機能だがそのタイミングをわずかにずらすもの。

 動作のギクシャクが残る場合、このパラメータを微調整することでスムースになることがあるらしい。

 正直使い方がいまいちわからないが、初期値30のままで特に異常もないのでそのままにしておく。
 

以上でBEMFの調整は完了。

DCC環境での動作のスムース差はここまでの調整で決まってくる。

最後のサウンドタイミングの調整の前に、スムースな始動、停止、低速安定運転ができるかどうか確認しておく。

 

 

 いよいよ最後が手順4の音声タイミングの調整。

蒸気サウンドタブの中のCV57とCV58.

 

どこからどこまでが低速でどこからが高速に該当するのかがわからないが、とりあえず両方とも早すぎる傾向があるので、適当に数値を設定。特に高速のドラフト間隔がつまりすぎていたので、大きめの数字を。

 

 

パラメータを一つずつ調整するというのは中々に大変な作業ではあるが、何回か繰り返しながら感覚を掴んでいくしか無い。

一通りのCV値設定を完了した現時点での状態が↓のような状態。

始動時の音声のタイミングは悪くない。できればもう半音、ドラフト音を遅らせてもいいくらいか?

中速でドラフト音と車輪回転がちょっとずれているように見えるが、低速運転、停止ときのブレーキ音のタイミングは良さそう。

もう少し始動時のカクつきをもう少し直したいところではあるが、いったんこれにて完成!

レールを走らせた状態=負荷の高い状態での最終調整の際に、もう少しファイン調整をしてみようかと。。

 

 

 

 

 

 

 

今回はDCC化サウンド設定に向けて、動輪まわりの状態を再調整。
実際に干渉や硬さがある部分を見つけたので、その改善の記録を。

 

ここ最近、DCC化のためのデコーダ準備などに時間を取られていたためあまり手のつけられていなかったC55。

DCCのサウンド設定をするには、動力系のスムースな動作が前提ということで、動輪周りの調整をすることに。

組んではバラし、治しては組み、組んではバラす。

動作を確認しながら何度も調整を繰り返すしかないが、まとまった時間が必要なためこれまで先送りにしていたところ。

 

何回かに分けて今日までに修正、調整を行ったのは以下の点。

 

不具合①

一箇所目は 第一動輪の連結棒を止めるネジと、主連棒(ピストンからの力を伝達する棒)の内側の干渉改善

 主連棒自体には若干のアソビがあるため、少し外向き(車輪から離れて)で動作しているときは異常は発生しない。

車体を傾けるなどして主連棒が車輪側に寄ると、連結棒を固定しているネジの頭と主連棒の内側が接触、突然車輪の回転が停止する状態であったのを発見。

 対策は簡単。干渉していたネジの頭を0.5mm程度削るだけ。バルブギアの分解組み立てもしなくて済むので、不具合レベルとしてはレベルは含低めな箇所。なお、ドライバ用の”ー”溝が浅くなってしまうので、すこしだけ糸鋸にて溝を深くしておいた。

 

不具合②

2つ目の不具合は”第二動輪のリターンクランクとエキセントリックロッド(偏心棒)を固定するネジと主連棒の干渉。

エキセントリックロッドを固定しているネジ。上から見ると0.5mmほど長すぎる様子。

このネジも一旦取り外し、ネジの先端をヤスリで削り長さを調整。

不具合難易度は低めだが、この小さなネジを固定して先端を削るという作業は若干難易度高め。。

 

 やすりがけの最中に何度がネジを落としてしまい、捜索のために床を這いずり回ることに。

いつもながら失敗してから感じることだが”作業スペースは整理整頓、スペースを大きく”しておかないと、余計な手間が増えてしまう。

見直してみると作業に使った工具、配線や部材の断片なども落ちていてあまり綺麗な状態ではない。。。

気分転換を兼ねてお掃除タイムに突入。で、また工作作業は停滞。

 

 お掃除完了後、作業再開したもののモーションプレートのハンダ外れなども発生。

結局、全ての車輪、バルブギアは分解、再組み立てを実施。時間をかけて再度組み付け直した状態が↓。

ネジ類の干渉は解消。
 
不具合③
エキセントリックロッドを組み付けて動作確認までたどり着いたが、まだ特定箇所での動作の硬さが残っている様子。

さらに原因調査を進めると、どうやら加減リンクの上端が、釣りリンクの一部に接触することが原因らしい。

これを解消するためには第二動輪の軸にハンダ固定しているリターンクランクの角度を調整する必要が。

 

何度か角度修正を繰り返して、たどり着いたのが下の動画の状態。

大分改善はしたがもう少し!といった感じ。

エキセントリックロッド、加減リンクあたりの動作が影響している感触もあり、もう少し調整を続ける予定。

 

 

 

 

この前のプログで、

”三つのパラメータ調整をすれば良い。(調整だけであればと書いた理由は後ほど。)”

と書いた理由について。

 

 ドラフト音の再生開始タイミングと再生間隔の調整を始めたところ、DSSPアプリのCV編集画面に”起動パルスアシスト”というものがあることに気がついた。

 >SmileSoundユーザーズマニュアルのP55、56あたり

 

これは何かというと、鉄道模型ではしばしば悩まされる、”ロケットスタート”解消のための設定。

ロケットスタートというほどではなくとも、どのような模型でも”静摩擦”と”動摩擦”の関係から、始動時は”ガクッ”もしくは”カクカク”といったなめらかで無いスタートをするケースが多い。

 このカクカクを解消、低減するため、車両が動き出すギリギリのところでちょっと強めに電流を流してやる機能。

そうすることで走り出しの引っ掛かりを低減することができるらしい。(やりすぎは逆効果)

 

さらに、モーターに関する設定のタブにはBMEFという項目がある

これはモーターの実際の回転状態を把握し、想定よりも低ければ電圧を上げ、想定よりも高ければ電圧を下げるという、フィードバック&微調整を行う機能らしい。

この機能があることで、牽引車両の多い、少ないや、坂の登り降りなど、牽引車両にかかる負荷の大小に関わらず速度を一定に保つことができる。

 

 カクカクスタートをどれだけ解消できるかは、緻密な調整と日々のメンテナンスの影響が大きいようだが、現在作成中の真鍮製蒸気の場合、

・重量が大きく各部の摩擦が大きい

・フライホイール非搭載

・バルブギア抵抗あり

・モータシャフトとドライブギアの間の接続がシリコーンチューブ接続(モータからの力がチューブのねじれで吸収される)

など、かなり不利な組み合わせ。

正直、バルブギア周辺の調整ももう少し改善する必要もありそうなのだが。。

 

で、このあたりのハード(車両の調整)とソフト(パルスアシストなど)をせずにドラフト音調整を実施しても、後ほど改めてやり直しになる可能性がとても高そうなことがわかる。

 

 

全体の調整のやるべき流れとしては、

>1.DC電源でスムースな発進、停止が行えるように、ハード調整(バルブギア調整、集電、その他)

>2.DCC+デコーダ搭載状態で、起動パルス、BMFE調整。これでさらにスムースな発進、停止が行えるように調整。

>3.続けてDCCにてCV2(起動電圧)の調整でドラフト音開始のタイミングを合わせる(実際にはドラフト音が少し遅れるくらいが正しいはず。)

>また、合わせて最高速度の調整として最大電圧cv5の調整も必要に応じて。

>4.低速蒸気サウンド間隔CV57と高速蒸気サウンド発生間隔CV58を合わせこむ。

ということをすれば良さそう。


どこまで、スムースかつ実感的な音、動きにできるかの鍵は、やはり基本から!ということかと。

 ここまで進めていたデコーダ調整だが、一旦作業は中断して、この後は駆動部調整を実施する予定。

スムースに進められるといいのだけれど。。。

 

 

前回はドラフト音始め、各音声の聞こえ方="質"の調整を実施した。

引き続き蒸気機関車機関車特有のドラフト音の再生タイミングの調整を。

 

 先日、デコーダを現在作成途中の安達製C55に搭載、スピーカー、モーター、LEDと接続し動作確認を行った際には以下二つの課題がありそうなことがわかった。

 

問題点①

 コントローラーのスロットルを回し、車両の走行開始したところ、動輪が動作し始める前にドラフト音だけが再生される。

問題点②

 スロットルをさらに上げ車両の走行速度を上げたところ、今度はドラフト音の間隔が早くなりすぎる。

 

で、ここをどうやって調整するか?

DSSPのアプリ、説明書を見て理解するに、音声ファイルの再生タイミング、間隔の調整だけであれば、以下三つのパラメータ調整をすれば良いらしい。(調整だけであればと書いた理由は後ほど。)

 

調整方法①:DSSP右側、モーターダブ内の開始電圧=CV2の値を大きくする。

調整方法②:DSSP画面右側の"蒸気サウンド"タブ内の

      低速時サウンド発生間隔=CV57と

      高速時サウンド発生間隔=CV58の 値を大きくする。

 

まずは調整方法① 開始電圧=CV2から。

 開始電圧=CV2とは車両が動作を開始、つまり走り出すのに必要な最小電圧を定義、教えるもの。

車両が動くよりも早くドラフト音が鳴ってしまうというのは、裏を返せば、

”電気が流れ始めた段階で動き出しい欲しいところが、電圧不足が原因で車両が動作を開始できない状態”

ということ。

 

 CV2に大きな値を入力するとスロットルを回した瞬間に、指定の電圧がモータに印加されすぐに動き出すようになる。

すぐに動いて、すぐに音声が再生されれば、動作と音のズレは解消できるという理屈。

ちなみにモータも大型、大きなトルク(動輪を回す力)が必要なHOゲージ車両はデフォルトよりも大きめの値にするのが普通らしい。真鍮製のモデルなのでCV2の値も大きめの大体三十くらいから微調整を開始したところ、だいぶ改善傾向。

ファイン調整は後ほどすることとして、CV2の調整方法は理解完了。

 

 

次に調整方法② CV57と58の調整。

低速時サウンド発生間隔=CV57と高速時サウンド発生間隔=CV58は、”蒸気サウンド”タブ内にも表示されている。

この二つのパラメータはドラフト音のリズムと動輪の回転、というかロッドの往復動作のリズムを調整するためのもの。

ドラフト音と動輪のタイミングとしては、動輪一回転で4回のドラフト音(3気筒のC53や海外のの4気筒は異なる)が鳴るように調整するのが目安。

 

CV57の数字を大きくしていくことで、起動時のドラフト音の間隔を広げる=ゆっくりなリズムでの再生に調整ができる。

CV58もほぼ同様だが、こちらは高速=最大電圧での走行時用の調整パラメータ。

 

低速時のタイミングズレは模型としてもできるだけ低減したいところ。

対して、高速走行時のタイミングズレについては目視での動輪回転数測定などできるはずもないので、それほど細かな調整を行う必要はないかもしれない。

こちらも適当に数値を入れ、スピーカのみでの確認を行ったところ、期待したとおり、ドラフト音間隔を伸ばす効果を確認することができた。

なお、DSSPの説明書によれは

CV57=設定値*10ms

CV58=設定値*1ms となっているが、GUI表示はどちらも”設定値*10ms”に見える。

このあたりは、もう少し調整を繰り返して理解を深める予定。

 

さて、なぜここで、”予定”に逆戻りしたかというと、ここに来てもう一つ大事な調整を先に実施したほうが良いことに気がついたため。。。

つづく。。

 

 

 

 

 

 

 

デコーダ、スピーカーの物理的な接続、搭載はひと段落。

配線と動作確認が完了したので、今回は音の聞こえ方、タイミングの調整を実施。

 

 DCCにDIYで取り組む時の、面白さでもあり、めんどーくささというか、敬遠されてしまう理由として、物理加工、電気加工に加えてソフト理解と言った多種の作業を実施、内容を理解しなければならないことが挙げられる。

 

自分の場合も、今回使用のSmileDecoderどころか、DCCのデコーダの中身を弄ると言うのは初の試みではあり、これまでの物理的加工に比べると心理的ハードルも、ちょっと高い作業ではある。

 

とはいえ、趣味に関することに限らず、”とりあえずやってみる精神”で挑戦、DCCについても”まずはいじってみよう!”でスタートし、ここまで”なんとかなってきた(多分)”ので、”デコーダの中身を調整する”というのもなんとかいけそうな気がする!

 

 

 先日までの動テストの結果、現時点で気になっているのは以下3点。

①音声バランス:コンプレッサ動作音などの高音が大きい、耳障り

②ドラフト音タイミング:動き出し時の動輪回転開始タイミングとドラフト音のずれ(動輪が動くだいぶ前からドラフト音だけ)

③ドラフト音タイミング:高速運転時の動輪回転速度=主連棒類の往復動作速度と、ドラフト音のズレ(ドラフト音が超高速。音だけなら時速150km出てるんじゃないかと。)

順番にどういった調整ができるのかをトライ&エラーで実施してみた。

 

詳細まとめの前に、実際に取り組んでみた後の感想としては。

”お?。初見の超素人でも意外となんとかできるぞ。”といった感じ。

これは自分のスキルが高いとか、センスがあるとかそういうことではなく、SmileDecoder /DesktopStationの製品、ソフトが理解、操作しやすく、設計されているということ。

 

経験豊富な諸先輩の方々と比べてしまうと、自分が行なっているレベルの調整なんというのは入門編レベルかと思われるが、現在自分の目標としている状態=上記3点の改善くらいなら、素人でもできるぞ、という参考例になれればよしとしよう!

 

なお作業はDesktopStation HPからDLが行えるDSSP(DesktopStation SoundProgrammer)というアプリケーションを使用する。基本的な使い方、接続方法は以前のブログにもまとめたので、ここでは詳細説明は割愛。

 

まずは音量、音量バランスの調整について、以下作業内容、手順を順番に。

 

①音声バランスの調整

 使用するスピーカ自体の性能、特性、スピーカ周辺の音響状態(エンクロージャの形状やサイズなど)によって、同じ音声ファイルを再生しても、響き方、聞こえ方が異なるのは当然。

 鉄道模型の中に仕込む小型のスピーカは基本的に

  ”低音が薄い=低音の音量が不足気味”

  ”高音が耳障り=高音が反響し、シャカシャカとした軽く耳障りな状態”

 になることが多いらしい。

 で、この状態を補正する方法はいくつかあるようだが、DSSPのソフト内にはすでに以下のような機能が設けられている。

 補正方法① 高音、低音補正

 補正方法② ファイル毎の音量調整

  

 まずは①の手順。

 DSSP画面左側には、”一般”〜”ログ”まで各種の詳細設定メニュが用意されている。 

   ”CV編集”タブの中に全てのCV値の内容と設定値が表示されているので、目的のCV値を探して調整するというのが基本の理解。

 各々のcv値が何を意味しているのか?

数字の大小がどう機能するのかについては、DSSPの、使用マニュアルなどに詳細説明があるので、ここでは目的の内容にのみ着目。

 

 CV値の中でも、メジャーなものについては画面右側の各タブが用意されている。

 サウンド調整用の3つのパラメータについてはこの通り。

 マスター音量、イコライザ低域、イコライザ高域の3つの調整項目が表示されている。

 

 CV63というのがマスター音量=音声の再生時の音量(全音声ファイルに適用)であり、0〜255の数値で設定する。

 CV196というのは1〜32で設定する低音〜中音域(800Hz=パトカーのサイレンくらいの音程以下)の強弱補正。
 16がデフォルトなので、蒸気機関車のドラフト音を太く、強くしたい今回はこの値を少し大きくしておいた。

 今回の場合、三十程度まで大きくすると音が割れたり(バリバリという音が混じる)スピーカ自体が振動を始めるようなのでちょうど良いバランスを探して25の設定に。

 

 逆にCV197というのがそれ以上の高音域の強弱補正。高音が耳障りに聞こえる状況なので、自分の場合は設定値を16>10に低下させたことで、高音のキンキンした音がだいぶ軽減できた。

 

値の変更を行ったら、画面いちばん左に表示されているCV値書き込みボタンを押してデコーダへの書き込みを実行する。

 

 

 次に2番目の調整方法。

 調整方法自体は至ってシンプル。

 目的の音声ファイルの、音量設定を100%を基準に上下に変更するだけ。

 SmileSoundの仕組みを理解した限りで簡単にまとめると、wav形式の音声ファイルが複数用意されており、それぞれの音声を再生するタイミングが、サウンドフローというファイル内に記述、定義されている。

このサウンドフローのファイル自体の編集も、DSSPで行えるのでより詳細な調整が必要な場合はこれを弄ることになるが、今回の目標は音量調整だけなのでフローの変更は必要なし。

各ファイルがどんな音声なのかはファイル名をダブルクリックすると再生、確認ができる。

今回の作業では

 コンプレッサ音(開始、終了、ループなど複数のファイルがある)のファイルを25%

 その他ATS、イジェクター 、ノイズなどのファイルも、25から75%程度に設定を変えておいた。

作業終了後は、画面左側の、音声書き込みボタンを使ってデコーダへの書き込みを完了させる。(ブログを書きながら思ったのだご、音量調整だけならもしかしたら書き込みは不要なのかも?)

 

今日のところはここまでで音量と、音量バランスの調整は完了。次は音声タイミングの調整予定。