サウンド
キューブは内部に音を再生するための圧電スピーカーを 1 つ持っています。 この圧電スピーカーは以下の特性(characteristic)を使うことでキューブ内に用意されている効果音や MIDI note number を使ったメロディーを再生できます。
プロパティ | 値 |
---|---|
Characteristic UUID | 10B20104-5B3B-4571-9508-CF3EFCD7BBAE |
Properties | Write |
Descriptor | Sound Control |
書き込み操作
効果音の再生
以下に示す構成のデータを書き込むことでキューブ内に用意されている効果音を再生できます。 例は"Mat in"の効果音を再生します。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 制御の種類 | 0x02 (効果音の再生) |
1 | UInt8 | 効果音の ID | 0x04 (Mat in) |
2 | UInt8 | 音量 | 0xFF (最大) |
効果音の ID
効果音の ID は0
以上10
以下の範囲で指定します。ID と効果音の種類の対応は以下のとおりです。
効果音の ID | 効果音の種類 |
---|---|
0 | Enter |
1 | Selected |
2 | Cancel |
3 | Cursor |
4 | Mat in |
5 | Mat out |
6 | Get 1 |
7 | Get 2 |
8 | Get 3 |
9 | Effect 1 |
10 | Effect 2 |
音量
音量は0
以上255
以下の範囲で指定可能です。
0
は音量 0(OFF)で0
以外は全て最大音量になります。
MIDI note number の再生
以下に示す構成のデータを書き込むことで MIDI note number を使ったメロディーを再生できます。例は"C5-D5-E5"を繰り返し再生しつづけます。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 制御の種類 | 0x03 (MIDI note number の再生) |
1 | UInt8 | 繰り返し回数 | 0x00 (無限) |
2 | UInt8 | Operation の数 | 0x03 (3 つ) |
3 | UInt8 | 再生時間 | 0x1E (300 ミリ秒) |
4 | UInt8 | MIDI note number | 0x3C (C5) |
5 | UInt8 | 音量 | 0xFF (最大) |
6 | UInt8 | 再生時間 | 0x1E (300 ミリ秒) |
7 | UInt8 | MIDI note number | 0x3E (D5) |
8 | UInt8 | 音量 | 0xFF (最大) |
9 | UInt8 | 再生時間 | 0x1E (300 ミリ秒) |
10 | UInt8 | MIDI note number | 0x40 (E5) |
11 | UInt8 | 音量 | 0xFF (最大) |
データ構造と Operation
この書き込み操作のデータは以下の図のような長さが可変な構造になっています。
Operation とは、以下の 3 つをまとめたものを表します。
- 再生時間
- MIDI note number
- 音量
繰り返し回数
Operation の繰り返し回数を0
以上255
以下の範囲で指定します。0
は「無限回」を意味し、次の書き込み操作が行われるまで Operation の繰り返しが終わりません。1
以上255
以下の範囲では指定した回数繰り返した後に再生を停止します。
Operation の数
Operation の数を1
以上59
以下の範囲で指定します。ここで指定する値が続く Operation の数より小さい場合はここで指定した値の数の Operation だけが繰り返されます。ここで指定する値が続く Operation の数より大きい場合はエラーとなり書き込み操作が破棄されます。
再生時間
MIDI note number を再生する時間を1
以上255
の範囲で指定します。指定した値 x10 ミリ秒再生します。
MIDI Note Number
再生する MIDI note number を指定します。値の範囲は0
以上128
です。Note name との対応は MIDI note number と Note name 参照してください。
再生の停止
以下に示す構成のデータを書き込むことで効果音の生成や MIDI note number の再生を停止できます。
データ位置 | タイプ | 内容 | 例 |
---|---|---|---|
0 | UInt8 | 制御の種類 | 0x01 (再生の停止) |
Additional information
MIDI note number と Note name
MIDI note number と Note name の対応は以下のとおりです。MIDI note number = 57 が 440 ヘルツの音に対応します。また、MIDI note number = 128 は無音となります。
オクターブ | 音名 | |||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
C | C# | D | D# | E | F | F# | G | G# | A | A# | B | |
0 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 |
1 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 |
2 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 |
3 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
4 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 |
5 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 |
6 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 |
7 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 |
8 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 |
9 | 108 | 109 | 110 | 111 | 112 | 113 | 114 | 115 | 116 | 117 | 118 | 119 |
10 | 120 | 121 | 122 | 123 | 124 | 125 | 126 | 127 |