LSDjで作った曲をiPhoneやiPadでも編集したい。けれど、曲を開くためだけにROMを動かすアプリにはしたくない。タッチ操作、大きな画面、複数ファイルの同時再生、分かりやすい書き出しといった、モバイルアプリだからできる制作環境を作りたい。

その考えから、iPhone・iPad向けのネイティブ・チップチューントラッカー「HexaChip」を開発しました。LSDj互換ファイルを読み込み、4つの音源チャンネルを編集し、対応形式へ再び書き出せます。

💡 HexaChipの3行まとめ
.sav.srm.lsdsng.LSDPRJ.sawを読み込み、編集、再書き出し
② 最大4プロジェクト・16チャンネルを、共通BPMと同じオーディオバッファ境界で同期
③ トラッカー、ピアノロール、16パッドを備えたROM不要のネイティブ制作環境

現在、App Storeでの公開に向けて準備を進めています。この記事では、LSDjユーザーの制作をどうモバイルへ広げようとしているのか、HexaChipの設計と主な機能をご紹介します。

「実機でやればいい」にしないために

実機の操作感や制約には、それ自体の魅力があります。一方で、フレーズの見通し、音の試しやすさ、複数曲の組み合わせ、ファイル管理には、iPhoneやiPadの画面と処理能力を生かせる余地があります。

HexaChipは、実機の画面をそのまま大きくしたアプリではありません。同じ16ステップのPhraseを、目的に応じて異なる方法で編集できます。

編集画面向いている操作
トラッカーNOTE、INS、CMD、VALを行単位で精密に編集
ピアノロール音程、長さ、ベロシティを視覚的に調整
16パッドステップ入力、リアルタイム記録、ノートの試奏

トラッカーでコマンドを詰め、ピアノロールで旋律の形を確認し、パッドで音を探す。どの画面でも同じPhraseを編集するため、入力方法を切り替えても内容は分断されません。

さらに、Pattern Brushでは範囲を選び、コピー、貼り付け、移調、反転、回転、消去を行えます。反復するフレーズやバリエーションを、16行ずつ打ち直す必要はありません。

HexaChipのピアノロールでLSDj互換フレーズを編集しているiPad画面

LSDjファイルを読み込むだけで終わらせない

過去の曲を開けても、編集結果を持ち出せなければ制作フローには組み込みにくくなります。HexaChipでは、読み込みと書き出しを両方用意しました。

形式読み込み書き出し用途
.sav / .srm.savSRAM全体を扱う
.lsdsng選択した曲を扱う
.LSDPRJLSDPatcherのプロジェクトを扱う
.sawSAV互換の保存形式を扱う
HexaChip project複数プロジェクトと編集状態を保持
.wav48kHz・16-bit PCMのステレオミックス

同一形式へ未編集のまま再書き出す場合は、元のバイト列を保持します。編集した場合も、HexaChipが解釈しない領域はrawデータとして残し、互換性のために再書き出しへ引き継ぎます。

.LSDPRJに含まれるKit bankも保持します。ただし、ROM由来のKitをHexaChip内で自動デコードして再生する機能ではありません。対応している範囲と保持するだけの範囲を分け、ファイルを開けたように見せることより、元データを不用意に壊さないことを優先しています。

2つのSAVを重ね、最大16チャンネルを同期する

HexaChip projectには、最大4つのLSDj互換プロジェクトを追加できます。各プロジェクトがP1、P2、WAV、NOIの4チャンネルを持つため、合計16チャンネルです。

すべてのプロジェクトは共通BPMで進み、同じオーディオバッファ境界でイベントを反映します。プロジェクトごとのゲインとミュートも用意しました。たとえば、2つの.savに分けて作られた曲を一つのタイムラインで鳴らす、片方をリズム、もう片方を旋律として構成する、といった使い方ができます。

HexaChipで複数のSAVプロジェクトと16チャンネルを管理しているiPad画面

実機を増やすこととは違う方向で、既存ファイルを素材として組み合わせられることを、アプリならではの核にしています。

再生位置を、編集できる場所として表示する

再生中は、Song Row、Chain、Phrase、Stepをリアルタイムに表示します。停止したあとも停止位置が残るため、気になった音を聞いた直後に、その場所へ移動して編集できます。

トラッカーでは再生中の行を追い、アレンジ画面では進行中のSong Rowを確認できます。「いま何が鳴ったのか」を耳だけで探さず、再生位置と譜面を結びつける設計です。

ROMラッパーではなく、ネイティブ音源として作る

HexaChipはLSDj ROMやGame Boy CPUを実行するエミュレーターではありません。Pulse 1、Pulse 2、Wave、Noiseの各チャンネル、Envelope、Duty、Length、Pan、Table、Groove、32サンプル・4-bit Waveなどを、iOS向けのネイティブ音源として実装しています。

発音イベントはUIのタイマーで一音ずつ鳴らすのではなく、オーディオ側のタイムラインで処理します。画面描画やスクロールが重なっても、演奏のタイミングがUI更新に引きずられない構成です。

一方、計算上きれいな矩形波やノイズを鳴らすだけでは、実機らしい聴感にはなりません。HexaChipにはDMG、MGB、CGB、AGBのハードウェア・キャラクターと、Authentic、Clean、ExtendedのFidelityを用意しました。高域の丸まり、チャンネル間のバランス、ノイズの質感などを調整し、用途に応じて音の個性を選べます。

実機の個体差や再生環境まで完全に同一にするものではありません。互換再生と制作のしやすさの間で、継続的に検証と調整を重ねています。

iPhoneとiPadで、同じ機能を違うレイアウトに

iPhoneでは、アレンジ、編集、音色、プロジェクトをタブで切り替え、片手でも主要画面へ移動しやすくしました。iPadではサイドバーと広い編集領域を使い、Song、Chain、Phraseや音色パラメータを見渡せる構成です。

小さい画面へ情報を無理に詰め込むのではなく、端末ごとに操作の密度を変えています。日本語と英語に対応し、前回の編集状態は端末内へ自動保存されます。

書き出しは、保存先を選んでから処理する

WAVなどの生成に時間がかかる場合、先にすべてのデータを作ってから保存画面を開くと、ボタンを押しても反応がないように見えます。

HexaChipでは、書き出す形式を選ぶと最初に保存先を確認します。保存が確定してからデータを生成し、処理中は進捗を表示して他の編集操作を一時的に止めます。完了後はiOS・iPadOSの共有や「ファイル」アプリへ自然に受け渡せます。

互換アプリとして、できることを正確に伝える

LSDjにはバージョン差があり、保存データには曲、音色、Table、Wave、Kitなど多くの領域があります。HexaChipは、すべてのLSDjバージョン、コマンド、外部Kitの完全再現を保証するものではありません。

大切なファイルはバックアップを残したうえで利用してください。読み込み時には形式や互換状態を表示し、未対応領域を保持している場合も区別して案内します。詳しい手順と注意点はHexaChip操作マニュアルにまとめています。

なお、HexaChipは独立して開発している互換アプリであり、LSDjや各ハードウェアの開発元による公式製品ではありません。公式ROM、公式サンプル、公式フォント、公式ロゴは同梱していません。

App Store公開に向けて

HexaChipは、iOS 17/iPadOS 17以降のiPhone・iPadに対応します。App Storeでの公開状況はHexaChip製品ページでお知らせします。

過去のLSDj曲を開くところから、タッチで編集し、複数ファイルを重ね、ふたたび制作ファイルやWAVとして持ち出すところまで。HexaChipを、チップチューン制作の定番として長く使える道具へ育てていきます。