**Show HN:** *エージェント用オーディオ・ツールキット*

2026/03/02 0:52

**Show HN:** *エージェント用オーディオ・ツールキット*

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

要約

Japanese Translation:

Summary:

SAS Audio Processor は、コマンドラインから実行できる25のオーディオ処理ユーティリティをまとめたツールキットであり、AI支援によるコーディングや音楽制作のために DeclarAgent の Machine‑Code Production (MCP) ワークフローへ統合できます。各ツールは CLI サブコマンドとして表現され、WAV ファイルを受け取り JSON 形式で結果を出力します。

master-track
のような複合コマンドにより、ユーザーは一度に複数の操作をチェーンできます。このプロセッサは
"sas-audio"
エントリを追加して MCP サーバーへ接続し、DeclarAgent プランを指すことで Claude Code がドラムループを自動的に分析する例などが可能です。macOS 上で pyinstaller を使用して構築され、事前ビルド済みのバイナリとして配布されるため簡単にインストールできます。現在のリリースは WAV ファイルのみをサポートし macOS 専用ですが、将来的にはより多くのファイル形式やクロスプラットフォームのバイナリが追加される可能性があります。これにより、音声解析とマスタリングをコードエディタや AI アシスタントに直接埋め込みたい開発者やミュージシャンにとって有益であり、サウンドデザイン、ポッドキャスト編集、自動化された音楽制作ワークフローのスピードアップにつながります。

Summary Skeleton

What the text is mainly trying to say (main message)
SAS Audio Processor は、DeclarAgent を通じて AI 支援によるコーディングと音楽制作のために MCP ツールとして使用できる 25 のオーディオ処理ツールの集合です。

Evidence / reasoning (why this is said)
プロセッサは各ツールを CLI サブコマンドで公開し、WAV ファイルを受け取り JSON を返すほか、

master-track
のような複合コマンドで操作をチェーンできる点が説明されています。

Related cases / background (context, past events, surrounding info)
MCP サーバーに

"sas-audio"
エントリを追加して DeclarAgent プランへ接続し、Claude Code がドラムループを分析する例などで統合されていること。macOS 上で pyinstaller を使って構築し、事前ビルド済みバイナリとして配布されている点が背景です。

What may happen next (future developments / projections written in the text)
将来のリリースではサポートするファイル形式を拡張したりクロスプラットフォームのバイナリを追加する可能性がありますが、現時点では WAV のみで macOS 専用です。

What impacts this could have (users / companies / industry)
開発者やミュージシャンはコードエディタや AI アシスタント内で音声解析とマスタリングを迅速に行うことができ、サウンドデザイン、ポッドキャスト編集、自動化された音楽制作ワークフローの効率化につながります。

本文

SAS Audio Processor(サス・オーディオ・プロセッサ)

「Signals & Sorcery(シグナルズ&ソーサリー)」という音楽制作アプリケーションのコンポーネント。

25 個のオーディオ処理ツール(トリム、ノーマライズ、コンプレッション、EQ、リバーブ、ピッチシフト、タイムストレッチ、キー検出、MIDI抽出など)を DeclarAgent 経由で MCP ツールとして公開しています。


何が得られるか

カテゴリツール
Processingtrim, time‑stretch, convert, mono, silence‑remove, split‑bars
Effectsnormalize, gain, compress, eq, reverb, limit, filter, pitch‑shift
Analysisanalyze, detect‑key, loudness, onset‑detect
MIDImelody‑to‑midi
Compositemaster‑track, sample‑prep, tempo‑match, full‑analysis, melody‑extract

すべてのツールは WAV ファイルを入力として受け取り、構造化された JSON を出力します。


