Skip to content

Commit e7382c2

Browse files
committed
Make conversion of mp_float_t to uint32_t for waveform_loop values explicit.
1 parent e2a52af commit e7382c2

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

shared-module/synthio/__init__.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -184,15 +184,15 @@ static bool synth_note_into_buffer(synthio_synth_t *synth, int chan, int32_t *ou
184184
if (note->waveform_buf.buf) {
185185
waveform = note->waveform_buf.buf;
186186
waveform_length = note->waveform_buf.len;
187-
waveform_start = synthio_block_slot_get_limited(&note->waveform_loop_start, 0, waveform_length - 1);
188-
waveform_length = synthio_block_slot_get_limited(&note->waveform_loop_end, waveform_start + 1, waveform_length);
187+
waveform_start = (uint32_t)synthio_block_slot_get_limited(&note->waveform_loop_start, 0, waveform_length - 1);
188+
waveform_length = (uint32_t)synthio_block_slot_get_limited(&note->waveform_loop_end, waveform_start + 1, waveform_length);
189189
}
190190
dds_rate = synthio_frequency_convert_scaled_to_dds((uint64_t)frequency_scaled * (waveform_length - waveform_start), sample_rate);
191191
if (note->ring_frequency_scaled != 0 && note->ring_waveform_buf.buf) {
192192
ring_waveform = note->ring_waveform_buf.buf;
193193
ring_waveform_length = note->ring_waveform_buf.len;
194-
ring_waveform_start = synthio_block_slot_get_limited(&note->ring_waveform_loop_start, 0, ring_waveform_length - 1);
195-
ring_waveform_length = synthio_block_slot_get_limited(&note->ring_waveform_loop_end, ring_waveform_start + 1, ring_waveform_length);
194+
ring_waveform_start = (uint32_t)synthio_block_slot_get_limited(&note->ring_waveform_loop_start, 0, ring_waveform_length - 1);
195+
ring_waveform_length = (uint32_t)synthio_block_slot_get_limited(&note->ring_waveform_loop_end, ring_waveform_start + 1, ring_waveform_length);
196196
ring_dds_rate = synthio_frequency_convert_scaled_to_dds((uint64_t)note->ring_frequency_bent * (ring_waveform_length - ring_waveform_start), sample_rate);
197197
uint32_t lim = ring_waveform_length << SYNTHIO_FREQUENCY_SHIFT;
198198
if (ring_dds_rate > lim / sizeof(int16_t)) {

0 commit comments

Comments
 (0)