rcIIIIea

I

II I IIIIIIIes

II IIII IIIRIII I I I I I I III

IIIIIIIIII I IIIIIIIIIIIIIh

私の研究

音楽記述言語「Takt」と生成音楽
西村憲（にしむら さとし）

公立大学法人会津大学
情報システム学部門コンピュータ芸術学講座
上級准教授

り、古くは紀元前後のものとされるセイキロスの１．はじめに
本稿では、私がコンピュータグラフィックスについての研究と並行して開発を続けてきた音楽記［1］

墓碑銘に遡りますし、和楽器の楽譜でおなじみの方も多いと思います。

を紹介するとともに、それを使っ音楽記述言語 Takt も、上で述べたような文字た生成音楽について解説したいと思います。コンによる直接的な表記が基本になっています。しかピュータによる音楽生成、いわゆる自動作曲は、し、それだけではなく後で述べるように音楽の構

近年の AI ブームの中で注目されている技術の１造を表現したり、生成音楽の記述、つまり音楽のつであり、作曲家の負担軽減だけでなく、環境に作り方を表現したりすることができるのが特徴で適応して変化する音楽や、作曲の知識を持たないす。生成音楽の記述は、汎用のプログラミング言

人でもキーワードや簡単なメロディラインを与え語によっても可能ですが、開発に手間がかかる上、るだけで本格的な曲を制作してくれるシステムなプログラムを変更してから音が鳴るまでのタイムどへの応用が期待されています。

ラグが大きいという問題があります。これに対し、

述言語 Takt

音楽記述とは、作曲者から演奏者へ伝えるべき

Takt では短い時間でプログラムを作成でき、また、情報を表現したものです。その例としてまず思いそれを入力したら即座に演奏されるような環境が浮かぶのは五線譜でしょう。五線譜には音の高低整っています（図１、図２）。なお、Takt 関連のや声部間の関係を把握しやすいという利点がありソフトウェアはオープンソースのフリーウェアとます。しかし、コンピュータで音楽を扱う場合、して公開されており、だれでも自由に利用するこ

五線譜では入力に手間がかかり、また高品質の五［2］とができます 。

線譜を出力するには計算コストが大きいという問題があります。そこで、コンピュータ音楽の世界

２．Takt による音楽記述

では、五線譜のかわりに文字を使った音楽記述がTakt における文字や記号による音楽表記とは古くからよく使われてきました。実は、文字を以下のようなものです。例えば、ド、レ、ミとい使って音楽を表記するという手法は、コンピューう３つの４分音符は c d e と表されます。４分音タが世に登場するよりもずっと前から使われてお符以外は記号をつけて区別し、例えば２分音符の福島の進路 2016. 633

私の研究奏するようになります（上のフレーズは有名なフレール・ジャックの冒頭部分です）。
フレーズの定義と呼び出しは、音楽の構造を記述するための基本になっています。最も単純な構造の１つである繰り返しは、x x のように単に呼び出しを繰り返すだけで表現できますし、もっと多く繰り返す場合は、repeat（10）{x } のような構
図１

Takt の起動画面

音楽の記述を打ち込むたびに、その音楽が演奏される。

文も使用できます。
もう少し複雑な構造について見てみましょう。
「輪唱」のように時間をずらして同じフレーズを演奏する場合は、少し遅れて演奏する { rと元の x の合成として［ { rx}x } x］と書きます。

輪唱を発展させたものにカノンがあります。カノンでは、例えば音の高さを５度上げつつ動きを反転させ、さらに時間をずらして演奏するということが行われますが、Takt ではこのような一見複雑な構造も簡単に表現できます。カノンやそれに類似する音楽手法は、例えばバッハのゴールドベルク変奏曲やインベンション（図３）など、実際の曲で活用されています。
上の輪唱の例のような記述には、x がどんなフ

図２

テキストエディタと連携した音楽編集システム

演奏を開始すると現在の演奏位置がハイライトされる。

ドなら c といった具合です。和音は［c e g］のように角括弧で音符を囲みます。［c { f e }］のよ
うに複数の並行する声部を表すこともできます（この場合 c が下の声部、f e が上の声部に対応します）。
同じフレーズが何度も出現する場合は、フレーズの定義と呼び出しを利用できます。例えば、
x ={c d e c c d e c e f gefg }のようにフレーズを x という名前で定義しておくと、以後は x と書くだけで同じフレーズを演

34

福島の進路 2016. 6

図３ バッハのハ長調インベンションの構造的な記述（抜粋）はじめに基本となるフレーズとそれを反転したもの定義し、それらを曲の中で変換をかけながら呼び出している。

私の研究
レーズであるかという情報は含まれていないことだと思います。に注目してください。つまり、音楽からその成り上の例では黒鍵も含めたいわゆる半音階スケー立ちだけを抽出したものであると言えます。この

