66
77#include <stdint.h>
88
9- #include "shared-bindings/audiodelays/Reverb .h"
9+ #include "shared-bindings/audiofreeverb/Freeverb .h"
1010#include "shared-bindings/audiocore/__init__.h"
11- #include "shared-module/audiodelays/Reverb .h"
11+ #include "shared-module/audiofreeverb/Freeverb .h"
1212
1313#include "shared/runtime/context_manager_helpers.h"
1414#include "py/binary.h"
1717#include "shared-bindings/util.h"
1818#include "shared-module/synthio/block.h"
1919
20- //| class Reverb :
21- //| """An Reverb effect"""
20+ //| class Freeverb :
21+ //| """An Freeverb effect"""
2222//|
2323//| def __init__(
2424//| self,
4444//| :param int buffer_size: The total size in bytes of each of the two playback buffers to use
4545//| :param int sample_rate: The sample rate to be used
4646//| :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).
4949//|
50- //| Playing adding an reverb to a synth::
50+ //| Playing adding reverb to a synth::
5151//|
5252//| import time
5353//| import board
5454//| import audiobusio
5555//| import synthio
56- //| import audiodelays
56+ //| import audiofreeverb
5757//|
5858//| audio = audiobusio.I2SOut(bit_clock=board.GP20, word_select=board.GP21, data=board.GP22)
5959//| 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)
6161//| reverb.play(synth)
6262//| audio.play(reverb)
6363//|
6969//| time.sleep(5)"""
7070//| ...
7171//|
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 ) {
7373 enum { ARG_roomsize , ARG_damp , ARG_mix , ARG_buffer_size , ARG_sample_rate , ARG_bits_per_sample , ARG_samples_signed , ARG_channel_count , };
7474 static const mp_arg_t allowed_args [] = {
7575 { 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_
9595 mp_raise_ValueError (MP_ERROR_TEXT ("bits_per_sample must be 16" ));
9696 }
9797
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 );
100100
101101 return MP_OBJ_FROM_PTR (self );
102102}
103103
104104//| def deinit(self) -> None:
105- //| """Deinitialises the Reverb ."""
105+ //| """Deinitialises the Freeverb ."""
106106//| ...
107107//|
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 );
111111 return mp_const_none ;
112112}
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 ) ;
114114
115- static void check_for_deinit (audiodelays_reverb_obj_t * self ) {
115+ static void check_for_deinit (audiofreeverb_freeverb_obj_t * self ) {
116116 audiosample_check_for_deinit (& self -> base );
117117}
118118
119- //| def __enter__(self) -> Reverb :
119+ //| def __enter__(self) -> Freeverb :
120120//| """No-op used by Context Managers."""
121121//| ...
122122//|
@@ -131,70 +131,70 @@ static void check_for_deinit(audiodelays_reverb_obj_t *self) {
131131
132132//| roomsize: synthio.BlockInput
133133//| """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 );
136136}
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 );
138138
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 );
142142 return mp_const_none ;
143143}
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 );
145145
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 );
149149
150150//| damp: synthio.BlockInput
151151//| """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 );
154154}
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 );
156156
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 );
160160 return mp_const_none ;
161161}
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 );
163163
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 );
167167
168168//| mix: synthio.BlockInput
169169//| """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 );
172172}
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 );
174174
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 );
178178 return mp_const_none ;
179179}
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 );
181181
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 );
185185
186186//| playing: bool
187187//| """True when the effect is playing a sample. (read-only)"""
188188//|
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 );
191191 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 ));
193193}
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 );
195195
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 );
198198
199199//| def play(self, sample: circuitpython_typing.AudioSample, *, loop: bool = False) -> None:
200200//| """Plays the sample once when loop=False and continuously when loop=True.
@@ -203,66 +203,66 @@ MP_PROPERTY_GETTER(audiodelays_reverb_playing_obj,
203203//| The sample must match the encoding settings given in the constructor."""
204204//| ...
205205//|
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 ) {
207207 enum { ARG_sample , ARG_loop };
208208 static const mp_arg_t allowed_args [] = {
209209 { MP_QSTR_sample , MP_ARG_OBJ | MP_ARG_REQUIRED , {} },
210210 { MP_QSTR_loop , MP_ARG_BOOL | MP_ARG_KW_ONLY , {.u_bool = false} },
211211 };
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 ]);
213213 check_for_deinit (self );
214214 mp_arg_val_t args [MP_ARRAY_SIZE (allowed_args )];
215215 mp_arg_parse_all (n_args - 1 , pos_args + 1 , kw_args , MP_ARRAY_SIZE (allowed_args ), allowed_args , args );
216216
217217
218218 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 );
220220
221221 return mp_const_none ;
222222}
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 );
224224
225225//| def stop(self) -> None:
226226//| """Stops playback of the sample. The reverb continues playing."""
227227//| ...
228228//|
229229//|
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 );
232232
233- common_hal_audiodelays_reverb_stop (self );
233+ common_hal_audiofreeverb_freeverb_stop (self );
234234 return mp_const_none ;
235235}
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 );
237237
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 [] = {
239239 // 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 ) },
241241 { MP_ROM_QSTR (MP_QSTR___enter__ ), MP_ROM_PTR (& default___enter___obj ) },
242242 { 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 ) },
245245
246246 // 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 ) },
251251 AUDIOSAMPLE_FIELDS ,
252252};
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 ) ;
254254
255- static const audiosample_p_t audiodelays_reverb_proto = {
255+ static const audiosample_p_t audiofreeverb_freeverb_proto = {
256256 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 ,
259259};
260260
261261MP_DEFINE_CONST_OBJ_TYPE (
262- audiodelays_reverb_type ,
263- MP_QSTR_Reverb ,
262+ audiofreeverb_freeverb_type ,
263+ MP_QSTR_freeverb ,
264264 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
268268 );
0 commit comments