Max7日記 (6)

長嶋 洋一


→ Max7日記(1)

→ Max7日記(2)

→ Max7日記(3)

→ Max7日記(4)

→ Max7日記(5)

2017年2月21日(火)

那覇のホテルの朝である。 今年の沖縄は20回目、先週の土曜日から明日まで4泊5日の旅にはアカペラの七海ちゃんと真実ちゃんも同行している。 雨模様の昨日の朝に急遽予定変更して、今日はこれから「とまりん」に行き、座間味島に渡ってホエールウォッチングの予定である。 こんなところでMax7というのも無粋だが、何故か昨夜、ふと「Maxのjsオブジェクト」について頭に浮かんできて離れない・・・という状況になったので、合間に調べてみたのが以下である。

上のところをまとめたところで出発時間となってホテルのフロントに集合したところで座間味島ホエールウォッチング協会に当日連絡の電話をかけたところ、現地は昨日と違って好天、ただし波が高くて朝の高速船は出るものの、帰りの高速船は「未定」との話だった。 ちょうどこの日は15時出発のフェリーが欠航している日なので、座間味島から帰れない(^_^;)、という可能性が浮上してきた。 そして決断、今回の座間味島は諦めて、ホエールウォッチングと高速船をキャンセルして、美ら海水族館などへのドライブに変更した。

そして夕方、ホテルに帰ってきて調べてみると、案の定、上のように2便は欠航になっていた。 運を天に任せて座間味島に行っていたら、午前のホエールウォッチングは好天で良かったかもしれないが、そのまま座間味島に泊まり、翌日にとまりんに帰れる可能性も低かった(より波が高い)ので、帰りのフライトまで吹っ飛ぶところだった。 離島には「運試し」などで行っては駄目なのだ。

2017年2月24日(金)

明日と明後日は全国的に国公立大学の前期入試であり、SUACも入試前日ということで午後入構禁止、何も邪魔の入らない、嵐の前の静けさである。 一昨日の夕方に帰ってきた以下の 20回目の沖縄 の写真は2000枚を超えていたが、なんとか昨日、Webに上げた。 美ら海水族館のイルカショーの動画はBGMがYouTubeに嫌われたので(^_^;)、別途にmp4を上げた。

その翌日、来週の月・火には情報処理学会音楽情報科学研究会が、ここから徒歩10分のヤマハ本社であるのだが、僕は入試の翌日は入試関係業務(といっても既に入試は終わっていて試験監督ではないのでほぼ内容はバレバレ)があり、終日、学内なので参加できない。 あらかじめ火曜日に、と申し込んだ発表は火曜の午前にあるが、その午後も大学に帰ってくる予定である。 その翌日の水曜日はデザイン学科のFD会議というデスマッチ、さらに木曜日は振休をとってゼミの打ち上げ、そして金曜日には学部と大学院で教授会があり、日曜出発で宮古島に出張、さらに慶應日吉でのEC研究会の出張・・・と予定が詰まっている。 そして以下のように、予定表に書き込まれた「発表論文応募期限」リストは、いずれもほぼ締め切り日なので、それ以前に原稿を作成して提出していなければいけない。 予定されていた3月18日の「バイオフィードバックセミナー」(関西)は来期に流れたものの、忙しさはあいかわらずなのだ。

そんな中、下のネットニュースの記事を見かけて、まさかの単位誤認に驚いた。 ちょっと冷静に考えればありえないのだが、チラッと見かけた瞬間、遠い遠い45年以上も昔の「28MHz帯」とぶつからないの??という、ハム(死語)が最初に思い浮かんだのである。 違いは1000倍。まだ疲れているらしい。(^_^;)

そして昼前にはあれこれお仕事メイルも片付けて、夕方まで半日の時間的余裕が生まれた。 もちろん着手するのは、 Max7日記(5) の「2017年2月16日(木)」のところで「寝かせ」に入った、「T○Y○T○との共同研究の最終成果物」の最終チェック/改訂という作業と、 Max7日記(5) の「2017年2月17日(金)」のところで最後にまとめた、仕掛かり状態にあるTWE-Liteの続きの作業、の2つである。 前者は今日の夕方あたりに発送するという計画なので、まずは後者にとりかかった。

まずは、過去にTocoスティックから送られてくる情報を表示する実験を行っていたMaxパッチを発掘して改訂することにして、さぶろさんが「ばんばん受信できる」アプリを書き込みしたNOMOスティックをMacに挿して、送信側はMDWワークショップのTeam Aが使っていた、センサ情報を「ばんばん送信する」アプリが書き込まれているTWE-Lite DIPを使ってみた。 すると上のように、見やすいフォーマットでアナログポート1のCdS照度データが刻々と送られていることが分かり、 このように 綺麗にデータとして表示するところまで確認できた。 まず第一ステップとしては上出来である。(^_^)

その後、いくつかの些事(事務手続き)やICEC2017サイトにあと2週間となったWorkshop/Tutorial応募のSubmissionリンクがまだ無い(^_^;)という問い合わせをした後に、「T○Y○T○との共同研究の最終成果物」の最終チェック/改訂を行い、クリーンな耳でチェックして最終版をまとめて、「2月中」という目標に間に合った状態で送付完了した。 これで一区切りであり、学会発表は今年の秋〜冬になってから、という約束なので、本件はほぼ、忘却モードに突入となる。

2017年2月27日(月)

怒涛の春休み、新しい週が始まった。 といっても、昨日と一昨日の土日は全国的に国公立前期入試であり、久しぶりに入試の実技試験監督を2日とも担当した。 一昨日の鉛筆デッサン実技3時間、そして昨日は「発想表現」実技3時間、ずっと座らず立ち続けるという、誰の得にもならない個人的修行として心の中で受験生を応援したが、今年も無事に完遂できた(^_^)。

そして今日は朝から夕方まで、試験監督に続いて入試関係某業務、というやつに取り組んだ。 詳しくは書けないのだが、思えば去年の春からここまで、長い道のりであった。 受験生も頑張ったが、我々も頑張ったのである。

1日目:2月27日(月)
	10:00-11:30 【ヤマハ掛川ピアノ工場見学ツアー】
	12:00- 受付開始
13:00-14:10【演奏・歌唱支援】(ライブ動画中継あり)座長:土井 啓成(株式会社ドワンゴ)
	(1) 独奏認識誤りに頑健な音響入力伴奏システム
	(2) DPマッチングのコストに視線情報を反映させた楽譜追跡手法の提案
	(3) スマートタンバリン:音と光で場を盛り上げるカラオケ支援システム
14:20-15:30【歌声の分析と合成】(ライブ動画中継あり)座長:伊藤 彰則(東北大学)
	(4) Experiments in Making VOCALOID Synthesis More Human-like Using Deep Learning
	(5) 能の声楽「謡」における発声と音色の解析・考察〜和の“渋い声”と洋の“クリスタルボイス”〜
	(6) 瞬時周波数および群遅延に基づく非周期成分推定法再考
15:40-16:30【自動楽曲分析】(ライブ動画中継あり)座長:浜中 雅俊(京都大学)
	(7) スペクトログラムの階層的クラスタリングを用いたグルーピング構造分析について
	(8) 大域・局所リズムパタンテンプレートマッチングに基づく楽曲の伴奏スタイル識別
16:50-18:20 【産学連携企画】(ライブ動画中継あり)
	(9) パネルディスカッション:研究をイノベーションにつなげる 〜使ってもらってなんぼでしょ 〜
	モデレータ:帆足 啓一郎、藤島 琢哉
	登壇者:小池宏幸氏  中村俊介氏  松本恵氏

2日目:2月28日(火)
09:00-10:30【音楽音響分析】 (ライブ動画中継なし)座長:阪上 大地(株式会社コルグ)
	(10) ソプラノ歌手の歌声における母音知覚 ―基本周波数および声楽経験の影響―
	(11) ニューラルネットワークによる楽器の音色の識別
	(12) 歌声の習熟度を関連する周波数特性に基づく音響特徴量の特定個人の長期的変化
	(13) コード進行に注目したJ-POP音楽の可視化
10:40-11:50【音楽制作】(ライブ動画中継なし)座長:深山 覚(産業技術総合研究所)
	(14) 欧露ツアー2016報告
	(15) WebRTCを用いたDAW用遠隔指導支援システムの開発
	(16) 原曲スコアの音楽特徴量に基づくピアノアレンジ
(昼休み70分)
13:00-14:30【音楽自動生成】(ライブ動画中継あり)座長:平田 圭二(公立はこだて未来大学)
	(17) 動画特徴量からの印象推定に基づく動画BGMの自動素材選出
	(18) 2階マルコフ過程を用いたHMMによるコード付与手法の提案
	(19) 秩序と混沌の度合いを考慮したメロディー生成に対する数理計画法の適用
	(20) 予測変換のアイデアを用いた作曲支援システムの提案
14:40-16:10【音楽練習支援】(ライブ動画中継あり)座長:平井 辰典(駒澤大学)
	(21) 楽譜簡略化と自動補完伴奏によるピアノ演奏練習支援システム
	(22) モバイル端末のブラウザ間で実現する即興的音楽演奏の教育支援アプリケーション
	(23) 最適な多視点カメラワークを自動生成する遠隔ピアノレッスン支援システムの設計と実装
	(24) Strummer:インタラクティブなギターコード練習システム
16:20-17:30【楽曲検索・推薦】(ライブ動画中継あり)座長:藤島 琢哉(ヤマハ株式会社)
	(25) 音響特徴と歌詞に基づく楽曲検索システム
	(26) 機械学習を利用したDTM音色検索フィルタの提案と音色づくり支援システムへの適用
	(27) 複数ユーザー間での楽曲推薦を実現するミュージックプレイヤー:楽曲類似度の導入と有効性の検証
17:30-17:50 主査挨拶・閉会
実は今日は、ここSUACから歩いても10分ほどのヤマハ本社で、上のように情報処理学会・音楽情報科学研究会が開催されているのだが、ちょっとだけ早く入試関係某業務が終わったものの、とても最後あたりに遅れて駆けつける気力もないほど疲弊している。 明日の午前に発表があるが、午後にも予定があってSUACに戻ってくる予定である。 近すぎる場所で研究会があると、こういう事になるのだ。(^_^;)

ここでフト思い出したのが、「音情研は研究会をライヴ配信している」という事だった。 さっそく研究会のページからニコニコ動画の生放送チャンネルに行ってみたが、残念、上のように「ポート2829」などというヘンなポートを使っていて、これではSUACのファイアウォールを通れないのだった(^_^;)。 すぐ近所でやっている研究会のネット生中継というのに、こんな原因で見ることも出来ない、というのはなかなか古風である。

2017年3月7日(火)

宮古島に来て3日目の朝である。 上の日記から10日ほど経過したが、Max7の実験、途中になっているTWE-Liteはまったく進展していない。(^_^;) その間に何があったかと言えば、主として「ICEC2017のチュートリアル・ワークショップに提案応募」という原稿書き(無事に提出完了)が中心であるが、あとは以下のような色々な予定を粛々とこなしていたのである。 そして今日は、電子情報通信学会EMM研究会の2日目、これから会場の平良マリンターミナルに出かけていって、午前に発表の予定である。 このところ3つの学会研究会発表が続いているが、ヤマハでの音楽情報科学研究会と今週末のエンタテインメントコンピューティング研究会(慶應・日吉)はいずれも去年の欧露ツアーの報告ネタなのに対して、今日の初めて参加するEMM研究会の発表ネタは「バイノーラル」である。 そもそも、年度末に多発する沖縄方面での研究会のどれかに参加する、という不純な動機で探して、ちょうどゼミのうららが「バイノーラル」テーマで総合演習をやったので、そこに関連したネタで発表できるだろう・・・という見込みで応募したのだが、うららの発表は作品というよりも調査だったので、いざ予稿を書く段になって、ほとんど中身が無いことが判明した。 そこで このような 予稿になったが、プレゼンはKeynoteやPDFはおろか、何も用意しないで進めるという作戦となった。 以下がプログラムである。
3月6日(月)
14:00-14:20 ポスター概要発表
14:30-15:30 ポスターセッション(前半)
	(1)KAZE特徴量を導入した電子透かし法の検討
	(2)多元LDPC符号を用いた電子透かし法とJPEG圧縮に対する評価
	(3)3Dプリンター造形物への情報埋め込みと近赤外線反射像による読み出し技術
	(4)画像特徴量に基づく同期回復を用いたDCT-OFDM型電子透かし方式
	(5)継続認証実現に向けた歩行中の心拍データ系列を用いた個人認証
15:40-16:40 ポスターセッション(後半)
	(6)攻撃耐性向上のためのブロックスクランブル暗号化法とその鍵管理
	(7)ヘッドマウントディスプレイを用いたARによる電子書籍インタフェイスの開発
	(8)相対テキスト長パターンに基づくPDF文書に対する電子透かし法
	(9)音割符を用いた音響電子透かしシス テムの一検討
	(10)完全相補系列系を用いた画像電子透 かしにおけるホスト信号近似法の性質について
17:00-17:50 一般
	(11)4K用カメラ用フォーカスアシストの開発 〜 暗照明条件でも高ノイズ耐性を実現 〜
	(12)多感覚コンテンツの高次感性知覚に音情報から生成した振動情報が及ぼす影響

3月7日(火)
09:25-10:40 一般
	(13)PDCAサイクルに基づく健康メディアに対するセルフケア法の提案
	(14)バイノーラル音響コンテンツの臨場感向上に向けたバイオフィードバック応用について
	(15)非負値行列因子分解を用いた音楽電子透かし法の埋め込み多重化に関するパラメータの最適化
10:50-11:40 一般
	(16)[招待講演]球状マイクロホンアレイを用いたバイノーラル3次元音空間創成手法
