Voss Connection Detection  1
Detect a connector click using realtime code on Bela hardware
filter.h
Go to the documentation of this file.
1 #pragma once
2 #include "config.h"
3 #include <array>
4 
5 // I really don't like to include this header file here, and it should not have
6 // been necessary if the BelaContext was not an anonymous struct (anonymous
7 // structs cannot be forward declared: `https://bytes.com/topic/c/answers/
8 // 216243-forward-declaration-typedef-unnamed-structs`).
9 #include <Bela.h>
10 
11 using std::array;
12 class QuadBiquad;
13 
40 const us RAW_MICT = 0;
41 const us RAW_MICW = 1;
42 const us RAW_VPU = 2;
43 const us RAW_IMU_ROT = 3;
44 const us RAW_IMU_ACC = 4;
45 const us RAW_PEDAL = 5;
47 
50 typedef array<float, NUMBER_RAW_CHANNELS> RawFrame;
51 
52 
78 const us FILT_RAW_MICT = 0;
79 const us FILT_HP8k_MICT = 1;
80 const us FILT_HP2k_MICT = 2;
81 const us FILT_LP500_MICT = 3;
82 
83 const us FILT_RAW_MICW = 4;
84 const us FILT_HP8k_MICW = 5;
85 const us FILT_LP500_MICW = 6;
86 
87 const us FILT_RAW_VPU = 7;
88 const us FILT_HP2k_VPU = 8;
89 const us FILT_LP500_VPU = 9;
90 
91 const us FILT_IMU_ROT = 10;
92 const us FILT_HP_IMU_ACC = 11;
93 const us FILT_PEDAL = 12;
94 
96 
97 
102 typedef array<float, NUMBER_FILTERED_CHANNELS> FilteredFrame;
103 
104 
108 class Filter {
109  QuadBiquad* _filters1; // First four biquads
110  QuadBiquad* _filters2; // Second four biquads
111  QuadBiquad* _filters3; // Third four biquads
112  public:
113  // Filter stages for biquad filters of sensors
114  Filter(const float fs);
115 
122  void filter(const RawFrame& rawframe,FilteredFrame& filteredframe);
123  ~Filter();
124 
125 };
126 
FILT_HP2k_VPU
const us FILT_HP2k_VPU
Definition: filter.h:88
RAW_MICW
const us RAW_MICW
Definition: filter.h:41
FILT_IMU_ROT
const us FILT_IMU_ROT
Definition: filter.h:91
RAW_MICT
const us RAW_MICT
The number of channels of raw data coming from the sensors. This is currently set to 6....
Definition: filter.h:40
FILT_LP500_MICW
const us FILT_LP500_MICW
Definition: filter.h:85
Filter::~Filter
~Filter()
Definition: filter.cpp:149
FILT_RAW_MICT
const us FILT_RAW_MICT
The number of buffers that require some processing. This is not equal to the number of sensors,...
Definition: filter.h:78
RawFrame
array< float, NUMBER_RAW_CHANNELS > RawFrame
An array containing data for a raw frame.
Definition: filter.h:50
FILT_HP8k_MICT
const us FILT_HP8k_MICT
Definition: filter.h:79
NUMBER_FILTERED_CHANNELS
const us NUMBER_FILTERED_CHANNELS
Definition: filter.h:95
FILT_RAW_MICW
const us FILT_RAW_MICW
Definition: filter.h:83
FILT_LP500_MICT
const us FILT_LP500_MICT
Definition: filter.h:81
FilteredFrame
array< float, NUMBER_FILTERED_CHANNELS > FilteredFrame
An array containing data with length corresponding to a single processed frame. Its length correspond...
Definition: filter.h:102
Filter
Convert raw samples to a channel of filtered samples.
Definition: filter.h:108
RAW_PEDAL
const us RAW_PEDAL
Definition: filter.h:45
RAW_IMU_ROT
const us RAW_IMU_ROT
Definition: filter.h:43
FILT_PEDAL
const us FILT_PEDAL
Definition: filter.h:93
RAW_IMU_ACC
const us RAW_IMU_ACC
Definition: filter.h:44
FILT_RAW_VPU
const us FILT_RAW_VPU
Definition: filter.h:87
Filter::Filter
Filter(const float fs)
Definition: filter.cpp:8
us
unsigned int us
Used to much to not abbreviate.
Definition: config.h:38
FILT_HP_IMU_ACC
const us FILT_HP_IMU_ACC
Definition: filter.h:92
NUMBER_RAW_CHANNELS
const us NUMBER_RAW_CHANNELS
Definition: filter.h:46
config.h
Configuration parameters for connection detection.
RAW_VPU
const us RAW_VPU
Definition: filter.h:42
FILT_LP500_VPU
const us FILT_LP500_VPU
Definition: filter.h:89
FILT_HP8k_MICW
const us FILT_HP8k_MICW
Definition: filter.h:84
FILT_HP2k_MICT
const us FILT_HP2k_MICT
Definition: filter.h:80
Filter::filter
void filter(const RawFrame &rawframe, FilteredFrame &filteredframe)
Filter a single raw frame to obtain a filtered frame.
Definition: filter.cpp:91