情報処理学会 インタラクション 2015
IPSJ Interaction 2015

B182015/3/6

ジャズ即興演奏における 4 ビートベースラインの2 段階対話型遺伝的プログラミングによる生成安藤 大地1,a)

概要：本稿では，音楽的に矛盾がなく，かつオリジナリティを持つ 4 ビートベースラインを遺伝的プログラミングで探索する手法の開発について述べる．またジャズ即興演奏の伴奏「コンピング」は指定されたコードを拡張して行われるため，ベースラインとテンションノートなどで矛盾が生じることがあるため，単純なルールベース生成に落とし込めないという問題がある．提案手法では，基本的な音楽的ヒューリス
ティクスに基き定めたルールにをノードとして対話型遺伝的プログラミングで基本音高配列を出力するプ
ログラムを生成する第 1 段階，第 1 段階の出力をもとにルールに基づかないベースラインの味付けをするとともに，奏者の解釈やアレンジなどによって左右されるテンションノートなどの拡張を行う対話型遺伝的プログラミングを用いて伴奏者の意向を取り込む第 2 段階の，2 つの段階から構成される対話型遺伝的プログラミング手法により，ベースラインを生成するシステムを提案する．

Generating Jazz Improvisation 4-Beat Bass Lineby means of Two-Step Interactive Genetic Programming
Ando Daichi1,a)Abstract: This paper propose a Interactive Genetic Programming(GP) system to generate jazz improvisation 4-beat bass line. Main features of the proposing method are as follows: generating bass line via 2
diﬀerent gp systems, including huristics as a special node and no losing creativity although musical rurle
based GP node sets.

1. 導入

ナンバーを遺伝的アルゴリズム (Genetic Algorithm, GA)の遺伝子表現として採用して，ジャズ即興演奏のソロの探

著者は，進化論的計算 (Evolutionary Computation, EC)

索を行っている．しかしながら MIDI ノートナンバーのよを用いたリアルタイム即興ジャズ伴奏・演奏システムの構うな単なる「音高」配列は音楽的には重要な意味を持たず，築に向けて，各パートのフレーズや演奏表情付けの研究を実際に音楽フレーズの生成において支配的な地位にある，行っている．本稿ではベースパートのライン生成手法の開音高と音高の差である「音程」にはほとんど触れられてお発について述べる．

らず，類似のフレーズ生成に関する研究でも同様であった
り，音高の代用として利用されているのみである [2]．

1.1 音楽生成における GP の優位性

音程は音高としての代用として単一の音符のパラメータ

対話型進化論的計算 (Interactive Evolutionary Compu-として扱うことができるだけではなく，周囲の音との関係tation, IEC) を用いたジャズ即興演奏生成システムの Biles

性を表現できるため，音楽においては非常に重要な要素との GenJam システム [1] では，非常に基本的な MIDI ノート

なるが，実際には前述のように音程に注目した研究事例は非常に少ない．

1a)

首都大学東京システムデザイン学部
Faculty of System Design, Tokyo Metropolitan University,Japandandou@tmu.ac.jp© 2015 Information Processing Society of Japan

これは GA の枠組みでは「関係性」を遺伝子表現として実装する難しさがあり，関係性を扱うために複雑化した

500

GA の遺伝子表現では，探索効率が低下するという問題もある．

を音楽的ヒューリスティクスとして採用する．
また，ベーシスト達はこれらの音楽的ヒューリスティク

そこで著者は，遺伝的プログラミング (Genetic Program-スには明確な「優先度」を定めていないことがわかった．

ming, GP)[3] に注目している．GP ではスカラ値の配列でそれゆえにジャズの即興演奏のフレーズの多様さが出てきはなく，LISP で採用されているような S 式コンピュータている (と演奏者達は感じている) と考えられる．

