Fix potential out of bounds when doing tuning lookup
This commit is contained in:
parent
6381ebb545
commit
798ebafdc8
|
@ -132,9 +132,6 @@ note_on(AudioChannel *channel, float duration, Uint8 *data, Uint16 len, Uint8 vo
|
||||||
sample.loop = 0;
|
sample.loop = 0;
|
||||||
}
|
}
|
||||||
env_on(&sample.env);
|
env_on(&sample.env);
|
||||||
if(pitch < 20) {
|
|
||||||
pitch = 20;
|
|
||||||
}
|
|
||||||
float sample_rate = 44100 / 261.60;
|
float sample_rate = 44100 / 261.60;
|
||||||
if(len <= 256) {
|
if(len <= 256) {
|
||||||
sample_rate = len;
|
sample_rate = len;
|
||||||
|
@ -305,6 +302,9 @@ audio_start(int idx, Uint8 *d, Uxn *u)
|
||||||
Uint8 off = d[0xf] == 0x00;
|
Uint8 off = d[0xf] == 0x00;
|
||||||
Uint16 len = PEEK2(d + 0xa);
|
Uint16 len = PEEK2(d + 0xa);
|
||||||
Uint8 pitch = d[0xf] & 0x7f;
|
Uint8 pitch = d[0xf] & 0x7f;
|
||||||
|
if(pitch < 20) {
|
||||||
|
pitch = 20;
|
||||||
|
}
|
||||||
float duration = dur > 0 ? dur : calc_duration(len, pitch);
|
float duration = dur > 0 ? dur : calc_duration(len, pitch);
|
||||||
|
|
||||||
if(!off) {
|
if(!off) {
|
||||||
|
|
Loading…
Reference in New Issue