学研教育出版 大人の科学マガジン特別編集

ポケット・ミク カスタマイズガイド

v1.03 r2.5

宇田道信（Uda Denshi）：著
2014/4/14 22:35 polymoog（ELEKTEL/ CTO LAB.）：著編
2014/1/20

本資料は下記事項および条件に同意の上ご使用ください。
本資料は 「学研教育出版大人の科学マガジン特別編集 歌うキーボード ポケット・ミク」のカスタマイズに関する情報を記載しています。本資料に記載されている情報に起因して紛争が発生した場合、当方はその責任を負うものではありません。本資料の情報の誤り・誤植に起因する損害が生じた場合においても、当方はその責任を負うものではありません。本資料の記載内容は予告なく変更することがあります。本資料の一部または全部を許可なく、転載・複写することを堅くお断りします。
1/30

目次
ポケット・ミクの構造とMIDI操作の概要
1­1 ポケット・ミクの基本構造
1­1­1 ポケット・ミク内部の信号の流れ
図1 ポケット・ミク ブロックダイアグラム
1­1­2 ポケット・ミクが扱うことができる MIDI による操作
1­2 ポケット・ミクのソフトウェア
1­2­1 ポケット・ミクは独自のコマンドによって動作しています1­2­2 ポケット・ミクを操作するとコマンドスロットが呼び出されます1­2­3 ポケット・ミクの文字発音方式
1­3 USBからポケット・ミク がMIDIメッセージを受け取った時の動作
1­3­1「NSX1 互換モード」 ON 時
1­3­2「NSX1 互換モード」 OFF 時（デフォルト時）
2 システムエクスクルーシブメッセージ2­1 ポケット・ミクのシステムエクスクルーシブメッセージ
表1 システムエクスクルーシブ一覧
2­2システムエクスクルーシブによる歌詞入力 ( d0 = 0A )2­2­1 歌詞スロットの選択 (d0 = 0A , d1 = 00­0F)2­2­2 文字データの指定 ( d0 = 0A , d1 = 00­0F , d2以降 )表2 文字テーブルリスト
2­3 システムエクスクルーシブでコマンドを入力する
2­3­1 コマンドとは2­3­2 システムエクスクルーシブでコマンドを入力する ( d0 = 0D )2­4 コマンドスロットに関するシステムエクスクルーシブメッセージ2­4­1 コマンドスロットとは
2­4­2 システムエクスクルーシブでコマンドスロット内容を入力する ( d0 = 0C )2­4­3 コマンドスロット内容をデフォルトの状態に戻す
2­4­4 コマンドスロット内容請求と内容返答 ( d0 = 0B, 1B )2­5 その他のシステムエクスクルーシブメッセージ2­5­1 バージョン情報 歌詞位置 歌詞内容 ( d0 = 01, 11, 0E, 1E, 0F, 1F )2­5­2 スイッチ状態報告 ( d0 = 20 )2­5­3 状態報告 ( d0 = 21 )2­6 SysEx 使用例／カスタマイズ例
12/30

用 SMF を ポケット・ミク 用へ変える。
本体スタイラスで発音しながら読み上げる文字を外部デバイスから操作
スイッチ操作時にクリック音を追加
図 2 （ 8bit × 3 ）のMIDIメッセージを（ 7bit × 4 ）の SysEx へ変換する

2­6­1 NSX1
2­6­2
2­6­3

コマンド
3­1 コマンドとは
3­2 文字選択コマンド（文字・歌詞スロットの選択と読み上げ位置の指定）
3­3 発音コマンド（音程・発音タイミング情報と発音の実行）
3­4 MIDI メセージをコマンドでやりとりする
3­5 設定コマンド
3­6 カッココマンド
3­7 カッココマンド時限バッファ
表3 コマンド一覧
4 コマンドスロット
4­1 コマンドスロットとは
4­2 コマンドスロットを実行するコマンド
4­3 コマンドスロットの実行例
4­3­1 起動時
4­3­2 リセット時（パニック）
4­3­3 コネクタ、スイッチ
4­4 カーボンキーボード操作時のコマンドスロット
4­4­1 カーボンキーボード ノーマルモード
4­4­2 カーボン鍵盤 ドレミモード
4­4­3 カーボンキーボード MIDI OUT
表4 コマンドスロット一覧 1
表4 コマンドスロット一覧 2
表4 コマンドスロット一覧 3
3

3/30

1

ポケット・ミクの構造と

MIDI

1‐1
1‐1‐1

操作の概要

ポケット・ミクの基本構造

ポケット・ミク内部の信号の流れ

図1 ポケット・ミク ブロックダイアグラム●●

