16bit期のゲーム機から鳴っていた、あのざらついたFMの音。プリセットを選んで「それっぽく」寄せるのではなく、オペレータとアルゴリズムを自分で組んで作りたい。その考えから開発したチップチューンDAW 「MegaTune - FMチップチューンDAW」 を、App Storeで公開しました。

App Storeで見る(1,200円・買い切り) | 製品ページ:MegaTune

📌 MegaTuneの3行まとめ
YM2612 FM音源6ch + SN76489互換PSG 4chを再現した音声コアを、iPhone・iPadのネイティブアプリとして実装
4オペレータ・8アルゴリズムのFM音色をピアノロールの隣で設計し、MIDIキーボードからも入力できる
VGM / VGZを読み込んでノート単位で編集し、VGM 1.70として書き出せる。Z80 RAMとROMの見積りも表示

背景:FM音源を「鳴らす」のではなく「組む」

FM音源を扱うモバイルアプリは、既存のVGMやMIDIを再生するプレイヤーか、あるいはFMを名乗りつつ実際にはプリセットを選ぶだけのシンセに寄りがちです。前者では自分の曲が作れず、後者ではオペレータ同士の変調比を詰めていく作業——FM音源で音を作るということの中身——が手元に残りません。

当社はこれまで、UTapRainyWaveといった音楽・リズムゲームアプリ、LSDj互換トラッカー「HexaChip」を通じて、モバイル上のオーディオ処理と制作UIを積み重ねてきました。

MegaTuneでは 「チップのレジスタ構成をそのままデータモデルにし、その上に作曲環境を載せる」 という構成を選びました。UIのパラメータは、内部でYM2612 / SN76489のレジスタ書き込みに1対1で落ちます。だからこそ、作った曲を実機準拠のVGMとして書き出せます。

10トラックは、実機のチャンネル構成そのまま

MegaTuneのピアノロールは10トラック固定です。内訳は、トラック1〜6がYM2612のFM 6ch、7〜9がSN76489のPSG矩形波3ch、10がPSGノイズ1ch。増やせない代わりに、いま画面で見ているトラックと、実機で鳴るチャンネルが常に一致します。

操作内容
入力「入力」に切り替え、セルをタップしてノートを配置
選択ドラッグで音程・位置を変更、右端ドラッグで長さを変更
削除「削除」に切り替えてノートをタップ
拡大縮小ピンチ、または画面上の±ボタン

編集はUndo / Redo(⌘Z / ⇧⌘Z)に対応し、Mute / Soloは再生中でも即座に反映されます。パターンループ、テンポ、量子化を切り替えながら組み立て、再生ヘッドに追従するスクロールで、鳴っている場所と編集している場所をずらさないようにしました。プロジェクトは .mdseq のポータブルなJSON形式で保存・自動保存されます。

4オペレータのFM音色を、指で設計する

FM音色エディタでは、YM2612の4オペレータを 8アルゴリズム とフィードバックで結線し、各オペレータの DT / MUL / TL / RS / AR / D1R / D2R / SL / RR / AM / SSG-EG を調整できます。チャンネル単位では AMS / FMS と左右パン、さらにグローバルLFOを設定します。

PSG側は、矩形波3chと white / periodic の2種類のノイズ、4bitのアッテネーションという素の構成をそのまま出しています。FMで土台を作り、PSGでアルペジオとノイズパーカッションを足す——という組み立てが、チャンネルの制約ごとそのままできます。

パラメータ数が多いぶん、操作系には気を配りました。値の分解能を保ちながら、指で扱えるタッチ領域を確保するスライダーを用意し、Keysのタッチ鍵盤から編集中の音色をその場で試奏できるようにしています。

VGMを読み込み、ノートへ戻し、また書き出す

MegaTuneは .vgm / .vgz を読み込めます。ただしVGMは完成音のレジスタログであり、元のシーケンサーデータではありません。そこで読み込み直後は、元のレジスタログをYM2612 + SN76489エミュレータで直接再生します。ここには Opnift 0.4.0(BSD-3-Clause、ymfmベース)を使用しています。

そのうえで、YM2612のキーON/OFFをFM 6chの編集可能なノートへ、PSGのtone / noiseをPSG 4chのノートへ復元します。FM音色、PSG設定、LFO、GD3の曲名、さらにDAC書き込みとDAC Stream ControlからPCM素材とFM6のノートまで取り込みます。曲中で音色が切り替わる場合や、複数のDAC波形が使われている場合も、ノート単位で保持します。発音間隔からテンポと小節グリッドも自動推定します。

