Skip to main content

Bass shaker synthesizer for DCS World.

Project description

Shakersynth

Shakersynth is an alternative approach to driving tactile transducers (aka. bass shakers) from DCS World. It uses parametric real-time audio synthesis, provided by pyo, enabling it to create sounds that are dynamically derived from DCS telemetry data.

The canonical use-case is helicopter rotor vibrations. Shakersynth continuously adjusts multiple properties of the vibration to match the rotor in the simulator, so you can feel each blade as it passes overhead.

Demo

Play these videos through your bass shakers to (literally) get a feel for what Shakersynth can do.

Development Status

Currently, Shakersynth provides only rotor vibrations for the Mi-8 and UH-1H. It's best to run it alongside SimShaker Sound Module, which does a good job of handling a wide range of effects that don't benefit so much from the real-time synthesis approach.

Over time, Shakersynth could support more effects and more aircraft, but the initial priority was to get a really good rotor effect for the Huey and the Mi-8.

Trying it out

Shakersynth is a basic, text-mode application with no GUI. Getting it running is a little bit fiddly. Sorry about that.

  1. Install Python 3
    :point_right: Be sure to select options to add Python to the PATH environment variable.
  2. Open PowerShell and run:
    pip install shakersynth
    
  3. Save Shakersynth.lua to the folder:
    %UserProfile%\Saved Games\DCS\Scripts
    
  4. Edit this file:
    %UserProfile%\Saved Games\DCS\Scripts\Export.lua
    
    adding this line:
    dofile(require('lfs').writedir()..'Scripts/Shakersynth.lua')
    
  5. Back in PowerShell, run:
    shakersynth
    
  6. Shakersynth will show a list of audio outputs. Find the number that corresponds to your bass shaker interface and enter that number at the prompt.
  7. Run DCS.

Configuration

When first run, Shakersynth creates a default configuration file at:

%LOCALAPPDATA%\Shakersynth\shakersynth.yml

On my system, that becomes:

C:\Users\jarpy\AppData\Local\Shakersynth\shakersynth.yml

Edit this file to set some important options like the sample rate, output volume and frequency of the sound sent to the bass shakers.

If you delete the file, it will be recreated with the current defaults.

Configuration Options

Option Default Description
audio_api wasapi Not currently working!
sample_rate 44100 Sample rate of the sound card.
buffer_size 2048 Audio buffer size in samples.
global_volume 0.90 Output volume from 0.0 to 1.0.
rotor_hz 35.0 This frequency of the rotor effect.

Upgrading to a new version

  1. Open PowerShell and run:
    pip install --upgrade shakersynth
    
  2. Save the latest version of Shakersynth.lua to the folder:
    %UserProfile%\Saved Games\DCS\Scripts
    
    :point_up: This step is only needed after a major version change, like 0.6.0 -> 1.0.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

Shakersynth-0.4.0.tar.gz (7.8 kB view hashes)

Uploaded Source

Built Distribution

Shakersynth-0.4.0-py3-none-any.whl (10.1 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page