Upcoming Events

Join TCR Virtual today! AC events on Simracing.GP ACC events on Simracing.GP Weekly rFactor 2 events

What racing gear do you use while sim racing?

  • Gloves

    Votes: 278 19.4%
  • Boots

    Votes: 61 4.3%
  • Gloves + Boots

    Votes: 140 9.8%
  • None

    Votes: 952 66.5%

SimHub ShakeIt Bass Shakers custom 4 corner tire slip

blekenbleu

Premium
Messages
1,094
Points
2,047
My sim driving experience is only in Assetto Corsa with an office chair and wheel stand.
I have no experience with the full SRS ShakeKit, which may offer a superior experience.
Without a harness to keep one's back contacting them,
back transducers in ShakeKit Plus seem of arguable benefit.

Already using SimHub, having unused motherboard 7.1 sound and obsolete Denon surround receiver,
a ShakeSeat pad was ordered because:
An equivalent can be made using Dayton pucks with e.g. 40cm square zippered cushion covers
and EVA foam floor tiles.
Standard SimHub ShakeIt tire slip 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.
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 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:
IMO, this wheel slip feedback is less compelling than that from 2DOF harness tensioners,
but reduces a sense of "something missing".

Unambiguously directional haptic cues seemingly requires substantially direct stimulation of
body parts, e.g. left and right thighs, lumbar and/or sit bones.
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 replaces SimHub Wheels slip effect with a pair of 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 cannot be generated as strong high frequency tactile effect
and is confounded with larger slips at lower loadings..

Accelerations were originally estimated from speed and yaw sample changes, serving as G force proxies.
Earlier SimHub versions sampled speed and yaw at a lower rate than Assetto Corsa sample updates,
resulting in some changes 2x others, which code here detects and mitigates.
This was obsoleted by SimHub 7.3.14, which added Lateral acceleration support
JavaScript:
// lateral acceleration proxy
var y = $prop('OrientationYaw');
const tc = 3;  // IIR smoothing factor
const noise = 0.01 // non-linear filter threshold

// initialize IIR filter history
if(null==root["yaw"]) {
   root["yaw"] = $prop('OrientationYaw');
   root["delta_y"] = 0.2;
}
if (null==root["Gyb4"])
  root["Gyb4"] = 0.5;

var dy = y - root["yaw"];       // change between sample intervals

// yaw flips at +/- 180
if (Math.abs(dy) > 180) {  // yaw went +/- 180
  if (Math.abs(root["yaw"]) > 150)
    dy = -(y + root["yaw"]);
}

root["yaw"] = y;
y = root["delta_y"];    // previous sample change

// mitigate delta spikes from missed samples
var my = 1;     // sample interval
if ((Math.abs(dy * y) > noise)  // missed sample?
&& (Math.abs(dy) > Math.abs(1.8 * y)))
  dy /= (my = 2);

root["delta_y"] = dy;

// IIR low-pass filter
var Gyb4 = root["Gyb4"];        // IIR output
Gyb4 += my * (dy - Gyb4) / tc;  // low-pass IIR
root["Gyb4"] = Gyb4;
return 50 + (50 * Gyb4);  // range 0-100
// 50 corresponds to no G force
Longitudinal acceleration (right channel) is similar, substituting speed for yaw.

Loaded tire slip corner effects use products of tire slips and G force proxies:
JavaScript:
// left front loaded slip
// convert unsigned lateral Gs to signed left G
var L = $prop('ShakeITBSV3Plugin.Export.proxy_G.FrontLeft');
L -= $prop('ShakeITBSV3Plugin.Export.proxy_G.RearLeft');
// convert lateral G to left load
L = 25 + 25 * L / 100;
// convert unsigned accelerations to signed deceleration
var d = $prop('ShakeITBSV3Plugin.Export.proxy_G.FrontRight')
d -= $prop('ShakeITBSV3Plugin.Export.proxy_G.RearRight');
// apply deceleration to left load
L += L * d/100;
//return L;    // load test
// apply left front load to conditioned corner slip
var s = $prop('ShakeITBSV3Plugin.Export.proxyS.FrontLeft');
return s *  L / 100;

CUSTOM EFFECTS could be combined, except that
SimHub acceleration and wheel slip signals want Response filter tunings
before calculating and applying loads. In particular,
SimHub WHEEL SLIPS are relatively inconsistent among games and cars,
so want tweaking as telemetry signals
in order to exercise the intended range of tactile frequencies.

A complete SimHub ShakeIt profile is available on GitHub.
April 23 update uses SimHub 7.3.14 acceleration properties
instead of Javascript delta yaw and speed calculations.
It also adds a mono channel for unloaded rears wheel slip AKA trailing oversteer.
Slip telemetry used in this profile is not portable among games.
A portable update is being worked on, pending live testing...
 
Last edited:
Messages
2,426
Points
1,967
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.
 

blekenbleu

Premium
Messages
1,094
Points
2,047
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:
Messages
236
Points
202
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.
 

blekenbleu

Premium
Messages
1,094
Points
2,047
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.
 

blekenbleu

Premium
Messages
1,094
Points
2,047

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:

blekenbleu

Premium
Messages
1,094
Points
2,047

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
 

Mr Latte

Premium
Messages
3,690
Points
1,861
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:

blekenbleu

Premium
Messages
1,094
Points
2,047
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.
At least in theory, it should be possible to hack a SimHub plugin to make available
properties to control from ShakeIt CUSTOM EFFECTs gains of EqualizerAPO channels,
which could be SimHub ShakeIt audio channels or even game audio channels...
 
Last edited:

blekenbleu

Premium
Messages
1,094
Points
2,047
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:

blekenbleu

Premium
Messages
1,094
Points
2,047
Last edited:
Top