独自設計のカーボンキーボード
鍵盤部とリボン部を一体化し、両者を自在に行き来できる新開発のカーボンキーボード（特許出願中）により、半音ごとに音程が変わるクロマチックな演奏と、なめらかに音程が変化するポルタメ
ント演奏とを、１本のスタイラスと１枚のカーボンパネルだけで実現しています。
スタイラスとカーボンキーボードから送られる信号
スタイラスとのカーボンキーボードから取得した情報は CPU で処理され、スタイラスの ON /OFF タイミングを MIDI の Note on (タイミング情報のみ。音程は F#4 またはその ± 1 オクターブ
で固定、ベロシティは無効）、カーボンパネル上の位置を Pitch Bend Change として音源部に伝4/30

えます。この時、スタイラスがリボン部にある時は Pitch Bend Changeをそのままの数値として、鍵盤部にある時は音程変化が半音単位になる数値（Pitch Bend Sensitivity 16 なので 512 ごと）を音源部に伝えます（※カーボンキーボードからの音程情報は MIDI 1 ch のみに伝えられます）
音源チップ（NSX­1）の役割と機能
ポケット・ミクが使用するヤマハ製音源チップ NSX­1は MIDI 1ch に「eVocaloid™」音源部、MIDI 2～16ch にはピアノやドラムなど様々な音色を奏でる GM 音源（相当）部を搭載し、最大64音（ 1ch はモノフォニック）の同時発音が可能です。さらに両音源部ともに、リバーブ、コーラスに加え、インサーションエフェクト、マスターEQなどの多彩なエフェクトを使用できます。
● その他の主要な部品
CPU はポケット・ミクの基本的なハードウェアを動かしたり、カーボンキーボードからの情報やUSB 端子からの MIDI メッセージを処理したり、NSX­1（音源チップ）を制御したり、といった一般的な CPU としての処理のほか、デジタルアンプや DA コンバータまで内蔵し、NSX­1から出力されたデジタル音声信号を受け取り最終的なオーディオ出力の処理も行います。
●には CPU でハードウェアを制御するための基本プログラム（ファームウェア）をはじめ、eVocaloidのエンジンプログラムと音声データベース、歌詞を発音するための文字テーブ
ル、ユーザーが書き換え可能なプリセット歌詞（歌詞スロット）、ボタン操作で制御する機能を構成するための命令群（コマンド／コマンドスロット）などが収められています。
FLASH ROM

1‐1‐2

ポケット・ミクが扱うことができる MIDI による操作

楽曲データの再生
USB 端子から受け取った MIDI Note on メッセージは、MIDI 1 ch の eVocaloid 部も含め、全てのMIDI ch でそのまま受け付け、通常の音程情報のまま演奏できます。
● 歌詞・文字の変更、歌詞・文字の外部からの入力● 本体ボタンの操作やキーボード操作時の機能変更 （本体機能のカスタマイズ）
●

MIDI

1‐2
1‐2‐1

ポケット・ミクのソフトウェア

ポケット・ミクは独自のコマンドによって動作しています

ポケット・ミク内部では独自の 28 bit命令データ(以下「コマンド」)を用いています。
● 本体ボタンの操作やキーボード操作によってコマンドが生成されます。
● 生成されたコマンドを、コマンド処理部が処理・実行することで、様々な動作をします。
●

5/30

●

1‐2‐2

外部 MIDI 機器からシステムエクスクルーシブメッセージ（SysEx）でコマンドを入力できます。

ポケット・ミクを操作するとコマンドスロットが呼び出されます

コマンドスロットはポケット・ミクの操作によって、一連の動作として実行される複数のコマンドを記憶しておく FLASH MEMORY 内の領域です。
● コマンドスロットは起動時やボタン操作時など様々なタイミング（表4 コマンドスロット一覧 の「呼び出しタイミング」）で呼び出され、その中に格納する複数のコマンドを実行します。
● コマンドスロットの内容を書き換えるとボタン操作等で実行される機能をカスタマイズできます。
● コマンドスロットの内容は外部 MIDI 機器からSysExで書き換える事が可能です。
● コマンドスロットの内容は本体内の FLASH ROM に記憶され、電源を切っても保持されます。
●

1‐2‐3

ポケット・ミクの文字発音方式

文字選択時の応答性を高めるため、起動時に FLASH ROM 内にある「文字テーブル（ phonetic
symbol 128 文字）」を音源部（ NSX­1）に登録し、そこで振り当てられた文字番号を指定するだけで文字を選択できるシステム式です。
● 本体プリセット歌詞の内容（文字列）は 「歌詞スロット」に記憶されています。
● 歌詞スロットの内容を外部 MIDI 機器からSysExで書き換え、FLASH ROM 内に記憶できます。
●

からポケット・ミク がMIDIメッセージを受け取った時の動作

1‐3 USB
1‐3‐1「NSX1
●

「NSX1

1‐3‐2「NSX1●●

互換モード」 ON 時
互換モード」が ONの場合は全ての MIDI メッセージをそのまま受信します。

互換モード」 OFF 時（デフォルト時）の場合は、NSX1 用命令 seek,phonetic symbol のポケット・ミクの文字・歌詞選択機能と競合する コントロールチェンジ（ CC ）、SysEx は破棄されます。
OFF

歌詞入力や文字選択に関する CC 、SysEx 、ポケミク独自のコマンドやコマンドスロットに関する
SysEx 以外のMIDI メッセージの扱いは、eVocaloid 部、GM 音源部ともに NSX­1 に準じます。詳細は「 YMW820(NSX­1)MIDI 仕様書」を参照してください。
http://yamaha­webmusic.github.io/nsx1­apps/specs/ANMW820A­001­10­j.pdf

6/30

2

2‐1

システムエクスクルーシブメッセージ

ポケット・ミクのシステムエクスクルーシブメッセージとは規格に定められた その機器固有の機能を制御するためのメッセージです。F0 （以降が メッセ ジであることを示します）とF7 （End of Exclusive SysEx
メッセ ジの終わりを表します に挟まれた数バイトのデータバイトから成ります。本資料ではシステム
エクスクル シブをのように斜体で表し 16 進数で表記します。他資料では0xF0 F0h などのように 進数表記であることを表すや「 h 」が前または後ろに付記されることもありますが、これらの文字は実際のデ タ入力の際には入力する必要はありません。
● ポケット・ミク には独自のシステムエクスクルーシブメッセージ ( SysEx ) が用意されています。
● ポケット・ミク 用 SysEx の記述は F0 43 79 09 11 で始まり、いくつかのデータバイトがあり
F7で終わります。
SysEx
、MIDI
、
Exclusive status
SysEx
ー
ー
）
ー
F0 F7
、16
「 0x 」
ー●ポケット・ミク は SysEx を使うと外部 MIDI 機器から歌詞入力や本体プリセット歌詞の変更、本体ボタン操作時に実行される機能のカスタマイズ、などを行なうことができます。
音源部 NSX­1 のSysEx の詳細は「YMW820(NSX­1) MIDI仕様書」を参照してください。
http://yamaha­webmusic.github.io/nsx1­apps/specs/ANMW820A­001­10­j.pdf

本体ボタン操作時に実行される機能のカスタマイズは、本体ボタン操作時に呼び出されるコマンド
スロット（詳細は 4 コマンドスロット を参照）の内容を書き換えることで実現します。
● SysEx を使って書き換えたコマンドスロットの内容は、FLASH ROM に記憶されるため、電源を切っても失われません。
●

7/30

F0 43 79 09 11 d0 d1 d2 d3 d4 d5 d6 d7 d8... F7
d0

d1

d2

d3

d4

d5

d6

d7

d8

バージョン情報請求 0x01
­
­
­
­
­
­
­
­
バージョン情報返答 0x11 NSX­39バージョン情報
←
←
←
­
­
­
­
歌詞入力
１文字目 2文字目 3文字目 4文字目
5文字目
6文字目 7文字目
0x0A 歌詞スロット番号
コマンドスロット内容 0x0B コマンドスロット番号
­
­
­
­
­
­
­
請求
コマンドスロット内容 0x1B
コマンド←←
← コマンド２個目←←←
返答
コマンドスロット入力 0x0C コマンドスロット番号 コマンド
コマンド２個目 ← ←←←←コマンド直接入力 0x0D
コマンド
コマンド２個目←←←←←←
歌詞番号位置請求 0x0E
­
­
­
­
­
­
­
­
歌詞番号位置返答 0x1E 歌詞スロット番号 歌詞スロット内位置 ­
­
­
­
­
­
歌詞内容請求 0x0F 歌詞スロット番号
­
­
­
­
­
­
­
歌詞内容返答 0x1F
文字数
１文字目 2文字目 3文字目 4文字目
5文字目
6文字目 7文字目
スイッチ状態報告 0x20
000000ih
0gfedcba
­
­
­
­
­
­
状態報告
状態
0x21
­
­
­
­
­
­
­

表1 システムエクスクルーシブ一覧
2‐2●

システムエクスクルーシブによる歌詞入力 ( d0 = 0A )を使って歌詞入力をする時は d0 を 0A とし、d1 で歌詞スロット番号を指定、 d2 以降に文字指定データを入力します。
SysEx

SysEx

記述例）プリセット１（SHIFT + A）の『こんにちわありがとう』の場合

F0 43 79 09 11 0A 01 09 01 7B 40 36 77 00 70 0A 2D 02 F7
0A =

2‐2‐1

歌詞入力 01 = 歌詞スロット番号

文字指定データ

歌詞スロットの選択 (d0 = 0A , d1 = 00‐0F)

歌詞スロットは、ポケット・ミクの FLASH ROM に記憶される歌詞用文字列の記憶領域です。
● 歌詞スロットはポケット・ミク内に 16 個用意されています。
● 歌詞スロット番号（d1）は 0~15 ( 00 ­ 0F ) です。
● 各歌詞スロット 最大64 文字まで記憶可能です。
●

8/30

歌詞スロット0は FLASH ROM へ書き込みを行わない（CPU 内のRAM へ直接書き込む）ため高速で動作させることが可能です。
❏ 文字をリアルタイム入力する時など、頻繁に歌詞入力を行なう時❏ MIDI シーケンサで１ノートごとに一文字づつ文字を指定する時などの時にこのスロットを指定すると良いでしょう。（※MIDI シーケンサで１ノートごとに一文字づつ文字を指定すれば歌詞スロットの文字数制限を超えて指定可能です）
この歌詞スロットは、ポケット・ミク本体のボタンで選択することはできません。
この歌詞スロットを指定した時は、本体ボタンで選択するプリセット歌詞は変更されません。
（※いずれも本体スイッチ操作で呼び出されるコマンドスロットがデフォルト状態の時）
歌詞スロット 1~15 の内容は FLASH ROM 内の歌詞スロットへ書き込まれます。
● 歌詞スロット 1~15 へ書き込み中は、数十ミリ秒の間 USB MIDI 通信ができません。
書き込み開始時には 状態報告ビジー(F0 43 79 09 11 21 01 F7)が、書き込み完了時には状態報告ビジー回復(F0 43 79 09 11 21 00 F7)が送信されます。
●●

ポケット・ミク本体側での歌詞スロットの選択は、デフォルトではそれぞれ以下の本体ボタン操作にアサインされています。ポケット・ミク本体で呼び出すことができる歌詞の最大文字数は 64 ×
15 = 960 文字です。
歌詞スロット 1~5
歌詞スロット6～10
歌詞スロット11～15

2­2­2「A」～「O」「SHIFT」＋「A」～「O」「VIBRATO」＋「A」～「O」

文字データの指定 ( d0 = 0A , d1 = 00­0F , d2以降 )以降は文字指定データ です。最大64文字まで指定できます。最後にF7 を付加します。
● 文字指定データは 表2 文字テーブルリスト 記載の文字番号（16進数）で指定します。
● 歌詞入力完了後、歌詞を読み始める位置は入力された歌詞の先頭（ 0 ) に設定されます。
●

d2

9/30

