Plug2in Pattern Composer

for Plug2in 2.0+

Intiface should listen at 127.0.0.1:12345 for live preview.

How to Use:

This app is compatible with the (as of 2022-12-13) upcoming version 2 of my Plug₂in for RPG Maker MV.
The current version v0.1 is only partially compatible. I rewrote it entirely to make it easier to service and use, but it's still lacking some final polish before I can release it.

As usual, only use this app in a safe setting where you can physically stop any devices connected to it if necessary.
I did aim for zero glitches, but that is difficult, so something may have slipped through. Please comment if you notice anything.

Commands:

Queued commands complete when first reached in the queue, unless otherwise noted. This particularly means that vibe start requireN will not wait for requiredCount.

"async" prefix

You can prefix any command with async (even configuration commands, but this is less useful).

Commands prefixed with async are (where applicable) queued and function normally but return immediately, without waiting for the queue.

"now" suffix

Some commands can be suffixed with now. This cancels the current pulse and preceding queue immediately. For example, sync now will skip any queued pulses and resume the most recent active pattern immedately, if any.

Durations

Durations are numbers (with optional decimal point) and specified in seconds.

Patterns

Patterns are either numbers from 0 to 1 (inclusive) for a constant strength pattern, or a case-insensitive sequence of latin letters and full stops over time. . is strength 0 (a pause in the pattern), while a is the weakest available vibration strength and z is the strongest.

If multiple patterns are specified, these are linearly "across the device length": If a device has two vibration features, but three patterns are given, then:

The strongest influence wins for each feature, so the pattern strengths are not added together, and they also aren't diluted if there are fewer patterns than device features!

If only one pattern is specified, it will be played back on all vibration features at full strength.

Recipes:

Wait for requiredCount:

To wait for requiredCount, use async vibe start requireN , followed immedately by sync. This ensures sync is queued immediately after the repeating pattern, so it will complete as soon as the required repetitions do.

Open-Source licenses:

This app is built using buttplug, licensed under the BSD 3-Clause license. Please see https://buttplug.io/ for more information and ways to support it directly.