Melody Materials

自作の音楽生成AIについて、その課題点や改善の展望についての考えを記しています。

以下に、現状の自作AIの課題や改善の方針について一例を書いています。

コード進行が良くない…ドミナントモーションしかできない

コード進行において、ドミナントモーションに依存している傾向が強く、他の進行に広がりを持たせることができていない。 これにより、曲全体の展開が単調になりやすい。

コードの種類

テンションや7thの使用は可能になっているが、どこでどのように使うかの判断が難しく、現状ではあまり活用していない。 これらを効果的に使うことで多様なアレンジができるはずだが、その使い方に関するルールを用意していないのが現状。

楽器の組み合わせ

楽器選びに関して、パートタイプに適した楽器があるはずだが、そのようなデータを用意しておらず、ランダムに楽器を選んでいる。 ベースに関しては低音に対応した楽器を選ぶようにしているが、和声パートや主旋律パートに適した楽器の選定が不十分である。

テンポと楽器の連絡(要素同士の連絡の例)

テンポが速い場合、16分音符や8分音符などの細かい音価はあまり使わないべきだが、現在そのような調整を行っていない。 また、楽器によって得意な音価や表現が異なるため、細かい動きが得意な楽器とそうでない楽器を区別することが求められている。 同様に、長い音符を得意とする楽器とそうでない楽器の特性に応じた配置も重要である。 (テンポと楽器といった)異なる楽曲要素同士のバランスをどう整えるか、という点に課題があるということ。

パート構成

上声と下声の間に内声を詰める際、無理に詰め込みすぎることが多い。 現状「内声を作る」というパート構成を先に決めてしまい、状況によって後からそれを取り消すような臨機応変なフローが無いため。 また別の例として、対旋律を定旋律の上声として書くか下声として書くかは、 楽器の種類や定旋律の音域を考慮して決定すべきだが、現状ではその基準が曖昧で、 単に「80%の確率で下声として書く」といったランダムな決定がなされている。 状況に応じて選択内容を臨機応変に制御する必要があるということ。

パート間のリズムのバランス

例えば、「左手で弾くピアノ伴奏」における典型的なストライド奏法では、左手小指でベースノートを弾き、他の指で和声を弾く。 この場合、ベースパートは表拍、和声パートは裏拍としてリズムを分散させ、音が重なりすぎず、軽やかなリズム感を生み出すことができる。 しかし、現状ではパート間のリズムバランスを調整する機能が弱く、それぞれのパートが独自にリズムを作ってしまう傾向がある。 複数パートのリズムを調整し、バランスを取るための処理が必要ということ。

休符

現状、休符を使っていない。適切なタイミングや頻度で休符を挿入しないと、だらだらと続くだけのメロディという印象が強くなる。 休符を効果的に使うことで、フレーズの区切りやまとまりを表現できるが、そのタイミングや頻度の定義が難しく、現状では使用を避けている。

確率パラメタの多様化

現在、確率パラメタは手作業で設定した一種類のセットを使っており、それに基づいて曲が生成されている。 例えば、音符の長さ(全音符、二分音符、四分音符など)の生成確率や、同じ音高の繰り返し確率、対旋律の進行における反行確率などが設定されている。 しかし、この確率パラメタセットに基づいている以上、同じパラメタセットでは似たような傾向の曲が生成されてしまう。

そのため、確率パラメタを手作業で設定するのではなく、自動生成する仕組みを用意する必要がある。 自動生成する際には、各パラメタ間のバランスや整合性を保ちながら生成する必要がある。 また、パラメタセットの定義の見直しや、不要なパラメタの廃止、必要なパラメタの追加なども必要なはず。