My Web App

phrase_motif_generator トリセツ

これは何をするツールか pad_drone_generatorとは別モデルのツールで、拍のグリッドに縛られない不規則なリズムで「フレーズ」を生成する。順次進行(隣り合う度数への移動)を主体にして旋律の輪郭を作り、フレーズごとに”間(ま)”を挟むことで、機能和声の解決(V→I)に頼らないモーダルな旋律線を作れる。ドリアン/リディアンのようなモード系スケールと特に相性が良い。

基本の使い方

  1. 「1. 音階・音域」はpad_droneと同じ考え方(ルート音・スケール・音域・度数重み付け)
  2. 「2. フレーズの性格」でプリセットを選ぶと、下の数値(順次進行率・跳躍率・音の長さ・フレーズ音数・間の長さ)が自動でセットされる。そこからさらに手動で微調整可能
  3. 「3. ベロシティ&ニュアンス」で声部数、ベロシティ範囲を設定。「フレーズを弱→強→弱の自然な強弱で整形する」をONにすると、フレーズの最初と最後がやや弱く、中間が強くなる自然な抑揚が付く
  4. 「4. 長さ&書き出し」で合計時間を指定して生成→書き出し

性格プリセットの選び方の目安

  • 瞑想的:順次進行中心、音が長く、間も長い。一番落ち着いた質感
  • 漂う:標準的なバランス、間はやや長め
  • ためらいがち:フレーズが短く(2〜3音)、その後の沈黙が長い。断片的な質感
  • 活発:跳躍が多く、音が短く、間も短い。動きのある質感
  • 開放的:跳躍が多いが音は長く、フレーズも長い。伸びやかで大きな質感

「跳躍」とは スケール上で2〜4度分離れた音への移動(だいたい3度〜5度の跳躍に相当)。音域の上限・下限に達すると跳ね返って、自然な弧を描くように音域内に戻る。

生成ごとに性格プリセットもランダムに切り替えるとは pad_drone側の「プロファイル自動化」と同じ考え方。ONにすると生成のたびに5つのプリセットから1つが自動選択され、UI上の数値も書き換わる。


pad_drone_generator_v2 トリセツ

これは何をするツールか 指定した音階・音域の中から持続音(パッド/ドローン)を非同期に重ねて生成し、MIDIファイルとして書き出すツールです。生成した音符の並びに音楽理論的な妥当性(トライアド重視の重み付け)を持たせることができます。

基本の使い方

  1. 「1. 音階・音域」でルート音とスケールを選ぶ。最低音・最高音のオクターブ範囲も指定
  2. 「2. パッドの動き」で同時発音数(声部)、1音の長さ、オーバーラップ(音の重なり)、ベロシティ範囲を設定
  3. 「3. 長さ&書き出し」で合計時間(分)を指定し「生成する」を押す
  4. 問題なければ「.midとして書き出す」でファイルをダウンロード
  5. BitwigなどのDAWにインポートし、パッド系シンセをアサインする(アタック/リリースを長めに設定すると自然に仕上がる)

度数重み付け(トライアド重視)とは ONにすると、音階の中でも1・3・5度(トライアド)が優先的に選ばれ、4・7度は”スパイス”として控えめに、2・6度はさらに控えめに出るようになる。OFFにすると全音が均等な確率で選ばれる(素のランダム)。手動で重みを直接カンマ区切りで指定することも可能。

生成ごとに音域・密度・重みプロファイルもランダム化するとは ONにすると、生成ボタンを押すたびに「低音ドローン/標準/スパース/スパイス強め/高音シマー」の5キャラクターから1つが自動選択され、音域・音の長さ・声部数・重みがまとめて切り替わる。同じ設定のまま生成ボタンを押し直すだけでは、曲の統計的な性質(密度・音域・重心)は変わらず、”別の曲”には聴こえにくいため、これは”生成のたびに違う曲”を作りたいときに使う機能。統計的な性質が異なる本当の別バリエーションが欲しいときはON、狙った音域・密度をきっちり保ちたいときはOFFのまま使う。

豆知識 生成のたびにランダムシードは変わるが、シード自体は保存されないため、気に入った生成結果を再現することはできない(ボタンを押すたびに二度と同じにはならない)。


phrase_shuffler_v2 トリセツ

これは何をするツールか 既存の複数の.midファイル(「フレーズ」)を読み込み、ランダムな順序でつなぎ合わせて1本のMIDIファイルに書き出すツールです。pad_droneやphrase_motifのような「音符そのものを生成する」ツールではなく、すでにある素材(フレーズ)を再配置するタイプです。各.midファイル内の複数トラック構造(パート分け)もそのまま保持されるのが特徴です。

