Why not simply

```c
int16_t s = (int16_t)read_le16(buffer);
uint16_t upper_bound = s > 0 ? (uint16_t)INT16_MAX : (uint16_t)-INT16_MIN;
return (jack_default_audio_sample_t)s / (jack_default_audio_sample_t)upper_bound;
```