13:00-14:15 一般
	(17)画像入力型情報検索システムにおける利用者の位置履歴の保護
	(18)幾何学的錯視による疑似力覚の付与を目指したテクスチャ提示方式に関する一検討
	(19)共通鍵暗号とプログラムのハッシュ値によるファイルアクセス制御を用いた機密情報保護
僕の発表については、昨日の大失敗をネタにする事にした。 宮古島という不便な場所のため、東京であれば羽田→宮古の直行便が飛んでいるものの、セントレアからは那覇経由となる。 それも今回の往路は、なんとセントレア→福岡→那覇→宮古、と国内なのに3回も飛行機を乗り継いで、朝7時の電車に乗ったというのに宮古島に着いたのは夕方17時過ぎだった。 そして最初の晩は素晴らしく過ごせた(詳細省略)のだが、問題は2日目の昨日である。 前回の宮古島 で撃沈した「まるよし食堂のジャンボカツカレーに再挑戦」と思い立ったのが失敗の始まりである。 YAHOOで「伊良部島 まるよし食堂 ジャンボカツカレー」と画像検索すると以下のように出てくるように、これは宮古島(伊良部島)では超有名なのだ。

そこで今回は、朝からまったく何も食べずに、伊良部大橋を渡ってまるよし食堂に直行して、ちょうど正午から30分ほどかけて、リベンジに挑戦した。 前回はあっさりと満腹でギブアップしたが、今回は汗だくになりながらも(ハンカチは汗が完全に通って半透明状態)、無理に無理を重ねて詰め込んだ。 そして以下のようにお子様カレー程度まで進んだところで、しかし「これは絶対に駄目」ということで、泣く泣くギブアップした。 食堂のおばさんが可哀想に思ってか、完食していないのに、お土産に「完食証」をくれた。

問題はここからである。 前回のギブアップでは相当に残していたが、今回は無理しても絶対に詰め込むぞ・・・と初めての挑戦をしたために、なんと生まれて初めての経験として「満腹過ぎて超不快」という強烈な気持ち悪さ(まさに情動)を体験することになった。 研究会の会場に着いて着席したものの、とにかく身体内部の圧力が過大になってるという内受容感覚は脳に対して「不快ホルモン」を出し続けて、立ち続けるポスターセッションはまったく参加できず、ただ机に座ってその不快さに耐えるだけ、という苦行がおよそ5時間も続き、一応、不快感が去ったのは研究会終了の18時前だった。 そこからホテルに戻ってももちろん食欲など一切なく、ようやく水分を取れる余地ができたのでお茶を飲むだけ、という不思議な夜を過ごしたのだった。

・・・ということで、そのような話題を掴みとして、無事に午前のセッションでの発表を、なんとかプレゼン無しで乗り切った。 EMM研究会はEnhanced MultiMediaということで、我々VPPが求めている「現実感以上に強調されたマルチメディア」ということでは範囲に入っているが、やはり工学系の人たちには「クスリを使わずにイかせる」という方向性は理解してもらえなかった。(^_^;)

当初案内では「研究会は月・火」ということだったので、格安航空券で日曜に宮古島に来て水曜に宮古島から帰る旅程としたが、さすが遠隔地、発表者が少なかったのか1日目は午後から始まり、2日目も午後の早くに終了した。 ただし 前回の宮古島 で、宮古島の主だったところはほぼ津々浦々、レンタカーで回ったこともあり、今回は伊良部島往復以外はほとんどガソリンを使っていない。 午後はホテルの部屋で、あれこれ届く大学関係のメイルに対応したり、学生委員として面談する必要があるアポをどんどん予定に入れているうちに夕方になってきた。 晩には月曜の晩のお楽しみに続くpart2のお楽しみの予定なのだ。(^_^)

あと1点、今回の出張での収穫としては、出発直前にBrooks先生から届いたけっこう新しい論文がおおいに勉強になった。 これ であるが、「Rehabilitation」と対の概念として「Habilitation」という概念を提唱しているあたり、さすがであった。 失った機能を回復させるのがリハビリテーションだとすれば、生まれつきその機能にハンディキャップがある(一般に障碍者と呼ばれてきた)人たちに、新たにその機能を獲得させる、というアプローチもある筈なのだ。 これはバイオフィードバックと人間の驚くべき順応性と脳内機能としての前向きさを支援することで、決して夢物語ではないのだ。 この論文はプリントしてきたので、帰りの飛行機や空港でも読み直すつもりである。

2017年3月9日(木)

昨日まで宮古島への出張、そして今日だけたった1日を挟んで、明日と明後日は慶應(日吉)への出張である。 朝イチで 前回の宮古島 に続いての 今回の宮古島 のページに写真を置きつつ、1限・2限・3限にそれぞれアポの入っていた学生に対応しつつ、あと4限は学生委員会、5限はデザイン学科会議、さらにメディア造形学科会議、と1日が終わる。 そんな中、NIME2017の論文委員会から5件の論文の査読依頼が届いて、合間に集中してなんとかやっつけた。 自分の応募もこんな感じで査読されているんだろうなぁ・・・と思いつつの査読というのは、なかなかに微妙である。

2017年3月10日(金)

宮古島での電子情報通信学会EMM研究会への出張から帰ってきて翌日に会議会議、そしてもう今日は朝イチでSUACからまたまた浜松駅にバスで行き、今度は新幹線で新横浜に向かい、今は慶應大学日吉学舎で、情報処理学会エンタテインメントコンピューティング研究会の会場である。 今日と明日の研究会で僕の発表は明日(土曜日)の午後、そして夕方にはSUACに帰るが、翌日の日曜日は後期入試で、またまた鉛筆デッサン実技試験監督で約4時間、立ち続ける予定が待っている。
1日目:2017年3月10日(金)
	10:00 ‒ 11:40 【セッション1:AR/VR】
		(1) 説明員がヘッドマウントディスプレイ体験者を誘導するための支援システム
		(2) 投影マーカとジェスチャを用いた仮想オブジェクト操作方法の提案
		(3) HMDを用いた家庭用ゲームにおけるVR酔いを抑えた移動手法の予備検討
		(4) UPP(Unreal Prank Painter): 悪戯の楽しみに着目したAR落書きコンテンツの構築
	13:00 ‒ 14:00 【招待講演】
		(5) 声優、アニメに対する日本の非常識、世界の常識
	14:30 ‒ 15:45 【セッション2:デバイス開発】
		(6) 平面に接触した実物体の特徴および接触圧を反映したデジタルペイントシステムの評価
		(7) 光センサを用いた非接触歯圧推定デバイス
		(8) ChanJar:自由に2つの液体の混合比を変更できる水筒の開発
	15:55 ‒ 17:10 【セッション3:発見】
		(9) 調理行動からの個性抽出の可能性に関する検討
		(10) 多人数会話での自然な視線・動作を実会話事例の学習により実現する会話エージェント
		(11) 楽器練習者の楽器練習者による楽器練習者のための「弾いてみた動画」順位付け手法

2日目:2017年3月11日(土)
	10:00 ‒ 12:05 【セッション4: 支援】
		(12)Lifestyle Agent:生活習慣管理の意識付けを支援する対話システム
		(13)容易なLED点滅パターン生成を可能にした制御情報設定手法の提案
		(14)発表時における視線誘導システムの検討
		(15)日常生活に埋め込まれた無意識的音楽創作行為を利用した作曲支援の試み
		(16)対戦型格闘ゲームの観戦支援システムの試作と評価
	13:00-14:15 【セッション5:影響】
		(17)サッカーのネタバレが観戦者の態度に及ぼす影響
		(18)特定文字列を用いた周辺視野における知覚的鋭敏化の特性解明
		(19)Relation between facial expression and user described episodic memory timeline
	14:25-15:15 【セッション6:報告】
		(20)欧州のシリアスゲーム状況報告
		(21)EC42第10回のメタ研の報告
プログラムは上のようなもので、いかにもEC研、という感じである。 基本的なキーワードとして「コンテンツ次第」ということになるらしい。 1件目はHMDを装着したユーザをその隣にいる説明員が誘導する、という中途半端な状況での研究で、それなら説明員アバターをVR空間内に出せばいいのでは、と思った。 2件目は、HMDにleap motionを付けて左手のジェスチャを認識しつつ、右手の小型プロジェクタで投影した映像をVR画像に重畳させてそこをポインティングする、というものだった。 コメントとして発言したが、Myoをはめて空間内に方向ベクトルを指定して、筋電の力によってロッドアンテナのようにびゅーっと方向ペクトルが伸びれば任意の奥行きにポインティングできるのでは・・・と言ったものの、今の若者は「ロッドアンテナ」を知らないのだった(^_^;)。 3件目はHMDを装着した体験者の「VR酔い」を低減させるための研究で、狭い範囲を実際に歩き回らせて、歩行領域の限界まで来ると自然に戻る方向に回転を誘導する・・・というものらしいが、どうもピンと来なかった。 VR空間内で計45メートル歩く、というタスクで実際に体験者は合計45メートル歩いているが、頻繁に方向転換させているらしい。 4件目は現実空間の風景にARで落書きしてそれを公開する・・・というものであった。 落書きを描く人は現場に行け、というのは賛成できるものの、「見る」方についてはGoogleMap/StreetViewで世界的に公開して鑑賞できる方が、僕としては絶対にいい、と思う。

午後に入り、5件目は招待講演「声優、アニメに対する日本の非常識、世界の常識」(堀川りょう)とのことだが、僕は誰だか知らなかった(^_^;)。 解説によれば「本招待講演では、ドラゴンボールZのベジータ役、名探偵コナンの服部平次役など数々の人気アニメ作品で知られる声優の堀川りょう氏に日本を代表するエンターテイメントであるアニメの声優の実態についてお話頂きます。日本のエンターテイメント業界での声優の地位や知名度は、俳優や歌手、アイドルに対し著しく低く扱われおり、アニメは映画やテレビドラマに比べて子供向けのものであるとされることが少なくありません。また、アニメそのものもカルチャーの扱いでなく、サブカルチャーの扱いを不当に受けています。しかし、世界での評価は全く異なります。世界での日本の声優の地位、知名度は、ハリウッド映画スターに匹敵します。同時に世界では、日本のアニメはハリウッド映画と同等の文化としての評価を受けており、立派な日本のカルチャーとして受け入れられています。既に『アニメ』という単語は日本制作のアニメーションという独自の意味を持つ英語として使われており、日本以外の世界中の人に共通の認識を持たれています。アメリカでは、アニメコンベンションという日本アニメの愛好家のお祭りが年間400回も行われており、最大規模のL.A.のアニメエキスポには、6万人弱の来場者を集めるほどの盛り上がりを見せています。 本講演では、以上のような海外でのアニメ作品の人気の広がりやアニメをとりまく実情を始め、声優になるためのレッスンの方法や、日本人の日本語の聴取や発話の秘密などの知見を共有頂きます。エンターテイメントと科学のコラボレーションを目指す堀川氏が見る日本のアニメの未来についてご講演頂きます」とのことだった。 ドラゴンボールもコナンもその名称しか知らない僕にとって、会場の熱気はちょっとだけ違和感があった。

この後のセッションは質疑にもがんがん参加していたので記述は最小限である。 6件目は「IOブラシ」に似たもので、カメラで取得した現物の視覚的テクスチャを使って描画する、というものだった。 7件目はHMDに光学センサを取り付けて「噛みしめる力」を検出する、というものだった。 噛むと言えば筋電を使えば・・・とも思ったが、けっこう触ってみると下顎のあたりがかなり飛び出るのだ、と分かった。 8件目は津田塾大の女子学生2人による力技の力作で、2種類の飲み物をミックスして吸う、という巨大な「ChanJar」という「飲み物ミックス比率スマホ可変ボトル」という作品であった。 9件目は「調理行動からの個性抽出」というのをGoogleグラスで収録する・・・というようなものだったが、なんとも縁がないのでスルーモードである。 学生が調理する典型的なメニューとして「野菜炒め」「チャーハン」ということで、聞いていて腹が減ってきた。 10件目は多人数会話の視線などをVR空間で実現するというもので、これはなかなか僕にとって遠いお話だった。 機械学習ってのは昔から変わっていなくて、HMMなんてのはもう20年前のデジャヴである。 11件目は自分の実力のちょっと上の「演奏してみた」動画を提案する、というものであった。 音楽的・個人的には賛成しかねるものである。 さらに何故か翌日に予定されていた15件目があったが、元々のプログラムに対応して予定があったので退席した。

2017年3月11日(土)

前夜の盛り上がり から疲労感とともにスタートした、EC研究会の2日目である。 12件目は対話的なアプリで生活と習慣病の予防として生活習慣を改善させる・・・というものだったが、こんな甘い対話で生活習慣は改善されないのは誰でも知っている。 13件目はLEDイルミネーションの制御にスマホのフラッシュを当ててLEDを光センサとして受光して次に発光する・・・というちょっと謎なものだった。 14件目はプレゼンの発表者が会場に目線を投げることを支援するというもので、会場内に5箇所のスマホ台があり、発表者の顔の向きをKinectで取得して、その方向のスマホ画面が赤くなる、という面白いものだった。 まぁ、テレビの収録スタジオのテレビカメラ上のランプみたいなもののようだ。 16件目は対戦型格闘ゲームの観戦支援システムという、まったく馴染みのない(興味のない)話題だった。 対戦している2キャラの横方向座標から「様子見」・「一触即発」・「チャンス」・「!」という文字を表示するというものだったが、臨場感から言えば実況アナウンサーの声の方がいいのでは、と思った。

