data acquisition

Comedi control and measurement interface

I used the COMEDI data acquisition library in C for polling of streams of accelerometer signals from a data acquisition card in some versions of the DranceWare control software for The Drancing accelerometer music "air instrument" (in combination with Java Native Interface (JNI) for bringing acquired signals into a Java GUI).

DAQSource

DAQSource

A composite software component that supplies acquired data to Java after polling the data acquisition card in C with the Comedilib.

The acquired data is polled in C via the COMEDILIB data acquisition routines, and some calibration and conditioning is applied. Note how the component (classifier) network (defined on the right), and the component parts network (defined on the left) is in this case nearly identical since there is only one part of each defined component.

Top level UML Composite Structure Diagram of Drancing and DranceWare JSyn

Top level UML Composite Structure Diagram of Drancing and DranceWare JSyn

Note that there are 4 main domains within the synthesis with (arbitrarily chosen) port colours:

  • The (continuous) analogue electrical "hardware" domain with ports in CYAN, from which data is acquired.
  • The (discrete) digital data acquisition domain with ports in BLACK, which conditioned signals are used to modulate the audio synthesis parameters and to trigger samples. This cycle is slower than the audio synthesis cycle.
  • The audio synthesis domain in MAGENTA, which performs the audio synthesis of modulated sine oscillations and triggered samples. This cycle is by default set at 44.1 kHz.
  • The user interface control domain in GRAY. Selected parameters of the system may be tuned using a GUI control layer (not shown). Such ports are here not exported to the component boundary; I prefer to think of these as being connected to a layer "orthogonal" to the main synthesis cycles ( imagine controls "out of the page" hovering above the component, or the front control panel of a hifi component with knobs and switches wired up to the GRAY ports).

DranceWare: Java: UML of simple accelerometer sensor monitor

DranceWare: Java: UML of simple accelerometer sensor monitor

In the implementation signals are fed from low-level C data acquisition (using COMEDILIB) to Java via JNI.

Java Swing accelerometer signal view

Java Swing accelerometer signal view

The 5x3 = 15 signals are shown for triaxial accelerometers attached to left and right hands and feet, and to the body, in a "star" pattern.

Syndicate content