SimHub ShakeIt Bass Shakers custom 4 corner tire slip

blekenbleu

SimHub+Arduino hacker
Premium
My sim driving is Assetto Corsa with an office chair and wheel stand.
Without a harness keeping one's back contacting them,
back transducers seem of arguable benefit.

Already using SimHub,
having unused motherboard 7.1 sound and obsolete Denon surround receiver,
a ShakeSeat pad (no longer available) was ordered because:
An equivalent can be made using Dayton pucks
with e.g. 40cm square zippered cushion covers and EVA foam floor tiles.
SimHub's ShakeIt tire slip effect does not consider tire loading.
For example, an inside tire may be fully unloaded during cornering,
with very high slippage, but no perceived sensation in actual driving.
Haptic slip effects ideally change frequency based on slip
but change amplitude based on load,
which was impossible using only earlier SimHub support.

This SimHub profile attempts to approximate track sensations from street tires,
when securely harnessed in a fitted racing seat.
Usefulness of such haptic feedback may vary widely among users:
This haptic wheel slip feedback was IMO less useful
than deceleration and cornering simulation from harness tensioners,
but reduced a sense of "something missing".

Unambiguously directional haptic cues
wants direct stimulation of body parts,
e.g. left and right thighs, lumbar and/or sit bones.

Original 4-puck SRS ShakeKit cushion is no longer available,
but equivalent DIY PuckSeat assembly is not very hard.
SRS_EVA.jpg

Sensations to be simulated here:
  • squeal for small slippage, transitioning to moaning with more slippage,
  • then shuddering near breakaway,
    with intensities proportional to tire loadings
Implementation augments SimHub Wheels SLIP effect
with Custom Effects
  1. latitudinal and longitudinal acceleration properties
  2. loaded tire slips, products of tire slip properties times accelerations
Again, because load modulates slip in telemetry,
heavily loaded small slip could not be generated
as strong high frequency tactile effect
until SimHub added Forced frequency option.

Accelerations were originally estimated from speed and yaw changes,
serving as G force proxies.
Earlier SimHub versions sampled speed and yaw
at a lower rate than Assetto Corsa telemetry waas updated,
resulting in some changes 2x others, which code here detects and mitigates.

Loaded tire slip corner effects use products of tire slips and G force proxies:

A complete SimHub ShakeIt profile is available on GitHub.
It is now IMO obsolete.

SimHub slip telemetry in this profile is not portable among all games;
specifically, iRacing provides no slip telemetry.

An upgraded ShakeIt profile based on slip/grip ratio is recommended:
  • requires less car/track/sim-specific tweaking
  • delivers haptics better correlated with tires reaching grip limit,
    based on slip/grip ratios.
  • Improved grip estimation combines lateral and longitudinal
    and is modulated by heave
 
Last edited:
I'm a +1 for simpler profiles and effects that can be more broadly used across a range of sims and cars. Not bothered by a per sim profile but once we start getting into the per car profile territory I start to lose interest fast.

Also agree with the more general effects philosophy, using lower quantity of higher end units. For me having just the 2 units under the seat I am totally happy with what I am getting out of them. I've still barely had time to put together a profile using all the effects I've gathered from here and other places, just using engine vibes for the moment. Even that on its own is enough to give me a nice feeling in the car while I'm doing my laps and prepping for races. Eventually I'll get around to putting bumps and slip and other stuff into the profile.

Would be great to see a variety of "effect packages" made available for specific units. Like for me I'd pay $20 each for a BK CT/LFE effects pack and also one for the TST Silver. I'd assume they'd be dialed in for the hardware specifically and would provide a really good base to work from. Then from there you could just enable / disable effects and also play with the volume balance of each effect. Hopefully something like that is in the pipeline along with the hardware release of the Race Bass.
 
Upvote 0
I'm a +1 for simpler profiles and effects that can be more broadly used across a range of sims and cars.
We seemingly come at ShakeIt from opposite extremes, but
having not exhaustively tested most SimHub properties and effects,
it may be mostly WHEEL SLIPS that are problematically inconsistent.

