chenlh
2026-03-26 36e42207da4c088b5bfd96f2cfc8944f890440d7
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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
ÿþ#ifndef REVERB_H
#define REVERB_H
 
 
#include <stdio.h>
 
 
 
 
#ifdef __cplusplus
extern "C" {
#endif
 
 
 
//#define M_PI    3.14159265358979323f
//#define DOUBLE_PI    (2.0f * M_PI)
 
typedef struct {
    int sample_rate;
    float dry;
    float early;
    float late;
    
    int input_mix_on;
    int high_cut_on;
    int low_cut_on;
    float input_mix;
    float high_cut;
    float low_cut;
    float cross_seed;    
}Reverb_common;
 
typedef struct {        // éegÍS\
    int multi_taps_on;
    float taps_count;
    float taps_delay;
    float taps_decay;
    float taps_length;
}Reverb_taps;
 
typedef struct {        // éegibce
    int early_difus_on;
    float early_count;
    float early_delay;
    float early_feedback;
    float early_mod_amt;
    float early_mod_rate;
}Reverb_early;
 
typedef struct {        // Tg÷mÍT
    int late_mode;
    int late_reflect_on;
    float line_count;
    float line_size;
    float line_mod_amt;
    float line_decay;
    float line_mod_rate;
    float difus_count;
    float difus_delay;
    float difus_feedback;
    float difus_mod_amt;
    float difus_mod_rate;
}Reverb_late;
 
typedef struct {
    int low_shelf_on;
    int high_shelf_on;
    int low_pass_on;
    float low_shelf_freq;
    float low_shelf_gain;
    float high_shelf_freq;
    float high_shelf_gain;
    float low_pass_freq;
}Reverb_eq;
 
typedef struct {
    int channels;
    int frame_size;
    
    Reverb_common common;
    Reverb_taps taps;
    Reverb_early early;
    Reverb_late late;
    Reverb_eq eq;
    
    float *inL,*inR,*outL,*outR;
    FILE *file;
}Reverb;
 
typedef struct {
    float room_size;
    float wetdry_ratio;
    float reverb_time;
    float pre_delay;
    float high_damp_freq;
    float high_ratio;
    float diffusion;
    float density;
    float hpf;
    float lpf;
}ReverbUI;
 
 
Reverb *reverb_new(int channels, int frame_size, Reverb_common *common, Reverb_taps *taps, Reverb_early *early, Reverb_late *late, Reverb_eq *eq);
void reverb_process(Reverb *p, float **in, float **out);
void reverb_delete(Reverb *p);
void reverb_params_set(Reverb *p);
 
 
 
 
 
 
#ifdef __cplusplus
}
#endif
 
 
 
#endif