It accepts T-Code input from either a serial port or a WebSocket and outputs to the Coyote over bluetooth.
The GUI allows adjusting the frequency, intensity, etc. for both channels individually, similar to XToys but with more fine-grain control.
Channel A is mapped to axis L0 (up/down) and Channel B is mapped to R2 (pitch). Optionally if using a single axis source you can link both channels or mirror/invert the axis L0 and output that to Channel B.
It’s generally compatible with all the same tools/software the OSR2 & SR6 are.
If using a WebSocket (like with MultiFunPlayer), it does not require any additional software.
If using a Serial Port, you need to create a virtual serial using software like com0com or Free Virtual Serial Ports. This lets software like FapTap connect to COM1 and the T-Code content gets routed out COM2 to the Coyote GUI.
The source .py files are posted as well, if running from source you’ll likely need to install some pip packages.
When using MultiFunPlayer, a -0.20s offset works best due to the slight lag in Bluetooth
In rare cases, not all Bluetooth adapters work properly. Some cause the output to significantly lag (many seconds) behind the input and progressively gets worse over time. Try a different Bluetooth USB dongle if you’re having issues.
Python source & exe compiled using PyInstaller are here:
fantastic, Coyote finally has funscripts done right! At least for stuff that isn’t too fast because the bluetooth packet rate for the Coyote is a little on the slow side, but if the intensity range isn’t too large it seems to handle this better than xtoys by a long shot! kudos to you, the Coyote is going to be collecting less dust for me now. Works well with MultiFunPlayer using websocket for me. I think there is something backwards with the pulse on time because the intensity is much higher if I reduce the pulse on time and less if I increase it. I remember the xtoys dev saying something about one(or more) of those values were documented in reverse in the protocol doc.
Some stuff to make MultiFunPlayer work better based on my very brief time playing with this tool - It seems like zero position on the funscript is max intensity and 100 position is minimum intensity which seems backwards but it’s easy enough to turn on invert in MultiFunPlayer to swap that around.
For two channel usage while using L0 and R2 with MultiFunPlayer - Set one as inverted and the leave the other normal and you’ve got stroking sensations if the electrode configuration is setup for it, or at least opposite behavior between the two channels connected to different places.
To bring the intensity down when the funscript stops moving(such as a long pause in an edging funscript or a break in a Cock Hero) - Enable auto home with the auto-home inside script turned on for both channels, set delay and duration to 1 second or whatever works for the funscript and set target value to 100% since that is the minimum intensity. This way both channels drop intensity instead of remaining at a potentially uncomfortable high intensity.
Hope this helps anyone else trying to get the best use out of their Coyote.