HN 日本語サマリー

← 一覧へ戻る
プログラミング

Show HN: MCPをサポートする実験的なパターンファーストDAW

Show HN: An experimental pattern-first DAW that supports MCP (github.com)

23 pointsby androsynth8912 コメント

要約

Blokkilyは、パターン中心の実験的なデジタルオーディオワークステーション(DAW)です。単一のイベントモデルが、トラッカー、ピアノロール、ステップグリッドの3つの同期エディタを駆動し、これらはマルチトラックソングの1レーンとなります。CLAPプラグインフォーマットを必須とし、LLMコンポジションアシスタントも搭載しています。リアルタイムのプラグイン境界と音楽モデルは、ノート、コード、マイクロタイミング、確率などをカバーします。プロジェクトはセッション全体を保存・リロードでき、編集中の曲の再生を中断せずにリアルタイム編集が可能です。

全文翻訳

Blokkilyは実験的なパターンファーストDAWです。単一のイベントモデルが、トラッカー、ピアノロール、ステップグリッドの3つの同期エディタを駆動し、これらはマルチトラックソングの1レーンとなります。CLAPは必須のネイティブプラグインフォーマットであり、互換性のアドオンではありません。ワークステーションのスクリーンショットは、テンポランプ、7/8拍子バー、キー指定およびスライスされたサンプラー、CLAP、VST3、SoundFontインストゥルメント、ワープされたオーディオクリップ、内蔵およびCLAP/VST3エフェクト、リターン/センドバス、ゲインおよびエフェクトオートメーション、カウントイン、そして決定論的な入力からMIDIを受け取った2つのアームドトラックを含む、レンダリングされたbdd_session_everythingセッションです。エディタの上部には、LLMコンポジションアシスタントのプロンプトバーがあります(下記参照)。フレームワークに依存しない音楽モデルとリアルタイムプラグイン境界が、それらすべての下にあります。モデルはノート、セマンティックコード、転回形、ストラミング、マイクロタイミング、確率、ラチェット、ループ条件、パラメータロックをカバーします。また、CLAPモジュールをロードし、エントリポイントを初期化し、ファクトリに問い合わせ、プラグインディスクリプタと機能を記録するネイティブCLAPカタログも含まれています。CLAPインスタンスアダプタは、作成、初期化、アクティベーション、サンプル精度ノート/パラメータイベント、ステレオ処理、状態ストリームを実装します。JUCEベースのVST3アダプタは、バンドルとデフォルトのシステム場所をスキャンし、同じリアルタイム境界を通じてプラグインをインスタンス化し、パラメータオフセットで各ブロックを分割するため、VST3オートメーションもサンプル精度になります。パラメータロックはスケジューラによってサンプル精度パラメータイベントにコンパイルされ、両方のプラグインアダプタによって適用されます。オートメーションはパラメータの値を設定し、モジュレーションはそれをオフセットしますが、どちらも互いを消去しません。内部FluidSynthアダプタはSF2/SF3ファイルをロードし、サンプルオフセットノートイベントを受け入れ、ステレオオーディオをレンダリングし、プリセットを選択し、プロジェクト状態を永続化します。FluidSynthは64フレームブロックの開始時にのみボイスを開始するため、アダプタはバンクのサンプルデータを共有するレンダラーの小さなプールを維持し、各ノートをそのノート自身のフレームで始まるブロックで再生します。これにより、パターン長がサンプル単位でいくつであっても、パターンの各繰り返しは位相が合って聞こえます。バンク自身のコーラスは、フリーランニングLFOのように、独自のクロックで実行されます。プロジェクトはセッション全体を保存・リロードします。名前付きパターンは、コード、ロック、ラチェット、マイクロタイミング、ループ条件とともに、チャンネルストリップとクリップを持つトラック、そしてすべてのCLAP、VST3、SoundFontインストゥルメントとエフェクトの不透明な状態とともに保存されます。アロケーションフリーのリアルタイムトランスポートは、パターンティックをサンプルイベントにコンパイルし、パターンをループさせ、いずれかのインストゥルメントアダプタを駆動し、低レイテンシーの非インターリーブステレオRtAudioコールバックに供給します。曲の再生中に編集しても、再生は中断されません。編集はアレンジメントを再コンパイルし、次のブロック境界でレンダリングコールバックに渡しますが、オーディオスレッドでのアロケーション、グラフの再構築、インストゥルメントの再ロード、プレイヘッドの移動はありません。再生中のノートステップが削除されても、鳴りっぱなしになるのではなく解放されます。どのエディタに入力されたノートも、実行中のエンジンを通じて試聴でき、停止中のトランスポートでも再生中のトランスポートでも可能です。インストゥルメントがない状態で開かれたセッションには、マシンのGeneral MIDI SoundFont(ドラムトラック上のパーカッションバンク)が提供されるため、ワークステーションは開いた瞬間に音を出します。セッションは単一のパターンではなく、曲です。名前付きパターンは、ミキサートラックのタイムラインにクリップとして配置され、各トラックは独自のインストゥルメントとチャンネルストリップ(デシベル単位のゲイン、コンスタントパワーパン、ミュート、ソロ、ピークメーター)を持ち、マスターフェーダーを通じて合計されます。ソングエンジンは各トラックのタイムライン全体を一度コンパイルし、アロケーション、ロック、I/Oを行わずにレンダリングします。クリップの各繰り返しは、そのパターンの次のループとしてカウントされるため、確率とループ条件はアレンジメント全体で機能し続けます。ミキサーの操作は実行中のエンジンに到達するため、曲の再生中にフェーダーを操作できます。同じエンジンがアレンジメントを16ビット、24ビット、または32ビット浮動小数点WAVEファイルにバウンスし、試聴したものとサンプル単位で同一になります。セッションは、それが記述されているチューニングとスケールも指定します。チューニングはセント単位で保持されます(任意の期間の等分割、合理的および歴史的なチューニング、Scalaスタイルのリスト)。したがって、12個の均等な半音は、多くのチューニングの1つにすぎません。ノートは、インストゥルメントに伝えられる12音キーと、そこからのリチューニング値を持ちます。コードの各ボイスも同様です。これにより、19音またはクォータートーンのパターンが、CLAP、VST3、SoundFontシンセに、最も近い近似ではなく、記述された通りのピッチとして到達します。4つのプレイ可能なサーフェスが同じチューニングとスケールを投影します。ピアノキーボード、7つのレイアウトのアイソモルフィックグリッド(六角形と正方形、それぞれウィンドウ全体または縦方向に実行)、9つの弦チューニングのフレットボード、および各ハーモニーを数字で名付け、転回形ごとにスタックするコードパッドです。いずれかを再生すると、停止中のトランスポートでも選択されたトラックのインストゥルメントを通じて試聴され、カノニカルパターンの選択されたステップに書き込まれます。そこでは、すべてのエディタが曲自身のチューニングでそれを名付けます。トラッカーはセクションのインストゥルメントトラックを横並びに表示します。TabとShift+Tabで次のチャンネルまたは前のチャンネルを選択します。長いパターンは縦スクロールします。ピアノロールの矢印ボタンは、ピッチウィンドウをオクターブ単位で移動し、MIDIキー0〜127に到達します。アレンジメントには水平スクロールと+/-ズームコントロールがあります。長い曲でも使用可能なバー幅を維持します。プロジェクトパネルのMIDI IN / MIDI OUTボタンは、Standard MIDI Filesをインポートおよびエクスポートします。エクスポートは、再生に使用されるのと同じソングスケジューラから、トラック名、テンポ、メーターとともにアレンジされたノートとコントローラーを書き出します。インポートはフォーマット0と1を受け入れ、チャンネルをインストゥルメントパートに分割し、4小節セクションを1つのアンドゥ可能編集として追加します。現在の曲のテンポとインストゥルメントを保持します。追加トラックにはインストゥルメントの割り当てが必要です。インポートはレコーディンググリッドを使用します。16分音符のノートは共有タイミングを持つコードになり、ノートの長さはセクション長に制限されます。MIDI交換は、プラグイン状態、パラメータオートメーション、ノートごとのエクスプレッション、オーディオクリップ、マイクロトナルリチューニングを省略します。テンポランプは16分音符テンポステップとしてエクスポートされます。これはノート交換であり、プロジェクトバックアップではありません。MIDIキーボードも曲を再生します。キーはポート自身のスレッドに到着し、ロックフリーキューを通じてレンダリングコールバックに到達するため、ビジーなインターフェイスの後ろでノートが遅延することはありません。停止中の曲でも再生中の曲でも、選択されたトラックのインストゥルメントを通じて鳴り、コントローラーのキーは画面上のピアノのキーと同様に、曲のチューニングとスケールの度数になります。レコーディングがアームされている場合、実行中の曲はプレイヘッド下のパターンに再生されたものを書き込みます。各ノートは最も近いステップに着地し、グリッドからのずれはマイクロタイミングとして保持され、キーが押されていた長さだけ持続し、そのステップに既に存在するノートとコードとして結合します。書き込まれるのは、エンジンが聞いたもの、それを聞いた位置、そして1回のテイクが1回のundoステップです。バウンスはキーボードを聞いたり記録したりしません。エディタの上にあるプロンプトバーは、LLMコンポジションアシスタントにオープンなパターンに書き込むように求めます。「マイナーペンタトニック上昇」や「オフビートハット」のような行は、選択されたバックエンド(デフォルトではローカルOllamaモデル、キーが指定されている場合はGeminiまたはMiniMaxエンドポイント)に送信され、返信は他の入力と同様に解析およびクランプされ、結果はプロデューサーが適用をクリックするまでバー上に提案として表示されます。それまでは何も曲に到達せず、1回の生成は1回のundoステップです。アシスタントはGUIスレッドのみに存在し、オーディオスレッドはLLM呼び出しを見ることはありません。ワイヤダイアレクト、バックエンド、およびネットワークなしでレンダリングされたバーをエンドツーエンドで駆動するbdd_llm_assistantゲートについては、docs/llm-assistant.mdを参照してください。ビルド要件: Qt 6.5+、FluidSynth、RtAudio、RtMidi、libsndfile、libsamplerate、Rubber Band 4(pkg-configで検索)、および検証ゲート用のSoundFont。ライセンス注: clip warp(タイムストレッチとピッチシフト