Los sintetizadores de sonido usan generadores de envolvente para controlar cómo ciertos parámetros del sonido (como el volumen general) cambian con el tiempo. En muchos sintetizadores, una envolvente se define mediante cuatro parámetros, como se representa en la siguiente figura de Wikipedia :
- Tiempo de ataque (A) : tiempo que tarda el sobre en alcanzar su nivel máximo, comenzando desde cero, cuando se presiona la tecla por primera vez.
- Tiempo de caída (D) : tiempo que tarda la envoltura en alcanzar el nivel de sostenimiento especificado.
- Nivel de mantenimiento (S) : nivel que se mantiene, después del ataque inicial y la descomposición, mientras se mantenga presionada la tecla.
- Tiempo de liberación (R) : tiempo que tarda el sobre en llegar a cero cuando se suelta la tecla.
El reto
Ingrese los cuatro parámetros A, D, S, R y trace el sobre .
Los parámetros serán valores enteros de 0 a 127 .
Se supondrá que el nivel máximo (alcanzado al final de la fase de ataque) es 127 .
Se supondrá que el segmento horizontal en el nivel de sostenimiento tiene una duración 64 (en el sonido real, esta duración no es fija, sino que está determinada por la cantidad de tiempo que se mantiene presionada la tecla).
Formato y más detalles
El resultado debe ser una imagen en formato ráster o vectorial. Si es ráster, la línea poligonal debe ocupar al menos 50 píxeles verticalmente y horizontalmente.
La imagen se puede mostrar o producir como un archivo en un formato de imagen estándar. El archivo puede escribirse en el disco o su contenido exacto puede enviarse a STDERR o como argumento de retorno de función.
El gráfico solo necesita contener la línea poligonal que define la envolvente. La escala de cada eje se puede elegir libremente. Otros elementos como líneas de eje, etiquetas numéricas o colores de línea son opcionales.
Los medios de entrada y el formato son flexibles como de costumbre. Por ejemplo, puede tomar los cuatro números en cualquier orden o una matriz que los contenga. Se puede proporcionar un programa o una función . Las lagunas estándar están prohibidas.
El código más corto en bytes gana.
Casos de prueba
La entrada está en el formato [A D S R]
. Tenga en cuenta que la escala es diferente en cada figura (de acuerdo con la regla de que la escala se puede elegir libremente)
[15 30 70 40]
[64 64 64 64]
[0 10 50 80]
[0 0 90 80]
[5 50 0 0]
[5 50 0 80]
[24 32 127 48]