ユーザ用ツール

サイト用ツール


osd1

文書の過去の版を表示しています。


SmileSoundDecoder rev.0

スマイルサウンドデコーダは、オープンサウンドデータをより活用するために開発を進めている、日本製・国産のサウンドデコーダです。欧州のトップメーカーであるZ社、E社のサウンドデコーダのクラスを目指して開発を進めています。

DesktopStation株式会社Nagodenフジガヤ2,Maison de DCCを中心とする、DCC電子工作連合の共同開発製品です。

サウンドデコーダの根幹であるサウンドの動きは、オリジナルのCSVスクリプトエンジンを用いることにより、自由にサウンドプログラミングが実現可能です。

開発ステップ(案):
Step1(2022年): 基本的なサウンドデコーダの技術構築、一般協力者との共同評価
Step2(2023年): 一般販売の開始

コンセプト

  • DCCをより楽しく
  • ソフトウェア・ハードウェアデザインの国産化
  • 入手性、カスタマイズ性を重視
  • リーズナブルなサウンドデコーダ(安さを追及するものではない)

アーキテクチャ

  • RP2040を軸にした、一般的なサウンドデコーダに相当するアーキテクチャを採用
  • Arduino IDEで開発可能なArduino-picoライブラリをハードウェアライブラリに使用
  • 16MB弱をサウンドに利用可能(0.5MB程度はファームウェアに使用)
  • サウンドは、ユーザーがカスタマイズ可能なCSV形式のスクリプトプログラムで実行可能。将来的にはGUIツールによるブロック線図プログラミングも視野に入れている。
  • サウンドデータは、LittleFSを使用し、USBでダウンロード可能。将来的には線路経由(UART over DCCとRailComによる通信)での書き込みが可能なシステムを開発予定。
  • 当面は独自のUSB型書き込みアダプタを用いて書き込む方式となります。

製品

以下は構想段階であり、仮です。まだ具体的な製品予定ではありません。

  • MTC21対応デコーダ OpenSoundDecoder MTC21,NEM652 (仮,DesktopStation)
  • Next18対応デコーダ OpenSoundDecoder Next18 (仮,Nagoden)

構成要素

サウンドエンジン WAVファイル管理、再生を行う部分
サウンドフロー CSVスクリプトを実行する部分。設定機能も一部含まれる
モータ制御 ブラシ付DCモータ用のモータ制御エンジン
NMRA DCC Library NMRA製オープンソースDCCエンジン

サウンドフロー

CSV形式のプログラムを採用。

  • スクリプトはロードされた後、常時実行されます。
  • 最大、同時に12個のサウンドを再生可能です。E社の最新デコーダと同等を実現しています。
  • サウンドプログラム(サウンドフロー)は同時に16点を実行可能です。使っていないフローは自動的に終了する機能を有しており、意識せずにサウンドプログラミングできます。
  • サウンドファイルは、8bitならびに16bitのモノラルの44.1kHz, 22.1kHz, 10.25kHzのRIFF WAVEファイル(LPCM)に対応しています。
  • 状態遷移はスクリプト上に記述します。ifとgotoで状態遷移の待つ条件を作ります。ifの条件式が成立したら、遷移させる形です。
  • CSVスクリプトは128行まで。
  • E社のLS5デコーダ相当の処理を実装可能な仕様を予定しています。
echo,startflow
label,START
if,fnc==1,PLAY_ON,
goto,START
label,PLAY_ON
play,seibuaw_in.wav,0,0
echo,playwav
play,seibuaw_loop.wav,1,0
label,PLAY_LOOP
if,fnc==0,END,PLAY_LOOP
label,END
play,seibuaw_out.wav,0,0
echo,exitflow
goto,START

CSVスクリプトで使用可能な関数は以下の通り。

Command nameDescription Examples
if 条件分岐 if,fnc==1,TRUE_LABEL,FALSE_LABEL(FALSEは省略可)
goto ラベルへジャンプ goto,LABELNAME
play サウンド再生 play,filename,loop(0 or 1),immediate(0 or 1)
wait ウェイト ms秒単位で待つ
label ジャンプ用ラベル ifやgotoの飛び先。大文字英数字で記載すること。
echo コメント 無視されるコメント文。備忘録用
set 変数の設定 shareやlocalに設定する。
aux AUX出力の指定 aux,1,1
call 他のサウンドフローの呼び出し・実行 call,flow3.csv
monf 監視するファンクション番号の設定 monf,8
exit 実行しているサウンドフローの終了
stopWAVファイル再生を止める
set
ret一番上のフローに戻る
volフロー内のボリューム変更
volmマスターボリュームの変更
pitWAVファイル再生のピッチ(周波数)変更
scrv速度カーブ設定
cfg
slim速度制限
let変数に値をセットする
wrnd
wtrg
dateファンクション操作時にロードするcall相当コマンド
sply速度連動型WAVファイル再生
auxsAUXの設定変更
plyx自動ウェイトなしでWAVファイルを再生する

if 条件分岐の引数

定義済変数
spd 現在速度。
ref 指令速度。加減速中では、現在速度とズレが生じます
acc 加減速度
local1,local2,・・・ サウンドフロー内で使用できる変数
share1,share2,・・・ 全サウンドフローで使用可能な変数

対応ハードウェア

準備中

ファームウェア

準備中

License

検討中

利用OSS

オープンサウンドデコーダは、以下のオープンソースソフトウェアを使用しています。

SoundFlowライブラリ、ManageWaveライブラリは、DesktopStation・フジガヤ2・Nagodenの開発物です。

関連資料・記事

osd1.1652911028.txt.gz · 最終更新: 2022/05/19 06:57 by yaasan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki