/ / SDL2 audio de punto flotante no clip - audio, punto flotante, sdl, recorte

Clip de audio de punto flotante SDL2 no clip - audio, punto flotante, SDL, recorte

Estoy generando una onda sinusoidal de 440Hz en formato de audio de coma flotante de 32 bits con SDL2.

He leído otro lugar donde ese formato de audio de coma flotante de 32 bits está normalizado entre -1.0 y +1.0.

Con esa declaración, esperaría que se produzca recorte para valores más allá de -1 y +1.

A medida que aumento la amplitud de la onda sinusoidal más allá de -1.0 y +1.0, el tono se vuelve más intenso (realmente muy fuerte a una amplitud de 3000), y parece que no ocurre ningún recorte.

entonces mis preguntas son:

  • ¿Qué está pasando con amplitudes más allá de -1.0 / + 1.0 y por qué no se recorta?

  • ¿Cuál es el valor de amplitud máxima en formato de audio de coma flotante de 32 bits?

  • ¿Hay algún lugar que defina la convención de normalización -1 / + 1?

Respuestas

2 para la respuesta № 1

Al convertir de formatos enteros a coma flotante, SDL se asigna a [-1, 1], sin embargo, al mezclarlo se recorta al máximo float: [-3.402823466e + 38F, 3.402823466e + 38F].

Además de esto, SDL parece pasar datos de audio flotante directamente a sus muchas implementaciones de dispositivos de audio sin modificar, por lo que su pregunta se vuelve específica del sistema operativo / tarjeta de audio.

En su caso, su señal probablemente ha sido "logarítmica" en algún momento, de ahí la falta de recorte a 3000x.