"Program" łączy się za pomocą websocket - tak samo jak łączysz się otwierając stronę web remote w przeglądarce. (wszystkie dane które są przesyłane z serwera(dot2) do okna przeglądarki możesz podglądnąć narzedziami dla programistów w opcjach przeglądarki)
program wysyła zapytanie do dot2 np o stan executorów
client.send('{"requestType":"playbacks","startIndex":[300,400,500,600,700,800],"itemsCount":[8,8,8,8,8,8],"pageIndex":' + pageIndex + ',"itemsType":[3,3,3,3,3,3],"view":3,"execButtonViewMode":2,"buttonsViewMode":0,"session":' + sessionnr + ',"maxRequests":1}');
sessionnr to nr aktualnej sesji
w odpowiedzi otrzymuję całą masę danych o stanie tych przycisków - czy są aktywne, uruchomione, jakie mają ewentualnie opisy itd.
easymidi Tutaj masz bibliotekę i przykłady
https://www.npmjs.com/package/easymidi
ja to zrobiłem tak że np nasłuchuje komend noteon
input.on('noteon', function (params) {
// params = {note: ..., velocity: ..., channel: ...}
});
w środku tej funkci sprawdzam np wartość note i wysyłam odpowiedni komunikat do dot2
client.send('{"requestType":"playbacks_userInput","cmdline":"","execIndex":' + execIndexNr + ',"pageIndex":' + pageIndex + ',"buttonId":0,"pressed":true,"released":false,"type":0,"session":' + sessionnr + ',"maxRequests":0}');
execIndexNr to nr executora w dot2
dla noteoff zmienia się tylko
"pressed":true,"released":false,"
na
"pressed":false,"released":true,"
Ostatnio edytowany przez Krzysio (2020-05-25 11:18:11)