scrumpbus22 Channel intensity is indeed the base value from which the stim values are calculated. For example, a stim with an intensity of 10 and a channel intensity of 50 will result in an intensity of 5.
For a pain stim, it's the same, but it uses "Pain Intensity" as the base value instead of channel intensity.
This means that if you set channel intensity to 50, and a stim has an intensity of 100, your Coyote 3 device will be set to an intensity of 50 out of 200. Same logic for pain intensity.
Frequency: It's capped at 240. Most of the stims are at 5–10 because above that it starts to feel uncomfortable (at least for me) and falls in the tetanic contraction range.
The way it works is that it's an array of 4 values sent every 100ms, and thus played during those 100ms. I intended to let the user create sequences for frequencies, allowing for richer frequency modulations, but I didn't have time to test it properly before the release.
The graph: It works the same as the intensity of the stim. But when there is a sequence, the stim intensity is not used. This isn't clear on the interface, but instead of using the stim intensity as the main value, it uses the values set in the sequence.
So for your example: 0 → 50 → 0 over one second means that the value will gradually increase from 0 to 50 over 0.5s, then gradually decrease back to 0 over 0.5s.
And the 50 on the graph means 50% of channel intensity (so 25 if we're still at 50 channel intensity — that's 25/200 of your device intensity).
And yes, speed is used as the minimum speed.
For the pain shock: There is no sequence, so it plays at 100% of the "Pain Intensity," with no time limit. Same as before — let's say you've set Pain Intensity to 90, then it will set your device to 90/200 intensity.
Shocks are not always at 100%, so a 70% shock will be a calculation between a floor value and the max value (Pain Intensity).
Actually, it's obviously limited in time, but not by the stim itself — it's limited by Eudaimonia's way of handling pain shocks.
I think a lot of the confusion comes from the Intensity slider not being disabled when adding a sequence in the graph.
I hope this is helpful!