SlideShare une entreprise Scribd logo
1  sur  16
Télécharger pour lire hors ligne
楽しいロリコン
@toyoshim
ロリコン
BLOCKS:
ROLIのコントローラ(略し
てロリコン)
特徴
● 素はControl Changeを送るMIDIコントローラ
● 四角いパネルを任意に組み合わせてカスタマイズ
● LittleFootと呼ばれる言語でファームも書き換え可能
○ 任意操作に反応して任意メッセージを投げる
○ LEDも自由にプログラムで点灯
○ サンプルにはブロック崩しなどのゲームもある
開発環境
● The BLOCKS SDK w/the JUCE framework
○ C++ library for native (mobiles/desktop)
○ ホスト側アプリ+LittleFootコンパイル・転送
● Cycling ‘74 Max 7
○ visual programming
● BLOCKS Dashboard (macOS / Windows)
○ IDE & simple programming language/model
○ LittleFoot管理・コンパイル・転送
BLOCKS
Dashboard
Arduino的なノリでLittleFootで
作ったファームウェアをBLOCKS
に転送するアプリ
Web MIDIから使う方針
● LittleFootはBLOCKS Dashboardから書き込む
● Web MIDIからLittleFootにメッセージを送り制御
プロトコル調査
● SYSEX
○ 基本的な部分はSDKなどから窺い知ることができるが詳細が未公開で辛い
○ プロトコルは秘密ではないが将来変わるかもしれないとの事だが ……
○ Web MIDIから使うためにSYSEXの詳細を調べてみた
● 調査方法
○ macOSからBLE MIDIをアドバタイズ
■ Lightpad Block TESTという名前を仕様(本家の末尾 4Bはシリアル末尾)
○ iPhoneアプリ(NOISE)を騙してBLOCKSだと思わせて接続
○ iPhoneからmacOSに流れてくるMIDIメッセージをWeb MIDIでモニタ・解析
基本的な流れ
1. 接続
○ この時点ではBLOCKSはタッチ操作に合わせた CCしか投げてこない
2. ホスト→デバイス:トポロジー報告依頼
○ SYSEXを使った低レベル通信のトリガーになるようだ
3. デバイス→ホスト
○ トポロジー報告
4. デバイス→ホスト
○ 定期的なハートビート報告の開始( 1秒程度の間隔)
5. (ホスト→デバイス:LittleFootプログラム転送)
6. (ホスト→デバイス:カスタムメッセージ)
7. デバイス(w/LittleFootプログラム)
SYSEXの詳細
0xf0, 0x00, 0x21, 0x10, 0x77,
<header>,
<data>,
<checksum>,
0xf7
SYSEXの詳細: header
注意:header等はSYSEXの制約により7bit(0~127)
7 6 5 4 3 2 1 0
常時0
方向
0: ホスト→デバイス
1: デバイス→ホスト
デバイスアドレス(Topology Index)
トポロジー報告依頼時には0を指定
SYSEXの詳細: data
32-bits: 機器起動からのtimestamp [msec] (デバイス→ホストのみ)
7-bits: メッセージタイプ(メッセージ方向ごとに違うID)
● 以下、タイプ毎に異なるデータが並ぶ
● メッセージ長のような、未知のメッセージがあっても読み飛ばせるような
仕組みは存在せず、全てがデバイス・ホスト間で既知である事を想定し
ている
● bit長は7の倍数でも8の倍数でも縛られておらず完全に任意
● 合計で7の倍数bit長にならなかった場合は0パディングされる
● メッセージは複数続く事もあるようだ(まだ見たことはない)
SYSEXの詳細: dataにおけるbitの詰め方
● リトルエンディアン
● 単一バイトに収まらない場合、下位ビットから順に格納する
● 上位ビットが余ったら、次のデータが詰め込まれる
例:8-bitsのデータが2つ(A[7:0]、B[7:0])続く場合
Byte N
Byte N+1
Byte N+2
0 A6 A5 A4 A3 A2 A1 A0
0 B5 B4 B3 B2 B1 B0 A7
0 B7 B6
SYSEXの詳細: checksum
<data>に対して以下の計算を実施
let sum = data.length;
for (let byte of data)
sum = (sum * 3 + byte) & 0x7f;
<header>が壊れても気づけない
最低限のメッセージ処理
● トポロジー報告依頼
○ デバイス接続状況取得
○ 低レベル通信の開通
● トポロジー報告
○ 最低限ターゲットデバイスのアドレスを調べるために必須
● カスタムイベント送信
○ LittleFootとの通信ができれば最低限なんとかなる
デモ
課題
LittleFootのコンパイルと転送ができれば完璧
・LittleFootのコンパイラはSDKの公開部分に含まれてそう→Emscriptenでいける?
・転送はSDKでテストアプリを書いて転送データをダンプすれば解析可能か?
現状のソースは時間みつけて整理して公開

