6
6
7
7
#include <stdint.h>
8
8
9
- #include "shared-bindings/audiodelays/Reverb .h"
9
+ #include "shared-bindings/audiofreeverb/Freeverb .h"
10
10
#include "shared-bindings/audiocore/__init__.h"
11
- #include "shared-module/audiodelays/Reverb .h"
11
+ #include "shared-module/audiofreeverb/Freeverb .h"
12
12
13
13
#include "shared/runtime/context_manager_helpers.h"
14
14
#include "py/binary.h"
17
17
#include "shared-bindings/util.h"
18
18
#include "shared-module/synthio/block.h"
19
19
20
- //| class Reverb :
21
- //| """An Reverb effect"""
20
+ //| class Freeverb :
21
+ //| """An Freeverb effect"""
22
22
//|
23
23
//| def __init__(
24
24
//| self,
44
44
//| :param int buffer_size: The total size in bytes of each of the two playback buffers to use
45
45
//| :param int sample_rate: The sample rate to be used
46
46
//| :param int channel_count: The number of channels the source samples contain. 1 = mono; 2 = stereo.
47
- //| :param int bits_per_sample: The bits per sample of the effect. Reverb requires 16 bits.
48
- //| :param bool samples_signed: Effect is signed (True) or unsigned (False). Reverb requires signed (True).
47
+ //| :param int bits_per_sample: The bits per sample of the effect. Freeverb requires 16 bits.
48
+ //| :param bool samples_signed: Effect is signed (True) or unsigned (False). Freeverb requires signed (True).
49
49
//|
50
- //| Playing adding an reverb to a synth::
50
+ //| Playing adding reverb to a synth::
51
51
//|
52
52
//| import time
53
53
//| import board
54
54
//| import audiobusio
55
55
//| import synthio
56
- //| import audiodelays
56
+ //| import audiofreeverb
57
57
//|
58
58
//| audio = audiobusio.I2SOut(bit_clock=board.GP20, word_select=board.GP21, data=board.GP22)
59
59
//| synth = synthio.Synthesizer(channel_count=1, sample_rate=44100)
60
- //| reverb = audiodelays.Reverb (roomsize=0.7, damp=0.3, buffer_size=1024, channel_count=1, sample_rate=44100, mix=0.7)
60
+ //| reverb = audiofreeverb.Freeverb (roomsize=0.7, damp=0.3, buffer_size=1024, channel_count=1, sample_rate=44100, mix=0.7)
61
61
//| reverb.play(synth)
62
62
//| audio.play(reverb)
63
63
//|
69
69
//| time.sleep(5)"""
70
70
//| ...
71
71
//|
72
- static mp_obj_t audiodelays_reverb_make_new (const mp_obj_type_t * type , size_t n_args , size_t n_kw , const mp_obj_t * all_args ) {
72
+ static mp_obj_t audiofreeverb_freeverb_make_new (const mp_obj_type_t * type , size_t n_args , size_t n_kw , const mp_obj_t * all_args ) {
73
73
enum { ARG_roomsize , ARG_damp , ARG_mix , ARG_buffer_size , ARG_sample_rate , ARG_bits_per_sample , ARG_samples_signed , ARG_channel_count , };
74
74
static const mp_arg_t allowed_args [] = {
75
75
{ MP_QSTR_roomsize , MP_ARG_OBJ | MP_ARG_KW_ONLY , {.u_obj = MP_OBJ_NULL } },
@@ -95,28 +95,28 @@ static mp_obj_t audiodelays_reverb_make_new(const mp_obj_type_t *type, size_t n_
95
95
mp_raise_ValueError (MP_ERROR_TEXT ("bits_per_sample must be 16" ));
96
96
}
97
97
98
- audiodelays_reverb_obj_t * self = mp_obj_malloc (audiodelays_reverb_obj_t , & audiodelays_reverb_type );
99
- common_hal_audiodelays_reverb_construct (self , args [ARG_roomsize ].u_obj , args [ARG_damp ].u_obj , args [ARG_mix ].u_obj , args [ARG_buffer_size ].u_int , bits_per_sample , args [ARG_samples_signed ].u_bool , channel_count , sample_rate );
98
+ audiofreeverb_freeverb_obj_t * self = mp_obj_malloc (audiofreeverb_freeverb_obj_t , & audiofreeverb_freeverb_type );
99
+ common_hal_audiofreeverb_freeverb_construct (self , args [ARG_roomsize ].u_obj , args [ARG_damp ].u_obj , args [ARG_mix ].u_obj , args [ARG_buffer_size ].u_int , bits_per_sample , args [ARG_samples_signed ].u_bool , channel_count , sample_rate );
100
100
101
101
return MP_OBJ_FROM_PTR (self );
102
102
}
103
103
104
104
//| def deinit(self) -> None:
105
- //| """Deinitialises the Reverb ."""
105
+ //| """Deinitialises the Freeverb ."""
106
106
//| ...
107
107
//|
108
- static mp_obj_t audiodelays_reverb_deinit (mp_obj_t self_in ) {
109
- audiodelays_reverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
110
- common_hal_audiodelays_reverb_deinit (self );
108
+ static mp_obj_t audiofreeverb_freeverb_deinit (mp_obj_t self_in ) {
109
+ audiofreeverb_freeverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
110
+ common_hal_audiofreeverb_freeverb_deinit (self );
111
111
return mp_const_none ;
112
112
}
113
- static MP_DEFINE_CONST_FUN_OBJ_1 (audiodelays_reverb_deinit_obj , audiodelays_reverb_deinit ) ;
113
+ static MP_DEFINE_CONST_FUN_OBJ_1 (audiofreeverb_freeverb_deinit_obj , audiofreeverb_freeverb_deinit ) ;
114
114
115
- static void check_for_deinit (audiodelays_reverb_obj_t * self ) {
115
+ static void check_for_deinit (audiofreeverb_freeverb_obj_t * self ) {
116
116
audiosample_check_for_deinit (& self -> base );
117
117
}
118
118
119
- //| def __enter__(self) -> Reverb :
119
+ //| def __enter__(self) -> Freeverb :
120
120
//| """No-op used by Context Managers."""
121
121
//| ...
122
122
//|
@@ -131,70 +131,70 @@ static void check_for_deinit(audiodelays_reverb_obj_t *self) {
131
131
132
132
//| roomsize: synthio.BlockInput
133
133
//| """Apparent size of the room 0.0-1.0"""
134
- static mp_obj_t audiodelays_reverb_obj_get_roomsize (mp_obj_t self_in ) {
135
- return common_hal_audiodelays_reverb_get_roomsize (self_in );
134
+ static mp_obj_t audiofreeverb_freeverb_obj_get_roomsize (mp_obj_t self_in ) {
135
+ return common_hal_audiofreeverb_freeverb_get_roomsize (self_in );
136
136
}
137
- MP_DEFINE_CONST_FUN_OBJ_1 (audiodelays_reverb_get_roomsize_obj , audiodelays_reverb_obj_get_roomsize );
137
+ MP_DEFINE_CONST_FUN_OBJ_1 (audiofreeverb_freeverb_get_roomsize_obj , audiofreeverb_freeverb_obj_get_roomsize );
138
138
139
- static mp_obj_t audiodelays_reverb_obj_set_roomsize (mp_obj_t self_in , mp_obj_t roomsize ) {
140
- audiodelays_reverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
141
- common_hal_audiodelays_reverb_set_roomsize (self , roomsize );
139
+ static mp_obj_t audiofreeverb_freeverb_obj_set_roomsize (mp_obj_t self_in , mp_obj_t roomsize ) {
140
+ audiofreeverb_freeverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
141
+ common_hal_audiofreeverb_freeverb_set_roomsize (self , roomsize );
142
142
return mp_const_none ;
143
143
}
144
- MP_DEFINE_CONST_FUN_OBJ_2 (audiodelays_reverb_set_roomsize_obj , audiodelays_reverb_obj_set_roomsize );
144
+ MP_DEFINE_CONST_FUN_OBJ_2 (audiofreeverb_freeverb_set_roomsize_obj , audiofreeverb_freeverb_obj_set_roomsize );
145
145
146
- MP_PROPERTY_GETSET (audiodelays_reverb_roomsize_obj ,
147
- (mp_obj_t )& audiodelays_reverb_get_roomsize_obj ,
148
- (mp_obj_t )& audiodelays_reverb_set_roomsize_obj );
146
+ MP_PROPERTY_GETSET (audiofreeverb_freeverb_roomsize_obj ,
147
+ (mp_obj_t )& audiofreeverb_freeverb_get_roomsize_obj ,
148
+ (mp_obj_t )& audiofreeverb_freeverb_set_roomsize_obj );
149
149
150
150
//| damp: synthio.BlockInput
151
151
//| """How much the high frequencies are dampened in the area. 0.0-1.0"""
152
- static mp_obj_t audiodelays_reverb_obj_get_damp (mp_obj_t self_in ) {
153
- return common_hal_audiodelays_reverb_get_damp (self_in );
152
+ static mp_obj_t audiofreeverb_freeverb_obj_get_damp (mp_obj_t self_in ) {
153
+ return common_hal_audiofreeverb_freeverb_get_damp (self_in );
154
154
}
155
- MP_DEFINE_CONST_FUN_OBJ_1 (audiodelays_reverb_get_damp_obj , audiodelays_reverb_obj_get_damp );
155
+ MP_DEFINE_CONST_FUN_OBJ_1 (audiofreeverb_freeverb_get_damp_obj , audiofreeverb_freeverb_obj_get_damp );
156
156
157
- static mp_obj_t audiodelays_reverb_obj_set_damp (mp_obj_t self_in , mp_obj_t damp ) {
158
- audiodelays_reverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
159
- common_hal_audiodelays_reverb_set_damp (self , damp );
157
+ static mp_obj_t audiofreeverb_freeverb_obj_set_damp (mp_obj_t self_in , mp_obj_t damp ) {
158
+ audiofreeverb_freeverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
159
+ common_hal_audiofreeverb_freeverb_set_damp (self , damp );
160
160
return mp_const_none ;
161
161
}
162
- MP_DEFINE_CONST_FUN_OBJ_2 (audiodelays_reverb_set_damp_obj , audiodelays_reverb_obj_set_damp );
162
+ MP_DEFINE_CONST_FUN_OBJ_2 (audiofreeverb_freeverb_set_damp_obj , audiofreeverb_freeverb_obj_set_damp );
163
163
164
- MP_PROPERTY_GETSET (audiodelays_reverb_damp_obj ,
165
- (mp_obj_t )& audiodelays_reverb_get_damp_obj ,
166
- (mp_obj_t )& audiodelays_reverb_set_damp_obj );
164
+ MP_PROPERTY_GETSET (audiofreeverb_freeverb_damp_obj ,
165
+ (mp_obj_t )& audiofreeverb_freeverb_get_damp_obj ,
166
+ (mp_obj_t )& audiofreeverb_freeverb_set_damp_obj );
167
167
168
168
//| mix: synthio.BlockInput
169
169
//| """The rate the reverb mix between 0 and 1 where 0 is only sample and 1 is all effect."""
170
- static mp_obj_t audiodelays_reverb_obj_get_mix (mp_obj_t self_in ) {
171
- return common_hal_audiodelays_reverb_get_mix (self_in );
170
+ static mp_obj_t audiofreeverb_freeverb_obj_get_mix (mp_obj_t self_in ) {
171
+ return common_hal_audiofreeverb_freeverb_get_mix (self_in );
172
172
}
173
- MP_DEFINE_CONST_FUN_OBJ_1 (audiodelays_reverb_get_mix_obj , audiodelays_reverb_obj_get_mix );
173
+ MP_DEFINE_CONST_FUN_OBJ_1 (audiofreeverb_freeverb_get_mix_obj , audiofreeverb_freeverb_obj_get_mix );
174
174
175
- static mp_obj_t audiodelays_reverb_obj_set_mix (mp_obj_t self_in , mp_obj_t mix_in ) {
176
- audiodelays_reverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
177
- common_hal_audiodelays_reverb_set_mix (self , mix_in );
175
+ static mp_obj_t audiofreeverb_freeverb_obj_set_mix (mp_obj_t self_in , mp_obj_t mix_in ) {
176
+ audiofreeverb_freeverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
177
+ common_hal_audiofreeverb_freeverb_set_mix (self , mix_in );
178
178
return mp_const_none ;
179
179
}
180
- MP_DEFINE_CONST_FUN_OBJ_2 (audiodelays_reverb_set_mix_obj , audiodelays_reverb_obj_set_mix );
180
+ MP_DEFINE_CONST_FUN_OBJ_2 (audiofreeverb_freeverb_set_mix_obj , audiofreeverb_freeverb_obj_set_mix );
181
181
182
- MP_PROPERTY_GETSET (audiodelays_reverb_mix_obj ,
183
- (mp_obj_t )& audiodelays_reverb_get_mix_obj ,
184
- (mp_obj_t )& audiodelays_reverb_set_mix_obj );
182
+ MP_PROPERTY_GETSET (audiofreeverb_freeverb_mix_obj ,
183
+ (mp_obj_t )& audiofreeverb_freeverb_get_mix_obj ,
184
+ (mp_obj_t )& audiofreeverb_freeverb_set_mix_obj );
185
185
186
186
//| playing: bool
187
187
//| """True when the effect is playing a sample. (read-only)"""
188
188
//|
189
- static mp_obj_t audiodelays_reverb_obj_get_playing (mp_obj_t self_in ) {
190
- audiodelays_reverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
189
+ static mp_obj_t audiofreeverb_freeverb_obj_get_playing (mp_obj_t self_in ) {
190
+ audiofreeverb_freeverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
191
191
check_for_deinit (self );
192
- return mp_obj_new_bool (common_hal_audiodelays_reverb_get_playing (self ));
192
+ return mp_obj_new_bool (common_hal_audiofreeverb_freeverb_get_playing (self ));
193
193
}
194
- MP_DEFINE_CONST_FUN_OBJ_1 (audiodelays_reverb_get_playing_obj , audiodelays_reverb_obj_get_playing );
194
+ MP_DEFINE_CONST_FUN_OBJ_1 (audiofreeverb_freeverb_get_playing_obj , audiofreeverb_freeverb_obj_get_playing );
195
195
196
- MP_PROPERTY_GETTER (audiodelays_reverb_playing_obj ,
197
- (mp_obj_t )& audiodelays_reverb_get_playing_obj );
196
+ MP_PROPERTY_GETTER (audiofreeverb_freeverb_playing_obj ,
197
+ (mp_obj_t )& audiofreeverb_freeverb_get_playing_obj );
198
198
199
199
//| def play(self, sample: circuitpython_typing.AudioSample, *, loop: bool = False) -> None:
200
200
//| """Plays the sample once when loop=False and continuously when loop=True.
@@ -203,66 +203,66 @@ MP_PROPERTY_GETTER(audiodelays_reverb_playing_obj,
203
203
//| The sample must match the encoding settings given in the constructor."""
204
204
//| ...
205
205
//|
206
- static mp_obj_t audiodelays_reverb_obj_play (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
206
+ static mp_obj_t audiofreeverb_freeverb_obj_play (size_t n_args , const mp_obj_t * pos_args , mp_map_t * kw_args ) {
207
207
enum { ARG_sample , ARG_loop };
208
208
static const mp_arg_t allowed_args [] = {
209
209
{ MP_QSTR_sample , MP_ARG_OBJ | MP_ARG_REQUIRED , {} },
210
210
{ MP_QSTR_loop , MP_ARG_BOOL | MP_ARG_KW_ONLY , {.u_bool = false} },
211
211
};
212
- audiodelays_reverb_obj_t * self = MP_OBJ_TO_PTR (pos_args [0 ]);
212
+ audiofreeverb_freeverb_obj_t * self = MP_OBJ_TO_PTR (pos_args [0 ]);
213
213
check_for_deinit (self );
214
214
mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
215
215
mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
216
216
217
217
218
218
mp_obj_t sample = args [ARG_sample ].u_obj ;
219
- common_hal_audiodelays_reverb_play (self , sample , args [ARG_loop ].u_bool );
219
+ common_hal_audiofreeverb_freeverb_play (self , sample , args [ARG_loop ].u_bool );
220
220
221
221
return mp_const_none ;
222
222
}
223
- MP_DEFINE_CONST_FUN_OBJ_KW (audiodelays_reverb_play_obj , 1 , audiodelays_reverb_obj_play );
223
+ MP_DEFINE_CONST_FUN_OBJ_KW (audiofreeverb_freeverb_play_obj , 1 , audiofreeverb_freeverb_obj_play );
224
224
225
225
//| def stop(self) -> None:
226
226
//| """Stops playback of the sample. The reverb continues playing."""
227
227
//| ...
228
228
//|
229
229
//|
230
- static mp_obj_t audiodelays_reverb_obj_stop (mp_obj_t self_in ) {
231
- audiodelays_reverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
230
+ static mp_obj_t audiofreeverb_freeverb_obj_stop (mp_obj_t self_in ) {
231
+ audiofreeverb_freeverb_obj_t * self = MP_OBJ_TO_PTR (self_in );
232
232
233
- common_hal_audiodelays_reverb_stop (self );
233
+ common_hal_audiofreeverb_freeverb_stop (self );
234
234
return mp_const_none ;
235
235
}
236
- MP_DEFINE_CONST_FUN_OBJ_1 (audiodelays_reverb_stop_obj , audiodelays_reverb_obj_stop );
236
+ MP_DEFINE_CONST_FUN_OBJ_1 (audiofreeverb_freeverb_stop_obj , audiofreeverb_freeverb_obj_stop );
237
237
238
- static const mp_rom_map_elem_t audiodelays_reverb_locals_dict_table [] = {
238
+ static const mp_rom_map_elem_t audiofreeverb_freeverb_locals_dict_table [] = {
239
239
// Methods
240
- { MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& audiodelays_reverb_deinit_obj ) },
240
+ { MP_ROM_QSTR (MP_QSTR_deinit ), MP_ROM_PTR (& audiofreeverb_freeverb_deinit_obj ) },
241
241
{ MP_ROM_QSTR (MP_QSTR___enter__ ), MP_ROM_PTR (& default___enter___obj ) },
242
242
{ MP_ROM_QSTR (MP_QSTR___exit__ ), MP_ROM_PTR (& default___exit___obj ) },
243
- { MP_ROM_QSTR (MP_QSTR_play ), MP_ROM_PTR (& audiodelays_reverb_play_obj ) },
244
- { MP_ROM_QSTR (MP_QSTR_stop ), MP_ROM_PTR (& audiodelays_reverb_stop_obj ) },
243
+ { MP_ROM_QSTR (MP_QSTR_play ), MP_ROM_PTR (& audiofreeverb_freeverb_play_obj ) },
244
+ { MP_ROM_QSTR (MP_QSTR_stop ), MP_ROM_PTR (& audiofreeverb_freeverb_stop_obj ) },
245
245
246
246
// Properties
247
- { MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audiodelays_reverb_playing_obj ) },
248
- { MP_ROM_QSTR (MP_QSTR_roomsize ), MP_ROM_PTR (& audiodelays_reverb_roomsize_obj ) },
249
- { MP_ROM_QSTR (MP_QSTR_damp ), MP_ROM_PTR (& audiodelays_reverb_damp_obj ) },
250
- { MP_ROM_QSTR (MP_QSTR_mix ), MP_ROM_PTR (& audiodelays_reverb_mix_obj ) },
247
+ { MP_ROM_QSTR (MP_QSTR_playing ), MP_ROM_PTR (& audiofreeverb_freeverb_playing_obj ) },
248
+ { MP_ROM_QSTR (MP_QSTR_roomsize ), MP_ROM_PTR (& audiofreeverb_freeverb_roomsize_obj ) },
249
+ { MP_ROM_QSTR (MP_QSTR_damp ), MP_ROM_PTR (& audiofreeverb_freeverb_damp_obj ) },
250
+ { MP_ROM_QSTR (MP_QSTR_mix ), MP_ROM_PTR (& audiofreeverb_freeverb_mix_obj ) },
251
251
AUDIOSAMPLE_FIELDS ,
252
252
};
253
- static MP_DEFINE_CONST_DICT (audiodelays_reverb_locals_dict , audiodelays_reverb_locals_dict_table ) ;
253
+ static MP_DEFINE_CONST_DICT (audiofreeverb_freeverb_locals_dict , audiofreeverb_freeverb_locals_dict_table ) ;
254
254
255
- static const audiosample_p_t audiodelays_reverb_proto = {
255
+ static const audiosample_p_t audiofreeverb_freeverb_proto = {
256
256
MP_PROTO_IMPLEMENT (MP_QSTR_protocol_audiosample )
257
- .reset_buffer = (audiosample_reset_buffer_fun )audiodelays_reverb_reset_buffer ,
258
- .get_buffer = (audiosample_get_buffer_fun )audiodelays_reverb_get_buffer ,
257
+ .reset_buffer = (audiosample_reset_buffer_fun )audiofreeverb_freeverb_reset_buffer ,
258
+ .get_buffer = (audiosample_get_buffer_fun )audiofreeverb_freeverb_get_buffer ,
259
259
};
260
260
261
261
MP_DEFINE_CONST_OBJ_TYPE (
262
- audiodelays_reverb_type ,
263
- MP_QSTR_Reverb ,
262
+ audiofreeverb_freeverb_type ,
263
+ MP_QSTR_freeverb ,
264
264
MP_TYPE_FLAG_HAS_SPECIAL_ACCESSORS ,
265
- make_new , audiodelays_reverb_make_new ,
266
- locals_dict , & audiodelays_reverb_locals_dict ,
267
- protocol , & audiodelays_reverb_proto
265
+ make_new , audiofreeverb_freeverb_make_new ,
266
+ locals_dict , & audiofreeverb_freeverb_locals_dict ,
267
+ protocol , & audiofreeverb_freeverb_proto
268
268
);
0 commit comments