プログラムを遺伝子表現として扱うことができ，情報同士の関係性を表現するのに非常に適している．
音と音の関係性を重視する音楽生成に関しては，同様にGP を採用した演奏表情レンダリングシステム ConBreO[6]が高い評価を受けていることからも，重要であることがわかる．
そこでリアルタイム即興ジャズ伴奏・演奏システムの実現に向けて，著者は GP を採用することとした．

しかしそれだけでは「正しい」ベースラインを作ることはできても，「面白い」ベースラインは作れないため，ヒューリスティクス以外の演奏者のオリジナリティを付加する必要がある．
さらに和音構成音の自由度が高く和音による伴奏を担っている鍵盤奏者へのアンケートを行ったところ，コードのテンションノートなどによる拡張は「あらかじめ定めたアレンジ」「その場の気分と奏者同士のやりとり」「(特に) リード奏者の演奏」などによって異なる「コンピング

1.2 ジャズ即興演奏におけるベースパート(Comping)」を行う奏者が多いことがわかった．コンピン

ジャズにおいてベースは，リズムのみならず，単音楽器グとは和音伴奏の事であり，コード構成音の中からどの音しかも基本的には四分音符のみでフレーズが構成されてい高を選ぶか，どのテンションノートを付加するかなどを即るという，他の楽器パートに比べて極端に許される音数や興で決めるものである．

旋律のバリエーションが少ないという特性を持ちながら，前述のようにテンションノートの付加が譜面情報としてコード進行の基本を表現する役割も負っている．このコー存在しないため，ベースラインの生成ルールとしてこれをド進行の表現を「ランニング」と呼称される四分音符のラ落とし込むことはできない．

インのみで行っており，どの音高を選択するかが非常に重要となる．

3. 提案手法の概要

またコード進行を表現する基本パートでありながら，テそこで著者は，ジャズベースラインの生成のために，ンションノートと呼ばれる楽譜 (コード進行譜) には記述さ( 1 ) コード進行を入力とし，コードに基づくベースラインれない「ジャズらしさ」を表現するとされる高次倍音に起生成の基本的な音楽的ヒューリスティクスをノードと因する音高群の選択においては，鍵盤楽器やギターなどのして実装し，時系列関数同定のノード群と組み合わせ，和音楽器やソロをとっているリード奏者の選択に左右されさらにより強いベーシストの音楽的ヒューリスティクてしまうという弱い立場でもある．

スから導き出したルールをノードとして優先度を高くこれらの要素を全て盛り込んだ探索を行ってしまうと，探索領域が非常に広くなってしまい，人間が評価関数として働くことでランダム要素を含みオリジナリティを出せる

IEC では扱えない状態になってしまう．

して組み合わせた対話型 GP により，基本音高配列個体群を生成し，( 2 ) (1) で生成された基本音高配列個体群にランダム要素によるラインの変更やテンションノートの拡張操作をそこで本研究では，定番となっているベースライン生成行う要素を含んだプログラムを生成する対話型 GP にの教科書を調査するとともに，アマチュアを中心とした通すことにより，ルールベースだけではない「面白い」

ジャズベース奏者や鍵盤奏者のインタビューを通じて音楽

く，かつ鍵盤奏者のコンピングの意図に沿ったベース的ヒューリスティクスを明文化し，これをあらかじめ探索ラインを生成する，を補助するルールとして採用し探索領域を狭くするとともという異なる生成対象を持つ 2 つの対話型 GP を組み合に，「予想できない良い結果」を生成するための IEC によるわせた 2 段構造を持つ GP システムを提案する．図 1 に提乱数要素も取り込んだベースライン生成手法を提案する．

案手法の概略図を示す．

2. 演奏者へのインタビュー
本研究にあたり，古くからフレーズ集として定番となっている [8] の譜例集を分析するとともに，何箇所かのジャムセッションにおいて複数人の「基本を押さえた即興演奏の 4 ビートランニングができる」演奏レベルを持ったアマ

