# Inverted parabolic envelope¶

**Author or source:**James McCartney**Type:**envellope generation**Created:**2002-01-17 00:57:43

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | ```
dur = duration in samples
midlevel = amplitude at midpoint
beglevel = beginning and ending level (typically zero)
amp = midlevel - beglevel;
rdur = 1.0 / dur;
rdur2 = rdur * rdur;
level = beglevel;
slope = 4.0 * amp * (rdur - rdur2);
curve = -8.0 * amp * rdur2;
...
for (i=0; i<dur; ++i) {
level += slope;
slope += curve;
}
``` |

## Comments¶

**Date**: 2002-04-11 17:20:10**By**: ti.orebil@erognekark

```
This parabola approximation seems more like a linear than a parab/expo envelope... or i'm mistaking something but i tryed everything and is only linear.
```

**Date**: 2002-04-13 23:51:49**By**: moc.liamtoh@r0x0r0xe

```
slope is linear, but 'slope' is a function of 'curve'. If you imagine you threw a ball upwards, think of 'curve' as the gravity, 'slope' as the vertical velocity, and 'level' as the vertical displacement.
```

**Date**: 2005-01-17 07:39:28**By**: asynth(at)io(dot)com

```
This is not an approximation of a parabola, it IS a parabola.
This entry has become corrupted since it was first posted. Should be:
for (i=0; i<dur; ++i) {
out = level;
level += slope;
slope += curve;
}
```