つい先日Google+に「コミュニティ」機能が追加されました。 まず「Google+って何?」というところだと思います。ざっとこんな感じです。

  • 情報を発信できる
  • 人をフォローして投稿を読む事ができる
  • フォローを分類してサークルというグループを作る事ができる
    (他人には非公開)
  • サークル、人を限定した投稿ができる
  • イベント機能を使ってイベント開催を周知できる
    (Google Calenderにも反映される)
  • イベント中の写真を立てたイベントに紐づけてアップロードでき共有できる
  • ハングアウト機能を使ってビデオチャット的なことができる

「Twitter、Facebookと同じじゃん。」とお気づきかもしれません。そうですその通りです。ただし 投稿先を細かく設定できる 点が他のTwitter、Facebookとは大きく違うところだと思います。またイベント機能を使うと例えばパーティー、勉強会等の告知が簡単にできて、さらにハングアウトではストリーミングで映像の配信、音楽セッションができたりします。どのSNSよりも詳細な設定が可能なところが僕は気に入っています。

そして本題のGoogle+のコミュニティ機能。これは特定の人達とのコミュニケーションができる場です。サークルとの違いは、サークルは各個人の嗜好で人を追加して個人が個人の為にだけ作り上げるのに対して、コミュニティは個人の嗜好で参加することで人が集まるという違いがあります。そうGoogle+のコミュニティは学校の活動に例えるとサークルですね。(ちょっとややこしい。。。)

コミュニティの作成に関しては任意で「公開」、「非公開」の設定が可能、参加制限についてもオーナーの許可の有無の選択ができます。さらにコミュニティの中にもイベントも作れます。議論もしすいようにタグが用意されていて任意に設定できます。グループで集まって何かするには最適だと思います。例えば結婚式の二次会とかを想定すると、運営が1、2人なら連絡、意思疎通に問題ないのですが複数人になると集まるだけでも大変だと思います。それを、この機能を使って役割毎にタグを作成して問題が起こったらタグ付けをして議論・告知、アイデア出しもタグをつけて発言、また集まる日程はイベントで、といった感じで本来煩わしいやりとりをスマートに進められるんじゃないかな〜、と思います。

まとまりのないダラダラとした説明になっていますが「Google+コミュニティいいね!」とも言いたいですが、実は「Google+いいよ〜」ともいいたいのですf(^-^;)ということで、まだ使った事ない方は使ってみると心地の良いSocialな日々が送れる思いますよ〜

ちなみに、蛇足ですが僕はここにいます。

CoCo壱番屋 カツカレーチップス」(限定商品)です。

名前の通り、CoCo壱番屋のカツカレーの味がするチップスです。味の再現性が結構高いです。個人的にCoCo壱番屋のカレーって独特の味で、カレーというより「ココイチ」というジャンルを作ってもいいんじゃないか、って思ってる(もちろん悪い意味ではないですよ!)のですが、その味が再現されてておいしいチップスでした。もちろん単なるカレーの味ではなくて「カツカレー」の味の再現です。ちょっと感動しました。

ビールのお供に最適かな〜って思いました!限定商品らしいので、これを見かけたビール好きの方は一度お試しあれ〜!!

ふらっと立ち寄ったローソンで見つけた「とっておき宣言 シナモンロール」です。

経験からすると、コンビニに売ってるシナモンロールって菓子パンの亜種的な食感だったり、味が薄かったりでガッカリすることが多いので、そこまで期待はしてませんでした。しかしながら今回のはレベル高かったです。味もそこそこ濃く、日本的な甘さで、かつ菓子パンの亜種の域を脱していて、おいしかったですよ〜!! 「シナモンロールって甘過ぎるんでしょ??」って方にもお勧めできるんじゃないかな?って思いました。

ちょうど六本木にシナボン</a2>が再上陸したと聞いて(できるだけ美味しい)シナモンロールを望んでたところでしたのでとても満足でした。でも、やっぱり本物食べたいので今年中にシナボン行きたいな、って思っています。(改めて比べるとシナボンのシナモンのトップの砂糖の量が相当違いそうですねf(^-^;))

Web Music Developers JPのアドベントカレンダーの12月6日の記事です!

ネタはCanvasで作ったLCDディスプレイです。先日の「FMシンセサイザー」の部品の説明になります。

作り始めたキッカケ

「FMシンセサイザー作ったけど、なんか味気ないな。。。」と思ったところからで、 「デジタルシンセだからデジタルっぽく見せられるドットのLCDで雰囲気は出るんじゃない?」という短絡的な発想でした。 さっそく作り始めたのですが、ふと「文字のドットの位置ってどこから起こせば良いのよ??リファレンスどれにするの??」という疑問が沸き、 今度はこれ系の液晶が付いた機器を探したのですが最近って高性能なカラーか、 もしくは昔ながらの7セグの電卓の液晶ばかりでなかなか見つからず、 結構焦ったのですがゴソゴソ探したら、それこそリファレンスが出てきてホッとしました。

出て来たのはコレです。なんとも懐かしいYamaha MU2000です。 1999年に発売されたみたいです。MIDIファイルも引っ張りだして来て、 ひとしきり遊んでから作業続行しました。MU2000のお陰もありドットの文字を起こすのは短時間でできました。

本題の使い方

手順は簡単です。

(1) HTMLファイルにcanvasのエリアを作ります。(例:index.html)

<canvas id="canvasLCD"></canvas>