本稿では (1) を基本音高配列生成段階，(2) をアレンジ段階と呼称する．

4. 4 ビートベースラインの音楽的ヒューリス
ティクスの分析と検討
4.1 大まかな特徴

チュアジャズベーシストに聞き取り調査を行った．本研究

本稿では，ジャズなどの即興演奏でのベースパートが演においては，このインタビュー結果を「明文化」したもの

奏する 4 ビートベースラインの特徴を以下のように捉える．

© 2015 Information Processing Society of Japan501

ログラミングの遺伝子表現に，いわゆる「手癖」のような曲のデータ(基本的なコード進行譜)を入力

ヒューリスティクスと，ある程度明文化されたルールであるアヴェイラブルノートスケールの概念を取り込んだ遺伝

Step. 1
基本音高配列生成段階
時系列関数同定GP子表現が必要となると考えられる．
対話型による進化

4.2 ベーシストの手癖 - コードフォーム
2 項のインタビューの結果のひとつとして，ベーシストの「手癖」として「コード構成音を容易に抑えられるコー基本的なルールに則った音高配列(Degree)を出力ドフォームを意識している」ことがわかった．
これはプロもしくはハイアマチュアの演奏能力を持ったベーシストとは異なり，まだ 4 小節先まで先読みしたラ

Step. 2
アレンジ段階時系列関数同定GPイン (とそれに伴う手の動き) を即興演奏で作るレベルに対話型による進化

半音進行やテンションノートへ適合した音高配列(絶対的音高)は至っていないが，とりあえずコード構成音を発音すれば「間違う」ことはないため，であると考えれる．
つまり，現在のコードフォームと次のコードフォームの移動のみを考えれば，このレベルのベーシストが想定するベースラインを実現可能であると，著者は考えた．
これらの理由から「(ルール 2) コードフォームで押さえ

図 1

提案手法の概略図: 2 段階の異なる対話型 GP を通して，ルーられる音を優先する」を定める．具体的には完全四度下

ルベースだけではないオリジナリティや即興演奏に対応した(コード上では下から 3 番目の音のオクターブ下となる) へベースラインを生成する．

一定の確率で移動させる．

Fig. 1 Overview of the Proposal Method: 2 Step Interactive
GP, these 2 deﬀerent types and objects GP system generates bass line consists of no losing creativity and suitable for improvisation comping.

4.3 音高配列のルール
4.3.1 コードトーンのみでの構成
4.1 項で述べた (1) と (2) を満たし，かつ (3) を「ダサ」い( 1 ) 四分音符のみで構成される (ことが殆どである)．

コードトーンのみで構成される音高配列とした場合，4.2 項( 2 ) 最初の音高は必ず指定されたコードのルート音である．

で述べたコードフォームを手癖として押さえているルール( 3 ) コードトーンのみで構成することも可能だが，一辺倒2 を考えると，C-Major 調の C メジャー 7th コード (CM7になると「ダサ」くなる．

( 4 ) 4 小節，8 小節単位で山型もしくは谷型を描くようなと表記) の場合，オクターブを無視した音高配列としては以下のような並びとなる*1 ．

音高変化をする，かつ次の 4 小節 8 小節のラインに少(1) C → E → G → B

ない音高変化で繋がる．

(2) C → G → E → B( 5 ) 同じ音高は続けて使わない (ただしオクターブ移動のみ効果的に使われる)．

(3) C → B → E → G(4) C → B → G → E

このうち，(1) と (2) に関しては非常にシンプルなルール

オクターブを自然に次の音高との音程を一番小さく配置である程度生成可能であり，ランダム生成，もしくは対話すると，音高配列 (2:C → G → E → B) は次の音の音程が型ランダム探索でもある程度の生成が可能である．実際に大きくなり，不自然な動きとなり，候補から外れる．

前述の [1] のような音高配列を遺伝子表現としたシンプル