So far as sorting slip differences for peak grip among cars,
that is IMO problematic to evaluate anywhere other than skidpads,
which seem unavailable for most games, or requiring better and more consistent driving than mine.
As a crude first approximation,
values for slip at brake lockup (front or rear, whichever occurs first) on pavement
are obvious bases for comparison.

On the other hand, if tactile effects are wanted for e.g. entertainment and immersion,
rather than as driving aids, then some compromise settings may indeed be satisfactory.

a BK CT/LFE effects pack and also one for the TST Silver
From my perspective, transducer-specific tuning is mostly about these controls:
output.jpg

...and whatever layering magic is involved in @Mr Latte's RaceBass, which I do not pretend to address.

bumps and slip and other stuff
In fact, (loaded) wheel slips are the only tactile settings for which I take any particular care,
and then to mostly approximate sounds and feelings of performance treaded street tires,
having not driven proper racing slicks since 40 years.

With the exception of wheel slips, other effects of mine are
essentially about only (telemetry) settings and formulae. For example,
I dumped only speed shift formula and telemetry plots without tactile settings
because no idea what tactile settings would be appropriate for shifts on bass shakers.

So long as resulting telemetry signals exploit the full range of values (0 to 100),
then dialing output gammas (to redistribute the amount of time any value is present)
seems the only other control with any possible transducer configuration impact.
 
Last edited:
Upvote 0
Yes, it's hard to convince others of the value of approaches that they misunderstand and disdain,
No misunderstanding on my part, and certainly no "distain".

I think I just have a different purpose.

I've been driving real racecars on real racetracks for over 13 years. In most circumstances in a real car you can't FEEL which wheel is slipping. Also, I rarely care. I can deduce it from the situation. Entry/Exit with no change in yaw moment => inside tire. Braking with understeer => outside tire. Throttle with oversteer => outside tire. In a real car, the slip is audible...and the car reaction is visual and vestibular.

My goals with the racing simulator is to replicate driving a real car---as "training" (for lack of a better term). Not get feedback that is unavailable in the car (even if its to artificially compensate for sensations that WOULD be available in the car).

So, perhaps its worth some time in-sim...but, its not information that is reliably available in-car. So, you have to learn to use other information to train your reactions.
 
Upvote 0
Not get feedback that is unavailable in the car (even if its to artificially compensate for sensations that WOULD be available in the car).
OK, you may be right that one may not directly feel individual wheels slipping IRL
(although there are audibly directional cues)
but I generally had some notion about how much each loaded wheel was slipping
(probably in part anticipation, but also because of inertial effects,
which, beyond harness tensioning I do not expect to reproduce in simulation, unless something like this).
So I may indeed be overcompensating in sim with too specific ShakeSeat tactile feedback
(just as do many with steering force feedback),
which feels credible after some practice and learning.

Regardless, I totally accept than many, if not most, prefer front/rear tactile,
which wants more than mere pucks and exciters because of increased masses involved,
even if greater dynamic ranges were not wanted.
I vaguely recall, long ago in my relatively short and wide C modified car,
left vs right slips seemed often as significant as front/rear..

I've been driving real racecars on real racetracks for over 13 years
You have me there; it has been nearly that long since I did.
 
Upvote 0

portability​

A year ago, SimHub lacked properties for lateral accelerations.
Consequently those were derived from changes in the OrientationYaw property.
SimHub subsequently made GameRawData.Physics.Acc available in AC but not elsewhere.
The profile version currently on GitHub uses those unportable properties.
SimHub now has GameData.Accelerations that seeemingly are available for most games.
Here is a comparison of the original formulae:
YawSpeed.gif

.. and SimHub's properties, rescaled:
Accprop.gif

.. where Front right is deceleration, Rear right is acceleration,
Front left is right G and Rear left is left G.
While there is generally good agreement between implementations,
neither acceleration and deceleration nor left and right G should ever be simultaneously positive.
Whether violations are plotting artifacts or actual property implementation bugs is unknown;
this exercise was merely to verify portable formulae substitutions.
 
Last edited:
Upvote 0

