Pinned Tweet
Replying to @wing_ghost
1年前の発売後から、テクニック説明となるべく読みやすいMML記述を心がけて公開しているので、良かったら↓でX検索して試してみてください。
famic.prioris.jp/mml/
#FAMIConUSB
今回NESのサウンドドライバーとツールでCaludeとやりとりしていて、へぇ、となったのが、減衰速度は変えられても音量は常に最大値からの減衰しか出来ない内蔵エンベロープだけど、音量を反映させるかどうかは任意に決められるので、現在の音量まで減衰するのを待ってから変えれば途中から内蔵エンベロープで滑らかな音量減衰ができるということ
例えば現在の音量が8であれば
エンベロープ
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
発音
12 12 12 12 11 10 9 8 7 6 5 4 3 2 1 0
と4ステップ後から11以下の音量減衰を内蔵エンベロープでできる
じゃあ、発音より前から発動さておけば、発音と同時に指定音量で内蔵エンベロープでの減衰が開始できるよね?というのを追加
前の発音でエンベロープが0まで減衰していないと次の発音用の準備ができないので、その場合はエンベロープ参照をそこでやめて下方向の近似音量で固定して減衰を中断。これは手作業でステップ計算するのはまず無理だしツール様々
こっちはNESサウンドツールの割り込みトラックと、複数トラック表記によるテスト
波形固定でDPCMに影響されないと音量も変えられず、表現に乏しい三角波パート
苦肉の策として音の出だしだけオクターブを変える奏法も最初にオクターブとクオンタイズを変えておけば簡単に再現
相対キー変更で違う音程にしたり、データは大きくなるけど基本側にだけLFO掛けてギュイギュイな音にしたりとか、色々面白い音が出来そう
プログラム小さくならないか検討させたら「縦軸回転でしか表示していないから回転パターン分のY座標頂点は不要」で約 4000 バイト減り、サウンドに倍近く使えるようになったので、サビだけ作っていた曲をちゃんとしたものに仕上げて最終面用に。ラストシーンと言うと歌ものですよね
処理負荷が少なくなるようにハードエンベロープしか使わず音数も少なくするか。どうせ処理落ちするんだから、毎サイクル全チャンネル書き込む、処理の重い豪華な音響にするか。どっちがいいか悩むね
NESのビデオ出力でブラウン管に表示
曲が思い浮かばないからってAIのサンプル曲を使わなくても、昔作った曲を容量に合わせてアレンジすれば良かったのでした
サウンドドライバーとサウンドツールにやりたい放題に仕様詰め込んで、自分のゲームで鳴らせるなんて半年前は思わんかったよね
ファミコン実機で動くワイヤーフレームシューティング
CHR-RAMではなくCHR-ROMのNROM-256(MAPPER 0)
IMPACT SOFTさんのW-RAMあり版カートリッジを使っていますが拡張メモリは未使用
1984年末のゼビウスや1985年のスーパーマリオと同じ制限らしい
claudeがどこまで出来るのか表示テストしていて、これってゲームできるんじゃ?と試したら出来てしまった
ChatGPT/claudeでゲーム部分の変更依頼してダウンロード➝ブラウザ上のサウンドツールで読み込んで、思考待ち時間中に修正した曲に書き換え➝retroarchで起動して確認。MMLでの曲の修正に鍵盤とキーボードがないと時間掛かるのでPCでやってるけど、やろうと思えばこれ全部スマホ上でできるの何だこれって感じ。あとはロムライターのソフトをapk化すればほんとにPCなしスマホだけでファミコン開発か
いきなりゲームが出来て曲も必要だ。となってもすぐ8曲も書けるはずがなく、BGMはメニューの曲?というものになり、ボスは3つ使い回し、ジングルは適当。タイトルだけどうにも浮かばないので、Cm -> AbM7 -> Gとか自分では出てこない進行だしclaudeのサンプルをアレンジして使っておくことにする
思い立ってから2ヶ月でようやく、Windows上で不自由なくMDXを作れる環境ができたんだけど、待ち時間の間に作ってエミュレータ上でも動いて先に出そうと思っていたおもしろツールが実機だと全く無反応で頓挫
9Vだと動作しないだけかもしれないので定格12V AC/ACアダプターを注文。これでもだめだったら片方の動作だけで公開するか
NOTE MDX Workbench公開しました
DIS.氏のmxdrv2用MMLコンバーターnote.x互換の書式で
MDX編集/PDX作成/FM音源の音色作成が出来る統合環境です。
note.xは
・波形メモリ定義による音色パラメータ変化、オートパン
・複数トラックまとめての記述、コード入力
・音色切り替えだけで音量、LFOも変えられる音色マクロ定義
といったサウンドドライバーにない機能をデータ展開で実現する多機能コンバーターで、もぅこれじゃないとMDX作れないぐらいに愛用しているツールです
NOTE MDX Workbenchの主な特徴
1.
ステップ数の手計算不要
自分で足し算して1小節調度の長さを管理しないとトラックごとの演奏がズレる、というMML最大の問題を回避するため、選択範囲や行毎のステップ数(音長)をリアルタイムに更新して表示
2.
選択範囲の複数トラックをループ再生
トラックの先頭、音色などのコマンドより先に休符を記述すると選択範囲外でも有効になるため、ディレイパートの確認も容易です
3.
再生しながら音色を調整可能
保存した音色は既存音色の下にテキストで追加されるので、候補をいくつも作って後で好きなものを選ぶことが出来ます
4.
PDXは既存PDXを読み込んで再編集も可能。PCMリストから区間を選択して編集。ADPCMに必須な0クロスポイント検索、ピッチを変えても再生時間が変わらないピッチシフト、逆再生といった機能を実装
再生中に保存すると現在の再生位置を保ったまま更新内容を反映して再生が続きます
ダウンロードは以下ツリーのGitHubからどうぞ
#MXDRV #FM音源 #YM2151 #OPM
NOTE MDX Workbench v2.10.0
・note.x準拠のMML記法で編集
・PCMファイルのPDXをPCMリストから編集
・FM音源の音色を再生、PC/MIDIキーボードで試奏しながら作成
・鍵盤/ピアノロール表示で確認しながら、チャンネルマスク、再生ピッチ、再生速度を変更可能
これらを備えたX68000用のサウンドフォーマットMDX/PDX形式を作成するための統合環境です
github.com/ickaze/NOTE-MDX-W…
再生サンプルはこちらからどうぞ
github.com/ickaze/NOTE-MDX-W…
#MXDRV #FM音源 #YM2151 #OPM
note.xのMML記法については、元のドキュメントからhtml化したこちらを参照して下さい
ickaze.github.io/noteMDX/man…
ickaze.github.io/noteMDX/man…
(noteMDXはnote.xをWindows用コマンドラインツールにしたもので、run68.exeを使ってバッチファイル等で作成されていた方はそのまま置き換えが可能です)