4.3.2 次のコードとのつながりな対話型遺伝的アルゴリズムで実現されている．遺伝的ア

いわゆるドミナントモーションを考えると，C-Major 調

ルゴリズムで次の音との関係性を遺伝子表現として記述すの CM7 の次には，サブドミナントの役割を果たすコードることは難しいため，[1] では単純に音高の配列での実装をD マイナー 7th コード (Dm7 と表記) もしくは F メジャー行っている．

7th コード (FM7 と表記) が来ることになる．
ここで前述ルール 1 の「次の音との音程を小さくする」

しかしながら，(3) の “コードトーンのみで構成 (すなわちアルペジオのようなラインとなる) すると「ダサ」くなことを次のコードに対しても適用すると 4.1 項で示した (2)る” ことや，それを解決するための (4) 山型もしくは谷型「最初の音高は必ず指定されたコードのルート音である」をを描くようなフレーズに関しては，「(ルール 1) 次の音と満たすのは，Dm7 と FM7 両方の場合で最後の音との音程の音程をなるべく小さくした音高配列」が求められる．
これらを総合すると，適合度関数を生成する遺伝的プ© 2015 Information Processing Society of Japan*1

本文中でアメリカ式コードネームを使用しているため，ここではアメリカ音名で表記する．

502

が一番小さな音高配列 (4:C → B → G → E) が適当となり，FM7 の場合のみ音高配列 (3:C → B → E → G) と (4:C →B → G → E) が使用できることとなる．従って，音高配列(1:C → E → G → B) は候補から外る．
ルール 1 は実際にはこのような形で運用され，音高配列が生成される．

4.3.3 アヴェイラブルノートスケールによる配列の拡張とクロマチック進行
アヴェイラブルノートスケールは「その調の時そのコードで使用できる」音を並べたもので，実際のプロレベルの演奏では様々な種類のものが使用される [4]．これを使用することで，4.3.1 項で示したコードトーンのみの音高配列から脱却し，4.1 項 (3) の「ダサ」さから脱却することができる．なお本稿ではディアトニックなアヴェイラブルノー
トスケールのみを扱う．これは，後述のアレンジ段階でクロマチック進行が扱えるため，無理をして明文化されていないクロマチック要素を含むアヴェイラブルノートスケー
ルを実装する必要がなく，またその方がラインの自由度が高くなると想定される，という理由による．
「(ルール 3) コードの最初の音以外は次の音との音程が小さくなるディアトニックアヴェイラブルノートスケール中の音高を使ってもよい」を定める．
具体的には，同じコードが 1 小節続く場合に，1 拍目はルート音であり，3 拍目がコード構成音出会った場合，2 拍目を，より音程が小さいアヴェイラブルノートスケール中の音に置き換えることができる．(4 拍目も次の音がコードのルート音であることがわかっているためこのルールが適用可能であるが，4 拍目に関しては後述のルール 4 で規定する)
ただし 2 項のインタビューの結果，例外として半音で次の音に接続するクロマチック進行のみは基礎レベルのアマチュアベーシストが多用していることがわかった．特にコードが働く最後の音を次のコードの最初の音 (ルート音)に対して半音上か半音下にすると答えた奏者が多かった．
これは指遣い的にもイメージ的にも初心者が一番理解しやすい概念であり，また不協和音となってもパッシングノートとして捉えられて許容され，かつランニングの雰囲気を出せるという理由によると考えられる．
これにより「(ルール 4) コードが働く領域の最後の音高は，次のコードの最初の音高の一つ上もしくは一つ下としてもよい．もしアヴェイラブルノートスケールにその音高が存在する場合優先して採用する」を定める．
基本音高配列生成段階では度数で扱うので，「一つ」は長二度 (全音)，短二度 (半音) を両方含むが，アレンジ段階においては短二度のみを表す．これにより，基本配列段階では外形を作りアレンジ段階でテンションノートなどに影響され半音を取ることができる．