telemetry proxies: load​

Tactile effects for loaded wheel slips suppose the availability of signals for wheel loads.
Wheel loads can be roughly estimated from accelerations if otherwise unavailable.
Here are simultaneous plots, first from Assetto Corsa GameRawData.Physics.WheelLoad:
ACload.gif

... then a proxy for loads estimated from accelerations:
Gload.gif
 
Last edited:
Upvote 0
No misunderstanding on my part, and certainly no "distain".

I think I just have a different purpose.

I've been driving real racecars on real racetracks for over 13 years. In most circumstances in a real car you can't FEEL which wheel is slipping. Also, I rarely care. I can deduce it from the situation. Entry/Exit with no change in yaw moment => inside tire. Braking with understeer => outside tire. Throttle with oversteer => outside tire. In a real car, the slip is audible...and the car reaction is visual and vestibular.

My goals with the racing simulator is to replicate driving a real car---as "training" (for lack of a better term). Not get feedback that is unavailable in the car (even if its to artificially compensate for sensations that WOULD be available in the car).

So, perhaps its worth some time in-sim...but, its not information that is reliably available in-car. So, you have to learn to use other information to train your reactions.

I have been fortunate that working with some people my own effects experimentation has been tried by several accomplished track day and race drivers. Also a bonus, in that Simtag opens a door to have some rather famous racers, be able to help with effects development or evaluation.

We know that replicating what the real car does is important and this is one reason I have said "more authentic" feeling effects is actually on many people's agendas. It is deemed more important, with even mono front/rear based slip than seeking to have per wheel vibes with limited sensations over 4 channels.

I would say though, tactile can be enjoyable as both, to target more the real experience but also for the fun and entertainment purposes it can offer. Different users may like different things.
 
Last edited:
Upvote 0
Ideally, a SimHub effect would change frequency based on slip but change amplitude based on load.
This is not seemingly impossible using only currently implemented SimHub support.
This limitation is bothersome and increasingly irritating.
Meanwhile, EqualizerAPO source code is available on GitHub.
It is possible to hack a SimHub plugin for MIDI control
from ShakeIt CUSTOM EFFECTs gains of EqualizerAPO channels,
which could be SimHub ShakeIt audio channels
or even game audio channels...
 
Last edited:
Upvote 0
control from ShakeIt CUSTOM EFFECTs gains of EqualizerAPO channels
Hmm, rather than hacking into Equalizer APO source,
it may be expedient to instead hack or locate a VST 2.4 plugin compatible with Equalizer APO to controls gains via MIDI.
While there is SimHub plugin for MIDI in,
a plugin for MIDI out from properties is wanted.
 
Last edited:
Upvote 0
Last edited:
Upvote 0
Ideally, a SimHub effect would change frequency based on slip
but change amplitude based on load.
This is seemingly impossible using only currently implemented SimHub support.
This should be possible with the newly added "Force Frequencies" feature in Simhub 9.1.20. I'm currently using this profile: https://github.com/blekenbleu/SimHub-Profiles/blob/main/sierses_4-channel_wheelslip.siprofile

Now we can define code to modulate the frequency as a function of the slip, but I'm not sure how the existing formulas should be altered as slip is currently modulating the amplitude ? Any tips ?
 
Last edited:
Upvote 0
Now we can define code to modulate the frequency as a function of the slip,
This has been possible for several years using CUSTOM EFFECT,
by setting Frequencies based on Input,
then apply Response filters that go to 100%
(or any constant value) for non-zero input
to yield constant amplitude frequency varying effects.

but I'm not sure how the existing formulas should be altered as slip is currently modulating the amplitude ? Any tips ?
I requested a SimHub enhancement for effect channel gain controls
by property values, but no joy.
 
Last edited:
Upvote 0
This has been possible for several years using CUSTOM EFFECT,
by setting Frequencies based on Input,
then apply Response filters that go to 100%
(or any constant value) for non-zero input
to yield constant amplitude frequency varying effects.

