Premik midi v OSC kanal

main
Jurij Podgoršek 2022-05-07 15:30:55 +02:00
parent 6ea1d9e49b
commit 2a5a4d0a15
1 changed files with 11 additions and 22 deletions

View File

@ -5,8 +5,12 @@ const OSCPORT = 57120;
const PORT = 6676 const PORT = 6676
// Do we have a problem, shall we debug? // Do we have a problem, shall we debug?
const DEBUG = true const DEBUG = {
osc: true,
udp: false
}
// MIDI out
const MIDI = false const MIDI = false
@ -26,8 +30,6 @@ const fs = require('fs')
if (MIDI) { if (MIDI) {
const midi = require('midi') const midi = require('midi')
let midiOn = false
let midiNotes = {}
} }
@ -93,7 +95,7 @@ function openSerial() {
// Arduino OSC gre v web // Arduino OSC gre v web
scon.on('message', msg => { scon.on('message', msg => {
// Debug incoming osc // Debug incoming osc
if (DEBUG) { if (DEBUG.osc) {
console.log('osc msg', msg) console.log('osc msg', msg)
} }
@ -171,7 +173,7 @@ scudp.on('open', () => {
}) })
scudp.on('message', (msg) => { scudp.on('message', (msg) => {
if (DEBUG) { if (DEBUG.udp) {
console.log('got UDP msg', msg); console.log('got UDP msg', msg);
} }
@ -246,22 +248,9 @@ const sendAll = (msg, info, oscWS, osclients) => {
}, info, oscWS, osclients) }, info, oscWS, osclients)
} }
if (msg.address == '/accel') {
if (MIDI) { if (MIDI) {
if (msg.args[1] > 2000) { if (msg.address == '/midi') {
console.log("SEND MIDI!") mo.send(msg.args)
const visina = Math.round((msg.args[1] - 2000) / 100)
midiNotes[visina] = true
mo.send([144, visina, 127])
midiOn = true
}
if (msg.args[1] < 2000 && midiOn) {
Object.keys(midiNotes).forEach(visina => {
mo.send([128, visina, 127])
})
midiOn = false
}
} }
} }
@ -273,7 +262,7 @@ const sendAll = (msg, info, oscWS, osclients) => {
}) })
if (scudp) { if (scudp) {
if (DEBUG) { if (DEBUG.udp) {
console.log("UDP SEND", msg) console.log("UDP SEND", msg)
} }
scudp.send(msg) scudp.send(msg)