クイックスタート(Claude Code)

  1. DeclarAgent のインストール

    go install github.com/stevehiehn/declaragent@latest
    
  2. sas‑audio‑processor のインストール

    ソースから:

    git clone https://github.com/stevehiehn/sas-audio-processor.git
    cd sas-audio-processor
    python3 -m venv venv && source venv/bin/activate
    pip install -r requirements.txt && pip install -e .
    

    あるいは、事前にビルドしたバイナリ(macOS のみ):

    ./build.sh
    # バイナリ: dist/sas-processor/sas-processor
    
  3. MCP 設定の追加

    ~/.claude/settings.json
    に追記:

    {
      "mcpServers": {
        "sas-audio": {
          "command": "declaragent",
          "args": ["--plans-dir", "/path/to/sas-audio-processor/plans"]
        }
      }
    }
    
  4. 使用例

    You: Analyze this drum loop and tell me the BPM
    Claude: [calls analyze tool] The drum loop is at 128 BPM, 44100 Hz, stereo, 8.2 s long.
    
    You: Trim it to 4 bars and normalize to -14 LUFS
    Claude: [calls trim → normalize] Done — trimmed to 4 bars starting at the downbeat, normalized to -14 LUFS.
    
    You: Now master it
    Claude: [calls master‑track] Applied normalize → compress → limit chain. Output saved.
    

クイックスタート(その他の MCP クライアント)

  • Claude Desktop

    claude_desktop_config.json
    に追記:

    {
      "mcpServers": {
        "sas-audio": {
          "command": "declaragent",
          "args": ["--plans-dir", "/path/to/sas-audio-processor/plans"]
        }
      }
    }
    
  • Cursor / Windsurf / Copilot

    同じ MCP サーバー設定をエディタの MCP 設定に追加します。
    コマンドと引数は同一で、ファイル位置のみ異なります。


動作概要

MCP Client (Claude Code, Claude Desktop 等)
    │
    └─► DeclarAgent (plans ディレクトリ内の YAML を読み込み)
            │
            └─► sas-processor <subcommand> --input … --output …
                    │
                    └─► stdout: JSON 結果

plans/
内の各 YAML ファイルは一つの MCP ツールを定義します。
DeclarAgent はこれらのツールを MCP クライアントへ公開し、呼び出されると背後で
sas-processor
CLI を実行します。


利用可能なツール

Processing(処理)

ToolDescription
trimダウンビートを検出して指定バー数にオーディオをトリム
time‑stretchピッチを保ったままテンポを変更
convertサンプルレートと/またはビット深度を変換
monoステレオをモノラルへ変換
silence‑remove開始・終了の無音部分をトリム
split‑barsオーディオを N バー単位で分割

Effects(エフェクト)

ToolDescription
normalizeLUFS あるいはピークレベルへ正規化
gaindB 単位で音量変更
compressスレッショルド/比率/アタック/リリースを設定したダイナミクス圧縮
eq周波数別パラメトリック EQ バンド(ブースト/カット)
reverbアルゴリズム的リバーブ(部屋サイズ、ウェット/ドライ比)
limitブリックウォールリミッター
filterハイパスまたはローパスフィルタ
pitch‑shift半音単位でピッチシフト

Analysis(解析)

ToolDescription
analyzeBPM、再生時間、サンプルレート、チャンネル数を検出
detect‑key音楽キーとモード(メジャー/マイナー)を判定
loudness統合 LUFS とピーク dB を測定
onset‑detect発生点/トランジェントの時間を検出

MIDI

ToolDescription
melody‑to‑midiモノフォニックメロディーを MIDI ファイルへ抽出

Composite(マルチステップ)

ToolDescription
master‑tracknormalize → compress → limit のチェーン適用
sample‑prepanalyze → trim → normalize → convert を実行
tempo‑matchanalyze → time‑stretch で目標 BPM に合わせる
full‑analysisanalyze + detect‑key + loudness を統合
melody‑extractnormalize → melody‑to‑midi

CLI リファレンス

すべてのサブコマンドは行区切り JSON を stdout に出力し、エラーは stderr に JSON として送出します。

sas-processor <subcommand> [options]

ping

ヘルスチェック — バージョンとステータスを返す。

analyze

sas-processor analyze --input <file>
BPM、再生時間、サンプルレート、チャンネル数を返します。

trim

sas-processor trim --input <file> --output <file> --bpm <float> --bars <int> [--meter 4] [--verbose]
ダウンビートを検出し指定バー数にトリムします。

time‑stretch

sas-processor time-stretch --input <file> --output <file> --source-bpm <float> --target-bpm <float>
ピッチ保持でテンポ変更。

normalize