(2) 以下のJavaScriptを貼付けます。(例:main.js)

var lcd = new CanvasLCD('01');
lcd.init('canvasLCD', 'initialword', true);
  • 1行目
    - 引数はディスプレイの色のタイプです。
    - 01, 02, 03, 04, 05, 06 の6種類用意しています。(デモページに全種類出てます)
  • 2行目
    - 第1引数(canvasLCD)はHTMLで指定canvasのIDです。
    - 第2引数(initialword)は、最初のロゴ表示の直後に表示させる文字列です。
    - 第3引数(true)はロゴ表示をさせるか否かのフラグです。

(3) 文字をディスプレイに表示させる。

lcd.write2Display('lettersRL01', 'ABCDEFG');
  • 第1引数(lettersRL01)は文字をどう出現させるかです。3種類用意しています。
    - letters 指定された文字列を一度に表示
    - lettersRL01 指定された文字列を左から右に向かって表示させる
    - lettersRL02 指定された文字列を左から右に向かって表示させる
    - lettersRL01との違いは複数あった場合、複数行同時に表示させる点

基本的な動作はこんなところです。

ちょっと面倒ですが、こんなこともできます。

  • 表示できる文字数、行数も変更することが可能です。
    canvasLCD.jsの中をいじらないといけないのがイケてないです。すみません。
var digits = { 'x': 18, 'y': 2 }; // Line55: canvasLCD.js
  • 色の種類も追加することが可能です。canvasLCD.jsのcolorSetに追加すれば利用可能です。

感想

色のセットは数字の古い順から時代で並べてるつもり(確固たる根拠はなく感覚です)なんですが、並べて初めて気がついたのが「進化してるんだな〜」というところでした。lcdType: 04 は初めて見たときは「暗いところで見られていいね!」って昔は思ったのですが、最新の lcdType:06 と比べると、ギラつきが多くて(コントラストの設定ができる機器もありましたね)ちょっと見難いですよね。lcdType:06 はYamaha MX49だったり、Roland INTEGRA-7の色合いですね。(INTEGRA-7は背景がもう少し黒いかな。。) 目的だったデジタルっぽく見えるのも達成できたし(自己満足)、楽しかったし、比較もできたし、よかったな〜、と自己満足しています。

Web Music Developers JPのアドベントカレンダーの初日(12月7日)の記事です!

ネタは「WebAudioでVocalキャンセラー(簡単な方)」です。 Web Audio APIに組込まれていない信号処理だったので作ってみました。

遊び方

音楽ファイルを点線の中にドロップして音源をロードします。ロードが完了するとボタンが「START」に変わるので、それをクリックすると再生が始まります。Vocalキャンセルは「START」ボタンの隣の「Vocal OFF」をクリックすることでキャンセルされます。 青い(緑?)デカイ丸はDrag&Dropをブラウザがサポートしているかを示しています。黄色の場合はDrag&Dropはできないので、、、試せません。。。Chromeなら間違いなくサポートしていますので、Chromeでお試しくださいね。

原理

簡単な方のVocalキャンセラーなので簡単な原理ですw ステレオな楽曲のVocalは音像が中央に位置するように録音されています。このことを逆手にとってVocalのキャンセルを行います。LチャンネルからRチャンネルの差分をとる、ただそれだけで実現できてしまいます。 既にお気づきかもですが、この方法では以下の2点のデメリットがあります。 Vocalキャンセルを行った楽曲はモノラルになる ドラム等の音像が中央に位置している音もキャンセルさる 左右のスペクトル、振幅を見てVocalをキャンセルしつつステレオを保てるさらに精度のよい方法もありますので、実装すれば実現可能なんじゃないかな〜?と思いますが、今回は簡単な方でやっちゃいましたf(^-^;)

Web Audio APIで表現する

ポイントは1行です。js/basicSet.jsの49行目。

outLch[i] = outRch[i] = inLch[i] - inRch[i];

この1行がLチャンネルからRチャンネルの差分をとっている部分です。簡単ですよね? その他のWeb Audio APIの部分は、、、説明すると長くなりそうなのでまたの機会にしようかな、、、なんて思います。すみません。。。

その他

今回のスクリプト群を使うとDrag&Dropで音楽再生を始められるWeb Audio APIのアプリが簡単に作れますので、もしよろしかったらご利用ください!! Web Audio APIってクライアント側のJavaScriptで動作するのでサーバ側にJava、Perl、PHPとかミドルウェアは必要なく、クライアントにWeb Audio APIに対応したブラウザ(例えば Chrome !!)がインストールされてさえいれば音が鳴る仕組みですので公開は非常に簡単です。「音ネタをたくさん用意して試してもらいたい。」と思っても、楽曲等をサーバに上げる場合には必ず著作権の問題があって難しい、、、という時の解決策がコレかなって思います。ユーザー自身で音ネタを用意できるので、ユーザーにも楽しんでもらえると思います。 今回のスクリプト群の中の「js/fileApi.js」がDrag&Dropについて書いた部分になります。詳しくは「HTML5 FileAPI」でググると情報がたくさん出てきます。

さらに、今回の「Vocalキャンセラー」はjs/basicSet.jsの47〜54行目で実現しています。もし、その他の信号処理を書きたい場合はここに上書きすれば独自の信号処理を入れられます。 1点注意点としては、

outRch[i] = inRch[i];
outLch[i] = inLch[i];

のようにoutRch、outLchに信号を入れないと音は出ないので忘れないように気をつけてくださいね!