ユーザ用ツール

サイト用ツール


osd1

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


OpenSoundDecoder rev.0

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

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

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

開発ステップ(案):
Step1(2022年): 基本的なサウンドデコーダの技術構築、一般協力者との共同評価
Step2(2023年): 音質向上、サウンドデータ開発環境の構築、一般協力者との共同評価による品質向上
Step3(2024年): 線路経由の書き込みの実現、E社LS4~LS5クラスの完成度の実現
Step4(2025年): 一般販売の開始

コンセプト

  • DCCをより楽しく
  • 入手性、カスタマイズ性を重視
  • リーズナブルなサウンドデコーダ(ただし安さは追及しない)

アーキテクチャ

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

製品

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

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

構成要素

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

サウンドフロー

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

  • スクリプトはロードされた後、常時実行されます。
  • 最大、同時に12個のサウンドフローが動作します。つまり、最大12音の再生が可能です。
  • サウンドファイルは、8bit モノラルの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 実行しているサウンドフローの終了

追加を検討しているコマンド。

  • vol ボリューム
  • stop サウンド停止
  • slim 速度制限
  • let 算術評価(計算処理)

if 条件分岐の引数

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

対応ハードウェア

準備中

ファームウェア

準備中

License

オープンサウンドデコーダのファームウェア、回路図、開発ツール、付属物(音データならびにドキュメント、サンプル)を利用するには、利用用途ごとに規定があります。

非商用利用収益を得ない活動に利用。
例:個人・クラブでの利用
契約の必要がなく、ご利用いただけます。
商用利用A模型店等が書込サービス提供のために利用 オープンサウンドデータの利用許諾後、ご利用いただけます。
商用利用B 収益を得るためにデコーダやコマンドステーション開発に利用 商用ライセンス契約が必要です。契約が無い場合には、評価用途も含め、ご利用いただけません。

利用OSS

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

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

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

  • Raspberry pi Pico RP2040

関連資料・記事

osd1.1643500331.txt.gz · 最終更新: 2022/01/30 08:52 by yaasan

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki