Difference between revisions of "EditorX-81 Sensor Input Processing"

From I-CubeX Wiki
Jump to: navigation, search
(Inversion)
 
(12 intermediate revisions by the same user not shown)
Line 1: Line 1:
The Processing sub-section configures a sensor input to apply algorithms to the sensor input value(s).
+
The Processing sub-section configures a sensor input to apply algorithms to the sensor input value(s). The Visualize button opens a window that displays the [[EditorX-81_Sensor_Input_Signal_Flow | Signal Flow]] of the sensor data.
 +
 
 +
[[File:editorx-81_processing_analog_section.png|250px]] [[File:editorx-81_processing_digital_section.png|250px]]
 +
 
  
 
==Processing==
 
==Processing==
Line 19: Line 22:
 
See also the [[Firmware-810_Command-106 |EDIT CONFIG]] command for more information about processing methods than provided here.
 
See also the [[Firmware-810_Command-106 |EDIT CONFIG]] command for more information about processing methods than provided here.
  
The input range of analog sensors is displayed in Volt (0 to 5 V). The input range of digital sensors is displayed as a percentage (0 to 100 %) of the full range. For example, the Orient4D pitch range is -180º to +180º, so the size of the range is 360º so that 10% of the range represents the value -180 + 18 = -162º and 90% of the range represents +162º. Consult the product datasheet of the digital sensor for more details wrt. the applicable units and size of the range.
 
  
 +
==Input Range==
 +
 +
The input range is set using the "Min" and "Max" values. The input range of analog sensors is displayed in Volt (0 to 5 V). The input range of digital sensors is displayed as a percentage (0 to 100 %) of the full range. For example, the Orient4D pitch range is -180º to +180º, so the size of the range is 360º so that 10% of the range represents the value -180 + 36 = -144º and 90% of the range represents +144º. Consult the product datasheet of the digital sensor for more details wrt. the applicable units and size of the range.
 +
 +
If there is noise, interference, crosstalk from other inputs or another unwanted signal in the input value below or above a specific level increase the Min value and/or lower the Max value to exclude it from further processing.
  
 
==Continuous==
 
==Continuous==
Line 30: Line 37:
 
==Peak / Dip==
 
==Peak / Dip==
  
The Peak / Dip detection method starts searching for a peak or dip if the sensor value equals or crosses the Min threshold (ie. the Min value of the Range slider below the Processing menu). As long as each subsequent sensor value is greater than the previous value, no value is transmitted as a MIDI message. As soon as the sensor value is smaller or equal as the previous value a MIDI message is output where the sensor value is scaled between the Min and Max value of the Range. After the peak is detected and output, no new peak will be searched until the sensor value is equal or lower than the Min threshold.  
+
The Peak detection method starts searching for a peak if the sensor value equals or crosses the Min threshold (ie. the Min value of the Range slider below the Processing menu). As long as each subsequent sensor value is greater than the previous value, no value is transmitted as a MIDI message. As soon as the sensor value is smaller than or equal to the previous value a MIDI message is output where the sensor value is scaled between the Min and Max value of the Range. After the peak is detected and output, no new peak will be searched until the sensor value is equal to or lower than the Min threshold.  
If the Inversion method is enabled, the search for a dip is started if the sensor value is lower than the Max value of the Range slider. A MIDI message is output as soon as the sensor value is equal or smaller than the Min value of the Range slider. No new dip will be searched until the sensor value is equal or higher than the Max value.  
+
 
The number of samples that are analyzed before establishing whether the sensor value is equal or smaller (peak) or larger (dip) than the previous sensor value can be set separately. Setting the number of samples higher than 1 allows for sub-peaks, eg. due to noise, to be filtered out.
+
If Inversion is enabled, if the sensor value is lower than the Max value of the Range slider, a search for a dip (instead of a peak) is started. As long as each subsequent sensor value is smaller than the previous value, no value is transmitted as a MIDI message. As soon as the sensor value is greater than or equal to the previous value a MIDI message is output where the sensor value is scaled between the Min and Max value of the Range. After the dip is detected and output, no new dip will be searched until the sensor value is equal to or higher than the Max value.
 +
 
 +
