Some thoughts:
Quote
ii) On a vehicle basis - The CurveForceControlled parameter in the SMS file can be used to "turn squeal on and off". This parameter is currently linked to the curve friction, which in my opinion is not the most efficient value to monitor for curve squeal, as the issues reported have demonstrated.
I can only speak for myself, but I don't use the curve force to turn the stream on and off in the sense that the stream is silent and then is audible like a switch (which is how the current route-based automatic squeal approach works). The initial triggers activate the stream above and deactivate below a certain threshold, but this is for the sole purpose of culling streams to ensure that, regardless of train length, a minimal number of streams is active at any given time as streams rapidly deactivate with distance. If I didn't do this, then the number of streams across a 150-car train would rapidly exceed the 1024 OR can handle at any given time. Conventional MSTS wisdom of abruptly deactivating an entire SMS at some unrealistically short distance doesn't really make sense given that some sounds that freight cars make should be heard at fairly large distances, especially rail hum, so the compromise was heavy culling and optimization.
Insofar as making the stream audible, a volume curve utilizing curve force is applied to blend the low-force and high-force streams in and out as necessary after the streams are activated. Curve squeal is a very nuanced sound effect and doesn't work at all with the on/off approach to any believable degree. The sound at low force is, quite simply, radically different than at high force. At low force, it's more of a mild squeaking sound, at high force the rails begin to make harmonic ringing noises. All of this depends on the speed and the radius of the curve, and the overall volume varies greatly. An on/off approach simply doesn't sound very accurate at all.
Quote
Hence my thinking is that we would achieve a better outcome if we used the wagon's AoA (Angle of Attack). At its simplest, this is the ratio of "Rigid Wheelbase / Curve Radius", and is already calculated in OR. AoA can vary depending upon other factors, and therefore using this value would provide some level of "future proofing" as the calculation method in OR could change over time to take into account different factors, but the AoA output should still represent the same performance outcome.
So long as this is implemented as a variable allowing smooth blending of multiple streams and not an on/off value, I'm all for it. If it's implemented as an on/off value I don't really have any interest.
Quote
I also believe that this feature would be better suited to implement on a route basis, rather then a vehicle by vehicle basis.
I'm not so sure about this. You're then at the mercy of the route developers to make good curve squeal sounds, and very few route developers are particularly good at building sounds as most of them specialize in building routes. Fewer still seem to understand dynamic range, which is why we end up with tiny incidental sounds like birds chirping that are as loud as a Saturn V at liftoff. This last point is pretty important as OR applies a limiter when it renders the final audio output and large numbers of excessively-loud sounds stepping on each other leaves the output highly susceptible to compressor pumping, which sounds awful. I spend much more time managing dynamic range, culling streams, and blending varying distance levels together than I do building frequency curves or editing samples, and I don't think most route developers treat audio as much more than an afterthought.
On the other hand, I could certainly create a "standard" set of SMS files based on the curve squeal streams I already have. Of course, there's no guarantee anyone and everyone would use them, so you're left with a mixed bag. For the end user, though, it would be a pretty simply copy/paste job, and we could even place a set of SMS files in the global folder as a fallback like we do with rolling stock sounds.
I guess I'm ultimately going to do things my own way, but hopefully this gives you some ideas behind my thought process.