ルを使用しましたが、たとえば白鍵だけからなるような記述をあらかじめ多数用意しておけば作曲スケールのように、より限定的なスケールを使のヒントとして役に立ちます。フレーズの方も多用するとずっと音楽らしくなってきます（図５）。

数用意しておけば、非常に多くの組み合わせが生

どんなスケールを使うかは、使用しているコードまれますから、それらを順に試していき、その中に合ったものを音楽理論に則して選ぶのが一般的から音楽的に自然なものを選別すれば、思いもかです。また、スケール上の各音は、コードとの親けない良い曲ができあがるかもしれません。さら和度にばらつきがありますので、それを考慮してに、その選別作業をコンピュータに行わせること音楽生成を行えばより自然なものが得られます。

も徐々に可能になってゆくものと思われます。

生成に使用する数列についても様々なものが考えられています。一様乱数（サイコロを振って得３．生成音楽られるような乱数）のかわりに、１/ｆゆらぎに最も単純な音楽の生成方法は、乱数によって音基づいた数列が使われることもよくあり、より音の高さや音の長さを決めるというものです。いわ楽らしい音列を発生させることが知られています。

ばサイコロを振ってそれらを決めることに相当しまた、マルコフ連鎖と呼ばれる１つ前の音をもとます。例えば、下の Takt プログラムは、ピアノに次の音を確率的に決定する手法も使われます。のほぼ中央に位置するドの音からその１オクターさらに、既存の数列（例えば、円周率の各桁の値、ブ上のドまでの間において（黒鍵の音も含めて）絵画の画像データ、株価データなど）を使う試み

ランダムに選んだ32個の８分音符を発生させます

も過去に行われてきました。

（図４）。

上では数列によって個々の音符の高さや長さをrepeat（32）{ note（irand（c4, c5））¥}選んできましたが、かわりにフレーズやリズムパこのような音の列を音楽と呼べるかどうかは議ターンを選ぶことも考えられます。つまり、短い論の分かれるところですが、それでも１つの素材音楽要素を自動的に切り貼りしてゆく方法です。

として曲の中で部分的に使用することは十分可能

この際、前後のつながりが自然になるようにし、Takt code : repeat（32）{ note（irand（c4, c5）
）¥ }

図４

一様乱数によって生成された音楽Takt code : repeat（20）{ Scale. major（c4）. note（irand（0, 7））：（l=irand（1, 2） 1i）}

図５

長音階スケールの音を使ってランダムに生成された音楽
この例では音の長さもランダムに選択している。

福島の進路 2016. 635

私の研究

図６

生成された和音の列

完全４度か完全５度をランダムに選んで各音を積み上げている。

また、コードや同時に演奏される他のフレーズとしながら既にある曲を自動的にはじくような仕組の関係を考慮して選択や修正を行えば、かなり自みも今後重要になってくるでしょう。

然な音楽を得ることができます。最近では、歌詞に合うように選ぶようなことも行われています。

４．おわりにその他、数列を使って和音を組み立てるアプ

自動作曲が実用的になるまでにはまだ多くの時ローチも面白いです。Takt のサンプルプログラ間がかかると思われます。１つは技術的な問題か

ムの中にそのような例が含まれていますが、ベーら、もう１つは法的な問題からです。似た曲が生スの音から始めて音程をランダム選んで和音を積成されてしまうという問題とは別に、そもそもコみ上げてゆくと、時には斬新な響きの和音が得ら

ンピュータの作成した音楽に著作権は存在するのれます（図６）。

か、また存在するとすれば誰に帰属するのかとい

近年では、Web の発達にともなって音楽デーう問題はとても複雑です。しかしいずれは、コンタ（音列データ）が容易に入手できるようになりピュータが気の利いた即興演奏者となって我々をました（それでも録音データや楽譜画像データと常に楽しませてくれるような時代が来ることで比較するとまだ少ないですが）。それらを音楽生しょう。

成に役立てる試みも、今後盛んになってゆくものと思われます。既存の曲に含まれる作曲ルールを参考文献

コンピュータに学習させ、それをもとに上で述べ［１］S. Nishimura, “Takt : A read-eval-play-loop

たような手法も駆使しながら音楽を生成させるこinterpreter for a structural/procedural scoreとは可能でしょう。ただし、そのようにして生成language,” Proc. of the 2014 International

された音楽が既存の曲に酷似してしまっては困り

Computer Music Conference, 2014.

ます。いくらコンピュータが偶然生成したものだ［２］S. Nishimura, “Takt : Text-based Musicと主張しても、著作権上の問題を生じることは必Programming Tools,”

至です。そこで、そのような可能性を排除するた

http://takt. sourceforge. net.

め、大量の曲データを蓄積しておき、それと照合< プロフィール >1965年 埼玉県生まれ。1987年 東北大学工学部卒業、1995年 理学博士（東京大学大学院理学系研究科情報科学専攻）。1994年より会津大学講師、2000年 カリフォルニア大学アーバイン校研究員。2003年より 会津大学助教授（2007年上級准教授に改名）。

36

福島の進路 2016. 6