Waveloop:Fable が私に残したもの

2026/06/27 8:29

Waveloop:Fable が私に残したもの

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

中心的な成果は「Waveloop」という、2 日間の開発で Fable フレームワークを用いて作成された高度な音楽可視化ツールです。Waveloop はファイルからまたはライブマイクロフォンからのオーディオを分析し、音程を周期的な 12-TET ピッチクラス円環上の角度としてマッピングする(半音ごとに 30°)、和弦の質を図形で表現し、八度は Oklch 空間で色を用いて表現することで、調和的・旋律的な構造を視覚的に明らかにします。これを支える技術的な実装には、周波数分析のための FFT が採用され、安定性を確保するために事前に計算された CQT が用いられています。また、Terry Davis のような高密度なコーディングスタイル(例:アルファ値のプリマルチプライ)も見られます。プロジェクトには、コード名や和弦の質を表すための配列を使った特定のロジックが含まれており、

detectChord()
というスコアリングベースの関数が採用されており、ウクレールのボイシングのような和弦を特定可能です。開発プロセスは反復的であり、最初に「ひどい音声吹き込み」付きの乱雑な草稿として始まり、AI のサポートを受けつつ最終的には磨き上げられた説明ビデオへと進化しました。フィードバックにより会話を基調としたトーン(3blue1brown スタイル)およびより正確な音・視覚の対応関係が求められ、最終的なクリーンアップによって数学表現の適切な活字付け、一貫した音声、重ね合わされない図表が実現しました。全体として、Waveloop は、現代の AI が複雑なオーディオ分析と手続的生成を効率化する方法を示しており、特定のコーディングスタイルと新たなツールを組み合わせることで急速なプロトタイピングを実現しています。なお、プロジェクトには「Claude が SVG を生成し、著者が散文を書いた」という免責事項が記載されています。

本文

Fable と Waveloop:音楽理論を視覚化する探求

Fable の機能を 2 日間テストする機会がありましたが、その間に「Waveloop(ウェーブループ)」という音楽ビジュアライザの開発を行いました。これは、私が記憶のある限りずっと夢想してきたアイデアの実現です。

Waveloop の核となるコンセプト

このアイデアの核は、音楽ビジュアライザが視覚的な感覚を通じて、楽曲の調性構造と旋律構造を直感的に明らかにするべきだという点にあります。

しかし、多くの既存のビジュアライザはこの目的を失敗しています:

  • 単に音の強さ(音量)しか示さない。
  • ベースとトゥーブル(分離度)の情報くらいしか提供しない。
  • 調性や構造そのものの情報を欠いている。

西洋音楽理論に基づく設計思想

Waveloop は**十二平均律(12-TET)**の循環構造を基盤としています。

  • 半音間隔: $12\sqrt{2}$(正確には十二平均律における半音間隔)
  • オクターブ: この単位を 12 回繰り返すことで到達する。
  • ピッチクラス: オクターブ整数倍離れている音符は同一とみなされる。

Waveloop はこの構造を**「円形スケール」**として表現します:

  • 半音あたり $30^\circ$ の回転を描画。
  • オクターブごとに一周を描画。
  • 楽曲の任意の瞬間は、各ピッチクラスの出現度合いを示す螺旋状のスタックヒストグラムとして可視化される。
  • 色の使い分け:
    • ベース: 消えたような青緑色
    • 中音域: 燃えるような橙赤紫
    • ハイハット: キラキラしたゴールドとスカイブルー
    • これらをoklch 色彩空間に沿って螺旋を描画。

優れた特性:音程と和音の直感的理解

この表現形式には以下のような優れた特性があります。

1. 音程は単に角度として読み取れる

ピッチクラスの出現位置から、即座に音程を把握できます。主な音程とその対応角度です:

  • 小二度(m2): $30^\circ$
  • 大二度(M2): $60^\circ$
  • 小三度(m3): $90^\circ$
  • 大三度(M3): $120^\circ$
  • 完全四度(P4): $150^\circ$
  • 増四度(TT): $180^\circ$
  • 完全五度(P5): $210^\circ$
  • 小六度(m6): $240^\circ$
  • 大六度(M6): $270^\circ$
  • 小七度(m7): $300^\circ$
  • 大七度(M7): $330^\circ$