© 2015 Information Processing Society of Japan

5. 遺伝子表現としての実装
実際に提案した 2 段階を GP の遺伝子表現としての実装を行った．

GP による遺伝子表現は時系列関数の同定問題 (SymbolicRegression)[3], [5], [7] とほぼ同じ形の GP 遺伝子表現となる．時系列関数の同定における t は 1 コーラス開始時の 1拍目から一拍ずつ加算されていく自然数となる．

5.1 基本音高配列生成段階
5.1.1 GP のノード
基本音高配列生成段階での出力はコードのルート音からのディアトニックコードでの音程 (度数) となる．
ターミナルノードは，( 1 ) t: コーラス開始時からの拍数．
( 2 ) 4 小節 (四分音符 16 個分) の中でのポジション( 3 ) コードネーム (正確にはそのコードの構成音の配列で現在取りうるルート音からの音程．構成音の数だけターミナルノードが存在する)( 4 ) 現在はコードの働く領域の何番目の音か (コードの働く最初か，最後の音か，どちらでもないか)( 5 ) 現在の音の前の音との音程( 6 ) ベースの最低音 (通常第 4 弦の E) との音程
また関数ノードは，( 1 ) コードの構成音を出力する (1 が入力されるとルート音，2:2 番目の構成音〜とループする)の他は通常の時系列関数同定問題で使われる関数ノード，自然数の計算ノードを採用している．ただし計算ノードは+1 と-1 のみである．

5.1.2 ルールノード
本稿でこれまで定義してきたルール 1〜4 に加え，(ルール 0) コードが働く領域の最初の音高はそのコードのルート音とするを加えた 5 個のルールは，通常の時系列関数同定 GP の個体の中には組み込まれず，プログラム木のトップノードのさらに幹側に接続される特殊な働きをするトップノードとして働く．
これらのルールは通常の関数ノードとして実装すると，通常の関数ノードでは扱えない引数を取るため，致死個体が頻繁に発生してしまうことになる．そこで GP 個体プログラムのトップノードに対してさらに幹側に個体生成時にランダムで付与され，個体プログラムの出力と t など全てのターミナルノードの情報を持ち，完全なヒューリスティクスを実現するルールとして働く．またルールノード同士で交差なども行う．
この仕組みにより，GP の探索のランダム性を活かしながらも，致死個体が発生することがなく，探索領域を狭くすることができるヒューリスティクスルールを適用可能と503

ボタンを置いただけの，通常の対話型進化論的計算シナリなる．
図 2 にルールノードの概略図を示す．

オで，集団サイズ，世代数，初期個体のプログラム木の深さ，選択ルール，離散評価値の段数，ルールノードの制限ぐあいなど，様々なパラメータを試行している．

個体のトップノードに付与されるルールノード群
Rule 1

結果は著者の主観的印象であるが，基本音高配列生成段
曲全体のコード進行情報や個体が作り出したラインの全体など，すべての情報を持つ

階はルールノードによる制約を強く受け，非常に初心者的なベースラインが生成された．しかしアレンジ段階では半音の変化が大きすぎ，4 ビートベースラインとしては崩れRule 2すぎていてコード感が無くなってしまっていた．
またルール 1 ノードの働きとして期待された 4 小節単位if_larger_then

での山型もしくは谷型のなめらかなベースラインは，常識+1t

自分の引数となったノードの情報しか参照しない

Interval_previous
通常のGPノード群で構成された個体的な IEC の集団サイズと世代数では発生することが稀であった．5.1.1 項で示したターミナルノードの (2)4 小節の中でのポジションが有効に機能しないと考えられる．この点に関するルールノードを設けるか，ターミナルノードに適切なものを用意ことで改善する必要がある．

図 2 ルールノードの概要図: 通常の GP 個体の上に付与される引また，大きな目的であるリアルタイムジャズ伴奏・演奏