午後になって17件目は「サッカーのネタバレ」の影響についてのものだった。 確かに、スポーツの録画をネタバレ状態で見るのはあまり面白くない。 18件目は「周辺視野」と「知覚的鋭敏化」という2つの概念をミックスした研究である。 僕は右眼が緑内障で左上の視野が見えないので、この実験だと両眼でないと出来ないことになる。 文字列を削って簡略化した・・・という部分がよく分からなかった。 19件目はKinectを使って表情(感情)を読み取るシステムのようだったが、なんせ英語での発表なので沈黙を守った。 20件目は自分の発表、というか報告の「お話」である。 21件目はEC研名物の「メタ研」の報告だった。

2017年3月17日(金)

早いもので、またまた週末である。 今週は、上記の先週末の慶應日吉への出張の疲労も抜けぬまま、日曜日には後期入試鉛筆デッサン実技試験監督(3時間半)があり、月曜日にはいまいちな体調を心配して耳鼻科の主治医に行って薬を処方してもらって今週中飲み続けている。 火曜日には卒業式呼名リハ、そして水曜日には 卒業式2017 があった。 去年はたまたまゼミ4回生がいないチャンスを生かし卒業式を欠席して仙台での 知覚コロキウム に参加したが、今年は久しぶりに「ホテルオークラから一歩も出ない10時間」という1次会2次会3次会を堪能した。 そして昨日の木曜日は前夜のダメージ回復日となったが、この月〜木の期間に8月のiCREATe2017への論文応募、6月の時間学会大会への発表エントリー、などを完了させた。 昨日はICEC2017に提案していた Tutorial Workshop案 について「採択」の連絡が届き、無事に開催できることになった。 パリのICEC2009で、僕のTutorial Workshopに受講者として参加したDenisとこれまでに展開された付き合いを思えば、またここで参加者と新たな展開が期待できそうだ。(^_^)

6月の時間学会(山口学芸大)にはエントリーしたものの、まだその前週の日本音楽知覚認知学会(日大江古田)と、翌週の音楽情報科学研究会(音学シンポジウム)(お茶女)については、エントリーするかどうか、敢えてちょっと躊躇している。 このところ、あれこれヤフオクでヘンなものを仕入れてきているが、これは新学期になってゼミがスタートしたら遊ぶ予定だ。 そして今日は午後の教授会しか予定がないので、ぼちぼち何か進めたい気分である。 当面、中途半端に残っていたのは、 Max7日記part5 の「2017年2月9日(木)」と「2017年2月16日(木)」と「2017年2月17日(金)」でチラッと再開していたTWE-Liteである。 その最後のところのメモをここで再掲すると以下のようなものだった。

そして、part6となったこの日記の上の方、「2017年2月24日(金)」のところで、 このように 上記の最後の2項目だけは確認できていたのだった。 たった3週間前であるが、そこから今日までに学会発表3連発(音情研・宮古島EMM研・EC研)、いやいや物凄く「濃い」日々を乗り越えてきたものである(^_^;)。
そして今朝、目覚めた時に思いついたのが、「後回し」と考えていた「シリアルドライバVCPのバージョンを下げるという最後の手段」なのだった。 もちろん、現役のお仕事Mac miniやMacBookAirを「下げる」のは避けたいが、考えてみれば1106研究室には、かつてゼミ学生有志が希望して「iPhoneアプリ開発の勉強会」をやった時に当時のXcodeまで入れた「見ざる」「言わざる」「聞かざる」と名付けた3台のMac miniが眠っているのである。 おそらく当時のバージョンのVCPが入っているので、案外、これでそのまま行けるのでは・・・というアイデアなのだ。

・・・そしてここから、午前〜昼休み〜3限のあたりにかけて、上のように苦闘が始まった。 まず、久しぶりに立ち上げたMac miniの時計は1970年になっていたのを2017年にする事から始まり、Firefoxを36から49に上げたら「Mac OSX10.7.5はサポート外です」と冷酷に告げられた。 ちょうどこのOSに対応しているVCPは、最新から下げて欲しいと書かれていた2.18だったのでベストだったが、ここでハタと困った。 ツール「jenprog」を走らせるとrootのパスワードを聞いてくるのだが、もう完全に忘却の彼方で、「rootのパスワードが分からない」という致命的状況となった。 これでは何も出来ないのでネットで調べて、以下のような「忘れたrootのパスワードをリセットする方法」をゲットして、なんとか回復した。 忘れないようにここに整理しておこう。

そして次に直面したのが、上の画面にあるように「Segmentation Fault」というインテル系に固有の悪魔のエラーである。 これは、お仕事Mac miniでやった時にはまったく出なかったものであり、なんとも状況の違いが理解できない。 あと少しのところに近づいている気もするが、さすがに3週間前のレベルに戻っていないので、ここでピタリと止まってしまった。 4限には学部と大学院の教授会があって中断するので、とりあえずここまでの写真と記事を書いて、ターミナルに出ていた情報のうち重複する一部をカットして以下に置いておくことにした。
Last login: Fri Mar 17 11:31:34 on ttys001
bungei-kikazaru-no-mac-mini:~ nagasm$ ls
Desktop		Downloads	Movies		Pictures	Sites
Documents	Library		Music		Public
bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
su: Sorry
bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
su: Sorry
bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
su: Sorry
bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
su: Sorry
bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
su: Sorry
bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
su: Sorry
bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
su: Sorry
bungei-kikazaru-no-mac-mini:~ nagasm$ 

(ここでrootパスワードを再設定)

bungei-kikazaru-no-mac-mini:~ nagasm$ su
Password:
sh-3.2# exit
exit
bungei-kikazaru-no-mac-mini:~ nagasm$ pwd
/Users/nagasm
bungei-kikazaru-no-mac-mini:~ nagasm$ cd $Home/bin
bungei-kikazaru-no-mac-mini:bin nagasm$ ln -s $HOME/TWESDK/Tools/jenprog/jenprog ./jenprog
ln: ./jenprog: Permission denied
bungei-kikazaru-no-mac-mini:bin nagasm$ sudo ln -s $HOME/TWESDK/Tools/jenprog/jenprog ./jenprog

WARNING: Improper use of the sudo command could lead to data loss
or the deletion of important system files. Please double-check your
typing when using sudo. Type "man sudo" for more information.

To proceed, enter your password, or type Ctrl-C to abort.

