Разработка программного обеспечения для конкретного устройства MIDI - PullRequest
3 голосов
/ 26 февраля 2011

У меня есть Behringer BCR2000 , и устройство потрясающее, но программное обеспечение действительно ужасно. Он не работает каждый раз, когда я пытаюсь скопировать пресет со своего компьютера на устройство, что, по меньшей мере, довольно неудобно.

Я хочу разработать новое простое программное обеспечение для устройства (Java или JRuby, поскольку программное обеспечение было написано на Java), но я не знаю, как мне поступить в этом направлении.

Будет ли работать декомпилятор Java?

Ответы [ 4 ]

3 голосов
/ 26 февраля 2011

Первое, что нужно сделать, это запустить MIDI-OX и поместить его в середину поставляемого с ним программного обеспечения и устройства. Это часто делается с помощью драйверов обратной связи, таких как MIDI Yoke (на том же сайте, что и MIDI-OX).

Я бы не стал тратить время впустую на имеющееся программное обеспечение. Там не будет ничего, что вы не сможете быстро выяснить самостоятельно.

Помните, что это устройство можно перепрограммировать. Это очень гибкий. Я предполагаю, что вы заинтересованы в написании программного обеспечения, которое устанавливает пресеты? Вероятно, вы найдете данные для этого в дампе SYSEX. Снова запустите MIDI-OX и прослушайте его.

РЕДАКТИРОВАТЬ: Похоже, что все пресеты уже доступны в файлах необработанных данных SYSEX на http://www.behringer.com/EN/Products/BCR2000.aspx. Вы можете скачать их и посмотреть их в любом шестнадцатеричном редакторе, но MIDI-OX делает достойную работу по определению начальной и конечной точек сообщений. Это выглядит довольно просто, но без аппаратного обеспечения передо мной было бы трудно дать объяснение, какие байты что делают.

РЕДАКТИРОВАТЬ # 2: Хорошо, я понял кое-что из этого. Каждое сообщение начинается как стандартное сообщение SYSEX с байта f0 и заканчивается байтом f7. Второй байт в сообщении - это идентификатор производителя, который Берингер использует здесь 00. Затем мы попадаем в полезную информацию сообщения, и это все, что я покажу здесь:

20 32 7f 7f 20 00 00 24 rev R1
20 32 7f 7f 20 00 01 24 preset
20 32 7f 7f 20 00 02 20 .name 'NI Pro 53                '
20 32 7f 7f 20 00 03 20 .snapshot off

И так продолжается. Обратите внимание, что приведенный выше шестнадцатеричный код - это действительные значения байтов, но текст на самом деле ASCII. Знаю, странный способ показать это, но я просто пытаюсь проиллюстрировать, что у вас есть заголовок. Я не знаю, что означает 20 32 7f 7f 20 00, но я подозреваю, что это означает «Эй, обнови пресет». Следующий байт, похоже, является идентификатором последовательности. Следующий байт кажется какой-то командой или чем-то еще. Фактическая работа, кажется, во всех ASCII оттуда.

Надеюсь, это поможет вам начать. Опять же, вы можете найти все это в предустановленных файлах. Для справки, вот начало файла, на который я смотрел:

