diff options
author | neauoire <[email protected]> | 2020-11-09 10:25:57 -0800 |
---|---|---|
committer | neauoire <[email protected]> | 2020-11-09 10:25:57 -0800 |
commit | 5cd09b2619e9f569120724cb5678fff91ced21b1 (patch) | |
tree | 56ede805fb1b5e8d96af9c46bb0e2e340a059bb5 /desktop | |
parent | 7e520805a29a8e2421636ab7dfe1384683017d12 (diff) | |
download | Orca-5cd09b2619e9f569120724cb5678fff91ced21b1.tar.gz Orca-5cd09b2619e9f569120724cb5678fff91ced21b1.zip |
Implemented wiring
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/sources/scripts/client.js | 2 | ||||
-rw-r--r-- | desktop/sources/scripts/clock.js | 11 | ||||
-rw-r--r-- | desktop/sources/scripts/core/io/midi.js | 4 | ||||
-rw-r--r-- | desktop/sources/scripts/core/io/osc.js | 2 | ||||
-rw-r--r-- | desktop/sources/scripts/core/library.js | 30 |
5 files changed, 29 insertions, 20 deletions
diff --git a/desktop/sources/scripts/client.js b/desktop/sources/scripts/client.js index 6af4247..47fc0e1 100644 --- a/desktop/sources/scripts/client.js +++ b/desktop/sources/scripts/client.js @@ -12,7 +12,7 @@ /* global Theme */ function Client () { - this.version = 177 + this.version = 178 this.library = library this.theme = new Theme(this) diff --git a/desktop/sources/scripts/clock.js b/desktop/sources/scripts/clock.js index 95086cf..d64272b 100644 --- a/desktop/sources/scripts/clock.js +++ b/desktop/sources/scripts/clock.js @@ -62,10 +62,10 @@ function Clock (client) { this.isPaused = false if (this.isPuppet === true) { console.warn('Clock', 'External Midi control') - if (!pulse.frame || midiStart) { // no frames counted while paused (starting from no clock, unlikely) or triggered by MIDI clock START - this.setFrame(0) // make sure frame aligns with pulse count for an accurate beat + if (!pulse.frame || midiStart) { // no frames counted while paused (starting from no clock, unlikely) or triggered by MIDI clock START + this.setFrame(0) // make sure frame aligns with pulse count for an accurate beat pulse.frame = 0 - pulse.count = 5 // by MIDI standard next pulse is the beat + pulse.count = 5 // by MIDI standard next pulse is the beat } } else { if (msg === true) { client.io.midi.sendClockStart() } @@ -93,7 +93,7 @@ function Clock (client) { count: 0, last: null, timer: null, - frame: 0 // paused frame counter + frame: 0 // paused frame counter } this.tap = function () { @@ -109,8 +109,7 @@ function Clock (client) { }, 2000) } if (pulse.count == 0) { - if (this.isPaused) { pulse.frame++ } - else { + if (this.isPaused) { pulse.frame++ } else { if (pulse.frame > 0) { this.setFrame(client.orca.f + pulse.frame) pulse.frame = 0 diff --git a/desktop/sources/scripts/core/io/midi.js b/desktop/sources/scripts/core/io/midi.js index 7f4875a..c5691aa 100644 --- a/desktop/sources/scripts/core/io/midi.js +++ b/desktop/sources/scripts/core/io/midi.js @@ -146,7 +146,7 @@ function Midi (client) { this.selectOutput = function (id) { if (id === -1) { this.outputIndex = -1; console.log('MIDI', 'Select Output Device: None'); return } - if (!this.outputs[id]) { console.warn('MIDI',`Unknown device with id ${id}`); return } + if (!this.outputs[id]) { console.warn('MIDI', `Unknown device with id ${id}`); return } this.outputIndex = parseInt(id) console.log('MIDI', `Select Output Device: ${this.outputDevice().name}`) @@ -155,7 +155,7 @@ function Midi (client) { this.selectInput = function (id) { if (this.inputDevice()) { this.inputDevice().onmidimessage = null } if (id === -1) { this.inputIndex = -1; console.log('MIDI', 'Select Input Device: None'); return } - if (!this.inputs[id]) { console.warn('MIDI',`Unknown device with id ${id}`); return } + if (!this.inputs[id]) { console.warn('MIDI', `Unknown device with id ${id}`); return } this.inputIndex = parseInt(id) this.inputDevice().onmidimessage = (msg) => { this.receive(msg) } diff --git a/desktop/sources/scripts/core/io/osc.js b/desktop/sources/scripts/core/io/osc.js index 635e2ea..7058d50 100644 --- a/desktop/sources/scripts/core/io/osc.js +++ b/desktop/sources/scripts/core/io/osc.js @@ -32,7 +32,7 @@ function Osc (client) { this.play = function ({ path, msg }) { if (!this.socket) { console.warn('OSC', 'Unavailable socket'); return } const oscMsg = new osc.Message(path) - for (var i = 0; i < msg.length; i++) { + for (let i = 0; i < msg.length; i++) { oscMsg.append(client.orca.valueOf(msg.charAt(i))) } this.socket.send(oscMsg, (err) => { diff --git a/desktop/sources/scripts/core/library.js b/desktop/sources/scripts/core/library.js index 9319ec1..fae31ba 100644 --- a/desktop/sources/scripts/core/library.js +++ b/desktop/sources/scripts/core/library.js @@ -168,12 +168,17 @@ library.j = function OperatorJ (orca, x, y, passive) { this.name = 'jumper' this.info = 'Outputs northward operand' - this.ports.val = { x: 0, y: -1 } - this.ports.output = { x: 0, y: 1, output: true } - this.operation = function (force = false) { - orca.lock(this.x, this.y + 1) - return this.listen(this.ports.val) + const val = this.listen({ x: 0, y: -1, output: true }) + if (val != this.glyph) { + let i = 0 + while (orca.inBounds(this.x, this.y + i)) { + if (this.listen({ x: 0, y: ++i }) != this.glyph) { break } + } + this.addPort('input', { x: 0, y: -1 }) + this.addPort('output', { x: 0, y: i, output: true }) + return val + } } } @@ -442,12 +447,17 @@ library.y = function OperatorY (orca, x, y, passive) { this.name = 'jymper' this.info = 'Outputs westward operand' - this.ports.val = { x: -1, y: 0 } - this.ports.output = { x: 1, y: 0, output: true } - this.operation = function (force = false) { - orca.lock(this.x + 1, this.y) - return this.listen(this.ports.val) + const val = this.listen({ x: -1, y: 0, output: true }) + if (val != this.glyph) { + let i = 0 + while (orca.inBounds(this.x + i, this.y)) { + if (this.listen({ x: ++i, y: 0 }) != this.glyph) { break } + } + this.addPort('input', { x: -1, y: 0 }) + this.addPort('output', { x: i, y: 0, output: true }) + return val + } } } |