番号 0x 発音 備考
0
00
あ
1
01
い
2
02
う
3
03
え
4
04
お
5
05
か
6
06
き
7
07
く
8
08
け
9
09
こ
10
0A
が
11
0B
ぎ
12
0C
ぐ
13
0D
げ
14
0E
ご
15
0F きゃ
16
10 きゅ
17
11 きょ
18
12 ぎゃ
19
13 ぎゅ
20
14 ぎょ
21
15
さ
22
16 すぃ
23
17
す
24
18
せ
25
19
そ
26
1A
ざ づぁ
27
1B ずぃ づぃ
28
1C
ず づ
29
1D
ぜ づぇ
30
1E
ぞ づぉ
31
1F しゃ

番号 0x 発音 備考
32
20
し
33
21 しゅ
34
22 しぇ
35
23 しょ
36
24 じゃ
37
25
じ
38
26 じゅ
39
27 じぇ
40
28 じょ
41
29
た
42
2A てぃ
43
2B とぅ
44
2C
て
45
2D
と
46
2E
だ
47
2F でぃ
48
30 どぅ
49
31
で
50
32
ど
51
33 てゅ
52
34 でゅ
53
35 ちゃ
54
36
ち
55
37 ちゅ
56
38 ちぇ
57
39 ちょ
58
3A つぁ
59
3B つぃ
60
3C
つ
61
3D つぇ
62
3E つぉ
63
3F
な

番号 0x 発音 備考
64
40
に
65
41
ぬ
66
42
ね
67
43
の
68
44 にゃ
69
45 にゅ
70
46 にょ
71
47
は
72
48
ひ
73
49
ふ
74
4A
へ
75
4B
ほ
76
4C
ば
77
4D
び
78
4E
ぶ
79
4F
べ
80
50
ぼ
81
51
ぱ
82
52
ぴ
83
53
ぷ
84
54
ぺ
85
55
ぽ
86
56 ひゃ
87
57 ひゅ
88
58 ひょ
89
59 びゃ
90
5A びゅ
91
5B びょ
92
5C ぴゃ
93
5D ぴゅ
94
5E ぴょ
95
5F ふぁ

番号 0x 発音 備考
96
60 ふぃ
97
61 ふゅ
98
62 ふぇ
99
63 ふぉ
100 64
ま101 65
み102 66む103 67
め
104 68も105 69 みゃ
106 6A みゅ
107 6B みょ
108 6Cや
109 6Dゆ110 6Eよ111 6Fら
112 70り
113 71る
114 72
れ115 73ろ116 74 りゃ
117 75 りゅ
118 76 りょ
119 77わ120 78 うぃ ゐ121 79 うぇ ゑ
122 7A うぉ を
123 7B
ん “N\”
124 7Cん “m”
125 7D
ん “N”
126 7E
ん “J”
127 7Fん “n”

表2 文字テーブルリスト

10/30

システムエクスクルーシブでコマンドを入力する

2‐3
2­3­1

コマンドとはポケット・ミク内部で用いる独自の 28 bit 命令データのことです。
● 本体のボタン操作やキーボード操作によってコマンドが生成されます。
● 生成されたコマンドをコマンド処理部が処理することでポケット・ミクが様々な動作をします。
● コマンドの種類は「3 コマンド」以降、及び「表3 コマンド一覧」を参照してください。
●

2­3­2

システムエクスクルーシブでコマンドを入力する ( d0 = 0D )外部MIDI機器から SysEx でポケット・ミクへコマンドを入力することもできます。
● 一度のシステムエクスクルーシブメッセージ送信で最大 255 コマンドを同時に送信できます。
● MIDIメッセージは1バイト中の最上位ビットをステータスバイト／データバイト識別に使用するため、 SysEx のデータバイトでは残りの 7bit にデータを格納します。そのため、ポケット・ミクのコマンドを SysEx でやりとりするには、28 bit の命令データを 4 つ（ 7bit×4 ）に分割します。
● コマンドは上位バイトから順に送られ、d1 がコマンドの 27~21bit 、 d2 が 20~ 14bit 、d3 が13~7bit 、d4 が 6­0bit となります。
●

記述例） F0 43 79 09 11 0D d1 d2 d3 d4 F7
0D = コマンド入力 d1 = 27~21bit d2 = 20~14bit d3 = 13~7bit d4 = 6~0bit
SysEx

2‐4
2­4­1

コマンドスロットに関するシステムエクスクルーシブメッセージ

コマンドスロットとは

コマンドスロットはポケット・ミクの操作によって、一連の動作として実行される複数のコマンドを記憶しておくための FLASH MEMORY 内の領域です。
● コマンドスロットは起動時やボタン操作時など様々なタイミング（表4 コマンドスロット一覧 の「呼び出しタイミング」）で呼び出され、その中に格納する複数のコマンドを実行します。
● コマンドスロットの内容を書き換えるとボタン操作等で実行される機能をカスタマイズできます。
● コマンドスロットの内容は外部 MIDI 機器からSysExで書き換える事が可能です。
● コマンドスロットの内容は本体内の FLASH ROM に記憶され、電源を切っても保持されます。
●

11/30

2­4­2

システムエクスクルーシブでコマンドスロット内容を入力する ( d0 = 0C )●外部MIDI機器からSysEx でポケット・ミクのコマンドスロットの内容を入力できます。
記述例）F0 43 79 09 11 0C コマンドスロット番号 d2 d3 d4 d5 ... F7
0C = コマンドスロット内容入力 コマンドスロット番号 コマンド （ 4byte 単位）...
SysEx

デフォルトで呼び出されるコマンドスロットの内容は「4 コマンドスロット」以降、及び「表4 コ
マンドスロット一覧 1、2、3」を参照してください。
● コマンドスロットは 0~127 まであり、そのうち書込可能なスロットは 0~119 です。
● 1スロットのコマンド数は最大 255 です。
● コマンドスロットの番号やコマンド数に不正があった場合、その処理は実行されずに、状態報告エラー ( F0 43 79 09 11 21 02 F7 ) が返ってきます。
●

2‐4‐3

コマンドスロット内容をデフォルトの状態に戻す

入力されたコマンドスロット内にコマンドが無い場合、( F0 43 79 09 11 0C スロット番号 F7 ) は
指定スロットをデフォルトの状態に戻します。
● コマンドスロットをデフォルトの状態ではなく、空にしたい場合は F0 43 79 09 11 0C スロット番
号 0C 01 00 00 F7 を送ります。
●

2­4­4
●

コマンドスロット内容請求と内容返答 ( d0 = 0B, 1B )外部 MIDI 機器からポケット・ミクへコマンドスロット内容請求 ( F0 43 79 09 11 0B F7 ) を送ると、ポケット・ミク から外部 MIDI 機器へコマンドスロット内容返答 ( F0 43 79 09 11 1B .... F7 )が返ってきます。（※コマンドスロットのコマンド数が 11 以上の場合は 10 コマンドづ つ分割で返答されます）
2­5

2‐5‐1
●

その他のシステムエクスクルーシブメッセージ

バージョン情報 歌詞位置 歌詞内容 ( d0 = 01, 11, 0E, 1E, 0F, 1F )外部MIDI 機器からポケット・ミクへ以下のメッセージを送信した場合バージョン情報請求（ d0 = 01 ）、歌詞位置請求（ d0 = 0E ）、歌詞内容請求（ d0 = 0F ）それらに応じてポケット・ミク から外部MIDI 機器へ以下のメッセージが返されます。
12/30

バージョン情報返答（ d0 = 11 ）、歌詞位置返答（ d0 = 1E ）、歌詞内容返答（ d0 = 1F ）2‐5‐2

スイッチ状態報告 ( d0 = 20 )スイッチ状態報告は 本体ボタン（ SW1~SW9 ）の状態に変化があった場合に送られます。
● d1,d2 が 00 00 であれば SW1~9 は 全て OFF 状態であることを示します。
● a (d2 最下位ビット)が 1 であれば SW1 が ON、0 であれば OFF を示します。
● 同様に b が SW2、c が SW3、、、i が SW9 の状態を示します。
●

0

0

0

0

0

0

i

h

0

d1 = 000000ih●

SW1~SW9

g

f

e

d

c

b

a

d2 = 0gfedcba

は以下の各ボタンに対応しています。
A

SW1
SW2
SW3
SW4
SW5

I
U
E
O

SysEx

d2 = ad2 = bd2 = cd2 = dd2 = eVIBRATOSHIFTVOL UPVOL DOWN

SW6
SW7
SW8
SW9

d2 = fd2 = gd1 = hd1 = i

記述例）「A」ボタンが押されている（ONになっている）時
F0 43 79 09 11 20 00 01 F7

20 =

2‐5‐3
●

●