最初の編集を加えた時点で、再生は復元したノート・音色・DAC素材によるものへ切り替わります(Undoで元ログ再生へ戻せます)。書き出しは VGM 1.70(YM2612 / PSGレジスタ列、NTSCチップクロック、全パターンループ、DAC register 2Aストリーム)と、44.1kHz・16bitステレオのWAVに対応しています。

⚠ MegaTuneには、著作権のあるゲーム素材は一切含まれていません。VGM / VGZやオーディオファイルの読み込みは、必要な権利をお持ちの素材にのみご利用ください。解析・変換・保存はすべて端末内で完結します。

MIDI入力に対応しました

公開にあわせて、MIDI入力を実装しました。外部キーボードでの演奏入力、ステップ入力、そしてMIDIクロック同期に対応しています。iPhone・iPadにキーボードを繋いだ状態で和音を押さえ、そのままピアノロールへ置いていく流れが使えます。

DAC・PCMと、ROM容量という制約

FMのch6はDACと排他です。DACを有効にしている間、FM6は鳴りません。これは実機の仕様で、MegaTuneでも同じ扱いにしています。ドラムのサンプルを入れるか、FMを6ch使い切るか——という判断を、制作中に迫られる構成です。

PCM素材はWAV / AIFF / CAF / M4Aから読み込み、仕様書の推奨範囲である 11.025kHz mono / 8bit unsigned へ変換します。複数PCMの同時再生は扱いません。

そしてMegaTuneは、Z80 RAM 8KiB推奨音楽ROM 448KiB の見積りを画面に表示します。Z80 RAM側にはドライバ、音色テーブル、チャンネル状態、DACストリームバッファのみを計上し、ノートイベントとPCM本体は実機同様ROM側へ計上します(Z80は68KのROMをバンク切り替えウィンドウ越しに読むため、曲データは8KiBに載りません)。

どちらも目安であり、超過しても再生やWAV書き出しは止まりません。実機ROMへ組み込む段階の指標として使ってください。なお書き出したVGMは実機相当のレジスタ列ですが、最終的なROM組み込みではSGDK / XGM2での変換と実機確認を推奨します。

精度について、できることと保証しないこと

読み込んだVGMの編集前再生にはymfmベースのOpniftを使い、元のレジスタ列を直接処理します。一方、編集後の制作・プレビューにはアプリ独自のコアを使い、YM2612のオペレータ構成、主要レジスタ、PSGの周期、LFSR、DAC排他を再現しています。

チップ個体差やladder effectの完全な電気的再現までは保証していません。リリース用のデータは、BlastEm / Genesis Plus GXや実機でも確認してください。できることと保証しないことを分けて示すのは、HexaChipから続けている方針です。

iPhoneとiPadで、情報の密度を変える

iPadでは3ペイン構成で、トラック、ピアノロール、音色エディタを同時に見渡せます。iPhoneでは5タブ構成に切り替え、いま必要な画面だけを大きく表示します。

アプリはネットワークを使いません。アカウント登録なし、広告なし、トラッキングなし、完全オフラインで動作します。移動中でも、電波の届かない場所でも、動作が変わらないことを前提にした設計です。

製品概要

項目内容
名称MegaTune - FMチップチューンDAW
提供開始2026年8月
対応OSiOS 17.0以降 / iPadOS 17.0以降 / macOS 14.0以降(Apple M1以降)/ visionOS 1.0以降
価格1,200円(買い切り・追加課金なし)
対応言語日本語・英語
カテゴリミュージック
配信App Store
開発・提供株式会社Code and DESIGN

会社概要

項目内容
会社名株式会社Code and DESIGN(Code and DESIGN inc.)
代表者代表取締役 中島安彦
事業内容iOSアプリ・ゲーム・Webサービスの企画・開発・運営、受託開発
Webサイトhttps://code-and-design.jp/
App Store開発者ページ

FM音源のパラメータは、最初は取っ付きにくいものです。ただ、オペレータ同士の関係が音の変化として返ってくる感覚を一度つかむと、プリセットを選ぶのとはまったく別の作業になります。MegaTuneを、その手触りごと持ち歩ける制作環境として育てていきます。ご意見・ご要望はお問い合わせからお寄せください。

※ 記載の内容・仕様・価格は公開時点のものであり、予告なく変更される場合があります。MegaTuneは当社が独立して開発したアプリであり、特定のゲーム機メーカーによる公式製品ではありません。YM2612、SN76489は各社の音源チップの型番です。