基本の使い方

  1. 「1. フレーズを読み込む」に.midファイルをドラッグ&ドロップ(複数可)。読み込まれた各ファイルは表 S1, S2, S3…として一覧表示され、ファイル内のトラック構成・長さが自動表示される
  2. 各フレーズの「重み」を数値で設定できる(大きいほど選ばれやすくなる。デフォルト1)
  3. 「2. 設定」でBPM、出力方法(合計時間で指定/再生回数で指定)を選ぶ
  4. 「同じフレーズの連続を避ける」をONにすると、S1→S1のような直後の繰り返しが起きなくなる
  5. 「3. 生成&書き出し」で「ランダム生成」→ 順序が S1→S3→S2→… のように表示される。「+1 追加」で末尾にもう1つ足せる。問題なければ「.midとして書き出す」

多トラック対応の意味 各フレーズ(.midファイル)が例えば「メロディ・トラック」「ベース・トラック」の2本立てだった場合、シャッフル後の出力も2トラックのまま出てきます。パート分けを保ったまま、フレーズの並び順だけをランダム化できます。


phase_loom(位相ラボ)トリセツ

これは何をするツールか 1つの短いメロディ(モチーフ)を、Steve Reich的な「フェイジング」またはBrian Eno/Max Richter的な「オスティナート再構築」の2種類の手法で長尺化するツールです。pad_droneやphrase_motifとは違い、ランダムに音を選ぶのではなく、決まったモチーフを反復・変形させることで生成的な広がりを作ります。

基本の使い方

  1. 「モチーフ(メロディ)」で1音ずつ音高・音価を設定(最大32音)。Bitwigでピアノロールに書いたメロディをMIDI書き出しして読み込むこともできる(和音は最高音のみ、単旋律として扱われる)。「▶ モチーフを試聴」でブラウザ内で簡易再生可能
  2. 「全体設定」でテンポと長さ(分)を指定
  3. 「変換モード」でフェイジングオスティナートを選ぶ
  4. 「↓ MIDIを生成してダウンロード」

フェイジングモードとは 同じモチーフを、レイヤーごとに少し違う長さのループ(モチーフの長さ+ギャップ)で重ねて鳴らし続けます。ループ長が層ごとに違うため、時間が経つにつれ各層の位相がずれていき、聴感上の関係性が変化し続けます(Reichの”Piano Phase”の原理)。「シンプル(3層)」と「リッチ(4層・後から入ってくる層あり)」が選べます。「微変化」を上げると、繰り返しのたびに音がランダムにスキップされたり、スケール内の隣接音にずれたりする確率が上がります。シード値があり、同じシードなら同じ結果を再現できる(乱数固定・pad_droneやphrase_motifにはないこの機能はphase_loom固有)。

オスティナートモードとは 3つの異なる性格の声部を重ねます:

  • モチーフ冒頭数音を低音・小音量で高速反復する「オスティナート」層
  • モチーフ全体をゆっくり(2〜4倍に音価を引き伸ばして)奏でる層
  • モチーフに含まれるユニークな音高だけを使った、ゆっくり上下するアルペジオ・パッド層

これも同様にシード値で結果を固定・再現できます。


tempo_canon(テンポ・カノン)トリセツ

これは何をするツールか 1つのモチーフを複数トラックに複製し、トラックごとに再生速度(テンポ比)を変えることで、比例カノン(Conlon Nancarrowの”テンポ・スタディ”の考え方)を作るツールです。速度比を単純な整数比(1:1.5:2など)にすると、周期的に拍が一致する瞬間が生まれ、完全な無秩序にはなりません。

基本の使い方

  1. 「モチーフ」はphase_loomと共通の仕組み(音高・音価を手入力、またはMIDI読み込み、試聴可能)
  2. 「全体設定」でテンポ・長さを指定
  3. 「トラック(速度比&開始ズラし)」で各トラックを設定(最大6トラック)
  4. 「↓ MIDIを生成してダウンロード」

各トラックの設定項目

  • モード:「固定」(速度比が曲を通して一定)か「ドリフト」(開始比率→終了比率へ曲の間に直線的に変化していく)
  • 速度比:1.0=原速、1.5=1.5倍に間延び、2.0=倍の長さ(数値が大きいほどゆっくり)
  • 開始ズラし:このトラックが何小節後から入ってくるか(カノンの「後発声部」を作る)
  • 音量:トラックごとのベロシティ

phase_loomとの違い phase_loomのフェイジングは「ループの長さ」をずらすことで位相が動くのに対し、tempo_canonは「再生速度そのもの」をトラックごとに変えることで関係性を作ります。似ているようで発想の起点が違う設計です。シード値はなく、常に決定論的(同じ設定なら毎回同じ結果)です。



半自動動画生成”Slice-Reconstructor”AEマニュアル(v1)

1枚の静止画を帯状に分解し、After Effectsで無限スクロールさせる動画を作るための手順。ウェブアプリでの分解と、AEでの動き付けを組み合わせた半自動フロー。


