Excessive Curve Resistance on Curves Less than 100m Radius Orders of magnitude jump in curve resistance
#11
Posted 28 January 2024 - 09:23 PM
And the same curve in U2024.01.24-2007:
It's not exactly the world's tightest curve:
What I need to know is this: is this a permanent change? If so, I need to issues patches for all of my sounds. That's going to take a while, so I would like to get started sooner than later. Note that I am not using superelevation.
#12
Posted 28 January 2024 - 09:48 PM
ErickC, on 28 January 2024 - 09:23 PM, said:
#13
Posted 29 January 2024 - 08:07 PM
ErickC, on 28 January 2024 - 09:23 PM, said:
I have had a look at this, and there doesn't appear to have been any changes since the bugfix was applied to the code last year. Feedback at that stage suggested that the resistance values were more in line with expectations. So unless there is evidence to the contrary, then I can only assume that it is working correctly. Note because of the changes since v1.5.1, version v1.5.1 can't be used as a base for comparison.
Is there anything else that I should be aware of in regard to the curve friction?
One point that mystifies me a bit, is your reference to the need to change your sound files. As far as I am aware the curve friction should not impact sounds in any way. Are you suggesting that there is an issue with sounds when on different radius curves (see comments earlier in this thread)?
#14
Posted 29 January 2024 - 09:23 PM
ErickC, on 28 January 2024 - 09:23 PM, said:
00.JPG
And the same curve in U2024.01.24-2007:
01.JPG
It's not exactly the world's tightest curve:
02.JPG
What I need to know is this: is this a permanent change? If so, I need to issues patches for all of my sounds. That's going to take a while, so I would like to get started sooner than later. Note that I am not using superelevation.
AREMA's rule of thumb is 0.8 lbf / ton of train weight / degree of curve. So a 250,000 lb GP38-2 on a 10 degree curve would be around 1000 lbs of resistance force. So your 800+ lbf on that curve seems quite reasonable.
#15
Posted 29 January 2024 - 09:40 PM
PerryPlatypus, on 29 January 2024 - 09:23 PM, said:
AREMA also states:
Quote
So the speed also has an impact as well, and also makes the value higher. So as you suggest I don't think that it is unreasonable.
#16
Posted 30 January 2024 - 09:15 AM
steamer_ctn, on 29 January 2024 - 08:07 PM, said:
The "CurveForceControlled" sound curves use the curve friction force as their driving parameter. I feel like I've seen it implied somewhere that the input is the centripetal force, but that's not how it's coded. (If it were centripetal force, then yes there would have been no change with friction.)
Since the curve force has increased compared to previously, soundsets using curve force triggers and curves will find that curve sounds are being triggered prematurely. A force that previously corresponded to a tight curve is now going to occur on even a gentle bend, resulting in all manner of painful squealing when such sounds are reasonably not justified.
#17
Posted 30 January 2024 - 10:21 AM
pschlik, on 30 January 2024 - 09:15 AM, said:
Since the curve force has increased compared to previously, soundsets using curve force triggers and curves will find that curve sounds are being triggered prematurely. A force that previously corresponded to a tight curve is now going to occur on even a gentle bend, resulting in all manner of painful squealing when such sounds are reasonably not justified.
Hi Folks,
Noted same - every curve squeals.
Regards,
Scott
#18
Posted 30 January 2024 - 11:22 AM
pschlik, on 30 January 2024 - 09:15 AM, said:
pschlik, on 30 January 2024 - 09:15 AM, said:
I assume that we are talking about Curve Squeal, which is enabled in the TRK file by setting the parameter ORTSCurveSMSNumber. Is this correct?
If this is the case, it appears to be triggered in the Sound.cs file at approximately line 427. This sound is triggered by the following code, which seems to rely purely on the curve radius and car type as follows.
if ((Car.CurrentCurveRadiusM > 0 && (Car.CurrentCurveRadiusM < 301 || (Car.CurrentCurveRadiusM < 350 && Car.WagonType == TrainCar.WagonTypes.Freight))) || (CarBehind.CurrentCurveRadiusM > 0 && (CarBehind.CurrentCurveRadiusM < 301 || (CarBehind.CurrentCurveRadiusM < 350 && Car.WagonType == TrainCar.WagonTypes.Freight))))
So I can't find the relevant code that is being impacted by the Curve Friction force. Are you able to point to it?
#19
Posted 30 January 2024 - 12:31 PM
steamer_ctn, on 30 January 2024 - 11:22 AM, said:
This is in wagon and engine sounds. As an example from a modified version of Erick's freight car sounds...
Stream ( Skip ( Flanges low force ) Priority ( 6 ) Triggers ( 3 Initial_Trigger ( StartLoop ( 1 File ( "NAVS_freight/flanges/x_flange_lo.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) Variable_Trigger ( Distance_Inc_Past 200 ReleaseLoopRelease () ) Variable_Trigger ( Distance_Dec_Past 200 StartLoop ( 1 File ( "NAVS_freight/flanges/x_flange_lo.wav" -1 ) SelectionMethod ( SequentialSelection ) ) ) ) VolumeCurve( CurveForceControlled CurvePoints ( 2 0 0.00 3500 0.25 ) Granularity ( .001 ) ) VolumeCurve( SpeedControlled CurvePoints ( 5 -8.00 2.0 -2.00 0.2 0.00 0.0 2.00 0.2 8.00 2.0 ) Granularity ( 0.01 ) ) VolumeCurve( DistanceControlled CurvePoints ( 3 10 2.0000 40 0.6250 200 0.0000 ) Granularity ( .001 ) ) )
The exact line of code that determines what value is used as the input to a CurveForceControlled volume curve is Sound.cs, line 1504 which uses car.CurveForceNFiltered, the curve friction after passing through a smoothing filter.
#20
Posted 30 January 2024 - 06:52 PM
pschlik, on 30 January 2024 - 12:31 PM, said:
Thanks for clarifying this.
I will reflect upon this, and come back with a solution.