Skip to content

Commit 1bf400d

Browse files
committed
Rename biquad property to filter.
1 parent 5246053 commit 1bf400d

File tree

5 files changed

+38
-32
lines changed

5 files changed

+38
-32
lines changed

py/circuitpy_defns.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -625,7 +625,7 @@ SRC_SHARED_MODULE_ALL = \
625625
audiocore/__init__.c \
626626
audiodelays/Echo.c \
627627
audiodelays/__init__.c \
628-
audiofilters/Distortion.c \
628+
audiofilters/Filter.c \
629629
audiofilters/__init__.c \
630630
audioio/__init__.c \
631631
audiomixer/Mixer.c \

shared-bindings/audiofilters/Filter.c

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
//|
2424
//| def __init__(
2525
//| self,
26-
//| biquad: synthio.Biquad = None,
26+
//| filter: synthio.Biquad = None,
2727
//| mix: synthio.BlockInput = 1.0,
2828
//| buffer_size: int = 512,
2929
//| sample_rate: int = 8000,
@@ -38,7 +38,7 @@
3838
//| The mix parameter allows you to change how much of the unchanged sample passes through to
3939
//| the output to how much of the effect audio you hear as the output.
4040
//|
41-
//| :param synthio.Biquad biquad: The normalized biquad filter object used to process the signal.
41+
//| :param synthio.Biquad filter: The normalized biquad filter object used to process the signal.
4242
//| :param synthio.BlockInput mix: The mix as a ratio of the sample (0.0) to the effect (1.0).
4343
//| :param int buffer_size: The total size in bytes of each of the two playback buffers to use
4444
//| :param int sample_rate: The sample rate to be used
@@ -56,7 +56,7 @@
5656
//|
5757
//| audio = audiobusio.I2SOut(bit_clock=board.GP20, word_select=board.GP21, data=board.GP22)
5858
//| synth = synthio.Synthesizer(channel_count=1, sample_rate=44100)
59-
//| filter = audiofilters.Filter(biquad=synth.low_pass_filter(frequency=2000, q_factor=1.25), buffer_size=1024, channel_count=1, sample_rate=44100, mix=1.0)
59+
//| filter = audiofilters.Filter(filter=synth.low_pass_filter(frequency=2000, Q=1.25), buffer_size=1024, channel_count=1, sample_rate=44100, mix=1.0)
6060
//| filter.play(synth)
6161
//| audio.play(filter)
6262
//|
@@ -68,9 +68,9 @@
6868
//| time.sleep(5)"""
6969
//| ...
7070
static mp_obj_t audiofilters_filter_make_new(const mp_obj_type_t *type, size_t n_args, size_t n_kw, const mp_obj_t *all_args) {
71-
enum { ARG_biquad, ARG_mix, ARG_buffer_size, ARG_sample_rate, ARG_bits_per_sample, ARG_samples_signed, ARG_channel_count, };
71+
enum { ARG_filter, ARG_mix, ARG_buffer_size, ARG_sample_rate, ARG_bits_per_sample, ARG_samples_signed, ARG_channel_count, };
7272
static const mp_arg_t allowed_args[] = {
73-
{ MP_QSTR_biquad, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = MP_OBJ_NULL} },
73+
{ MP_QSTR_filter, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = MP_OBJ_NULL} },
7474
{ MP_QSTR_mix, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = MP_OBJ_NULL} },
7575
{ MP_QSTR_buffer_size, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 512} },
7676
{ MP_QSTR_sample_rate, MP_ARG_INT | MP_ARG_KW_ONLY, {.u_int = 8000} },
@@ -90,7 +90,7 @@ static mp_obj_t audiofilters_filter_make_new(const mp_obj_type_t *type, size_t n
9090
}
9191

9292
audiofilters_filter_obj_t *self = mp_obj_malloc(audiofilters_filter_obj_t, &audiofilters_filter_type);
93-
common_hal_audiofilters_filter_construct(self, args[ARG_biquad].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);
93+
common_hal_audiofilters_filter_construct(self, args[ARG_filter].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);
9494

