mcpField
S
song-generation

song-generation

github.com/awesome-genmediaクリエイティブ・メディア4342 回インストール31 週間前に更新
リポジトリ

song-generation について

song-generation は each::sense を使い、ボーカルと伴奏を含む楽曲を生成するスキルです。歌詞、ジャンル、テンポ、声質、楽器を指定でき、モデルは自動で選択されます。

主な機能

  1. 01ボーカル入りの楽曲と伴奏生成
  2. 02短い音声や音楽の生成
  3. 03歌詞と曲構成の指定
  4. 04参考画像によるムード指定
  5. 05ストリーミングまたは一括応答

活用シーン

  1. 01コンセプトから歌入り楽曲を制作
  2. 02短いフックやイントロを生成
  3. 03画像に着想を得た楽曲を制作

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/awesome-genmedia/skills --skill song-generation

インストール後、Claude Code で/song-generationを入力して読み込まれたか確認します。

詳細

楽曲生成

each::sense を使って、ボーカルと完全なインストゥルメンタル制作を含む楽曲を生成します。each::sense は、リクエストに最適なモデルを自動で選択するインテリジェントな AI エージェントです。

クイックスタート

each::labs の API キーが必要です。eachlabs.ai で取得してください。

curl を使用する
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": "Generate an upbeat indie pop song about road trips and summer freedom, female vocal, 120 BPM, with acoustic guitar, claps, and a catchy whistling hook in the chorus"}],
    "stream": false
  }'
Python を使用する(OpenAI SDK)
from openai import OpenAI

client = OpenAI(
    api_key="YOUR_EACHLABS_API_KEY",
    base_url="https://eachsense-agent.core.eachlabs.run/v1"
)

response = client.chat.completions.create(
    model="eachsense/beta",
    messages=[{"role": "user", "content": "Generate an upbeat indie pop song about road trips and summer freedom, female vocal, 120 BPM, with acoustic guitar, claps, and a catchy whistling hook in the chorus"}]
)

print(response.choices[0].message.content)
参照画像を使用する
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": [
              {"type": "text", "text": "Generate a song inspired by the mood and atmosphere of this image. Match the emotion, whether it feels melancholy, joyful, or mysterious."},
              {"type": "image_url", "image_url": {"url": "https://example.com/mood-photo.jpg"}}
            ]
          }
    ],
    "stream": false
  }'

画像は OpenAI のマルチモーダルコンテンツ形式を使用して、メッセージ内に送信されます。1 リクエストにつき最大 4 枚の画像を送信できます。

ストリーミング

リアルタイムの SSE レスポンスには "stream": true を、単一のレスポンスで結果をすべて受け取るには "stream": false を設定します。ストリーミングは UI で進行状況を表示する場合に便利です。スクリプトや自動化には、ストリーミングを使わない方法がよりシンプルです。

利用可能なモデル

モデル強み最適な用途
mureka-generate-musicボーカル、歌詞、プロダクションを含む楽曲全体の生成あらゆるジャンルの完成した楽曲
stable-audio-2-5高品質な短いオーディオの生成短い音楽の断片、フック、イントロ

each::sense が適切なモデルを自動で選択します。ボーカル入りの楽曲全体を生成する場合、主なモデルは mureka-generate-music です。

楽曲構成ガイド

標準的な楽曲構成
構成パターン長さ
ポップの標準構成ヴァース - コーラス - ヴァース - コーラス - ブリッジ - コーラス3-4 分
シンプルヴァース - コーラス - ヴァース - コーラス2-3 分
拡張型イントロ - ヴァース - プリコーラス - コーラス - ヴァース - プリコーラス - コーラス - ブリッジ - コーラス - アウトロ4-5 分
ヒップホップイントロ - ヴァース - フック - ヴァース - フック - ヴァース - フック - アウトロ3-4 分
バラードイントロ - ヴァース - ヴァース - コーラス - ヴァース - コーラス - アウトロ3-5 分
歌詞を指定する

構成を示すマーカーとともに、プロンプトに歌詞を直接含めます。

Generate a pop rock song, male vocal, 110 BPM:

[Verse 1]
Walking down these empty streets at dawn
Shadows fading as the night moves on
Every step I take leads back to you
Underneath this sky of fading blue

[Chorus]
We were golden, we were fire
Burning brighter, climbing higher
Now I'm standing in the rain
Chasing echoes of your name

ジャンルガイド

