2016年5月7日土曜日

キーレス・キーボード

長いこと告知くらいしかしてなかったBlog ですが、久しぶりに新規投稿です。

忘れている方も多いと思いますが、TETRASTYLE はインターフェイス・デバイスをつくるのが趣味です。

ときどき(Raspi のセットアップ中とか)、どうしても「普通のUSB キーボード」が欲しくなることがあるのですが、ちょうど持っているということはなく、、、

そこで、iPhone アプリでUSB キーボードが使えないかと、作ってみました。
BLE 通信で USB キーボードのキーコードを出力できるデバイスです。



構成は簡単
BLE 通信に Konashi 2.0
USB キーボード部に Newton Keyboard USB Converter のボードを使用しています。


UART を接続しただけ。

見た目に Newton 要素はなくなってしまいましたが、シリアル通信のキーコードがNewton Keyboard 互換。
要するに、これは「Virtual Newton Keyboard」なのです。




Konashi を使うと 6000円くらいかかってしまいますが、Koshian にすれば3000円くらいで作れるはず。

もし欲しい人いれば、コメントいただければ幸いです。

2013年11月13日水曜日

eVocaloid eVY1 シールド



YAMAHA のeVocaloid 音源を搭載したNSX-1 チップ、を搭載したSwitch Science 製 eVY1 シールドが発売されました。

iKero 推しの私としては悩ましいところですが、結局 MFT2013 の会場で購入しました。

自分用メモを兼ねて、いくつか分かった事/ハマった事をまとめます。

○どうやって制御する?
MIDI 準拠。Arduino から送り易いように、ボード上で UART TX ピン(D1) またはSoftwareSerial 用にD3 ピン の切り替えができるようになっている。

USB MIDI に対応しており、PC などのUSB ホスト機器から直接コントロールできる。
Web MIDI API を使用したサンプルがYAMAHA から公開されている。

MIDI は基本的に、3byte で1つのMIDI メッセージを形成している。
MIDI の解説ページは音楽作成ソフト視点のものが多く、実際にどういうバイト列が送られるのか、調べるのが大変だった。


○歌詞はどうやって送る?
MIDI の System Exclusive Message で歌詞を送る。歌詞は PA (Phonetic Alphabet) という書式で、PA およびSysEx の書き方は仕様書(このページの一番下のPDF)を参照。
(Switch Science のページにあるArduino 用サンプルコードもわかりやすい)

一度に持てる歌詞データは 128音まで(単位不明)。日本語の1つの音で1〜4Byte 使用し、音の区切り文字にも1Byte 使うため、30〜40音程度しか持つ事が出来ない。
→1曲歌うには、数フレーズごとに歌詞を送りながら演奏することになる?


○発音タイミングは?
NOTE ON メッセージを送る。
あらかじめ送った歌詞を順番に発音し、最後まできたら先頭に戻る。
1つ前の音に戻ったりは出来ない模様。

○同時発音は可能?
GM 音源との同時発音は可能。eVocaloid は単音のみ。

○電源は?
Arduino の電源ピン(5V-GND) から供給。USB MIDI として使う場合は、USB から供給。
USB MIDI が優先されるようで、電源だけを USB から供給し場合も、シリアルMIDI は受け付けない。

○音程はどうやって変える?
発音時のNOTE ON で指定 + ピッチベンド(Pitch Bend) コントロールチェンジで変える。
ピッチンベンドの幅(ベンドレンジ (Bend Range)/ピッチベンドセンシティビティ(Pitch Bend Sensitivity))も指定可能。

(eVocaloid は0ch)
NOTE ON    0x90, note, velocity
NOTE OFF  0x90, note, 0 (velocity = 0 の NOTE ON メッセージ)
または    0x80, note, velocity(本来のNOTE OFF メッセージ)

ピッチベンド 0xE0, LSB, MSB

※データはすべて 7bit なので注意。
8bit のように[ MSB ×256 +LSB]  ではなく、[MSB ×128 +LSB]  となる。

MSB LSB(HEX)  = MSB LSB (DEC)  = 符号無し整数 = 符号付き整数 = ベンド効果(%)
(7F  7F)  = (127 127) =  (16383) = (8191) = +100%
(40  00)   = (64  0 ) =  (8192) = (0)  =  0%
(00  00)   = (0   0) = (0) =(-8192) =  -100%

ピッチベンドは% で指定するので、実際にどれくらい音程が変わるかは、ピッチベンドセンシティビティに依る。デフォルトは2 (± 2半音 = ± 1全音 )。


