-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathREADME
58 lines (40 loc) · 2.89 KB
/
README
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
This is a library to control Native Instrument Maschine MK2.
http://www.native-instruments.com/en/products/maschine/
Wireshark
=========
usb.idVendor == 0x17cc and usb.idProduct == 0x1140
Filter pads packets
usb.data_len == 65
Filter buttons and wheels
usb.data_len == 25
Data TX
=======
Orange all the pads:
80200800200800200800200800200800200800200800200800200800200800200800200800200800200800200800200800
80 => msg_type
20 => red
08 => green
00 => blue
Colors vary from 00 to 80
Color groups and transport:
81000020000020001020001020001020001020002000002000001020001020001020001020003c7f003c7f20000a20000a0a0a0a0a0a0a0a0a
81 => msg_type
then each group button has two leds so [left, right] => [[r,g,b],[r,g,b]]
then there are 8 bytes left, each ones are the light intensity (monochrome) of the 8 transport buttons
Light all the buttons left
820a0a0a0a3f3f0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a0a
82 => msg_type
then 1 byte for the light of each buttons:
control, step, browse, sampling, browse_left, browse_right, all, auto_wr,
top0, ..., top7
scene, pattern, pad_mode, navigate, duplicate, select, solo, mute,
volume, swing, tempo, master_left, master_right, enter, note_repeat
Draw on the screen:
e00000000020000800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007fffffffffffff001fffffffffffffc007fffffffffffff001fffffffffffffc80000000000000802000000000000020080000000000000802000000000000028003c78073c000802000f1e01df8002008003c78073c000802000f1e01cf000280066cc0f660008020019b303c180020080066cc0f660008020019b303d9800280060c01b6000080200183006c180020080060c01b6600080200183006d9800280060c0337c0008020018300cc300020080060c0333c0008020018300ccf8002
529 bytes total
e0 => msg_type, left screen
0000000020000800 => ?
8 * 256 = 2048 pixels, 1 bit => pixel on/off
e0000008002000080080060c03f660008020018300fc300020080060c03f660008020018300fc1800280066cc03660008020019b300c600020080066cc03660008020019b300d980028003c78033c000802000f1e00c60002008003c78033c000802000f1e00cf000280000000000000802000000000000020080000000000000802000000000000027fffffffffffff001fffffffffffffc007fffffffffffff001fffffffffffffc000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
e1000038002000080000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000
e1 => msg_type, right screen