sas-processor normalize --input <file> --output <file> [--mode lufs|peak] [--target-lufs -14] [--target-peak -1]

gain

sas-processor gain --input <file> --output <file> --db <float>

mono

sas-processor mono --input <file> --output <file>

convert

sas-processor convert --input <file> --output <file> [--sample-rate <int>] [--bit-depth 16|24|32]

silence‑remove

sas-processor silence-remove --input <file> --output <file> [--top-db 30]

compress

sas-processor compress --input <file> --output <file> [--threshold -20] [--ratio 4] [--attack 1.0] [--release 100]

eq

sas-processor eq --input <file> --output <file> --freq <float> --gain-db <float> [--q 1.0]

reverb

sas-processor reverb --input <file> --output <file> [--room-size 0.5] [--damping 0.5] [--wet-level 0.33]

limit

sas-processor limit --input <file> --output <file> [--threshold -1]

filter

sas-processor filter --input <file> --output <file> --type highpass|lowpass --cutoff-hz <float>

pitch‑shift

sas-processor pitch-shift --input <file> --output <file> --semitones <float>

detect-key

sas-processor detect-key --input <file>
キー、モード(メジャー/マイナー)、信頼度スコアを返します。

loudness

sas-processor loudness --input <file>
統合 LUFS とピーク dB を返します。

onset‑detect

sas-processor onset-detect --input <file>
発生回数と秒単位の時間を返します。

split-bars

sas-processor split-bars --input <file> --output-dir <dir> --bpm <float> [--bars-per-chunk 1] [--meter 4]

melody‑to‑midi

sas-processor melody-to-midi --input <file> --output <file.mid>


ソースからビルド

前提条件

  • macOS 10.15+
  • Python 3.9+

手順

git clone https://github.com/stevehiehn/sas-audio-processor.git
cd sas-audio-processor
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt && pip install -e .

自己完結型バイナリ:

pyinstaller sas-processor.spec --clean --noconfirm
# 出力先: dist/sas-processor/

クロスアーキテクチャビルド(Apple Silicon & Intel):

# Apple Silicon (ARM64)
pyinstaller sas-processor.spec --clean --noconfirm
mv dist/sas-processor dist/sas-processor-arm64

# Intel (x86_64)
arch -x86_64 /bin/bash -c "
  python3 -m venv venv-x64
  source venv-x64/bin/activate
  pip install -r requirements.txt
  pyinstaller sas-processor.spec --clean --noconfirm
"
mv dist/sas-processor dist/sas-processor-x86_64

テスト実行

source venv/bin/activate

# 全テスト
pytest tests/ -v

# E2E サブコマンドテストのみ
pytest tests/test_plans_e2e.py -v

# カバレッジ付き
pytest tests/ -v --cov=sas_processor

JSON 出力形式

すべてのサブコマンドは行区切り JSON を stdout に出力します。

Result (stdout)

{"type":"<subcommand>","success":true,"output":"/path/to/output.wav",…}

Progress Events(trim のみ、stdout)

{"type":"progress","stage":"loading","percent":0}
{"type":"progress","stage":"detecting","percent":30}
{"type":"progress","stage":"trimming","percent":60}
{"type":"progress","stage":"complete","percent":100}

Errors (stderr)

{
  "type":"error",
  "code":"FILE_NOT_FOUND",
  "message":"Input file not found: /path/to/file.wav",
  "severity":"fatal"
}

制限事項

  • WAV のみ – MP3、FLAC 等のフォーマットは非対応。
  • バイナリビルドは macOS 限定(CLI は Python が動く環境ならどこでも使用可)。
  • バイナリサイズは NumPy/Scipy/Librosa 依存で約 220 MB。

ライセンス: MIT

同じ日のほかのニュース

一覧に戻る →

2026/02/25 5:08

