From 6cb106425069357899170f4af84f91d92e5ed05a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jurij=20Podgor=C5=A1ek?= Date: Tue, 28 Jun 2022 19:16:48 +0200 Subject: [PATCH] README, dodan midi in za zogico --- README.md | 19 +++++++++ kegel.js | 122 ++++++++++++++++++++++++++++++++---------------------- 2 files changed, 91 insertions(+), 50 deletions(-) diff --git a/README.md b/README.md index 8738502..0fecb86 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,21 @@ # kegel +Mere: +Najdaljši premer: 82mm +Špica: 15mm +32mm je lahko dolg vstavek +27mm je široka spodnja odprtina (blizu držalu) + +Zapečemo ga s strani (izrez + prispajk nazaj) + +## TODO +- Li-poly baterije +- konektorji za baterije +- gumbi za vklop +- še en kegel sestaviva +- napajanje za rock pi X (QC3.0) +- mikrofon naredit v kegel +- wifi na tablico ALI drug displej +- pedalko sprintat in povezat +- bluetooth; je stabilen? +- senzorji včasih ne odštejejo gravitacije diff --git a/kegel.js b/kegel.js index f495b21..6ae9393 100644 --- a/kegel.js +++ b/kegel.js @@ -45,73 +45,95 @@ let rotVisina = 0 oscWS.on('message', ({ address, args }) => { DEBUG.osc && console.log('MSG OSC', address, args.map(x => x.toFixed(4))) - //const re = /\/ww\/(d+)\/([a-zA-Z]+)/ + // Wavey Wind sporočila const re = /\/ww\/(\d+)\/([a-zA-Z]+)/ const m = address.match(re) - const index = m[1] - const addr = m[2] + if (m) { + const index = m[1] + const addr = m[2] - if (addr == 'euler') { - //const eVisina = Math.sin(args[0] + args[1]) - const eVisina = Math.sin(args[2]) - rotVisina = 24 + Math.round(((eVisina / 2) + 0.5) * 24) - //console.log("rotVisina", rotVisina) - } + if (addr == 'euler') { + //const eVisina = Math.sin(args[0] + args[1]) + const eVisina = Math.sin(args[2]) + rotVisina = 24 + Math.round(((eVisina / 2) + 0.5) * 24) + //console.log("rotVisina", rotVisina) + } - if (addr == 'accel') { - const acX = args[0] - const acY = args[1] - const acZ = args[2] + if (addr == 'accel') { + const acX = args[0] + const acY = args[1] + const acZ = args[2] - // Y os je kegel po dolgem - ignoriramo - const vsota = acX + acZ + // Y os je kegel po dolgem - ignoriramo + const vsota = acX + acZ - if (vsota > zaznava && !cakaj) { + if (vsota > zaznava && !cakaj) { - cakaj = true + cakaj = true - // Pavza - setTimeout(() => { - //console.log("nehaj cakat") - cakaj = false - }, cakajInterval * 1000) + // Pavza + setTimeout(() => { + //console.log("nehaj cakat") + cakaj = false + }, cakajInterval * 1000) - const midiKanal = 144 + parseInt(index) + const midiKanal = 144 + parseInt(index) - // Od 24 do 48 - const accval = Math.sin((vsota - zaznava) / 3) - //console.log(acX, accval) - // Acc visina - const visina = (midiKanal == 0) - ? 24 + Math.round((accval / 2.5) * 36) - : 48 + Math.round((accval / 2.5) * 72) - - //const visina = rotVisina + // Od 24 do 48 + const accval = Math.sin((vsota - zaznava) / 3) + //console.log(acX, accval) + // Acc visina + const visina = (midiKanal == 0) + ? 24 + Math.round((accval / 2.5) * 36) + : 48 + Math.round((accval / 2.5) * 72) - //console.log('posiljam midi', [144, visina, 127]) - /* - oscWS.send({ - address: '/midi', - args: [192, 0, 127] - }) - */ - oscWS.send({ - address: '/midi', - args: [midiKanal, visina, 127] - }) - console.log('vklopi', midiKanal, visina) + //const visina = rotVisina - // Ugasni cez en cas - let izklop = razponTona[0] + Math.random() * (razponTona[1] - razponTona[0]) - setTimeout(() => { + //console.log('posiljam midi', [144, visina, 127]) + /* oscWS.send({ address: '/midi', - args: [midiKanal, visina, 0] + args: [192, 0, 127] }) - console.log('izklopi', midiKanal, visina) - }, izklop * 1000) + */ + oscWS.send({ + address: '/midi', + args: [midiKanal, visina, 127] + }) + console.log('vklopi', midiKanal, visina) + + // Ugasni cez en cas + let izklop = razponTona[0] + Math.random() * (razponTona[1] - razponTona[0]) + setTimeout(() => { + oscWS.send({ + address: '/midi', + args: [midiKanal, visina, 0] + }) + console.log('izklopi', midiKanal, visina) + }, izklop * 1000) + } } + } else { + console.log(address) + } + + if (address === '/midi-in') { + console.log(args) + oscWS.send({ + address: '/midi', + args: [150, args[1], args[2]] + }) + + // Ugasni cez en cas + let izklop = razponTona[0] + Math.random() * (razponTona[1] - razponTona[0]) + setTimeout(() => { + oscWS.send({ + address: '/midi', + args: [150, args[1], 0] + }) + console.log('izklopi', 150, args[1]) + }, izklop * 1000) } })