adding event triggering with artnet support
This commit is contained in:
30
src/timec.ts
30
src/timec.ts
@ -13,12 +13,9 @@ import io = require("socket.io");
|
||||
var ioClient = require("socket.io-client")("http://localhost:5000");
|
||||
var ios = io(http);
|
||||
|
||||
import rtpmidi = require("rtpmidi");
|
||||
var midisession = rtpmidi.manager.createSession({
|
||||
localName:"Node Timecode",
|
||||
bonjourName:"Node Timecode",
|
||||
port: 5004
|
||||
});
|
||||
const artnetp = require("artnet");
|
||||
const universe = 21;
|
||||
var artnet = artnetp({host:"192.168.1.255"});
|
||||
|
||||
class FrameTime{
|
||||
lframe = 0;
|
||||
@ -118,8 +115,8 @@ class Timecode {
|
||||
var d = new Date().getTime() - this.startTime;
|
||||
this.toTrigger.forEach(e=>{
|
||||
if(e.time.milliseconds <= d) {
|
||||
ios.emit("midi", e.midi);
|
||||
midisession.sendMessage([e.midi.channel, e.midi.note, e.midi.value]);
|
||||
ios.emit("artnet", e.art);
|
||||
artnet.set(universe, e.art.subnet)
|
||||
var i = this.toTrigger.indexOf(e);
|
||||
this.toTrigger.splice(i, 1);
|
||||
}
|
||||
@ -167,9 +164,8 @@ class Timecode {
|
||||
}
|
||||
|
||||
class TrackEvent {
|
||||
midi: {
|
||||
channel:number,
|
||||
note:number,
|
||||
art: {
|
||||
subnet:number,
|
||||
value:number
|
||||
}
|
||||
time:FrameTime;
|
||||
@ -219,10 +215,9 @@ ios.on("connection", socket=>{
|
||||
});
|
||||
socket.on("set", (data)=>{
|
||||
var tid = data.track;
|
||||
var midi = data.midi;
|
||||
var time = new FrameTime(data.time);
|
||||
var tracke = new TrackEvent();
|
||||
tracke.midi = midi;
|
||||
tracke.art = data.art;
|
||||
tracke.time = time;
|
||||
db.get(tid + ".triggers").push(tracke).write();
|
||||
socket.emit("set_finished", tracke);
|
||||
@ -233,11 +228,4 @@ ios.on("connection", socket=>{
|
||||
});
|
||||
});
|
||||
|
||||
midisession.on("ready", ()=>{
|
||||
http.listen(5001);
|
||||
setInterval(()=>{
|
||||
midisession.sendMessage([0x80, 0x40]);
|
||||
midisession.sendMessage([0x90, 0x40, 0x7f]);
|
||||
//midisession.sendMessage([1, 5, 100]);
|
||||
}, 500);
|
||||
});
|
||||
http.listen(5001);
|
||||
|
Reference in New Issue
Block a user