stackmat-signal-processor

0.1.0 • Public • Published

Stackmat Signal Processor

An Audio Worklet to process Stackmat Signals in real time and communicating an event stream through the Worker's message broker.

Example usage

A simple example of how to implement the Stackmat Signal Processor with an Analyser.

import StackmatSignalProcessor from 'stackmat-signal-processor'

async function connect() {
  // Connect to media device
  let stream = await navigator.mediaDevices.getUserMedia({
    "audio": {"optional": [{"echoCancellation": false}]}
  })

  // Get the Audio Context
  const audioContext = new AudioContext({
    "echoCancellation": false,
    "noiseSuppression": false
  })

  // Create relevant Audio Nodes
  const microphone = audioContext.createMediaStreamSource(stream)

  // Connecting the StackmatSignalProcessor
  await audioContext.audioWorklet.addModule(StackmatSignalProcessor)

  // Create an Audio Node for the Stackmat Signal Processor
  const stackmatSignal = new AudioWorkletNode(audioContext, 'StackmatSignalProcessor')

  microphone.connect(stackmatSignal)
  stackmatSignal.connect(audioContext.destination)

  stackmatSignal.port.onmessage = event => {
    handle(event.data)
  }
}

Note: Do not connect the Audio nodes to the device, as the Stackmat Signal Processor using the audio output for data states, doesn't sound pleasant.

Message format

{
    "state": {
      "id": 6,
      "descriptor": "LEFT",
    },
    "rightHand": false,
    "leftHand": true,
    "bothHands": false,
    "isReset": false,
    "isRunning": true,
    "time": 12373
  }

Timers Supported so far

✔ Stackmat Timer Gen 4

✔ Stackmat Timer Gen 4 (with faulty pad detection)

❌ Stackmat Timer Gen 3

❌ Yuxin Timer v2

❌ Moyu Timer

Dependencies (0)

    Dev Dependencies (0)

      Package Sidebar

      Install

      npm i stackmat-signal-processor

      Weekly Downloads

      6

      Version

      0.1.0

      License

      MIT

      Unpacked Size

      15.7 kB

      Total Files

      7

      Last publish

      Collaborators

      • odder