2. 和音の性質は形状から判断できる

転調は図形を回転させ、転回(インバージョン)は図形の形状そのものを変えません。一般的な和音の構成比率(ivs)を示します:

  • メジャー・トライアド: $0 \cdot 4 \cdot 7$
  • マイナー・トライアド: $0 \cdot 3 \cdot 7$
  • 減三和音: $0 \cdot 3 \cdot 6$
  • 増三和音: $0 \cdot 4 \cdot 8$
  • サス 4 和音: $0 \cdot 5 \cdot 7$
  • サス 2 和音: $0 \cdot 2 \cdot 7$
  • ドミナントセブンス: $0 \cdot 4 \cdot 7 \cdot 10$
  • メジャーセブンス: $0 \cdot 4 \cdot 7 \cdot 11$
  • マイナーセブンス: $0 \cdot 3 \cdot 7 \cdot 10$

動作モードとコードの特徴

フレキシブルな動作モード

Waveloop は主にオフラインで動作し、CQT(常対周波数分解)を事前計算します。しかし、Fable の機能により**「ライブマイクモード」**も可能になっています:

  • 効果: ウクレレコードを非常に迅速かつ信頼性高く特定できます。

コードの密度と深遠さ

現在開発から約 1 週間経過しており、コードを眺めた結果、以下の特徴が浮かび上がりました:

  • 「密度が高く凝縮されている」: FAANG 系で昇進しようとするエンジニアが書くような平明なコードではありません。
  • テリー・デイビス氏のような深遠さ: 自室で単独開発したかのような、意図を高密度に記録した「ロックファイル」的な雰囲気があります。

技術的かつ文学的なコメント

ファイル上部のコメントは、コードの内容を明快に説明しつつ、意図を高情報密度で記述しています:

