Les synthétiseurs sonores utilisent des générateurs d'enveloppe pour contrôler la manière dont certains paramètres du son (tels que le volume général) changent avec le temps. Dans de nombreux synthétiseurs, une enveloppe est définie par quatre paramètres, comme indiqué dans la figure suivante de Wikipedia :
- Temps d'attaque (A) : temps nécessaire pour que l'enveloppe atteigne son niveau maximum, à partir de zéro, lorsque la touche est enfoncée pour la première fois.
- Temps de chute (D) : temps mis par l'enveloppe pour atteindre le niveau de maintien spécifié.
- Sustain level (S) : niveau qui est maintenu, après l'attaque initiale et la décroissance, tant que la touche est enfoncée.
- Temps de relâchement (R) : temps nécessaire pour que l’enveloppe atteigne zéro lorsque la touche est relâchée.
Le défi
Entrez les quatre paramètres A, D, S, R et tracez l'enveloppe .
Les paramètres seront des valeurs entières comprises entre 0 et 127 .
Le niveau maximum (atteint à la fin de la phase d’attaque) sera de 127 .
La durée du segment horizontal au niveau de l'effet Sustain sera supposée être de 64 (dans le son réel, cette durée n'est pas fixée, elle est déterminée par la durée pendant laquelle la touche est enfoncée).
Format et détails supplémentaires
La sortie doit être une image au format raster ou vectoriel. Si c'est un raster, la ligne polygonale doit occuper au moins 50 pixels verticalement et horizontalement.
L'image peut être affichée ou produite sous forme de fichier dans un format d'image standard. Le fichier peut être écrit sur le disque ou son contenu exact peut être exporté soit dans STDERR, soit en tant qu'argument de retour de fonction.
Le graphique doit uniquement contenir la ligne polygonale qui définit l'enveloppe. L'échelle de chaque axe peut être choisie librement. D'autres éléments tels que des lignes d'axe, des étiquettes numériques ou des couleurs de ligne sont facultatifs.
Les moyens d'entrée et le format sont flexibles comme d'habitude. Par exemple, vous pouvez prendre les quatre nombres dans n'importe quel ordre ou un tableau les contenant. Un programme ou une fonction peut être fourni. Les failles standard sont interdites.
Le code le plus court en octets gagne.
Cas de test
L'entrée est dans le format [A D S R]
. Notez que l'échelle est différente dans chaque figure (conformément à la règle selon laquelle l'échelle peut être choisie librement)
[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]