Password:
bungei-kikazaru-no-mac-mini:bin nagasm$ ls
[		dd		jenprog		mkdir		rmdir		unlink
bash		df		kill		mv		sh		wait4path
cat		domainname	ksh		pax		sleep		zsh
chmod		echo		launchctl	ps		stty
cp		ed		link		pwd		sync
csh		expr		ln		rcp		tcsh
date		hostname	ls		rm		test
bungei-kikazaru-no-mac-mini:bin nagasm$ jenprog -l
sudo: sorry, a password is required to run sudo
Password:
/bin/jenprog: line 79:   331 Segmentation fault: 11  $D/tweusb -l
bungei-kikazaru-no-mac-mini:bin nagasm$ cd $HOME/bin
-bash: cd: /Users/nagasm/bin: No such file or directory
bungei-kikazaru-no-mac-mini:bin nagasm$ cd /bin
bungei-kikazaru-no-mac-mini:bin nagasm$ ln -s $HOME/TWESDK/Tools/jenprog/jenprog ./jenprog
ln: ./jenprog: File exists
bungei-kikazaru-no-mac-mini:bin nagasm$ jenprog -l
/bin/jenprog: line 79:   347 Segmentation fault: 11  $D/tweusb -l

(ここからSegmentation faultの嵐)

bungei-kikazaru-no-mac-mini:~ nagasm$ jenprog -l
sudo: sorry, a password is required to run sudo
Password:
/bin/jenprog: line 79:   404 Segmentation fault: 11  $D/tweusb -l
bungei-kikazaru-no-mac-mini:~ nagasm$ jenprog -l
/bin/jenprog: line 79:   419 Segmentation fault: 11  $D/tweusb -l
bungei-kikazaru-no-mac-mini:~ nagasm$ jenprog -l
/bin/jenprog: line 79:   433 Segmentation fault: 11  $D/tweusb -l
bungei-kikazaru-no-mac-mini:~ nagasm$ 
bungei-kikazaru-no-mac-mini:~ nagasm$ ls -l /dev/tty.*
crw-rw-rw-  1 root  wheel   18,   2  3 17 12:52 /dev/tty.Bluetooth-Modem
crw-rw-rw-  1 root  wheel   18,   0  3 17 12:52 /dev/tty.Bluetooth-PDA-Sync
crw-rw-rw-  1 root  wheel   18,   8  3 17 12:54 /dev/tty.usbserial-MW8UKAW
bungei-kikazaru-no-mac-mini:~ nagasm$ ls
App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin	Music
Desktop						Pictures
Documents					Public
Downloads					Sites
Library						TWESDK
Movies
bungei-kikazaru-no-mac-mini:~ nagasm$ ./jenprog -t /dev/tty.usbserial-MW8UKAW App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin
-bash: ./jenprog: No such file or directory
bungei-kikazaru-no-mac-mini:~ nagasm$ jenprog -t /dev/tty.usbserial-MW8UKAW App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin
/bin/jenprog: line 53:   238 Segmentation fault: 11  PATH=$DIR:$PATH jenprog $*
bungei-kikazaru-no-mac-mini:~ nagasm$ ./jenprog -t /dev/tty.usbserial-MW8UKAW App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin
-bash: ./jenprog: Permission denied

(ここでディレクトリのpermissionを変更)

bungei-kikazaru-no-mac-mini:~ nagasm$ jenprog -t /dev/tty.usbserial-MW8UKAW App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin
/bin/jenprog: line 53:   285 Segmentation fault: 11  PATH=$DIR:$PATH jenprog $*
bungei-kikazaru-no-mac-mini:~ nagasm$ jenprog -t /dev/tty.usbserial-MW8UKAW
/bin/jenprog: line 53:   305 Segmentation fault: 11  PATH=$DIR:$PATH jenprog $*
bungei-kikazaru-no-mac-mini:~ nagasm$ ls -l /dev/tty.*
crw-rw-rw-  1 root  wheel   18,   2  3 17 12:52 /dev/tty.Bluetooth-Modem
crw-rw-rw-  1 root  wheel   18,   0  3 17 12:52 /dev/tty.Bluetooth-PDA-Sync
crw-rw-rw-  1 root  wheel   18,  10  3 17 13:28 /dev/tty.usbserial-AHY1AEC6
bungei-kikazaru-no-mac-mini:~ nagasm$ jenprog -t /dev/tty.usbserial-AHY1AEC6 App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin
/bin/jenprog: line 53:   322 Segmentation fault: 11  PATH=$DIR:$PATH jenprog $*
bungei-kikazaru-no-mac-mini:~ nagasm$ pwd
/Users/nagasm
bungei-kikazaru-no-mac-mini:~ nagasm$ 
デザイン学部と大学院デザイン研究科の教授会の合間にも「Segmentation fault」について考えていたが、そもそもこれは新しいプログラムを作っている時に、アクセス禁止領域などをポインタ指定したとかの違反(バグ)のエラーであり、既に完成しているツールを呼び出してこれを喰らったことは、ちょっと記憶にないのである。 ただしお仕事マシンの方では同じツールを呼び出して何も起きていないので、やはり「環境」ということになる。 これはもしかすると厄介かも・・・と暗雲が漂ったところでオシマイとなった。 続きを頑張るか、やはり王道の「MONOスティックにOTAアプリを書き込まなくてもTWE-Liteライタと結線すれば書き込みできる筈」という路線に戻るか、ここはちょっと悩みどころである。

2017年3月18日(土)

今日から世間は3連休らしいが、僕には関係ない普通の週末である。 昨日の謎の「Segmentation fault」に関しては、夜中に目覚めた時に「/bin に作ったシンボリックリンクをroot権限で消す」→「/Users/nagasm/Desktop/TWESDK/Tools/jenprog に移動する」→「そこにApp_Tag_EndDevice_Input_JN5164_OTA_2_0_1.bin を置く」→「そこで ./jenprog として実行してみる」という確認の作戦を午前4時に思いついたが、研究室に着いてやってみると、やっぱり「Segmentation fault」で駄目だった(^_^;)。

その後、スマホ疑惑から復帰した三浦弘行九段が3戦目も負けた、というニュースを追って、 「羽生が中盤で疑問手を指し、一時は1000以上三浦良しになる。しかし三浦が終盤で悪手、疑問手を連発しての逆転負け」という復帰第1戦の 羽生三浦戦、 「序盤三浦が優勢を築くが、それ以降三浦、先崎ともに疑問手を連発し、形勢が二転三転する。最後は三浦が理解不能な52銀不成、56桂馬、48歩と悪手を三連発して先崎勝利」という復帰第2戦の 先崎三浦戦、 さらに今回の「千日手の局面も+1000で木村優勢だったから実質4連敗だろ」という復帰第3戦の 千日手 の指し直しの 木村三浦戦 などの、特に後半になって異常に駄目な(不自然な?)負け方を見ているうちに時間が過ぎていった。 これぞ春休みの休日である。

2017年3月20日(月)

今日まで世間は3連休らしいが、僕には関係ない普通の祝日である。 宮古島「トマト」で19曲+15曲(重複なし)、歌舞伎町「ルクソール」で17曲、と今月に入ってムッシュかまやつを偲んで「我が良き友よ」からスタートしていたが、昨日の「まねきねこオフ」は先発隊ヒトカラ時間に稼いで32曲、となかなか充実した。 そして自宅に持ち帰って眺めようと思っていたTWE-Lite関係の文書(jenprog)の冒頭に、「まずPythonとPyserialをインストールせよ」と書かれていたのを発見して、今日は意気込んで研究室に出てきた。 土曜日に「駄目だ」と諦めて片付けていたMac miniをまた出してきて、以下のようにPythonとPyserialをダウンロードして、さらにインストールマニュアルによれば「Javaも必要」というので最新Javaも入れて、なんだかいつもの「環境設定地獄」の泥沼に片足を突っ込んだような感じになってきた。

そして以下のように、いろいろなエラーと戦いながらも無事にPythonをインストールして、ダウンロードした「pyserial-2.6」に移動して「python setup.py install」コマンドも無事に成功した。 エラーが一つもなく、さらにPythonインタプリタも無事に走った。 シリアルポートに入れたToKoスティックも認識できた。 ・・・しかし最後に、一昨日のおまじない「./jenprog -t /dev/tty.usbserial-AHY1AEC6 App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin」を入れてみると、やはり出た。 Segmentation Faultである。(^_^;)

Last login: Sat Mar 18 10:36:26 on ttys000
bungei-kikazaru-no-mac-mini:jenprog nagasm$ python setup.py install
/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python: can't open file 'setup.py': [Errno 2] No such file or directory
bungei-kikazaru-no-mac-mini:jenprog nagasm$ pwd
/Users/nagasm/TWESDK/Tools/jenprog
bungei-kikazaru-no-mac-mini:jenprog nagasm$ cd ..
bungei-kikazaru-no-mac-mini:Tools nagasm$ pwd
/Users/nagasm/TWESDK/Tools
bungei-kikazaru-no-mac-mini:Tools nagasm$ cd ..
bungei-kikazaru-no-mac-mini:TWESDK nagasm$ pwd
/Users/nagasm/TWESDK
bungei-kikazaru-no-mac-mini:TWESDK nagasm$ cd ..
bungei-kikazaru-no-mac-mini:~ nagasm$ pwd
/Users/nagasm
bungei-kikazaru-no-mac-mini:~ nagasm$ ls
Desktop		Downloads	Movies		Pictures	Sites		pyserial-2.6
Documents	Library		Music		Public		TWESDK
bungei-kikazaru-no-mac-mini:~ nagasm$ cd pyserial-2.6
bungei-kikazaru-no-mac-mini:pyserial-2.6 nagasm$ python setup.py install
running install
running build
running build_py
creating build
creating build/lib
creating build/lib/serial
copying serial/__init__.py -> build/lib/serial
copying serial/rfc2217.py -> build/lib/serial
copying serial/serialcli.py -> build/lib/serial
copying serial/serialjava.py -> build/lib/serial
copying serial/serialposix.py -> build/lib/serial
copying serial/serialutil.py -> build/lib/serial
copying serial/serialwin32.py -> build/lib/serial
copying serial/sermsdos.py -> build/lib/serial
copying serial/win32.py -> build/lib/serial
creating build/lib/serial/tools
copying serial/tools/__init__.py -> build/lib/serial/tools
copying serial/tools/list_ports.py -> build/lib/serial/tools
copying serial/tools/list_ports_posix.py -> build/lib/serial/tools
copying serial/tools/list_ports_windows.py -> build/lib/serial/tools
copying serial/tools/miniterm.py -> build/lib/serial/tools
creating build/lib/serial/urlhandler
copying serial/urlhandler/__init__.py -> build/lib/serial/urlhandler
copying serial/urlhandler/protocol_hwgrep.py -> build/lib/serial/urlhandler
copying serial/urlhandler/protocol_loop.py -> build/lib/serial/urlhandler
copying serial/urlhandler/protocol_rfc2217.py -> build/lib/serial/urlhandler
copying serial/urlhandler/protocol_socket.py -> build/lib/serial/urlhandler
running build_scripts
creating build/scripts-2.7
copying and adjusting serial/tools/miniterm.py -> build/scripts-2.7
changing mode of build/scripts-2.7/miniterm.py from 644 to 755
running install_lib
creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/__init__.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/rfc2217.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/serialcli.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/serialjava.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/serialposix.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/serialutil.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/serialwin32.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
copying build/lib/serial/sermsdos.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools
copying build/lib/serial/tools/__init__.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools
copying build/lib/serial/tools/list_ports.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools
copying build/lib/serial/tools/list_ports_posix.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools
copying build/lib/serial/tools/list_ports_windows.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools
copying build/lib/serial/tools/miniterm.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools
creating /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler
copying build/lib/serial/urlhandler/__init__.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler
copying build/lib/serial/urlhandler/protocol_hwgrep.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler
copying build/lib/serial/urlhandler/protocol_loop.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler
copying build/lib/serial/urlhandler/protocol_rfc2217.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler
copying build/lib/serial/urlhandler/protocol_socket.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler
copying build/lib/serial/win32.py -> /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/__init__.py to __init__.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/rfc2217.py to rfc2217.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialcli.py to serialcli.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialjava.py to serialjava.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialposix.py to serialposix.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialutil.py to serialutil.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/serialwin32.py to serialwin32.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/sermsdos.py to sermsdos.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools/__init__.py to __init__.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools/list_ports.py to list_ports.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools/list_ports_posix.py to list_ports_posix.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools/list_ports_windows.py to list_ports_windows.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/tools/miniterm.py to miniterm.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler/__init__.py to __init__.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler/protocol_hwgrep.py to protocol_hwgrep.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler/protocol_loop.py to protocol_loop.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler/protocol_rfc2217.py to protocol_rfc2217.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/urlhandler/protocol_socket.py to protocol_socket.pyc
byte-compiling /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/serial/win32.py to win32.pyc
running install_scripts
copying build/scripts-2.7/miniterm.py -> /Library/Frameworks/Python.framework/Versions/2.7/bin
changing mode of /Library/Frameworks/Python.framework/Versions/2.7/bin/miniterm.py to 755
running install_egg_info
Writing /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pyserial-2.6-py2.7.egg-info
bungei-kikazaru-no-mac-mini:pyserial-2.6 nagasm$ pwd
/Users/nagasm/pyserial-2.6
bungei-kikazaru-no-mac-mini:pyserial-2.6 nagasm$ cd ..
bungei-kikazaru-no-mac-mini:~ nagasm$ pwd
/Users/nagasm
bungei-kikazaru-no-mac-mini:~ nagasm$ ls
Desktop		Downloads	Movies		Pictures	Sites		pyserial-2.6
Documents	Library		Music		Public		TWESDK
bungei-kikazaru-no-mac-mini:~ nagasm$ cd TWESDK
bungei-kikazaru-no-mac-mini:TWESDK nagasm$ ls
000manifest	516x		MkFiles		Wks_MAC		Wks_empty	bin
514x		Documents	Tools		Wks_ToCoNet	Wks_libToCoNet
bungei-kikazaru-no-mac-mini:TWESDK nagasm$ cd Tools
bungei-kikazaru-no-mac-mini:Tools nagasm$ ls
ba-elf-ba2	jenprog		readme.txt
bungei-kikazaru-no-mac-mini:Tools nagasm$ cd jenprog
bungei-kikazaru-no-mac-mini:jenprog nagasm$ ls
App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin	jenprog.src					tweusb.src
jenprog						readme.txt
jenprog.app					tweusb
bungei-kikazaru-no-mac-mini:jenprog nagasm$ ls -l /dev/tty.*
crw-rw-rw-  1 root  wheel   18,   2  1  1  2001 /dev/tty.Bluetooth-Modem
crw-rw-rw-  1 root  wheel   18,   0  1  1  2001 /dev/tty.Bluetooth-PDA-Sync
crw-rw-rw-  1 root  wheel   18,   4  3 20 11:02 /dev/tty.usbserial-AHY1AEC6
bungei-kikazaru-no-mac-mini:jenprog nagasm$ ./jenprog -t /dev/tty.usbserial-AHY1AEC6 App_Tag_EndDevice_Input_JN5164_OTA_1_6_2.bin
./jenprog: line 53:   635 Segmentation fault: 11  PATH=$DIR:$PATH jenprog $*
bungei-kikazaru-no-mac-mini:jenprog nagasm$ python
Python 2.7.13 (v2.7.13:a06454b1afa1, Dec 17 2016, 12:39:47) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> exit
Use exit() or Ctrl-D (i.e. EOF) to exit
>>> 
[1]+  Stopped                 python
bungei-kikazaru-no-mac-mini:jenprog nagasm$ jenprog -l
-bash: jenprog: command not found
bungei-kikazaru-no-mac-mini:jenprog nagasm$ ./jenprog -l
sudo: sorry, a password is required to run sudo
Password:
./jenprog: line 79:   648 Segmentation fault: 11  $D/tweusb -l
bungei-kikazaru-no-mac-mini:jenprog nagasm$ 
こうなると、さすがに「お手上げ」である。 お仕事Mac Miniやお仕事MacBookAirの環境の一部を古いバージョンに落とすことはしたくないので、これはギブアップである。 2つのアプローチの片方が、これで完全に消えたことになる。 手持ちのToCoスティック/Monoスティック、計3本のうち、1本だけさぶろさんに「直接受信モード」にファームウェア変更してもらっていて、残り2本は購入時のdefault、という体制が、当面は確定した。 ちょっとヘコむ結果であるが、ここからは切り替えて「ToCoライタと結線してモード変更」というアプローチ1本に絞られたので、これを進めていくことになる。 ここらは解説本にはあまり書かれていないようなので、まだまだ茨の道である。

そして、改めて過去を発掘していくと、 日記part5 の「2017年2月9日(木)」のところで、過去に ここここここ で初めて触ってからジャンプして、さらに、「解説本とかを知らずに、おそらくTWE-Liteのサイトにある情報を発掘して解析を試みていたらしい」という上のパッチに再会した。 まずはこれを解説本に従って整理した、というのが以下であり、なかなか凄いところまで肉薄していたのだ、と驚いた。

日記part5 の「2017年2月9日(木)」のところは、直前にあったMDWワークショップでさぶろさんに書き込んでもらったToCoスティックがあったりしたが、まずはスタートラインに戻るとすれば、手元にあるTWE-Lite-2525AもToCoスティックも、いずれも購入時のdefault状態から進めるべきであり、しばし 日記part5 の「2017年2月9日(木)」の部分は飛ばしておくべきなのだった。 これで、解説本(2冊目のTWE-Lite-2525Aに対応した本)の「より細かい情報を取得する」に進めることになる。 そして今週中締切となっていた「ICMC2017(上海)」については、他に行くところがあるために断念バーグと決定して、応募しない事とした。

2017年3月21日(火)

世間の3連休とはちょっと違う休日を終えて新しい週である。 昨日の最後にライター「TWE-Lite R」とピンヘッダなどを机の上に出して帰宅して、いよいよ今日はまずハンダ付けからだ・・・と研究室に出てきたが、フトお仕事Mac miniのディレクトリ一覧を以下のように眺めていて、なんと「FTDIUSBSerialDriver_v2_2_18.dmg」というのを発見した。 これはたしか、過去のバージョンのFTDI VCP driversであり、このところ直面している問題(最新版のVCPに固有のバグ)に対して、この古いドライバにすれば解決する、というものである。

つまり、過去にはこれを入れていて、現在は最新の「FTDIUSBSerialDriver_v2_3.dmg」にしているのだが、古いやつも持っているのなら、一度、駄目モトでこの古いやつを試してみようか・・・と往生際の悪いアイデアが浮かんだのだ。 そこでFTDIのサイトに行ってみると、以下のように、OSXのバージョンとの対応としては、現在の10.11.6(El Capitan)に対応しているのは「FTDIUSBSerialDriver_v2_3.dmg」の方であり、ここに無理矢理に「FTDIUSBSerialDriver_v2_2_18.dmg」を入れるのは推奨されないのだった。

さらに、 日記part5 の最後のところで参照した Fixing FTDI InBufferSize for OS X をここで改めてじっくり読み直してみると、単純にv2.3を消してv2.2.18をインストールして再起動すればいい(元に戻すにはv2.2.18を消して再度v2.3をインストールして再起動)、というものではなかった。 なんと以下のように「Step 1」から延々と「Step 13」までの作業が必要で、その節々ではかなり強烈な(リスクの高い)操作も必要なのだった。

さすがにこれをやる、というつもりはない。 OpenBCIでリアルタイムストリーミングに挑戦するとなればこれをする事になるが、それはあくまで「v2.3」のバグが解決されなかった場合のことであり、いずれバグが解決されれば、そのまま最新のVCPで上記の超面倒な手続きは不要なのだ。 ここはさすがに「君子危うきに近寄らず」と決めた。

そしていよいよ、久しぶりにハンダごてを出して、上のように3枚あったTWE-Lite Rのうち、最初から完成していた1枚をそのまま残して、キットの2枚にそれぞれ、電源ジャンパ(USB/EXT)を取り付けて、さらにライタ部分の5ピンには、TWE-Lite-2525Aに合わせた太めのものと、TWE-Lite DIPに合わせた細めのものを取り付けてみた。 これを差し込んでその刹那的な接触で書き込みする、というのはちょっと不安だが、まぁやってみるしかない。 あれこれ回り道してきたが、ここから再開するのは ここ のあたり、ターミナルから「+ + +」を打つ、というところである。 整理しておくと、現状は以下のようになっているのだ。

そしてTWE-Lite-2525AのSETとGNDを繋ぐ小型スライドスイッチを付けて、TWE-Lite Rを繋いで、 ここ でやったように、再度やってみた。 すると、なんとも簡単に設定できてしまった(^_^)。 以下に、メモとして、その手順と注意事項を再録しておこう。

ということで、上のように、「無線タグアプリ」のMoNoStickと連続的に通信する、というTWE-Lite-2525Aが完成した。 動作の模様は このような 感じである。 あれこれ長い道のりだったが、出来てしまえばなんとも拍子抜けするほど簡単だった。 あとは検証として、ボタン電池でどのくらい寿命があるか、というテストをするとして、まずは今日は上出来である。

2017年3月22日(水)

とりあえず昨日、TWE-Liteについての懸案事項がひとつ解決したことで、当面の締め切り仕事としては、以下の3点だけが残っている。 ICMC2017(上海)については、応募中のNIME2017(Copenhagen)が採択されれば、あとSketching2017(Detroit)で今年の海外出張はほぼ打ち止めとなり(国内の国際会議はi-CREATe2017[神戸]とICEC2017[つくば]が目標)、NIME2017が駄目だった場合には9月にVS-Games2017(Athens)+ArsElectronica2017(Linz)にチャレンジするので、いずれにしても「ナシ」として不応募を決定していた。 しかし上の2件の締め切りが再来週、音情研はさらにその翌々週、ということでちょっと甘く見て(^_^;)、ここは去年の12月に秋月電子から仕入れていたブツで遊んでみることにした。 新しく始まったデザイン専門科目「インタラクティブプロダクト演習」で、非常勤の久世先生が秋月電子の「カラーセンサ」というのを紹介してくれて、それを購入した時に一緒に購入したままになっていた、以下の「光学式ジェスチャセンサ」モジュール、というものである。 I2Cインターフェースは別途としても、たった600円でどれだけ「光学式ジェスチャセンサ」出来るのか、これは興味がある。

I2Cというのはあまりちゃんとやった事が無かったものの、これも久世先生の紹介でがっちりマスターした「タッチセンサ」モジュールの例から、要するにセンサメーカが提供するArduinoライブラリをそのままブラックボックスとして使える、というのが救いである。 実際、このモジュールには、以下のようなI2Cインターフェースの基板も、ちゃんとサンプルArduinoプログラムも提供されているので、とりあえず動かしてみるところまでは行けそうなのだ。


タッチセンサの時には、センサメーカのサイトに行って、includeされているライブラリをゲットしてArduino環境に入れる必要があったが、今回のサンプルブログラムではincludeされているのは「Wire.h」という謎のヘッダファイルだけだった。 これを検索してみると、以下のように過去にいろいろと実験した多くのArduinoプログラムで参照されていて、どうもAVR社(ArduinoのCPU)が提供しているものらしい。 こうなれば、おそらく特に何もしないでこのArduinoプログラムはコンパイル出来そうである。

そしてここから、小1時間ほどかけて このように 簡単にArduinoとセンサモジュールとI2Cモジュールを搭載した基板を作って、まずはサンブルArduinoスケッチを試してみると、以下のようにアッサリと動いてしまった(^_^)。 動作の模様は このような 感じである。 なんせ600円なので仕方ないが、要するにRGBの色成分ごとに、粗い風景色サンプリング情報の差分を検出して、何らかのオブジェクトの存在とその移動方向を検出しているのだろう。 このサンプルのArduinoスケッチでホストのターミナルに返されるのは、「NONE」・「UP」・「DOWN」・「RIGHT」・「LEFT」の5種類の情報のようである。

ここまで来れば、いよいよホストをMaxとして料理していくことになる。 ここの写真 にあるように、Arduinoの周囲、3方向にこのセンサを付けるスペースを空けてあるのだが、同時にI2Cの3ポートを相手に出来るのかどうかは不明である。 まずはターミナルでなく、Maxにシリアルでセンサ情報を返したいが、これも9600からどこまで上げられるか、実験が必要となる。

そして10分ほどで、まずはこのサンプルArduinoスケッチからターミナルに送られていた情報をそのまま文字列として拡大表示する、という上のようなMaxパッチがあっさりと出来てしまった。 スピードは軟弱に9600のままであるが、動作の模様は このような 感じである。 これはゼロから作ればまたまた時間がかかるのだが、昨日まで取り組んだTWE-LiteのMaxパッチとserial受信文字列処理の部分がまったく同じ、ということもあり、アッサリと出来たのだった。 こういう相乗効果があるからこそ、Maxを使い続けるほど御利益があるのだ。(^_^)

そしてここに「正確な時計に影響を受け、周囲の時計が不正確になることを解明 - ウィーン大」というニュースが届いた。 ここ にある「Entanglement of quantum clocks through gravity」という記事で、Google翻訳だと「重力による量子時計の絡み合い」ということになる。 Google翻訳にabstractを食わせたところ、「一般相対性理論では、時空の画像は各ワールドラインに理想的なクロックを割り当てます。理想的には、これらのクロックによる重力効果は無視され、1クロックによる時間の流れは、近くのワールドラインに沿ったクロックの存在によって影響を受けません。しかし、一般的な相対性理論や量子力学の原理に従った物理時計のポインタ位置として、時間を操作上定義すれば、そのような画像はせいぜい便利なフィクションです。具体的には、一般相対論的質量 - エネルギー等価は、クロック間の重力相互作用を意味し、一方、エネルギー固有状態の量子力学的重ね合わせは、固定されていない計量背景につながることを示す。両方の原則がこの状況にあるという仮定のみに基づいて、我々はクロックが必然的に時間拡張効果によって絡み合い、結果的に単一クロックのコヒーレンスが失われることを示している。したがって、単一クロックで測定された時間は明確に定義されていません。しかし、時間の一般的な相対論的な考え方は、クロックの古典的な限界で回復される」となった。 さっそくfull paperをダウンして印刷してみたが、 このように たった7ページであるが、ICEC2016で毎日通ったあのウイーン大学、なかなかやるもんだ。 これは6月の時間学会大会までに、じっくり読んでみる必要がある。

2017年3月23日(木)

何も予定の入っていない日である。 明日も朝イチで研究室清掃(半年に一度のワックスがけ)の予定があるだけで他には何も予定が入っていない。 さらに週末の土日も空白、普段であればアカペラあたりに悪魔の囁きをするのだが、春休みで皆んな帰省/バイトでたぶん捕まらない。 こういう時こそ、新学期に向けて、あれこれ「仕込み」を進めるチャンスである。

一昨日のTWE-Lite、そして昨日のモーションセンサとArduinoづいているが、ちょうど9月のICEC2017に提案して採択されたTutorial WorkshopのネタがArduino関係なので、ここで最新の状況をチェックしてみよう・・・と「Arduino.cc」に行ってみると、なんといきなり上のようなのが出てきた。 どうやらArduino陣営も、mbed陣営のように「オンラインで開発」という方向を指向してきたようだ。 これはちょっと、チェックしておく必要がある。 ただしArduino IDEが、これまでのv1.6.13から最新は以下のようにv1.8.2になっていたので、まずはこのoffline toolをダウンロードして進めることにした。 昨日の続き、という楽しい実験がまだ残っていたからである。

そしてこれとともに、いつも出ては無視していたwarningに対応して、Max7もこれまでの「Max7.2.3」から以下の「Max7.3.3」に一気に上げてみる事にした。 相互依存の関係にある環境を両方とも一気に上げるというのは良い子にはお勧めしない禁じ手であるが、まぁ両方ともマイナーupなのでいいだろう、という甘い読みである。 489MBのダウンロードに10数分かかるので途中までは「Arduino1.8.2 + Max7.2.3」というつぎはぎになるが、果たしてどうなるか。

ArduinoとMax7とを組み合わせた実験では、通信速度やプロトコルが刻々と変わっていくので、混乱を避けるためには両者(Arduinoスケッチ・Max7パッチ)の名前を一致させておくのがbestである。 昨日の段階を確認しておくと、 motion_001 というのは、Arduinoスケッチは秋月電子から提供されているサンプルそのもので、Max7パッチはこれをArduino IDEの「シリアルモニタ」で見るのと同等にモニタするだけ、というものである。 まずはこれをduplicate/renameして「motion_001」として、差分としてはArduino〜Max7のシリアル通信速度を9600から115200にしたもので実験である。

すると最初のトライで、つまりArduinoに書き込んでMax7(まだ旧版の7.2.3)を起動しただけで、上のようにアッサリと成功してしまった(^_^)。 秒殺である。 ここでようやくMax7.3.3のダウンロードが終わったので、「replace」でインストール、動作確認して、次からは最新のMax7になった。 ここまでArduinoスケッチは全く手出ししていなかったので、この「motion_002」をduplicate/renameして「motion_003」として、今度はその中身をじっくり読みつつ、Max7との通信プロトコルを今後の拡張を視野に入れたオリジナルフォーマットに変更することにした。 そして、この motion_003 では、秋月電子のArduinoサンプルから冗長な部分を短縮しつつ、返ってきていた「NONE」・「UP」・「DOWN」・「RIGHT」・「LEFT」・「START」・「not found」というメッセージをそれぞれ「N」・「U」・「D」・「R」・「L」・「S」・「X」と1文字にしてみた。

ここでようやく調子が出てきたので、Max7とのプロトコルを「センサ側から垂れ流しに届くデータを受け取る」という方式から、Arduino2Maxでやっている「Max7から"r"(小文字)を受け取ったらセンサデータを返す」という方式に変更した「motion_004」に挑戦した。 そして上のように、この motion_004 によって、4方向それぞれに2進数の重み付けをして返すことにより、秋月電子の「上下左右」という4状態だけでなく、「上と右」のようなさらに4方向の「斜め」を検出することに、なんとか成功した。 動作の模様は このような 感じであり、Arduinoスケッチは以下のようになった。

#include <Wire.h>
#define APDS9960_ADR  0x39
#define APDS9960_ID   0xAB

unsigned char DATA_U,DATA_D,DATA_L,DATA_R,OLD_U,OLD_D,OLD_L,OLD_R,work;
unsigned char U_PEAK_END_FLAG,D_PEAK_END_FLAG,L_PEAK_END_FLAG,R_PEAK_END_FLAG;
unsigned char STATUS_UD,STATUS_LR,OLD_STATUS_UD,OLD_STATUS_LR,DISP_FLAG,DECIDE_FLAG;
unsigned char NOISE_LEVEL = 2;
unsigned int  PHASE_COUNTER,U_PEAK,D_PEAK,L_PEAK,R_PEAK;
unsigned int  result_data; // 0=none, 1=up, 2=down, 4=right, 8=left

void setup(){
  Wire.begin();
  Serial.begin(115200);
  work = I2C_READ(0x92);
  if(work == APDS9960_ID){
    I2C_WRITE(0x80,B01000101); //POWER ON<0>, GESTURE ENABLE<6>, PROXIMITY DETECT ENALBE<2>,AEN=0
    I2C_WRITE(0x90,B00110000); //Gesture LED Drive Strength 300%(max)
    I2C_WRITE(0xA3,B01100100); //Reserve0, Gain x8(11), LED Drive 100mA(00), Wait Time see under number
                               //111=39.2mS 110=30.8mS 101=22.4mS 100=14.0mS 011=8.4mS 010=5.6mS 001=2.8ms 000=0mS
    I2C_WRITE(0xA4,70);        //U MINUS OFFSET
    I2C_WRITE(0xA5,0);         //D MINUS OFFSET
    I2C_WRITE(0xA7,10);        //L MINUS OFFSET
    I2C_WRITE(0xA9,34);        //R MINUS OFFSET
    I2C_WRITE(0xAB,B00000001); //GIEN off<1>(INTERRUPT DISABLE), GMODE ON<0>
    RESET_VARIABLE();
  }
  result_data = 0;
}

void loop(){
  work = I2C_READ(0xAE);
  if(work != 0){
    DATA_U = I2C_READ(0xFC);
    DATA_D = I2C_READ(0xFD);
    DATA_L = I2C_READ(0xFE);
    DATA_R = I2C_READ(0xFF);
    if((DATA_U > NOISE_LEVEL) && (DATA_D > NOISE_LEVEL) && (DATA_L> NOISE_LEVEL) && (DATA_R > NOISE_LEVEL)){
      DATA_SYORI();
      PHASE_COUNTER++;
      DISP_FLAG = 1;
    }
    else {
      if(DISP_FLAG){
        DISP_FLAG = 0;
        if (Serial.available() > 0){
          if (Serial.read() == 'r') {
            Serial.print(result_data);
            Serial.println();
            delay (5);
          }
        }
      }
      RESET_VARIABLE();
    }
  }
}

void RESET_VARIABLE(void){
  PHASE_COUNTER = 0;
  U_PEAK = D_PEAK = L_PEAK = R_PEAK = OLD_U = OLD_D = OLD_L = OLD_R = 0;
  U_PEAK_END_FLAG = D_PEAK_END_FLAG = L_PEAK_END_FLAG = R_PEAK_END_FLAG = 0;
  STATUS_UD = STATUS_LR = OLD_STATUS_UD = OLD_STATUS_LR = 0;
  DECIDE_FLAG = DISP_FLAG = 0;
}

unsigned char I2C_READ(unsigned char REG_ADR){
  Wire.beginTransmission(APDS9960_ADR);
  Wire.write(REG_ADR);
  Wire.endTransmission(false);
  Wire.requestFrom(APDS9960_ADR,1);
  return Wire.read();
}

void I2C_WRITE(unsigned char REG_ADR, unsigned char DATA){
  Wire.beginTransmission(APDS9960_ADR);
  Wire.write(REG_ADR);
  Wire.write(DATA);
  Wire.endTransmission(false);
}

void DATA_SYORI(void){
  if (DATA_U > OLD_U){
    OLD_U = DATA_U;
    U_PEAK = PHASE_COUNTER;
    U_PEAK_END_FLAG = 0;
  }
  else U_PEAK_END_FLAG = 1;
  if (DATA_D > OLD_D){
    OLD_D = DATA_D;
    D_PEAK = PHASE_COUNTER;
    D_PEAK_END_FLAG = 0;
  }
  else D_PEAK_END_FLAG = 1;
  if (DATA_L > OLD_L){
    OLD_L = DATA_L;
    L_PEAK = PHASE_COUNTER;
    L_PEAK_END_FLAG = 0;
  }
  else L_PEAK_END_FLAG = 1;
  if (DATA_R > OLD_R){
    OLD_R = DATA_R;
    R_PEAK = PHASE_COUNTER;
    R_PEAK_END_FLAG = 0;
  }
  else R_PEAK_END_FLAG = 1;
  if(U_PEAK_END_FLAG && D_PEAK_END_FLAG && L_PEAK_END_FLAG && R_PEAK_END_FLAG){
    DECIDE_FLAG = 0;
    result_data = 0;
    if ((U_PEAK > D_PEAK) & (U_PEAK >= L_PEAK) & (U_PEAK >= R_PEAK)){
      result_data += 2;
      DECIDE_FLAG = 1;
    }
    if ((D_PEAK > U_PEAK) & (D_PEAK >= L_PEAK) & (D_PEAK >= R_PEAK)){
      result_data += 1;
      DECIDE_FLAG = 1;
    }
    if ((L_PEAK >= U_PEAK) & (L_PEAK >= D_PEAK) & (L_PEAK > R_PEAK)){
      result_data += 4;
      DECIDE_FLAG =1;
    }
    if ((R_PEAK >= U_PEAK) & (R_PEAK >= D_PEAK) & (R_PEAK > L_PEAK)){
      result_data += 8;
      DECIDE_FLAG = 1;
    }
    if (!DECIDE_FLAG) result_data = 0; // 0=none, 1=up, 2=down, 4=right, 8=left
 }
}
さて問題はここからである。 ここまで来るのは、ほぼ昨日の段階で想定内だったのだが、昨日の 実験基板ハンダ付け では、わざとArduinoをユニバーサル基板の真ん中に配置して、その片側にモーションセンサを置いた。 これは、ArduinoのアナログA4/A5の2ピンがI2Cに使われているのなら、あとA0/A1のペア、A2/A3のペア、ととりあえずあと2つのモーションセンサが同時にセンシング出来ないかなぁ・・・(このArduino NanoはさらにA6/A7まである!)という見立てだったのだ。 しかし、上記の秋月電子を元にしたソースには、どこにもArduinoのポート指定のような情報が見当たらないのである。 カットした元々のサンプルソースの冒頭にあったのは、以下の情報だけだった。
//AKIZUKI AE-APDS9960 GESTURE SENSOR SAMPLE PROGRAM 
//APDS9960 SCL = A5
//APDS9960 SDA = A4
//APDS9960 GND = GND
//APDS9960 VDD = 3.3V
//APDS9960 LED = 3.3V(47uF REQUIRE)
//USE 3.3V PWR or USE LEVEL SHIFTER
//NO INTERRUPT USE (THIS PROGRAM FORMED "DIRECT REGISTER ACCESS")

#include <Wire.h>

#define APDS9960_ADR  0x39
#define APDS9960_ID   0xAB
ここから、ソースの中に登場してきた Wire.h とか Stream.h とか inttypes.h とかを発掘して眺めてみたが、どうもArduinoの予約ピン番号には繋がらない。 こうなれば検索だ・・・と「Arduino I2C」で調べてみると、遂に Wire Library というページに到着した。 すると、ここには以下のような記述があり、どうやらI2Cの電気的インターフェースの都合で、全ての入出力ピンのペアがI2Cに使えるわけではなくて、ダブルの特殊なArduinoでなければ、I2Cは1ポートとなるらしい。

そして、もともとI2Cは多数のデバイスを接続してIDを指定してやりとり出来るインターフェースプロトコルので、それならこの1ペア(1ポート)のI2Cに複数のジェスチャーセンサを繋いでやろう・・・と考えて調べてみると、なんと 秋月電子のマニュアル には、「I2Cスレーブアドレスは7bit表現で0x39固定です」と書いてあった。 これは参った。 プロトコルとしてアドレス固定とは、なんとも秋月電子らしからぬ、高飛車な姿勢である(^_^;)。 昨日から比べたらずいぶん進展があったものの、ジェスチャ/モーションセンサの性能としてはまさにそこそこ「600円レベル」である、と判明したところで、どうやらこのセンサの実験は一区切りということになった。

そして、ここから今日の最初に気になっていた「ArduinoのオンラインIDE」について、上のようにアカウントを作るところからやってみたが、どうも画面のソースプログラムの薄ーい灰色が読みにくく、全体にもmbedに比べてなんとなくショボい事に気付かされた。 どうやら、まだまだ出来たばかりのところらしく、これからしばらくは様子見、という感じになりそうである。

2017年3月24日(金)

もう6-7年前、 ジャミネータと遊ぼう で多数のジャミネータを仕入れた頃からヤフオクをぼちぼち活用してきた(甲子園ライトスタンド のチケットもヤフオク)が、このところ、ちょっと「過度に」ヤフオクにハマっている。 今回のゼミ卒制で前澤さんの作品を支援するのにガラクタ類を仕入れたのもあるが、またジャミネータの出品連絡があって、2台を新たにゲットした。 もう講義で学生全員に提供できるくらいの台数になった(^_^;)。 以下の「脳波で動く猫耳カチューシャ」というやつも、ヤフオクで1円(+送料)でゲットしているので、新学期になってゼミが始まったら遊んでみるつもりである。

そしてこのところ、暇な時間に読んで(眺めて)いるのが、その名も「音楽の理論」という1955年の本であり、これもヤフオクで100円(+送料)でゲットした。 この本の凄いところは、一般の音楽理論書と違って、とにかく「上から目線」であることなのだ。 「このぐらいの理論が分かれば作曲なんてカンタンだ」とか「古今東西の名作曲家でもこのあたりを理解していない人は多い」とか、とにかく著者は何者なのか、と驚くべき高飛車で、一般の音楽理論書(教科書)のような謙虚さ・丁寧さは微塵もない。 Wikipediaで著者の 門馬直美 という人を調べてみると、案の定、作曲家ではなくて音楽評論家だったらしい。 ブラームスとベートーベンとブルックナーとシューマンと、要するにロマン派が好きだったらしく、これは「音楽の理論」の随所から漂ってくる。 この著者が主張している「理論」を、現代のJAZZ理論の言葉に翻訳したら面白いのでは、というのがポイントだ。 以下のようにこの本の「新版」というのが1998に出ているようだが、まぁ著者の亡くなる3年前だし、中身はクラシックなので、おそらく変わりばえしないだろうとこれは無視した。 そしてあまりに面白そうなので、Wikiの「共編」にあった「現代教科教育学大系 6 感性と芸術」(1974年)というのをAmazonで見つけて、199円(+送料)で注文してしまった。

その後、スマホ疑惑から復帰した三浦弘行九段の4戦目で、前局に続いて2局続けて 千日手 の指し直しで4戦目も負けた、というニュースを追って、 豊島三浦戦 の「先手番の自分が有利な局面を捨てて千日手を受けて、三浦に先手番をゆずり名誉回復のチャンスを与えるも短手数で快勝」という様子を追った。 これぞ春休みの平日である。
そして、新学期に向けて、学生ホールに掲示してもらう資料 を作成して教務学生室に届けて、その後は「音楽の理論」を最後まで読んだ(眺めた)ところで1日が終わった。 明日の晩には突発カラオフの予定も立ったことだし、まずまず充実してきた。 これぞ春休みの平日である。

2017年3月27日(月)

充実の週末(土曜には突発オフで5時間30曲、日曜には稀勢の里の逆転優勝に感涙)を経て、明日にはT○Y○T○中央研究所に最終meeting出張がある、まさに年度末の週のスタートである。 いよいよ来週にはICEC2017のpaper締め切りが迫ってきたが、さすがに去年のICEC2016でrejectされたそのままを出すのもナンなので、リベンジを兼ねて、敢えてそのネタ(VFB10)を継承することにして、今日からいよいよ実験開始の予定だ。

昨日はこのためにICEC2017のサイトに行くと、なんと ICEC2017WORKSHOPのページ が以下のように出来ていて、既に3件ほど中身が書かれていたので、慌てて名前と WORKSHOP特設ページ を作って事務局に知らせたところ、速攻で大会委員長の星野先生から「今日中にアップする」と返信が来た。 どうやらICEC2017事務局は既に全開モードで動いているらしい。

そして、ブンちゃんの卒業制作に使用したっきり箱入りしていたVFB10をしばらくぶりに出してきて、 このように 実験モードを3種類ほど作って、思い出しの時間を過ごした。 連続的に動作させると微妙にリニア振動子が熱くなるためか、どことなく焦げかけているような臭いがする事も思い出した。 動作の模様は このような 感じである。

上のように過去のモードのサブパッチと並べて新たなモードも包含するように作っているが、同時にパラメータを送ることはないので、これで十分である。 このページ の最初のところにある写真のように、今日は訳ありで早めに帰宅して、他に誰もいない留守番の自宅でハムスターの面倒をみた後は、たっぷり「ももクロDVDタイム」(全部合計すると8時間以上(^_^;))を満喫する予定なのだ。

2017年3月29日(水)

昨日は11時出発〜17時半帰着、という慌ただしい新幹線名古屋往復日帰り出張で、無事に長久手のT○Y○T○中央研究所での最終meetingを終えて、ちょっとだけ肩の荷が下りて浜松に帰ってきた。 晩にはちょうどサッカーW杯予選タイ戦があり、香川+岡崎+久保+吉田+川島の美味しいプレーを堪能しつつ一杯(正しくはn杯)やった。
そして今朝、研究室に出てくると、「NIME 2017 Papers and Posters」というタイトルのメイルが届いていて(そういえば昨日が論文審査回答日だったので日本では今朝なのだった)、その冒頭が「Dear Yoichi Nagashima, we are sorry to inform you that・・・」だったので、あぁぁこれは駄目だったかぁ、と思ったら、なんと「Dear Yoichi Nagashima, we are sorry to inform you that the notification of papers acceptance is delayed. It is expected that it will be sent on April 4. We apologize for the inconvenience.」というものだった。 「コペンハーゲンへの道」の結果は持ち越しである。(^_^;)

新学期に向けて、新しいデザイン学科の1期生がいよいよ3回生、ゼミの学年に突入するということで、教員間ではガイダンスに関するあれこれが水面下で行き来している。 僕は既に、1月末には こんな資料 を配布(学生ホールにて持ち帰り可能)していたが、これまでに新3回生のビジュアル・サウンド系の学生2人から(仮)ゼミ希望の面談のアポが入っていて、今日はその第1号として西村クンの来訪予定が午後にあるだけの日であり、上の「Vibrate_Motion003.maxpat」のように、一昨日に続いてVFB10の実験Max7パッチを鋭意、拡張していった。 ただしこれは実際に振動手袋を装着していないとピンと来ないし、月曜日の この動画 と外見上はまったく同じ風景しか撮れないので(^_^;)、記録としてはひたすらMaxのサブパッチを並べるだけになる。

ベースとなっているのは一昨日に実験したサブパッチだが、上の「random_worf_beat」では、10個のリニア振動子に対して、振動の中心周波数(最大レベルは150Hz)と、ランダムにそこから偏倚させる周波数幅(Hz)、ランダムにトリガする時間間隔interval(msec)とそれぞれON/OFFトリガする時間幅duration(msec)とを指定して、振動手袋のあちこちで色々にランダム駆動する、というものである。 なんといってもVFB10では10個のリニア振動子がそれぞれ別個に駆動できるところが「売り」なので、そこから面白い効果を体感したい・・・という狙いがあるのだが、これはどうもイマイチだった。

そこでこれを改定したのが、上の「circle_move_points」というモードのサブパッチである。 ここでは10個のリニア振動子のうち、親指の付け根に配置した1番を使わず、また手の甲の中心にある7番を回転の中心と見なして、その周囲にぐるりとほぼ円環状に配置された8個のリニア振動子を、ランダムでなく順に回転させるように駆動位置を変化させてみた。 パラメータとしては、「random_worf_beat」の4パラメータに加えて、回転の中心である7番を同時に駆動するかどうか、そして回転方向の変更(turnover)を追加してみた。 実験してみると、当初は同時に駆動した方がいいのでは・・・と思っていた中心の7番は「何もしない」方が位置の知覚には良好だったが、しかし単にそれだけであり、まぁ振動位置が回転しているのは実感できるとしても、これもそれ程、面白いものではなかった。

その後は、西村クンとのゼミ顔合わせ面談、そして研究室に膨大に溜まっていたCD-RやDVD-RやHDDなどの一部を整理・廃棄していたら1日が終わった。 断捨離もたまには必要だろう。 まだVFB10で「これ」といった面白い感覚が体験できていないが、これはもうしばらく、マルチチャンネルならてはの「何か」を求めるチャレンジを進めていきたい。

2017年3月30日(木)

ぼちぼち来週のICEC2017paper応募期限が近づいてきているが、まだpaperにするほどVFB10の画期的な活用法が見出せていない。 結果通知の遅れているNIME2017と違って、ICEC2017では既に提案したTutorial Workshopは採択されたので、最低限という意味ではこれでもいいのだが、やはり去年のリベンジでもあるので、なんとか頑張ってみたい。 毎日少しずつ実験を進める、というのには効用があって、一晩寝てみると新しいアイデアが浮かぶこともあるのだ。 午前中は昨日の続きの断捨離を進めたり、午後に新3回生の山本さんの相談アポが入ったりした(〜15時)が、新しい実験の作戦は立っているので、後日の発表の際に参照するためのメモがてら、ここに書きつつ進めることにした。

Computer Music関係で困った時のキーワードと言えば、なんといっても 音律ネタ に限る。 なんせ、聞こえない人には聞こえないのに、僕は聞こえるのだから、これは大いなる優位性なのだ。 そこで今日のVFB10実験のテーマは「純正音程」である。 ただし、リニア振動アクチュエータの最大効率振動周波数は、音楽的ピッチとは無関係に「150Hz」とされているので、音楽ピッチとは別に、150Hzを一つの基準として「純正音程」を(おそらく振動は耳でも聞こえるが)体感しよう・・・という作戦である。 平均律と純正律の完全5度音程の違いはとても小さい(1.955cent程度)ので、ここでは両者の違いの大きな「長3度音程」で比較してみたい。 必要とされる定数は、最大効率振動周波数「f0 = 150.0」および「s = 12乗根2」として、 ここ で30桁まで計算してみたが、以下のようなものとなる。

f1とf2は、中央に最大効率振動周波数150Hzを挟んだ上下に、「平均律長3度」音程を構成する2音を与えるピッチである。 f3は、f0から上に「平均律長3度」音程を構成する音を与えるピッチである。 f4は、f0から下に「平均律長3度」音程を構成する音を与えるピッチである。 f5とf6は、中央に最大効率振動周波数150Hzを挟んだ上下に、「純正長3度」音程を構成する2音を与えるピッチである。 f7は、f0から上に「純正長3度」音程を構成する音を与えるピッチである。 f8は、f0から下に「純正長3度」音程を構成する音を与えるピッチである。

そして、上のように、これまでの機能にさらに付加拡充した形の実験サブパッチを作ってみた。 確かに、耳で聴いて平均律長3度と純正長3度との違いは区別できて、振動でも同じように「唸り」の有無を体感できたが、振動子を1個ずつにして最も離したモード(親指の付け根と小指の付け根)にした時には、耳では分かるが振動体感ではあまり差が分からない、という事を発見できた。 ただし、まだちょっと「弱い」ので、これではICE2017のpaperにはまとめきれない。 今日はここまででギブアップなので、また明日まで一晩寝かせて、次の実験条件が思いつくことに期待しよう。

2017年3月31日(金)

年度末、まさにオーラスの日となった。 教員研究棟は閑散としていて、皆さん春の旅行モードのようだが、今週末と来週末ととりたてて予定のない、ちょっと緩んだ日々を過ごしている。 先週は某書き込みから突発カラオフ(30曲)が実現したが、毎週突発オフというのも芸が無いのでググッと堪えている。 午前中はマルチメディア室に行って、ヤフオクで新たに仕入れたジャンクのジャミネータ2台を格納して、明日にアポのあるOG野口さんの個展で作品「はやくスシになりたい」を展示する環境を検証したりして過ごした。

そして午後は、昨日に続いてVFB10の実験である。 さしたるアイデアを思いついた訳ではないが、線状に並んだリニア振動子を順に平行移動する感じでパラメータを送ったらどうなるか・・・というのをメモしてきたので、まずはここからである。 結局、上のように3列に分割して周波数スイープさせながら一部重複して移動する、というパターンを作ってみたが、これまた「それほど驚くこともない」という結果だった(^_^;)。 なんとなく密度の低い春休みにだらだらとMax実験するというのもオツなものだが、どうもいま一つ、ピリッとしない。 こういう時には敢えてちょっと離れるのが良薬なので、しばしVFB10を放置してみることにした。

2017年4月2日(日)

内需要感覚や意識/無意識という脳内プロセスに関わって約3年、自分のバイオリズムを客観的に知覚して眺められるようになってきた。 雨模様の天気もあるが全く冴えず、フェイクニュースに飽きて世界中がエイプリルフールを忌避した昨日は、「そういう時には何もしない」という達観で本当に何も進展させずダラダラと過ごして早めに帰宅した。 これが奏功したのか、昨夜のフィンランドでの世界選手権の羽生結弦の逆転劇が良かったのか、我が家は昨夜〜今日一杯がカレーの日となったからなのか、今日は朝イチから俄然テンションが上がり、午前中にはずっと棚上げしていた6月の日本音楽知覚認知学会春季研究発表会(日大・江古田)に、一気に発表申し込みを完了してしまった。 既に発表申し込みしてあった、翌週(山口)の 時間学会発表 ネタとも繋がり、かといってまだあまりハッキリと言えないという微妙な時期ではあるが、FMC3ネタと絡めて今回はこれで、というアイデアを思いついただけでも十分に冴えているのだ。

そしてさらに余勢を駆って、音知学会に参加とセットで今年の音楽情報科学研究会(音学シンポジウム)への参加応募をパスするとこちらもスッキリと判断して、さらに締め切りが近づいて半分諦めモードが漂っていたICEC2017へのpaper応募にも、俄然、取り組み始めた。 去年のリベンジでVFB10を絡める・・・という作戦がいまいちショボかったのをスッパリと捨てて、そういえばICECではまだだった、と気付いた禁断のスタジオレポート的ネタ(学生作品の紹介が中心)、という視界が開けてきたのも、内需要感覚的には納得の現象である。 というのも、2ヶ月ほど前からずっと続いていた右腕の疼痛(神経痛)が、まだまだ残っているものの、少なくともベクトルとしては僅かに「快方」に傾きを変えた極値というものをなかば無意識に実感した気付きが、おそらくその端緒なのだ。 この疼痛の遠因は、 OpenBCIの工作 の時に、元々は頭皮のジェル電極としてキットに提供されていた真鍮メッキのスチール電極を、上のようにスプリング剣山電極との接続用に活用しようと、その中央の穴をビスが貫通するまで「ぐりぐりと拡げる」という加工をしたからである。 なかなかに硬い多数の電極を、本来はちょっとした穴あけのためのドライバーセットの中の錐でこじつつ拡げたので、多数の作業の最後には相当な筋肉痛となったが、どうも筋肉断裂・神経痛というレベルまでやってしまったらしく、次第に疼痛が酷くなり、2ヶ月たっても続いていたのだ。

2017年4月3日(月)

たしか2年前の4月の前期初日に、申請していた学外研修制度のゼロ回答が届いて大変な思いをしたのだが、またまたそれは突然にやってきた。 特別研究3年計画の3年目として申請していた特別研究に「ゼロ回答」の通知が届いたのである。 まぁ、2000年の開学以来、毎年欠かさず、何らかの学内特別研究費を申請して採択されてきたというのもたぶん珍しいのだが、減額でもなんとかやりくり・・・と予定していた学会発表の計画は、とりあえず全て吹き飛んでしまった。
午後じゅうかけて、発表応募していた国際会議4件と国内の学会研究会2件について、発表取り消し連絡、予約していたホテルとフライトのキャンセル、などの連絡に追われて、結局、とりあえず今期は完全にゼロからの出発となった。 これでは3年計画の3年目が進められず、研究支援という意味では長期的視野に欠けた判断なのだが、まぁ経費をなにがなんでも削減したいという政治的な判断なのだろう。 こうなれば、ヒアリングの時に学長に指摘されたように、論文誌への投稿と科研費への応募、というあたりに地道に取り組むことになるが、バイオフィードバック関係のフィールドテストにもマイナスの影響があるので、さらにあれこれ作戦の立て直しが必要である。 やれやれ。

2017年4月9日(日)

今期の当初計画が全て吹っ飛んでから1週間であるが、開き直って地道に論文執筆に取り組み始めたのも束の間、 とともに新入生を迎えての 入学式 があり、翌日の ガイダンス で今年も「相談のアポを歓迎する」と言ったら、さっそく以下のように今週の予定はぎっしりになってきた。
2017.04.10(月) 10:30-12:00 3回生ガイダンス 387
2017.04.10(月) 12:45-13:45 井澤/他2人アポ
2017.04.10(月) 14:00-15:30 2回生ガイダンス 176
2017.04.10(月) 16:20-17:30 4回生ガイダンス 377
2017.04.10(月) 17:30-18:30 高林アポ
2017.04.11(火) 11:00-12:00 庵原/関口/他アポ
2017.04.11(火) 12:30-13:00 仁木アポ
2017.04.11(火) 13:00-14:00 児島/魚住/山下/山本アポ
2017.04.11(火) 15-17時 開学記念式典 176
2017.04.11(火) 放課後 アカペラ
2017.04.12(水) 前期開始
2017.04.12(水) 1限 「音楽情報科学」1
2017.04.12(水) 2限 ゼミ初日
2017.04.12(水) 3-5限 「メディア造形総合演習II」1
2017.04.12(水) 17:30-18:20 岩谷/他2人アポ
2017.04.12(水) 19時- 大学院新入生歓迎会 PUBLIC CAFE BAR PARK/ING
2017.04.13(木) 4限 デザイン学科会議
2017.04.14(金) 1限 「サウンドデザイン」1
それでも昨日は、アラペラの2人とサンカラマラソンで43曲を完走して、まずまず元気である。 今日はその休養日ということで、論文執筆の代わりにどこかで暇があったらやろう、と決めていた作業を行った。 既に過去のものとなっているGainerであるが、まだまだマルチメディア室にはGainerの絡んだセンサもあるし、動態保存作品ではMax7でGainerを使う必要があるし、何より手元にはまだ最後に買い占めた新品のGainerが30〜40個ぐらいあるので、これは必須なのだ。

やった事とは、 このようなライブラリ として、Gainerのモードのうち特殊な(使ったことがない)mode7とmode8を除外して、残りの6つのモードそれぞれに、シリアルポートとして「a」から「e」までの5種類、計30個のGainer利用テンプレートパッチを完備したのだ。 ずらっと並べると上のように壮観であった。 これで、とりあえず、ポストGainerとともに「温故知新Gainer」で遊ぶ環境もなんとか整ったことになる。 今週の「音楽情報科学」と「サウンドデザイン」の初日でマルチメディア室の環境がどうなっているか、そこから新たな対応が始まるが、まずは明日にギュッと詰め込まれた、2回生〜4回生のガイダンスが大きな最初の山場である。

2017年4月10日(月)

いよいよ本気の新学期モードでテンションが上がり、朝6時半過ぎには研究室に出てきた。 ヤフオクでゲットして昨日届いた、ちょっと怪しい海外製の「科学マジック」セットを持参したが、これは「脳波猫耳」と並んで、明後日のゼミ初日のネタである。 昨日までの新入生アポに加えて、さらに朝に届いていた2件5人の新たな履修相談アポを受けて、以下のように今日と明日はますます分刻みの日々となった。
2017.04.10(月) 10:30-12:00 3回生ガイダンス 387
2017.04.10(月) 12:45-13:45 井澤/他2人アポ
2017.04.10(月) 14:00-15:30 2回生ガイダンス 176
2017.04.10(月) 15:40-16:10 持田/井上/落合/嵯峨アポ
2017.04.10(月) 16:20-17:20 4回生ガイダンス 377
2017.04.10(月) 17:30-18:30 高林アポ
2017.04.11(火) 10:45-12:00 庵原/関口/關口/中島/山口アポ
2017.04.11(火) 12:30-13:00 仁木アポ
2017.04.11(火) 13:00-14:00 児島/魚住/山下/山本アポ
2017.04.11(火) 15-17時 開学記念式典 176
2017.04.11(火) 放課後 アカペラ
2017.04.12(水) 前期開始
2017.04.12(水) 1限 「音楽情報科学」1
2017.04.12(水) 2限 ゼミ初日
2017.04.12(水) 3-5限 「メディア造形総合演習II」1
2017.04.12(水) 17:30-18:20 岩谷/他2人アポ
2017.04.12(水) 19時- 大学院新入生歓迎会 PUBLIC CAFE BAR PARK/ING
2017.04.13(木) 4限 デザイン学科会議
2017.04.13(木) 18:00-18:40 石田アポ
2017.04.14(金) 1限 「サウンドデザイン」1
ネタとして見せる可能性のために、朝イチでopenBCIをかぶってみたら何も出てこなくて困ったが、 この日記のpart5 まで遡ってみると、なんと「openBCI専用USBドングル」というものが存在していた事に気付いて(思い出して)、USBドングルを発掘して無事に動作確認できた。 なんでも忘れてしまうので、備忘録としてこの日記にまとめておく意義を再発見した。

2017年4月11日(火)

昨日は怒涛のガイダンス日の合間に新入生の来訪アポがさらにどんどん入り、さらに最後にやってきたメディア系志望の3人にあれこれ秘蔵映像を見せていたら予定を1時間ほどオーバーした。 意欲と夢にあふれる新入生の熱い眼差しは美しく、本当に気持ち良いものである。 昨日を含めて今週の今のところの予定は以下のようなものだが、まだまだこれからも入ってきそうな勢いで、他に何も出来ない1日となりそうだ。
2017.04.10(月) 10:30-12:00 3回生ガイダンス 387
2017.04.10(月) 12:45-13:45 井澤/石川/石川アポ
2017.04.10(月) 14:00-15:30 2回生ガイダンス 176
2017.04.10(月) 15:40-16:10 持田/井上/落合/嵯峨アポ
2017.04.10(月) 16:20-17:20 4回生ガイダンス 377
2017.04.10(月) 17:30-19:20 高林/佐野/林アポ
2017.04.11(火) 09:10 事務局へ
2017.04.11(火) 09:30-10:30 4回生葦名アポ
2017.04.11(火) 10:45-12:00 庵原/関口/關口/中島/山口アポ
2017.04.11(火) 12:30-13:00 仁木アポ
2017.04.11(火) 13:00-14:00 児島/魚住/山下/山本アポ
2017.04.11(火) 14:00 検診予約
2017.04.11(火) 15:00-16:30 開学記念式典 176→301
2017.04.11(火) 16:45-17:45 萩本/他4人アポ
2017.04.11(火) 放課後 アカペラ
2017.04.12(水) 前期開始
2017.04.12(水) 1限 「音楽情報科学」1
2017.04.12(水) 2限 ゼミ初日
2017.04.12(水) 3-5限 「メディア造形総合演習II」1
2017.04.12(水) 16:45-17:30 ???
2017.04.12(水) 17:30-18:20 岩谷/他2人アポ
2017.04.12(水) 19時- 大学院新入生歓迎会 PUBLIC CAFE BAR PARK/ING
2017.04.13(木) 4限 デザイン学科会議
2017.04.13(木) 16:20-17:20 山下/他1人アポ
2017.04.13(木) 18:00-18:40 石田アポ
2017.04.14(金) 1限 「サウンドデザイン」1
2017.04.14(金) 18:00-18:45 橋本/長谷川/熊王アポ
明日にはいきなり1限から「音楽情報科学」、そして2限にはゼミ・・・と続いて、晩には大学院デザイン研究科の新歓がある。 院生・4回生・3回生の集う新生ゼミのスタートも楽しみだ。

2017年4月12日(水)

いよいよ前期初日となった。 昨日の夕方にも今日の朝にもさらに新入生のアポが舞い込み、遂に今週を溢れて以下のように来週にまでアポが入ってきた。 一方では、早くも新入生とのマラソンの予定が2件も決まり、例年になく充実の4月となってきた。 1限「音楽情報科学」はほぼ予定(予想)満員の約20人が集まり、今年の方針(錯覚ネタ、インタラクティブ)を伝えて「お気に入りの錯覚を5件」という宿題を出した。 さらにこの科目の学生からのリクエストで、今年も 音楽理論特訓講座 を行うことになった。 やる気があって明らかにレベルが年々上がっている学生を相手にできる、というのは大学教員冥利に尽きる。
2017.04.10(月) 10:30-12:00 3回生ガイダンス 387
2017.04.10(月) 12:45-13:45 井澤/石川/石川アポ
2017.04.10(月) 14:00-15:30 2回生ガイダンス 176
2017.04.10(月) 15:40-16:10 持田/井上/落合/嵯峨アポ
2017.04.10(月) 16:20-17:20 4回生ガイダンス 377
2017.04.10(月) 17:30-19:20 高林/佐野/林アポ
2017.04.11(火) 09:30-10:30 4回生葦名アポ
2017.04.11(火) 10:45-12:00 庵原/関口/關口/中島/山口アポ
2017.04.11(火) 12:30-13:00 仁木アポ
2017.04.11(火) 13:00-14:00 児島/魚住/山下/山本アポ
2017.04.11(火) 15:00-16:30 開学記念式典 176→301
2017.04.11(火) 16:30-17:45 萩本/山本/野々村/野澤/入戸野/富田アポ
2017.04.11(火) 放課後 アカペラ
2017.04.12(水) 前期開始
2017.04.12(水) 1限 「音楽情報科学」1
2017.04.12(水) 2限 ゼミ初日
2017.04.12(水) 3-5限 「メディア造形総合演習II」1
2017.04.12(水) 17:00-18:20 岩谷/坂/栗本アポ
2017.04.12(水) 19時- 大学院新入生歓迎会
2017.04.13(木) 昼休み 持田/井上/落合/嵯峨ランチミーティング
2017.04.13(木) 3限 M1馬ブン・アポ
2017.04.13(木) 4限 デザイン学科会議
2017.04.13(木) 16:10-16:50 山下/吉引アポ
2017.04.13(木) 17:20-18:00 提坂/桜木アポ
2017.04.13(木) 18:00-18:30 石田/大畑/紅林アポ
2017.04.14(金) 1限 「サウンドデザイン」1
2017.04.14(金) 昼休み 2年・田村アポ
2017.04.14(金) 18:00-19:30 橋本/長谷川/熊王アポ
2017.04.15(土) 某予定(^o^)
2017.04.16(日) 休養日(^_^;)
2017.04.17(月) 08:00-09:00 山川/南埜/新沼/増田アポ
2017.04.17(月) 09:30-10:30 山本/佐藤/横田/笹原/吉田アポ
2017.04.17(月) 2限 『Hello, Design展』設置
2017.04.17(月) 18:00-19:00 櫻井アポ
2017.04.18(火) 1-2限 ゼミ西村アポ
2017.04.18(火) 3-5限 『Hello,Design展』 瞑想空間
2017.04.18(火) 放課後 アカペラ
2017.04.19(水) 1限 「音楽情報科学」2
2017.04.19(水) 2限 ゼミ
2017.04.19(水) 13:00-14:00 村松/宮崎アポ
2017.04.19(水) 3-5限 「メディア造形総合演習II」2
2017.04.19(水) 14:50 軽音・縣アポ
2017.04.19(水) 3-5限 『Hello,Design展』 瞑想空間
2017.04.19(水) 18時 OG野口アポ
2017.04.20(木) 昼休み 高林/佐野/林/山本ランチミーティング
2017.04.20(木) 3-5限 『Hello,Design展』 瞑想空間
2017.04.20(木) 4限 学生委員会 304
2017.04.20(木) 18:00- 某会議(;_;)305
2017.04.21(金) 1限 「サウンドデザイン」2
2017.04.21(金) 3-4限 『Hello,Design展』 瞑想空間
2017.04.21(金) 5限 撤収
2017.04.22(土) 某予定(^o^)
2017.04.23(日) 休養日(^_^;)
そして2限のゼミでは、 このように 新しい顔ぶれとしてデザイン3回生の男子3人が加わることになり、ヤフオクで1円で仕入れた「猫耳脳波カチューシャ」を実験してみたところ、西村クンではうまく動かなかったが、なんと僕はアッサリと動かすことが出来た。 これは怪我の功名みたいなもので、幼児期に小児喘息に苦しめられた僕は、子供心に無意識に代謝を低下させて発作から逃げる術を体得していて、例えば脈をとってもらっている状態で「今から低下させます」と宣言してスッと脈拍を落とせる。 この「意識的に身体/精神をリラックスさせる無意識状態になる」というのをやったところ、脳波パターンが明確に変わったらしく、 このように ちゃんと猫耳が動いた。(^_^)

2017年4月17日(月)

もう新しい週である。 昨日までは上記の予定のように満載スケジュールをこなし、今朝は朝8時からアポのグループを迎えて、今日の夕方にアポがある最後のグループを前にして、既に47人の新入生が1106のノートに「一言決意」を書いていってくれた。 そして1106にはヤフオクで仕入れた多数の「USBコントローラ」その他が届いて、 このように 壮観な風景となった。 ちょっと思いついて、この日記の Part2の7月23日と7月26日 でやっていた事を拡充することにしたのである。

これらのコントローラの中には、インターフェースがUSBでないもの(ニンテンドー64用?)や、さらに何だか謎なコネクターのものもあるが、それはArduinoを内蔵してカスタマイズする、という上級技の教材に使い、Maxの「hi」オブジェクトでやりとり出来るものは中級の教材に使うためのインターフェースパッチを作る、という作戦である。 ブリズベンでのNIME2016でゲットしたこの技を、今年の前期には「音楽情報科学」の教材にしよう、ということなのだ。 過去には3種類それぞれ2個用のコントローラ、「ELECOM_small」・「JEDEL」・「LANJUE」というものを解読・開発した。 うち後者2種類は、OEMなのかブランドと形状は異なるものの、中身は同一である。

午後には月に一度の主治医巡り(長期服用薬の処方)の外出があったが、その合間にまずは既に接続成功しているELECOMのものから攻める事にして、割り当て番号の変更をするだけで、ほどなく4種類目の3個用「ELECOM_analog」と5種類目の2個用「HORI_mini」を完成させた。 その後、さらに6種類目の4個用「HORI_turbo」パッチを「HORI_mini」と同じ、と確認して作った。 さらに勢いを駆って、7種類目の「PS3用」という本物のゲーム機のUSBコントローラを解析して、遂に2個用「Playstation」まで完成し、ここまででコントローラは計17個にまで増えた。 「音楽情報科学」の受講者は20名を切るぐらいなので、いい感じである。 残りのUSBコントローラは全てそれぞれ違っているが、まぁ作戦としてはほぼ同様なので、この一部はゼミか講義の中で見せていくことにした。

2017年4月18日(火)

午前には新科目「領域専門演習」として、本ゼミとなった西村クンが来て、この前期に進めるプロジェクトに関して、またその他あれこれ、じっくりと話す時間となった。 その合間にも、さらに新入生2人の履修相談アポが明日に入って、これでなんと今年も新学期早々、計50人と話をすることになった。 そして午後イチで文化芸術研究センターに行って、昨日、機材を貸し出した デザイン学科・2/3回生有志による「Hello, Design展」 をザッと眺めて、さっそくWebに上げた。 自主予算での自主企画としては、まずまず頑張っていると思う。

そしてここからの午後、昨日の作業で最後に残っていた、ちょっと古そうな2種類それぞれ1個、さらに背面にまでコントローラの付いた最後の1個のうち、前者2種(いずれもELECOM)の「ELECOM_old」と「ELECOM_analog_old」を解読改良して完成させた。 これで計19個、最後に残ったHORIのPlaystation用の豪華版は、まずは明日のゼミで「ライブ解読」してみる事にした。 まずまずここまでは快調に来たが、USBでないコントローラの解析と改造はちょっとレベルが上がることになる。

2017年4月19日(水)

1限の「音楽情報科学」の講義に、ほとんど出来かけていたUSBコントローラを持っていって軽くデモったところ、なんとゲームおたくの学生から「ジョイスティックは『押し込む』というのもある」という指摘を受けた。 確かに、上下左右だけでなく押し込みが可能だと判明したので、2限のゼミに続いて3限には最後の新入生2人の履修相談をした後で、一気に全てのコントローラの改訂に取り掛かった。 こんな感じで頑張って なんとか以下のように、強烈にややこしい「HORI_special」というたった1個を除く9種類全19個について、 このようなパッチ を完成させて、それぞれの動作デモ動画を以下のようにYouTubeに上げた。 最初に作っていた「JEDEL」と「LANJUE」は同じである・・・と書いたが、実はコントローラの向こう側にある、人差し指と中指で押すボタンのコードがちゃんと逆になっていて、違ったものであるというバグも対応した。 見た目は地味だが、今後の「音楽情報科学」で活躍する筈である。(^_^)

ELECOM_analog_old.maxpat

ELECOM_analog.maxpat

ELECOM_old.maxpat

ELECOM_small.maxpat

HORI_mini.maxpat

HORI_turbo.maxpat

JEDEL.maxpat

LANJUE.maxpat

Playstation.maxpat

2017年4月20日(木)

新学期も2週目後半に入り、今日は昼休みに新入生某ランチミーティングがあり、午後に軽音顧問印のアポがあって4限に学生委員会、そして放課後(;_;)に某入試関係委員会があるだけ・・・という、かなり余裕のある日である。 毎日朝イチで2-3時間かけて前夜からのニュースチェックをしている2ちゃんねるニュースヘッドラインが以下のように何故か「Not Found」のままとなっている今日は、ネットサーフィン(死語)も出来ず、相当に充実した空き時間がある。 そこで、最後に残った1個のUSBコントローラ、どうもサッカーゲームに特化して色々とユニークなこれを解析してMaxパッチ「HORI_special」を作る、という様子をしっかりと同時記録していく事にした。

昨日、9種類のUSBコントローラ用のMaxパッチを作った時には、QuickTime7Proの「Movie Recording」ウインドウにロジテックのWebカメラ画像を表示させた状態で、デスクトップ全体の動き(そのQuickTime7Proのリアルタイムカメラ画像とMaxパッチの動きなど)をQuickTimeXの「Desktop Recording(1080)」で記録してYouTubeに上げた(HD表示オプションを1080にすると綺麗に見える)。 そこで今日も上のようにデスクトップ上にライヴカメラ画像のウインドウを開けてHORI_specialコントローラの細部を同様に追いかけようとしたら、Webカメラのフォーカスが異常に甘くて役に立たない事に気付いた。 仕方ないのでデジカメで撮った細部が以下である。


気付いたユニークな特徴としては以下のように、まず左側の十字カーソルとジョイスティックの位置が、普通のコントローラと逆になっていて「左右非対称」である。 いつもの感覚で操作したら絶対に混乱する。 さらにコントローラの裏側に、プッシュスイッチ(左側裏)とジョイスティックらしい棒(右側裏)もある。 これはいずれも薬指で操作することになる。 そして背面には3ステートのスライドスイッチ「DP」「LS」「RS」というのがある。 何のこっちゃ分からないが、この情報がホストに出るか、あるいはこの状態に応じてホストに出る情報(モード)が変化するか、という検証も必要になる。 そして最後に気付いたが、フロントの2つの大きなジョイスティック(プッシュスイッチ付き)のヘッドは、なんとサッカーボールの柄になっていた。 Maxの「hi」が表示したUSBデバイス名が「Soccer Controller 3 W」ということなので、完全にサッカーGame専用コントローラのようだ。


そして解析開始となった。 「hi」オブジェクトの出力に「print」を繋いで、Max Consoleウインドウを縦長にしてモニタしてみたところ、まず「刻々と出る情報は無い」と確認できた。 これは朗報で、他のコントローラ(プレステ用?)は刻々と同じデータでも送るタイプだったので、「route」オブジェクトでこれをフィルタリングする必要があったが、何もしないと何も出ない、というのはスッキリしていて解析しやすい。 さらに刻々と判明してきた状況のメモは以下である。

ということで、ウンともスンとも言わない「左側裏のプッシュスイッチ」を除いて、あっさりと1時間もしないうちに全ての機能が判明してしまった。 背面のスライドスイッチ「DP」「LS」「RS」の状態はホストに送られないので、この設定をしてからマニュアルでMaxのモードを対応させて切り替える必要があるが、要するに背面の右薬指ジョイスティック棒を、ユーザの好みで「左十字キー」または「左ジョイスティック」または「右ジョイスティック」のいずれかに重複して割り当て出来る、ということになのだった。

YouTube

ということで、上のように、最後の砦だったサッカー用(謎)Maxパッチ「HORI_special」も無事に完成した。 このHTMLも175KBとなり、これからの日々は論文執筆などが増えることもあるので、ここまでを区切りして「Max7日記」をオシマイにする事にした。 今後、「日記」シリーズが再開するかどうかはまったく未定である。
     →   再開しますた(^_^)

「日記」シリーズ の記録