**誰とでも上手に話す方法 – なぜそれが重要なのか** 1. **本物の笑顔から始める** - 温かい表情はオープンさを示し、相手に安心感を与えます。 2. **開放的な質問を投げかける** - 「いい一日だった?」ではなく「今週で特に印象に残ったことは何ですか?」と尋ねると、より深い対話が生まれます。 - 開放的な質問は会話の幅を広げます。 3. **積極的に聴く** - 頭を縦に振り、目線を合わせ、相手の言葉をパラフレーズすることで関心を示します。 4. **共通点を見つける** - 共有できる趣味や経験は瞬時に信頼感を生み出します。 5. **名前を使う** - 会話の中で相手の名前を数回繰り返すと、結び付きを強めます。 6. **身振りをリラックスさせる** - 腕を組むことは避け、少し前かがみになることで関心を示します。 7. **自分のことも少し語る** - 脆弱性を共有することで相互理解と信頼が育まれます。 8. **ポジティブに締めくくる** - 交流を明るい雰囲気で終えると、次回の接触につながります。 --- ### このスキルを習得すべき理由 - **より強固な関係を築ける** – 個人的・職業的な場面問わず、良好なコミュニケーションは絆を深めます。 - **ネットワーキングの機会が広がる** – 聴き手として真摯に関わる人は記憶に残ります。 - **自信が高まる** – 会話をスムーズに進められると、社交不安が軽減します。 - **チームワークが向上する** – 明確で敬意のある対話は協力を円滑にします。 - **影響力が拡大される** – 上手な会話術を持つ人は、説得・リーダーシップが自然と発揮できます。 誰とでも上手に話す技術を身につければ、より豊かな人間関係、広がる機会、そしてあらゆる社会的場面で自信ある存在感へとつながります。

## Japanese Translation: 記事は、日常的な公共の会話が消えつつあると主張し、その崩壊が社会的絆や個人の幸福を脅かすと警告しています。まず、70代の女性が空席の電車内で対話を始めるという鮮烈な逸話と、ソウル出身のウェイトレスがレストランで見知らぬ客と会話をするエピソードを紹介し、まだ存在する「無言のコード」がどのように人々をつなげているかを示しています。著者はテクノロジー(タッチスクリーンやリモートワーク)、パンデミックによる制限、そして強化された社会規範がこのコードを締め付け、「グローバル・レラショナル・リセッション」(Esther Perel が呼ぶ)を招いていると考察しています。 個人的な障壁としては、神経多様性、内向性、目線の不快感、小談嫌いなどが挙げられ、専門家の警告も併せて紹介されます。Dr. Jared Cooney Horvath は Gen Z の認知遅延を指摘し、Dr. Rangan Chatterjee は低自尊心と子どもの会話スキルの低下との関連性を示唆しています。ソーシャルメディアでの実験(例:「見知らぬ人と話す」動画)はパフォーマンス化し、疎外感を高めると批判されています。 研究は恐怖論に対抗します。バージニア大学の調査では、人々が見知らぬ人と話すことへの不安を過大評価していると示され、実際には短時間の交流を期待以上に楽しむケースが多いと報告されています。スタンフォード大学/Prof. Jamil Zaki の研究は、学生が「許可」と「アプローチしやすさ」のリマインダーを必要としており、疲労や失望の恐れは誇張されていることを付け加えています。 トレンドを逆転させるために記事では低リスク戦術を提案しています:人間味のある行動、社会的合図の読み取り、「ノー・ジム・フリー」カードの提供、そして日常的な小談の奨励。習慣を失うと社会分断が深まり、回復すればメンタルヘルス、職場チームワーク、コミュニティ結束が向上する可能性があります。読者に対し、衰退が不可逆的になる前に今すぐ会話を始めるよう促しています。 ## Text to translate ** The article argues that casual public conversation is vanishing—an erosion that threatens social bonds and personal well‑being. It begins with two vivid anecdotes: a woman in her 70s striking up dialogue on an empty train carriage, and a waitress from Seoul engaging a stranger at a restaurant, illustrating the everyday “unwritten code” that still allows strangers to talk. The author reflects on how technology (touchscreens, remote work), pandemic restrictions, and reinforced social norms have tightened this code, leading to what Esther Perel calls a *global relational recession*. Personal barriers are highlighted—neurodivergence, introversion, eye‑contact intolerance, and small‑talk aversion—alongside expert warnings: Dr. Jared Cooney Horvath notes Gen Z’s cognitive lag, while Dr. Rangan Chatterjee links low self‑worth to poor conversational skills in children. Social‑media experiments (e.g., “talking to strangers” videos) are critiqued for being performative and alienating. Research counters the fear narrative: a University of Virginia study shows people overestimate their anxiety about talking to strangers; most actually enjoy brief interactions more than expected. A Stanford/Prof. Jamil Zaki study adds that students need permission and reminders of approachability, and fears of exhaustion or disappointment are exaggerated. To reverse the trend, the article suggests low‑stakes tactics: humanising acts, reading social cues, giving “get‑out‑of‑jail‑free” cards, and encouraging everyday small talk. Losing this habit could deepen societal division; restoring it can improve mental health, workplace teamwork, and community cohesion. The piece urges readers to start conversations now—before the decline becomes irreversible.

