オススメアプリ

SynthesizerV対応自動生成ツールを作ってみた

SynthesizerV対応自動生成ツールをClaudeに作らせた件

ちふちふジェネレーター
https://pixelpassion.jp/chifuchifu/

これはなに

UST / SVP / MIDI ファイルを自動生成するWebアプリです。
歌詞とコード進行から歌詞データとメロディを生成し、OpenUtau / Synthesizer V / DAW で使える形式で出力できます。

使い方

step
1
設定からBPMやKEYを指定


BPMやKEYを指定から選びます。

メロディは擬似乱数やパターンの組み合わせ。BPMや音域の設定だけちゃんとしておこう。

step
2
構成&歌詞を考える


Aメロの歌詞、Bメロの歌詞、と入力していこう。
歌詞にはアクセント記号を入れられるので、これを入れるとSynthesizerVでも反映されるはず。
詳しくはリファレンス参照(気が向いたらたまに追加してます)。

ちなみにjsonでインポートエクスポートも可能なので、ここでの作業も保存できるぞ。
たぶん以下のような感じになるよ。

{
  "bpm": 100,
  "keyId": "C",
  "rhythmId": "even",
  "sections": [
    {
      "type": "A",
      "label": "Aメロ",
      "measures": 4,
      "lyrics": "(p)↗き らきら ひかる↘_♪ ↗おそらの ほし~よ~↘_",
      "noteHint":     [60, 60, 67, 67, 69, 69, 67, 65, 65, 64, 64, 62, 62, 60],
      "durationHint": [480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 960],
      "lyricHint":    ["き", "ら", "き", "ら", "ひ", "か", "る", "お", "そ", "ら", "の", "ほ", "し", "よ"],
      "restHint": [
        { "beforeIndex": 7, "length": 480 }
      ],
      "expressionHint": [
        { "shakuri": 1, "dynamics": 70 },
        { "dynamics": 70 },
        { "dynamics": 75 },
        { "dynamics": 75 },
        { "dynamics": 80 },
        { "dynamics": 80 },
        { "vibrato": true, "fall": 1, "dynamics": 75 },
        { "shakuri": 1, "dynamics": 70 },
        { "dynamics": 70 },
        { "dynamics": 75 },
        { "dynamics": 75 },
        { "dynamics": 80 },
        { "dynamics": 80 },
        { "vibrato": true, "fall": 2, "dynamics": 70 }
      ],
      "customChords": ["C", "F", "C", "G"]
    },
    {
      "type": "B",
      "label": "Bメロ",
      "measures": 4,
      "lyrics": "(p)↗ま ばたき して~は~↘♪ ↗みんなを みて~る~↘_",
      "noteHint":     [67, 67, 65, 65, 64, 64, 62, 67, 67, 65, 65, 64, 64, 62],
      "durationHint": [480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 960],
      "lyricHint":    ["ま", "ば", "た", "き", "し", "て", "は", "み", "ん", "な", "を", "み", "て", "る"],
      "restHint": [
        { "beforeIndex": 7, "length": 480 }
      ],
      "expressionHint": [
        { "shakuri": 1, "dynamics": 60, "breathinessOffset": 0.15 },
        { "dynamics": 60, "breathinessOffset": 0.15 },
        { "dynamics": 65, "breathinessOffset": 0.1 },
        { "dynamics": 65, "breathinessOffset": 0.1 },
        { "dynamics": 60, "breathinessOffset": 0.1 },
        { "dynamics": 60, "breathinessOffset": 0.1 },
        { "vibrato": true, "fall": 1, "dynamics": 55, "breathinessOffset": 0.15 },
        { "shakuri": 1, "dynamics": 60, "breathinessOffset": 0.15 },
        { "dynamics": 60, "breathinessOffset": 0.15 },
        { "dynamics": 65, "breathinessOffset": 0.1 },
        { "dynamics": 65, "breathinessOffset": 0.1 },
        { "dynamics": 60, "breathinessOffset": 0.1 },
        { "dynamics": 60, "breathinessOffset": 0.1 },
        { "vibrato": true, "fall": 1, "dynamics": 55, "breathinessOffset": 0.2 }
      ],
      "customChords": ["C", "G", "Am", "G"]
    },
    {
      "type": "chorus",
      "label": "サビ(リプライズ)",
      "measures": 4,
      "lyrics": "(f)↗>き ら>きら ↗!ひ かる↘_♪ ↗>おそらの ほし~よ~↘_",
      "noteHint":     [60, 60, 67, 67, 69, 69, 67, 65, 65, 64, 64, 62, 62, 60],
      "durationHint": [480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 480, 960],
      "lyricHint":    ["き", "ら", "き", "ら", "ひ", "か", "る", "お", "そ", "ら", "の", "ほ", "し", "よ"],
      "restHint": [
        { "beforeIndex": 7, "length": 480 }
      ],
      "expressionHint": [
        { "shakuri": 2, "accent": true, "dynamics": 110 },
        { "dynamics": 105 },
        { "accent": true, "dynamics": 110 },
        { "dynamics": 105 },
        { "shakuri": 1, "accent": true, "tension": true, "dynamics": 120 },
        { "dynamics": 115 },
        { "vibrato": true, "fall": 2, "dynamics": 110 },
        { "shakuri": 1, "accent": true, "dynamics": 110 },
        { "dynamics": 105 },
        { "dynamics": 110 },
        { "dynamics": 105 },
        { "accent": true, "dynamics": 115 },
        { "dynamics": 110 },
        { "vibrato": true, "fall": 2, "dynamics": 100 }
      ],
      "customChords": ["C", "F", "G", "C"]
    }
  ]
}

SVPファイルやUSTファイルもインポートできるけど、完全再現ではないかもしれません。
あとClaudeSkillも作ったのでClaudeからも作詞作曲できるよ。

chifu-json-gen.skill — メロディ・コード・セクション構成のJSON生成(メインスキル)
accomp-hint-compose.skill — 伴奏パートを楽器単位で詳細作曲(bassHint/drumsHint等)

有名な曲は作ってくれますが、複雑な曲はAI任せにしてもそこまで高度なものは作れないと思います。トークンの消費も多めの想定。

step
3
生成とエクスポート


生成 & 出力から打ち込んだ曲データを作ってくれます。
プレビューでメロディは聴けますが、歌うわけではありません。
SVP、UST、MIDIにできます。

SynthesizerVで開く

あとはファイルを開いて調整してください。歌唱はSVPから。メロディはMIDIで取得できますが、メロは工夫してもあんまりいい感じにならなかったので参考程度です。

-オススメアプリ
-,