数 1 の関数ノード扱いだが，曲全体の情報など全ての情報をシステムの構築のためには，リアルタイムのコンピング入持つ．

力に対応できるベースライン生成を行う必要があるため，Fig. 2 Overview of the Rule Nodes Set: Added on the top of
GP individual. These rule nodes set has all informa-

アレンジ段階の GP システムを非対話型のオンライン探索で行う GP とすることも検討している．

tions about the piece and generated bass line.

7. まとめ
本稿では，ジャズ即興演奏の 4 ビートベースライン生成

5.2 アレンジ段階の実装のための音楽的ヒューリスティクスを取り込んだ 2 段階

アレンジ段階でも時系列関数同定と同様の遺伝子表現を対話型進化論的計算の手法の提案を行った．提案手法は，とるが，ターミナルノードは t と基本音高配列生成段階でルールベースながら各ルールの関係性を記述可能な遺伝的生成された音高のみとなる．これにより音楽的ヒューリス

プログラミングによって基本音高配列を生成する段階，オティクスから逸脱したベースラインのアレンジを行うことリジナリティの付加や即興和音伴奏コンピングへの対応をができる．

行う段階の 2 段階に分けることで，探索領域を狭くして対

ただし，基本音高配列生成段階では自然数は度数を表現話型進化論的計算で扱えるようにしている．

するが，アレンジ段階では半音刻みとなる．これにより，基本配列生成段階では扱うことはしなかった，度数表記で参考文献は難しい高次倍音のテンションノートや，半音刻みの上昇[1]下降などを表現することが可能である．
このアレンジ段階で適用される可能性があるルールノー[2]

ドは，ルール 4 の経過音を生成するノードのみである (ただしコードが働く領域の最初の音はルート音に固定して動かないというルール 0 ノードは無条件に適用される)．4.3.3[3]

項で前述したように，基本配列生成段階では度数表記での操作だったルール 4 はアレンジ段階では半音を扱う操作と[4]なり，経過音としての意味合いが強くなる．

[5]

6. 予備実験[6]

現在予備実験として，遺伝子表現とヒューリスティクスルールの検証を行っている．
既存の時系列関数同定用のライブラリと JavaScript のWeb MIDI API を用いて実装し，再生ボタンと離散評価値© 2015 Information Processing Society of Japan[7]

Biles, J.: GenJam: A genetic algorithm for genrating jazzsolos, Proceedings of 1994 International Computer Music Conference, Arhus, ICMA (1994).
Burton, A. R. and Vladimirova, T.: Generation of Musical Sequences with Genetic Techniques, Computer Music
Journal, Vol. 24, No. 4, pp. 59–73 (1999).
Koza, J.: Genetic Programming: On the Programmingof Computer by Means of Natural Selection, MIT Press(1992).
Levine, M.，愛川篤人訳：ザ・ジャズ・セオリー (THE JAZZTHEORY BOOK)，エー・ティー・エヌ (2004).
Schmidt, M. and Lipson, H.: Distilling free-form naturallaws from experimental data, Science, Vol. 324, No. 5923,
pp. 81–85 (2009).
Tanji, M. and Iba, H.: ConBreO: A Music Performance
Rendering System using Hybrid Approach of IEC andAutomated Evolution, Proceedings of the 10th annual
conference on Genetic And Evolutionary Computation,2010 (2010).
Willis, M. J., Hiden, H. G., MacKay, B., Montague, G. A.

504

[8]and Marenbach, P.: Genetic programming: An introduction and survey of applications, Genetic Algorithms
in Engineering Systems: Innovations and Applications,1997. GALESIA 97. Second International Conference
On (Conf. Publ. No. 446), pp. 314–319 (1997).
野村恒夫：ジャズは基本 ジャズ・ベース・ランニング・
ノート，ドレミ楽譜出版社 (1978).

© 2015 Information Processing Society of Japan505