ピッチベンドセンシティビティは RPN という方法で指定
(規定のCCメッセージを組み合わせて指定する)
CC#100 0, CC#101 0, CC#6 [ベンド幅], CC#38 0
でOK。
バイト列にすると
CC#100  0xB0, 100, 0
CC#101  0xB0, 101, 0
CC#6   0xB0,  6 ,  [ベンド幅]
CC#38    0xB0, 8, 0

[ベンド幅] は デフォルト値 2 (±2半音 = ±1全音)。12で1オクターブ。最大 24 (±2オクターブ = 4オクターブ) 

MIDI のNote No は 半音刻みになっているので、NOTE ON 60 から中間の音を出しながら、連続的に変化させたい場合

(Note No)
60 (ド) NOTE ON 60 + Pitch Bend 0 (%)
60.25 NOTE ON 60 + Pitch Bend [+0.25 / Pitch Bend Sensitivity *100 (%)]
60.5 NOTE ON 60 + Pitch Bend [+0.5 / Pitch Bend Sensitivity *100 (%)]
60.75 NOTE ON 60 + Pitch Bend [+0.75 / Pitch Bend Sensitivity *100 (%)]
61 (ド#) NOTE ON 60 + Pitch Bend [+1.0 / Pitch Bend Sensitivity *100 (%)]
61.25  NOTE ON 60 + Pitch Bend [+1.25 / Pitch Bend Sensitivity *100 (%)]
...
のように指定することができる。


これらを iPad アプリとして実装した結果
iKeromin ライクな制御(1本のスライダーで連続敵に音程をコントロール)ができました。




(以下のページが大変参考になりました)
http://www1.plala.or.jp/yuuto/midi/p0302.html
http://odasan.s48.xrea.com/dtm/wheel.html
http://www.geocities.co.jp/Hollywood-Miyuki/9008/basic/b_03.html



2013年10月30日水曜日

Maker Faire Tokyo 2013

(11/3,4) 今年はちゃんと参加します!
詳細は >> こちら

iKeromin の外部コントロール その3



iPad アプリ「iKeromin」(iKero, iKero sora) は、ケロミンからSin 波を出力し、音程を外部からコントロールすることができます。

専用ケーブルの作り方と注意点はその1, その2 に記載しています。
つづけて掲載する予定が、2ヶ月も間が空いてしまいました。

要するに、Sin 波を出せる装置であれば、どんなものでもコントローラになります。
(音量も調整が必要ですが)

Arduino できれいなSin 波をつくるのは少し難しいのですが、
試した所 Tone 関数(PWM 波) でも大丈夫でした。
出力電圧に関しては、あれこれ試した挙げ句、何もくわえなくても直結(iKeromin 接続ケーブル経由)でOKでした(5V 版のArduino Uno と3.3V 版のArduino Fio で確認)。

プログラムは Arduino IDE のサンプルにある

File > Examples > 02.Digital > tonePitchFollower
がそのまま使えます。

analogRead でセンサーを読んで、tone 関数で出力します。

int thisPitch = map(sensorReading, 0, 1023, 200, 1000);

のところでセンサー入力値と出力周波数の範囲を調整できます。
(上記は今回の動画で使用した値。スライド抵抗の入力範囲は0〜5V、出力周波数 200Hz 〜1000Hz(適当))


>>> ケロミン土下座キャンペーン中!!(11/2 追記) <<<

iKeromin の紹介を兼ねた演奏動画


演奏も山口の Mini Maker Faire で少しは鍛えられたでしょうか。


※Mic の入力端子に想定外の信号を入力する事になるので、iPad, iPhone にダメージが加わる可能性があります。この記事を参考にして機器を壊した場合、当方は一切の責任はとりません。

2013年10月27日日曜日

オシロとケロミン


iOS アプリの 「Oscilloscope」を購入しました。
PC 用のUSB オシロは持っているものの、Windows を起動するのが面倒なので、
コレとか、コレとか、検討していました。

iPad のCamera Connection Kit を接続する事で、
USB オーディオが使えるようになり、ステレオのLine 入力ができます。
今回は このためにコレを購入。

基準信号を入れて値を校正することもできるようですが、
描画が非常に早いので、波形を見てるだけでも楽しいです。

ケロミンとコケロミンを使って X-Y モードで遊んでみました。
きれいなサイン波です。

2013年10月10日木曜日

逗子メディアアートフェスティバル ZMAF2013

2013.10.5(土)〜6(日)
逗子メディアアートフェスティバル2013 に参加してきました。
昨年はDJGJ.jpの方に書きましたが、あちらは更新が滞っているので、こちらに。

今年はリアルタイムプロジェクションマッピング協会(リア協)  がグループに?
逗子小学校の第2音楽室をまるごとつかって、4チームの作品展示を行いました。
あれ? 誰もプロジェクションマッピングやってないような。

私は今回もケロミンで。
「ケロミンと Leap motion で何かやって」というネタ振りをされ、
しかしケロミンを装着した手はLeap に手として認識されず、、、

メインの来場者が小学生ということもあって、(どちらかというと、低学年〜未就学児が多かった?)「パッと見で面白い」に注力。

半球ドームの中を周回するケロミンを捕まえる、だけのインスタレーション(?)。
空中で手を握る事で捕まえられます(Leap Motion)。
捕まえたときに「チャリン」と音がして、PC の画面にケロミンが落ちてくるので、意外と楽しい。(先月流行った Cookie Clicker から来てるかも。)

大人向け?には iKeromin でフォロー。熱中する子供たちも。


「ケロミンをつかまえろ」というタイトルが良かったのか、部屋に入るなり「ケロミンどこ」「ケロミンってなに」っていう方がたくさん居ました。


Leap は使いどころが難しくて購入してませんでした(今回は借り物)。
実際使ってみて、以外と検出エリアが広いと感じました。
もうちょっと巧く設置できたかも。

ケロミン、2日間おつかれさま。



今回のプログラムは「バックエンド:Puredata &フロントエンド:Quartz Composer」コード1行も書いてません! 制作日数3日くらい。一番苦労したのはプロジェクタを微妙な角度で固定すること、、、

(10/14) Puredata のセミナー、まだ募集中です!


2013年8月29日木曜日

iKeromin の外部コントロール その2

「iKeromin 用・ケロミン接続ケーブルの作り方」の注意点です。

その1 に接続図、内部配線を示したので、ハンダ付けができる人であればすぐ作れると思いますが、、、

秋葉原などの電子部品店で売られている4極プラグは要注意です。

注意点1 プラグ自体の大きさ
注意点2 プラグの根元の形状

1の「プラグ自体の大きさ」これは単純に、ケース等に干渉しないか、ということです。
2の「プラグの根元の形状」これが厄介な問題です。

iPhone のイヤホンジャックはこのようなピンアサインになっていて、根元が Mic になっています。


プラグの根元が金属だと(普通はそうなのですが、、、)
iPhone 側の金属部分と接触し、ノイズになったり誤動作したりと、まともに使えません。

(アルマイト加工は本来電気を通しませんが、少しでもハゲていると流れます。)

(市販のコネクタは大きい。根元の金属部は4極目とつながっている。)

根元の金属部がiPhone 側と接触しない様、テープなどで絶縁すれば、とりあえずはOKです。Apple 純正品は根元部分は全てプラスチックになっています。


(左のL字は根元の金属部が小さいためOK/中央は根元の金属部が大きいためNG/右の白いのはApple 純正イヤホン、根元に金属部がない)


根元の金属部分が小さいものが欲しいという場合、ケーブルやヘッドセットとして売られているものを加工するしか無さそうです。製品を加工する場合、外見は4極でも、きちんと4本配線されていない場合が結構あります。

○実際試してみて、だめだったもの
・「aitendo」で購入した 4極ケーブル(3芯のものと4芯のものがある。根元の形状NG)
・「あきばおー」で購入した PineApple の 4極ケーブル(中は3芯でした)
・「イケショップ」で購入した4極の延長ケーブル(中は4芯だが、根元の形状NG)
・「三月兎」で購入したイヤホン分配ケーブル(プラグは4極ですが、中は3芯でした)
・100円ショップ(ダイソー・セリア)で購入した4極イヤホンマイクのコネクタ
 (片耳タイプは配線 NG、両耳タイプは根元の形状 NG)

これらは、本来の用途では大丈夫なのだと思います、、、


○大丈夫だったもの
RastaBanana RBHE115 4極の延長ケーブル

○大丈夫そうなもの (未検証)
ELECOM MPA-EHPS05 4極の延長ケーブル
audio-technica AT345iS 4極の延長ケーブル


試した機種は iPhone 4s / iPod Touch 5th / iPad mini です。独自調査のため、機種や個体によってはOK/NG が変わるかもしれません。(使っているうちにアルマイトがハゲてくるとNG になるかもしれません。)

安くつくりたい場合は、aitendo の4極ケーブル (これとは別に4極コネクタで3芯のものがあるので注意) を使用し、テープなどで根元を絶縁するのが良さそうです。

とりあえず、RastaBanana RBHE115 を使用して、こんな形にしてみました。
外装はダイソーのイヤホン分配器(ねじ止めなので加工が容易)




材料費は 600円くらい。
製作代行するとすれば 2,000円くらいでしょうか?


自分で作りたいけど自信がない、、、という方は、、、
「9/8(日)  ADK 勉強会(東京) #21 at 秋葉原」にご参加ください。
アダプタの材料費と・ADK勉強会の会場費込みで2000円。
参加希望の方は上記サイトで参加登録してください。


iKeromin の外部コントロール その1

iKeromin」は50音の音声を、音程を変えながら演奏することができる、iPad アプリです。(iPhone / iPod Touch 版「iKero」「iKero sora (無料版)」も同様)

特筆すべき点は電子楽器ケロミンと連動する「ケロミン・モード」。
音程のスライダーをケロミンの口パクによって動かす事が出来ます。

そのために必要な専用の接続ケーブルが、別売りのオプションとしてあったのですが、現在(2013/8) 品切れ中。この度、この専用ケーブルの配線図を公開する許可をもらいました。

まず、専用ケーブルを使用するときの接続図はこのようになります。



ケーブルの役割は2つ、iPad/iPhone のヘッドセット端子をマイク入力とスピーカー出力に分配することと、ケロミンの出力信号をマイク入力のレベルにあわせること。分岐だけなら市販のケーブルもあるのですが、信号レベルを合わせる部分がケロミン専用仕様になっています。

内部の配線はこのように。マイク入力側に、信号レベルを落とすための抵抗が入っています。スピーカー側はそのまま直結すればOK。



いかがでしょうか?

無理にケーブル型に作ろうと思わなければ、結構簡単です。
BOX型にしたり、スピーカーに組み込むなど、作りやすい方法で作成してください。




実際に自作する場合は、4極プラグについて、重要な注意点があります。 →その2へ


2013年7月10日水曜日

ケロミン☆カフェ


秋葉原にあるレンタル工作スペース「ナノラボ
工具が使えてドリンクバーもついて、2時間500円。
(工作しない場合は「休憩:350円」)

ADK 勉強会(東京) の定例会 (次回は7/15)でお世話になっております。
しばらく前からここに ケロミン(親)とコケロミンライムが居るのですが、、、

せっかくなので、iPad アプリ「iKeromin」(とスピーカー)を置かせて頂きました。
iKeromin は50音キーパッドとスライダーを使って、うたうように演奏できるアプリです。


歌うペースでキーを探しながら押すのはとても難しいので、
あらかじめ打ち込んだ歌詞をワンキーで送るモードがあります。

専用ケーブルで ケロミン、コケロミンと接続する事で、
スライダー操作をケロミンの口パクによって行う事が出来ます。
オーディオケーブルを使った非常にアナログな連携です。。

アプリだけで使うのも楽しいですが、ケロミンとの連携は新しい世界が開けます!
ぜひ、体験してみてください。

iPhone版「iKero」、iPhone版 無料アプリ「iKero sora」も出ました!
(iKero sora はあいうえおの母音のみのバージョンです)

2013年7月1日月曜日

フィジカルコンピューティング入門



昨年 Apple Store GINZA で行った「Arduino 入門」ハンズオンセミナーを、場所とタイトルを改め、開催致します。場所は渋谷のヤマダ電機のとなり、「プロミスプラザ(お客様サービスプラザ)」で行います。

無料のセミナーを行うためには、無料のスペースが必須でして、、、
なかなか面白い場所を借りられたと思います。
ですが、集客が、、、 場所のせいなのか、やはりこれが実力なのか。

1回目の内容は Arduino (昨年のセミナーとほぼ同じ)になります。
昨年より1時間長いので、PC 連携の説明を増やすのと、プログラミング未経験の方をサポートできるようにしたいと思っています。

タイトルは今後の発展(Pd on Raspberry Pi とか、Android の話とか)ができればなと。

初回の参加者には写真の「かわいいLED」をプレゼントしたいと思っております。
「Arduino 持参、PC 持参」と、参加のハードルがやや高めですがこの機会にぜひ、はじめてみませんか?

開催概要
日時:2013年7月6日(土) 13:30〜16:30 (13:00開場)
場所:渋谷プロミスプラザ 2F イベントスペース
詳細:http://dev.tetrastyle.net/p/seminar-shibuya-1.html
定員:8名(要事前登録)

申込:http://peatix.com/event/15563
   上記サイトより、無料のチケットを購入してください。

持ち物:Arduino本体、USB ケーブル、ノートPC