Ayup racers, I'm away for a while so there'll be no crew chief changes for a week or two, and I think it's nearly 'done' in its current incarnation. This leads to an obvious question - what's next? I've been asked a few times to add some kind of 'button event' for it. I've no idea if my background app can see directInput (or whatever it is) events like the user pressing a button on a steering wheel, but it should be possible. So I've been thinking about maybe having a 'tell me stuff' button which triggers the app to give whatever it thinks is a useful bit of info at that point in the race. This would take a bit of work, so is it worth investing the time? I suppose I could have multiple buttons, one for each different bit of info. But it's not exactly 'realistic'... This got me looking into the Microsoft speech recognition API and it does look rather interesting. Basically you define a set of phrases it's listening for (which can have choices / parameters, like "how's my [fuel / tyres / engine temperature]"). You also have to tell it what language and what dialect you'll be speaking in. I'm still at the 'toying with ideas' point here, but it would be *very* cool to press a button on your steering wheel then ask a question into your headset mic, getting the appropriate info back from the crew chief. I still need to establish if this is feasible (technically I *think so* but need to check). If it is feasible it's a lot of work. First I'd need to package it properly in an installer which would also fetch the speech recognition libraries. Then I'd need to have a nice way for the user to select their language and dialect (it might be English only, I don't know). Then I'd need to allow the user to select a 'radio' button on their controller (assuming I can 'hear' button presses while R3E is using the controller). Then I'd start with a small speech recognition grammar with a handful of phrases ("what's my gap [in front / behind]", "how's my fuel", etc). With the button pressed the app would use the MS speech recognition API to listen for a phrase, and if it picks one up with reasonable confidence, it would trigger the message. The hard part of all this is inside the speech recognition engine, which is already done. Whether it works reliably enough I've no idea. For this to be worth investing time in, players would also need a microphone of some kind. The reason I've written all this is that I don't want to do down this route if such functionality wouldn't get used much. If it's just an interesting curiosity then I'll have wasted time I could have spent doing something useful with Crew Chief. What do you guys think?
Sounds good to me, what I would like to see, if it's possible when you startup RRE that it fire's up Crew cheif as well, the amount of times I've cranked up RRE and forgot to activate crew chief.
The app is really cool already and I think programming wise adding joystick/keyboard presses is most likely the easier route. Then you can use http://www.voiceattack.com/ to map speech to button commands. You get both options in one. I personally would use the button function and not the voice recognition. I would certainly understand that adding features are not worth adding compared to the number of effort and time it takes. The speed of updates is also really high so you are putting a lot of time in this app. Have a good holiday and don't take your laptop with you
I agree with rbn in that your app is already cool and voiceattack is a nice tool too but it might only be for the diehard racer out there. I have looked at voiceattack but only cause I am thinking of VR but for now wearing a heatset permanently turned me away from it. I also think that you have to be careful not to overload your app where it wll be constantly pumping out info to a point where it is too much talking. I did a couple races and at the moment I am getting all the info I need. Specific button reactions will be great giving us that particular info when we need it.
Would it be possible to do a small input meter and the effect of pedal pressure? + // How pressed the brake pedal is (-1.0 = N/A) + // Range: 0.0 - 1.0 + r3e_float32 brake_pedal; + // How much the player's brakes are biased towards the back wheels (0.3 = 30%, etc.) + // Note: -1.0 = N/A + r3e_float32 brake_bias; + // Unit: Kilopascals (KPa) + r3e_tire_pressure tire_pressure; // Brake temperatures for all four wheels + // Unit: Celsius (C) + r3e_brake_temps brake_temps
in terms of the crew chief app itself: 1, Volume control. (2 settings voice and background) 2, a simple user friendly gui with settings (or even just a clean cfg file without a bunch of syntax). (I feel like this would go along way to making the app more user friendly for the non technologically inclined.) those are my suggestions but r3e may get a inbuilt spotter type thing in the future so if its too much effort don't feel the need.
Volume control isn't actually available in the C# SoundPlayer object I'm using. Which is a bit daft but it means that a volume control isn't on the horizon. A decent ui might be worth considering but to be honest its quite a lot of fiddly work and will take a while. Not convinced it's the best use of my time. Or rather, it's boring to implement Turbo - I think meters and other visual stuff is out of scope of what I want to achieve with my app. But it's a good idea for some of the dash apps. I'll see if I can wire events to controller buttons, with some basic ui to select which buttons activate which events. I might have a fiddle with speach recognition for my own curiosity tho
For speech recognition, look at Voice Attack instead, no point in reinventing the wheel, VA works VERY well and can be set up to send keystrokes that CrewChief will then pick up on and respond to. As for taking input from the wheel/button boxes, I know @Craig was able to implement that in his dashboard app.
Had a quick look at voice commander - not quite what I'm after and its not free. If the ms voice api is as powerful and straightforward as it looks it should be pretty easy to roll my own. But like I said it'd just be a proof concept for my own use initially