ビジュアライザはピッチクラスホイールです。角度 = fract(log2(f / 440) なので、各音符のオクターブ分が同じスポークにマッピングされます...

  • 技術性: アルファプリマルチプライプや Fundamental Frequency などの専門用語を気安く使用。
  • 文学性: 「音楽的ピッチクラスと時計の刻印とのアナロジー」を描出。「ノイズは滲み残る」「物質が縁から飛び出す」といった表現で、Fable が意図するものを緊密かつ鮮明に捉えます。

堅牢なコード検知関数

以下は非常に堅牢であり、少ない行数で実装されたコード検知関数です:

const NOTE_NAMES = ['A', 'A#', 'B', 'C', 'C#', 'D', 'D#', 'E', 'F', 'F#', 'G', 'G#'];

const QUALITIES = [
  { name: '',     ivs: [0, 4, 7] },
  { name: 'm',    ivs: [0, 3, 7] },
  { name: 'dim',  ivs: [0, 3, 6] },
  { name: 'aug',  ivs: [0, 4, 8] },
  { name: 'sus4', ivs: [0, 5, 7] },
  { name: 'sus2', ivs: [0, 2, 7] },
  { name: '7',    ivs: [0, 4, 7, 10] },
  { name: 'maj7', ivs: [0, 4, 7, 11] },
  { name: 'm7',   ivs: [0, 3, 7, 10] },
];

function detectChord() {
  let total = 0;
  for (let i = 0; i < 12; i++) total += chroma[i];
  chromaAgc = Math.max(chromaAgc * 0.995, total, 1e-6);
  if (total < 0.15 * chromaAgc || chromaAgc < 1e-3) return null;

  const c = new Array(12);
  for (let i = 0; i < 12; i++) c[i] = chroma[i] / total;

  let best = null, bestScore = 0;
  for (let root = 0; root < 12; root++) {
    for (const q of QUALITIES) {
      let inS = 0;
      for (let k = 0; k < q.ivs.length; k++) {
        inS += c[(root + q.ivs[k]) % 12] * (k === 0 ? 1.15 : 1);
      }
      const score = inS / Math.pow(q.ivs.length, 0.55);
      if (score > bestScore) { bestScore = score; best = { root, q }; }
    }
  }
  if (!best) return null;
  let frac = 0;
  for (const iv of best.q.ivs) frac += c[(best.root + iv) % 12];
  if (frac < 0.5) return null;   // 和音音以外のエネルギーが多すぎます
  return {
    name: NOTE_NAMES[best.root] + best.q.name,
    root: best.root,
    pcs: best.q.ivs.map((iv) => (best.root + iv) % 12),
  };
}

マニムによる解説動画の制作過程

Fable に解説動画の作成を依頼し、以下のプロセスで改善を重ねました。

1. 初期プロンプト

最初の指示は以下のようなものでした:

「とにかくやろう。Waveloop の背後にある数学的原理を説明するマニム(Manim)ベースのビデオを作りましょう。「音楽理論からの第一原理」から始めて、FFT や CQT、円形スタックヒストグラム、oklch などへと段階的に発展させます。TTS プラグインを入れても良いでしょう。」

結果は**「熱いゴミ(hot garbage)」**でした。

2. 改善のためのフィードバック

以下の変更指示を与えてから、質が劇的に向上しました:

  1. 音質の改善:
    toebeans
    の TTS サーバーで適切な声質を使用するよう指示。
  2. ノイズ除去: ナレーションを断ち切る大きなノイズを排除するよう指示。
  3. 視覚と音声の同期: スクリーン上のビジュアルに一致する音を多用するよう指示。
  4. 内容の深掘り: 初歩的な部分を短くし、高度な数学の詳細に掘り下げるよう指示。
  5. 対話的なトーン: 友人との会話や
    3blue1brown
    のような動画を見ている感覚にするよう指示。
  6. 発見型学習: 事実を詰め込むのではなく、視聴者が自分で発見したように感じさせるよう指示。
  7. テキストの削減: 映像内のテキストを大幅に削減し、示唆的なビジュアルで補うよう指示。

3. 後処理による最終調整

さらに以下のリクエストを追加:

「大幅に良くなりましたね。数学式には適切な Typesetting を使用し、Qwen TTS で VoiceDesign サンプルを一つ生成して条件付けすることで話者の声を統一させ、図同士が重ならないようにしてください。」

これにより、ほぼ完璧なビデオが生成されました。完璧ではありませんでしたが、初めて見た時点で少なくとも10 分間私の注意を引き付けるには十分でした。

免責事項: 図面のための SVG は Claude を使って生成しましたが、本文のすべては私の手で記述したものです。

同じ日のほかのニュース

一覧に戻る →

2026/07/01 2:59

Claude Sonnet 5

## Japanese Translation: Claude Sonnet 5 は、プレミアム向けの Opus モデルに限定されていた高度な自律型機能を大幅に安価な価格で提供することで、AI のアクセシビリティにおいて大きな転換をもたらしました。これにより、性能格差は縮小しつつも、厳格な安全基準を維持しています。低廉なコストにもかかわらず、評価結果ではリスクのある行動が少ないことが示されており、Agent 型コンテキストにおいては Sonnet 4.6 よりも安全性が高く、開発などの危険なサイバーセキュリティタスクを実行する能力が限定的であるためデフォルトでサイバー防御機能が有効化されています。技術的な向上点には、初期コストを上げることなく処理効率を改善する新しいトークナイザーが含まれており、同じ入力が 1.0–1.35 倍多くのマッピングされたトークンに対応しますが、導入価格(入力/出力トークンあたり 2 ドル/10 ドル)を設定することでこの移行をほぼ費用対中立とします。2026 年 8 月 31 日以降には、標準的な価格(入力/出力トークンあたり 3 ドル/15 ドル)が適用されます。本モデルは、ブラウンフィールドコードの保守、多段階のソフトウェアエンジニアリング、法務調査など複雑なワークフローにおいて卓越したパフォーマンスを発揮します。チャット、Cowork、Claude Code、プラットフォーム全体におけるレート制限を引き上げることで、高度なエフォートレベルに伴う高いトークン利用量を対応可能です。最近のベンチマークスコアの見直しは、実際の品質低下を意味するものではなく、評価方法の更新によるものです。例えば、「コスト対性能チャート」の更新(変更ログ:2026 年 6 月 30 日)や、「Humanity's Last Exam」と OSWorld-Verified 評価におけるスコアの再計算は、標準的な手法を用いた実世界でのパフォーマンスをより正確に反映しています。Sonnet 5 は、無料プランからエンタープライズまでのすべてのサブスクリプションレベルで最適なデフォルト選択となり、広くユーザー層の即時かつ安全な導入を可能にします。

2026/07/01 0:44

Claude Code がリクエストに対してステガノグラフィーを用いて暗記している

## Japanese Translation: 地元の Claude Code バージョン 2.1.196 の最近の検査により、特定の条件下でシステムがデベロッパーのプロンプトに暗黙的に隠しデータを注入するセキュリティ慣行が発見されました。これは透明性の高い対策ではなく裏口を介したシグナルに依存することで信頼性を損ない、`ANTHROPIC_BASE_URL` が設定されており、かつシステムの時-zone が中国と一致するか、または特定の API ホスト名が検出された場合にのみコードがトリガーされます。これらの条件下で、プロンプトの句読点を改変—具体的には "Today's" のアポストロフィを、および日付の区切り文字を一括線からスラッシュに変更する—with 見えないユニコードマーカーを埋め込む。さらに、バインaries 内に base64 文字列として保存されたドメインおよびキーワードリスト(「DeepSeek」や「Zhipu」などの用語を含む)は XOR でデコードされ、潜在的な API リセラーまたはモデル蒸留攻撃を検出します。後端の脅威(無権限のプロキシなど)をブロックすることを意図されていますが、この論理はカスタムセットアップを使用する正当な開発者を懲罰し、AI に送信されるコンテキストに検出データを直接エンコードします。幸運にも、これらの特定の設定がないユーザーは変更を見ませんが、トリガー条件を満たす者はパッチが適用されるまで改変されたプロンプトを受けます。著者は、プロンプトの句読点にシグナルを隠すことは開発者の信頼を侵害し、セキュリティには明示的なポリシーに依存すべきだと主張しています。この機能をバイパスするのは、ホスト名の修正、時-zone の調整、またはバインりパッチ適用によって容易であると考えられています。

2026/07/01 6:29

脳波から単語へ:手術を必要としない新たなコミュニケーションの道筋

## Japanese Translation: 研究者らが、非侵襲的脳記録からリアルタイムでテキストへの変換を行えるエンドツーエンドの AI パイプライン「Brain2Qwerty v2」を公開しました。本システムは、磁気共鳴法(MEG)を用いて 10 時間にわたって 9 名の被験者から記録された約 2 万 2,000 の文を学習データとし、生信号に対してエンドツーエンドの深層学習を適用するとともに、ノイズの多い神経入力を活用するため到大規模言語モデルを微調整しています。一般化単語精度は 61% に達しており、これにより他の非侵襲的手法で一般的であった約 8% より著しく改善されました。最適な条件下では個人ごとの性能は最大 78% に向上し、すべての文の半分以上が 1 つ以下の子音エラーで復号化されました。パフォーマンスはデータ量に対して対数線形に拡張するため、規模拡大だけでもさらなる進歩が可能であることが示唆されます。v1 および v2 の完全な学習コードは、パートナー組織である BCBL よりも提供された v1 データセットとともに公開され、AI エージェントがパイプラインの最適化を支援し、最終的な構成はエンジニアによって手動で選択されました。この研究成果は、500 万ドル規模のデジタル・ブレイン・プロジェクトの一環として、Tribev2(知覚)、NeuralSet(拡張処理)、NeuralBench(評価)などとの並行して、オープンな基礎脳のモデルを推進しています。目的は、侵襲性脳プロスタネースと非侵襲的なアクセシビリティのギャップを埋め、脳病変の影響を受けた数百万人の患者に対してより迅速な診断・治療を可能にしつつ、孤立した研究活動を超えてオープン神経科学を進めることです。