Contenu connexe

En vedette

En vedette (20)

Type-safe Web APIs with Protocol Buffers in Swift at iOSCon
Type-safe Web APIs with Protocol Buffers in Swift at iOSConType-safe Web APIs with Protocol Buffers in Swift at iOSCon
Type-safe Web APIs with Protocol Buffers in Swift at iOSCon
 
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!) Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
Baseball Play Study 2017春(2017年春 読むべき野球本はこれだ!)
 
A Publisher's Survival Guide for the Platform Era
A Publisher's Survival Guide for the Platform EraA Publisher's Survival Guide for the Platform Era
A Publisher's Survival Guide for the Platform Era
 
Aktualny stan social media
Aktualny stan social mediaAktualny stan social media
Aktualny stan social media
 
Les candidats à la présidentielle savent-ils gérer leur argent ?
Les candidats à la présidentielle savent-ils gérer leur argent ?Les candidats à la présidentielle savent-ils gérer leur argent ?
Les candidats à la présidentielle savent-ils gérer leur argent ?
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
FrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech françaiseFrenchWeb 500, le classement des entreprises de la tech française
FrenchWeb 500, le classement des entreprises de la tech française
 
OIL: The Real Outlook
OIL: The Real OutlookOIL: The Real Outlook
OIL: The Real Outlook
 
Distance Learning
Distance LearningDistance Learning
Distance Learning
 
The Next Evolution of Account-Based Marketing
The Next Evolution of Account-Based MarketingThe Next Evolution of Account-Based Marketing
The Next Evolution of Account-Based Marketing
 
Apiのことはすべてシーマンが教えてくれた
Apiのことはすべてシーマンが教えてくれたApiのことはすべてシーマンが教えてくれた
Apiのことはすべてシーマンが教えてくれた
 
The Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer InterviewsThe Marketer's Guide To Customer Interviews
The Marketer's Guide To Customer Interviews
 
Culture
CultureCulture
Culture
 
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
Oh! java script 夢の続きを語ろうよ〜emscriptenの逆襲
 
子供と使う便利ツール
子供と使う便利ツール子供と使う便利ツール
子供と使う便利ツール
 
Itamae-Serverspec入門
Itamae-Serverspec入門Itamae-Serverspec入門
Itamae-Serverspec入門
 
Esri Developer Summit 参加報告
Esri Developer Summit 参加報告Esri Developer Summit 参加報告
Esri Developer Summit 参加報告
 
20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会20170329 container technight-第一回勉強会
20170329 container technight-第一回勉強会
 
ぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュぼくのかんがえたさいきょうの Rails スタートダッシュ
ぼくのかんがえたさいきょうの Rails スタートダッシュ
 
Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業Node-red+JSONataでfunction地獄からの卒業
Node-red+JSONataでfunction地獄からの卒業
 

Similaire à 楽しいロリコン

Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料
Masaki Muranaka
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit
三七男 山本
 
Intalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitchIntalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitch
Daisuke Sugai
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
Shin Ise
 
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
Kenichi Yoshida
 

Similaire à 楽しいロリコン (20)

Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料Cq tse-fm3セミナー資料
Cq tse-fm3セミナー資料
 
ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit ABC 2012 Spring Robot Summit
ABC 2012 Spring Robot Summit
 
Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days Android端末と組み込み機器が連携する Android Make Days
Android端末と組み込み機器が連携する Android Make Days
 
Intalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitchIntalio Object Builder vs Microsoft LightSwitch
Intalio Object Builder vs Microsoft LightSwitch
 
Android,Brillo,ChromeOS
Android,Brillo,ChromeOSAndroid,Brillo,ChromeOS
Android,Brillo,ChromeOS
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 
IoT Application Development by XPages on Bluemix
IoT Application Development by XPages on BluemixIoT Application Development by XPages on Bluemix
IoT Application Development by XPages on Bluemix
 
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
Platform io で シュッと arduino 開発を高速化しよう speed up your arduino development with p...
 
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
iOS7でのBluetooth LE活用 @ MOSA Software Meeting 2013
 
LibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATELibreOffice を Windows 上でビルドする UPDATE
LibreOffice を Windows 上でビルドする UPDATE
 
Raspberry pi+mono を使ってlegoを制御
Raspberry pi+mono を使ってlegoを制御Raspberry pi+mono を使ってlegoを制御
Raspberry pi+mono を使ってlegoを制御
 
Node-red 10本ノック(visual recognition apiを絡めて)
Node-red 10本ノック(visual recognition apiを絡めて)Node-red 10本ノック(visual recognition apiを絡めて)
Node-red 10本ノック(visual recognition apiを絡めて)
 
Embedded Master2
Embedded Master2Embedded Master2
Embedded Master2
 
2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF2015 0227 OSC-Spring Tokyo NETMF
2015 0227 OSC-Spring Tokyo NETMF
 
Soracom dev conf_soracom beamとbluemixで簡単iot
Soracom dev conf_soracom beamとbluemixで簡単iotSoracom dev conf_soracom beamとbluemixで簡単iot
Soracom dev conf_soracom beamとbluemixで簡単iot
 
C#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouchC#でiPhoneアプリ開発 with MonoTouch
C#でiPhoneアプリ開発 with MonoTouch
 
DockerとPodmanの比較
DockerとPodmanの比較DockerとPodmanの比較
DockerとPodmanの比較
 
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
わんくま名古屋#36 (20150725) Windows 10 ユニバーサル Windows アプリ開発入門
 
Introduction to Yocto Project - Let's make customized embedded linux
Introduction to Yocto Project - Let's make customized embedded linuxIntroduction to Yocto Project - Let's make customized embedded linux
Introduction to Yocto Project - Let's make customized embedded linux
 
Androidロボットサミットin名古屋
Androidロボットサミットin名古屋Androidロボットサミットin名古屋
Androidロボットサミットin名古屋
 

Plus de Takashi Toyoshima (7)

z-music.js - AudioProcessorNode can do it
z-music.js - AudioProcessorNode can do itz-music.js - AudioProcessorNode can do it
z-music.js - AudioProcessorNode can do it
 
Audio Context+ at WebAudio.tokyo #1
Audio Context+ at WebAudio.tokyo #1Audio Context+ at WebAudio.tokyo #1
Audio Context+ at WebAudio.tokyo #1
 
Web &amp; sound
Web &amp; soundWeb &amp; sound
Web &amp; sound
 
Chrome Web MIDI 2015
Chrome Web MIDI 2015Chrome Web MIDI 2015
Chrome Web MIDI 2015
 
Web MIDI API update
Web MIDI API updateWeb MIDI API update
Web MIDI API update
 
Web MIDI API - the paster, the present, and the future -
Web MIDI API - the paster, the present, and the future -Web MIDI API - the paster, the present, and the future -
Web MIDI API - the paster, the present, and the future -
 
USB MIDI - DMX bridge
USB MIDI - DMX bridgeUSB MIDI - DMX bridge
USB MIDI - DMX bridge
 

Dernier

Dernier (11)

NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
業務で生成AIを活用したい人のための生成AI入門講座(社外公開版:キンドリルジャパン社内勉強会:2024年4月発表)
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 

楽しいロリコン