← PROJECTS

Poly-Phase
Blender

ひとつのフェーダーで秩序とカオスを行き来する。2つの独立したリズムループを確率的にブレンドするデュアルタイムベースMIDIステップシーケンサー — ポリリズム、フェーズパターン、確率的に変容するグルーヴを生み出す。

GitHubで見る ビルドガイド
プラットフォーム macOS (Standalone / AU / VST3)
フレームワーク JUCE 8 / C++17
バージョン 0.1.0
カンパニー Rhizomatiks

概要

Poly-Phase Blenderは、2つの独立したループ — BaseCompound — を実行し、1つのMIDIストリームにブレンドするスタンドアロン型MIDIステップシーケンサー。オーディオは生成しないため、MIDI出力をドラム音源やサンプラーにルーティングして使用する。

中核となるイノベーションは、数学的な位相関係をひとつのパフォーマンスコントロールに変換すること — 各ステップでどちらのレイヤーが「勝つ」かを決定する確率クロスフェーダー。デンシティゲート、モード選択(Sync/Phase)、テンポ比設定と組み合わせることで、直感的で演奏可能なジェスチャーを通じた複雑なリズムモーフィングを実現する。

Steve Reichのミニマルミュージック・フェージング、現代の確率的生成手法、そしてDJスタイルのパフォーマンスミキシング — 3つの音楽的伝統を融合する。

Polyrhythm Phase Shift Probability MIDI Effect Step Sequencer JUCE / C++
同心リング — Base(外側)/ Compound(内側)

仕組み

ポリリズムの数学

2つのクロックがp:qの比率で動作すると、Baseのq拍とCompoundのp拍が同じ時間内に揃い — ポリリズムが生まれる。位相はドリフトし、周期的に再整列することで、シンプルな数学から進化するリズムパターンを生み出す。

テンポの関係式 BPMcompound = BPMbase × (p / q)

例えば、120 BPMで4:3の比率の場合、Compoundは160 BPMで動作する。Baseの3拍とCompoundの4拍はちょうど1.5秒に収まり — これがポリリズムの1サイクルとなる。

確率ブレンダー

クロスフェーダーはオーディオミックスではなく — イベント裁定である。各ステップ境界で、ブレンダーはフェーダー位置Xに基づいて、どちらのレイヤーのパターンを出力するかを決定する。

  • X = 0.0 Baseパターンのみ
  • X = 0.5 50/50の確率 — どちらのレイヤーも「勝つ」可能性がある
  • X = 1.0 Compoundパターンのみ

デンシティゲートがブレンド後にイベントを間引き、リズム構造を維持しながらテクスチャの密度をコントロールする。

2つの動作モード

Mode A

Sync

両ループが同一テンポで動作。比率は無視され、BaseとCompound間ではグリッド/ステップ数のみが異なる。安定した同期リズムのインタラクションを生み出す。

Mode B

Phase

Compoundのテンポが選択した比率でスケーリングされ、漸進的なドリフトとフェージングを生み出す。ループは徐々にずれ、周期的に再整列する — Steve Reichスタイルのフェーズミュージックを、DAW上で演奏可能にした。

ループ制御

Free-Run

独立走行

両ループが自由に走行。ループ長の最小公倍数に基づいて周期的にヘッドが揃う。長尺の進化と、徐々に「合流する」瞬間を生み出す。

Hard Sync

相互リセット

どちらかのループがヘッドに到達すると、両方がステップ1から再開する。オシレーターのハードシンクのように — 長いループが「切り詰められ」、パーカッシブな効果を持つタイトなリズムパターンを生む。

機能

パフォーマンスタブ

ライブ演奏とオートメーションのためのメインインターフェース。すべての主要パラメータはオートメーション対応設計。

エディットタブ

2つの独立した8レーンドラムステップシーケンサーによるパターンプログラミング。

シーケンサーコントロール

  • Steps 16(4/4の16分音符グリッド)または24(3連符グリッド)/ ループ
  • 8 Lanes BD, SD, CH, OH, LT, MT, CP, RS — 3段階ステップ(Off / On / Accent)
  • Groove Swing、Layback(SD/CP/RS)、Humanize、Accent / ループ
  • Actions クリア、シフト ←/→、ループ間コピー、Undo/Redo

パターンジェネレーター

  • Genre + Gen ジャンル別確率的パターン生成(非AI)
  • Constraints ダウンビートキック、バックビートを保証;CH+OHの重複を防止
  • Safety Net 疎なレーンはファクトリープリセットのシードから借用し、最低密度を確保

プリセット & MIDI I/O

  • Presets .ppbpatternファイル、10個のファクトリープリセットが初回起動時に自動インストール
  • Storage Base/Compoundステップ数、8レーンマスク、グルーヴパラメータ
  • Dirty Tracking Preset* で未保存の変更を示す
  • MIDI Import Kit Rootを使用してノートオンイベントをマッピング;16/24ステップを自動選択
  • MIDI Export 標準.midファイル(960 PPQN) — Base、Compound、または両方
  • Undo / Redo Cmd/Ctrl+Z / Cmd/Ctrl+Shift+Z、最大128ステップのアンドゥ

MIDIドラムマップ

Kit Root Note(デフォルト C1 / MIDI 36)を基準とした固定8レーンドラムマップ:

レーン ラベル オフセット デフォルトノート
0BD+0C1 (36)
1SD+2D1 (38)
2CH+6F#1 (42)
3OH+10A#1 (46)
4LT+5F1 (41)
5MT+9A1 (45)
6CP+3D#1 (39)
7RS+1C#1 (37)

技術アーキテクチャ

シグナルフロー

