-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcrossover.proto
More file actions
65 lines (57 loc) · 1.52 KB
/
crossover.proto
File metadata and controls
65 lines (57 loc) · 1.52 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
syntax = "proto3";
package crossover;
message CrossoverConfig {
// repeated CrossoverProfile profiles = 1;
// map key is create_time
map<int64, CrossoverProfile> profiles = 1;
// The create_time of current profile. If not given or zero, default to muted
int64 current_profile = 2;
}
message CrossoverProfile {
repeated ChannelConfig channels = 1;
repeated MixerOutputConfig mixer = 2;
string name = 3;
// Note: input_count is currently always 2! The remaining is output channels
uint32 input_count = 4;
}
message MixerOutputConfig {
// length = input channel count
repeated MixerInputConfig input_channels = 1;
}
message MixerInputConfig {
double gain = 1; // db
bool inverted = 2;
bool mute = 3;
}
message ChannelConfig {
// If link_to is -1, means this channel is disabled
int32 link_to = 1;
repeated IIRConfig iir_filters = 2;
optional FIRConfig fir_filter = 3;
DelayConfig delay = 4;
double gain = 5;
bool invert = 6;
bool mute = 7;
string name = 8;
}
message IIRConfig {
bool bypass = 1;
// config is json, corresponding to CamillaDSP format.
// type is the subtype inside Biquad or BiquadCombo, e.g. 'Highpass'
// example:
// type: 'Highpass', config: '{ "freq": 80, "q": 0.5 }'
string id = 5;
string type = 6;
string config = 7;
}
message FIRConfig {
bool bypass = 1;
string coefficient_name = 2;
}
enum DelayUnit { DELAY_MS = 0; DELAY_MM = 1; DELAY_SAMPLES = 2; }
message DelayConfig {
bool bypass = 1;
double delay = 2;
DelayUnit unit = 3;
bool subsample = 4;
}