Running Multiple restim instances at once

Setup

Multiple instances

v1.19+

See diglet’s post.

pre-v1.19 (outdated, left as reference)

I’ve forked the restim source, and created a slightly modified version that can be run in tandem with the original restim. My fork can be found here.
This will create its own folder in AppData/Roaming, and have it’s own .ini file, keeping its settings and calibration separate.

If you want to create addtional restim instances past this, you’ll have to make your own edits to the source. You can look at the changes I made for my fork, and apply them to your own versions, to get additional instances.

Routing audio

Because each restim instance takes exclusive control of an audio device, this requires multiple physical audio devices, or multiple virtual audio devices. Physical audio devices are much simpler to get set up, but requires as many audio devices as restim instances you want to run.

Physical

For each instance of restim you are running, you must configure the audio device.
Go to Tools → Preferences → Audio → Output Device, and select the corresponding physical audio device for that restim instance.

Virtual

There are many ways to do this, but I’m sharing the method I personally use. Voicemeeter Banana provides you with virtual audio output devices that can be combined and sent as a multi-channel signal to your physical audio device. As far as I can tell, this is limited to two virtual output devices. Sorry.

For each instance of restim you are running, you must configure the audio device.
Go to Tools → Preferences → Audio → Output Device, and select the corresponding Voicemeeter virtual audio device for that restim instance.

In Voicemeeter:

  1. Set your output audio device. This should be the device you are hooking up to your estim box.
  2. Ensure that your audio inputs to Voicemeeter (the devices that restim is using as outputs) are outputting to that same audio device.
  3. Make sure all unused audio inputs are not routed into that device.
  4. Set your output device to “Composite”
  5. Hit Menu → System Settings

For the last part of setup, configure the composite settings. As pictured works for my specific setup, but you will need to fiddle with it to understand which signals are going where for your box.

Running different scripts for different electrodes

If you want to really maximize the potential of this setup, you can have separate scripts for your different electrode sets. This can be done by changing the scripts that your restim instances are looking for.
Go to Tools → Preferences → Funscript/T-Code, and change the values under the “Funscript Name” column to match the source script you’d like to use for that parameter. For example, you can have one restim instance dedicated to sensations on your legs, and change the alpha and beta axes to look for funscripts named “alpha_legs” and “beta_legs” respectivly. The possibilities are endless here and are limited only by your desire to script for them.

Use

Once you’re all set up, all restim instances will be able to work off of the same media input, simultaneously. Perform all necessary calibration, and select your media player of choice (in all instances), or connect to Intiface Central.

1 Like

I see in the composite settings you have In#4 left, In#4 right, In#5 left, In#5 Right in the screenshot, but how do you set Restim to not both point to the same input because doesn’t it just land at ‘VoiceMeeter Aux Input’ for both which points to the same place? I’m not seeing where that specific distinction is configured in Restim.

Good question, I didn’t really elaborate on this. I have one set to Voicemeeter Input (6), and the other set to Voicemeeter Aux Input (7). Points 1-5 and 8 don’t seem to work as virtual audio outputs.

In Restim v1.19, I changed how the settings are loaded, it will now load the settings file from the current directory instead of %appdata%. This means that you can run multiple instances of restim without modifying the source code, just copy the executable to two different dirs or create a shortcut with a different working directory.

Running multiple executables from the same dir is not supported and may result in strange behavior.

1 Like