If Peak End (or Dip End) is selected, and a peak or dip has been detected, a MIDI message with value 0 is output as soon as the sensor value is equal to or smaller than the Min value of the Range slider, or, if Inversion is enabled, a MIDI message is output with value 127 (or 16383 in the case of Pitchbend messages) as soon as the sensor value is equal to or larger than the Max value of the Range slider.  
 +
 
 +
The number of samples that are analyzed before establishing whether the sensor value is equal to or smaller than (in case of peak search) or larger than (in case of dip search) the previous sensor value can be set separately in the Window field. Setting the number of samples higher than 1 allows for sub-peaks, eg. due to noise, to be filtered out.  
 +
 
 
The Peak / Dip output method checks whether the sensor value has changed more than the Noise value before it is transmitted as a MIDI message. The Noise value can be set separately in steps of 1 when the MIDI message transmits sensor input values as 7-bit values (all MIDI messages except PitchBend), and in steps of 16 when the MIDI message transmits sensor input values as 14-bit values (Pitchbend messages). Setting the Noise value to zero results in all sensor values being output.
 
The Peak / Dip output method checks whether the sensor value has changed more than the Noise value before it is transmitted as a MIDI message. The Noise value can be set separately in steps of 1 when the MIDI message transmits sensor input values as 7-bit values (all MIDI messages except PitchBend), and in steps of 16 when the MIDI message transmits sensor input values as 14-bit values (Pitchbend messages). Setting the Noise value to zero results in all sensor values being output.
  
 
[[File: editorx-81_processing_peak.png|250px]]
 
[[File: editorx-81_processing_peak.png|250px]]
 
If the Peak / Dip End notification method is enabled, a MIDI message with value 0 is output if the sensor value reaches the Min value after a peak has been detected. If the Inversion method is enabled a MIDI message with value 127 (or 16383 in the case of Pitchbend messages) is output is the sensor value reaches the Max value after a dip has been detected.
 
  
 
==Smoothing==
 
==Smoothing==
Line 61: Line 71:
 
==Inversion==
 
==Inversion==
  
The Inversion method inverts the range of the sensor input, ie. a higher sensor value results in a lower output value. This method can also be realized by selecting the [[EditorX-81_Lookup_Tables | Lookup Table]] method in the analog sensor methods. The Inversion method will only be active when either the Continuous or Peak (renamed to Dip) method is enabled, or both.
+
The Inversion method inverts the range of the sensor input, ie. a higher sensor value results in a lower output value. This method can also be realized by selecting the [[EditorX-81_Lookup_Tables | Lookup Table]] method in the analog sensor methods. The Inversion method will only be active when either the Continuous or Peak (renamed to Dip once Invert is selected) method is enabled, or both.
  
 
[[File: editorx-81_processing_menu_continuous_invert.png|120px]]  [[File: editorx-81_processing_menu_dip_invert.png|120px]]
 
[[File: editorx-81_processing_menu_continuous_invert.png|120px]]  [[File: editorx-81_processing_menu_dip_invert.png|120px]]

Latest revision as of 14:57, 10 May 2021

The Processing sub-section configures a sensor input to apply algorithms to the sensor input value(s). The Visualize button opens a window that displays the Signal Flow of the sensor data.

Editorx-81 processing analog section.png Editorx-81 processing digital section.png


Processing

The following processing methods are available:

  • Continuous output
  • Peak / Dip detection, or pass Threshold detection
  • Peak / Dip End notification, or below Threshold detection
  • Smoothing
  • Difference calculation
  • Constant output
  • Inversion

A sensor input will only process values if either the Continuous or Peak method is enabled, or both. Multiple processing methods can be selected.

How the processing methods are applied to the sensor signal can be seen in the signal flow diagrams.

See also the EDIT CONFIG command for more information about processing methods than provided here.


Input Range

The input range is set using the "Min" and "Max" values. The input range of analog sensors is displayed in Volt (0 to 5 V). The input range of digital sensors is displayed as a percentage (0 to 100 %) of the full range. For example, the Orient4D pitch range is -180º to +180º, so the size of the range is 360º so that 10% of the range represents the value -180 + 36 = -144º and 90% of the range represents +144º. Consult the product datasheet of the digital sensor for more details wrt. the applicable units and size of the range.

