Howl v0.8
Recording support
Howl now includes a recorder, which makes it very easy to create your own custom patterns. You can record the app's output and save it as an HWL file for later use. The recorder has two different modes: -
Passive (switched off). The last 2 minutes of output are continuously recorded to a circular buffer. If you're playing one of the more random activities and happen to get a pattern you really like, it's no longer gone forever once the pattern changes. You can just save the recent output, allowing you to play it again later, or make your favourite part into a loop.
Active (switched on). Allows you to create your own custom recording (up to 2 hours). You can record anything that Howl can play, for example generator patterns, or parts of other HWL files. It gives you a way to combine any existing content into a pattern that's perfect for you.
Please leave the recorder in passive (switched off) mode when you are not using it. When it is switched on Howl uses a special playback mode that is pulse accurate rather than time accurate. This allows the recording of content like existing HWL files without quality loss. But it's not recommended for normal playback, since funscripts will no longer stay in sync with videos, and all timing effects such as latency compensation are disabled.
Improved funscript playback
Howl's funscript playback algorithm has been further improved. It now continuously calculates the acceleration of the "stroker", in addition to the velocity that we previously used, and takes both into account when deciding what power level to assign to actions.
This should generally result in output from funscript files that is both more pleasurable and more realistic.
Kodi add-on changes
The Kodi add-on has been updated to version 0.2.0. Previous versions will not work with Howl 0.8.
The new version adds support for playing back HWL files in sync with videos, as an alternative to funscripts. This might be helpful for advanced users who want to convert legacy estim audio tracks, or who want to create custom experiences for estim beyond what the funscript format allows.
A "Remote access key" field has been added to the Kodi add-on's settings page. This should be set to match the corresponding key in Howl's settings, and acts as a basic security measure (use on an unsecured network is still not recommended, as the key is sent in plain text and an attacker could easily obtain it).
I've also created a sync test video and funscript specifically for Howl - see the Test Video section on the relevant wiki page. This helps you figure out the correct "Remote latency" setting in order to get proper sync, which is important for immersion. It uses some estim specific trickery like very rapid on/off funscript movements, which match up to audio and visual cues to let you more easily tell whether your device output is properly in sync with the video or not.
Reworked storage of user preferences
Improved the way that user preferences are stored, so that we no longer need to change the database structure to add or remove settings. This means that in future you should usually be able to update to new versions of Howl without your settings being cleared. However they will still be cleared when moving to this version, due to the changes necessary to implement the new system.
Other changes
- Made various visual changes on the "Player" tab, in order to distinguish the player from the new recorder and group each with their associated controls.
- Changed the highlight colour on some UI elements (active buttons etc.) to a shade of pink rather than bright red. I think this better matches the app's visual theme, but it's possible they might now be too subtle.
- Moved the remote latency control under "Player settings" rather than "Funscript settings", as it now also applies to HWL files that the Kodi add-on loads.
- Changed the default funscript scaling exponent to 0.8.
- Improved the funscript frequency time offset control (for the "Position" algorithm). Frequencies on A can now be taken either from slightly ahead of or slightly behind B in time.
- Added a "Fixed" option for the funscript frequency algorithm, for users who just want to use a static frequency on each channel.
- Removed the alternative funscript amplitude algorithm option, as results were usually worse than with the default algorithm.
- Removed the "Smoother charts & meters" option. The charts and meters now consistently update at 40Hz on all output devices, using the same pulses we calculate for the recorder feature. This also makes the UI smoother on "slow" devices like the Coyote 2, where it was previously locked at 10Hz regardless of settings.
- Added controls to the special effects page including some things like flat frequency adjustments (not very interesting but useful for developer testing of new patterns).
- Made a large number of improvements to code structure.
- Added example Python code for reading and writing HWL files that should be helpful to developers (libhwl.py).
- Added a Python command line tool for working with HWL files (hwltools.py). This can do some useful operations like joining two HWL files together (including adding multiple repeats of a loop), or extracting a section of an HWL file between two times into a new file. This might be helpful for users who want to create long or complicated HWL files, since you can record individual sections in the Howl app, and then join them together later on a PC with the command line tools.