ジャンル標準的な BPM主な特徴ボーカルスタイル
ポップ100-130キャッチーなフック、洗練されたプロダクションクリアで明るく、ハーモニーを重ねた歌声
ロック110-140エレキギター、力強いドラムパワフルで生々しく、表情豊かな歌声
ヒップホップ80-100808 ベース、ハイハット、トラップビートリズミカルなフロウ、ラップ
R&B60-90滑らかなベース、豊かなコードソウルフルでメリスマを効かせた歌声
カントリー90-130アコースティックギター、フィドル、スティールギター温かみがあり、物語を語るような歌声
エレクトロニック120-150シンセサイザー、ドロップ、ビルドアップエフェクト処理、ボコーダー、チョップを施した歌声
インディー100-130ローファイな質感、ジャングリーなギター親密で会話のような歌声
ジャズ80-140スウィング、即興演奏、ブラス滑らかでスキャットを交えた歌声

プロンプトのヒント

ボーカルの指定

ボーカルの特徴を具体的に指定します。

"female vocal, alto range, smooth and breathy tone"
"male vocal, deep baritone, raspy rock voice"
"duet with male and female vocals trading verses"
"choir-style harmonies in the chorus"
ムードと感情

感情を表す特徴を重ねることで、よりニュアンスのある出力が得られます。

"bittersweet and nostalgic, like remembering a perfect day you can never return to"
"triumphant and empowering, building from quiet determination to explosive confidence"
楽器の詳細

細かくコントロールするには、具体的な楽器を列挙します。

"acoustic guitar, brush drums, upright bass, warm Rhodes piano, subtle strings"
"heavy distorted electric guitar, double kick drums, bass guitar, screaming lead solo"

例

カスタム歌詞を使ったポップソング
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": "Generate an upbeat pop song, female vocal, 118 BPM, with synth bass and claps:\n\n[Verse 1]\nWoke up to the golden light\nEverything is feeling right\nGot my coffee, got my song\nNothing here can go wrong\n\n[Chorus]\nThis is our summer, this is our time\nDancing in the sunshine, feeling so alive\nWe are unstoppable, we are on fire\nTaking it higher and higher"}],
    "stream": false
  }'
ロックアンセム
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": "Generate an arena rock anthem about never giving up. Male vocal with a gritty, powerful voice. 130 BPM. Driving electric guitar riff, pounding drums, bass guitar, and a massive singalong chorus. Think Foo Fighters meets Queen. 3 minutes long."}],
    "stream": false
  }'
ヒップホップトラック
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": "Generate a chill hip-hop track about city nights and ambition. Male rap vocal with a smooth flow. 88 BPM. Dark trap beat with 808 bass, hi-hats, ambient synth pads, and a soulful R&B female vocal hook on the chorus. Moody and atmospheric."}],
    "stream": false
  }'
アコースティックバラード
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": "Generate a tender acoustic ballad about saying goodbye to a childhood home. Female vocal, intimate and emotional. 72 BPM. Fingerpicked acoustic guitar, soft cello, and gentle piano. Build to a fuller arrangement in the final chorus with strings. Bittersweet and moving."}],
    "stream": false
  }'
ジングル/短い楽曲
curl -X POST https://eachsense-agent.core.eachlabs.run/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "X-API-Key: $EACHLABS_API_KEY" \
  -d '{
    "messages": [{"role": "user", "content": "Generate a 15-second catchy jingle for a coffee brand called Morning Brew. Upbeat and cheerful, male and female vocals harmonizing, ukulele and handclaps, with the tagline: Rise and brew, the best in you. Earworm melody that sticks."}],
    "stream": false
  }'

よくある落とし穴

  • ボーカルの指示がない場合、ありきたりな歌声になります。性別、スタイル、エネルギーレベルを必ず指定してください。
  • テンポを指定しない場合、モデルが BPM を推測するため、イメージと異なることがあります。BPM を指定してください。
  • 構成を示すマーカーがない歌詞では、モデルがヴァースとコーラスを正しく割り当てにくくなります。
  • ジャンルを混ぜすぎると(例:「ジャズ・メタル・カントリー・エレクトロニックの融合」)、出力の方向性がぼやけます。混ぜるジャンルは最大 2 つにしてください。
  • 楽曲の長さを指定しないと、必要より短い、または長いクリップが生成されることがあります。

関連スキル

  • 歌詞生成 — まず歌詞を生成し、その後に楽曲を制作します
  • 音楽生成 — ボーカルのないインストゥルメンタルトラックを生成します
  • 音声生成 — 話し声やナレーションの音声を生成します
  • 効果音 — 制作物に効果音を重ねます

ドキュメント

コメント