32
Androidで ボカロする 2014年1月10日 日本Androidの会 大和田健一

20140115 android controll evy1

Embed Size (px)

DESCRIPTION

Android でボカロする 2014年1月15日 日本Androidの会 定例会

Citation preview

Page 1: 20140115 android controll evy1

Androidでボカロする

2014年1月10日 日本Androidの会 大和田健一

Page 2: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

自 己 紹 介@ohwada

大和田健一日本Androidの会 横浜支部ファブラボ 関内 ときどき 電子工作

Page 3: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Robot Car

Page 4: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

eVY1シールド買いました

Page 5: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

スイッチサイエンス eVY1 Shield(1) USB MIDI デバイス(2) NSX-1 ( eVocaloid モード )(3) eVY1音源

http://www.switch-science.com/catalog/1490/

Page 6: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

ヤマハ NSX-1(1) General MIDI 音源(2) 歌う eVocaloid (3) 奏でる Real Acoustic Sound

http://jp.yamaha.com/news_release/2013/13102301.html

Page 7: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

鳴し方 その1PCからUSB経由でGoogle Chrome + Jazz-Pluginサンプルアプリ (1) 歌詞入力アプリケーション (2) 1トラックシーケンサ (3) 音声認識・発音http://yamaha-webmusic.github.io/nsx1-apps/manual/

Page 8: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

鳴し方 その2

Arduino からシリアル経由でサンプルスケッチ (1) かえるのうた:MML  (2) ふるさと:MIDI ファイル

http://www.switch-science.com/catalog/1490/

Page 9: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Androidから制御する

Page 10: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Android端末と接続するPC からUSB経由で

Android からUSB経由で

Page 11: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

参考アプリ1

http://yamaha-webmusic.github.io/nsx1-apps/manual/

Page 12: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Android アプリ1http://android.ohwada.jp/archives/4270

Page 13: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

(1) MIDI(2) USB MIDI(3) Android USB HOST(4) eVY1 Shield

必要な知識

結構 大変だった

Page 14: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

MIDI の基本8種類のメッセージ

8 : Note Off9 : Note OnA : Polyphonic Key PressureB : Control ChangeC : Program ChangeD : Channel PressureE : Pitch Wheel ChangeF : System Messages (可変長)

音を鳴らす止める

http://www.midi.org/techspecs/midimessages.php

Page 15: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

MIDI の基本Note On : 音を鳴らす

3バイト構成

status : 9 固定channel : 0-15 選択可note : 音階 ドの音=60velocity : 音の大きさ

Page 16: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

USB MIDI の基本4バイト構成

CIN : Code Index Number メッセージ種別cable : デバイス選択

http://www.usb.org/developers/docs/devclass_docs/midi10.pdf

Page 17: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Android USB の基本Android 3.1 以降 

フレームワーク ○ HID (キーボード、マウス) △ Mass Storage (SDカード) × アイソクロナス転送 (カメラ) 

低レベル 全てに対応 ( 頑張ってドライバ作れば )

Page 18: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Android USB APIUSB Host and Accessory

- Android Developer

http://developer.android.com/guide/topics/connectivity/usb/index.html

- UsbDeviceConnection- UsbConstants - UsbManager - UsbDevice

- UsbEndpoint - UsbInterface - UsbRequest

Android API Class

Page 19: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Android USB MIDI

https://github.com/kshoji/USB-MIDI-Driver

先人の知恵

Page 20: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Vendor ID : 10552Product ID : 258

Interface 0 Class : Audio Devices Subclass : Audio Control Protocol : None protocol (0)

Interface 1 Class : Audio Devices Subclass : MIDI Streaming Protocol : None protocol (0)Endpoint 0 Direction : OUT host to device Transfer Type : BulkEndpoint 1 Direction : IN device to host Transfer Type : Bulk

eVY1 Shield の USB インターフェース

Page 21: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

ch 0 : ボカロch 9 : パーカーション (GM)それ以外 : ピアノ (楽器の変更可)

eVY1 Shield の MIDI チャネル

Page 22: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

eVY1 Shield 歌詞の設定

http://yamaha-webmusic.github.io/nsx1-apps/specs/ANMW820A-001-10-j.pdf

Page 23: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Android アプリ2http://android.ohwada.jp/archives/428310インチタブレット

Page 24: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

自動演奏する

Page 25: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

参考アプリ3Arduino プログラム C言語ライク 

曲:かえるのうた形式:MML

Music Macro Language

http://www.switch-science.com/catalog/1490/

Page 26: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

Android アプリ3

MML = “CDEFEDC”;LYLIC = “かえるのうたが”;

Arduino プログラムをAndroid JAVA に移植

「C」Note On 60 (ドの音)「か」Phonetic symbols "k a"

簡単でした

http://android.ohwada.jp/archives/4176

Page 27: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

参考アプリ4Arduino プログラム C言語ライク 

曲:ふるさと形式:SMF

http://www.switch-science.com/catalog/1490/

Standard MIDI File

Page 28: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

楽譜と歌詞 SDF形式 (Standard MIDI Format) でハードコーディング JAVA の 64Kバイトの壁に (^^; -> ファイルにして外出し 

サンプルスケッチの理解 すなわち SMF形式の理解 難解だった (^^;

Arduino プログラムをAndroid JAVA に移植

Android アプリ4http://android.ohwada.jp/archives/4186

Page 29: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

SMF 形式

Head Chunk

Track Chunk

End of Track

Header

Message (可変長)

Delta Time (可変長)

Track Chunk

n個m個

全体 Track Chunk

Page 30: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

サンプルの SDF を再生する - furusato - We_wish_you_a_Merry_Christmas アプリ4との違い Arduino プログラム なし -> 未知の領域へ マルチトラック -> 同時演奏

Android アプリ5http://android.ohwada.jp/archives/4195

Page 31: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

横浜支部 活動紹介

最後に

Page 32: 20140115 android controll evy1

2014年1月10日 日本Androidの会 大和田健一

https://play.google.com/store/apps/details?id=org.ydeb.android.yokooto.handbell

横音ハンドベル横音 = 横浜支部 音部

https://play.google.com/store/apps/details?id=org.ydeb.android.yokooto.handbell2011w