If there is noise, interference, crosstalk from other inputs or another unwanted signal in the input value below or above a specific level increase the Min value and/or lower the Max value to exclude it from further processing.

Continuous

The Continuous output method checks whether the sensor value has changed more than the Noise value before it is transmitted as a MIDI message. The Noise value can be set separately in steps of 1 when the MIDI message transmits sensor input values as 7-bit values (all MIDI messages except PitchBend), and in steps of 16 when the MIDI message transmits sensor input values as 14-bit values (Pitchbend messages). Setting the Noise value to zero results in all sensor values being output.

Editorx-81 processing continuous.png

Peak / Dip

The Peak detection method starts searching for a peak if the sensor value equals or crosses the Min threshold (ie. the Min value of the Range slider below the Processing menu). As long as each subsequent sensor value is greater than the previous value, no value is transmitted as a MIDI message. As soon as the sensor value is smaller than or equal to the previous value a MIDI message is output where the sensor value is scaled between the Min and Max value of the Range. After the peak is detected and output, no new peak will be searched until the sensor value is equal to or lower than the Min threshold.

If Inversion is enabled, if the sensor value is lower than the Max value of the Range slider, a search for a dip (instead of a peak) is started. As long as each subsequent sensor value is smaller than the previous value, no value is transmitted as a MIDI message. As soon as the sensor value is greater than or equal to the previous value a MIDI message is output where the sensor value is scaled between the Min and Max value of the Range. After the dip is detected and output, no new dip will be searched until the sensor value is equal to or higher than the Max value.

If Peak End (or Dip End) is selected, and a peak or dip has been detected, a MIDI message with value 0 is output as soon as the sensor value is equal to or smaller than the Min value of the Range slider, or, if Inversion is enabled, a MIDI message is output with value 127 (or 16383 in the case of Pitchbend messages) as soon as the sensor value is equal to or larger than the Max value of the Range slider.

The number of samples that are analyzed before establishing whether the sensor value is equal to or smaller than (in case of peak search) or larger than (in case of dip search) the previous sensor value can be set separately in the Window field. Setting the number of samples higher than 1 allows for sub-peaks, eg. due to noise, to be filtered out.

The Peak / Dip output method checks whether the sensor value has changed more than the Noise value before it is transmitted as a MIDI message. The Noise value can be set separately in steps of 1 when the MIDI message transmits sensor input values as 7-bit values (all MIDI messages except PitchBend), and in steps of 16 when the MIDI message transmits sensor input values as 14-bit values (Pitchbend messages). Setting the Noise value to zero results in all sensor values being output.

Editorx-81 processing peak.png

Smoothing

The Smoothing method applies an exponential moving average filter to the sensor values. The smoothing factor can be set separately, and a higher value increases the smoothing. The number of samples used to calculate the average can be set separately, and a higher number increases the smoothing. The advantage of the exponential smoothing average compared to the simple moving average is that the former results in less latency while providing a smoother output. The Smoothing or Averaging method will only be active when either the Continuous or Peak method is enabled, or both.

Editorx-81 processing continuous smooth.png Editorx-81 processing menu continuous smooth.png


Difference

The Difference method outputs the difference between the current and the previous sensor values. The Difference method will only be active when either the Continuous or Peak method is enabled, or both.

Editorx-81 processing menu continuous difference.png Editorx-81 processing menu peak difference.png


Constant

The Constant output method allows for the output of the same value each time the threshold was passed. The threshold is either the Min value set in the Range field, or the Max value if the Range is inverted by checking Inverted in the Processing menu. The constant value can be set separately in steps of 7. The Constant method will only be active when the Peak method is selected, and in which case it is renamed to Threshold.

Editorx-81 processing threshold constant.png Editorx-81 processing menu threshold constant.png

Inversion

The Inversion method inverts the range of the sensor input, ie. a higher sensor value results in a lower output value. This method can also be realized by selecting the Lookup Table method in the analog sensor methods. The Inversion method will only be active when either the Continuous or Peak (renamed to Dip once Invert is selected) method is enabled, or both.

Editorx-81 processing menu continuous invert.png Editorx-81 processing menu dip invert.png