ホストトランスポート / 内部クロック
デュアル位相アキュムレータ
ステップトリガー (Base + Compound)
確率ブレンダー (X)
デンシティゲート
MIDI出力

コアエンジン

  • Phase Counters 倍精度浮動小数点位相アキュムレータによるサブサンプルMIDIタイミング精度
  • Rational Ratios 浮動小数点ドリフトを防ぐため、整数の分子/分母で格納
  • Note Off Safety ボイスマネージャーがすべてのノートオンに対してノートオフを保証;トランスポート停止/シーク時にAll Notes Offを送信
  • Deterministic PRNG 再現可能な確率判定のためのシードベース乱数

実装

  • Language C++17
  • Framework JUCE 8.0.12
  • Build System CMake 3.20+
  • Formats Standalone(デフォルト)、AU + VST3(オプション)
  • Threading リアルタイムセーフなオーディオスレッド;UIはatomics/snapshotsで読み取り
  • Virtual MIDI 仮想MIDIデバイスを作成(IACドライバー不要)

ソース構成

Audio Engine

PluginProcessor

デュアルクロックエンジン、位相アキュムレータ、ステップスケジューリング、確率ブレンディング、ボイス管理付きMIDI出力。ホスト同期、内部クロック、トランスポート状態を処理。

UI Shell

PluginEditor

タブ付きインターフェース(Performance / Edit)を備えたメインエディタ。FILデザインシステムに準拠したカスタムUiLookAndFeel — ダークモードファースト、ハイコントラスト、ミニマルクローム。

Performance

PerformanceTabComponent

ライブ再生コントロール:Clock、Mode、Ratio、Crossfader、Density、Output設定、Seed。ConcentricRingsComponentビジュアライゼーションをホスト。

Pattern Edit

EditTabComponent

2つのDrumStepSequencerComponent、グルーヴコントロール、ジャンルベースパターンジェネレーター、プリセット管理、MIDIインポート/エクスポート、アンドゥ/リドゥシステム(128ステップ)。

Visualization

ConcentricRingsComponent

Base(外側リング)とCompound(内側リング)の位相位置とドリフト挙動を表示するリアルタイム放射状ビジュアライゼーション。

Sequencer Grid

DrumStepSequencerComponent

8レーン × 16/24ステップのドラムグリッド。3段階ステップ状態(Off/On/Accent)、マウスドラグペインティング、プレイヘッドトラッキング。

ユースケース

IDM / Experimental

複雑なビートデザイン

2つのタイムベースを確率的モーフィングでブレンドし、Autechre/Aphex Twinスタイルの緻密なリズムを生成。通常は複雑なマルチクリップ編集が必要な作業が、ひとつのクロスフェーダー操作で実現できる。

Ambient / Generative

変化するテクスチャ

異なるループ長をデンシティゲートでミックスし、同じパターンが二度と繰り返されない疎で変化し続けるリズムテクスチャを生成。ジェネラティブアンビエント作品に最適。

Live Performance

リズミックモーフィング

クロスフェーダーを使って、安定したグルーヴから複雑なポリリズミックカオスへ、そして再び戻るトランジションを演奏。リズムの解体でテンションを高め、シンクに戻すことでリリースする。

Trap / Hip-Hop

ハイハットバリエーション

ハイハットパターンをストレートな16分音符ロールから、3連符の影響を受けたCompoundリズムへとモーフィング。確率ブレンダーが、固定パターンでは不可能なオーガニックなバリエーションを生み出す。

背景と差別化

Poly-Phase Blenderは、リズムツールの領域でユニークな交差点に位置する。既存のツールがパズルの一片を提供するのに対し、このツールはそれらを統合されたパフォーマンス楽器として結合する。

リファレンス 提供する機能 差別化ポイント
Stochas 確率重視のステップシーケンサー 2つのタイムベース間のクロスフェーディングを演奏可能な楽器として提供していない
Torso T-1 ハードウェアジェネラティブ/ポリリズムシーケンサー ビジュアルドリフトフィードバック + DJスタイルの確率ブレンディングを追加
ユークリッドシーケンサー アルゴリズミックリズム生成 安定したグルーヴとドリフトするグルーヴ間の演奏可能なモーフが欠けている
DAW確率ツール ノート単位の確率機能(内蔵) 単一グリッド内での動作;デュアルタイムベースフェージングモデルがない
中核的な差別化は、数学的な位相関係をひとつのパフォーマンスコントロールに変換すること — 2つのリズミックアイデンティティ間の確率駆動モーフである。

ビルド & セットアップ

オプションA:ローカルJUCE(推奨)

JUCEをローカルにクローン済みの場合:

cmake -S . -B build -DJUCE_DIR=/path/to/JUCE
cmake --build build

オプションB:JUCEの自動取得

JUCEが自動的にダウンロードされる(設定時にネットワーク接続が必要):

cmake -S . -B build
cmake --build build

プラグインフォーマット(オプション)

Standaloneに加えてAU/VST3フォーマットもビルドする場合:

cmake -S . -B build -DPPB_BUILD_PLUGIN_FORMATS=ON
cmake --build build

クイックスタート

  1. 01 Poly-Phase Blender.app を起動
  2. 02 Editでステップ数(16または24)を選択し、レーン(BD/SD/CH/OH/LT/MT/CP/RS)をプログラム
  3. 03 PerformanceでClockをAutoに設定し、Play(Internal)を押す
  4. 04 DAWでMIDI入力 Poly-Phase Blender を選択(仮想デバイス — IAC不要)
  5. 05 Crossfader XDensityでBaseとCompoundをモーフィング

要件

  • CMake 3.20以上
  • C++ Compiler C++17対応(Xcode / Clang推奨)
  • JUCE 8.0.12(自動取得またはローカル)