全体の流れ

  1. ウェブアプリで元画像のスライス設定を決める
  2. 設定をJSONテンプレートとして保存
  3. AE用レイヤーZIPを書き出す
  4. AEに読み込み、2種類のExpressionで動かす
  5. 背景用の静止画を最下層に敷く
  6. 完成後、ネタを差し替えたいときは同じ設定JSON+同サイズの新しい画像で再書き出しし、AE側はReload Footageで中身だけ入れ替える

1. ウェブアプリでの設定(slice-reconstruct.html)

  1. 画像を読み込む
  2. 「向き」「帯の太さ」「不規則さ」「対象範囲」「seed」を好みの見た目になるまで調整
    • シフト量・分布・発生確率は静止画プレビュー用のパラメータで、AE用ZIP書き出しには影響しない(ZIPは常に加工なしの生の帯として出力される)
  3. 見た目が決まったら「設定を保存 (.json)」でテンプレートとして保存しておく
    • 次回、別の画像で同じ帯割りを再現したいときはこのJSONを「設定を読み込む」から読み込む
    • 画像サイズが変わってもシフト量スライダーの上限は自動調整される

2. AE用レイヤーZIPの書き出し

  1. 「帯レイヤーをZIPで書き出す」を押す
  2. ZIP内にはキャンバス全体サイズの透明PNGが帯の枚数分(slice_001.png〜)入っている。同封のREADME.txtに枚数・設定値も記録される
  3. 全ファイルを解凍しておく

3. AEへの読み込み

  1. File > Import > File... で解凍したPNGを全選択して読み込む(連番シーケンスとしては読み込まない)
  2. 全レイヤーを選択したままコンポのタイムラインにドラッグ(全PNGがキャンバス全体サイズなので位置は自動で揃う)

4. 動きを付ける(Expression 2種類、併用可)

4-1. Position(直線的に流れる動き)

レイヤーのPositionをAlt/Optionクリックしてexpressionを追加:

seedRandom(index, true);
speed = random(30, 150); // レイヤーごとのランダムな速度(px/秒)
x = speed * time;        // 右へ流れる。左なら "-" を付ける
[value[0] + x, value[1]]

1レイヤーに書いたら、コピーして全レイヤーのPositionに一括ペースト。index(レイヤー番号)をseedに使っているので、レイヤーごとに自動で違う速度になる。

左右どちらに流れるかもレイヤーごとにランダムにしたい場合:

seedRandom(index, true);
dir = random(0, 1) < 0.5 ? -1 : 1;
speed = random(30, 150);
x = dir * speed * time;
[value[0] + x, value[1]]

4-2. Offset(帯の中身だけを巡回スクロールさせる、黒み防止)

Positionだけだとレイヤーがコンポ外に出た部分が黒くなる。中身を巡回させたい場合はこちら。

  1. レイヤーを選択(複数選択可)し Effect > Distort > Offset を適用
  2. OffsetのShift Center Toにexpressionを追加:
seedRandom(index, true);
w = thisComp.width;
speed = random(30, 150);
dir = random(0, 1) < 0.5 ? -1 : 1;
baseX = w / 2;
x = baseX + dir * speed * time;
x = ((x % w) + w) % w; // 巡回させて値が発散しないようにする
[x, value[1]]

PositionとOffset、両方を同じレイヤーに併用すると効果的(実践で確認済み)。

5. 背景の穴埋め

Positionのexpressionでレイヤーがずれると背景に何もない部分ができることがある。最下層に元の静止画(無加工)を1枚敷いておくとこれが目立たなくなる。

6. ネタの差し替え(同じAEプロジェクトを使い回す)

  1. ウェブアプリで①と同じ設定JSONを読み込む
  2. 同じ画像サイズにリサイズした新しい元画像を読み込む
  3. 同じ「AE用レイヤー書き出し」でZIPを作る(設定が同じなら枚数・ファイル名も前回と一致する)
  4. 解凍したPNGを、前回と同じファイル名・同じ場所に上書き保存
  5. AEのProjectパネルで対象フッテージを右クリック → Reload Footage

Expression・エフェクトの重ね方には一切触れず、中身の画像だけが新しいネタに差し替わる。


所要時間の目安(実測)

  • ウェブアプリでの分解〜AE読み込み:数分
  • AEでのExpression設定(初回のみ):数分(一度組めば使い回せる)
  • 完成までの手直し込みの総時間:AE作業込みで約1時間程度

既知の制約・注意点

  • ウェブアプリ側の「アニメーション」機能(帯の太さ/シフト量/発生確率のアニメーション、連続フロー、往復ループ)は今回は不使用。実際の動きはすべてAE側のExpressionで作っている
  • ウェブアプリでの動画直接書き出し(MP4)は、レンダリングに数分かかった上でやり直しが発生すると時間がかかるため、今回のAEベースのフローの方が調整の柔軟性は高い。ただし一発でOKテイクが出る場合はウェブアプリ単体の方が速い