9595
return MP_OBJ_FROM_PTR(self);
9696
}
@@ -128,31 +128,31 @@ static mp_obj_t audiofilters_filter_obj___exit__(size_t n_args, const mp_obj_t *
128128
static MP_DEFINE_CONST_FUN_OBJ_VAR_BETWEEN(audiofilters_filter___exit___obj, 4, 4, audiofilters_filter_obj___exit__);
129129

130130

131-
//| biquad: synthio.Biquad
131+
//| filter: synthio.Biquad
132132
//| """The normalized biquad filter object used to process the signal."""
133-
static mp_obj_t audiofilters_filter_obj_get_biquad(mp_obj_t self_in) {
134-
return common_hal_audiofilters_filter_get_biquad(self_in);
133+
static mp_obj_t audiofilters_filter_obj_get_filter(mp_obj_t self_in) {
134+
return common_hal_audiofilters_filter_get_filter(self_in);
135135
}
136-
MP_DEFINE_CONST_FUN_OBJ_1(audiofilters_filter_get_biquad_obj, audiofilters_filter_obj_get_biquad);
136+
MP_DEFINE_CONST_FUN_OBJ_1(audiofilters_filter_get_filter_obj, audiofilters_filter_obj_get_filter);
137137

138-
static mp_obj_t audiofilters_filter_obj_set_biquad(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
139-
enum { ARG_biquad };
138+
static mp_obj_t audiofilters_filter_obj_set_filter(size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
139+
enum { ARG_filter };
140140
static const mp_arg_t allowed_args[] = {
141-
{ MP_QSTR_biquad, MP_ARG_OBJ | MP_ARG_REQUIRED, {} },
141+
{ MP_QSTR_filter, MP_ARG_OBJ | MP_ARG_REQUIRED, {} },
142142
};
143143
audiofilters_filter_obj_t *self = MP_OBJ_TO_PTR(pos_args[0]);
144144
mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
145145
mp_arg_parse_all(n_args - 1, pos_args + 1, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
146146

147-
common_hal_audiofilters_filter_set_biquad(self, args[ARG_biquad].u_obj);
147+
common_hal_audiofilters_filter_set_filter(self, args[ARG_filter].u_obj);
148148

149149
return mp_const_none;
150150
}
151-
MP_DEFINE_CONST_FUN_OBJ_KW(audiofilters_filter_set_biquad_obj, 1, audiofilters_filter_obj_set_biquad);
151+
MP_DEFINE_CONST_FUN_OBJ_KW(audiofilters_filter_set_filter_obj, 1, audiofilters_filter_obj_set_filter);
152152

153-
MP_PROPERTY_GETSET(audiofilters_filter_biquad_obj,
154-
(mp_obj_t)&audiofilters_filter_get_biquad_obj,
155-
(mp_obj_t)&audiofilters_filter_set_biquad_obj);
153+
MP_PROPERTY_GETSET(audiofilters_filter_filter_obj,
154+
(mp_obj_t)&audiofilters_filter_get_filter_obj,
155+
(mp_obj_t)&audiofilters_filter_set_filter_obj);
156156

157157

158158
//| mix: synthio.BlockInput
@@ -241,7 +241,7 @@ static const mp_rom_map_elem_t audiofilters_filter_locals_dict_table[] = {
241241

242242
// Properties
243243
{ MP_ROM_QSTR(MP_QSTR_playing), MP_ROM_PTR(&audiofilters_filter_playing_obj) },
244-
{ MP_ROM_QSTR(MP_QSTR_biquad), MP_ROM_PTR(&audiofilters_filter_biquad_obj) },
244+
{ MP_ROM_QSTR(MP_QSTR_filter), MP_ROM_PTR(&audiofilters_filter_filter_obj) },
245245
{ MP_ROM_QSTR(MP_QSTR_mix), MP_ROM_PTR(&audiofilters_filter_mix_obj) },
246246
};
247247
static MP_DEFINE_CONST_DICT(audiofilters_filter_locals_dict, audiofilters_filter_locals_dict_table);

shared-bindings/audiofilters/Filter.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
extern const mp_obj_type_t audiofilters_filter_type;
1212

1313
void common_hal_audiofilters_filter_construct(audiofilters_filter_obj_t *self,
14-
mp_obj_t biquad, mp_obj_t mix,
14+
mp_obj_t filter, mp_obj_t mix,
1515
uint32_t buffer_size, uint8_t bits_per_sample, bool samples_signed,
1616
uint8_t channel_count, uint32_t sample_rate);
1717

@@ -22,8 +22,8 @@ uint32_t common_hal_audiofilters_filter_get_sample_rate(audiofilters_filter_obj_
2222
uint8_t common_hal_audiofilters_filter_get_channel_count(audiofilters_filter_obj_t *self);
2323
uint8_t common_hal_audiofilters_filter_get_bits_per_sample(audiofilters_filter_obj_t *self);
2424

25-
mp_obj_t common_hal_audiofilters_filter_get_biquad(audiofilters_filter_obj_t *self);
26-
void common_hal_audiofilters_filter_set_biquad(audiofilters_filter_obj_t *self, mp_obj_t arg);
25+
mp_obj_t common_hal_audiofilters_filter_get_filter(audiofilters_filter_obj_t *self);
26+
void common_hal_audiofilters_filter_set_filter(audiofilters_filter_obj_t *self, mp_obj_t arg);
2727

2828
mp_obj_t common_hal_audiofilters_filter_get_mix(audiofilters_filter_obj_t *self);
2929
void common_hal_audiofilters_filter_set_mix(audiofilters_filter_obj_t *self, mp_obj_t arg);

shared-module/audiofilters/Filter.c

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
#include "py/runtime.h"
1010

1111
void common_hal_audiofilters_filter_construct(audiofilters_filter_obj_t *self,
12-
mp_obj_t biquad, mp_obj_t mix,
12+
mp_obj_t filter, mp_obj_t mix,
1313
uint32_t buffer_size, uint8_t bits_per_sample,
1414
bool samples_signed, uint8_t channel_count, uint32_t sample_rate) {
1515

@@ -52,10 +52,11 @@ void common_hal_audiofilters_filter_construct(audiofilters_filter_obj_t *self,
5252

5353
// The below section sets up the effect's starting values.
5454

55-
if (biquad != MP_OBJ_NULL) {
56-
biquad = mp_const_none;
55+
if (filter == MP_OBJ_NULL) {
56+
filter = mp_const_none;
5757
}
58-
synthio_biquad_filter_assign(biquad, &self->biquad);
58+
synthio_biquad_filter_assign(&self->filter_state, filter);
59+
self->filter_obj = filter;
5960

6061
// If we did not receive a BlockInput we need to create a default float value
6162
if (mix == MP_OBJ_NULL) {
@@ -79,12 +80,13 @@ void common_hal_audiofilters_filter_deinit(audiofilters_filter_obj_t *self) {
7980
self->buffer[1] = NULL;
8081
}
8182

82-
mp_obj_t common_hal_audiofilters_filter_get_biquad(audiofilters_filter_obj_t *self) {
83-
return self->biquad.obj;
83+
mp_obj_t common_hal_audiofilters_filter_get_filter(audiofilters_filter_obj_t *self) {
84+
return self->filter_obj;
8485
}
8586

86-
void common_hal_audiofilters_filter_set_biquad(audiofilters_filter_obj_t *self, mp_obj_t arg) {
87-
synthio_biquad_filter_assign(arg, &self->biquad);
87+
void common_hal_audiofilters_filter_set_filter(audiofilters_filter_obj_t *self, mp_obj_t arg) {
88+
synthio_biquad_filter_assign(&self->filter_state, arg);
89+
self->filter_obj = arg;
8890
}
8991

9092
mp_obj_t common_hal_audiofilters_filter_get_mix(audiofilters_filter_obj_t *self) {
@@ -113,6 +115,8 @@ void audiofilters_filter_reset_buffer(audiofilters_filter_obj_t *self,
113115

114116
memset(self->buffer[0], 0, self->buffer_len);
115117
memset(self->buffer[1], 0, self->buffer_len);
118+
119+
synthio_biquad_filter_reset(&self->filter_state);
116120
}
117121

118122
bool common_hal_audiofilters_filter_get_playing(audiofilters_filter_obj_t *self) {

shared-module/audiofilters/Filter.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,11 @@ extern const mp_obj_type_t audiofilters_filter_type;
1515

1616
typedef struct {
1717
mp_obj_base_t base;
18-
biquad_filter_state biquad;
18+
mp_obj_t filter_obj;
1919
synthio_block_slot_t mix;
2020

21+
biquad_filter_state filter_state;
22+
2123
uint8_t bits_per_sample;
2224
bool samples_signed;
2325
uint8_t channel_count;

0 commit comments

Comments
 (0)