List of activities - Amethyst-Sysadmin/Howl GitHub Wiki
A short description of each of Howl's built-in activities is given below. Please keep in mind that nothing is gender restricted, regardless of how it's described. One of the great things about estim is that it's all just electrons, and your perception of patterns could be different from mine.
Every activity offers an "Available for random select" permanent setting. When active, that activity is eligible to be picked by the "Random activity change" feature. When disabled, it will never be randomly selected. You can always select any activity manually. Activities that will not be selected automatically have a red hue in the list.
An ambitious activity that moves randomly between four distinct stages, intended to represent aspects of a blowjob. The stages are suck, deepthroat, tip licks, and full length (base to tip) licks. The licking stages are typically shorter and are intended to break up the main patterns and make the flow of the activity more interesting. Can you feel the differences between all four patterns?
Stage Selects which of the 4 distinct stages will play.
Target speed / Rate Picks the desired speed that the pattern will play at. The speed changes to the new value over time, rather than instantly. The "rate" slider controls how quickly we reach the new speed (e.g. we would speed up very gradually at low rates, and more quickly at high rates).
Generates purely random frequencies and amplitudes on both channels, the Coyote equivalent of "white noise". How long each value is held is configurable by the user.
Cycle time How long (in seconds) we will hold each value for before generating a new random pulse.
One channel has a very fast sawtooth wave, and the other has a very slow sawtooth wave. One starts at the maximum frequency, and one starts at the minimum frequency. Over the course of an iteration of the pattern, the slow wave speeds up, the fast wave slows down, the minimum frequency wave increases in frequency, and the maximum frequency wave reduces in frequency. Until the waves on each channel have essentially swapped, and then the pattern repeats. To make things a bit more interesting the sawtooth waves can go in either direction and can be linear or hermite interpolated. Sometimes aspects of the pattern will swap instantaneously at the end of an iteration.
A phantom tongue (or is it multiple tongues?) repeatedly licks you at varying positions and speeds, with little regard for the laws of physics. It's a complicated pattern with instantaneous jumps and a high level of speed and amplitude variance. This is generally one for high frequency enjoyers, as only the top half of the configured frequency range is used.
You can manually specify the lick parameters. This is mostly just for fun and experimentation, since the automatic mode would normally change them faster than a human can adjust the controls.
Lick start point Where the lick starts for the purposes of our positional effect calculation. 0 represents electrode A, 1 represents electrode B, other values represent positions in between the two.
Lick end point Where the lick ends for the purposes of our positional effect calculation. 0 represents electrode A, 1 represents electrode B, other values represent positions in between the two.
Lick type There are two distinct types of lick movement. Unidirectional, where the lick moves smoothly from the start point to the end point, and then teleports back to the start. And bidirectional, where the lick moves smoothly from the start point to the end point, and then moves smoothly from the end point back to the start point.
Amp type Offers several different patterns for our amplitude calculation which gives the licks a different feel. For example they might be highly consistent, or more disjointed (like tongue flicks).
Average speed / Rate Picks the overall average speed that the pattern will play at. This activity has a high level of random variance built in, so the actual speed of each individual lick can be much faster or slower than you picked. The average speed changes to the new value over time, rather than instantly. The "rate" slider controls how quickly we reach the new speed (e.g. we would speed up very gradually at low rates, and more quickly at high rates).
Inspired by some good old fashioned stroking, there's lots of smooth top to bottom activity using our positional algorithm. The speed shifts around smoothly and fairly often. "What makes it luxury?" you may ask. From time to time a different "bonus" pattern can appear on either channel which is supposed to feel like flickering touches around those electrodes directly. That might be a sweeping palm, or a probing finger. Depends on your imagination and where you put your electrodes I guess. Ooh la la!
Bonus pattern probability Adjusts how likely the bonus pattern, which may appear randomly on either channel, is to occur. It can be disabled entirely by setting 0.0.
Amplitude jitter Adjusts how much the power can vary with each individual stroke. The default is 0.15, which gives some natural variance, but still feels fairly consistent. At 0.0 every stroke is the same, which feels more precise and robotic. Increasing the value gives a less consistent and more random feel.
Timing jitter Similar to amplitude jitter above, but this one varies the timing, making individual strokes a little faster or slower.
Target stroke speed / Rate Adjusts the desired stroke speed (before the timing jitter is applied). Higher values stroke faster. The "rate" slider controls how quickly we reach the new speed you set (e.g. we would speed up very gradually at low rates, and more quickly at high rates).
Bonus A Immediately starts the bonus pattern on channel A. It will end automatically after 10-25 seconds.
Bonus B Immediately starts the bonus pattern on channel B. It will end automatically after 10-25 seconds.
A merciless milking machine from the year 3000. This one can be pretty intense. Moo.
There are two very distinct stages. First the "WOMP" stage where strokes (which are randomly either top to bottom or bottom to top) continually increase in speed. So I think of it as going WOMP.... WOMP.... (getting faster and faster) WOMPWOMPWOMPWOMPWOMP! Then comes the BUZZ stage which continuously plays a low frequency on channel A and a high frequency on channel B (the exact frequencies vary randomly a bit and change over the buzz duration a bit). Then repeat.
Channel A's frequency and power both each shift around the whole range in fairly smooth curves at varying speeds. Channel B always does the exact opposite. So if A is at full power, B is at zero power. If A is at the highest frequency, B is at the lowest frequency. It's a simple idea, but I liked the result.
This is probably more of a "finisher" pattern. Channel B sits at high power the majority of the time (fluctuating slightly in a smooth lapping effect). Channel A cycles repeatedly from low to high power in smooth waves. High frequencies are always used on both channels (60-100% of the range) and vary over time. Use the channel swap button with the player controls to try it the other way round with channel A holding high power.
Inspired by: just sex innit mate. The channel B part of the wave is quite unusually shaped and is designed to peak at different points to the A wave, helping to represent the in/out movements. Lots of smooth speed changes over time. There are also some more subtle random changes to "feel" and how the frequency range is used over time. Uses plenty of artistic licence and needs a healthy dose of imagination (as with most of these).
Target speed / Rate Adjusts the desired pattern speed. The "rate" slider controls how quickly we reach the new speed you set (e.g. we would speed up very gradually at low rates, and more quickly at high rates).
Target feel exponent / Rate Adjusts the desired feel exponent. This is a fairly subtle effect, where lower values result in the pattern making more use of lower frequencies. The "rate" slider controls how quickly we reach the new exponent you set.
Generates patterns that are always based around a classic repeating wave shape at moderate speeds (which is why it's relentless). The wave shapes actually have a lot of subtle randomness and can have different attack and decay characteristics, and sometimes a hold of varying length at the top. The output channels always share the same basic shape, but one channel will repeat it at exactly 1, 2, 3 or 4 times the speed of the other channel. The frequency on each channel is fixed per iteration, but will change periodically (as will the wave shapes).
An activity based on simplex noise, which is a computer graphics technique that could be used to generate a random landscape in a game (for example). We use it here to generate a seemingly endless pattern of unpredictable rolling peaks and troughs.
Frequency generation works in a similar way (and is the same for all three presets), traversing the pattern at a fixed slow speed. The frequencies shift around their range slowly in a fairly pleasing and natural way.
Preset Allows the user to select between three different simplex noise based patterns, which are described below. I found the "Pro" and "Turbo" variants worked well with a triphase Coyote setup.
This version produces a classic simplex noise pattern, with a chart that looks very much like a landscape. Parameters such as the traversal speed will vary smoothly over time. Because this classic simplex generation completely lacks any repetition, you might not find it as pleasurable as the other options.
An enhanced simplex pattern that introduces a repetitive element, while still being able to vary endlessly. Our classic simplex pattern took the A and B channel amplitudes from either side of a circle centred at our position in the landscape. So they often move in a connected way (as the points are close to each other) but aren't exactly the same. I thought "Hmm, what if we also spin the circle round?" and our simplex pro pattern was born.
Because we move forward at a slower rate, and our circle is spinning, we usually pass close to the same points on the landscape several times. This introduces some nice repetition which the standard simplex pattern lacked, and often results in "pumping" patterns that go back and forth between our two channels.
Simplex pro is the most varied of our simplex noise based patterns, and the level of repetition will vary significantly as our traversal speed and rotation speed smoothly shift around their ranges.
A similar base pattern to "Pro", but the rotation speed only goes between very fast and absolutely ridiculous. Probably not suitable for humans! ;)
An activity where the output is primarily based on a simple sine wave. Every 8-15 seconds the pattern fades out, and there's a short randomised delay before the next iteration. To make things more interesting, parameters like the speed and magnitude of the sine wave, and the offset between channel A and B, change on each iteration. But the overall effect is always a nice "lapping waves" kind of pattern, this activity never changes too wildly.
When manual control is active, the parameters do not randomly change on each iteration and are instead fixed based on the values you've set.
Sine magnitude Adjusts the size of the individual "laps" that the wave does. At 0.0 the output is flat and the wave doesn't lap at all.
Sine speed Adjusts how quickly the wave laps (in iterations per second).
Sine offset Adjusts the offset of the output between channels A and B. At 0.0 the sine wave is the same on both channels. Increasing or decreasing the offset shifts the channels apart, so that the peak on B occurs before or after A.
Frequency change Adjusts how much the frequency changes on each lap of the wave. Positive values increase the frequency as the wave peaks, whereas negative values decrease it.
Designed to feel like a vibrator being slowly and teasingly moved over... well whatever you put your electrodes on! Power is based on our positional algorithm and varies as the vibrator slowly moves around. Movement is smooth and at varying (but generally slow) speeds. Sometimes it will stop and hold position for a few seconds. The frequency sits on a fixed value for a while and only changes from time to time (representing the vibrator being switched to a different speed).
Hold probability Adjusts how likely a "hold" is to occur, which is when the vibrator briefly stays in the same place (for 1-3 seconds) after a movement. 0.0 disables holds, 1.0 does a hold after every movement.
Pulse duty cycle Optionally gives the vibrator an on/off "pulsing" effect. With a pulse duty cycle of 1.0 (default), the vibrator is always on. Setting the duty cycle to 0.7 means it will be on 70% of the time and off 30% of the time, so our "pulsing" effect starts.
Pulse time When the pulse duty cycle is less than 1.0, this slider may be used to adjust the length of each pulse. The pulsing on and off will be very fast at low values, and slower at high values.
Target position/ Rate Allows the user to move the vibrator around manually, by setting the target position it will move to. 0.0 is the channel A position, 1.0 is the channel B position, other values are in between the two channels. The "rate" slider controls how quickly the vibrator will reach the position you set (it moves extremely slowly at low rates, and faster at high rates).
Frequency Directly controls the frequency of the pattern. For example a value of 0.5 means the frequency half way up Howl's configured frequency range will be used.
A powerful and devious succubus has been imprisoned within the app code (it's a long story involving lots of candles, a beautiful virgin and a blessed USB stick). She's not happy about it. The patterns she unleashes upon her victims might be smooth and seductive, or glitchy and hectic, and her mood can change at any time. If you dare to select this activity, prepare for a complex and evolving experience far beyond the normal constraints of CPU power and mortal mathematics.
Click for spoiler
Generation actually uses a combination of the techniques from two activities in previous versions of Howl, "Random shapes" and "Additive". We start by generating 4 random cyclical wave shapes (2 used for creating amplitudes and 2 for frequencies). We generate each shape by essentially throwing out 2 to 6 random points, and then linking those points together with curves.
Once we have our base random wave shapes, we combine them together in different random proportions to generate our actual output. This was inspired by the audio technique of additive synthesis. For example the channel A amplitude might come from 30% of our first amplitude shape, plus 70% of our second amplitude shape. Channel B amplitude would use a different proportion of the same shapes. With this technique, A and B can either be highly related or not very related at all (depending on the proportions rolled), adding even more variety to the output.
Then, if that wasn't already enough randomness, we also introduce a bunch of independent probabilities for how things like our wave shapes, their speeds, and the 4 different proportions we use change over time.
The overall result produces some pretty wild patterns, with characteristics that can vary a great deal. It can almost feel like an intelligence is putting them together behind the scenes, which is what inspired the name and description!