Comments
Description
Transcript
公立はこだて未来大学 2013 年度 システム情報科学実習 グループ報告書
公立はこだて未来大学 2013 年度 システム情報科学実習 グループ報告書 Future University Hakodate 2013 System Information Science Practice Group Report プロジェクト名 マインドコミュニケーション Project Name Mind Communication グループ名 グループ C Group Name Group C プロジェクト番号/Project No. 21-C プロジェクトリーダ/Project Leader 1011068 上田進太郎 Sintaro Ueda グループリーダ/Group Leader 1011042 山本雄也 Yuya Yamamoto グループメンバ/Group Member 1011022 青井雄佑 Yusuke Aoi 1011024 岩崎裕太 Yuta Iwasaki 1011041 森田晴紀 Haruki Morita 1011042 山本雄也 Yuya Yamamoto 1011155 小向崇博 Takahiro Komukai 指導教員 佐藤直行,岡本誠,中田隆行,花田光彦,伊藤精英 Advisor Naoyuki Sato Makoto Okamoto Takayuki Nakata Mitsuhiko Hanada Kiyohide Ito 提出日 2014 年 1 月 15 日 Date of Submission January 15, 2014 概要 本プロジェクトは,人間の脳波についての学習を通して,新しいコミュニケーション形態を 開発し,それを共有できるようなコンテンツの提供を目的としている. 「マインドコミュニケー ション」とは,人体から読み取ることができる何らかの生体信号を利用した人間同士などの, 意思・感情の疎通のことを示す.また,生体信号は,脳波から読み取ることができる情報だけ でなく,心拍数や体の動きなどから読み取ることが可能なさまざまな情報のことも含んでい る.このマインドコミュニケーションを実現するにあたり,先に述べた人体から読み取ったさ まざまな情報をコンピュータに送信してコンピュータ内でその情報に手を加えていく,といっ た手順をふまなければならない.本プロジェクトは,この手順を達成するために,人間の脳波 における入力装置である MindWave や音楽の出力装置である Max を用いた.MindWave を 用いて脳波を測定し,その脳波の値によって変化する音を Max によって生成することができ る.これらの入出力装置を使って,人の体から取得した生命活動に関する情報を数値データに 変換してコンピュータに転送し,その数値データをもとに,音を生成して,人間の視覚,聴覚 といった感覚を刺激することができる.本プロジェクトは,この技術を応用し,新しいコミュ ニケーション形態の提案を目指す. 前期では,はじめに脳波についての知識と音楽についての知識を身につけ,先行事例の調査 を行なった.その調査をもとに,ブレインストーミングと KJ 法を用いて既存のものにはない 新しいコミュニケーションを実現するコンテンツの構想を練った.中間発表では,「写真など の既存の伝達媒体では相手に伝わらない気持ち」に着目して生まれた,脳波を読み取り,自分 の気持ちに合致した音楽を生成する「music memories」の発表を行なった.このときに準備 したプロトタイプは,自分の覚醒度,安静度などの要素によって音の高さやコード進行を変更 できるといったものである. しかし,「気持ち」という表現が曖昧だったので,後期では内容を大きく変更して「Sound Ripples」という緊張とリラックスの度合いを利用したコンテンツを製作した.この製作物の コンセプトは,「相手の緊張度,リラックス度を感じてみよう」というものである.「Sound Ripples」の大まかな流れを説明すると,まず,MindWave を用いて使用者の脳波を測定する. 次に,その生体情報をもとに使用者の緊張・集中とリラックスの度合いを調べる.最後に,そ の緊張やリラックスといった内部状態を音楽と視覚表現を利用して周りの人たちに伝達する. 「Sound Ripples」には,こういった流れで新しい人と人との関わり方を探そうという思いが込 められている. キーワード 脳波,音楽,視覚,コミュニケーション,共有,緊張,リラックス (※文責: 山本雄也) -i- Abstract In this project, through the learning of human’s brain waves, we aim at developing a new form of communication creating device that can share this communication. “Mind communication” shows communication of Intention and emotion between humans with using any biological signal read from human’s body, includes not only the information which can be read from brain waves but also the information which can be read from heart rate and physical movements. When we realize “Mind Communication”, we must follow the required steps which we control the various physical information in the computer. In this project, we achieve these steps by using I/O device of such as MindWave and Max. MindWave is the input device of brain wave, and Max is the output device of music. For using these I/O devices, we can convert physical information of life activity into numerical data, send to computer, and create sound. They stimulate the sense such as visual and auditory senses. In this project, we aim to propose a new form of communication for applying this technology. In preparatory period, firstly, we gained knowledge about brain waves and music, surveyed the precedents. Keeping survey in mind, we elaborated the plan of new form of communication for using brainstorming and KJ method. In midterm report, we presented “music memories”. “music memories” was created for focusing “emotion which we cannot tell someone for using existing medium communication”. It is a device that convert brain waves into music that much emotions of people. In this time, prototype is device that can change pitch and chord progression for using one’s awakening degree. However, because produce “Sound Ripples” with using of tension and relaxation. In a rough paraphrase about Sound Ripples, firstly, Sound Ripples measures the brain waves of the Sound Ripples user. Secondly, it finds out level of tension, concentration and relaxation of the user on the basis of the biological information. Finally, by using the music and visual expression, it tells the internal status of the user, such as the tension and relaxation to the people around. We put the feeling that we want explore relationship between people and people to ”Sound Ripples”. Keyword Brain waves, Music, Visual, Communication, Share, Tension, Relaxation (※文責: 山本雄也) - ii - 目次 はじめに 1 1.1 背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2 目的 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 問題解決へのプロセス 2 基礎知識の習得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.1 脳波 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.1.2 音楽 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.2 先行事例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2.3 実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3.1 脳波実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 2.3.2 音楽実験 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 製作物のプラン作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.1 ブレインストーミング& KJ 法 . . . . . . . . . . . . . . . . . . . . . . . . 10 2.4.2 コンセプトシート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 技能習得 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 中間発表 15 製作物 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 第1章 第2章 2.1 2.4 2.5 第3章 3.1 3.1.1 music memories . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 3.1.2 ポスター . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3.2 評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 3.3 反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 最終発表への課題と展望 19 4.1 課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 4.2 展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 製作物の詳細 20 新たな成果物の作成 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.1.1 前回の反省を踏まえた変更 . . . . . . . . . . . . . . . . . . . . . . . . . . 20 5.1.2 新たな成果物「Sound Ripples」 . . . . . . . . . . . . . . . . . . . . . . . 21 5.1.3 コンセプト・背景 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 第4章 第5章 5.1 5.2 ユーザーシナリオ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 5.3 音楽表現 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.3.1 音楽を用いた伝達方法 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.3.2 コード進行の変化による感じ方 . . . . . . . . . . . . . . . . . . . . . . . . 22 5.3.3 コード進行の作成と分類分け . . . . . . . . . . . . . . . . . . . . . . . . . 22 5.3.4 コード進行の移調 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 - iii - 使用者の状態により演奏される曲 . . . . . . . . . . . . . . . . . . . . . . . 23 プロトタイプ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.3.5 5.4 5.5 5.4.1 プロトタイプ 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 5.4.2 プロトタイプ 1 の反省点と改善策 . . . . . . . . . . . . . . . . . . . . . . . 26 5.4.3 プロトタイプ 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 5.4.4 プロトタイプ 2 の反省点と改善案 . . . . . . . . . . . . . . . . . . . . . . . 29 システム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.5.1 Processing . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 5.5.2 Max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 使い方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.6.1 使用前の準備 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36 5.6.2 Sound Ripples の起動 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37 5.6.3 動作説明 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 5.7 発表内容 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39 5.8 評価 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.8.1 評点 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41 5.8.2 好印象の意見 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 5.8.3 悪印象の意見 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 5.8.4 発表に対しての意見 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43 反省 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44 今後の課題と展望 46 6.1 各自の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46 6.2 全体の課題 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 48 6.3 各自の展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 6.4 全体の展望 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51 ソースコード 52 5.6 5.9 第6章 付録 A 参考文献 78 - iv - Mind Communication 第1章 1.1 はじめに 背景 私たちは脳波を使って,新しいコミュニケーション形態を考えるということをプロジェクトで行 なった.それをこのプロジェクトで扱うマインドコミュニケーションを用いて実現していく.脳波 とは,人間や動物の脳から生じた電気信号のことである.脳波は頭皮上などに置いた電極を用いて 測定することができる. マインドコミュニケーションは,脳波という脳から生じた電気信号を用いて,既存のものにはな い形で相手との意思疎通を図ることができるコミュニケーション形態である.インターネットが多 く使われている近年の情報社会では,昔ながらの通信手段である手紙や電話が,チャットや SNS などのネットワークを介したものに変化しつつある.コミュニケーションの本来の姿である,人と 人との直接の関わり合いが失われた現代に新しいコミュニケーションの方法を提供し,コミュニ ケーション不足を解消できるのではないか.脳波を使うことにより,普段伝えられない気持ちや, 伝えたいけれどうまく言語に変換できない気持ちを音,光などの何か別の形に変換して相手に伝え ることができるのではないかと私たちは考えた. (※文責: 山本雄也) 1.2 目的 本プロジェクトは,脳波についての知識を用いて,新しいコミュニケーションに使えるコンテン ツの作成することを目的としている.その過程で,コンテンツを作成するために用いる技術の習得 や,話し合いでの協調性,積極性などの学習も必要になってくる.また,プロトタイプの作成に 伴って,プログラミングの技術や,入出力装置の実装技術の学習にも励まなければならない. 私た ちのグループで着目したのは「写真などのみでは伝わりづらい気持ち」である.写真は,その時の 風景を切り取ることができるが,その時の気持ちまでは写真に残らない. 私たちは,写真にその時 の脳波から生成した音楽を加えることによってできる新しい伝達媒体によって,気持ちが鮮明に伝 わるのではないかと考えた. (※文責: 山本雄也) Group Report of 2013 SISP -1- Group Number 21-C Mind Communication 第 2 章 問題解決へのプロセス 2.1 2.1.1 基礎知識の習得 脳波 脳波とは,人や動物の脳から生じる電気活動である.1875 年にイギリスの科学者リチャード・ カートンが動物の生体脳に電気現象がみられることが報告されてから脳波に関しての研究が始まっ た.検査や実験などで脳波を観測する時に取り付ける電極の位置は国際 10-20 法に従って配置する のが一般的であり,用途によって電極の数や取り付ける位置を変える.脳波は周波数の違いから, 主に 0.5∼4Hz 未満のδ波,4∼8Hz 未満のθ波,8∼13Hz 未満のα波,13∼40Hz 未満のβ波の 4 つに分けられており,δ波は熟睡時,θ波は眠くなってきた時,α波は安静・リラックスや閉眼 時,β波は精神的に活動しているときに強く現れる.現在,脳波は医療の臨床検査で用いられてお り,てんかんや意識障害,精神疾患などの診断の補助,状態把握に役立っている.また,医学,生 理学,心理学,工学の領域の研究方法として用いられたり,脳波を用いた商品が発売されるなど, 様々なところで利用されている. (※文責: 岩崎裕太) 2.1.2 音楽 音は,空気の振動によって伝わる.波長によって音の高さが変わり,波長が短くなるほど,音が 高くなっていく.和音とは,音の重なりで,例えば,ド,ミ,ソの 3 つの音が同時に鳴ることで和 音となる.音から音がどれだけ離れているのか,という組み合わせがいくつもあり,それらの組み 合わせによって緊張度や安静度が表現できる.和音は音が何度離れているのかというものなので, 数学的に計算で求めてコード進行を作っていくことができる.major だと比較的,安心して聴くこ とができるコード進行であり,miner だと比較的,不安や緊張を感じるコード進行である.音楽は タイミングやダイナミクスでも表現の幅が広がる.ダイナミクス表現とは音のメリハリ,強調のこ とであり,これらを用いることで活発で陽気な曲になったり,落ち着いたゆったりとした曲などを 表現できる.同じ曲でも自分の気持ちによってダイナミクス表現が強い曲が心地よかったり,タイ ミング表現がゆったりしている曲が聞きたいと思ったりなど,音楽は感情に大きく左右される. (※文責: 小向崇博) 2.2 先行事例 私たちは,これから脳波に音とリズムを合わせた成果物を作りあげるという目標課題を達成する ために,まず今日の世間では脳波どのような用途に利用されているのかを調べるための活動,いわ ゆる先行事例調査を行った.先行事例調査はグループ A,B,C でそれぞれで行った.また,各グ ループで先行事例を共有するためにプレゼン形式で情報の交換を行うことにした.主なテーマとし ては脳波に関連する事例ということであったが,我々グループ C はグループ全員の合意で脳波を Group Report of 2013 SISP -2- Group Number 21-C Mind Communication 用いた音楽コミュニケーションゲームの作成を考えていたため,脳波とゲームを絡めた先行事例を 多く探すことに重点を置いて先行事例調査に望んだ.以下はグループ C 内で調べた先行事例の中 でも我々の成果物に反映できそうなものである. 1. mico 『mico』とは脳波で音楽をセレクトするヘッドフォンというものでニューロスカイ社が作 成したものである [1].額と耳についてる脳波センサーを装着することによって脳波を測定, その測定された脳波から独自のアルゴリズムを用いてその瞬間の「キモチ」を iPhone のア プリに伝達させる.アプリ側は受け取った側にストックされている曲の中からその時のキモ チにあった曲を選出して曲をセレクトするというものである.また選曲機能の他にもその 時の脳波の状態をビジュアルで表現する技術をあり,「集中している」=「!」,「眠い」= 「zz...」などのアイコンが表示される”キモチ漏れ”する演出もついてる.この先行事例から は脳波から気持ちを測定するのは現在の技術としては可能であると考えた.さらにそこに楽 しい気持ちの時に楽しい音楽,悲しい気持ちの時には悲しい音楽といった,その時の気持ち と音楽の関係を見つけ出すことによって脳波からその時の気持ちにあった音楽を生成するこ とが可能ではないかと考えた. 2. ニューロボーイの冒険 『ニューロボーイの冒険』は脳波を用いたゲームであり,こちらもニューロスカイ社が作成 したものである [2].脳波を使う大まかな操作としては安静時に顕著に出るα波が出ている 時は物体が浮かび上がり,集中している時に顕著に出るβ波が出続けると物体が引火して爆 発するといったゲームである.既に脳波ゲームというものがあるということからも簡易的な ものならば脳波を用いたゲームの作成は可能であると考えた. 先行事例を調査した上で問題点が 2 点ほどあった.一つは脳波の操作性の悪さである.脳波は常 に人間に流れているもののそれをコントロールするという意識は普段からないためか,うまくα波 あるいはβ波を出そうとすることは困難であった.もうひとつは脳波から気持ちに変換するアルゴ リズムは公開されていなかったという点である.これは実際に実験を繰り返して楽しいときの脳 波,悲しい時の脳波などを分析する必要があると感じた. (※文責: 森田晴紀) 2.3 実験 先行事例の調査で様々な事例を調べてきたが,それらがどのように脳波を用いて動作しているの かという疑問が出てきた.そこで,本プロジェクトでは,行動と脳波の関係,感情と脳波の関係を 知るために 2 つの実験を行った.実験行うために,プロジェクトの中で脳波班と音楽班の 2 つのグ ループに分かれ,それぞれ様々な条件を設定して実験を行った. 2.3.1 脳波実験 脳波実験の目的 脳波は行動によって様々な形に変化することが分かっているが,具体的にどのように行動したら どのような脳波が出るのかは分かっていない.そこで,今回の実験では人間の日常的な行動とある 特異的な状態のときにどんな脳波が測定されるか,また,その脳波が今後の製作物にどのように利 Group Report of 2013 SISP -3- Group Number 21-C Mind Communication 用できるかを調べるために実験を行った. 被験者 被験者はプロジェクトの脳波班の中から 3 名 (男性 2 人,女性 1 人) を選び,実験を行った. 日時と場所 実験は平成 25 年 5 月中旬から下旬にかけて,15 時から 18 時の間に行った.場所は公立はこだ て未来大学 235 教室裏の実験室で行った. 装置 実験には PC,ニューロスカイ社が発売した脳波検出装置 MindWave と付属プログラム”bmi gui2”,メトロノーム,イヤホン,アルコール洗浄液,また,Web 上で動作する音楽ゲームを用 いた. 実験方法 まず,被験者はアルコール洗浄液で MindWave の電極が接触する額と耳たぶを洗浄し,Mind- Wave を装着する.次に PC 上でプログラム”bmi gui2”を起動し,MindWave と接続する.以上 が完了したら各実験条件に基づき,脳波を測定する.MindWave から出力される値は,α波,β 波,θ波,δ波,γ波の 5 つ,また,MindWave によって計算された安静度 (med),覚醒度 (atn) の 2 つである.被験者にいくつかの条件を与え,各条件下における脳波の状態と開眼安静時の脳 波の状態をコントロールとした t 検定を行った.被験者に与えた条件は,個人で行う条件として閉 眼安静,瞬き,歯ぎしり,音楽を聞く,120BPM のリズムを聞く (図 2.2,リズム),2 秒間隔での タッピングを行う (同図,リズム 2),3 秒間隔でのタッピングを行う (同図,リズム 3),Web 上で 動作する音楽ゲームをプレイするの 8 種類,また,複数人で行う条件として被験者 2 人での会話, しりとりの 2 種類とした. 実験結果 実験の解析は開眼安静時と各条件を比較した t 検定を行った.この時,自由度を 180 とし,両側 0.01% 水準で検定を行った.計算は全条件共通として,全体の数値の log をとり,データ数を n1, n2,平均値を x1 ,x2 ,標準偏差を s1 ,s2 ,分散を s21 ,s22 とし, x1 − x2 t= √ 2 s22 s1 n1 + n2 で t 値を求め,これが 3.345397 を超えた場合を有意な差があるとした.また,複数条件では全体 の数値の log をとり,被験者のペアごとの相関係数 r を求め,そこから t 値を計算し,t 値が-1.96 以下,または 1.96 以上のときに有意な差があるとした.また,全体の t 値は各ペアごとの数値を √ 足し合わせ, 3 で割ったものとした. Group Report of 2013 SISP -4- Group Number 21-C Mind Communication 図 2.1 脳波実験結果 (δ波は熟睡時,θ波は眠くなってきた時,γ波は覚醒時,α波は安静 時,β波は活動時に強くみられる.また,脳波はそれぞれ周波数によって high α波や low α 波などの二種類に分類される.) 図 2.2 脳波リズム実験結果 図 2.3 脳波会話実験結果 t 検定を行った結果,ほぼ全ての条件において有意な差があると認められた.その中で閉眼安静 や音楽を聞くといった複雑な動作を行わない条件では 2,3 種類ほどの周波数帯で開眼時よりも強 く現れ,有意な差があると認められた.音楽を聞く時ではδ波,θ波,γ波が強く現れていたが, Group Report of 2013 SISP -5- Group Number 21-C Mind Communication ただリズムを聞くだけではγ波のみ強く現れた.しかし,歯軋りや音楽ゲームをプレイするといっ た複雑な動作を行うものは複数の周波数帯で開眼時よりも強く現れ,有意な差があると認められ た.特に歯軋りと瞬きではδ波が,音楽ゲームをプレイしている時はβ波とγ波が強く現れた.ま た,複数人で行う条件に関してもほぼ全ての周波数帯で開眼時よりも強く現れ,有意な差があると 認められた.しりとりに関しては meditation 以外全て周波数帯で開眼時よりも強く出現し,有意 な差があると認められた. 図 2.4 脳波会話実験相関 図 2.5 脳波しりとり実験相関 複数人で行う条件についての相関関係を見ていくと,会話においては 1 つのペアでのみθ波が基 準値の下限を下回り,有意な差が認められたが,全体では全ての周波数帯において有意な差は認め られなかった.また,しりとりに完成手は 2 つのペアで覚醒度の値が基準値の上限を超え,有意な 差があると認められた.全体においても覚醒度の値が基準値の上限を超えて有意な差があると認め られた. 考察 この実験より,閉眼やリズムなどの単純な条件下では比較的脳波は取りやすいが,歯軋りやゲー ムをするなどといった激しい条件下では脳波の他に筋電も計測してしまい,脳波を測定するには Group Report of 2013 SISP -6- Group Number 21-C Mind Communication 向いていない.そのため,脳波を用いた製作物を製作するときは比較的単純な行動を利用すると よい. (※文責: 岩崎裕太) 2.3.2 音楽実験 音楽実験の目的 人は覚醒度や気分によってその時に聞きたい音楽が変わる.しかし,覚醒度と気分が音楽とどの ように対応しているかはまだ分かっていない.そこで,今回の実験では人の覚醒度,気分と聞きた い音楽にはダイナミクス,タイミング,テンポ,ピッチの 4 つ表現に関係があるのか検証した.実 験はまずタイミングとダイナミクスの違いによる実験を行い,別の日にテンポとピッチの違いによ る実験を行った. 被験者 タイミングとダイナミクスの違いによる実験の被験者はプロジェクトの音楽班 8 名 (男性 7 名, 女性 1 名),また,テンポとピッチの違いによる実験は音楽班全員の他にプロジェクトとは関係の ない一般の人合計 14 名 (男性 13 名,女性 1 名) で行った. 日時と場所 タイミングとダイナミクスの違いによる実験は平成 25 年 5 月 17 日の 17 時から 18 時にかけて, 公立はこだて未来大学 2 階 235 教室前で行った.また,テンポとピッチの違いによる実験は平成 25 年 5 月 27 日から 29 日の 15 時から 18 時にかけて公立はこだて未来大学 2 階 235 教室前と 5 階 585 教室で行った. 装置 タイミングとダイナミクスの違いによる実験では,実験用アプリケージョンがインストールさ れた PC,ヘッドフォン,インタフェースを用いた.また,アプリケーションで使う音楽はフレデ リック・ショパンの「練習曲作品 10 第 3 番ホ長調」を使用した.テンポとピッチの違いによる実 験では,Max がインストールされた PC,ヘッドフォンを用いた.また,Max からは F ♯ 7,G7, Em7,Am の 4 つの和声が順番に流れるようにした. 実験方法 タイミングとダイナミクスの違いによる実験では,まず,タイミング表現が異なる 3 つの音楽を 聞いてもらい,次にダイナミクス表現が異なる 3 つの音楽を聞いてもらう.その後,ドライブに 行った時 (覚醒度:高い,気分:良い),虫歯の治療を受けている時 (覚醒度:高い,気分:悪い), 友達と喧嘩して落ち込んでいる時 (覚醒度:低い,気分:悪い),旧友と会って話をしている時 (覚 醒度:低い,気分:良い),オーケストラで演奏を聞く時の 5 つの条件のときに被験者が最も聞き たいタイミング・ダイナミクス表現の組み合わせを 1 つ選択してもらう.この時,各表現の強さを 0:表現無し,1:弱い,2:中程度,3:強いの 4 段階とした.また,テンポとピッチの違いによる 実験では,被験者自らが Max を操作し,テンポ表現,ピッチ表現の違いを聞いてもらう.その後, タイミングとダイナミクスの違いによる実験と同様に 5 つの条件のときに被験者が最も聞きたいテ ンポ・ピッチ表現の組み合わせを 1 つ選択してもらう.この時,テンポ表現を 1:遅い,2:中程 Group Report of 2013 SISP -7- Group Number 21-C Mind Communication 度,3:速いの 3 段階,ピッチ表現を 1:低い,2:中程度,3:高いの 3 段階とした. 実験結果 実験の解析はそれぞれの被験者のデータを Web サイト”js-STAR 2012”(http://www.kisnet. or.jp/nappa/software/star/index.htm) の 2 要因被験者内の分析ツールに入力し,分散分析 を行った.このサイトは値を入力するだけで様々な分散分析を行うことができる. 図 2.6 音楽実験タイミング結果 図 2.7 音楽実験ダイナミクス表現結果 図 2.8 Group Report of 2013 SISP 音楽実験テンポ結果 -8- Group Number 21-C Mind Communication 図 2.9 音楽実験ピッチ結果 解析の結果,タイミング表現には気分と覚醒度の主効果が有意ではなく,また,これらの交互作 用も有意ではなかった.F(1, 7) = 0.13,p > .10 ダイナミクス表現には気分の主効果のみ,有意であることが認められた.気分が悪い条件 (M = 1.06,S.D = 0.74) よりも気分が良い条件 (M = 1.93,S.D = 1.03) の方がダイナミクス表現の豊 かなものを聞きたいという傾向があった.F(1, 7) = 7.98,p < .05 覚醒度の水準ごとに気分の単 純主効果について検証した結果,覚醒度が高い時は気分の主効果が得られたが,低い時には得られ なかった. テンポ表現については,気分と覚醒度の主効果が有意であることが認められた.覚醒度が低い条 件 (M = 1.53,S.D = 0.67) よりも覚醒度が高い条件 (M = 2.28,S.D = 0.70) の方が速いテンポ を好む傾向があった.F(1, 13) = 12.22,p < .01 また,気分が悪い条件 (M = 1.60,S.D = 0.74) よりも気分が良い条件 (M = 2.21,S.D = 0.63) の方が速いテンポを好む傾向があった.F(1, 14) = 21.72,p < .01 そして,覚醒度と気分の交互作用についても有意傾向であることが認められた. F(1, 13) = 3.47,p < .10 気分の水準ごとに覚醒度の単純主効果について検証した結果,気分が良 い時は覚醒度の効果が得られたが,気分が悪い時には得られなかった.また,覚醒度の水準ごとに 気分の単純主効果について検証した結果,覚醒度が高い時は気分の効果が得られたが,覚醒度が低 い時には得られなかった. ピッチ表現についても,気分と覚醒度の主効果が有意であることが認められた.覚醒度が低い条 件 (M = 1.71,S.D = 0.70) よりも覚醒度が高い条件 (M = 2.14,S.D = 0.75) の方が高い音を好 む傾向にあった.F(1, 13) = 4.78,p < .05 気分が悪い時の条件 (M = 1.64,S.D = 0.79) より も気分が良いときの条件 (M =2.21,S.D = 0.66) の方が高い音を好む傾向があった.F(1, 13) = 9.75,p < .01 しかし,覚醒度と気分の交互作用については有意な差が見られなかった.F(1, 13) = 0.43,p > .10 気分の水準ごとに覚醒度の単純主効果について検証した結果,気分が低い時は覚 醒度の効果が得られたが,気分が良い時には得られなかった.また,覚醒度の水準ごとに気分の単 純主効果について検証した結果,覚醒度が高い時には気分の効果が得られなかったが,覚醒度が低 い時には得られなかった. 考察 この実験より,人は覚醒度と気分によって聞きたい音楽が変わるのは,音楽のダイナミクス,テ ンポ,ピッチの表現の違いが影響していることが分かった.これにより,ユーザの現在の覚醒度と Group Report of 2013 SISP -9- Group Number 21-C Mind Communication 気分が脳波から分かれば,ユーザが聞きたい音楽を選曲する,発展すれば現在のユーザの気持ちに 合った音楽が作曲できるかもしれない.また,逆にユーザに特定の音楽を聞かせることによって ユーザの覚醒度と気分をコントロールすることができるかもしれない.製作物を製作する際,今回 の実験の内容を利用すると,音楽と脳波を組み合わせた新しいコンテンツが製作できると考える. (※文責: 岩崎裕太) 製作物のプラン作成 2.4 2.4.1 ブレインストーミング& KJ 法 本プロジェクトにおいて制作物のプラン作成にはブレインストーミングと KJ 法を用いた. ブ レインストーミングとは,20 世紀中期にアレックス・F・オズボーンによって考案された会議方式 のひとつである.集団思考,集団発想法,課題抽出ともいう.これは集団でアイデアを出し合うこ とで相互工作の連鎖反応や発想の誘発を期待する方法である.人数の制限はないが,5 人以上,多 くても 10 人程度が望ましく,課題はあらかじめ周知しておくべきである.ブレインストーミング には以下の 4 つのルールがある. 1. 判断・結論を出さない 自由なアイデア抽出を制限するような判断,結論は慎み,以降の段階に譲る.ただし可能性 を広く抽出する質問や意見はこの限りではなく,その場で自由にぶつけ合っても良い. 2. 粗野な考えを歓迎する 誰もが思いつきそうなアイデアよりも,奇抜な考え方やユニークで斬新なアイデアを重視 する. 3. 量を重視する 様々な角度から,多くのアイデアを出す.一般的な考え方,アイデアはもちろん,一般的で はない新規性のあるアイデアまであらゆる提案を歓迎する.質より量を重視する. 4. アイデアを結合し発展させる 異なるアイデアをくっつけたり一部を変化させたりすることで,新たなアイデアを生み出し ていく.他人の意見に便乗することが推奨される. KJ 法は,文化人類学者川喜多二郎がデータをまとめるために考案した手法である.データを カードに記し,カードをグループごとにまとめ,図解する. 共同の作業にも用いられ,創造性開発 に効果があるとされる.KJ 法には以下の 4 つのステップからなる. 1. カードの作成 1 つのデータを 1 枚のカードに要約して記述する. 2. グループ編成 数多くのカードの中から似通ったいくつかのものをグループにまとめ,それぞれに見出しを つける. 3. 図解化 グループの見出しの意味関係により配置し,線でつないだり,囲んだりすることで,関係を 図解する. 4. 叙述化 Group Report of 2013 SISP - 10 - Group Number 21-C Mind Communication 図解から文章を書き出したり,時間前後関係に展開することで,新たな発想を得たり,誤り を発見したりする. ブレインストーミングで出したアイデアを KJ 法で構造化し,先行事例や実験結果などを踏ま え,纏め上げた. ブレインストーミングのテーマを決める話し合いの際,音と脳波とゲームを用いた新しいコミュ ニケーションツールを作成することを目的としてメンバーが集まったこともあり,「音と脳波を 使ったゲーム」をテーマにブレインストーミングを行った.ここでは各人ができるだけ多くの案や 意見を出すことを目的として行ったが,KJ 法のステップの一つであるグループ編成を行った際, 核となる「問題点」 , 「解決法」 , 「製作物」の 3 つのグループの要素のうち, 「解決法」 , 「製作物」の 要素が圧倒的に少なかったので,再度ブレインストーミングを行った.このように,挙がった要素 が少なかった場合,ブレインストーミングを繰り返し行うことによって,最終的により多くの発想 が生まれる.しかし,「製作物」に関しては具体案が少数しか挙がらなかったため,KJ 法を行い, 要素を図解化してから再度,製作物の意見を出し合うという方針を採用した.ブレインストーミン グを行って得た要素を大きくグループ分けしたときに,問題点の要素は • ゲームに必要な要素 • 音楽 • 楽しさ という 3 個のグループができた.さらにそのグループ内でグループ分けを行い,最終的に 7 個の 小さなグループに分類することができた.解決法の要素は,10 個のグループに分けられ,それぞ れのグループに関連している問題点の要素と線で結び,視覚化した.それぞれのグループは, • 外装・エフェクト • オンライン • カスタマイズ • 周りの人を参加 • 種類の豊富なゲーム • 脳波を利用した不可能を可能にする要素 • 初心者にもやさしい • 実力差を埋める • プレイヤーの実力にあった難易度 • 脳波を操作に使わない の 10 個である.KJ 法に基づく図解化を行う際,製作物の背景をしっかりとしたものにするた め,ストーリーの流れを意識して行った.これらより,より多くの問題点をクリアしている解決策 の要素のグループや,重要性の高い内容のグループをまとめたものを元に製作物の意見を出すため に再びブレインストーミングを行い,製作物の案を出した. (※文責: 青井雄佑) Group Report of 2013 SISP - 11 - Group Number 21-C Mind Communication 2.4.2 コンセプトシート プレインストーミング,KJ 法を念入りに行い,問題点や目的,方向性などを明確にしていった 後,自分たちがどのような製品を作っていくのか,どのような製品を作りたいのか,というのを記 したコンセプトシートというものの作成に取り掛かった.コンセプトシートには,製品名,その製 品で解決できる問題点,その製品のコンセプト,システム面やイラストなどが書き,製品案をどん どん出していった.今回でたコンセプトーシトの内容の一例として,「Brain DJ」という製品案が 出た.これは,作曲できない人でも脳波から音楽を生成することで気軽に作曲ができるというもの で,脳波から作られた曲に手動でエフェクトやアレンジを加えていくことで,自分好みの曲にし ていくというものであった.このコンセプトシートの内容は,今回のプロジェクトの目標である 「music memories」にも活かされている. 図 2.10 コンセプトシート「Brain DJ」 (※文責: 小向崇博) 2.5 技能習得 私達が提案したものを実装するためのプロトタイプ作成する為に,必要なものとして Mindwave, Processing,Max/MSP のソフトに関しての教本やサンプルプログラム,プログラムの書き方など についての必要な知識を学んだ 1. MindWave 『MindWave』(図 2.11) はニューロスカイ社より発売された脳波を測定するためのヘッド セットである.脳波を測定する道具はさまざまあるが価格は高いものでは 100 万円を超え るものなども存在する.その点『MindWave』は価格は 1 万円程度とリーズナブルである上 に,あらかじめついている独自のアルゴリズムによりα波,β波の値の大きさが簡単にわか るようにもなっていて非常に扱いやすいということから採用をした.こちらの装置は一度, 脳波の実験を行ったグループがいたため,そちらのグループの人に操作の仕方などを教わる Group Report of 2013 SISP - 12 - Group Number 21-C Mind Communication ことによって技術の習得をすることができた. 図 2.11 MindWave 2. Processing Processing(図 2.12) は,オープンソースオブジェクトであり,かつては MIT メディアラ ボで開発されていた.電子アートとビジュアルデザインのためのプログラミング言語であ り,総合開発環境である.視覚的なフィードバックが即座に得られるため,初心者がプロ グラミングを学習するのに適しており,電子スケッチブックの基盤としても利用できる. また,Java を単純化し,グラフィック機能に特化した言語ともいえる.そのため私たちは 画面を構成をする作業に置いては Processing が非常に優位であると考えたため使用を試み た.Processing は既に講義で学んでいたもの,講義では Processing 単体で使う,あるいは Gainer と呼ばれるセンサ(明るさや加速度)やアクチュエーター(LED やモーター)と パソコンを接続する機器と Processing を併用して使うことしかなかった.しかし,今回は Processing と脳波装置の併用,Processing と Max 装置の併用を行う必要があったため再度 学習をし直す形となった. 図 2.12 Processing 開発画面 Group Report of 2013 SISP - 13 - Group Number 21-C Mind Communication 3. Max Max(図 2.13) はサンフランシスコのソフトウェア企業 Cycling ’74 が開発・保守している音 楽とマルチメディア向けのオブジェクト指向のプログラム環境であり,パッチをつなぐだけ でプログラムができるので,難しいプログラム言語を使わなくてもオーディオ情報や映像情 報を扱う事ができる.また Max/MSP は先ほども述べた Processing との愛称も非常によく 併用が簡単であるという利点があったため,私たちは Max/MSP の使用を試みた.Max に 関しては私達のグループメンバーは誰ひとりとして使用したことがなかったためオブジェク トの扱い方,音の出し方,Processing との連携方法などを一から学習することとなった. 図 2.13 Max 開発画面 中間発表では MindWave から脳波を取り込んで,その取り込んだ脳波データを Processing に受 信させてα波とβ波の大小比較を行いα波のほうが大きければ Processing から Max へ一音下げ るように,β波のほうが大きければ Processing から Max へ一音上げるような命令を与えることに より,脳波で音楽を変化させることができる成果物を作ることができた. (※文責: 森田晴紀) Group Report of 2013 SISP - 14 - Group Number 21-C Mind Communication 第3章 3.1 中間発表 製作物 3.1.1 music memories コンセプト 私たちは「脳波を使い,感じたものを音楽にすることによって,その時の気持ちを相手と共有す る」というコンセプトで製作を進めることにした. そこで,自分の気持ちから生まれた音楽を用い ることによって,文章や写真だけでは表現できなかった自分の気持ちをより鮮明に伝えることがで きるのでなはないかと考えた. 背景 「手紙の文章や写真の景色・風景だけでは,自分の気持ちを相手に伝えるのは難しいのではない か」という問題点に対して,どうしたら答えを出せるかという議論をした.手紙の文章において は,自分の気持ちをうまく言語化できない人や,気持ちを素直に表すことができない人がいると, 自分の感じたことのスムーズな伝達は困難になる.また,写真だけでは,その時見た風景・景色は 残せても,その時の気持ちや感じたことは,相手に伝えられない.そこで,経験時の感情を脳波に よって読み取り,それを音楽という,人の心に感情を訴えやすい形の刺激に変換して相手に伝える という新しいコミュニケーションの仕方を考え出した. 図 3.1 現段階で考える製作物のイメージ システム 中間発表で作成したプロトタイプの説明をする.PC を 1 台,MindWave を 1 台,Max を 1 つ 用意する.脳波測定装置を用いて脳波を測定し,その脳波のデータを PC に送る.その値をプロ Group Report of 2013 SISP - 15 - Group Number 21-C Mind Communication セッシングで処理する.プロセッシングで処理されたデータを Max に送り,その脳波の値にあっ たコード進行 [3] を Max により再生する.今回作成したプロトタイプでは,リラックス時に「F F C C」「F Em Dm C」「C/D D/E F/G F/G」「F7 E7 Dm7 G/A」の 4 つの内どれかの一般的に 穏やかに聴こえるコード進行がランダムに再生され,集中時に「F7 Em7 A7 Dm7 F/G B ♭/C G ♭/7」「F7 Em7 Am7 Dm7 G7 Em7 Am7」「B7/D ♭ D ♭ 7 C7/D D7 F7/G G7 C7 A ♭ 7/B ♭」の 3 つの内,リラックス時に再生されるコード進行よりもおしゃれに聴こえるコード進行がラ ンダムに再生される.中間発表では,限られた時間内で脳波から音楽が生成される様子をわかりや すく説明しなければならない.そのため,比較的扱いやすい脳波の要素である集中・リラックスの みを用いて,音楽が気持ちによってどのように変化するのかを説明した. 図 3.2 PC とプロセッシングと Max の連携の様子 使用例 私たちは,music memories をどのようなシーンで使えるかを話し合った. たとえば,旅行に行っ たとき,きれいな風景や心に残った場所などを写真に収めて,忘れないようにしたり,あとで友人 に見せてあげようとしたりする.しかし,その写真にはきれいな風景が映っているが,撮影者の気 持ちを内包しているわけではない.その写真と気持ちを一緒に保存して,風景のみならず,その時 の気持ちまで,自ら説明しなくても相手に伝えることができるようにするのが music memories で ある.気持ちも相手に伝わるので写真だけよりも,深いコミュニケーションが生まれる. (※文責: 山本雄也) 3.1.2 ポスター 中間発表では,以下のようなポスターを作成した (図 3.3). Group Report of 2013 SISP - 16 - Group Number 21-C Mind Communication 図 3.3 中間発表で使ったポスター このポスターの製作において先生方にアドバイスをもらいながら考えて気を付けたことを述べ る.まず,ポスターの文章は長めにしないことである.ポスターの文章は論文などのようにじっく り読むように書くのではなく,すぐに読めて,要点がわかるものにしなければならない.したがっ て,文章は長めに書くのではなく,伝えたい要点だけに絞って書くのが良い.次に,小見出しの字 の大きさに気を付けることである.小見出しとはポスター上の「1. 背景」「2. コンセプト」などの ことであるが,これを大きく書きすぎると肝心の内容に目がいかず,内容が頭に入ってこない.ポ スターは見た瞬間に大事なところ,すなわち,自分たちが一番伝えたいことが目に入らなければな らないので小見出しは小さくし,内容の部分を小見出しより大きな字で書くのが良い.最後に,文 章よりもイラストをよりも多めにすることである.これは発表当日に実際にポスターセッションを してわかったことであるが,見に来る人たちは,ポスターの文章よりもすぐに見てわかる図や,イ ラストのところしか見ていないのである.よって,文章の量は最小限にして,イラストや図を多用 して説明したほうが効率的ではないかと感じた. (※文責: 山本雄也) Group Report of 2013 SISP - 17 - Group Number 21-C Mind Communication 3.2 評価 発表内容について 1∼10 段階で発表を評価してもらった.全体の平均点は 7 点であったが,私た ちの目標点数は 8 点以上だったので,中間発表時点でのグループの到達度はいまひとつといったと ころで,もう少し努力が足りなかった. コメントとしては, • その時の気持ちを音楽にできるのはすごい • ポスターの図が多くて分かりやすい など良いコメントはあったが, • このツールを使ったストーリーをもっと考える必要があった • 実用性がわからない • 脳波以外のデータも使うべき • 脳波から音楽への変換のずれが気になる など修正すべき点を指摘されているコメントのほうが多かった. その中でも, • 脳波と感情は直結するのか というコメントや質問が目立っており,この点は今後の活動において重点的に調査する必要が ある. (※文責: 青井雄佑) 3.3 反省 中間発表が終わった後,グループメンバーで反省会を行い,今後の目標とやるべきことについて 話し合った. 発表についての反省点は,「分かりやすい発表はできたか」,「ポスターのフォントの大きさや図 の配置などをよりわかりやすいものであったか」,「目で見てわかる形のある製作物の試作品を見せ られればよかった」という点が挙げられらた.この点についての考察として,今回の発表において は自分たちの視点からの説明や質問への回答が目立っていた.これらの反省を今後に生かすための 方針として,「発表練習をより多くする」,「ポスターのレイアウトを第三者視点で見直す」,「体験 できるもの,目で見て分かるものなどができる試作品を作成すべき」ということが考えられる.製 作物についての反省点は,やはりコメントや質問で目立っていた「脳波と感情は直結するのか」と いう点を重点的に調査,検証する必要がある.この意見は製作物の要となる部分でもあるので,第 三者が十分納得できるまで行う必要がある.また,製作物の用途に疑問を抱いている意見が見られ たので,もう一度ブレインストーミングと KJ 法を行い,背景とコンセプトを見直し,今まで以上 にこれらをよりしっかりとしたものにすべき.この点は発表と重なる部分があるが,第三者にこの ツールの使用する利点,意図などを的確に説明できるようにしておく必要がある. (※文責: 青井雄佑) Group Report of 2013 SISP - 18 - Group Number 21-C Mind Communication 第4章 4.1 最終発表への課題と展望 課題 今回,中間発表を行って出てきた質問などから問題点や課題などが浮かび上がってきた.この 「music memories」を使ったメリットなどのストーリーが伝わりにくく,実用性が感じられなかっ たことや,脳波から本当に感情を読み取ることができるのか,その脳波から自分が思っている音楽 を生成することが可能なのか,ということが大きな課題となった.脳波は自分で制御できず,それ が音楽にどう変換できるのか,というのは話し合いの中でも上がってきた課題であったので,最終 発表までに深く重点的に詰めていく部分となる.中間発表では自分の脳波の変化によってコード進 行が変わっていくというものを実装したが,最終発表までにはきちんとした曲を生成するところま で到達してなければいけないので,プログラムできちんとした曲を生成できるよう研究が必要.グ ループ全員が同じ知識を持っていなかったので,音楽のことを深く質問されると答えられなかった り,実装の部分を質問されると答えられなかったり,コンセプトやストーリー,脳波の詳しい内容 など,答えられる人と答えられない人で差がついてしまったので,最終ではこのようなことがない よう,全員が必要な知識を全て身に付けられるように研究していく. (※文責: 小向崇博) 4.2 展望 このグループの当初の目的とは少し離れた製品を作ろうとしているので,当初の目的であった 使っている自分も見ている人も楽しめるツールというのを,この「music memories」の中に取り 入れていきたい.脳波の扱い,音楽から感情の表現などをしっかり研究していき,きちんとした曲 を生成することが大切だが,音楽を生成するとき,ベースラインやコード進行,メロディなど全て プログラムに任せると,自分が想像していた曲とは違った曲になってしまったりするので,ベース やコードなどをプログラムに任せ,メロディラインを自分の手で加えていくなど,曲を自分好みに していけるようなものにしていきたい.自分たちがやりたいことを見失ってしまわないよう,グ ループメンバーできっちり話し合い,不明な点,疑問に思っている点などはどんどん言い合いえる よう,活発なグループになっていき,使ってみたいと思わせるような製品を作っていきたい. (※文責: 小向崇博) Group Report of 2013 SISP - 19 - Group Number 21-C Mind Communication 第 5 章 製作物の詳細 5.1 5.1.1 新たな成果物の作成 前回の反省を踏まえた変更 中間発表を終えて出てきた質問などから大きく分けて 4 点の問題点や課題が出てきた. まず,1 つ目に脳波で感情を表せるのかどうなのか?ということである.中間発表の時のコンセ プトは「音があるからこそ伝わる気持ち」ということで設定し背景を手紙の文書や写真の景色・風 景だけでは,自分の気持ちを相手に伝えるのは難しい.そこで,自分の気持ちから生まれた音楽を 用いることによって,文書や写真だけでは表現できなかった自分の気持ちをより鮮明に伝える.と いうものであった.しかしながら脳波で測定できる値は電極と電極の差異のみであり,その値の強 さによってα波,β波,γ波,θ波,High α波,Low α波などにわけているにすぎない.それな のにその値から感情を表しているというのは言い過ぎではないかということになったため変更をす ることにした. 2 つ目は製品名の使用用途がイメージをしづらいということである.前回のポスターでは使用例 として「旅行に行って,みんなと楽しんでいる時に写真を撮る.その時,明るい陽気な曲が生成さ れる.」や「卒業式の日にクラスメイトと最後に集合写真を撮る.その時,しみじみとした曲が生 成される.」などと記載していた.当初は時間は常に流れ続けているものであり,その時みた景色 に対する思いというのは常に変化し続けている.従って音楽もそれにあわせて変化をさせること でその時の気持ちを表す,というものだった.しかし景色をみて気持ちは常に変化しているとはい え,基本的には変わらないのではないかとなった.それに先程も述べたとおり感情を表すというこ と事態が困難であるため使用例に関しても変更を加える必要があるという結論になった. 3 つ目は脳波装置をつける使用例の場所が適していないということである.使用例としては先ほ ども述べたとおり,旅行,卒業式などを上げたが旅行ならばわざわざ脳波装置をつけてまで景色を 見たいのか,卒業式ならば卒業する生徒全員が頭に脳波装置をつけてまで学校最後の行事を過ごし たいのか,などを考えると非日常的すぎるということからも変更を行う必要があると考えた. 最後に脳波できれいな音楽が生成できるかという点である.明るい音楽,暗い音楽,陽気な音楽, 悲しい音楽,しみじみとした音楽など様々な気持ちを音楽で表すことができるというのは前期の 実験の内容で「人は覚醒度と気分によって聞きたい音楽が変わるのは,音楽のダイナミクス,テン ポ,ピッチの表現の違いが影響していることが分かった」という結果からわかることであった.し かしながらそのような曲を脳波から得られた情報だけ作るにはあまりにも難しく,もしかしたらそ の状況にあわない曲が生成されてしまうことがあるのではないかという疑問が出た.例えば旅行に 行って明るい気持ちの音楽を生成したかったのに悲しい曲調になってしまった,卒業旅行でしみじ みとした音楽が作りたかったのに陽気な曲になってしまったなどである.従って私達は脳波で曲を 生成する際に使う脳波の値を用いる部分をしっかり考えることが必要があるという結論に至った. このように全体的に見てもこれらの問題を今後解決していくにはかなり厳しいと我々は考えた結 果,成果物の根本からもう一度練り直すことにした. Group Report of 2013 SISP - 20 - Group Number 21-C Mind Communication 5.1.2 新たな成果物「Sound Ripples」 前回の反省を活かし我々は新たに成果物「Sound Ripples」を作成した.「Sound Ripples」はパ ソコン内で作った画面をプロジェクターで自身の体に投影して使用する成果物で,自分自身を新た な形で表現することを目的としたものである.「Sound Ripples」は常に音楽が流れ続けている中 で脳波を測定してその脳波の変化に応じて中心からでる音の波紋(Sound Ripples)の色と流れる 曲調が変化して聴覚,視覚の 2 つの感覚から脳波の変化を感じることができるものになっている. まず通常状態の時には波紋の色は緑で曲も安定した曲調になっている.脳波が緊張・興奮状態の時 には波紋の色が赤く変化し曲調は明るめの曲調になる.また脳波がリラックス状態の時には波紋の 色が青く変化し曲は少し暗めの曲調になるといったものである.以下は実際に成果物を使用してい る時の画像である.(図 5.1) 図 5.1 5.1.3 成果物 コンセプト・背景 コミュニケーション形式は 1 対多という形を想定した.私達は脳波の状態から,相手の興奮あ るいは集中・リラックスの度合いを読み取ることができることに注目した.これを利用して,相 手の状態を実感できるようにし,今までよりコミュニケーションを円滑なものにするのが Sound Ripples である. 5.2 ユーザーシナリオ 例えば,ユーザが相手と握手やハイタッチをすると,脳波に変化が起きる.その脳波に対応し て,ビジュアルや音楽が変化する.その 2 つの変化によって,相手はユーザの興奮度合いやリラッ クスの度合いを知る事ができる. Group Report of 2013 SISP - 21 - Group Number 21-C Mind Communication (※文責: 森田晴紀) 5.3 音楽表現 5.3.1 音楽を用いた伝達方法 Sound Ripples で使用者の状態を周囲の人に伝える方法として本プロジェクトのテーマでもある 「音」, 「曲」を用いることにした.また,メロディやコード進行,ベースなど様々な要素から成り 立っている曲の中でも私たちはコード進行に注目した. 私たちが作りたい Sound Ripples は直感的に周囲の人に現在の状態を伝えられるツールなので, これを実現するためにも視覚映像以外にも音による伝達方法を取り入れた.映像による多少のずれ ならば人間は大きく違和感は抱かないが,音のずれは違和感を抱きやすいので音楽表現には特に力 を入れて作成を行った. 5.3.2 コード進行の変化による感じ方 一口にコード進行と言っても様々なものがあり,暗く聞こえるものもあれば明るく聞こえるも のもある.大まかな傾向としては,ハ長調のコード進行は明るく楽しそうに聞こえる.また,イ短 調のコード進行は暗く寂しそうに聞こえる.音楽経験の乏しい私たちが聴衆に意図した雰囲気の曲 に聞こえるようにするのは難しいと考えた.なので,このコード進行の特徴を利用して,コード進 行をハ長調とイ短調のものを用意して曲調を明るいものや暗いものに変化させるようにする. 5.3.3 コード進行の作成と分類分け 使用者の状態をコード進行の変化で伝えるためには十分な種類のコード進行を用意する必要が あったので,複数人で手分けして約 40 個のコード進行を用意した.用意したコード進行を実際に 自分たちで聞き,使用する脳波測定装置「MindWave」で出力される「リラックスの度合い」, 「興 奮度合い」を表現できる雰囲気のコード進行の分類分けを行った.この作業は一人が主観で行うと 偏りが生じる恐れがあったため,グループ全員の 5 人で聞き,最終的に多数決にて分類分けが行わ れた.少数意見も重要ではあるが多数決にした理由は,今回のような多数の人に聞かせる曲はより 多くの人が「明るい・楽しい曲」と「暗い・悲しい曲」に聞き分けさせることが目的であるためで ある.また,多数決による決定方法以外にも,コード進行のハ長調とイ短調という点においても分 類する上での指標となった.この方法は実際に曲を聴いて分類する際に意見が分かれたり,分類が 難しいものをハ長調であったら明るい・楽しい曲,イ短調であったら暗く・悲しい曲として分類を 行った. 分類分けを行った結果,暗い・寂しそうな音楽が他 2 種の分類よりもコード進行の数が少なかっ たため,新たにコード進行を追加する必要が出てきた.そこで再度コード進行を追加して分類分け を行い,一部の分類に当てはまるコード進行の数が少なくなるという現象を防いだ.その際に使用 者の状態を表すにはコード進行の種類が少なく,似たような曲調が流れてしまう可能性があること を話し合い,全体的な数を大幅に増やした.これらコード進行を新たに作成するためには私たちの 経験では限界があったために web サイトの「創作田園地帯」[4] から知識を学ぶとともにコード進 行の作成を行った. これにより,リラックス度合いを表す暗い・寂しそうと感じるものと興奮度合いを表す明るい・ Group Report of 2013 SISP - 22 - Group Number 21-C Mind Communication 楽しそうと感じるもの,これらの中間に当たる雰囲気のものの 3 種類,計約 100 種類のコード進行 ができあがった.前回の約 40 個のコード進行より倍以上増え,また各分類のコード進行もある程 度の数が作成できたため,製作物である SoundRipples を使用するにおいて十分な数のコード進行 を作成することができたと判断して次の作業に取り掛かった. 5.3.4 コード進行の移調 コード進行を作成して分類しただけでは曲調が変化するためにコード進行を変化させるときに違 和感が生じてしまう.例を挙げると,明るい・楽しい雰囲気のものから暗い・悲しい雰囲気のもの にいきなり移り変わってしまったら,実際に曲を聴いたときには大きな違和感が発生する.状態の 変化を伝えるためであるならば曲調の急激な変化は情報を受け取る側には非常に分かりやすいが, 音楽としてならばそのようなことはあまり良いとは言えない.なのでコード進行の移調についての 調整を行った. 明るい・楽しい雰囲気のものから暗い・悲しい雰囲気のものへの急激な変化が違和感の原因のひ とつであると考えられたので,状態が興奮状態からリラックス状態へ移り変わったときには,明る い・楽しい雰囲気のものから,暗い・悲しい雰囲気のものへ移り変わるときにはその移調の間にそ のどちらにも分類されない中間のようなコード進行をはさむことによって滑らかな移調が実現でき ると考えた.また,コード進行には次に流れるコード進行の繋ぎに違和感のないものが存在する. この特徴を移調の際に用いることとした.これにより現在鳴らしているコード進行を別のコード進 行へ変化させるときの違和感をなくして滑らかに聞こえるようにする. これらの方法を用いて移調を行う際にコード進行の変化を違和感なく滑らかに聞こえるように調 整を行った. 5.3.5 使用者の状態により演奏される曲 上記で分類分けを行ったコード進行が実際に使用者がどのような状態になると流れるのかを 記す. 図 5.2 は画面上で Sound Ripples 使用者の状態の変化が表現される映像と流れる曲調を表した ものである.この図が表しているように使用者がリラックスした状態,つまり目をつむる,ボーっ とするなどの動作を行った場合に暗い・寂しそうな音楽が流れる傾向があり,逆に興奮状態の動作 である一点を見つめる,暗算をするといった動作を行った場合は明るい・楽しそうな音楽が流れる 傾向がある.そのどちらにも該当しなければ上記で分類されたどちらにも当てはまらない中間の音 楽が流れる.これらの曲の変化は主にコード進行の変化にて行われる. Group Report of 2013 SISP - 23 - Group Number 21-C Mind Communication 図 5.2 映像と曲調の変化 またコード進行の変化以外にも使用者の状態が変化せずに一定の状態を保っていた場合,つまり リラックス状態を維持している,もしくは興奮状態を維持している場合,曲全体の音程が徐々に高 くなったり,低くなったりという変化をさせることにより,使用者の状態が時間を追って伝わる. (※文責: 青井雄佑) 5.4 プロトタイプ 私達は,製作物を作る前に 2 つのプロトタイプを製作することにした.プロトタイプを製作した 目的は二つある. 目的の一つ目は,脳波に対応する動作の確認をすることである.今回,製作物を使用する人の その時点での脳波に合った画面の動作を Processing で表現することが要求される.その画面の動 作は,リアルタイムで変化していかなければならない.しかし,脳波は人間ひとりひとりによっ て特有のものである.それを考慮して,誰が使用しても私達が想定した通りの動作をするような ものを製作することが目標である.そのためにはどういった脳波の値を利用すればよいか,また, Processing にどういった制御をさせれば,想定通りの画面の動作を実現できるかを探るためにプ ロトタイプを実験的に製作する必要がある. 目的の二つ目は,Max と Processing の連動を確認することである.最終報告で製作するものに は,Max で生成される音楽と,Processing により動作する画面がラグなく並行して動くことが要 求される.周りの人達にとって画面の動作と音楽が違和感のないように感じられるものを製作する ことが目標のひとつなので,ラグやタイミングの計算,またそれをコントロールするためにはどう いった工夫が必要かを探るために役立つプロトタイプを実験的に製作する必要がある.他にも,担 当の教員からプロトタイプを製作するメリットとして説明されたのは,「プロトタイプを作ること で,自分たちの気づけなかった良いアイディアが生まれることがあったり,作ってみないと気付け ない技術的な面での課題にも早めに気づくことができる」ということである. 以上の目的から,私達は次に示す「プロトタイプ 1」と「プロトタイプ 2」を製作した. 5.4.1 プロトタイプ 1 まず,私達は脳波から読み取ることができるデータの中で,どのデータが利用するのに適してい るかを話し合った.脳波は MindWave を使用して測定する.MindWave で読み取れる脳波の状態 Group Report of 2013 SISP - 24 - Group Number 21-C Mind Communication の種類はいくつかある.例えば,人間がリラックスした時に測定することができる,α波がある. また,緊張状態や集中している時によく確認することができるβ波がある.他にも MindWave で 測定できる値の種類としては,High α波の値や,High β波の値,また,δ波やθ波など様々あ る.沢山ある中で私達グループ C が注目したのが,測定した脳波の値を元にして MindWave が独 自に計算した,使用者の集中状態あるいは緊張状態に依存する「attention」という値と使用者のリ ラックス状態に依存する「meditation」という値である.この値を利用することによって,使用者 の集中あるいは緊張の度合いとリラックスの度合いが,画面を見ると相手にも伝わるものが製作で きるのではないかと考えた. 次にリアルタイムに変化していく脳波の様子をどのように画面に反映させれば,使用者の状態が 相手に伝わりやすいかを話し合った.画面の中にオブジェクトを用意して,そのオブジェクトを動 かす速さで使用者の緊張の度合い,集中の度合いやリラックスの度合いを表現するのはどうかとい う意見が出た.他にも,グラフを使って今の脳波の状態を表すという意見が出たが,これは教授の アドバイスや話し合いのもとに却下した.却下の理由は,「使用者にデータのようなものを見せて も,わかりづらいし,何より見ていて楽しくない」という実際に使用する場合のことを考慮しての ことだった.そして,最も多かった意見であり,かつ,万人に伝わりやすいということで採用され た意見が,色を使った表現を利用することである. MindWave を使用している人が緊張している時または集中している時には,MindWave で測定・ 計算した値である「attention」が通常の状態より上昇する.また,MindWave を使用している人 がリラックスしている状態の時には,同じく MindWave で測定・計算した値である「meditation」 が上昇する.これらの特徴を利用して,使用者が緊張している時,または,集中している時は画面 が赤くなり,使用者がリラックスしている時は,画面が青くなるという一つの表現を考えた.これ らの色を採用したのは,暖色の赤を使うことで,活発な状態を表現し,寒色の青を使うことで,静 かに休んでいる時の状態を表現するといった狙いがあったからである.そうして出来たのが,下の 図 5.3 に示すプロトタイプ 1 である. 図 5.3 プロトタイプ 1 の画面の様子 プロトタイプ 1 は,使用者の緊張の度合いとリラックスの度合いに応じて,信号のようにランプ が赤や青に点灯するというものである.製作の段階で気をつけたのが,色の変化の表現である.一 気に変化するよりも徐々に段階を踏んで,滑らかに変化していく方がリアルタイムに変化してい Group Report of 2013 SISP - 25 - Group Number 21-C Mind Communication る様子を表現できるという考えから,赤から青に変化するときと,反対に青から赤に変化するとき には間に紫色を挟んで変化するように設計した.この表現を利用することによって,赤と青だけを 使っていた時よりも色の変化に滑らかさがでた.しかし,これにより問題が発生した.画面が紫色 になると,プログラムが終了してしまうという問題である.プログラムを調査してみると,if 文の 条件式の範囲が狭すぎて変化していく値がどの if 文の条件にも当てはまらないという事態が起き てしまっていた.すぐにプログラムを修正し,プログラムのバグも改善された. また,このプロトタイプ 1 は,Processing で実現する画面の動作とともに,最終目標である音 楽表現も利用して,使用者の状態の変化を表すことができるように設計した.まだ,プロトタイ プ版のため,実験的なものであるが,ここでは,「既存の音楽に自分たちで作成した伴奏を平行し て聴かせる」といった簡易的な音楽を使用した.今回使用した既存の曲は,誰でも一度は聞いた ことのあるような曲であることと,今後,編曲する可能性を考慮して,すでに著作権の切れてい る「威風堂々」を選択した.さらに,これと合わせる伴奏だが,これを使ってリアルタイムに使用 者の状態を表現できないかと私達は考えた.つまり,伴奏を 2 種類用意して,脳波の「attention」 と「meditation」の値によって,その時点にふさわしい伴奏を選択して流すといった方法を発案し た.よって,伴奏は「使用者の緊張あるいは集中した状態を表す伴奏」と「使用者のリラックスし た状態を表す伴奏」の 2 種類の伴奏を作成した.今回はわかりやすいように,前者と後者をそれ ぞれ 1 パターンずつ用意した.便宜上説明のために,緊張・集中したときに流れる伴奏をパター ン A,リラックスした時に流れる伴奏をパターン B と名前を付けることにする.実際のプロセス の話をすると,使用者の緊張・集中度合いに依存する attention の値が,使用者のリラックスの度 合いに依存する meditation の値より大きくなると,Processing がパターン A の伴奏を選択して, Max に信号を送り,それを流す.反対に,meditation の値が attention の値よりも大きくなると, Processing がパターン B の伴奏を選択して Max に信号を送り,それを流す.こういったプロセス により,使用者の状態に合った伴奏をその都度選択して流す用にプログラミングした. 5.4.2 プロトタイプ 1 の反省点と改善策 まず,画面についての反省点は,色の変化だけでは,使用者の状態が見ている人達に伝わりづら いということである.何か画面の動作に工夫をこらして,見ている人がすぐに使用者の状態を実感 することができるようなものに改良しなければならない.そこでひとつの案として出たのが,画面 の変化に色だけではなく,動きを取り入れたら良いのではないかということである.色の変化だけ では,見慣れてくると飽きてしまう恐れもあったので,そこに何かしらの動きを加えて見ていても 楽しそうなものにするのはどうかという結果になった.また,色の変化にも追加することが発見さ れた.色の変化が 2 通りだと,使用者の状態を表すのに不都合が生じるということがわかった.つ まり,今使っている青と赤の状態の中間の状態を加える事で新たな「平常の状態」を作ったほうが 良いのではないかということである.例えば,使用者がリラックスしているときは画面が青にな り,緊張・集中しているときは画面が赤になり,そのどちらでもない状態の時は画面を緑にすると いったような変化にすれば,見ている人も使用者の状態の変化がわかりやすいのではないかと考え た.これらは,製作物に活かせることである. Group Report of 2013 SISP - 26 - Group Number 21-C Mind Communication 図 5.4 画面の色の変化について提案 次に,音楽についての反省点である.プロトタイプ 1 で扱った音楽の要素は「メロディ」と「伴 奏」である.この 2 つの要素では,音楽がさみしく感じられることと,脳波に対応した変化が非常 に乏しいと感じられることが,試作品を作ってみて分かった.よって,これより多くの音楽の要素 を利用することによって,これを改善することになった.プロトタイプ 1 に備わっていた「メロ ディ」 「伴奏」に加えて「ベース」や「パーカッション」などの要素を追加することによって,音楽 表現の幅を広げるとともに,製作物の使用者の状態を周りの人達がより感じやすくすることができ るのではないかと考えた.そのためには伴奏と同じようにパーカッションやベースなどの要素も自 分たちで考案しなくてはならない.よって私達は音楽表現の知識を学ぶための勉強も製作と平行し て行うことになった.また,プロトタイプ 1 では伴奏を 2 パターンしか用意しなかったため,音楽 で表現できる幅が非常に狭かった.これも反省点の一つである.製作物では,より多くの伴奏を用 意することになった.伴奏の数としては,100 を越えることを目標に製作することにした. 5.4.3 プロトタイプ 2 プロトタイプ 1 の反省を活かして,今度は画面の動作をどのようにすれば良いかという疑問を解 決することに加え,Processing と Max の連動の確認も兼ねてプロトタイプ 2 を作成することにし た.プロトタイプ 2 で確認したいことを具体的にまとめると,次の二点である.一つ目は,どのよ うな画面の動作がふさわしいかである.プロトタイプ 1 の反省を活かして,もっと動きのある画面 の製作を試みなければならない.そこで,プロトタイプ 1 では存在しなかった「動くオブジェク ト」を使った表現に挑戦してみることにした.オブジェクトが動くことにより,静的な画面では表 現し得なかった,リアルタイムに流れる音楽のメロディの音階や音楽のリズムを画面上でも表せる ようになるのが「動くオブジェクト」を使った場合の強みである.二つ目は,Processing と Max の連動について主にラグの検証である.プロトタイプ 2 は,使用者の脳波の変化に合った画面の動 作を色だけでなく,リアルタイムで表現するように設計する.それもあって,プロトタイプ 1 に比 べてとても複雑な計算を Processing にさせることになる.このときの Max との連動を考えると, 多少のラグが起きてもおかしくない.プロトタイプ 2 では,それを確かめることも目標である.こ うして出来上がったのが,下の図 5.5 と図 5.6 に示すプロトタイプ 2 である. Group Report of 2013 SISP - 27 - Group Number 21-C Mind Communication 図 5.5 図 5.6 リズムを表すオブジェクトの様子 リズムを表すオブジェクトに音階を表すオブジェクトが加わった様子 プロトタイプ 2 では,図 5.5 と図 5.6 でも確認できるように,複数のオブジェクトの動きが実現 されている. まず,半円上に並ぶ,小さな円の形をしたオブジェクトの集まりの説明をする.これは,流れて いる音楽のリズムに対応している.この半円状の物体が 1 拍ごとに画面下の中心を起点に出発し, 上方向にだんだん大きくなりながら進んでいく.図 5.5 では画面外に見切れているものを含めると 3 つの半円状の物体が存在する.最も上に位置するのが最初の 1 拍目に対応するもので,画面中央 地点に位置するのが,2 拍目に対応するもの,画面下の位置に存在する最も小さい半円状の物体が まさにいま始まろうとする 3 拍目を表すものである.この半円状の物体が,1 拍ごとに出現しては 上方向に進んでいき画面外に到達すると消失する,というサイクルを行うことで画面にリズム感を 生み出す. 次に,半円状の物体とは独立して存在する紡錘形の物体についての説明である.図 5.6 には 8 つ の紡錘形の物体が存在するが,これは流れているメロディの 1 音 1 音を時系列で表している.それ Group Report of 2013 SISP - 28 - Group Number 21-C Mind Communication ぞれの紡錘形の物体の向き・角度で音の高さが決まっており,左から始まり角度がどんどん大きく なっていき右で最大値に達するようになっている.よって,左側に位置するものは音程が低く,右 側に位置するものは音程が高いことを意味する.先ほどのリズムを表す半円状の物体と同様に,時 間経過とともにそれぞれの向きを保ったまま斜め上方向に進んでいき,画面外に達すると消失す る.また,短時間に同じ音が鳴る時もきちんと動作する.また,音階によって色の変化も表現され ており,最も低い音は赤,最も高い音は紫となっている.配色の順番は虹を参考にしており,グラ デーションも活用している. 5.4.4 プロトタイプ 2 の反省点と改善案 まず,動作の面での反省点である.プロトタイプ 2 を,2011 年に購入した大学の推奨ノート PC である,VersaPro で動作させてみたところ,音楽と画面のラグがとても大きくなってしまった. VersaPro のスペックは,以下に記載する通りである. • 名前:VersaPro • CPU:Intel(R) Core(TM) i3 380UM • メモリ:2GB • システム:Windows 7 Pro 32 ビット これは,オブジェクトの位置を逐一算出する計算式がとても複雑なものになってしまい,この PC では,それを処理する能力が,足りなかったことが原因と考えられる.プロトタイプ 2 では,cos 関数と sin 関数を利用して,オブジェクトの位置を計算していた.しかし,これらの計算式を使う ことが,計算量がとても膨大になってしまう原因になってしまったのである.この実験的試行によ り,推奨 PC よりもスペックが良い PC を選んで,使う必要があるということが分かった.そこ で,佐藤先生の研究室で使っている PC を使うことにした.その PC のスペックは,以下に記載す る通りである. • CPU:Intel(R) Core(TM) i7-3770 • メモリ:4GB • システム:Windows 7 Pro 64 ビット また,PC のスペックもそうだが,プログラムの内容も,もう少し工夫することによって動作が軽 くなるようにしなければならないことがわかった. 次に,使うモニターについてである.これほどの動きがあるものを画面内で実現できることがわ かったので,もっと大きなモニターを使うことによって,一度に,より多くの人に見せることがで き,かつ,より綺麗に見せることができるのではないかという意見が出た.担当の教員のアドバイ スも参考にしながら,グループで話し合ったところ,プロジェクターを使ってスクリーンに投影す ればより大きく画面を見せることができるのではないかという結論に至った. さらに,スクリーンに PC の画面を投影することによって,また別の利点も生まれる.今まで画 面の中で動きのあるものを製作していたが,これはあくまで,PC の画面上の動きであってそれを 「眺める」ことしか出来なかった.しかし,スクリーンに投影することによって,例えば,プロジェ クターとスクリーンの間に人が立ったり,その光を手に投影したりしと,人が光に「触れる」こと ができるようになる.これを何らかの形で利用することによって,また新しいコミュニケーション の方法が生まれるかもしれないのではないかと思った. Group Report of 2013 SISP - 29 - Group Number 21-C Mind Communication (※文責: 山本雄也) 5.5 5.5.1 システム Processing プロトタイプ版の反省を踏まえ, 「複雑な動作や音楽とのずれが無く,見た目がきれいなもの」に なるよう,新たな案を考えた.担当教員のアドバイスのもと,プロジェクターで人に投影する事に より「自分から音楽が出て行く」というデザイン (図 5.7) を作成した.このデザインは,波紋や矩 形を用いて音楽を表現し,その波紋や矩形の色を変化させることによって,ユーザの脳波の状態を 視覚的に表現する.画面中央から出現する波紋は,音楽のテンポに連動して出現するようにした. また,画面中央から放射状に出現する矩形の方向は音楽のメロディの音の高さ,矩形の長さはメロ ディの 1 つの音が鳴る長さに対応するようにした.そして,ランダムで出現する波紋は音楽のベー スに対応するようにした. 図 5.7 Sound Ripples の画面デザイン Processing では,最初に MindWave から送信されてきた脳波データを読み込み,そのデータ からユーザのリラックス状態もしくは集中・興奮状態を読み取る.この時,ユーザの状態をリ ラックス状態の時を 1,集中・興奮状態の時を 5 とした 5 段階に分け,5 段階の中から脳波の 状態に合ったものを選択する.最初のユーザの状態は中間の状態である 3 とし,8 秒間計測し た attention と meditation の平均を比較した時に attention の方が高ければユーザの状態を 1 段 階上げ,meditation の方が高ければユーザの状態を 1 段階下げるようにした.ここで,最新の attention,meditation の値を用いないのは,1 秒ごとに変化するデータを用いると状態の変化が 急激になってしまう恐れがあるため,それを防ぐために 8 秒間の attention と meditation の平均 を用いて緩やかに変化させるようにした.また,ユーザの状態が音楽の他に視覚でも確認できるよ う,表示される波紋や矩形の色をユーザの状態によって変化するようにした.色については,ユー Group Report of 2013 SISP - 30 - Group Number 21-C Mind Communication ザの状態がリラックス状態の時を青,集中・興奮状態の時を赤,中間を緑とし,急激に色が変わら ないよう緩やかに色が変化するようにした.また,ユーザの状態が 1・2 の時を青,3 の時を緑,4・ 5 の時を赤とすると,1 と 2 の間もしくは 4 と 5 の間で変化した時に画面ではユーザの状態が変化 したことが確認できないため,3 から 2 へ変化した時を青,1 から 2 へ変化した時を緑といったよ うに,図 5.8 のように色を変化させることで画面でもユーザの状態を確認できるようにした. 図 5.8 色の遷移 音楽ではユーザの状態が変化した時,コード進行が変化し,また,全体の音の高さが 1 半音変 化するようにした.コード進行についてはユーザの状態がリラックス状態の時は暗い・寂しそう なコード進行,集中・興奮状態の時は明るい・楽しそうなコード進行になるよう割り当てた.ま た,全体の音の高さは 2 小節分の attention と meditation の平均をとり,前の attention 平均よ り現在の attention の平均の方が高ければ 1 半音高くし,前の meditation より現在の meditation の平均の方が高ければ 1 半音下げるようにした.また,音の高さは最大 1 オクターブ変化するよ うにした.この時,どちらも現在の方が高ければ音の高さは変わらない.ユーザの状態を値にし, OpenSoundControl プラグインを用いて Max に送信することで,Max からユーザの状態に合った 音楽が再生されるようにし,また,音楽が再生されている間は Max からメロディ,ベースの音の高 さの値を受信する.メロディの値が変化した時はメロディの音の高さに対応した矩形の伸びる方向 を変化させる.矩形の方向はメロディの音の高さが低いときは左方向に,高い時は右方向に飛ぶよ うにした.プロトタイプ版では図形の出る方向を sin,cos の計算によって求めていたが,計算が複 雑になってしまい,Processing の動作が不安定となってしまったため,Max との連動が上手くい かないということが生じていた.しかし,Sound Ripples では矩形の伸びる方向を Processing の rotate 関数を用いて計算を簡略化することにより,動作を安定させて Max との連携を容易にした. また,ベースに対応した波紋はベースの値が変化した時にランダムな場所から波紋が出現するよう にした.Max のテンポは 4 分音符が 1 分間に 60 回打つように設定されているため,Processing のフレームレートは 40fps にすることで,最大 32 分音符まで対応できるようにした. Sound Ripples を起動すると,まずタイトル画面が表示され,MindWave から送信されてきた脳 波データの中の meditation が変化している事を確認する.meditation を用いるのは,MindWave は外している間も脳波のα波やβ波などは値が変化しているのに対し,attention と meditation は 外している間の値は 0 になるため,これを利用して MindWave がユーザの頭にセットされている か確認している.meditation 変化が確認されたら,10 秒間 attention と meditation の値を計測 し,この 2 つの合計の差によって,3 曲ある曲の中からユーザの現在の状態に合った曲が選曲され, 画面はプレイ画面へ遷移する.音楽を再生すると,再生すると音楽に合わせてプロジェクターから 波紋や矩形が表示される.曲は「威風堂々」 , 「四季より 春」 , 「カノン」の 3 つを用意した.また, この他にもユーザの状態の変化を音楽からより感じるために「メロディなし,コード進行のみ」の 曲を作成した.起動直後は「威風堂々」,「四季より 春」,「カノン」の 3 曲の中からユーザの状 態に合った曲を選曲する.「威風堂々」は行進曲であるため,attention が高い時,つまり,ユー ザが集中・興奮状態の時に選曲される.また,「カノン」は卒業式等の時に用いられる曲であるた Group Report of 2013 SISP - 31 - Group Number 21-C Mind Communication め,meditation が高い時,つまり,ユーザがリラックス状態の時に選曲される.「四季より 春」 は attention と meditation に差がない時に選曲される.「メロディなし,コード進行のみ」は起 動直後には選曲されないが,ユーザが曲を切り替える時に選曲できるようにした.選曲された後, ユーザがプロジェクターの前に立つことで,ユーザから波紋が出ているように見せる事で,ユーザ を前にしながら同時に状態まで把握できる. 操作はキーボードで行えるようにした.“1”キーを 音楽の再生・停止ボタン, “2”キーを曲の変更ボタンに割り当てた.曲の変更は「威風堂々」, 「四 季より 春に」 ,「カノン」,「メロディなし,コード進行のみ」の順になっている.コード進行のみ の状態を用意しているのは,コード進行の変化をより感じるようにするためである.“3”キーには スタート画面に戻るボタンに割り当て,起動中でも別のユーザに代わることができるようにした. “0”キーには Sound Ripples を終了させるボタンに割り当てた. しかし,使用中にユーザが音楽の停止,再生や曲の変更を行うときにいちいちプロジェクターの 前からコンピュータの前へ向かわなければならないということが生じたため,この問題を解消する ために,図 5.9 のように無線マウスを用いて音楽の停止,再生,曲の変更を行えるようにした. 図 5.9 無線マウスを用いた操作 マウスはよく使われる左クリックに音楽の再生・停止を,曲の変更は右クリックに割り当て, ユーザが容易に操作を行えるようにした.また,変化したメロディの高さを元に戻せるよう,中ク リックにはメロディの高さを元の高さに戻すための処理を行うように割り当てた. (※文責: 岩崎裕太) 5.5.2 Max Max はオブジェクト指向のビジュアルプログラミング言語であり,音楽を生成する,音楽を編 曲していくということが得意なソフトウェアで,コンピュータ音楽の作曲家などが抑えておくべ きと言われている音楽言語である.C 言語や Java などとは違い,オブジェクト同士をワイヤーで つなぎ,グラフィカルにプログラミングを行うもので,複雑に絡み合うため C 言語や Java よちも アルゴリズムを実装するのが難しく,複雑になってしまう.しかし,Java や JavaScript,OSC や MIDI など,様々なソフトや言語と連携がとれ,非常にマルチリンガルなソフトウェアである.中 間発表ではちょっとした和音を鳴らす簡単なものしか組むことができなかったが,今回はメロディ からベース,パーカッションなど様々なパートを作り,曲を作らなければいけないので,Max を 不自由なく扱えるようになるために,多くの勉強が必要となった. Max は MSP,Jitter,gen という別々の処理を行うオブジェクト群によって構成されているも ので,Max は Ui,通信,MIDI 関係のオブジェクトがある.MSP はオーディオの処理を行うため のオブジェクトを拡張するもので,Jitter は 3D グラフィクスのための拡張,gen は信号処理が可 能な拡張となっていて,今回は Max/MSP を中心に勉強していくこととなった. 計測した脳波データの読み取りを行うのが Processing で,そこからどのような音を鳴らすか, Group Report of 2013 SISP - 32 - Group Number 21-C Mind Communication という指示を Max へ送ることと,Max で鳴った音によってスクリーンに表示させる色などを変え るために,Max から Processing にデータを送ることが必要で,Max と Processing の連動につい て調べた.Processing には oscP5 という Max への送信,Max からの受信に必要なライブラリを 見つけ,それを導入した.Max には Open Sound Control というパッチを使用することにより, Processing との接続を可能にした. 脳波の状態によって曲が変化するというもので,まず著作権切れの曲を探すところから始まり, エルガーの威風堂々,ヴィヴァルディの四季より「春」,パッヘルベルのカノンの 3 曲を使用する ことに決め,それを Max に打ち込む作業から始めた.音の鳴らし方は下の図 5.10 のように,音に よって数字が決まっており,その数字を図 5.11 のように, 「makenote 64 1990」のオブジェクトの 左上につなぐ.64 という数値は音の大きさを表しており,1990 は音の長さを表している.そのオ ブジェクトを, 「noteout “Roland SonicCell” 2」というオブジェクトにつなぐ.noteout は出力 のことで,”Roland SonicCell”という,外部に接続しているハードウェアシンセサイザーにチャ ンネル 2 に接続する,ということを表しており,チャンネルは 1 がコード進行,2 がメロディライ ン,3 がベースライン,10 がパーカッションの音を MIDI として送信している.Max で曲を作っ ていくにあたり,4 秒間のコード進行を基準に考えていたので,「metro 4000」というオブジェク トを使用し,Max 全体で 4 秒ごとに音のかたまりを鳴らすということをしているので,その 4 秒 の中で「delay 1000」のように音を遅らせて鳴らすことによって,4 秒間のフレーズを作っている. 「counter 1 4」というオブジェクトを使用することにより,「metro 4000」と組み合わせることに よって,1,2,3,4,1,2…というように 4 秒ごとに 1∼4 の数字を送信することができる.そこ に「sel 1 2 3 4」というオブジェクトを使用することによって,1 だったとき,2 だったとき,と いうような分岐を作ることができる.このカウンターを分岐を使うことによって,4 秒ごとのかた まりになっているメロディラインを順番に鳴らすと,ひとつのメロディラインができあがるよう になっている.数字が繰り返されるので,ループを簡単に作成することができる.3 種類あるメロ ディも, 「sel」というオブジェクトによってどの曲を流すのか Processing から数字を受信すること によって,変えることができる. 図 5.10 Group Report of 2013 SISP 音の高さとその数値 - 33 - Group Number 21-C Mind Communication 図 5.11 Max での音の鳴らし方 メロディライン,ベースラインは原曲を聴き,原曲に近づけるよう違和感のよないように打ち込 みをした.コード進行については,本や Web で色々なものを調べ,グループメンバー全員で聴い てどのように感じるかを調べ,Max に打ち込んで曲と合わせた.オブジェクト同士をつないでプ ログラミングするので,オブジェクトの量が多くなり,つなぐ箇所も増えてくると図 5.12 のよう に膨大な量になってしまい,見づらくなってしまう部分があるので,図 5.13 のように sub patch というものを使い,メロディはメロディ,コード進行はコード進行というように分けて収納して見 づらくならないようスッキリとさせた.様々なオブジェクトをワイヤーでつなぐ必要があるので, sub patch 内に収納したものを綺麗に整えることは難しいが,メロディラインやベースラインは一 度完成してしまえばもういじることがない場所なので,綺麗さはあまり意識しなかった. 図 5.12 オブジェクトが増えて見づらい状態 Group Report of 2013 SISP - 34 - Group Number 21-C Mind Communication 図 5.13 サブパッチを使って整えた状態 Mac にはパッチ・モードとプレゼンテーション・モードという 2 つもモードがあり,パッチ・ モードというのが図 5.14 のように開発をしていくモードである.そして,もう 1 つのプレゼン テーション・モードというものは,ビジュアル面と機能面を重視しているモードである.図 5.15 のように,パッチ・モードで開発したオブジェクト同士をつなぐワイヤーが表示せず,表示させた いオブジェクトのみを表示できる.プレゼンテーション・モードで表示させたいものを Max 内に 組み込み,それをプレゼンテーション・モードで表示させることによって,音量や音色の変更,メ ロディラインやベースラインの ON/OFF の切り替えなどが簡単にできるようになる.プレゼン テーション・モードで表示させるにはあらかじめパッチ・モードでオブジェクトを用意する必要が ある.ON/OFF の切り替えはスイッチと分岐のオブジェクトを使用した.スイッキのオブジェク トでは,クリックすると下にワイヤーでつながっているオブジェクトに情報を送る.分岐のオブ ジェクトでは,左から情報が入ってくると,右からの情報を送る先を変更できるので,スイッチと 分岐をつなげることによって簡単に ON/OFF を実装できる.(図 5.16) 図 5.14 パッチ・モードの開発画面 Group Report of 2013 SISP - 35 - Group Number 21-C Mind Communication 図 5.15 プレゼンテーション・モードの開発画面 図 5.16 ON/OFF スイッチの実装 基本的には原曲を聴きメロディラインとベースラインを打ち込み,それに合ったコード進行を 合わせていくという形なので,ずっとオブジェクトに数字を打ち込みつなげていくという作業が 多かった.誰も知らない Max というプログラミング言語を開拓していくということがとても大変 だった.Web で探しても日本語のページが多くなく,Processing との接続のためのパッチを使用 できるようにするだけでも一苦労だった.しかし,Max 内での処理,Max と Processing の連携, そして Max とハードシンセの接続などで音を作る,音を変えるために最低限必要なことはできた. コード進行のパターンや音色のパターンが少なく,自分たちが表現したいものが全て行えたわけで はなかったが,満足のいくプログラミングを Max で実現できた. (※文責: 小向崇博) 5.6 5.6.1 使い方 使用前の準備 Sound Ripples を使用する際に必要な道具は,脳波測定装置「MindWave」とプロジェクター, プロジェクタースクリーン,スピーカー,Sound Ripples の動作環境が整った PC である. Group Report of 2013 SISP - 36 - Group Number 21-C Mind Communication 図 5.17 必要な道具 まずプロジェクターとプロジェクタースクリーンを設置し,PC 画面を投影できるようにする. Sound Ripples の使用者は脳波測定装置「MindWave」を装着し,データを PC に送信できる状態 にしておく.この作業は MindWave の取り扱い説明書に沿って行う.またこれらの作業以外にも プロジェクターで投影した際に映像がより鮮明に見えるよう,白衣や白い服をユーザが着ておくこ とを勧める. 使用場所についてはプロジェクターを使用するので,陽の光を遮断できる部屋などできるだけ暗 い場所が好ましい.周囲が明るいとプロジェクターによる投影映像が非常に見えづらくなり,画面 上の変化を感じることが困難になってしまう.また,プロジェクタースクリーンが余裕をもって設 置することができるスペースも必要である. 5.6.2 Sound Ripples の起動 上記の準備を終えたら Sound Ripples を起動する.起動を行うと図 5.18 の画面が出てくる.こ のときに,MindWave から送られてきた脳波のデータを元に楽曲の選曲を行っている.楽曲はパッ ヘルベル作曲の「カノン」,ヴィヴァルディ作曲の四季より「春」,エルガー作曲の「威風堂々」の 3 曲があり,この中から選曲が行われる.ユーザの状態が興奮状態であれば「カノン」,リラックス 状態であれば「威風堂々」,これらの中間にあたる状態であれば「春」が選曲される.このときに ユーザはプロジェクタースクリーンの前に立つとより本作品を楽しめる. Group Report of 2013 SISP - 37 - Group Number 21-C Mind Communication 図 5.18 起動画面 5.6.3 動作説明 選曲を終えたら曲が流れ始め,メイン画面に移る.初期画面は図 5.19 のように緑色の円が映し 出され,曲は基準となる普通のものが流れる.ユーザが興奮状態であれば図 5.20 のような赤色の 円になり,曲はハ長調のコード進行をもつ明るい曲へと移り変わっていく.リラックス状態であれ ば図 5.21 のような青色の円が映し出される.また曲もイ短調のコード進行を持つ暗い曲へと移り 変わっていく.このときユーザがプロジェクタースクリーンの前に立つことによって,現在の状態 を表す円がユーザの体の上に映し出されて現在の状態を視覚化したものがユーザ本人から発信され るかのように見える.これにより相手はユーザの状態をより直感的に知ることができる. 図 5.19 緑色 Group Report of 2013 SISP - 38 - Group Number 21-C Mind Communication 図 5.20 赤色 図 5.21 青色 これらの変化はほぼリアルタイムで行われており,ユーザの状態を音と映像で伝えることができ る.これらのコード進行と映像の変化以外にも,興奮状態が一定時間続くと曲全体の音程が徐々に 上がっていく.またリラックス状態が続くと音程が徐々に下がっていく. 上記の様々な変化は Sound Ripples を起動している間は起こり続ける.マウスの左クリックを 押すと一時停止が,右クリックで元となる楽曲の変更,ホイールボタンで流れている曲を変化する 前の初期状態に戻すことができる. (※文責: 青井雄佑) 5.7 発表内容 発表時間は前半と後半で各 1 時間ずつの計 2 時間となっており,一回の発表を 20 分として計 6 回行った.1 回の発表の内訳に関しては初めにプロジェクト全体の説明として 5 分程度そして残り の 15 分程度を個別グループの発表としていた.また発表方法に関してはポスターセッションの形 式で望んだ.ポスターは前回の中間発表では 1 枚だけであったが今回は 2 枚のポスターを作成し Group Report of 2013 SISP - 39 - Group Number 21-C Mind Communication た.1 枚は前回と同じく背景,システム,使い方,ユーザシナリオを書いたものと,もう 1 枚は表 紙ということで画像を大きくして成果物のインパクトを強くするようなデザインにした.以下が 我々の最終発表で用いたポスターである.(図 5.22) 図 5.22 ポスター 我々グループ C での個別発表では中間発表の際に学んだ反省点を意識した発表を心がけた.ま ず初めに中間発表の時は Max のプログラムは多少できていたもののプロトタイプは完成していな かったため,ポスターに書いてあることを読み上げて,その事柄について一つ一つ説明をしていく といったものだった.しかしながら,最終発表では当然成果物ができていたため,ポスターの内容 を説明するというよりも成果物を実際に見せる,あるいは成果物を実際に使ってもらうなどして相 手に楽しくわかりやすく理解してもらうよな手法で臨んだ.(図 5.23) Group Report of 2013 SISP - 40 - Group Number 21-C Mind Communication 図 5.23 発表風景 次に中間発表の時のポスターは文章の推敲に大きく時間を使って論理的に,わかりやすく伝える かということに主眼を置いて作成した.しかしながら実際にポスターセッションを行ってみると聞 き手がポスターの説明を聞きながら,実際にポスターの文章を読むというのは非常に難しいこと で,大半の人は説明だけを聞いてポスターの文書をしっかり読んでいる人は少なかった.それを踏 まえて最終発表のポスターでは文章の推敲はもちろんではあるが文章量を少なくして伝えたいとこ ろだけに絞ることにした.その分空いた場所にはアイコンや図などをイラストレーターやフォト ショップなどのソフトウェアを用いて作成し,多量に用いることで視覚的にすぐに理解できるよう な工夫を行った.また中間発表の時は『感情』という言葉を多用していたが前述にもあるように脳 波で感情を読み取るという表現は言い過ぎということがわかった.なので最終発表では脳波が興奮 状態かリラックス状態かのどちらかによって音楽とビジュアルが変化するという表現に変更した. (※文責: 森田晴紀) 5.8 5.8.1 評価 評点 期末の最終発表会での評価をまとめる.グループ C の製作物の評価は,評価人数は 54 人で平均 点は 10 点満点中 7.5 点の評価だった.今回の私たちの目標平均点は 8.0 点だったので,あと一歩 足りなかった.しかし,前期の中間発表での評点は 7.0 点だったのに対し,0.5 点とわずかではあ るが評点の上昇が見られた.(図 5.24) Group Report of 2013 SISP - 41 - Group Number 21-C Mind Communication 図 5.24 最終発表の評価 また,全体の発表技術の評価では,評価人数は 71 人で平均点は 10 点満点中 7.4 点という結果に なった.(図 5.25) 図 5.25 グループ全体の評価 5.8.2 好印象の意見 頂いた意見で好印象だったものを具体的に挙げていく. • 脳波の状態に基づいた曲選択が面白い • 抽象的な表現はなかなか良いと思う • 曲調が変わったりスクリーンに出る色が変わったりするのが面白い • 脳波の状態をコード進行で表現するアイディアは面白い という意見がいくつか見られた. Group Report of 2013 SISP - 42 - Group Number 21-C Mind Communication 5.8.3 悪印象の意見 好印象の意見とは反対に,ネガティブな意見もいくつかあり,具体的に挙げていくと • 可視化の有用性をよりアピールできるように,もう一歩先の具体的なアプリケーションがあ ればよかった • 何か実用とかできたらもっと良かった • 実用的ではないかも • ユーザ層,使用シーンが想像しづらい • 使用目的がわからない • 対象ユーザがはっきりしていない • 生活に活かしづらい • 発信中心のアプリケーションであるが,それによって受け手側にどんな利点があるかを明ら かにすると良い などといったアプリケーションの使用場面に対する意見が多かった.また,アプリケーション自 体に対しても, • 画面に現れる波紋の大きさなどにも意味を持たせたほうが良い • 画面情報が煩雑 といったアプリケーションの画面に対しての意見と, • 音に違和感があったことが気になった などという音に対しての意見が数人から見られた.そのほかにも • 状態そのものを別の表現に置き換えてもあまり意味がないのでは といった伝達方法についての意見もあった.これらの意見を参考に反省に繋げていきたい. 5.8.4 発表に対しての意見 アプリケーションについての意見のほかにも,発表についての意見もあった. • 質問の答えがしっかりしていた といった好印象の意見, • 発表中に打ち合わせのようなことをしていて,内容を覚えていないのかなと思った といった悪印象の意見が数点あった. また, • 脳波について知りたいと思った • 脳波によって変化する音楽が面白そうでやってみたい といった新たに脳波に興味を持った意見と, Group Report of 2013 SISP - 43 - Group Number 21-C Mind Communication • 脳波によって変化する音楽が面白そうなのでやってみたい • 使用できる音楽が増えたら使ってみたい といったアプリケーションに興味を持ち,使用してみたいという意見があった. (※文責: 青井雄佑) 反省 5.9 • 質問の答えがしっかりしていた.説明がわかりやすい. といった評価が多数見受けられた.中間発表の時は質問に対する返答が十分でないという意見が 多かったことからも,最終発表では質問に対する対応策をしっかりと整えた上で最終発表に望めた のではないかと思う. また今回の発表で重視していたことの一つに実際に説明をするより実際にみたり,あるいは体感 してもらって楽しく理解してもらうといったことをした.結果として評価コメントでは, • 脳波によって変化する音楽,やってみたい • スクリーンが良い • 興味のある分野でもあるので面白そうなので使ってみたい • 脳波の状態に基づいた曲選択が面白いと思った などをいただくことが出来て良かった.しかしながらシステム面の方では, • いろいろな音楽が増えたら使ってみたい • 脳波の状態に基づいた曲選択が面白いと思った • 脳波で曲調,テンポ,長短も変化したらより面白くなりそう • 流れる棒の意味や波紋の大きさなどにも意味を持たせたほうが良い などがありまだまだ改良すべきことはあったのであろうと感じた.そして今回の評価コメントの 指摘で最も多かったことがコンセプトと背景に関してであった. • ユーザシナリオに無理があるのでは・・・? • 生活に生かしづらいと思う • 発進 (production) 中心のものであるが,それによって受け手の側にどんな benefit がある か明らかになるとよい • コミュニケーションの定義をもっと深く考えたほうがいい • ユーザ層,使用シーンが想像しづらいので作品は面白そうなのにもったいない などである.これらはまずポスターのデザインを重視していたために多少コンセプトが疎かに なってしまったという原因もあるので今後はそのようなことがないようにしっかりと推敲すべきだ と感じた.だが他にも原因があるとすればそれは発表中にポスターの内容をメインで話すのではな く作品自体を知ってもらうために成果物を実際に見せる,あるいは成果物を実際に使ってもらうと いったことに時間を取り過ぎたためにコンセプトを伝えることができなかったのではないかとも考 えた. Group Report of 2013 SISP - 44 - Group Number 21-C Mind Communication 今後発表するときにはポスターの内容説明と成果物の披露との時間バランスをしっかり考えて発 表に臨むことが非常に大切であると感じた. (※文責: 森田晴紀) Group Report of 2013 SISP - 45 - Group Number 21-C Mind Communication 第 6 章 今後の課題と展望 6.1 各自の課題 山本雄也 私は,グループリーダーとしての目標とグループメンバーとしての目標をそれぞれ設定した. まず,グループリーダーとして,グループのメンバー全員の意思を尊重しながら話し合いを進め ていき,メンバー全員が納得できるようなものを製作物として作り始められるようにする,という 目標を立てた.そのためには,メンバーの話を良く聞き,皆の意見をうまくまとめなくてはならな い.私は,話し合いの場面では必ず,「今の方向性はきちんと皆の意見が反映されているのか」と いう確認を行うように気をつけていた.前期・後期を通して,グループリーダーとしての自分を振 り返ると,皆の意見をとりいれようとするあまり,意見をまとめるのが予定より遅くなってしまっ たり,現実的に難しいことをやろうとしてしまったことが反省として挙げられる.したがって,課 題として挙げられるのは,リーダーとして責任をもって実現可能な意見を見定めることと,スケ ジュール管理にもっと気を使わなければならないということである.また,グループ全体を見回す と,役割の分担がきちんとできていなかったという印象を受けた.具体的には,Max の調査や音 楽再生の仕組みづくり,Processing を使った画面作成に関わるコード製作は,上手に仕事を振り 分けらていなかったと感じた.グループリーダーである自分が,もっとうまく役割分担をしていれ ば,グループとしてさらに効率的に機能していたのではないかというのもまた,今回の反省の一つ となる. 次にメンバーとして,常に自分が暇な状態にならないようにする,つまり,自分の仕事が終わっ たとしても,うまく自分の仕事を見つけてこなせるようにしていきたいという目標を立てた.その ためには,メンバーの状況を常にチェックして,大変そうなところ,また負担がかかっているメン バーを把握するようにしなければならない.私は,グループリーダーでもあるので,メンバーの仕 事状況の把握は良く出来ていたと思う.しかし,グループリーダーの仕事を優先するあまり,グ ループのメンバーとしての仕事がないがしろになってしまっていたというのが反省として挙げら れる. 今後は,リーダーとしての仕事と,メンバーとしての仕事をうまく両立できるようにすることが 課題として挙げられる. (※文責: 山本雄也) 青井雄佑 前期での私の課題は製作物のアイディアを行うことであった.当初は脳波を使ったゲームを作る ためにアイディアをグループメンバーで協力して出し合ったが,どれも製作へのストーリー性や背 景が弱いため実際に製作することができなかった.中間発表時点での製作物は music memories と いうユーザの気持ちと写真を合わせることができるアプリケーションであったが,「気持ち」とい う表現に曖昧なものがあるため製作物として難があった. 前期の活動で脳波を使ったゲームはアイディアとしては弱いため実現が難しいことや,中間発表 での製作物は内容が曖昧であったことを踏まえて,後期の課題を製作物のアイディアの見直しをま Group Report of 2013 SISP - 46 - Group Number 21-C Mind Communication ず課題に挙げた.また,製作物が定まってからは音楽について詳しくないので音楽の勉強とコード 進行作成を課題とした.音楽についての勉強は大学内でのライブラリで音楽についての本を借りて 基礎的なことをその本から学んだが,勉強を始めたのが後期に入ってからだったために時間が少な く,本当に基礎的なことしか学ぶことができなかったために製作で役に立てることができなかった のが反省点として挙げられる.コード進行作成は前述の音楽理論を活かすことができなかったため に自分で納得のいくものを作成することができなかったことが悔やまれる. (※文責: 青井雄佑) 岩崎裕太 私は前期後期共に Processing を用いたプログラミングを担当した.前期では Processing と Max を連動させるということを行なったが,その部分を他のメンバーに任せきりになっていた部 分があったため,後期では Processing と Max の連動を一緒に進めた.しかし,まだメンバーに 任せきりになってしまった部分があったため,役割分担が上手くいっていなかったという課題が 残った. 製作物に関しては,プロトタイプ版で複雑な計算をしてしまい,動作が不安定になってしまった 部分を見直し,Sound Ripples では計算を簡略化し,安定した動作を行えるものを製作したが,そ の時にプロトタイプ版で行っていたグラデーションの処理を省いてしまったため,それぞれの図形 が単色で表示させるようになってしまった.このため,次はグラデーションの処理を施しながらも 安定した動作が出来るようなプログラムを作る事が課題となった.また,デザインについても左上 に表示される曲名のバナーが煩わしいといった意見や波紋の大きさにも意味を持たせた方が良いと いう意見があったため,再生されている曲名の表示方法,脳波の状態と連動した波紋の表現方法を 見直すことが課題となった. (※文責: 岩崎裕太) 森田晴紀 私はこのグループ内ではコード進行の作成と成果物のポスターの文章推敲,そしてポスター発表 が主な課題であった.私は今回のプロジェクト「Mind Communication」のテーマでもある「音 とリズム」のメインである曲調を変化させる大事な材料であるのでコード進行作成には力を入れ た.私は音楽知識に乏しかったため,当初はコード進行とメロディとは何が違うのか,というよう な初歩的なことから全く分からなかった.しかしながら,プロジェクト学習の時間に友達から聞い たり,自分で本やインターネットで調べたりなどをして理解を深めていき,結果としてグループ全 体で作ったコード進行の総数は 100 を超えることとなり色々なパターンの曲調に変化させること が出来た. ポスターの文章推敲においては中間発表のポスターセッションでは我々のグループの発表を聞い ている人は多々いたもののそれと平行してポスターを熟読していた人は少なかったため,最終発表 のポスターでは短い文章でわかりやすい言葉を選ぶことが大事だということを知り,そのような点 に重心をおいてポスター制作に望んだ.結果として出来上がった文章は短いものであったが,とて も意味のある文章が出来たと私は考えている.最後に中間発表・最終発表共に私は人前でポスター の内容を発表する役割となった.その際に心がけていたのは聴き手側に対して我々のグループが何 をやっているのかを理解させることであった.というのも我々は週に 2 回プロジェクト学習で集 Group Report of 2013 SISP - 47 - Group Number 21-C Mind Communication まって成果物に関する話を何度もしている.そのため普段から話す内容がプロジェクトグループ全 員は当たり前として捉えていることでも,発表の際にはそれは当たり前でないことが多い.そのよ うな聞き手を困らせるような発言をしないように専門用語は解説をつける,難しい表現には簡単な 例を踏まえるなどして理解を促すような心がけをした. (※文責: 森田晴紀) 小向崇博 Sound Ripples の実装という点では,私は Max でのプログラミング作業しか行わなかった. Prcessing での脳波の読み取りから Max へのデータ送信,Max からデータを送信し,Processing による映像変更などの作業や,コード進行の調査,作成,勉強など,作業ごとに担当者が違い,ほ とんど個人で別の作業を行っているような形になった.その結果,その人が抜けるとそこが完全に 穴になってしまうような作業分担になってしまったので,同じグループなのに他の人がどのような 作業で進行具合がどうかなどが分かりづらかった.もっと定期的にメンバー内で連絡や話し合いの 場を設け,積極的に意見交換をしていくべきだと感じた.作業内容から忙しい人とそうでない人に 分かれてしまったので,もっと作業の分担方法を考え,効率よく作業ができるように作業分担,話 し合いが必要だと感じた.Max でのプラグラミング作業は,オブジェクトの数が大量になってし まい,既存の曲を打ちんで鳴らすだけでも膨大な量になってしまった.メロディラインやコード進 行などの音すべてを数字に置き換えて曲を作っていたのでデータが多く,後からの変更に上手く対 応できない部分も多く,そのため見直すのも大変な状態になってしまった.Max を勉強する時間 が少なかったこともあり,あまり深く調べることができずに,一度覚えたことですべて実装してし まおうとした結果,非効率なものに仕上がってしまったと思うので,音を鳴らすという単純なもの でも複数の方法を調べ,どれがどこで役に立つかなどをきちんと考えるべきだと感じた.どれが最 善でどれが効率的かを調べて使用することが大切だと感じた.コード進行を基準にしたため,Max で曲を鳴らすということに 4 秒という基準ができてしまい,メロディラインのリズムやテンポも変 えることができなかったので,情報収集と取捨選択をもっと慎重に行うことが今後の課題となる. (※文責: 小向崇博) 6.2 全体の課題 音楽の知識が足りていなかったことも大きく,楽しい,明るい,暗い,寂しいなどのコード進行 の聴こえ方の種類が豊富に揃えられず,そしれそのコード進行がメロディラインとマッチしている かどうかの判断も難しかった.ハードシンセとの接続も可能になったが期間が短く色々な音色の組 み合わせを試すことができなく,不十分なところも少なからずあった.音楽を作るには音楽のこと を知らなければいけないので,音楽理論の勉強,様々なジャンルの音楽を聴いて耳を鍛えるという 行為が必要だったと感じた.メインは脳波によって音楽が変わっていくというところなので,その 音楽をもっと力強く発表できるように,メロディラインとマッチしたコード進行の勉強,それぞれ の曲とコード進行にマッチした音色までしっかり考えて曲を作っていく必要がある.Max の項目 の,音の鳴らし方の説明でもでてきた”Roland SonicCell”というハードシンセは,最終発表の 1 週 間前に接続が可能になったもので,これは MIDI として送られてきた音を変えることができるもの である.MIDI はチャンネルが 16 あり,その 16 すべてにそれぞれピアノやギター,トランペット Group Report of 2013 SISP - 48 - Group Number 21-C Mind Communication などの音色を付けていくことができる.このハードシンセには約 800 種類の音色が入っており,そ のすべてを聞くことができなかったので,曲にあった音色を選ぶということが不十分だった.用意 されている音色だけではなく,その音色の音の立ち上がりや,音の切り方,リバーブの強さなど細 かい設定を保存できるので,音色についてはかなり深く追求することができる.なので,ハードシ ンセを使いこなせるようになることも大切である. コミュニケーション要素が少ない部分があった.この Sound Ripples を使うことによって何が できるのか,どのようにコミュニケーションに活かされるのか,という部分をもっと深く考え,明 確にしていく必要がある.Sound Ripples を使っている人も,使っている人の周りで見ている人 も,楽しいと感じることができるか,知っている人とも知らない人ともコミュニケーションがとれ るのか,どのような人がこの Sound Ripples を使用するのか,など考えることは様々ある.作った 自分たちが使ってみて心から楽しいと思えるものでないと,他の人に勧めることはできないので, コンセプトや背景からしっかりと考えを固め,使ってもらおうと思えるような工夫が大切だと感 じた. (※文責: 小向崇博) 6.3 各自の展望 山本雄也 私は,グループ C で最初に意見として挙がっていた「脳波で遊べるコンテンツ」というのが実現 できなかったことが,後悔として残っている.脳波をゲームなどの操作面に関して利用するのが困 難ではないかという考えが露見してから,新しい製作物のアイディア考案の自由度が制限されて しまって,「脳波で遊ぶ」という発想がしづらい方向に流されてしまったのが原因と考えられる. よって今後の展望としては,「脳波が操作に関与しづらい」というデメリットを逆手に取った,遊 べるコンテンツの製作を提案したい.例えば,脳波の不安定な要素を運要素として取り込んだボー ドゲームや,脳波の「自分でコントロールしづらい」面を活かしてイライラ棒のようなコンテンツ の製作が考えられる.今後は私達のように制限に縛られた環境ではなく,「作りたいものを作れる ような環境」がもう少しだけ重要視されてもいいのではないかと思う.しかし,これは一学生の見 解でしかない.学生はもっと周りを納得させるような根拠のあるものであり,かつ,製作者側の自 己満足の段階で止まってしまわないような製作物のアイディアを提案できることが大切ということ も理解した上でプロジェクト活動に臨まなければならないというのもまた,当然である.それらに 気をつけて,柔軟なアイディアを出しながら,次年度もプロジェクトの活動を続けてもらいたい. また,グループ全てにおいて,良い点を挙げるとすれば,プロジェクト 21 の雰囲気はとても良 かったのではないかということである.グループ内の雰囲気は,製作状況にも関わってくるものな ので,グループリーダーも大切にしていかなければならない点であると考えられる.「グループの 雰囲気作り」という要素は今後も参考にしていくべきであると感じた. (※文責: 山本雄也) 青井雄佑 実際の製作における役割分担がうまくできていなかったために作業量に大きく個人差がでてし まった.今回のことで作業分担の大切さを知ることができたので今後に活かしていきたいと思う. Group Report of 2013 SISP - 49 - Group Number 21-C Mind Communication 今回のプロジェクトでは時間が少なく音楽理論の勉強が間に合わなくてコード進行を作成する際 に役に立てることができなかった.ただ,勉強した音楽理論がまったく役に立たなかったといえば そうではなく,少なくともコード進行の印象のグループ分けでは多少なりとも役に立てることがで きた.しかし,予定していた音楽理論の利用までは届かなかったことが反省点として挙げられる. しっかりとしたスケジュールの調整を当初にしっかり立てていればこのような事態にはならなかっ たと思うので,今後はスケジュールの設定をしっかりと行い,入念な準備を行ってから製作に取り 組みたい. 製作物について,最終発表で指摘されたことのなかのひとつにこのツールの使用場面が限られる などのユーザシナリオについての問題があった.今回は前期から製作物が大きく変わってしまい, 背景やストーリーを十分に考えることができなかったことが要因として考えられる.これによって 製作物の背景やストーリーが第 3 者が納得できるものができなかったと思うので,今後は実装に取 り組む前に,背景やストーリーを十分に練ってから実装を行っていきたい. (※文責: 青井雄佑) 岩崎裕太 現状の Sound Ripples では,MindWave を 1 人だけが装着し,それを相手に見せるという状態 であるが,それを複数人に増やすことにより,波紋や矩形の大きさが変化する,図形の色が多彩に なる等,より変化に富んだものが出来るとよいと感じた.現状では,MindWave は PC1 台に 1 つ しか接続することができないため,サーバをたてて各 PC を制御する必要があるが,それを 1 台 の PC にまとめることにより,手軽に使用できるようにする必要があると感じた.また,センサを 用いたり,Kinect を用いた画像処理を行ったりすることにより,ユーザが手をかざした部分から 波紋が出現する,手の動きに合わせて波紋の軌跡が残るといったような,ユーザの動きに合わせて 画面が変化するといったことも出来るとよいと感じた.これを応用して,ゲーム要素を取り入れる ことにより,ユーザ同士でより深いコミュニケーションを取れるツールとなると感じた.この他に も,脳波をある程度の時間計測し,そこから Processing や Max を用いて自分だけのオリジナル曲 を作る,また,波紋の他にも多角形や線等といった図形も表示されるといったことが出来ると良い と感じた. (※文責: 岩崎裕太) 森田晴紀 今回の成果物「Sound Ripples」で作られた音楽はコード進行による変化で様々な曲調に変わる ものになった.しかしながらその曲調の中には聞いていて不快な曲調もまだ混じっていたりもし た.このような事が起こらないようにするために今後は音楽理論を勉強していってコード進行の切 り替わりの部分をうまく調節することで不快な曲調をなるべく減らすようにしてきれない曲調にし ていければいいと考える.またコンセプトに置いても長い時間をかけて推敲をしたとは言えまだ完 璧なものとはいえないので限りなくブラッシュアップして強化していくことによりたくさんの人が 理解してくれたり,あるいは思わぬ使い方が見つかるかもしれないと考える. (※文責: 森田晴紀) Group Report of 2013 SISP - 50 - Group Number 21-C Mind Communication 小向崇博 この Sound Ripples を使っている人は自分がどのような状況にあるのか分からないという点が 大きな失敗点となってしまったので,一度案でも出てきたヘッドマウントディスプレイなどを使用 し,自分の状態を自分でも知ることができるようにしたい.そしてこのグループはもともとは,脳 波を使った音楽ゲームを作りたい人が集まったグループだったが,背景やコンセプトを考えている うちにどんどんゲームから離れていってしまい,ゲーム要素が一切なくなってしまった.ゲームと いうのはコンセプトが難しく,何故ゲームでなくてはならないのか,既存のものと何が違うのか, など考えることが多いので,そこをもっと深く掘り下げていき,音楽的な脳波を使ったゲームとい うものを作り上げていきたい.ヘッドマウントディスプレイの使用や,ゲーム要素の取り込みなど は,コミュニケーションとどう関連付けるかが重要になってくるので,コミュニケーションの意味 をもっときちんと考え,楽しく遊べるもの,誰もが簡単に参加できるもの,親しみやすさを取り入 れ,脳波とゲームを有効に活用したインタラクティブなシステムを実装したい.音楽面では,今は 既存の曲のエルガーの威風堂々,ヴィヴァルディの四季より「春」,パッヘルルのカノンの 3 曲の うちの 1 曲が変化して流れているが,メロディラインが同じだと,いくらコード進行が変化してい るとはいえ,違う人が Sound Ripples を使っても同じような曲に聴こえてしまったので,曲調が変 化していくのではなく,脳波の状態に合わせてメロディラインからコード進行などの曲に必要な要 素がすべて自動で生成されるようなシステムを作りたい.ハードシンセの使用もあり,音色にたく さんのバリエーションが増え,様々な表現ができるようになったので,もっと音色にもこだわり勉 強していきたい.脳波と音楽の研究がもっと必要になってくるが,音楽的な表現をもっとつけてい けるようにしたい. (※文責: 小向崇博) 6.4 全体の展望 音楽面ではコード進行の勉強不足・準備不足でまだまだ不快に聴こえる部分が多く,修正するべ き部分があることと,オリジナル曲を生成してきれいな音楽を作りたいという展望があった.当初 の目的では,脳波を使って遊ぶことのできるコンテンツを考えるよいう案がコンセプトなどを考え ているうちにそこから離れていってしまっていた.背景やコンセプト・ユーザーシナリオをもっと 深く考え,コミュニケーションをどうとればいいかということを考える必要があるという結論に 至った.ゲーム要素を取り入れ,より深いコミュニケーションをとることができるシステムを作成 したいというメンバーも多かった.Sound Ripples という脳波の状態によってコード進行を決め たり転調したりするものを実装することはできたが,各自がやりたいこと,元々このメンバーが集 まって考えていたことが盛り込まれない結果となってしまった.背景・コンセプトをしっかりと明 確に説明できるように考え,満足のいくものを作っていきたい.コミュニケーションとはどういう ものかを考えるとき,どのようなコミュニケーション体系なのか,何をもってコミュニケーション なのかという部分も考えられる時間が少なく,コミュニケーションをとるという観点では,脳波の 測定を 1 人ではなく複数人で行い,コミュニケーションを促進するということがあげられた.当初 考えていたゲーム要素に,どのようなコミュニケーションを取り入れられるかを考え,1 人ではな く複数人で楽しむことができるコンテンツを考えて実装していきたい. (※文責: 小向崇博) Group Report of 2013 SISP - 51 - Group Number 21-C Mind Communication 付録 A ソースコード Sound Ripples で使用した,Processing のソースコードを以下に記載する.このプログラムで は,MindWave で測定した脳波の数値が,1 秒ごとに保存されるテキストデータを読み取る.その 読み取ったデータをもとに,集中度合いやリラックス度合いを調べ,どの音を鳴らすかを Max に 指示し,集中度合いやリラックス度合いに合わせ映像を表示するものである. /* 2013 Project 21 : Mind Communication - Group C Title : Sound Ripples */ // OpenSoundControl import oscP5.*; import netP5.*; OscP5 oscP5; NetAddress myBroadcastLocation; /* --- Start --- */ boolean start_flag; boolean findmw; int findtimer; float stimer; int s_med; /* --- Start Music Select --- */ int statn; int stmed; int ca; /* --- Mind Wave data -- */ String data[]; int del; //デルタ派 int the; //シータ派 int l_alp; //ローアルファ派 int h_alp; //ハイアルファ派 int l_bt; //ローベータ派 Group Report of 2013 SISP - 52 - Group Number 21-C Mind Communication //ハイベータ派 int h_bt; int l_gmm; //ローガンマ派 int h_gmm; //ハイガンマ派 int med; //安静度 int atn; //覚醒度 int alpha, beta; int gettime; /* --- AverageMind Data --- */ Mdd[] amd = new Mdd[8]; Mdd[] sclamd = new Mdd[8]; int no; // amd number int beforeatn, beforemed; int nowscale; /* --- Start / Stop --- */ int st; // Start Number /* --- Music Select --- */ int ms; // Music Select Number int j, k, scl; /* --- Timer --- */ int time; // For Ellipse int mindtime; // For getting Mind Wave /* --- Ellipse 1 --- */ boolean elli_flag; // ellipse Start Flag /* --- Notes --- */ int beforemelody; int chord; /* --- Ellipse 2 --- */ int beforebase; int base; /* --- Color --- */ float r, g, b; Group Report of 2013 SISP - 53 - Group Number 21-C Mind Communication float nr, ng, nb; float er, eg, eb; int ch; // color change flag boolean ch_flag; int updown; /* --- Chord progression --- */ int cp[]; int rm; /* --- Pictures --- */ PImage logo[]; PImage banner[]; PImage sttext[]; PImage play, stop; // Play Pic & Stop Pic int ran; boolean ban[]; // banner flag boolean sttxt_flag; // text2.png flag int bannertime; int marktime; // Display time of banner // Display time of Play & Stop Squair[] squ = new Squair[20]; Ell[] ell = new Ell[10]; Ell2[] ell2 = new Ell2[5]; class Ell{ boolean flag; int beat; int no; int al; int size; float re; float gr; float bl; Ell(boolean f, int be, int n, int s, float r, float g, float b, int a){ flag = f; beat = be; Group Report of 2013 SISP - 54 - Group Number 21-C Mind Communication no = n; size = s; re = r; gr = g; bl = b; al = a; } } class Squair{ boolean flag; boolean mflag; int rx; int scale; float size; float dec; float re; float gr; float bl; Squair(boolean f, boolean m, int x, int sc, float s, float d, float r, float g, float b){ flag = f; mflag = m; rx = x; scale = sc; size = s; dec = d; re = r; gr = g; bl = b; } } class Ell2{ boolean flag; int size; float x; float y; float weight; float speed; float re; Group Report of 2013 SISP - 55 - Group Number 21-C Mind Communication float gr; float bl; Ell2(boolean f, int sx, float xx, float yy, float w, float sp, float r, float g, float b){ flag = f; size = sx; x = xx; y = yy; weight = w; speed = sp; re = r; gr = g; bl = b; } } class Mdd{ float at; float md; Mdd(float a, float m){ at = a; md = m; } } void setup() { frameRate(40); size(1024, 768); ellipseMode(CENTER); smooth(); textSize(20); /* --- Start --- */ start_flag = false; findmw = false; stimer = 400; findtimer = 0; s_med = 0; /* --- Max Port --- */ oscP5 = new OscP5(this, 8000); Group Report of 2013 SISP - 56 - Group Number 21-C Mind Communication myBroadcastLocation = new NetAddress("127.0.0.1", 7000); /* --- Get First Mind Data --- */ data = loadStrings("bmi_log.txt"); if(data == null){ del = the = l_alp = h_alp = l_bt = h_bt = l_gmm = h_gmm = atn = med = 0; }else{ String d[] = data[0].split(","); int v[] = int(d); del = v[0]; the = v[1]; l_alp = v[2]; h_alp = v[3]; l_bt = v[4]; h_bt = v[5]; l_gmm = v[6]; h_gmm = v[7]; atn = v[8]; med = v[9]; } gettime = 0; /* --- Melody Notes --- */ beforemelody = 1; chord = 1; beforebase = 1; base = 0; j = k = scl = 1; tx = 30; st = 1; /* --- First Select Music --- */ ms = 0; OscMessage myNumber2 = new OscMessage("/mselect"); myNumber2.add(ms); oscP5.send(myNumber2, myBroadcastLocation); /* --- timer --- */ time = mindtime = 0; Group Report of 2013 SISP - 57 - Group Number 21-C Mind Communication /* --- Ellipse Flag --- */ elli_flag = false; /* --- Color --- */ r = 127; g = 201; b = 127; nr = 230; ng = 245; nb = 226; er = 191; eg = 228; eb = 127; ch = 3; // 1 - 5 ch_flag = false; updown = 3; /* --- Initialization --- */ for(int i = 0; i < 10; i++){ ell[i] = new Ell(false, 0, 0, 0, 0, 0, 0, 150); } for(int i = 0; i < 20; i++){ squ[i] = new Squair(false, false, 0, 0, 0, 0, 0, 0, 0); } for(int i = 0; i < 5; i++){ float xx = random(30, 600); float yy = random(30, 600); float sp = random(5, 50); ell2[i] = new Ell2(false, 0, xx, yy, 10, sp, 0, 0, 0); } for(int i = 0; i < 8; i++){ amd[i] = new Mdd(0, 0); sclamd[i] = new Mdd(0,0); } no = 0; beforeatn = beforemed = 0; nowscale = 0; statn = stmed = 0; Group Report of 2013 SISP - 58 - Group Number 21-C Mind Communication /* --- Pictures --- */ logo = new PImage[3]; banner = new PImage[6]; sttext = new PImage[3]; ban = new boolean[3]; for(int i = 0; i < 3; i++){ logo[i] = loadImage("pic/logo/logo" + i + ".png"); sttext[i] = loadImage("pic/other/text" + i + ".png"); ban[i] = true; } banner[0] = loadImage("pic/banner/pomp.png"); banner[1] = loadImage("pic/banner/spring.png"); banner[2] = loadImage("pic/banner/kanon.png"); banner[3] = loadImage("pic/banner/pompmini.png"); banner[4] = loadImage("pic/banner/springmini.png"); banner[5] = loadImage("pic/banner/kanonmini.png"); play = loadImage("pic/other/play.png"); stop = loadImage("pic/other/stop.png"); sttxt_flag = true; bannertime = 160; marktime = 0; /* --- Chord progression --- */ cp = new int[5]; cp[0] = 27; cp[1] = 20; cp[2] = 44; cp[3] = 20; cp[4] = 8; rm = 1; } void draw() { Group Report of 2013 SISP - 59 - Group Number 21-C Mind Communication background(0); noCursor(); noStroke(); /* --- Initialization --- */ if(!start_flag){ image(logo[ran], (width / 2) - 450, (height / 2) - 200, 900, 360); if(!findmw){ if(findtimer % 40 == 0){ data = loadStrings("bmi_log.txt"); if(data == null){ del = the = l_alp = h_alp = l_bt = h_bt = l_gmm = h_gmm = atn = med = 0; }else{ MindData(); } if(findtimer > 190 && s_med != med) findmw = true; else s_med = med; } findtimer++; fill(255); /* --- Pic : text0.png --- */ image(sttext[0], width / 2 - 160, height / 2 + 200); if(findtimer % 60 >= 0 && findtimer % 60 < 20) text(".", width / 2 + 125, height / 2 + 225); if(findtimer % 60 >= 20 && findtimer % 60 < 40) text("..", width / 2 + 125, height / 2 + 225); if(findtimer % 60 >= 40 && findtimer % 60 < 60) text("...", width / 2 + 125, height / 2 + 225); }else{ if(stimer == 0){ if(scl != 1){ OscMessage myNumber1 = new OscMessage("/start"); myNumber1.add(st); Group Report of 2013 SISP - 60 - Group Number 21-C Mind Communication oscP5.send(myNumber1, myBroadcastLocation); } StartCalc(); start_flag = true; } if(stimer % 40 == 0){ StartMindData(); } fill(255); /* --- Pic : text1.png --- */ image(sttext[1], width / 2 - 167, height / 2 + 200); if (stimer % 60 >= 0 && stimer % 60 < 20) text("...", width / 2 + 136, height / 2 + 225); else if (stimer % 60 >= 20 && stimer % 60 < 40) text("..", width / 2 + 136, height / 2 + 225); else if (stimer % 60 >= 40 && stimer % 60 < 60) text(".", width / 2 + 136, height / 2 + 225); text(nf((400 - stimer) / 400 * 100, 1, 1) + " % " , width / 2 - 10, height / 2 + 247); rect(width / 2 - 202, height / 2 + 258, 404, 14); fill(255, 0, 0); rect(width / 2 - 200, height / 2 + 260, 400 - stimer, 10); stimer--; } }else{ /* --- Get Mind Data --- */ if(mindtime % 40 == 0){ MindData(); } if(mindtime >= 320) calc(); if(mindtime % 320 == 0) channel(); ColorChange(); Group Report of 2013 SISP - 61 - Group Number 21-C Mind Communication // For music select OscMessage myNumber2 = new OscMessage("/mselect"); myNumber2.add(ms + 1); oscP5.send(myNumber2, myBroadcastLocation); // code "alpha" OscMessage myNumber3 = new OscMessage("/scale"); myNumber3.add(nowscale); oscP5.send(myNumber3, myBroadcastLocation); /* --- Notes Flag & Setting --- */ if(beforemelody != scl && elli_flag){ if(scl != 0){ beforemelody = scl; squ[j % 20].scale = scl; squ[j % 20].flag = true; squ[j % 20].mflag = true; squ[(j - 1) % 20].mflag = false; squ[j % 20].rx = 0; squ[j % 20].size = 0; squ[(j - 1) % 20].dec = squ[(j - 1) % 20].size / 80; squ[j % 20].re = nr; squ[j % 20].gr = ng; squ[j % 20].bl = nb; j++; }else{ beforemelody = scl; squ[(j - 1) % 20].mflag = false; } } /* --- Ellipse 2 Flag & Setting --- */ if(beforebase != base && elli_flag){ if(base != 0){ beforebase = base; ell2[k % 5].flag = true; ell2[k % 5].re = er; ell2[k % 5].gr = eg; ell2[k % 5].bl = eb; k++; Group Report of 2013 SISP - 62 - Group Number 21-C Mind Communication }else{ beforebase = base; } } /* --- Rhythm Ellipse Flag & Setting --- */ if(elli_flag){ if(time % 40 == 0){ for(int i = 0; i < 10; i++){ if(!ell[i].flag){ ell[i].flag = true; if(ell[i].re == 0 && ell[i].gr == 0 && ell[i].bl == 0){ ell[i].re = r; ell[i].gr = g; ell[i].bl = b; } ell[i].flag = true; break; } } } } /* --- Ellipse --- */ for(int i = 0; i < 10; i++){ /* --- Ell 1 --- */ if(ell[i].flag){ fill(ell[i].re, ell[i].gr, ell[i].bl, ell[i].al); ellipse(width / 2, height / 2, ell[i].size, ell[i].size); ell[i].size += 7; ell[i].al--; if(ell[i].al == 0){ ell[i].flag = false; ell[i].size = 0; ell[i].al = 150; ell[i].re = ell[i].gr = ell[i].bl = 0; } } } /* --- Notes --- */ Group Report of 2013 SISP - 63 - Group Number 21-C Mind Communication for(int i = 0; i < 20; i++){ if(squ[i].flag){ pushMatrix(); translate(width / 2, height / 2); rotate((TWO_PI / 23) * (squ[i].scale - 59)); fill(squ[i].re, squ[i].gr, squ[i].bl); if(squ[i].mflag){ squ[i].rx -= 3; squ[i].size += 3; }else{ squ[i].size -= squ[i].dec; squ[i].rx -= 3; } rect(squ[i].rx, -5, squ[i].size, 10); popMatrix(); if(squ[i].size <= 0) squ[i].flag = false; } } /* --- Ell 2 --- */ for(int i = 0; i < 5; i++){ if(ell2[i].flag){ strokeWeight(ell2[i].weight); stroke(ell2[i].re, ell2[i].gr, ell2[i].bl); fill(0, 0, 0, 0); ell2[i].size += ell2[i].speed; ellipse(ell2[i].x, ell2[i].y, ell2[i].size, ell2[i].size); ell2[i].weight -= 0.5; if(ell2[i].weight < 0){ ell2[i].size = 0; ell2[i].flag = false; ell2[i].weight = 10; float xx = random((width / 2) - 400, (width / 2) + 400); float yy = random((height / 2) - 384, (height / 2) + 384); float sp = random(5, 50); ell2[i].x = xx; ell2[i].y = yy; ell2[i].speed = sp; } } } Group Report of 2013 SISP - 64 - Group Number 21-C Mind Communication /* --- Music Banner | Play & Stop Pic --- */ banner(); mark(); /* --- Chord progression --- */ if(mindtime % 160 == 0){ rm = (int)random(1, cp[ch - 1] + 0.9); OscMessage myNumber4 = new OscMessage("/level"); myNumber4.add(ch); oscP5.send(myNumber4, myBroadcastLocation); OscMessage myNumber5 = new OscMessage("/pattern"); myNumber5.add(rm); oscP5.send(myNumber5, myBroadcastLocation); } /* --- timer --- */ mindtime++; time++; } fill(255, 0, 0); if(data == null){ gettime++; textSize(17); text("Coud not get Mind data..." + gettime / 40, 5, 764); }else if(gettime != 0 && data != null){ gettime = 0; } } /* --- Max Event --- */ void oscEvent(OscMessage theOscMessage) { int melody = theOscMessage.get(0).intValue(); if(theOscMessage.checkAddrPattern("/melody")){ scl = melody; } if(theOscMessage.checkAddrPattern("/base")){ base = melody; Group Report of 2013 SISP - 65 - Group Number 21-C Mind Communication } } /* --- Start Mind Data --- */ void StartMindData(){ data = loadStrings("bmi_log.txt"); if(data == null){ del = the = l_alp = h_alp = l_bt = h_bt = l_gmm = h_gmm = atn = med = 0; }else{ String d[] = data[0].split(","); int v[] = int(d); del = v[0]; the = v[1]; l_alp = v[2]; h_alp = v[3]; l_bt = v[4]; h_bt = v[5]; l_gmm = v[6]; h_gmm = v[7]; atn = v[8]; med = v[9]; } statn += atn; stmed += med; } /* --- Start Calc --- */ void StartCalc(){ // random calc if (statn - stmed > 100) ms = 0; // Pomp else if (statn - stmed < -100) ms = 2; // Kanon else ms = 1; // Spring } Group Report of 2013 SISP - 66 - Group Number 21-C Mind Communication /* --- Mind Data --- */ void MindData(){ data = loadStrings("bmi_log.txt"); if(data == null){ del = the = l_alp = h_alp = l_bt = h_bt = l_gmm = h_gmm = atn = med = 0; }else{ String d[] = data[0].split(","); int v[] = int(d); del = v[0]; the = v[1]; l_alp = v[2]; h_alp = v[3]; l_bt = v[4]; h_bt = v[5]; l_gmm = v[6]; h_gmm = v[7]; atn = v[8]; med = v[9]; } amd[no].at = atn; sclamd[no].at = atn; amd[no].md = med; sclamd[no].md = med; no = ++no % 8; if(no == 0){ int nowatn = 0; int nowmed = 0; for(int i = 0; i < 8; i++){ nowatn += sclamd[i].at; nowmed += sclamd[i].md; } if (beforeatn < nowatn) nowscale++; // Scale +1 if (beforemed < nowmed) nowscale--; // Scale -1 /* --- Lower Limit & Upper Limit --- */ if (nowscale > 12) Group Report of 2013 SISP nowscale = 12; - 67 - Group Number 21-C Mind Communication else if (nowscale < -12) nowscale = -12; beforeatn = nowatn; beforemed = nowmed; for(int i = 0; i < 8; i++){ sclamd[i].at = 0; sclamd[i].md = 0; } } } /* --- Mind Wave State --- */ void channel(){ /* --- Mind Data -> Color Change --- */ if(ch == 1){ // blue if(a2 < a1){ ch++; ch_flag = true; } }else if(ch > 1 && ch < 5){ // green if(a2 > a1){ ch--; ch_flag = true; }else if(a2 < a1){ ch++; ch_flag = true; } }else if(ch == 5){ // red if(a2 > a1){ ch--; ch_flag = true; } } } /* --- atn & med Calculation --- */ void calc(){ Group Report of 2013 SISP - 68 - Group Number 21-C Mind Communication float atnt = 0; float medt = 0; for(int i = 0; i < 8; i++){ atnt += amd[i].at; medt += amd[i].md; } /* --- Test --- */ a1 = atnt; a2 = medt; } /* --- Color Change --- */ void ColorChange(){ if(ch_flag && ((updown == 3 && ch == 2) || (updown == 2 && ch == 1))){ // blue // Ell1 r:130 g:150 b:255 // Note nr:191 ng:219 nb:202 // Ell2 er:255 eg:255 eb:255 r -= 4; g -= 4; b += 4; nr -= 2; ng -= 2; nb -= 2; er += 3; eg += 2; eb += 5; if(r < 130) r = 130; if(g < 150) g = 150; if(b > 168) b = 255; if(nr < 191) nr = 191; if(ng < 219) ng = 219; if(nb < 202) nb = 202; if(er > 255) er = 255; if(eg > 255) eg = 255; if(eb > 255) eb = 255; if(r == 130 && g == 150 && b == 255){ Group Report of 2013 SISP - 69 - Group Number 21-C Mind Communication ch_flag = false; r = 130; g = 150; b = 255; nr = 191; ng = 219; nb = 202; er = eg = eb = 255; updown = ch; } }else if(ch_flag && ((updown == 3 && ch == 4) || (updown == 4 && ch == 5))){ // red // Ell1 r:251 g:103 b: 71 // Note nr:254 ng:230 nb:146 // Ell2 er:251 eg:154 eb:122 r += 4; g -= 4; b -= 4; nr += 2; ng -= 2; nb -= 6; er += 5; eg -= 2; eb -= 4; if(r > 251) r = 251; if(g < 103) g = 103; if(b < 71) b = 71; if(nr > 254) nr = 254; if(ng < 230) ng = 230; if(nb < 146) nb = 146; if(er > 251) er = 251; if(eg < 154) eg = 154; if(eb < 122) eb = 122; if(r == 251 && g == 103 && b == 71){ ch_flag = false; r = 251; g = 103; b = 71; Group Report of 2013 SISP - 70 - Group Number 21-C Mind Communication nr = 254; ng = 230; nb = 146; er = 251; eg = 154; eb = 122; updown = ch; } }else if(ch_flag && ((updown == 1 && ch == 2) || (updown == 2 && ch == 3) || (updown == 5 && ch == 4) || (updown == 4 && ch == 3))){ // green // Ell1 r:127 g:201 b:127 // Note nr:230 ng:245 nb:226 // Ell2 er:191 eg:228 eb:127 if(r < 127) r += 4; else r -= 4; g += 4; if(b < 127) b += 4; else b -= 4; if(nr < 230) nr += 2; else nr -= 2; ng += 2; nb += 3; er -= 5; if(eg < 228) eg += 2; else eg -= 2; if(eb < 127) eb += 4; else eb -= 2; if(r > 122 && r < 132) r = 127; if(g > 201) g = 201; if(b > 122 && b < 132) b = 127; if(nr < 226 && nr > 233) nr = 230; if(ng > 245) ng = 245; if(nb > 226) nb = 226; if(er < 191) er = 191; if(eg < 225 && eg > 231) eg = 228; if(eg < 124 && eg > 130) eb = 127; if(r == 127 && g == 201 && b == 127){ ch_flag = false; Group Report of 2013 SISP - 71 - Group Number 21-C Mind Communication r = b = 127; g = 201; nr = 230; ng = 245; nb = 226; er = 191; eg = 228; eb = 127; updown = ch; } }else{ updown = ch; } } /* --- Play & Stop Control --- */ void playstop(){ if(time > 40){ OscMessage myNumber1 = new OscMessage("/start"); myNumber1.add(st); oscP5.send(myNumber1, myBroadcastLocation); if(elli_flag) elli_flag = false; else elli_flag = true; if(!elli_flag){ for(int k = 0; k < 20; k++){ squ[k].mflag = false; } } time = 0; marktime = 80; } } Group Report of 2013 SISP - 72 - Group Number 21-C Mind Communication /* --- Music Select Control --- */ void musicselect(){ ms++; ms = ms % 3; bannertime = 160; } /* --- Banner Control --- */ void banner(){ tint(255, 255); if(ban[ms] && bannertime > 0){ bannertime--; if(sttxt_flag){ /* --- Pic : text2.png --- */ image(sttext[2], width / 2 - 202, height / 2 + 75); if(bannertime == 0) sttxt_flag = false; } image(banner[ms], (width / 2) - 277, (height / 2) - 75); if(bannertime == 0){ bannertime = 160; ban[ms] = false; } }else{ image(banner[ms + 3], 2, 2); } } /* --- Play / Stop Pic Control --- */ void mark(){ if(marktime > 0){ if(elli_flag){ tint(255, marktime * 4); image(play, width / 2 - 100, height / 2 - 100); }else{ tint(255, marktime * 4); Group Report of 2013 SISP - 73 - Group Number 21-C Mind Communication image(stop, width / 2 - 100, height / 2 - 100); } marktime--; } } /* --- Random Chord --- */ void randomchord(){ rm = (int)random(1, cp[ch - 1] + 0.9); } /* --- Restart --- */ void restart(){ if(elli_flag){ OscMessage myNumber1 = new OscMessage("/start"); myNumber1.add(st); oscP5.send(myNumber1, myBroadcastLocation); } elli_flag = false; for(int i = 0; i < 10; i++){ ell[i] = new Ell(false, 0, 0, 0, 0, 0, 0, 150); } for(int i = 0; i < 20; i++){ squ[i] = new Squair(false, false, 0, 0, 0, 0, 0, 0, 0); } for(int i = 0; i < 5; i++){ float xx = random(30, 600); float yy = random(30, 600); float sp = random(5, 50); ell2[i] = new Ell2(false, 0, xx, yy, 10, sp, 0, 0, 0); } time = 0; Group Report of 2013 SISP - 74 - Group Number 21-C Mind Communication findmw = false; start_flag = false; ran = (int)(random(0, 100)) % 3; stimer = 400; mindtime = 0; data = loadStrings("bmi_log.txt"); if(data == null){ del = the = l_alp = h_alp = l_bt = h_bt = l_gmm = h_gmm = atn = med = 0; }else{ String d[] = data[0].split(","); int v[] = int(d); del = v[0]; the = v[1]; l_alp = v[2]; h_alp = v[3]; l_bt = v[4]; h_bt = v[5]; l_gmm = v[6]; h_gmm = v[7]; atn = v[8]; med = v[9]; } s_med = med; scl = 1; for(int i = 0; i < 3; i++) ban[i] = true; } /* --- Keyboard Control --- */ void keyPressed(){ /* --- Play or Pause --- */ if(key == ’1’ && start_flag){ Group Report of 2013 SISP - 75 - Group Number 21-C Mind Communication playstop(); } /* --- Music Select --- */ if(key == ’2’ && start_flag){ musicselect(); } /* --- To Start --- */ if(key == ’3’ && start_flag){ restart(); } /* --- Not Search Mind Wave --- */ if(key == ’6’) findmw = true; /* --- Finish --- */ if(key == ’0’){ if(elli_flag){ OscMessage myNumber1 = new OscMessage("/start"); myNumber1.add(st); oscP5.send(myNumber1, myBroadcastLocation); } exit(); } } /* --- Mouse Control --- */ void mousePressed(){ if(mouseButton == RIGHT && start_flag){ // Mouse Right Click - Music Select musicselect(); Group Report of 2013 SISP - 76 - Group Number 21-C Mind Communication }else if(mouseButton == LEFT && start_flag){ // Mouse Left Click - Play or Pause playstop(); }else if(mouseButton == CENTER && start_flag){ // Mouse Center Click - to Start //restart(); nowscale = 0; } } Group Report of 2013 SISP - 77 - Group Number 21-C Mind Communication 参考文献 [1] ”mico”. neuroware. http://micobyneurowear.com/, (参照 2013-7-19). [2] ”ニューロボーイの冒険”. neurosky. http://getnews.jp/archives/30509, (参照 2013-719). ほりこしあきひろ [3] 堀越昭宏. クラブ・ミュージックのための今すぐ使えるコード進行+ベース&メロディ. リッ トーミュージック, 2012. [4] ”創作田園地帯”. Yosinori Suda. http://www.denen.org/, (参照 2014-1-24). Group Report of 2013 SISP - 78 - Group Number 21-C