2026/03/02 6:33

量子力学の謎は、解明し始めているのでしょうか?

## Japanese Translation: ## 要約 ウオイチェフ・ズレク(Wojciech Zurek)の2025年の著書『Decoherence and Quantum Darwinism』は、**環境との普遍的な絡み合いによる量子コヒーレンスの急速な喪失であるデコヒーレンスと、新たに提唱された「Quantum Darwinism」という概念が組み合わさることで、推測的な仮説や崩壊メカニズムを導入せずに、量子力学から古典的現実がどのように生まれるかを説明する**と提案している。 - **仕組み:** デコヒーレンスは極めて短い時間スケール(例:塵粒であれば \(10^{-31}\) s)で起こり、重ね合わせ状態が多数の環境自由度に拡散する。これらの重ね合わせは実質的に観測不可能になる一方で、位置や電荷といった**ポインタ状態**(pointer states)は残存し、環境へ繰り返し写像される。 - **Quantum Darwinism:** こうした安定記録の拡散は自然選択に例えられ、最も頑強なポインタ状態が客観的に実在するとみなされる。これは多様な環境断片から多数の観測者がアクセスできるためである。例えば、太陽光子が塵粒の位置をマイクロ秒単位で約 \(10^7\) 回写像する実験は、システムに関する情報のほとんどが少数のコピーから取得可能であり、急速に飽和することを確認している。 - **解釈的バランス:** ズレクの枠組みは、認識論(コペンハーゲン)と実在論(多世界)の両方を調整し、デコヒーレンス以前の状態を「エピオニック」可能性として扱い、デコヒーレンス後にのみ観測可能になるとする。著書は標準量子力学内で測定問題を再構成し、追加的な仮説や実体論的存在を導入しない。 - **批評と称賛:** サリー・シュラプネル(Sally Shrapnel)は古典的現象の説明の優雅さを賞賛するが、デコヒーレンス以前の「量子基底」の性質は未だ不明である点に触れている。レナート・レンナー(Renato Renner)はQuantum Darwinism でも観測者間で結果に合意できないシナリオが存在し、解釈上の問題が残ると指摘している。 - **未解決課題:** 任意の測定でどのように特定の結果が選択されるか、量子―古典境界が正確にどこにあるか、およびより厳密な検証を設計する方法など、依然として課題が残っている。 ズレクの総合的見解は、偶発的な崩壊メカニズムを用いずに量子確率からユニークな古典世界がどのように現れるかについて、完全で検証可能な説明を提供している。

2026/03/02 6:56

ビッグブレックファーストが食欲と腸内環境を変える

## Japanese Translation: **要約** 28日間の無作為化試験では、19名の肥満成人を対象に、高繊維(HFWL)と高タンパク質(HPWL)の2種類の朝食が体重減少と腸内環境に与える影響を調査しました。すべての食事は提供され、両方のダイエットでカロリーは朝45%、午後35%、夕方20%に分配されました。HFWLを摂取した参加者は平均-4.87 kgとHPWLよりも多く体重が減少しました(-3.87 kg)。高繊維朝食は、ビフィドバクテリア、ファーセリカチュラ・レイボルジアなどの有益な腸内細菌へシフトし、すべてブチル酸生成菌でした。一方、高タンパク質朝食は一日を通じて主観的な空腹感をより効果的に抑制しました。これらの結果は、朝食の構成がカロリー制限下での満足感と腸内微生物叢に影響を与えることを示しています

**Show HN:** *エージェント用オーディオ・ツールキット* | そっか~ニュース