スイッチ状態報告 d1 = 00 = 0000000、d2 = 01 = 00000001

状態報告 ( d0 = 21 )
状態報告は FLASH ROM 書き込み処理発生時、システムエクスクルーシブデータに不正があった場合に使われます。
d1の値で以下の様に状態を示します。

ビジー回復

ビジー
01
エラー
SysEx 記述例）エラー発生時 F0 43 79 09 11 21 02 F7
21 = 状態報告 02 = エラー
00

02

13/30

使用例／カスタマイズ例

2­6 SysEx
2­6­1 NSX1

用 SMF ( MIDI ファイル ) を ポケット・ミク 用へ変える。

最初にNSX1 互換機能を ON にし、NSX1 用文字入力メッセージを受付可能な状態にします。
● NSX1 用文字命令を受け付ると、その後ポケット・ミクは正常に発音できなくなるので、曲の最後で文字登録を初期状態に戻し、NSX1 互換を OFF にします。
● 曲を途中で中断した時は ポケット・ミクの文字リストが壊れたままなので、SW1+8+9（パニック）を押して文字リストを復旧する必要があります。
●

F0 43 79 09 11 0D 0A 06 01 00 F7

0D =コマンド直接入力 0A 06 01 00 = NSX1_GOKAN_ON コマンド
F0 43 79 09 11 0D 0A 06 00 00 0A 07 00 00 F7

0D =0A 06 00 00 = NSX1_GOKAN_OFF

2­6­2
●

コマンド直接入力
コマンド 0A 07 00 00 = MIDI_RESET コマンド

本体スタイラスで発音しながら読み上げる文字を外部デバイスから操作
最初にノーマルモードにしておきます。その後歌詞スロット 00 番へ文字を登録します。
F0 43 79 09 11 0D 0A 08 00 00 F7

0D =コマンド直接入力 0A 08 00 00 = MODE_NORMAL コマンド
F0 43 79 09 11 0A 00 mm F7

歌詞入力 00 = 歌詞スロット00番を選択 mm = 文字指定データ（※最大 64 文字まで登録できます）※ここで登録された文字は、次にスタイラスでタッチした時に読み上げられます。発音中に外部デデバイスで文字を指定しても、その時点では読み上げられません。
0A =●複数の文字を一度に登録することも可能です。下記のメッセージを送信すれば、次の鍵盤タッチ時に mm を発音し、次に nn oo pp と順番に発音します。
F0 43 79 09 11 0A 00 mm nn oo pp F7

歌詞入力 00 = 歌詞スロット00番を選択 mm nn oo pp = 文字指定データ● スタイラスで発音している最中に外部デバイスで違う文字を指定し、その場で読み上げている文字を変更する場合は、歌詞スロット0番への文字登録の後に下記のコマンドを送信します。
0A =

14/30

F0 43 79 09 11 0D 09 05 00 00 08 01 00 00 F7

コマンド直接入力 09 05 00 00 = MOJI_SET_KASHI コマンド 08 01 00 00 = REVOICE コマンド
● 外部デバイスで指定するのが複数の文字による文字列（歌詞）の場合、上記に加え
KASHI_POS_INC コマンドを追加し、次に読み上げる文字を1文字進めます。

0D =F0 43 79 09 11 0D 09 05 00 00 08 01 00 00 09 01 00 00 F7

コマンド直接入力

0D =09 05 00 00 = MOJI_SET_KASHI
09 01 00 00 = KASHI_POS_INC

2‐6‐3

コマンド

コマンド 08 01 00 00 = REVOICE コマンドスイッチ操作時にクリック音を追加
ボタン ) を押した時に、クリック音を発するようにします。この操作はFLASHにデ タを書き込むため、電源を ON OFF しても保持されます。

●