Maybe I’m not understanding this right, but I thought the initial idea was to have the wheel load modulate the amplitude and the wheel slip modulate the frequency. This is now “easy” since we can write custom JavaScript for both amplitude and frequency in a single effect.

Maybe I’m missing something but as I understand there is no need for external plugins as it is part of vanilla SimHub.

What am I missing ?
 
Upvote 0
This is now “easy” since we can write custom JavaScript for both amplitude and frequency in a single effect.
Oops, I miss that was added in 9.1.20; thank you!
I will request that range of frequencies and white noise
be enabled for Forced Frequencies
LoadedSlip.gif
 
Last edited:
Upvote 0
Now we can define code to modulate the frequency as a function of the slip, but I'm not sure how the existing formulas should be altered as slip is currently modulating the amplitude ? Any tips ?
A quick hack for one corner:
CUSTOM EFFECT Front Left for AC: [GameRawData.Physics.WheelLoad01]*[ShakeITBSV3Plugin.Export.slip.FrontLeft]/2000
Forced Frequency Front Left: 100-[ShakeITBSV3Plugin.Export.slip.FrontLeft]
...where ShakeITBSV3Plugin.Export.slip.FrontLeft comes from WHEELS SLIP effect Export Property name slip.
WheelLoad is being multiplied by slip to avoid constant high pitch for no slip.
In practice, unique nonlinearity may want applying to slip multiplied by load
that would differ from that to control frequency,
so a separate WHEELS SLIP effect and property.

Without white noise, tire squeal will not sound realistic.
 
Upvote 0
A suggestion from SimHub discord: try rand().
Spent hobby time today updating ShakeKit pad to PuckSeat.
Yeah I’ve been thinking about how to generate white noise. That being said I’m not sure how it is implemented in simhub as it’s supposed to be multiple frequencies at once vs just a single random frequency as suggested above.

Another interesting thing to try would be to use two signals. A base signal, let’s say 60Hz, based solely on the loaded slip + understeer signals and a second signal based on the same as above but with a frequency that can be varied dynamically between 75Hz and 63Hz as a function of the slip. This would result in a beat frequency between 15Hz and 3Hz that is, at least on my rig with a single shaker, much more noticeable.

So this new dynamic frequency implementation in simhub is opening some interesting doors :)
 
Upvote 0
it’s supposed to be multiple frequencies at once vs just a single random frequency
The rand() value will change 60 times per second.
Since human frequency perception is geometric (e.g. octaves),
then tire squeal frequency wants some nonlinearity applied to
(slip_max - slip),
let's call that property tsnl with values for each wheel,
and higher values for lower slips.
Then tire slip frequency will use a*tsnl + b*rand(c+d*tsnl) + e,
where: a, b, c, d, e are tuning parameters
that may be prototyped using properties from MIDI control surface sliders.
 
Last edited:
Upvote 0
I noticed even with standard effects their now are more options. Had a brief look to see how/where their operation differs or more often they are active together.

Convince Me?
Not sure from a racing/immersion perspective how useful slip can be, if its not the most accurate or reliable data in every sim? I do like having proper separation from front and rear though and that applied to pedals or seat.

Certain cars have dash lights for front/rear slip, we can emulate that with LED too as a visual aid, but in most cases that slip is active, are you not already aware it's happening with...

Dash lights
The games audio
What you see in oversteer/understeer
Feedback from the wheel

I guess I am trying to understand better what will the primary benefit be to either immersion or as a driving aid with improvements in per wheel slip?

Good luck with it though and always interesting to see somebody work at something different.
 
Last edited:
Upvote 0
I guess I am trying to understand better what will the primary benefit be to either immersion or as a driving aid with improvements in per wheel slip?
I find it helpful to feel what the car is doing. Understeer / oversteer or intimately linked to the front or rear slipping.

Additionnaly it also adds to the immersion, and I feel more connected to my car. If a good FFB can help me feel what the front wheels are doing, I find it trickier for the rear wheels.

But you're right there is other cues that can be felt. I drive in VR on ACC, and I find it hard to consistently catch the ABS / TC lights turning on. It's easier for me to feel them.
 
Upvote 0
Back
Top