000000  F0 00 20 32 7F 7F 20 00 00 24 72 65 76 20 52 31  .. 2.. ..$rev R1
000010  F7 F0 00 20 32 7F 7F 20 00 01 24 70 72 65 73 65  ... 2.. ..$prese
000020  74 F7 F0 00 20 32 7F 7F 20 00 02 20 20 2E 6E 61  t... 2.. ..  .na
000030  6D 65 20 27 4E 49 20 50 72 6F 20 35 33 20 20 20  me 'NI Pro 53   
000040  20 20 20 20 20 20 20 20 20 20 20 20 27 F7 F0 00              '...
000050  20 32 7F 7F 20 00 03 20 20 2E 73 6E 61 70 73 68   2.. ..  .snapsh
000060  6F 74 20 6F 66 66 F7 F0 00 20 32 7F 7F 20 00 04  ot off... 2.. ..
000070  20 20 2E 72 65 71 75 65 73 74 20 6F 66 66 F7 F0    .request off..
000080  00 20 32 7F 7F 20 00 05 20 20 2E 65 67 72 6F 75  . 2.. ..  .egrou
000090  70 73 20 34 F7 F0 00 20 32 7F 7F 20 00 06 20 20  ps 4... 2.. ..  
0000A0  2E 66 6B 65 79 73 20 6F 6E F7 F0 00 20 32 7F 7F  .fkeys on... 2..
0000B0  20 00 07 20 20 2E 6C 6F 63 6B 20 6F 66 66 F7 F0   ..  .lock off..
0000C0  00 20 32 7F 7F 20 00 08 20 20 2E 69 6E 69 74 F7  . 2.. ..  .init.
0000D0  F0 00 20 32 7F 7F 20 00 09 24 65 6E 63 6F 64 65  .. 2.. ..$encode
0000E0  72 20 31 F7 F0 00 20 32 7F 7F 20 00 0A 20 20 2E  r 1... 2.. ..  .
0000F0  65 61 73 79 70 61 72 20 43 43 20 31 20 32 30 20  easypar CC 1 20 
000100  30 20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0  0 127 absolute..
000110  00 20 32 7F 7F 20 00 0B 20 20 2E 73 68 6F 77 76  . 2.. ..  .showv
000120  61 6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00  alue on... 2.. .
000130  0C 20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0  .  .mode 12dot..
000140  00 20 32 7F 7F 20 00 0D 24 65 6E 63 6F 64 65 72  . 2.. ..$encoder
000150  20 32 F7 F0 00 20 32 7F 7F 20 00 0E 20 20 2E 65   2... 2.. ..  .e
000160  61 73 79 70 61 72 20 43 43 20 31 20 32 31 20 30  asypar CC 1 21 0
000170  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
000180  20 32 7F 7F 20 00 0F 20 20 2E 73 68 6F 77 76 61   2.. ..  .showva
000190  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 10  lue on... 2.. ..
0001A0  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
0001B0  20 32 7F 7F 20 00 11 24 65 6E 63 6F 64 65 72 20   2.. ..$encoder 
0001C0  34 F7 F0 00 20 32 7F 7F 20 00 12 20 20 2E 65 61  4... 2.. ..  .ea
0001D0  73 79 70 61 72 20 43 43 20 31 20 34 30 20 30 20  sypar CC 1 40 0 
0001E0  31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00 20  127 absolute... 
0001F0  32 7F 7F 20 00 13 20 20 2E 73 68 6F 77 76 61 6C  2.. ..  .showval
000200  75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 14 20  ue on... 2.. .. 
000210  20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00 20   .mode 12dot... 
000220  32 7F 7F 20 00 15 24 65 6E 63 6F 64 65 72 20 35  2.. ..$encoder 5
000230  F7 F0 00 20 32 7F 7F 20 00 16 20 20 2E 65 61 73  ... 2.. ..  .eas
000240  79 70 61 72 20 43 43 20 31 20 34 33 20 30 20 31  ypar CC 1 43 0 1
000250  32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32  27 absolute... 2
000260  7F 7F 20 00 17 20 20 2E 73 68 6F 77 76 61 6C 75  .. ..  .showvalu
000270  65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 18 20 20  e on... 2.. ..  
000280  2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00 20 32  .mode 12dot... 2
000290  7F 7F 20 00 19 24 65 6E 63 6F 64 65 72 20 37 F7  .. ..$encoder 7.
0002A0  F0 00 20 32 7F 7F 20 00 1A 20 20 2E 65 61 73 79  .. 2.. ..  .easy
0002B0  70 61 72 20 50 43 20 31 20 6F 66 66 20 6F 66 66  par PC 1 off off
0002C0  F7 F0 00 20 32 7F 7F 20 00 1B 20 20 2E 73 68 6F  ... 2.. ..  .sho
0002D0  77 76 61 6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F  wvalue on... 2..
0002E0  20 00 1C 20 20 2E 6D 6F 64 65 20 31 32 64 6F 74   ..  .mode 12dot
0002F0  F7 F0 00 20 32 7F 7F 20 00 1D 24 65 6E 63 6F 64  ... 2.. ..$encod
000300  65 72 20 38 F7 F0 00 20 32 7F 7F 20 00 1E 20 20  er 8... 2.. ..  
000310  2E 65 61 73 79 70 61 72 20 43 43 20 31 20 37 20  .easypar CC 1 7 
000320  30 20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0  0 127 absolute..
000330  00 20 32 7F 7F 20 00 1F 20 20 2E 73 68 6F 77 76  . 2.. ..  .showv
000340  61 6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00  alue on... 2.. .
000350  20 20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0     .mode 12dot..
000360  00 20 32 7F 7F 20 00 21 24 65 6E 63 6F 64 65 72  . 2.. .!$encoder
000370  20 39 F7 F0 00 20 32 7F 7F 20 00 22 20 20 2E 65   9... 2.. ."  .e
000380  61 73 79 70 61 72 20 43 43 20 31 20 35 30 20 30  asypar CC 1 50 0
000390  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
0003A0  20 32 7F 7F 20 00 23 20 20 2E 73 68 6F 77 76 61   2.. .#  .showva
0003B0  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 24  lue on... 2.. .$
0003C0  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
0003D0  20 32 7F 7F 20 00 25 24 65 6E 63 6F 64 65 72 20   2.. .%$encoder 
0003E0  31 30 F7 F0 00 20 32 7F 7F 20 00 26 20 20 2E 65  10... 2.. .&  .e
0003F0  61 73 79 70 61 72 20 43 43 20 31 20 35 31 20 30  asypar CC 1 51 0
000400  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
000410  20 32 7F 7F 20 00 27 20 20 2E 73 68 6F 77 76 61   2.. .'  .showva
000420  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 28  lue on... 2.. .(
000430  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
000440  20 32 7F 7F 20 00 29 24 65 6E 63 6F 64 65 72 20   2.. .)$encoder 
000450  31 31 F7 F0 00 20 32 7F 7F 20 00 2A 20 20 2E 65  11... 2.. .*  .e
000460  61 73 79 70 61 72 20 43 43 20 31 20 35 35 20 30  asypar CC 1 55 0
000470  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
000480  20 32 7F 7F 20 00 2B 20 20 2E 73 68 6F 77 76 61   2.. .+  .showva
000490  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 2C  lue on... 2.. .,
0004A0  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
0004B0  20 32 7F 7F 20 00 2D 24 65 6E 63 6F 64 65 72 20   2.. .-$encoder 
0004C0  31 34 F7 F0 00 20 32 7F 7F 20 00 2E 20 20 2E 65  14... 2.. ..  .e
0004D0  61 73 79 70 61 72 20 43 43 20 31 20 34 35 20 30  asypar CC 1 45 0
0004E0  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
0004F0  20 32 7F 7F 20 00 2F 20 20 2E 73 68 6F 77 76 61   2.. ./  .showva
000500  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 30  lue on... 2.. .0
000510  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
000520  20 32 7F 7F 20 00 31 24 65 6E 63 6F 64 65 72 20   2.. .1$encoder 
000530  31 35 F7 F0 00 20 32 7F 7F 20 00 32 20 20 2E 65  15... 2.. .2  .e
000540  61 73 79 70 61 72 20 43 43 20 31 20 34 36 20 30  asypar CC 1 46 0
000550  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
000560  20 32 7F 7F 20 00 33 20 20 2E 73 68 6F 77 76 61   2.. .3  .showva
000570  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 34  lue on... 2.. .4
000580  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
000590  20 32 7F 7F 20 00 35 24 65 6E 63 6F 64 65 72 20   2.. .5$encoder 
0005A0  31 36 F7 F0 00 20 32 7F 7F 20 00 36 20 20 2E 65  16... 2.. .6  .e
0005B0  61 73 79 70 61 72 20 43 43 20 31 20 34 37 20 30  asypar CC 1 47 0
0005C0  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
0005D0  20 32 7F 7F 20 00 37 20 20 2E 73 68 6F 77 76 61   2.. .7  .showva
0005E0  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 38  lue on... 2.. .8
0005F0  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
000600  20 32 7F 7F 20 00 39 24 65 6E 63 6F 64 65 72 20   2.. .9$encoder 
000610  31 37 F7 F0 00 20 32 7F 7F 20 00 3A 20 20 2E 65  17... 2.. .:  .e
000620  61 73 79 70 61 72 20 43 43 20 31 20 32 36 20 30  asypar CC 1 26 0
000630  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
000640  20 32 7F 7F 20 00 3B 20 20 2E 73 68 6F 77 76 61   2.. .;  .showva
000650  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 3C  lue on... 2.. .<
000660  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
000670  20 32 7F 7F 20 00 3D 24 65 6E 63 6F 64 65 72 20   2.. .=$encoder 
000680  32 35 F7 F0 00 20 32 7F 7F 20 00 3E 20 20 2E 65  25... 2.. .>  .e
000690  61 73 79 70 61 72 20 43 43 20 31 20 33 34 20 30  asypar CC 1 34 0
0006A0  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
0006B0  20 32 7F 7F 20 00 3F 20 20 2E 73 68 6F 77 76 61   2.. .?  .showva
0006C0  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 40  lue on... 2.. .@
0006D0  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
0006E0  20 32 7F 7F 20 00 41 24 65 6E 63 6F 64 65 72 20   2.. .A$encoder 
0006F0  32 39 F7 F0 00 20 32 7F 7F 20 00 42 20 20 2E 65  29... 2.. .B  .e
000700  61 73 79 70 61 72 20 43 43 20 31 20 33 34 20 30  asypar CC 1 34 0
000710  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...
000720  20 32 7F 7F 20 00 43 20 20 2E 73 68 6F 77 76 61   2.. .C  .showva
000730  6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 44  lue on... 2.. .D
000740  20 20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00    .mode 12dot...
000750  20 32 7F 7F 20 00 45 24 65 6E 63 6F 64 65 72 20   2.. .E$encoder 
000760  33 32 F7 F0 00 20 32 7F 7F 20 00 46 20 20 2E 65  32... 2.. .F  .e
000770  61 73 79 70 61 72 20 43 43 20 31 20 37 20 30 20  asypar CC 1 7 0 
000780  31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00 20  127 absolute... 
000790  32 7F 7F 20 00 47 20 20 2E 73 68 6F 77 76 61 6C  2.. .G  .showval
0007A0  75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 48 20  ue on... 2.. .H 
0007B0  20 2E 6D 6F 64 65 20 31 32 64 6F 74 F7 F0 00 20   .mode 12dot... 
0007C0  32 7F 7F 20 00 49 24 65 6E 63 6F 64 65 72 20 33  2.. .I$encoder 3
0007D0  33 F7 F0 00 20 32 7F 7F 20 00 4A 20 20 2E 65 61  3... 2.. .J  .ea
0007E0  73 79 70 61 72 20 43 43 20 31 20 37 30 20 30 20  sypar CC 1 70 0 
0007F0  31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00 20  127 absolute... 
000800  32 7F 7F 20 00 4B 20 20 2E 73 68 6F 77 76 61 6C  2.. .K  .showval
000810  75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 4C 20  ue on... 2.. .L 
000820  20 2E 6D 6F 64 65 20 31 64 6F 74 F7 F0 00 20 32   .mode 1dot... 2
000830  7F 7F 20 00 4D 24 65 6E 63 6F 64 65 72 20 33 34  .. .M$encoder 34
000840  F7 F0 00 20 32 7F 7F 20 00 4E 20 20 2E 65 61 73  ... 2.. .N  .eas
000850  79 70 61 72 20 43 43 20 31 20 37 31 20 30 20 31  ypar CC 1 71 0 1
000860  32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32  27 absolute... 2
000870  7F 7F 20 00 4F 20 20 2E 73 68 6F 77 76 61 6C 75  .. .O  .showvalu
000880  65 20 6F 6E F7 F0 00 20 32 7F 7F 20 00 50 20 20  e on... 2.. .P  
000890  2E 6D 6F 64 65 20 31 64 6F 74 F7 F0 00 20 32 7F  .mode 1dot... 2.
0008A0  7F 20 00 51 24 65 6E 63 6F 64 65 72 20 33 35 F7  . .Q$encoder 35.
0008B0  F0 00 20 32 7F 7F 20 00 52 20 20 2E 65 61 73 79  .. 2.. .R  .easy
0008C0  70 61 72 20 43 43 20 31 20 37 32 20 30 20 31 32  par CC 1 72 0 12
0008D0  37 20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F  7 absolute... 2.
0008E0  7F 20 00 53 20 20 2E 73 68 6F 77 76 61 6C 75 65  . .S  .showvalue
0008F0  20 6F 6E F7 F0 00 20 32 7F 7F 20 00 54 20 20 2E   on... 2.. .T  .
000900  6D 6F 64 65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F  mode 1dot... 2..
000910  20 00 55 24 65 6E 63 6F 64 65 72 20 33 36 F7 F0   .U$encoder 36..
000920  00 20 32 7F 7F 20 00 56 20 20 2E 65 61 73 79 70  . 2.. .V  .easyp
000930  61 72 20 43 43 20 31 20 37 33 20 30 20 31 32 37  ar CC 1 73 0 127
000940  20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F   absolute... 2..
000950  20 00 57 20 20 2E 73 68 6F 77 76 61 6C 75 65 20   .W  .showvalue 
000960  6F 6E F7 F0 00 20 32 7F 7F 20 00 58 20 20 2E 6D  on... 2.. .X  .m
000970  6F 64 65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20  ode 1dot... 2.. 
000980  00 59 24 65 6E 63 6F 64 65 72 20 33 37 F7 F0 00  .Y$encoder 37...
000990  20 32 7F 7F 20 00 5A 20 20 2E 65 61 73 79 70 61   2.. .Z  .easypa
0009A0  72 20 43 43 20 31 20 31 30 35 20 30 20 31 32 37  r CC 1 105 0 127
0009B0  20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F   absolute... 2..
0009C0  20 00 5B 20 20 2E 73 68 6F 77 76 61 6C 75 65 20   .[  .showvalue 
0009D0  6F 6E F7 F0 00 20 32 7F 7F 20 00 5C 20 20 2E 6D  on... 2.. .\  .m
0009E0  6F 64 65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20  ode 1dot... 2.. 
0009F0  00 5D 24 65 6E 63 6F 64 65 72 20 33 38 F7 F0 00  .]$encoder 38...
000A00  20 32 7F 7F 20 00 5E 20 20 2E 65 61 73 79 70 61   2.. .^  .easypa
000A10  72 20 43 43 20 31 20 31 30 36 20 30 20 31 32 37  r CC 1 106 0 127
000A20  20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F   absolute... 2..
000A30  20 00 5F 20 20 2E 73 68 6F 77 76 61 6C 75 65 20   ._  .showvalue 
000A40  6F 6E F7 F0 00 20 32 7F 7F 20 00 60 20 20 2E 6D  on... 2.. .`  .m
000A50  6F 64 65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20  ode 1dot... 2.. 
000A60  00 61 24 65 6E 63 6F 64 65 72 20 33 39 F7 F0 00  .a$encoder 39...
000A70  20 32 7F 7F 20 00 62 20 20 2E 65 61 73 79 70 61   2.. .b  .easypa
000A80  72 20 43 43 20 31 20 31 30 37 20 30 20 31 32 37  r CC 1 107 0 127
000A90  20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F   absolute... 2..
000AA0  20 00 63 20 20 2E 73 68 6F 77 76 61 6C 75 65 20   .c  .showvalue 
000AB0  6F 6E F7 F0 00 20 32 7F 7F 20 00 64 20 20 2E 6D  on... 2.. .d  .m
000AC0  6F 64 65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20  ode 1dot... 2.. 
000AD0  00 65 24 65 6E 63 6F 64 65 72 20 34 30 F7 F0 00  .e$encoder 40...
000AE0  20 32 7F 7F 20 00 66 20 20 2E 65 61 73 79 70 61   2.. .f  .easypa
000AF0  72 20 43 43 20 31 20 31 30 38 20 30 20 31 32 37  r CC 1 108 0 127
000B00  20 61 62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F   absolute... 2..
000B10  20 00 67 20 20 2E 73 68 6F 77 76 61 6C 75 65 20   .g  .showvalue 
000B20  6F 6E F7 F0 00 20 32 7F 7F 20 00 68 20 20 2E 6D  on... 2.. .h  .m
000B30  6F 64 65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20  ode 1dot... 2.. 
000B40  00 69 24 65 6E 63 6F 64 65 72 20 34 31 F7 F0 00  .i$encoder 41...
000B50  20 32 7F 7F 20 00 6A 20 20 2E 65 61 73 79 70 61   2.. .j  .easypa
000B60  72 20 43 43 20 31 20 37 35 20 30 20 31 32 37 20  r CC 1 75 0 127 
000B70  61 62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20  absolute... 2.. 
000B80  00 6B 20 20 2E 73 68 6F 77 76 61 6C 75 65 20 6F  .k  .showvalue o
000B90  6E F7 F0 00 20 32 7F 7F 20 00 6C 20 20 2E 6D 6F  n... 2.. .l  .mo
000BA0  64 65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20 00  de 1dot... 2.. .
000BB0  6D 24 65 6E 63 6F 64 65 72 20 34 32 F7 F0 00 20  m$encoder 42... 
000BC0  32 7F 7F 20 00 6E 20 20 2E 65 61 73 79 70 61 72  2.. .n  .easypar
000BD0  20 43 43 20 31 20 37 36 20 30 20 31 32 37 20 61   CC 1 76 0 127 a
000BE0  62 73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20 00  bsolute... 2.. .
000BF0  6F 20 20 2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E  o  .showvalue on
000C00  F7 F0 00 20 32 7F 7F 20 00 70 20 20 2E 6D 6F 64  ... 2.. .p  .mod
000C10  65 20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20 00 71  e 1dot... 2.. .q
000C20  24 65 6E 63 6F 64 65 72 20 34 33 F7 F0 00 20 32  $encoder 43... 2
000C30  7F 7F 20 00 72 20 20 2E 65 61 73 79 70 61 72 20  .. .r  .easypar 
000C40  43 43 20 31 20 37 37 20 30 20 31 32 37 20 61 62  CC 1 77 0 127 ab
000C50  73 6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20 00 73  solute... 2.. .s
000C60  20 20 2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E F7    .showvalue on.
000C70  F0 00 20 32 7F 7F 20 00 74 20 20 2E 6D 6F 64 65  .. 2.. .t  .mode
000C80  20 31 64 6F 74 F7 F0 00 20 32 7F 7F 20 00 75 24   1dot... 2.. .u$
000C90  65 6E 63 6F 64 65 72 20 34 34 F7 F0 00 20 32 7F  encoder 44... 2.
000CA0  7F 20 00 76 20 20 2E 65 61 73 79 70 61 72 20 43  . .v  .easypar C
000CB0  43 20 31 20 37 38 20 30 20 31 32 37 20 61 62 73  C 1 78 0 127 abs
000CC0  6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20 00 77 20  olute... 2.. .w 
000CD0  20 2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0   .showvalue on..
000CE0  00 20 32 7F 7F 20 00 78 20 20 2E 6D 6F 64 65 20  . 2.. .x  .mode 
000CF0  31 64 6F 74 F7 F0 00 20 32 7F 7F 20 00 79 24 65  1dot... 2.. .y$e
000D00  6E 63 6F 64 65 72 20 34 35 F7 F0 00 20 32 7F 7F  ncoder 45... 2..
000D10  20 00 7A 20 20 2E 65 61 73 79 70 61 72 20 43 43   .z  .easypar CC
000D20  20 31 20 31 31 30 20 30 20 31 32 37 20 61 62 73   1 110 0 127 abs
000D30  6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20 00 7B 20  olute... 2.. .{ 
000D40  20 2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0   .showvalue on..
000D50  00 20 32 7F 7F 20 00 7C 20 20 2E 6D 6F 64 65 20  . 2.. .|  .mode 
000D60  31 64 6F 74 F7 F0 00 20 32 7F 7F 20 00 7D 24 65  1dot... 2.. .}$e
000D70  6E 63 6F 64 65 72 20 34 36 F7 F0 00 20 32 7F 7F  ncoder 46... 2..
000D80  20 00 7E 20 20 2E 65 61 73 79 70 61 72 20 43 43   .~  .easypar CC
000D90  20 31 20 31 31 31 20 30 20 31 32 37 20 61 62 73   1 111 0 127 abs
000DA0  6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20 00 7F 20  olute... 2.. .. 
000DB0  20 2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0   .showvalue on..
000DC0  00 20 32 7F 7F 20 01 00 20 20 2E 6D 6F 64 65 20  . 2.. ..  .mode 
000DD0  31 64 6F 74 F7 F0 00 20 32 7F 7F 20 01 01 24 65  1dot... 2.. ..$e
000DE0  6E 63 6F 64 65 72 20 34 37 F7 F0 00 20 32 7F 7F  ncoder 47... 2..
000DF0  20 01 02 20 20 2E 65 61 73 79 70 61 72 20 43 43   ..  .easypar CC
000E00  20 31 20 31 31 32 20 30 20 31 32 37 20 61 62 73   1 112 0 127 abs
000E10  6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20 01 03 20  olute... 2.. .. 
000E20  20 2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0   .showvalue on..
000E30  00 20 32 7F 7F 20 01 04 20 20 2E 6D 6F 64 65 20  . 2.. ..  .mode 
000E40  31 64 6F 74 F7 F0 00 20 32 7F 7F 20 01 05 24 65  1dot... 2.. ..$e
000E50  6E 63 6F 64 65 72 20 34 38 F7 F0 00 20 32 7F 7F  ncoder 48... 2..
000E60  20 01 06 20 20 2E 65 61 73 79 70 61 72 20 43 43   ..  .easypar CC
000E70  20 31 20 31 31 36 20 30 20 31 32 37 20 61 62 73   1 116 0 127 abs
000E80  6F 6C 75 74 65 F7 F0 00 20 32 7F 7F 20 01 07 20  olute... 2.. .. 
000E90  20 2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0   .showvalue on..
000EA0  00 20 32 7F 7F 20 01 08 20 20 2E 6D 6F 64 65 20  . 2.. ..  .mode 
000EB0  31 64 6F 74 F7 F0 00 20 32 7F 7F 20 01 09 24 65  1dot... 2.. ..$e
000EC0  6E 63 6F 64 65 72 20 34 39 F7 F0 00 20 32 7F 7F  ncoder 49... 2..
000ED0  20 01 0A 20 20 2E 65 61 73 79 70 61 72 20 43 43   ..  .easypar CC
000EE0  20 31 20 38 30 20 30 20 31 32 37 20 61 62 73 6F   1 80 0 127 abso
000EF0  6C 75 74 65 F7 F0 00 20 32 7F 7F 20 01 0B 20 20  lute... 2.. ..  
000F00  2E 73 68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0 00  .showvalue on...
000F10  20 32 7F 7F 20 01 0C 20 20 2E 6D 6F 64 65 20 31   2.. ..  .mode 1
000F20  64 6F 74 F7 F0 00 20 32 7F 7F 20 01 0D 24 65 6E  dot... 2.. ..$en
000F30  63 6F 64 65 72 20 35 30 F7 F0 00 20 32 7F 7F 20  coder 50... 2.. 
000F40  01 0E 20 20 2E 65 61 73 79 70 61 72 20 43 43 20  ..  .easypar CC 
000F50  31 20 38 31 20 30 20 31 32 37 20 61 62 73 6F 6C  1 81 0 127 absol
000F60  75 74 65 F7 F0 00 20 32 7F 7F 20 01 0F 20 20 2E  ute... 2.. ..  .
000F70  73 68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0 00 20  showvalue on... 
000F80  32 7F 7F 20 01 10 20 20 2E 6D 6F 64 65 20 31 64  2.. ..  .mode 1d
000F90  6F 74 F7 F0 00 20 32 7F 7F 20 01 11 24 65 6E 63  ot... 2.. ..$enc
000FA0  6F 64 65 72 20 35 31 F7 F0 00 20 32 7F 7F 20 01  oder 51... 2.. .
000FB0  12 20 20 2E 65 61 73 79 70 61 72 20 43 43 20 31  .  .easypar CC 1
000FC0  20 38 32 20 30 20 31 32 37 20 61 62 73 6F 6C 75   82 0 127 absolu
000FD0  74 65 F7 F0 00 20 32 7F 7F 20 01 13 20 20 2E 73  te... 2.. ..  .s
000FE0  68 6F 77 76 61 6C 75 65 20 6F 6E F7 F0 00 20 32  howvalue on... 2
000FF0  7F 7F 20 01 14 20 20 2E 6D 6F 64 65 20 31 64 6F  .. ..  .mode 1do
001000  74 F7 F0 00 20 32 7F 7F 20 01 15 24 65 6E 63 6F  t... 2.. ..$enco
001010  64 65 72 20 35 32 F7 F0 00 20 32 7F 7F 20 01 16  der 52... 2.. ..
001020  20 20 2E 65 61 73 79 70 61 72 20 43 43 20 31 20    .easypar CC 1 
001030  38 33 20 30 20 31 32 37 20 61 62 73 6F 6C 75 74  83 0 127 absolut
001040  65 F7 F0 00 20 32 7F 7F 20 01 17 20 20 2E 73 68  e... 2.. ..  .sh
001050  6F 77 76 61 6C 75 65 20 6F 6E F7 F0 00 20 32 7F  owvalue on... 2.
001060  7F 20 01 18 20 20 2E 6D 6F 64 65 20 31 64 6F 74  . ..  .mode 1dot
001070  F7 F0 00 20 32 7F 7F 20 01 19 24 65 6E 63 6F 64  ... 2.. ..$encod
001080  65 72 20 35 33 F7 F0 00 20 32 7F 7F 20 01 1A 20  er 53... 2.. .. 
001090  20 2E 65 61 73 79 70 61 72 20 43 43 20 31 20 35   .easypar CC 1 5
0010A0  20 30 20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7   0 127 absolute.
0010B0  F0 00 20 32 7F 7F 20 01 1B 20 20 2E 73 68 6F 77  .. 2.. ..  .show
0010C0  76 61 6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20  value on... 2.. 
0010D0  01 1C 20 20 2E 6D 6F 64 65 20 31 64 6F 74 F7 F0  ..  .mode 1dot..
0010E0  00 20 32 7F 7F 20 01 1D 24 65 6E 63 6F 64 65 72  . 2.. ..$encoder
0010F0  20 35 34 F7 F0 00 20 32 7F 7F 20 01 1E 20 20 2E   54... 2.. ..  .
001100  65 61 73 79 70 61 72 20 43 43 20 31 20 38 37 20  easypar CC 1 87 
001110  30 20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0  0 127 absolute..
001120  00 20 32 7F 7F 20 01 1F 20 20 2E 73 68 6F 77 76  . 2.. ..  .showv
001130  61 6C 75 65 20 6F 6E F7 F0 00 20 32 7F 7F 20 01  alue on... 2.. .
001140  20 20 20 2E 6D 6F 64 65 20 31 64 6F 74 F7 F0 00     .mode 1dot...
001150  20 32 7F 7F 20 01 21 24 65 6E 63 6F 64 65 72 20   2.. .!$encoder 
001160  35 35 F7 F0 00 20 32 7F 7F 20 01 22 20 20 2E 65  55... 2.. ."  .e
001170  61 73 79 70 61 72 20 43 43 20 31 20 38 38 20 30  asypar CC 1 88 0
001180  20 31 32 37 20 61 62 73 6F 6C 75 74 65 F7 F0 00   127 absolute...          
1 голос
/ 26 февраля 2011

Я не думаю, что необходимо декомпилировать все Java-приложение, однако вам, вероятно, нужно будет прослушать соединение, чтобы получить представление о том, как компьютер взаимодействует с MIDI-устройством. Патчи обычно передаются по MID-сигналам управления, которые разрешены для конкретного поставщика, и в этом ваша проблема.

Боюсь, что я не могу предоставить какую-либо дополнительную информацию, поскольку я никогда не пробовал подобный проект. Я надеюсь, что это небольшое количество знаний по крайней мере несколько полезно.

0 голосов
/ 22 мая 2016

Сначала вам нужно выгрузить файлы Sysex (как указано в MIDI_OX при запуске), затем вам нужно изменить один параметр за другим и найти, какое значение изменилось в SysExfile.Конечно, это отнимает много времени, поскольку производители не опубликовали значение полезной нагрузки в файле sysex.

0 голосов
/ 26 февраля 2011

Возможно.Пока они не использовали обфускатор в коде, это не было бы ужасно.

Я не знаю, как сделать любой MIDI с Java, но я знаю, что много профессионального аудио MIDIустройства документируют свои MIDI-протоколы в руководстве.Возможно, вам будет проще отказаться от того, что они сделали, и начать с нуля.

Очень быстрый поиск в Google привел меня к здесь .На самом деле не смотрел на это, но это могло бы помочь.

И быстрый взгляд на руководство указывает на то, что информации о миди достаточно, чтобы составить некоторые образованные предположения о том, какими будут данные..

Я скажу, это немного трудоемко, но это может быть очень интересный проект.

...