バッハの平均律クラヴィーアみたいのをランダム生成する

 バッハの「平均律クラヴィーア曲集 第1巻 第1番 ハ長調」の冒頭のパターンをランダムに繰り返したらどうなるか?という発想で音楽を生成しました。

・音のパターンは、冒頭に出てくる3パターンの音の動きをランダムに使用しています。
・そのパターンを再生する際の基準となる音は一定範囲内でランダムに生成しています。

 今回の生成結果はこちらです。
 映像はMIDITrailにより生成しています。繋がりの部分は、パターンをもっと都合よく選べばより自然にな流かもしれません。

棋譜クラッピング

棋譜クラッピング

棋譜音楽の1つとして、クラッピング(拍手)で棋譜を表現した作品を公開しました。左右から違う音が出るためヘッドフォン推奨です。

仕組み

棋譜の三,七,五行目を1手ずつ9音の拍手で表現しました。例えば三行目なら三1〜三9にかけて駒が存在するなら手拍子を叩き、駒が存在しなければ音を出しません。
出力しているのは三,五,七行目で、それぞれ以下の場所から聞こえるようになっています。
右耳 ... 三行目
左耳 ... 七行目
中央 ... 五行目

三,五,七行目を選んだのは、三と七はゲーム開始時には整列しているが勝負のために動き続けるのが面白く、五はどちらのプレイヤーにも属さない領域として選択しています。
それぞれの音を区別して感じるため、三行目と五行目は左右それぞれ片方の耳から音が出るようにし、五行目は拍手の音を少し変えて中央から出るようにしています。

音について

音としては手拍子を採用しました。
今回は棋譜の1手から9個の音が出ます。そして次の小節では1つもしくは2つだけ音が変わっていきます。このように少しづつ音が変わっていくのはミニマルミュージックだったので音はシンプルにしました。
このあたりはスティーヴ・ライヒのClapping Musicに影響を受けています。

音の作り方はタモリ倶楽部でやってた偶然日常音楽の影響を強く受けています。対象データへの考え方が異なりますが表現方法はほぼ同一です。情報から見えるパターンを楽譜として読み取ることで音楽を作っています。
西村直晃 Nishimura NaoakiさんはTwitterを使っています 「譜面です。 https://t.co/v5HXkPfxoj」 / Twitter

動画について

記譜データを1手ずつ読み取り、駒の場所を1、駒がない場所を0としてヒートマップとして解釈することで、画像を作成しています。画像の作成にはPythonのseabornを使っています。
アニメーションが細かくなったため、画像は1584枚使っています。これらをffmpegで動画にし、そこに別に作成した音声を結合しています。

将棋の棋譜からのヒートマップアニメーションの生成

前回からの改良点

 前回、棋譜から音楽の生成を行いました。この際対局全体のヒートマップも表示しましたが、それだと最終的な結果は分かりますが、途中の状態を把握することができませんでした。

棋譜ヒートマップアニメーション

 そこで今回は音と合わせて途中の状態のヒートマップも表示することで、経過が視覚的に分かるようにしました。

考察

 情報量が増えたが分かりやすくなったとは言い難い。しかし音を目で確認できるので曲を聞きやすくなった。

アニメーション生成方法について

 棋譜をpython3で読み込みseabornでヒートマップを生成する際に、手順ごとにヒートマップを都度生成するようにしました。それらから大量に生成した画像をffmpegを使い、動画にまとめています。
このサイトは
 Webアプリケーション開発のことや、iPhone・Android向けアプリ開発の話題がメインです。技術情報を取り扱っています。
 管理:えんたつ。twitter: @tattyamm
mimage
カテゴリ別アーカイブ
RSS
リンク
プログラミング本
アプリを作る時などに読んだ本
iPhoneプログラミングUIKit詳解リファレンス iPhoneプログラミングUIKit詳解リファレンス Android Layout Cookbook アプリの価値を高める開発テクニック パーフェクトPHP (PERFECT SERIES 3) JavaプログラミングBlack Book 2nd Edition (Black Bookシリーズ)
表記
当サイトではGoogle Analyticsを使用しております。詳細はこちらを御覧ください