SW 7 ( = SHIFTROMーF0 43 79 09 11 0C 07 04 65 12 66 F7

コマンドスロット入力 07 = 07 CS_SW_ON
コマンド ( MIDI 99, 49 , 66 )● MIDIメッセージは 8bit 、ポケット・ミクのコマンドスロットは SysEx でデータをやりとりするた
め 7bit のデータになっています。そのため、DIRECT_MIDI_X 及び DIRECT_MIDI_OUT_X コマン
ドでやりとりする際はデータを 8bit から 7bit へ変換する必要があります。
0C =04 65 12 66 = DIRECT_MIDI_3

上記の例の場合、DIRECT_MIDI_3 の 7bit × 4byte のデータの中身を MIDI の 8bit × 3byte に置き換えると以下のようになります。

●

99, 49 , 66 = ( NoteOn / MIDI 10ch ) , ( NoteNo 0x49 ) , ( Velocity 0x66 )上段 MIDI Message = 8bit × 3byte = 99,49,66
­
0

­
0

­
0

­
0

1
1

0
0

0
0

1
1

1
1

0
0

0
0

1
1

0
0

1
1

0
0

0
0

1
1

0
0

0
0

1
1

0
0

1
1

1
1

0
0

0
0

1
1

1
1

下段 SysEx Command ( 0C ) = 7bit × 4byte = 04 65 12 66

図 2 （ 8bit × 3 ）のMIDIメッセージを（ 7bit × 4 ）の SysEx へ変換する●

クリック音を解除するには下記のメッセージを送信します。
F0 43 79 09 11 0C 07 F7

0D =コマンド直接入力 07 = 07 CS_SW_ON をデフォルトに戻す
15/30

0
0

3

コマンド

3‐1

コマンドとはポケット・ミク内部では独自の 28 bit命令データ(以下「コマンド」)を用いています。
● 本体ボタンの操作やキーボード操作によってコマンドが生成されます。
● 生成されたコマンドを、コマンド処理部が処理・実行することで、様々な動作をします。
● 外部MIDI機器からシステムエクスクルーシブメッセージ（SysEx）でコマンドを入力できます。
●

3‐2

文字選択コマンド（文字・歌詞スロットの選択と読み上げ位置の指定）

以下の説明は主にポケット・ミク内部での情報のやりとりを示しています。 ( ) 内の 16 進数は SysEx
でコマンドを直接入力する際 ( d0 = 0D )や、コマンドスロットの内容を変更する際 ( d0 = 0C ) に d1 以降のデータバイトに記述する際の表記です。
※

文字選択コマンド」で予め指定した文字が、「発音コマンド」で読み上げられます。
● ポケット・ミク は16の歌詞スロットがあり、それぞれ最大 64 文字を入れることができます。
● ポケット・ミク は現在読んでいる歌詞スロット番号と読み上げ位置を記憶しています。
●「

コマンド ( 09 05 00 00 )…次の発音時に読み上げる文字を待機（セット）させるコマンドです。
MOJI_SET_KASHI

コマンド ( 09 01 00 00 )…歌詞スロットの文字列内で、読み上げを開始する位置を1文字進めます。
KASHI_POS_SEL コマンド ( 09 02 00 00 ­ 09 02 00 3F )…特定の読み上げ開始位置を指定することができます。
KASHI_SLOT_SEL コマンド ( 09 03 00 00 ­ 09 03 00 0F )…歌詞スロットを選択し、同時に読み上げ開始位置をその先頭にします。
KASHI_POS_INC

任意の文字を下位7bit で指定します(通常は使用しません）

MOJI_SEL ( 09 04 00 00 ­ 09 04 00 7F) …

これらのコマンドは歌詞を読み上げる際に必ず必要なコマンドですが、これらのコマンドで指定されるのは文字列内で文字の読み上げを開始する位置の指定だけで、これらのコマンドが実行された時点では発音
16/30

オーディオアウトからの出力）はされません。実際の発音にはカーボンキーボードからの操作や、USB
端子からの MIDI Note on メッセージの受信が必要です。
（●

歌詞の文字を順番に読み進める場合は下記の順番でコマンドを送っています。
MOJI_SET_KASHI●＞ NOTEON ＞ KASHI_POS_INC ＞ NOTEOFF

ホストからCH1 Note onメッセージ（MIDI）が送られた場合には、下記の通りメッセージの直前にMOJI_SEL_KASHI、直後に KASHI_POS_INCが自動で追加されます ( NSX1 互換モード OFF
時のみ)。
USB

MOJI_SEL_KASHI●＞ Note on(MIDI) ＞ KASHI_POS_INC

読み出し位置の変更 コマンド直接入力（ d0 = 0D ）下記の順番でコマンド送ります。
KASHI_SLOT_SEL ＞ KASHI_POS_SEL ＞ MOJI_SET_KASHI ＞ REVOICEを入力してください。KASHI_POS_SEL や KASHI_SLOT_SEL だけを送信すれば歌詞の読み出し位置や歌詞スロットを変更することか出来ますが、これらのコマンドは値を変更するだけであり、コマンドでは seek か送信されないので、このままでは次に発音する音は変更前の音が鳴ります。
3‐3

発音コマンド（音程・発音タイミング情報と発音の実行）

以下の説明は主にポケット・ミク内部での情報のやりとりを示しています。 ( ) 内の 16 進数は SysEx
でコマンドを直接入力する際 ( d0 = 0D )や、コマンドスロットの内容を変更する際 ( d0 = 0C ) に d1 以降のデータバイトに記述する際の表記です。
※

主にNOTEON、NOTEOFF（MIDIの None on, off と混同しないように注意してください）、ADV_PB、
REVOICEの4つがあります。
コマンド ( 08 09 00 00 ­ 08 09 7F 7F )…MIDI の Note on と Pitch Bend が 音源チップへ送信され、発音中である事と音程が記憶されます。
NOTEON

発音中に NOTEON コマンドを実行した場合は Note on ( MIDI ) は送信されません。
● 音程が違えば Pitch Bend が送信されます。
●

17/30

音程は NOTEON コマンドと ADV_PB コマンドの下位 14bit で設定された値で決定されます。（※
共に中央値 ±0（ ­8192=0x00 0x00 0=0x40 0x00 8191=0x7F 0x7F ）の場合の音程は F# となります。この値が 512 変化するごとに半音変わります）● ADV_PB コマンドで音程情報が加えられていない場合、 NOTEON コマンドの下位 14bitは MIDIで送信される Pitch Bendデータの値と同じ値になります。
●

コマンド ( 08 0E 00 00 ­ 08 0E 7F 7F )…通常の鍵盤操作（スタイラス操作）では発生しません。NOTEON コマンドの下位 14bit とともにこのコ
マンドの下位 14bitを加算して音程を決定します。
ADV_PB●

基本は中央値に設定し、「VIBRATO」＋「VOL UP or DOWN」によるピッチベンド使用時など、一時的に音程が変化する時に使用すると良いでしょう。値を動かした後は中央値に戻してください。

コマンド ( 08 0E 00 01 )…発音中ならば MIDI Note off ＞ Note on と続けて送信します。消音中であれば何もしません。
REVOICE

発音中に文字変更をする際に有効です。
● 起動音では１文字目はNOTEONコマンド、２文字目以降はREVOICEコマンドを使用しています。
● このコマンドでは音程の指定がないため、直前の音程が指定されます。
●

コマンド ( 08 08 00 00 )…MIDI Note off を送り、発音が終わったことを記憶します。
NOTEOFF

3‐4 MIDI

メッセージをコマンドでやりとりする

以下の説明は主にポケット・ミク内部での情報のやりとりを示しています。 ( ) 内の 16 進数は SysEx
でコマンドを直接入力する際 ( d0 = 0D )や、コマンドスロットの内容を変更する際 ( d0 = 0C ) に d1 以降のデータバイトに記述する際の表記です。
DIRECT_MIDI_X ( X は 3,2,1 ) コマンド …NSX­1（音源チップ）へ MIDI メッセージを送信するコマンド※このコマンドでも eVocaloid を発音できますが、通常は後述の発音コマンドを使用します。
※

DIRECT_MIDI_OUT_X ( X

は 3,2,1 ) コマンド …USB ホストへ MIDI メッセージを送信するコマンド
18/30

一つのコマンド（ 7bit × 4 ）で MIDIメッセージを最大3 バイト（ 8bit × 3 ）まで同時に送信できます。
● MIDIメッセージは 8bit のデータ、ポケット・ミクのコマンドスロットは SysEx でデータをやりとりするため 7bit のデータになっています。そのため、DIRECT_MIDI_X 及びDIRECT_MIDI_OUT_X コマンドでやりとりする際はデータを 8bit から 7bit へ変換する必要があります。詳細は図 2 （ 8bit × 3 ）のMIDIメッセージを（ 7bit × 4 ）の SysEx へ変換するを参照してください。
● DIRECT_MIDI_3 ( 00 00 00 00 ­ 07 7F 7F 7F ) は 3 バイト
DIRECT_MIDI_2 ( 0F 00 00 00 ­ 0F 03 7F 7F ) は 2 バイト
DIRECT_MIDI_1 ( 0F 10 00 00 ­ 0F 10 01 7F ) は 1 バイトのデータを送ることができます。
●●

DIRECT_MIDI_OUT_3 ( 10 00 00 00 ­ 17 7F 7F 7F )DIRECT_MIDI_OUT_2 ( 1A 00 00 00 ­ 1A 03 7F 7F )DIRECT_MIDI_OUT_1 ( 19 00 00 00 ­ 19 00 01 7F )も同様です。

通常ポケット・ミクは USB 端子からの一般的な MIDI メッセージはそのままで送受信することができる
ため、これらのコマンドを使用する必要はありません。コマンドスロットの内容にこれらのコマンドを書
き込めば、 MIDI メッセージによって定義されているポケット・ミクの設定を書き換えることができ、FLASH MEMORY に記憶することができます。

3‐5

設定コマンドコマンド ( 0A 01 00 00 ­ 0A 01 00 08 )VOL_UP コマンド ( 0A 02 00 00 )VOL_DOWN コマンド ( 0A 03 00 00 )…音源チップ全体の音量を調節します。音量を0～8の9段階で指定します。
VOL_SET

コマンド ( 0A 04 01 00 )KEY_DOWN コマンド ( 0A 04 00 00 )…NOTEON、REVOICE コマンド実行時の MIDI Note on のノートナンバーのオクターブを上下します。
KEY_UP

コマンド ( 0A 05 00 00 )TUNING_START コマンド ( 0A 05 01 00 )TUNING_TOGLE コマンド ( 0A 05 02 00 )…カーボンキーボードの調節・キャリブレーション（チューニング）機能のON、OFF を選択できます。
TUNING_STOP

19/30

コマンド ( 0A 06 00 00 )NSX1_GOKAN_ON コマンド ( 0A 06 01 00 )NSX1_GOKAN_TOGLE コマンド ( 0A 06 02 00 )…NSX1 用文字設定 MIDI を受け付けるか破棄するか（NSX­1 互換モード）を選択できます。
NSX1_GOKAN_OFF

コマンド ( 0A 08 00 00 )MODE_NORMAL コマンド ( 0A 08 01 00 )…ドレミモードの ON、OFF を切り替えます。ドレミモードであればカーボン鍵盤操作時に音程に合わせて「ド、レ、ミ、ファ、ソ、ラ、シ」の文字を発音します。ノーマルモードであれば歌詞を順番に発音します。
MODO_DOREMI

コマンド ( 0A 07 00 00 )…音源チップを起動直後の状態にし、文字リストの登録を行います。（パニック）
MIDI_RESET

コマンド ( 0A 07 01 01 )…FLASH ROM のコマンドスロット領域、歌詞スロット領域を工場出荷時に戻します（イニシャライズ）ROM_RESET

3‐6

カッココマンド

コマンドスロット（4 コマンドスロット 以降を参照）内を入れ子構造にできる特殊なコマンドです。
コマンド ( 0C 02 00 00 ) 、CACCO_END ( 0C 03 00 00 ­ 0C 03 00 0F ) コマンドに挟まれたコマンドを条件に合わせて実行できます。
CACCO_STARTから CACCO_END までのコマンドは連続している必要があります。
● CACCO_END の下位 4bit で実行条件を記述できます。
●

CACCO_START

各 bit には対応した状態があり、その状態で bit が 1 の場合は実行します。
時限バッファ（3­2­7で詳説します）にコマンドがあり、発音中の場合
時限バッファにコマンドがあり、発音中では無い場合
時限バッファが空で、発音中の場合
時限バッファが空で、発音中では無いの場合※これらが “1111” (0F) は常に、”1010” (0A) は無音時、 ”0101” (05) は発音時に実行されます。
0bit :
1bit :
2bit :
3bit :
4bit

記述例） SHIFT ボタン機能追加（演奏中は文字を 文字進める／演奏していない時は歌詞の先頭に戻る）
SysEx
1

F0 43 79 09 11 0C 11 0C 02 00 00 09 02 00 00 0C 03 00 0A 0C 02 00 00 09 05
00 00 08 01 00 00 09 01 0C 03 00 05 F7
20/30

コマンドスロット入力
ボタンを押し下げている時
コマンド
コマンド 歌詞スロットの先頭に戻るコマンド 無音時の実行
コマンド
次に発音する文字をセッ
トコマンド 再発音
次に発音する文字を 文字進める
コマンド 発音時の実行
0C =11 = 17 CS_SW7D （ SHIFT）
0C 02 00 00 = CACCO_START
09 02 00 00 = KASHI_POS_SEL( 0 )（） 0C 03 00 0A = CACCO_END（）
0C 02 00 00 = CACCO_START
09 05 00 00 = MOJI_SET_KASHI（） 08 01 00 00 = REVOICE（） 09 01 00 00 = KASHI_POS_INC（
1） 0C 03 00 05 = CACCO_END
（
）

3‐7

カッココマンド時限バッファ

カッココマンドを使った入れ子構造のコマンドやコマンドスロットの実行に時間差を発生させ、シーケンス制御をすることができます。
コマンド ( 0C 02 00 00 )、CACCO_END_TIME ( 0C 03 01 00 ­ 0C 03 01 0F ) コマンド に挟まれたコマンドは「時限バッファ」に格納されます。
CACCO_START

カッココマンドと同様に下位 4bitで実行条件を設定できます。
● 「時限バッファ」にあるコマンドは時間差で実行することが可能です。
●

コマンド ( 0D 00 00 00 ­ 0D 7F 7F 7F )…タイミング調節を行います。
TIME_WAIT●

TIME_WAIT

コマンドの値が 500 であれば約1秒 実行のタイミングを遅らせます。

コマンド ( 0C 05 00 00 )…実行された場合元々ある「時限バッファ」のコマンドは破棄されます。
TIME_CANCEL

時限バッファ」にコマンドがある状態で「時限バッファ」を新たに作る場合、またはTIME_CANCEL コマンドが実行された場合、元々ある「時限バッファ」のコマンドは破棄されます。
● 「時限バッファ」を途中で破棄されると不都合がある場合には「時限バッファ」と同時に「時限終了バッファ」（後述）にコマンドを格納すると良いでしょう。
●「

コマンド ( 0C 04 00 00 )…コマンドを「時限終了バッファ」に格納するすることができます。
TIME_TAIL

CACCO_START＞A＞B＞TIME_TAIL＞C＞D＞CACCO_END_TIME

21/30

と処理した場合「時限 バッファ」に A、B 「時限終了バッファ」に C、D が格納されます。
「時限バッファ」が実行中に破棄された場合は C、D が実行されます。
破棄されずに「時限バッファ」が全て実行された場合 C,D は実行されません。
SysEx

記述例） VOL UP + VOL DOWN + 「あ」で「パニック」ファンクションを実行

F0 43 79 09 11 0C 32 04 65 12 66 0C 02 00 00 0D 00 00 C4 0A 07 00 00 0C 04 00 00
0A 07 00 00 0C 03 00 0F F7

コマンドスロット入力
コマンド
コマンド
コマンド
キャンセルがあっても リセット

0C =32 = 50 CS_SW89_1D
04 65 12 66 = DIRECT_MIDI_3（ MDI 99 49 66） 0C 02 00 00 =CACCO_START
0D 00 00 C4 = TIME_WAIT（+100／200msec） 0A 07 00 00= MIDI_RESET
0C 04 00 00 = TIME TAIL
0A 07 00 00 = MIDI_RESET（
MIDI） 0C 03 00 0F = CACCO_END

クリック音
コマンド
コマンド

コマンド

待つ

コマンド

22/30

コマンド
DIRECT_MIDI_3
DIRECT_MIDI_2
DIRECT_MIDI_1

最 小 値

最 小 値

28­21 20­14 13­7 6­0 28­21 20­14 13­7 6­0
0
0
0
0
7
7F
7F
7F NSX1 MIDI 3byte
0F
0
0
0
0F
3
7F
7F NSX1 MIDI 2byte
0F
10
0
0
0F
10
1
7F NSX1 MIDI 1byte

NOTEON

8

9

0

0

NOTEOFF

8

8

0

0

8

9

7F

ADV_PB

8

0E

0

0

8

0E

7F

REVOICEKASHI_POS_INC
KASHI_POS_SEL

8
9
9

1
1
2

0
0
0

0
0
0

9

2

0

KASHI_SLOT_SEL

9

3

0

0

9

3

0

MOJI_SEL

9

4

0

0

9

4

0

MOJI_SET_KASHI

9

5

0

0

VOL_SET
VOL_UP
VOL_DOWN
KEY_UP
KEY_DOWNTUNING_STOPTUNING_START

0A
0A
0A
0A
0A
0A
0A

1
2
3
4
4
5
5

0
0
0
1
0
0
1

0
0
0
0
0
0
0

0A

1

0

TUNING_TOGLE

0A

5

2

0

NSX1_GOKAN_OFF
NSX1_GOKAN_ON
NSX1_GOKAN_TOGL
E
MODE_NORMAL
MODE_DOREMIMIDI_RESET

0A
0A

6
6

0
1

0
0

0A

6

2

0

0A
0A
0A

8
8
7

0
1
0

0
0
0

ROM_RESET

0A

7

1

1

END_SLOT

0C

1

0

0

CACCO_START

0C

2

0

0

CACCO_END

0C

3

0

0

0C

3

0

CACCO_END_TIME

0C

3

1

0

0C

3

1

TIME_TAIL

0C

4

0

0

TIME_CANCEL

0C

5

0

0

TIME_WAIT

0D

0

0

0

0D

7F

7F

DIRECT_MIDI_OUT_3
DIRECT_MIDI_OUT_2
DIRECT_MIDI_OUT_1
SLOT_EXE

10
1A
19
0A

0
0
0
48

0
0
0
00

0
0
0
00

17
1A
19
0A

7F
3
0
48

7F
7F
1
00

解説

へ を 送信。 23­16:data1 15­8:data2 7­0:data3
へ を 送信。 15­8:data1 7­0:data0
へ を 送信。 7­0:data0
発音中でなければ発音する。発音中であれば音程を変化させ7Fる。音程は下位14bitで指定する。
発音中であれば音を消す。
NOTE ON時の音程に変化をつける。 中央値0x2000 最小0 最7F
大0x3FFF
発音中であれば再発音する。 消音中は何もしない。
歌詞の読み上げ位置をひとつ進める。
3F 歌詞の読み上げ位置を指定する
歌詞スロットを指定し、同時に読み上げ位置を歌詞先頭にす
0Fる。
7F 任意の文字をセットする
KASHI_POS_SEL、KASHI_SLOT_SELなどで指定した文字を読み上げ位置に待機させる。
8 NSX1全体の音量を0～8の9段階で指定する。
音量設定を１段階上げる
音量設定を１段階下げる
音程を 1 オクターブ上げる
音程を 1 オクターブ下げる
鍵盤キャリブレーション（チューニング）を止める
鍵盤キャリブレーション（チューニング）を開始する
鍵盤キャリブレーション（チューニング）停止開始を切替える
NSX­1互換を有効にする
NSX­1互換を無効にする
NSX­1互換有効無効を切り替える
通常（文字・歌詞読み上げ）モードにする
ドレミモードにする
NSX­1（音源部）をリセットし、初期設定動作を行う
FLASH ROMの歌詞データ、コマンドスロットを初期状態へ戻す
コマンドスロットの終了コマンド。特に動作はしない。
カッコ開始コマンド。 カッコ終了コマンドまでのコマンドを処理せずに貯める。
0F カッコ終了コマンド。下位4bitで実行条件を選択できる。
カッコ終了コマンド。カッコの中身は時限コマンドとして処0F理する。下位4bitで実行条件を選択できる。
時限終了コマンドの入力モードへ移行するコマンド。
CACCO_START aaa TIME_TAIL bbb CACCO_END_TIME と入力すると、 aaaは時限コマンド bbbは時限終了コマンドになる。
時限コマンド実行中だった場合、時限コマンドを削除し時限
終了コマンドを実行する。
コマンドの実行タイミングを調節するコマンド。時限バッ
7F
ファ内でのみ使用できる。
7F USBホストへMIDIメッセージを3バイト送信する
7F USBホストへMIDIメッセージを2バイト送信する
7F USBホストへMIDIメッセージを1バイト送信する
7F 下位7bitで指定したコマンドスロットが実行されるコマンド

表3 コマンド一覧
23/30

4

4‐1

コマンドスロット
コマンドスロットとは

コマンドスロットはポケット・ミクの操作によって、一連の動作として実行される複数のコマンドを記憶しておくための FLASH MEMORY 内の領域です。
● コマンドスロットは起動時やボタン操作時など様々なタイミング（表4 コマンドスロット一覧 の「呼び出しタイミング」）で呼び出され、その中に格納する複数のコマンドを実行します。
● コマンドスロットの内容を書き換えるとボタン操作等で実行される機能をカスタマイズできます。
● コマンドスロットの内容は外部 MIDI 機器からSysExで書き換える事が可能です。
● コマンドスロットの内容は本体内の FLASH ROM に記憶され、電源を切っても保持されます。
● コマンドスロットは 0~127 番まであり、0~119 番はシステムエクスクルーシブで書換可能なコマ
ンドスロット、120~127 番はシステムエクスクルーシブで書換できないコマンドスロットです。
●

4‐2

コマンドスロットを実行するコマンド

コマンド ( 0A 48 00 00 ­ 0A 48 00 7F )…下位7bitで指定したコマンドスロットが実行されるコマンドです。
SLOT_EXE

つの連続したコマンド A、SLOT_EXE、B があり SLOT_EXE で実行されるコマンドが C,Dだった場合、実行される順番は A、B、C、D です。
● コマンドスロットは 0~127 番まであります（詳細は「4 コマンドスロット」を参照）。
● 表4 コマンドスロット一覧 1 2 3で「呼び出しタイミング」が「なし」のコマンドスロットは
SLOT_EXE コマンドでのみ呼び出し、実行することが可能です。
● コマンドスロットの実行に条件を指定したい時やこの実行コマンドが必要なコマンドスロットを実行するためのコマンドです。通常のコマンドスロットはこのコマンド無しでも実行されます。
●

3

4‐3

コマンドスロットの実行例

ポケット・ミク 動作時にどのような MIDIメッセージを音源チップへ送信しているか、
具体的な例をいくつか挙げて詳細を説明します。
24/30

4‐3‐1

起動時

起動時に実行される MIDIメッセージ送信、コマンドスロットの実行は下記の順番で実行されます。
音源チップへ MIDI phonetic symbol (表2の文字リストの 128 文字 ) を登録● 音源チップへ MIDI B0 65 00 B0 64 00 B0 06 16 (ピッチベンドセンシティビティ 16) を送信● 音源チップへ MIDI B0 99 70 B0 98 02 B0 06 00 (Enable Auto Dynamics Control を OFF) を送信● 音源チップへ MIDI B0 7E 00 (CH0 モノモード) を送信● コマンドスロット 00 CS_MIDI_INIT (ドレミモード、音源チップへ MIDI ch0 リバーブ 10)● コマンドスロット 20 CS_MIDI_INIT2 (デフォルト：何も実行されません)● コマンドスロット 01 CS_KIDOU (USB 電源が認識できなければ 02 CS_KIDOU_BAT)●

デフォルトの 01 CS_KIDOU、02 CS_KIDOU_BATは「起動しました」としゃべり、最後に 30
CS_MIDI_INIT3 を実行します。
中断時も 30 CS_MIDI_INIT3が実行されます。 ( 30 CS_MIDI_INIT3は CS123 を実行＝ピッチベン
ドセンシティビティ 16 をUSB ホストへ送信 )
※

4‐3‐2

リセット時（パニック）

コマンドを実行した場合は起動時とほぼ同じです。
相違点は 01 CS_KIDOU, 02 CS_KIDOU_BAT の代わりに 30 CS_MIDI_INIT3 が実行されます。
MIDI_RESET

4‐3‐3

コネクタ、スイッチ

コネクタの状態に変化があった場合 表4 コマンドスロット一覧 の通り対応したコマンドスロットが実行されます。スイッチ状態に変化があった場合、対応したコマンドスロットが実行されるのに加え、 USB ホ
ストへシステムエクスクルーシブでスイッチ状態報告（2­6 スイッチ状態報告を参照）が送信されます。
4‐4

カーボンキーボード操作時のコマンドスロット

ノーマルモードとドレミモードで違うので分けて記述します。

25/30

4‐4‐1
●

●

●

●

4‐4‐2
●

●

●

●

4‐4‐3

カーボンキーボード ノーマルモード
スタイラスがカーボンキーボードにタッチした最初の時点
コマンドスロット 09 CS_KEYBOARD_ON
コマンド MOJI_SEL_KASHI、 NOTEON (半音単位)、 KASHI_POS_INC
鍵盤部にスタイラスが乗っている時
コマンド NOTEON(半音単位)
リボン部にスタイラスが乗っている時
コマンド NOTEON
鍵盤からペンを離した時コマンド NOTEOFF
コマンドスロット 10 CS_KEYBOARD_OFF

カーボン鍵盤 ドレミモード
スタイラスがカーボンキーボードにタッチした最初の時点
コマンドスロット 09 CS_KEYBOARD_ON
コマンド MOJI_SEL(ドレミファソラシのどれか)、 NOTEON(半音単位)
鍵盤部にスタイラスが乗っている時
鍵盤の音程が変わった場合のみ コマンド TIME_CANCEL、 MOJI_SEL、 REVOICE
コマンド NOTEON(半音単位)
リボン部にスタイラスが乗っている時
コマンド NOTEON
鍵盤からペンを離した時コマンド NOTEOFF
コマンドスロット 10 CS_KEYBOARD_OFF

カーボンキーボード MIDI OUT

カーボンキーボード操作時に呼び出されるコマンド CS_KEYBOARD_ON 、CS_KEYBOARD_OFF には、デフォルトの状態では USBから出力されるMIDI 信号に関するコマンド DIRECT_MIDI_OUT コマン
ドはありません。しかし、システムエクスクルーシブのコマンドスロット入力で追加する事も可能です。
26/30

●

●

●

●

●

スタイラスがカーボンキーボードにタッチした最初の時点
コマンドスロット 09 CS_KEYBOARD_ON
MIDI OUT ピッチベンド(半音単位)、 ノートオン
鍵盤の音程が変わった時
MIDI OUT ピッチベンド(半音単位)
リボン部にスタイラスが乗っている時
MIDI OUT ピッチベンド
リボン部から鍵盤部へ移動した時
MIDI OUT ピッチベンド(半音単位)
鍵盤からペンを離した際MIDI OUT Note off

コマンドスロット 10 CS_KEYBOARD_OFF

27/30

番号 0x

呼び出しタイミング
初期動作概要
起動後すぐ。またはCMD_MIDI_RESET実行時 ドレミモード選択、NSX1互換機能OFF
起動後 USB電源が確認できる場合「きどうしました」、CS_MIDI_INIT3を呼び出す
起動後 USB電源が無い場合「きどうしました」、CS_MIDI_INIT3を呼び出す
電源供給開始2秒後 CS_MIDI_INIT3を呼び出す
電源喪失
時限コマンド停止
オ ディオプラグを刺すなし
オ ディオプラグを抜く
時限コマンド停止を押す。押されているスイッチ数が増えるタイミ
7 07
CS_SW_ON
時限コマンド停止
ングで呼び出される
SW1～9を離す。押されているスイッチ数が減るタイミン
8 08
CS_SW_OFFなし
グで呼び出される。
CS_KEYBOARD_O
9 09
鍵盤をペンで触る
時限コマンド停止
N
CS_KEYBOARD_O
10 0A
鍵盤からペンを離す
0.2秒後 ピッチベンドを中央へ
FF
11 0B
CS_SW1D
SW1～9 が何も押されていない状態からSW1を押す。
歌詞スロット１番を選択
12 0C
CS_SW2D
上と同様にSW2
歌詞スロット２番を選択
13 0D
CS_SW3D
上と同様にSW3
歌詞スロット３番を選択
14 0E
CS_SW4D
上と同様にSW4
歌詞スロット４番を選択
15 0F
CS_SW5D
上と同様にSW5
歌詞スロット５番を選択
16 10
CS_SW6D
上と同様にSW6
モジュレーション60
17 11
CS_SW7D
上と同様にSW7なし
18 12
CS_SW8D
上と同様にSW8
音量アップ
19 13
CS_SW9D
上と同様にSW9
音量ダウン
NSX1起動後すぐ CS_MIDI_INITの後。 または
20 14
CS_MIDI_INIT2
リバーブ10
CMD_MIDI_RESET実行時。
SW1のみが押されている状態から、別のスイッチ状態へ
21 15
CS_SW1U
なし
推移したタイミングで呼び出される
22 16
CS_SW2U
上と同様にSW2
なし
23 17
CS_SW3U
上と同様にSW3なし
24 18
CS_SW4U
上と同様にSW4なし
25 19
CS_SW5U
上と同様にSW5なし
26 1A
CS_SW6U
上と同様にSW6
モジュレーション0
27 1B
CS_SW7U
上と同様にSW7なし
28 1C
CS_SW8U
上と同様にSW8なし
29 1D
CS_SW9U
上と同様にSW9なし
CS_KIDOU, CS_KIDOU_BAT終了時。または
CS123の呼び出し(MIDI_OUT CH0ピッチベンドセンシ
30 1E
CS_MIDI_INIT3
CMD_MIDI_RESET実行時
ティビティ16)
押されているスイッチの数が上昇し、SW7とSW1が押さ
31 1F
CS_SW1SD
歌詞スロット６番を選択れている状態へ推移
32 20
CS_SW2SD
上と同様にSW7+SW2
歌詞スロット７番を選択
33 21
CS_SW3SD
上と同様にSW7+SW3
歌詞スロット８番を選択
34 22
CS_SW4SD
上と同様にSW7+SW4
歌詞スロット９番を選択
35 23
CS_SW5SD
上と同様にSW7+SW5
歌詞スロット１０番を選択
36 24
CS_SW6SD
上と同様にSW7+SW6
ドレミモードにする
37 25
CS37
なし
なし
38 26
CS_SW8SD
２個上と同様にSW8
オクターブを上げる
39 27
CS_SW9SD
上と同様にSW9
オクターブを下げる
40 28
CS40
なし
なし
0
1
2
3
4
5
6

00
01
02
03
04
05
06

名称

CS_MIDI_INIT
CS_KIDOU
CS_KIDOU_BAT
CS_USB_ON
CS_USB_OFF
CS_AUDIO_ON
CS_AUDIO_OFF

NSX1
NSX39
NSX39
USB
USB
ー
ー
SW1～9

表4 コマンドスロット一覧 128/30

番号 0x

名称

41

29

CS_SW1SU

42
43
44
45
46
47
48
49

2A
2B
2C
2D
2E
2F
30
31

CS_SW2SU
CS_SW3SU
CS_SW4SU
CS_SW5SU
CS_SW6SU
CS47
CS_SW8SU
CS_SW9SU

50

32

CS_SW89_1D

51
52
53
54
55

33
34
35
36
37

CS_SW89_2D
CS_SW89_3D
CS_SW89_4D
CS_SW89_5D
CS_SW89_6D

56

38

CS_SW89_1U

57
58
59
60
61

39
3A
3B
3C
3D

CS_SW89_2U
CS_SW89_3U
CS_SW89_4U
CS_SW89_5U
CS_SW89_6U

62

3E

CS_SW8_1D

63
64
65
66
67

3F
40
41
42
43

CS_SW8_2D
CS_SW8_3D
CS_SW8_4D
CS_SW8_5D
CS_SW8_6D

68

44

CS_SW8_1U

69
70
71
72
73

45
46
47
48
49

CS_SW8_2U
CS_SW8_3U
CS_SW8_4U
CS_SW8_5U
CS_SW8_6U

74 4A

CS_SW9_1D

75 4B
76 4C
77 4D
78 4E
79 4F

CS_SW9_2D
CS_SW9_3D
CS_SW9_4D
CS_SW9_5D
CS_SW9_6D

8050

CS_SW9_1U

81
82
83
84
85

51
52
53
54
55

CS_SW9_2U
CS_SW9_3U
CS_SW9_4U
CS_SW9_5U
CS_SW9_6U

呼び出しタイミング
初期動作概要と のみが押されている状態から、別のスイッチ 時限コマンド停止状態へ推移
上と同様にSW7+SW2
時限コマンド停止
上と同様にSW7+SW3
時限コマンド停止
上と同様にSW7+SW4
時限コマンド停止
上と同様にSW7+SW5
時限コマンド停止
上と同様にSW7+SW6
なし
なし
なし
２個上と同様にSW7+SW8なし
上と同様にSW7+SW9
なし
押されているスイッチの数が上昇し、SW8とSW9とSW1 MIDIのリフレッシュが押されている状態へ推移
上と同様にSW8+SW9+SW2
なし
上と同様にSW8+SW9+SW3
NSX1互換のON,OFF切り替え
上と同様にSW8+SW9+SW4
なし
上と同様にSW8+SW9+SW5
チューニングのON,OFF切り替え
上と同様にSW8+SW9+SW6
なし
SW8とSW9とSW1のみが押されている状態から、別のス
なし
イッチ状態へ推移
上と同様にSW8+SW9+SW2
なし
上と同様にSW8+SW9+SW3
なし
上と同様にSW8+SW9+SW4
なし
上と同様にSW8+SW9+SW5
なし
上と同様にSW8+SW9+SW6
なし
押されているスイッチの数が上昇し、SW8とSW1が押さ なし
れている状態へ推移
上と同様にSW8+SW2
なし
上と同様にSW8+SW3
なし
上と同様にSW8+SW4
なし
上と同様にSW8+SW5
なし
上と同様にSW8+SW6
ベンドアップSW8とSW1のみが押されている状態から、別のスイッチなし
状態へ推移
上と同様にSW8+SW2
なし
上と同様にSW8+SW3
なし
上と同様にSW8+SW4
なし
上と同様にSW8+SW5
なし
上と同様にSW8+SW6
ベンドを戻す押されているスイッチの数が上昇し、SW9とSW1が押さ なし
れている状態へ推移
上と同様にSW9+SW2
なし
上と同様にSW9+SW3
なし
上と同様にSW9+SW4
なし
上と同様にSW9+SW5
なし
上と同様にSW9+SW6
ベンドダウン
SW9とSW1のみが押されている状態から、別のスイッチなし
状態へ推移
上と同様にSW9+SW2
なし
上と同様にSW9+SW3
なし
上と同様にSW9+SW4
なし
上と同様にSW9+SW5
なし
上と同様にSW9+SW6
ベンドを戻すSW7 SW1

表4 コマンドスロット一覧 229/30

番号 0x86

名称

56

CS_SW6_1D

87 57
88 58
89 59
90 5A

CS_SW6_2D
CS_SW6_3D
CS_SW6_4D
CS_SW6_5D

91 5B

CS_SW6_1U

92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119

5C
5D
5E
5F
60
61
62
63
64
65
66
67
68
69
6A
6B
6C
6D
6E
6F
70
71
72
73
74
75
76
77

CS_SW6_2U
CS_SW6_3U
CS_SW6_4U
CS_SW6_5U
CS96
CS97
CS98
CS99
CS100
CS101
CS102
CS103
CS104
CS105
CS106
CS107
CS108
CS109
CS110
CS111
CS112
CS113
CS114
CS115
CS116
CS117
CS118
CS119

120 78

CS_SW89_7D

121 79

CS_SW89_7U

122
123
124
125
126
127

7A
7B
7C
7D
7E
7F

CS122
CS123
CS124
CS125
CS126
CS127

呼び出しタイミング
初期動作概要押されているスイッチの数が上昇し、SW6とSW1が押さ 歌詞スロット１１番を選択れている状態へ推移
上と同様にSW6+SW2
歌詞スロット１２番を選択
上と同様にSW6+SW3
歌詞スロット１３番を選択
上と同様にSW6+SW4
歌詞スロット１４番を選択
上と同様にSW6+SW5
歌詞スロット１５番を選択
SW6とSW1のみが押されている状態から、別のスイッチ
時限コマンド停止
状態へ推移
上と同様にSW6+SW2
時限コマンド停止
上と同様にSW6+SW3
時限コマンド停止
上と同様にSW6+SW4
時限コマンド停止
上と同様にSW6+SW5
時限コマンド停止
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
なし
押されているスイッチの数が上昇し、SW8とSW9とSW7 「イニシャライズ しますか？」 コマンドスロット、歌詞が押されている状態へ推移
を工場出荷時に戻す。
SW8とSW9とSW7のみが押されている状態から、別のス
時限コマンド停止
イッチ状態へ推移
CS_SW89_7D中断時
キャンセルしました
MIDI_INIT3で呼び出される。
MIDI_OUT CH0ピッチベンドセンシティビティ16
なし
時限コマンド停止なし
時限コマンド停止
なし「ねぎ」
なし「がっけんおとなのかがくまがじん」

表4 コマンドスロット一覧 330/30