PDA

View Full Version : Crew Chief - an alternative race engineer for console & PC



Pages : [1] 2 3 4 5 6 7 8 9 10 11 12

mr_belowski
10-09-2015, 15:20
This is my little Crew Chief application, which works for PCars and RaceRoom.

A massive thankyou to the guys here who have provided some terrific bug reporting, suggestions, feedback, donations, and moral support. This is still a work-in-progress (it always will be) so will be continue to improve and mature - there might be bugs, but it should work.

Here's a grotty video of it in action on the PC. I make a few voice commands in this video, but because the crew chief voice is me, it makes it sound like crew chief is talking to himself :)


https://www.youtube.com/watch?v=-PQwALKGpMk&feature=youtu.be

Here's one of the Android app

https://www.youtube.com/watch?v=T8daEE9ouw0&feature=youtu.be

And another, with pit stuff and weather transitions

https://www.youtube.com/watch?v=84BFLiFhCqQ&feature=youtu.be



Here's a quick guide on how to get the app running. *This is for version 3. Version 4 works in a similar way but handles the downloading and installation of sound packs for you*:

https://www.youtube.com/watch?v=yeoHRV2YzGc

This application runs in the background while you play Project Cars. It reads data from the Shared Memory block that PCars writes to, and it uses it to trigger audio messages. It's intended to replace the built in race engineer, providing a different (and hopefully better) take on the proceedings. To run this windows 7 and 8 / 8.1 users will need to install the .Net framework version 4.5. Then just install app and run it, and click the two 'download' buttons (for sounds and driver names). Once that's done, restart the app.

Enable 'shared memory' from the Project Cars visual settings options.

Download the installer for the app here:

http://crewchief.isnais.de/CrewChiefV4.msi



CrewChief version 4.

Changelog
---------
Version 4.0.1.0: Initial (working...) release of Version 4. Lots of improvements and additions



Known Issues Which Aren't Fixable
---------------------------------

I recommend using UDP mode for the PC app ('pcars network data'). If this doesn't work well, the shared memory mode has a couple of limitations:

1: The shared memory data doesn't include opponent laptime data, so the app has to time their laps. In practice and qual sessions this is fairly reliable (because the app can use the time remaining in the session, sent by the game, for its 'clock' when timing). In race sessions with a fixed number of laps the app has nothing it can use as a clock to time the laps, so times them itself. This can lead to opponent lap / sector time inaccuracies if the player pauses the game (the app's clock is still running).

2: The shared memory data doesn't include opponent car class information, so the app will assume that every car in the race is the same class as the player's car. For multiclass races, all pace and other reports will be relative to the overall leader / fastest car.



The following issues apply to all versions of the app using shared memory or UDP data:

1: Joining a session part way through (practice or qualify session online) will result in the app having an incomplete set of data for opponent lap and sector times. In such cases the best opponent lap and sector data is inaccurate. The best-in-session opponent lap and sector times aren't in the data so the pace and sector delta reports may be inaccurate (they use the fastest lap completed while the app is running). As soon as an opponent sets a faster lap, the app will have up to date best lap data so the pace and sector reports will be accurate and complete.


2: Project Cars doesn't have a distinct pre-start procedure phase. I've added some more messages before the 'get ready' but there's a risk here that they might delay the 'get ready' message.


3: Detecting 'good' passes isn't really feasible. I've tried to limit the 'good pass' messages to overtakes that are reasonably 'secure', don't result in the other car slowing excessively, and don't involve the player going off-track. I can't, for example, tell the difference between a clean pass and a bump-and-run punt, so you might get congratulated for driving like a berk.


Quick start
-----------
Windows 7 and 8 / 8.1 users will need to install .net 4.5 to use the app. This is already part of windows 10. Download the installer, run it, start the app and download the sound packs from the app. Enable share memory or UDP in PCars (both work well). Select a game from the list at the top right. Click the "Start Application" button. Then fire up the game and be amazed at my poor voice acting.


Running with voice recognition
------------------------------
If you want to use voice recognition, download the correct speech recognition installers for your system (speech_recognition_32bit.zip or speech_recognition_64bit.zip).

The 64 bit installers are here:
https://drive.google.com/file/d/0B4KQS820QNFbY05tVnhiNVFnYkU/view?usp=sharing

The 32 bit installers are here:
https://drive.google.com/file/d/0B4KQS820QNFbRVJrVjU4X1NxSEU/view?usp=sharing

Alternatively, the Microsoft download links are, for the runtime installer (do this one first)
https://www.microsoft.com/en-gb/download/details.aspx?id=27225

For the language packs (use which ever en-XX best suits your location / accent)
https://www.microsoft.com/en-us/download/details.aspx?id=27224

Run SpeechPlatformRuntime.msi (this is the MS speech recognition engine), then run MSSpeech_SR_en-GB_TELE.msi or MSSpeech_SR_en-US_TELE.msi depending on your preferred accent (these are the 'cultural info' installers). If you want to use US speech recognition (MSSpeech_SR_en-US_TELE.msi) you must modify the "speech_recognition_location" property to "en-US". This can be done by modifying the property value in the application's Properties area. If you're happy with en-GB you don't need to do anything other than run the 2 speech recognition installers.

For speech recognition, you need a microphone configured as the default "Recording" device in Windows.

To get started, run the app and choose a "Voice recognition mode". There are 3 modes (the radio buttons at the bottom right). "Disabled" means that the app won't attempt any speech recognition. "Hold button" means you have to hold down a button while you speak, and release the button when you're finished. "Toggle button" means you press a button once to start the speech recognition, and the app will continue to listen and process your spoken requests until you press the button again to switch it off (while the app is listening you can make as many voice requests as you like, you don't need to toggle speech recognition off and back on again if you want to ask another question). "Always on" means the app is always listening for and processing speech commands. Selecting "Disabled" or "Always on" from this list makes the app ignore the button assigned to "Talk to crew chief".

If you want to use Hold button or Toggle button mode, select a controller device ("Available controllers" list, bottom left), choose "Talk to crew chief" in the "Available actions" list and click "Assign control". Then press the button you want to assign to your radio button.

You need to speak clearly and your mic needs to be properly set up - you might need to experiment with levels and gain (Microphone boost) in the Windows control panel. If he understood he'll respond - perhaps with helpful info, perhaps with "we don't have that data". If he doesn't quite understand he'll ask you to repeat yourself. If he can't even tell if you've said something he'll remain silent. There's some debug logging in the main window that might be useful.


Currently the app understands and responds to the following commands (updated 31/05/2016):

"how's my [fuel / tyre wear / body work / aero / engine / transmission / suspension / pace ]"
"how are my [tyre temps / tyre temperatures / brakes / brake temps / brake temperatures / engine temps / engine temperatures]"
"what's my [gap in front / gap ahead / gap behind / last lap / last lap time / lap time / position / fuel level / best lap / best lap time]"
"what's the fastest lap" (reports the fastest lap in the session for the player's car class)
"keep quiet / I know what I'm doing / leave me alone" (switches off messages)
"keep me informed / keep me posted / keep me updated" (switches messages back on)
"how long's left / how many laps are left / how many laps to go"
"spot / don't spot" (switches the spotter on and off - note even in "leave me alone" mode the spotter still operates unless you explicitly switch it off)
"do I still have a penalty / do I have a penalty / have I served my penalty"
"where's P [opponent race position]"
"what's [opponent race position]'s last lap" (for example, "what's p 4's best lap", "what's position 4's last lap", "what's the leader's last lap")
"what's [opponent race position]'s best lap"
"what's [the car in front / the guy in front / the car ahead / the guy ahead]'s last lap"
"what's [the car in front / the guy in front / the car ahead / the guy ahead]'s best lap"
"what's [the car behind / the guy behind]'s last lap"
"what's [the car behind / the guy behind]'s best lap"
"what's my gap to [opponent race position]" (time gap to opponent)
"what are my sector times"
"what's my last sector time"
"who's leading"
"who's [ahead / ahead in the race / in front / in front in the race / behind / behind in the race]" (gives the name of the car in front / behind in the race or on the timing sheet for qual / practice)
"who's [ahead on track / in front on track / behind on track]" (gives the name of the car in front / behind in on track, regardless of his race / qual position)
"tell me the gaps / give me the gaps / tell me the deltas / give me the deltas" (switch on 'deltas' mode where the time deltas in front and behind get read out on each lap. Note that these messages will play even if you have disabled messages)
"don't tell me the gaps / don't tell me the deltas / no more gaps / no more deltas" (switch off deltas mode)
"repeat last message / say again" (replays the last message)
"What's the air temp / what's the air temperature / what's the track temp / what's the track temperature" (current air / track temps in Celsius)
"What are my [brake / tyre] [temperatures / temps]"
"What time is it / what's the time" (reports current real-world time)


PC app only:
"where's [opponent driver last name]" (gives race position and gap to this driver)
"what's [opponent driver last name]'s last lap"
"what's [opponent driver last name]'s best lap"


Other button assignments
------------------------
You can assign the 'toggle spotter on/off' and 'toggle race updates on/off' to separate buttons if you want to be able to toggle the spotter function and toggle the crew chief's updates on or off during the race. This doesn't require voice recognition to be installed - simply run the app, assign a button to one or both of these functions, and when in-race pressing that button will toggle the spotter or crew chief on and off.


Properties
----------
The settings can be accessed by clicking the "Properties" button in the app. This displays a popup window where you can tweak stuff if you want to. This interface is a bit rubbish but should let you tweak settings if you want to, although the properties are all (currently) undocumented. If you do change something in this interface, the app needs to restart to pick up the change - the "Save and restart" button should do this.

Each property has a "reset to default" button, or if you get completely stuck you can close the app and delete the user configuration folder and it should reset everything.


Custom controllers
------------------
This is untested. If your controller doesn't show up in the list of available controllers you can set the "custom_controller_guid" property to the GUID of your controller device. If this is a valid controller GUID the app will attempt to initialise it an add it to the list of available controllers.


Program start arguments
-----------------------
If you want to have the game pre-selected, start the app like this for PCars: [full path]\CrewChiefV4.exe PCARS_64BIT. Or use R3E or PCARS_32BIT.
This can be used in conjunction with the launch_pcars / launch_raceroom / [game]_launch_exe / [game]_launch_params and run_immediately options to set crew chief up to start the game selected in the app launch argument, and start its own process.

If you want to run Crew Chief on your 4th CPU core only, and want have the application launch project cars (64bit) and start running immediately (i.e. just launch Crew Chief and everything else is done for you, no need to click anything else to start Crew Chief listening or launch PCars) you first need to make a couple of Properties changes. Go to the properties screen and set the "pcars64_launch_exe" property to c:/games/steam/steamapps/common/pCars/pCARS.exe (assuming steam is installed in c:/games), check the "launch_pcars" option, and check the "run_immediately" option. Then create a shortcut to CrewChiefV4.exe with the parameters cpu4 and PCARS_64BIT, so the "target" field in the short cut properties looks like this:

"C:\games\CrewChiefV4\CrewChiefV4.exe" cpu4 PCARS_64BIT


Running on a single CPU
-----------------------
You can set the processor affinity for Crew Chief in TaskManager, but this will have to be done each time you start the app. Alternatively, you can start the app with an addition argument "cpu1", "cpu2", ... "cpu8", like this:
[full path]\CrewChiefV4.exe cpu4
this will set the processor affinity to the 4th CPU in your system (usually referred to as CPU3 - they're zero-indexed).


Updating the app
----------------
The app will tell you if there's a new version and will download and run the updater. If there's a sound pack update or a driver name update the 'download sound pack' and / or 'download driver names' buttons will be enabled.


Donations
---------
I made this because I wanted to make it and I enjoy making stuff. Working with the various quirks, errors and omissions in the shared data which the games provide hasn't been much fun, but it's all part of the challenge. Having said that, there are many many hours of hard work invested in this.
If you use it and like it and it becomes a regular and positive part of your sim racing, I'd be grateful if you would consider making a small donation. If only to stop my wife from complaining at me.

My paypal address is jim.britton@yahoo.co.uk

Or you can now use this handy donate button. Assuming it works...
https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif (https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LW33XFXP4DPZE)


Would be great to recoup some of the investment in making this, but the most important thing is that the app is used 'in anger' and enjoyed as part of the sim racing experience. To this end, I'm always on the lookout for bug reports and feature suggestions.

One final point. If the app says "Jim is faster than you", let him through :)

SlowBloke
10-09-2015, 15:25
The idea sounds cool for me being a primarily Ai racer.

I do have Ben enabled currently but the limited vocabulary / repetition is getting a bit much....

I guess ultimately it depends on the usefulness / content / frequency of advice given by the audio ?

EDIT 01 October 2015: W O W !!
=====================
Just tried it for a quick 10 lap race - you have really made a very impressive tool there.

The spotter alone is fantastic but the whole package just works and provides useful info during the race.

Its safe to say you more than exceeded my expectations here - thank you very much!!

mr_belowski
10-09-2015, 16:23
The current RaceRoom implementation does have a bit more content that PCars one - more stuff about fuel & tyre use, mandatory pitstop stuff, a spotter ("hold your line... Clear" type stuff), and less of the "play a trick on him and slow down in the slow corner" type stuff. My app also has voice recognition (you can ask about tyre wear, race position, fuel usage, etc etc).

Obviously such an app would sink or swim depending on the quality / relevance / variety / quantity of messages. My existing implementation does a decent job with a limited data set, but the PCars data set is much richer and offers huge potential to add cool stuff. But I wonder if anyone would be keen on abandoning Ben's pearls of wisdom for some random internet geezer with a microphone...

Anyone here play RaceRoom and use Crew Chief?

Bobobski
10-09-2015, 20:27
Personally speaking, I love this kind of thing and I really appreciate persons such as yourself with the time/patients/talent to make it happen – I say: build it and they will come! - Especially love the idea of speech recognition, adds an interesting and authentic angle to the race simulation perspective.

AdM1
10-09-2015, 20:35
I'd like a womans voice. Something like.

'Hey up big boi, 1 more lap to go finish first and I'll give you a blowie'

I joke, we hear enough nagging for it to be in our games too ;).

mr_belowski
10-09-2015, 22:06
Good luck with that AdM1 ;)

I'll have a fiddle and see what I can come up with. Except for the woman's voice, of course.

Might be a bit simple / buggy / thin at first but if it looks promising it should grow quite quickly. If anyone's interested, the work-in-progress source code is here (the "decoupled" branch) : https://github.com/mrbelowski/r3e_crewchief_v2/tree/Decoupled

At this point, the PCars stuff is nothing more than the infrastructure and a smoke test - it does nothing yet. But it will :)

Thanks to MikeyTT for the shared memory struct layout, enums, and some of the mapping code

Stones
10-09-2015, 22:07
If your willing to spend the time to make it work in PCars, I'd be more than happy to give it a whirl.

Thanks

b_akerlite
11-09-2015, 15:44
This sounds interesting! What are the possibilities!? I usually race solo/time trial so improved engineer feedback would make it more engaging.
I would love stuff about tyres being up to temp so make the laps count etc Brakes too cold brakes to hot. Stuff like that would be awesome.
Beta tester at the ready!!

TrevorAustin
11-09-2015, 20:28
Absolutely love it!

Naz
11-09-2015, 21:15
I'd definitely be interested mate. Sounds great ... More variety and more information from the engineer would add to the immersion (especially in VR)

Machinist90
11-09-2015, 21:44
yes please,if that twat engineer tells me one more time "i can do it" i'll kill myself in a wall of tires

cry4dawn
11-09-2015, 21:52
I would be interested. For both pCARS and RaceRoom. I've just started playing RaceRoom again after a long absence. Just bought my first cars and tracks as I had played nothing but the free content. I wasn't even aware that there was a Crew Chief option! I would be especially interested in the spotter! I always drive with the cockpit view and don't have the full view of what's gong on around me.

mr_belowski
12-09-2015, 08:44
Quick update on this...

The basic mapping from the PCars memory block to my app is looking OK. Lots of testing to do and bugs to fix so it's not ready to be used yet, but it's getting there.

There are some significant gaps in the shared memory data though. For example, it contains lots of tyre data but the pressure and tyre type (compound & tread type) are both missing. This makes it impossible to, for example, recommend changing to wets because my app can't know if wets are already on (well... if the weather starts dry (which *is* in the block) then goes wet it can guess I suppose).

The block is also missing mandatory pit stop information, and the penalties stuff looks a bit thin.

I can work around some of this but not all of it. There's still lots of other good stuff in there so I'll keep pressing on. Raceroom's missing some important data too - again, I had to do some workarounds and miss out a few features.

I've got a bit of rework to do on when I trigger some messages. RaceRoom doesn't (yet...) have a very long track, so triggering some types of message at the start of a sector or at the start of a new lap makes sense. But for the 'ring this obviously isn't good enough - shouldn't be too hard to figure out an alternative (new lap or 3 minutes, which ever is sooner. Or something like that).

If anyone wants to try the Raceroom version, it's here: https://forum.sector3studios.com/index.php?threads/offical-release-of-crew-chief-version-2-now-with-volume-controls-and-even-launches-r3e-for-you.2516/

falcon2081
12-09-2015, 19:46
The API stuff hasn't been updated in months which is a shame because you guys make some great apps with what your giving. Let's hope SMS fix and update some of the issues plaguing the API.

mr_belowski
12-09-2015, 20:01
Indeed... Is there a place to make proper requests for stuff to be added to the memory mapped file? If there is, I can be quite specific about what data I need and what types I think would be appropriate. It's probably only half a dozen items which are missing for my app and they're all quite simple

falcon2081
13-09-2015, 03:14
You can try making a request in the API Sub-forum here (http://forum.projectcarsgame.com/forumdisplay.php?136-Project-CARS-APP-amp-API-Discussion).

cry4dawn
13-09-2015, 21:51
What I missed in the R3E version is the "car left" and "car right". I got the "Hold your line", "Still there" and "Clear" but it never told me where the car was. Great app other than that! I NEED this for pCARS! :D

Le_Poilu
13-09-2015, 22:22
Hi Mr_Belowski,

I bought Pcars this week-end (thanks the 40% rebate). I'd love to see your chiefcrew app for Pcars as I love it for R3E. The base pitcrew of the game is too limited compared to yours... Can't wait to test a functionnal version :D

Le_Poilu
13-09-2015, 22:27
What I missed in the R3E version is the "car left" and "car right". I got the "Hold your line", "Still there" and "Clear" but it never told me where the car was. Great app other than that! I NEED this for pCARS! :D

This is because the data doesn't exist on shared memory for R3E, He use the delta timing to spot a car near you.

Paul_t
14-09-2015, 15:31
I rather like the sound of this, and not because I've done the odd bit of C# - BC has already been turned off as the commentary just smacks of GRiD, NFS, and the dodgier Rally sims

mr_belowski
14-09-2015, 15:41
Still working my way through getting it running properly in PCars.

The spotter calculations and basic logic are working nicely but I still need to record the voice messages for it and add some delay to the 'clear' messages so it doesn't bounce. This spotter knows its left from its right (unlike the R3E one :)) so is quite similar to the iRacing one (car left... your in the middle, 3 wide.... clear left.... etc).

I've also been looking at driver names. PCars has a lot of AI names (3000ish I think) and it picks randomly for each race or championship, so recording all of these is clearly impossible. But I'm building the framework to pull the names out of the shared memory block, map them to a phonetic spelling and corresponding wave file, load them into the voice recognition system, and use them during the race. This means the app will be able to read the name ("smith is closing on you"), as well as recognise it when you ask about it (when it's working you'll be able to ask "where's smith?" and the app will respond with "4 seconds in front, P4" or whatever). There's still work to be done here but nothing difficult (just a bit time consuming).

I expect to have a folder with some name recordings in it initially and this will expand. To make the whole name recordings stuff worthwhile I may offer to record driver names for online championships (again, there are too many players out there to expect to make recordings of all the names that might be encountered in pickup races). I guess I'd need a list of the entrant names as they appear in PCars, along with corresponding phonetic spellings where appropriate. This also means that people would have to race with their real names (no "super_awesome_killer" or other silly handles). Can this be done? I know my PCars uses my steam name (mr_belowski) - is it possible to change this to my real name?

Le_Poilu
14-09-2015, 15:49
Little question: are you going for single app for each game ore will you release a unique app that can handle both (or more) games ?

mr_belowski
14-09-2015, 15:55
One app with a 'select game' list

Le_Poilu
14-09-2015, 16:01
ok.

If you do so, can you please have something like command line parameter to allow the selection of the game automatically ?

I Use SimCommander / Simvibe to launch my games, it launch 3rd party apps and while loading the game, the less user action is needed the better it is ;)

mr_belowski
14-09-2015, 16:22
My plan is to have it remember the last used game. Then when you start Crew Chief, if it's set to start running and launch the game automatically it'll fire up PCars for you and start listening for the shared memory. So, like it is with Race Room now, it should be a single click to have it start up and launch the game.

This means that, if you want to stop playing PCars and start playing RaceRoom, you'll need to reconfigure Crew Chief between sessions

mr_belowski
14-09-2015, 16:43
Actually, that's daft :)

I'll add an input parameter, something like
-gameDefinition PCars64bit

this will pre-select the value in that list box, so you can have 1 shortcut for PCars and one for Raceroom :)

Le_Poilu
14-09-2015, 20:59
Actually, that's daft :)

I'll add an input parameter, something like
-gameDefinition PCars64bit

this will pre-select the value in that list box, so you can have 1 shortcut for PCars and one for Raceroom :)


:eagerness:
That's fantastic !

mr_belowski
15-09-2015, 13:20
Phew... lots of updates last night and this morning....

The spotter is now working properly with left / right / 3 wide warnings. The basic voice recognition for opponent driver names is in ("where's smith?" will result in a "he's in P4" or whatever). This can recognise all the driver names in the session provided they have a spelling that voice recogniser can make sense of, or they have a mapping to a phonetic spelling. The recognition hit-rate for driver names can be a bit low, as you might imagine - you need to speak them as clearly as you can.

The first cut of reading driver names is in too. Currently this is only in response to a direct question (you ask "who's in front" or "who's behind", and app says "Smith"). This obviously only works when I've actually made a recording of that driver's name - the set of driver name recordings currently has only 10 drivers in it. Aside from recording loads of driver names, there's still lots to do to wire the available driver names into other events.

pargiNOS
15-09-2015, 14:14
Love your app for R3E, im waiting to test it at Pcars!!!
Thx for your hard work!!!

mr_belowski
15-09-2015, 14:44
Will try and make an early test version available tomorrow for feedback

mr_belowski
16-09-2015, 17:57
Still hoping to get something released tonight, but the change set is vast and testing time limited.

I added engine temp monitoring, flags, and a bunch of other stuff today. If it looks reasonably stable I'll package it up as a preview version

mr_belowski
16-09-2015, 19:46
OK, here's a really rough version which will probably have a *lot* of bugs in it.

To run it, extract the zip file and run CrewChiefV2.exe (I haven't got round to renaming the project yet, it should be V3). If you want to have PCars pre-selected, make a shortcut like C:\...\CrewChiefV2.exe PCARS_64BIT

Choose a game controller, map a button to "talk to crew chief", and select a voice recognition mode if you want to use voice recognition stuff (open radio channel).

Select PCars (64 or 32) and click "start application". Then fire up PCars and have a play. If you've mapped a button to voice recognition and have a mic properly set up, while you're racing hold the button you chose (or click it) and ask a question. Like "how are my tyres?", "what's my position?", "how's my pace", or (if you're feeling brave) "where's [some driver's last name]?". The readme (which is still for the old version) has a mostly complete list of stuff the voice recognition understands.

You could ask "who's behind" or "who's in front" but the app almost certainly doesn't have the voice files for any of the drivers in your race. Once I'm happy with the code I'll start the slow process of adding driver name recordings.

Like I said, this is *very* early work in progress stuff and will no doubt be broken in annoying places, but it should give some idea of where I'm going with it. I'm not going to start keeping a changelog until it's 'officially' released.


https://drive.google.com/file/d/0B4KQS820QNFbNm1FX1dMV19NaU0/view?usp=sharing

mr_belowski
16-09-2015, 19:59
Oh, and apologies for the nonsense time gap when asking "where's [some driver last name]" :)

TrevorAustin
16-09-2015, 21:07
OK, here's a really rough version which will probably have a *lot* of bugs in it.

To run it, extract the zip file and run CrewChiefV2.exe (I haven't got round to renaming the project yet, it should be V3). If you want to have PCars pre-selected, make a shortcut like C:\...\CrewChiefV2.exe PCARS_64BIT

Choose a game controller, map a button to "talk to crew chief", and select a voice recognition mode if you want to use voice recognition stuff (open radio channel).

Select PCars (64 or 32) and click "start application". Then fire up PCars and have a play. If you've mapped a button to voice recognition and have a mic properly set up, while you're racing hold the button you chose (or click it) and ask a question. Like "how are my tyres?", "what's my position?", "how's my pace", or (if you're feeling brave) "where's [some driver's last name]?". The readme (which is still for the old version) has a mostly complete list of stuff the voice recognition understands.

You could ask "who's behind" or "who's in front" but the app almost certainly doesn't have the voice files for any of the drivers in your race. Once I'm happy with the code I'll start the slow process of adding driver name recordings.

Like I said, this is *very* early work in progress stuff and will no doubt be broken in annoying places, but it should give some idea of where I'm going with it. I'm not going to start keeping a changelog until it's 'officially' released.


https://drive.google.com/file/d/0B4KQS820QNFbNm1FX1dMV19NaU0/view?usp=sharing

Tried it, looks good, when I eventually got it to start after fiddling with the command line (found I needed to use steam as in r3e it worked great until race launch, then I lost all sound and interaction with the game with an error saying crew chief has stopped working, no additional info.

mr_belowski
16-09-2015, 21:41
I bugger, I messed up the default properties. That version is set up to launch PCars when you click 'start application', but the pcars exe path is probably wrong in the properties.

I've uploaded a new version (same link) with this fixed - by default, the app does *not* attempt to launch pcars. This should stop that error.

I also changed the car length used for the spotter, so it's a bit less bouncy. And a couple of other fixes

Stones
17-09-2015, 02:26
The app seems to work with my wheel and Pcars. I'm still hearing the default game crewchief and I haven't heard any of your sound files except the ones that tell me spotter is on or off (button on wheel) as well as race updates are on or off. In properties Pcars 64 bit, the default sound files path is sounds. I set this on my box to d:/crewchiefv2/sounds/ but, it didn't change anything as far as hearing your sound file in any races. Do I need to turn the pit engineer off in pcars?

Thanks

mr_belowski
17-09-2015, 06:55
No, but you do need to turn shared memory on - its in the graphics / hardware settings (I think) in pcars

pargiNOS
17-09-2015, 07:56
Cant make it work, it does the radio check but i dont hear anything in game. I turned shared memory on and the crewchief.exe crashes when the race starts... I dont think it has something to do with the location of the game? Cause my steam folder is to a different location from the default...

Thx for your try, i have to wait for another release ;)

mr_belowski
17-09-2015, 08:40
Hmmm.... that's weird. The windows Event log will have the crash details - it'll be in the Application folder (look for .Net events). This will help me work out what the problem is.

Does it crash when the lights go green?

mr_belowski
17-09-2015, 11:12
Gaaahhh, I found what caused this. When the app tries to load the phonetic spellings and sound recordings for the session's driver names, it was looking for a hard-coded absolute path (c:\projects\CrewChiefV2\.....). Obviously this is not going to work. Will push a fixed version up to the same link soon. Sorry chaps

mr_belowski
17-09-2015, 11:45
I've just uploaded a new version of the app. I've removed the hard-coded path that was crashing it, and have done some house-keeping and tidying up. It now includes a readme file (pasted below) and the app and its associated components are all V3 now :).



CrewChief version 3.

Changelog
---------
Version 3.0.0: Major internal rework and rewiring; added project cars; loads and loads of other stuff


Quick start
-----------
You need to install .net 4 or above to use the app. Download the CrewChiefV3_with_sounds.zip file, extract it somewhere (anywhere, the app's not fussy), and run the enclosed CrewChiefV3.exe. Select a game from the list at the top right. Click the "Start Application" button. Then fire up the game and be amazed at my poor voice acting.


Running with voice recognition
------------------------------
If you want to use voice recognition, download the correct speech recognition installers for your system (speech_recognition_32bit.zip or speech_recognition_64bit.zip). Run SpeechPlatformRuntime.msi (this is the MS speech recognition engine), then run MSSpeech_SR_en-GB_TELE.msi or MSSpeech_SR_en-US_TELE.msi depending on your preferred accent (these are the 'cultural info' installers). If you want to use US speech recognition (MSSpeech_SR_en-US_TELE.msi) you must modify the "speech_recognition_location" property to "en-US". This can be done by editing CrewChiefV3.exe.config, or by modifying the property value in the application's Properties area. If you're happy with en-GB you don't need to do anything other than run the 2 speech recognition installers.

For speech recognition, you need a microphone configured as the default "Recording" device in Windows.

To get started, run CrewChiefV3.exe and choose a "Voice recognition mode". There are 3 modes (the radio buttons at the bottom right). "Disabled" means that the app won't attempt any speech recognition. "Hold button" means you have to hold down a button while you speak, and release the button when you're finished. "Toggle button" means you press a button once to start the speech recognition, and the app will continue to listen and process your spoken requests until you press the button again to switch it off (while the app is listening you can make as many voice requests as you like, you don't need to toggle speech recognition off and back on again if you want to ask another question). "Always on" means the app is always listening for and processing speech commands. Selecting "Disabled" or "Always on" from this list makes the app ignore the button assigned to "Talk to crew chief".

If you want to use Hold button or Toggle button mode, select a controller device ("Available controllers" list, bottom left), choose "Talk to crew chief" in the "Available actions" list and click "Assign control". Then press the button you want to assign to your radio button.

You need to speak clearly and your mic needs to be properly set up - you might need to experiment with levels and gain (Microphone boost) in the Windows control panel. If he understood he'll respond - perhaps with helpful info, perhaps with "we don't have that data". If he doesn't quite understand he'll ask you to repeat yourself. If he can't even tell if you've said something he'll remain silent. There's some debug logging in the main window that might be useful.

I've not finished implementing this but currently the app understands and responds to the following commands:

"how is my [fuel / tyre temps / tyre wear / body work / aero / engine / transmission / pace / engine temps]"
"what's my [gap in front / gap ahead / gap behind / last lap / last lap time / lap time / position]"
"keep quiet / I know what I'm doing / leave me alone" (switches off messages)
"keep me informed / keep me posted / keep me updated" (switches messages back on)
"how long's left / how many laps are left / how many laps to go"
"spot / don't spot" (switches the spotter on and off - note even in "leave me alone" mode the spotter still operates unless you explicitly switch it off)
"do I still have a penalty / do I have a penalty / have I served my penalty"
"do I have to pit / do I need to pit / do I have a mandatory pit stop / do I have a mandatory stop / do I have to make a pit stop"
"where's [opponent driver last name]"
"who's [ahead / behind]" (this one only works if you have the driver name recording)


Other button assignments
------------------------
You can assign the 'toggle spotter on/off' and 'toggle race updates on/off' to separate buttons if you want to be able to toggle the spotter function and toggle the crew chief's updates on or off during the race. This doesn't require voice recognition to be installed - simply run the app, assign a button to one or both of these functions, and when in-race pressing that button will toggle the spotter or crew chief on and off.


Properties
----------
When you first run the app it will create a user configuration folder in /Users/[username]/AppData/local/CrewChiefV3 (for example, on my system this is in C:\Users\Jim\AppData\Local\CrewChiefV3). This folder holds your application settings. The settings can be accessed by clicking the "Properties" button in the app. This displays a popup window where you can tweak stuff if you want to. This interface is a bit rubbish but should let you tweak settings if you want to, although the properties are all (currently) undocumented. If you do change something in this interface, the app needs to restart to pick up the change - the "Save and restart" button should do this.

Each property has a "reset to default" button, or if you get completely stuck you can close the app and delete the user configuration folder and it should reset everything.


Custom controllers
------------------
This is untested. If your controller doesn't show up in the list of available controllers you can set the "custom_controller_guid" property to the GUID of your controller device. If this is a valid controller GUID the app will attempt to initialise it an add it to the list of available controllers.


Program start arguments
-----------------------
If you want to have the game pre-selected, start the app like this for PCars: [full path]\CrewChiefV3.exe PCARS_64BIT. Or use R3E or PCARS_32BIT.
This can be used in conjunction with the launch_pcars / launch_raceroom / [game]_launch_exe / [game]_launch_params and run_immediately options to set crew chief up to start the game selected in the app launch argument, and start its own process. I'll provide examples of this approach soon.


Updating the app
----------------
The app, the voice recognition packs, and the sound pack are all separate. To install a new version simply download the CrewChiefV3_with_no_sounds and unzip it over the top of your existing installation. If the sound pack also needs to be updated, when you run the app you'll get an error in the console window telling you to update the sound pack. To do this, download the latest sound pack and replace the existing one with this new one.

At the time of writing, the sound pack can be downloaded here : [to be done]
the application can be downloaded here : [to be done]
the full app with sounds can be downloaded here : [to be done]
the 64bit speech recognition installers can be downloaded here : https://drive.google.com/file/d/0B4KQS820QNFbY05tVnhiNVFnYkU/view?usp=sharing
the 32bit speech recognition installers can be downloaded here : https://drive.google.com/file/d/0B4KQS820QNFbRVJrVjU4X1NxSEU/view?usp=sharing

pargiNOS
17-09-2015, 13:54
Now its working!!! Thx buddy :yes:
I dont use voice so i cant help you with that.

mr_belowski
17-09-2015, 14:00
Good stuff. I'm still fixing bugs and adding bits here and there, but it's good to hear it runs properly and at least 'works' :)

mr_belowski
17-09-2015, 21:33
Been working a bit on this and I'd assumed that the shared memory block contained the session best time for the player, and the session best laptime overall. It doesn't, so my app always thinks the player's best laptime is the session fastest over all. Bugger.

To work around this I've had to record the time elapsed when each opponent crosses the line and get an estimate of each opponent's laptime from that. Then I have to use those time estimates for assessing the player's pace. Messy but should be OK(ish) because even if the laptime estimates are as much as a tenth out, it should still be useful for pace related into.

If the session is a fixed number of laps, I've no direct measure of how long it's been running. I have to record the (real world) time when it goes 'green' - all the times calculations then have to use this as the start point, and real world 'now'. This means it all goes horribly wrong if you press pause :(

Stones
17-09-2015, 21:54
Now working since V3 and setting shared memory on. I've left the in game crew chief off as to not have redundant info. Would it be possible to have the crew chief acknowledge player actuated pitting?
You've done a excellent job of building and making this app work for pcars. Much appreciated sir!

Thanks

mr_belowski
18-09-2015, 06:35
I'll look into it

cry4dawn
18-09-2015, 17:43
I used it for a race weekend yesterday and I really liked what you have done! The issues that I noticed were at one point I think the engineer said that I was just over 48 seconds off the pace! While I was low in the pack at that time (I hadn't quite learned the track yet), but there's no way that I was that far off! :)

Another issue is that in the louder cars the engineer is difficult to hear over the engine noise. I have the engineer volume all the way up, but I still can't hear him.

Is there a way to turn off JUST the track limit warnings? I miss a braking point and destroy my lap, I KNOW that I've exceeded track limits, I don't need anyone "rubbing it in" :) But I DO find it useful when I am learning a track and pushing the boundaries to see how far I can go off the tarmac.

But I really love that teh spotter works well in all sessions of a race weekend. I was actually expecting it to work only in the race, so that's a big bonus!

mr_belowski
19-09-2015, 14:44
OK, another major update to this little app, but it's still a work in progress.

I've not worked out how to acknowledge player actuated pitting - to be honest, I've only had a brief look as there were a million other things on the list of stuff todo. Most notably more reliable session end / restart detection.

If you want to switch off the track-limits warnings, uncheck the "play_cut_track_warnings" option in the properties screen.

This version should have better opponent laptime tracking (still not 100% perfect but I think it mostly works, although the opponent laps can be as much as a tenth of a second 'out').

I've also added lots of driver names and the code to support them, but this is only a small fraction of the AI driver names the game can use. If any of you guys are racing in a league with a regular set of drivers and want to check out the app's driver name handling, give me a list of their online names / handles and (where needed) what each handle should be read out as (e.g. MabiX86 - read as "mabi"), and I'll add their names. Then, when you're racing against them, the crew chief will refer to them by name ("you're reeling Smith in, the gap's now 1.2 seconds" instead of "you're reeling this guy in...").

There's a metric shitload of stuff still to be done, but it's coming along nicely.


If you find my app is too quiet, you're just going to have to turn down the volume in PCars

Stones
20-09-2015, 02:56
When enabling "run _immediately", in properties, it will ask "please choose a game option" in order to start app. Just an fyi.
Also, "time_after_race_start_for_spotter" doesn't appear to function. Tried from default of 30 to 10000 with no effect. Tried 10000 as thought the "seconds" might have been milliseconds.

Thanks

mr_belowski
20-09-2015, 05:26
The pcars spotter doesn't do the race run time check - I'll add it.

The run_immediately flag only makes sense if a game is selected. I'll ignore the flag if no game's selected. I also need to make it save the selection.

Ta for the feedback. Found and fixed some bugs last night so there's a new version coming soon

TassyDevil
20-09-2015, 06:51
Just started testing mate.
Left, right etc with opponents is working great, when you have 30+ rookies in a race the crew chief has to keep on his toes LOL.

Will start testing talking to chief to see how that goes.

Do you have to download and extract this? (the 64bit speech recognition installers can be downloaded here : https://drive.google.com/file/d/0B4K...ew?usp=sharing)

You are doing a great job.

mr_belowski
20-09-2015, 07:39
Yes, download those (or the same from the Microsoft site if you'd prefer). Install the SpeechPlatformRuntime.msi. After that you need to install MSSpeech_SR_en-GB_TELE.msi or MSSpeech_SR_en-US_TELE.msi

The first thing is the 'runtime'. The second 2 things are the language packs. These contain the necessary stuff for the voice recogniser to interpret the sounds. If you speak American English, the MSSpeech_SR_en-US_TELE.msi will probably provide more accurate voice recognition. If you speak UK English the MSSpeech_SR_en-GB_TELE.msi will probably be more accurate.

Which ever you choose, it *must* have a matching setting in the app's properties section. Click Properties and look for speech_recognition_location. This defaults to en-GB. If you want to use American English, change this to en-US (after installing the MSSpeech_SR_en-US_TELE.msi pack, of course).

I don't know if there's a Australian English or any other English pack available. Same thing tho, if you found a pack called MSSpeech_SR_en-AU_TELE.msi then make sure the property is set to en-AU


I've just fixed more bugs - now the spotter will wait for the specified time (in seconds) before starting to spot, and I've also made it ignore cars when the closing speed is too high (so no more warnings for stationary cars).

I also made the game definition selection 'sticky' between app sessions and prevented the app from trying to run on startup if no game is selected. I'll upload this later today when I've had a chance to test it all.

TassyDevil
20-09-2015, 08:10
Thanks.
Aussie here, so will look for Aus if available.

TassyDevil
20-09-2015, 09:22
A question for you....

I have used the voice recognition available in Win7 to train VoiceAttack which I use for iRacing and it works great.
Can your program use this speech recog used in Win7 or do I need to load your msi packs?

mr_belowski
20-09-2015, 09:37
No, this uses a different technology which you need to install. It works quite differently internally - it doesn't need any training because the set of phrases it can recognise is set up in advance, limiting what it has to listen for.

So you will need to install that runtime. It shouldn't interfere with the existing one at all

TassyDevil
20-09-2015, 09:59
Ok no probs.

Just done a quick race weekend at Brands in the rookie and when on leaving the pits the chief kept telling me that I had someone on my right and to hold my line.
This continued thru turns 1-4 until someone tried to pass on my left.

Are you happy to receive these bugs as I get them?

mr_belowski
20-09-2015, 10:01
Yes, bug reports are good, keep em coming :). I encountered that spotter bug last night and think I squashed it, so that will be fix when I release the next update

TassyDevil
20-09-2015, 10:20
Ok.

TassyDevil
20-09-2015, 12:57
The speech recog is working ok obviously with a handful of answers but is really easy to use.

I know there is a multitude of things still to do with this app but so far it is great.

As I don't know what you can drag from the system to enable the chief to give information will you be able to advise damage, Invalid laps etc.

I have 3 screens so being told about car left or right etc is a real help.

mr_belowski
20-09-2015, 13:18
The app responds to aero and engine damage. Brake and suspension damage is still to be done, and I've got some work to do on tuning the damage warning sensitivities.

The list of voice commands you can give is in the readme

Lap invalidation and track limits warnings aren't great at the moment - I need to do more work in the area but the data in the shared memory is a bit lacking here

Rober
20-09-2015, 13:54
You are doing a pretty cool thing here, keep it up! By the way, it would be great to have the link in the first post, easier for updating, thanks!

mr_belowski
20-09-2015, 15:58
Yeah, I will, but I want the app to be a bit more stable and functional first. Some stuff like session end messages have only just been fixed and need testing, and this annoying spotter 'getting stuck' bug was a bad one. Once it's working better I'll edit the first post with a 'proper' release

cry4dawn
21-09-2015, 23:16
Just a quick question... Does the spotter/crew chief API give weather updates? Like "We expect rain in a couple of laps" or "Rain should stop shortly". Now that the AI drivers pit for wet/dry tires when the weather changes it would be useful to have an idea when the weather is going to change. Is this something that can be incorporated?

Just so you know that your work is appreciated, I do love what you have done so far! This runs every time I run pCARS or RaceRoom.

mr_belowski
22-09-2015, 06:41
Sorry for going a bit quiet on this, I've been working hard on it but progress has been slow. Working out what state the session is in, and when a session ends, is proving really tricky. The mRaceState and mSessionState variables are a pain to work with (e.g. for a practice session, the RaceState is "NOT_STARTED" for the whole of your first lap, then it goes to "RACE_STARTED". When the session time is up it goes back to "NOT_STARTED", but sometimes goes to "INVALID". It never goes to FINISHED. And other 'quirks...). Pain in the arse.

There are lots of other additions and improvements to the core code to make it easier to add events and stuff so once these bonkers session transitions are working reliably progress should speed up somewhat.

I've started collecting up more of the AI driver names and will record some today. I've got a set of 400 to get through, maybe a little optimistic, will see how it goes :).

Regarding weather, the forecast isn't in the data block but the current weather is. Would calling out the current weather be useful? I suppose stuff like "it's raining harder now" might help? But it won't be anything you wouldn't be able to see driving around anyway.

The available weather variables are: AmbientTemperature, TrackTemperature, RainDensity, WindSpeed, WindDirectionX, WindDirectionY, CloudBrightness. As you can see, there's no scope for weather forecasting other than warnings when the rain density or wind speed increases / decreases.

I'll make a new version available as soon as I can, which will probably be this afternoon

mr_belowski
22-09-2015, 12:34
OK, I'm still knee deep in the batshit logic of PCar's session transitions and how these are represented in the data block.

I've added some names, and made some other progress, but still need to do a ton of testing.

In the mean time, here's a new version which may or may not work well - I've not done enough testing, but if you want to have a look here it is:

https://drive.google.com/file/d/0B4KQS820QNFbN1VfZHRZMDdSc1k/view?usp=sharing

GPF1 Did
22-09-2015, 16:01
Hi, may I use the French pack with "MSSpeech_SR_fr-FR_TELE.msi" ?
Thank you.

mr_belowski
22-09-2015, 16:04
I don't think it'll work because all the phrases its listening for are in English.

But there's nothing to stop you trying :)

Shinzah
22-09-2015, 16:54
I came here looking for specifically something like this.

I'm going to go try it now!

mr_belowski
22-09-2015, 17:08
Don't expect it to be polished and bug-free. All bug reports and feedback gratefully received :)

Shinzah
22-09-2015, 17:54
I gave the app a try this afternoon. First of all. I love you. You're the best. Please keep polishing this.



I've started collecting up more of the AI driver names and will record some today. I've got a set of 400 to get through, maybe a little optimistic, will see how it goes :).
Wouldn't it be easier to compile a database of common given names and parse the field for them? I guess it would be nice to have everyones name exactly, but also...there are bajillions of names...



Regarding weather, the forecast isn't in the data block but the current weather is. Would calling out the current weather be useful? I suppose stuff like "it's raining harder now" might help? But it won't be anything you wouldn't be able to see driving around anyway.

The available weather variables are: AmbientTemperature, TrackTemperature, RainDensity, WindSpeed, WindDirectionX, WindDirectionY, CloudBrightness. As you can see, there's no scope for weather forecasting other than warnings when the rain density or wind speed increases / decreases.


Add this. Please add this. Please. Please add this. Please please. Do it for Shin. Do it for the good of humanity.
Especially Ambient, Track, Cloudbrightness and RainDensity.
Wind direction might be helpful to know at the start of sessions when first loading, but probably not all that helpful while actually driving unless theirs a BIG switch.
You could use the Cloudbrightness variable to fudge forecasting "It looks a bit darker/brighter out there now, maybe expecting/not expecting rain."
I like having Ambient and Track temperature so I know how much ambient/track heat is going into my tires. But this should be on a fairly uncommon switch.

Also, I'm not getting deltas very often. In fact, I didn't get deltas at all. Are deltas to the cars in front/behind recorded? I'd like to know their deltas, laptimes of my competition and perhaps most importantly WHEN THE FIELD PITS

But mostly...
mostly......
I'm just happy to have a working spotter. The first time I heard "Left side. Clear." I nearly cried with joy.

Keep up the good work.
Do you have another name other than Belowski? I felt a little strange shouting Belowski at my monitor :|

mr_belowski
22-09-2015, 18:58
Top feedback, thanks fella :)

Names are a tricky one... I'm already parsing the name field to try and get a shorter version of it - the app will try to extract a last name, skipping common 'handle' characters and numbers. If it can arrive at a fairly unambiguous last name, this is what it'll load into the voice recognition engine. If there's also a corresponding .wav file with the same name (or one that maps to it), it can use this for gap reports and other things.

For example, Jim Britton is easy - just get the last chunk so use Britton. mr_belowski is easy too - swap the _ for a space and use belowski as the last name. "[some_steam_group]-AwesomeBobXX69" is a bit harder - to handle this kind of thing I'd need a dedicated entry in my names mapping, where "[some_steam_group]-AwesomeBobXX69" gets explicitly mapped to "Bob". Names with 3 or more parts are hard too because there's no way of knowing which is the last name - Kelvin Van Der List, for example. Again, I'd need to have a line in my names mapping file - "Kelvin Van Der List":"Van Der List"

All this is working nicely at the moment, I just need to build up the set of name recordings and if there's a league out there who want their driver names in the app, I can add 20 or 30 names in a few minutes.

The weather is one that I needed some suggestions for - thanks for those. Using cloud brightness as a forecasting cue is a very good idea. I still need to work out when and why to trigger reports of weather changes. This will all be added but it'll have to come after the initial release - there are still lots of bugs to kill.

The time deltas are reported semi-randomly, and only in the race (again, prac and qual sector stuff is on the todo list). You'll only get a gap report ("you're reeling this guy in, the gap is now....", or "bob is catching you, the gap is now...") if you've been behind or in front of that same opponent for a number of sectors. Currently, it waits between 3 and 7 sectors (the number is random each time). If you've been behind the same guy continuously for that number of sectors, and the gap has changed significantly (more than a few tenths I think), then you'll get a gap report. If you're within a tenth or two you'll get a different message ("keep him under pressure" or something). So as you can see, a lot of factors have to be in place to get a gap report.

I'm surprised you didn't get any deltas / gap reports at all. Perhaps it's a bug. Once the kids are in bed I'm going to spend a little time testing.

The problem here is that if I make them more regular, it sounds better near the start of the race, but once the race settles down you quickly grow tired of hearing them. Clearly the time between gap reports should be varied a bit more smartly based on what's happening in the race - the random approach isn't really good enough.

Opponent lap times are a ball ache. The app has to estimate them (I only know when each lap starts - the app has to time the actual laps so pausing the game buggers it all up), and they can be off by as much as a tenth of a second. It's also hard for the app to guess which driver's laptime you might want to hear. Perhaps I can implement this in the voice recognition stuff - you have to ask the app "what was Bob's laptime?".

Opponent pitting... yes, another ball ache. Again this isn't in the shared data. But I do know what track we're racing on (that's in the data block), so can do some data gathering to establish the X/Y co-ordinates of the centre point of the pit entrance speed limit line at each and every circuit, then I can set some boolean flag when an opponent gets within a short distance of that point. Lots of faff but do-able.


Oh, and if you want to hurl abuse, the Crew Chief is call Jim :)

Shinzah
22-09-2015, 19:18
Top feedback, thanks fella :)
The weather is one that I needed some suggestions for - thanks for those. Using cloud brightness as a forecasting cue is a very good idea. I still need to work out when and why to trigger reports of weather changes. This will all be added but it'll have to come after the initial release - there are still lots of bugs to kill.

Just try to trigger rain density updates with some immediacy. Light rain came in the race I tested this with, then it progressively worsened to a point I was way past my pit window on dry tires and had to manage the gap.



The time deltas are reported semi-randomly, and only in the race (again, prac and qual sector stuff is on the todo list). You'll only get a gap report ("you're reeling this guy in, the gap is now....", or "bob is catching you, the gap is now...") if you've been behind or in front of that same opponent for a number of sectors. Currently, it waits between 3 and 7 sectors (the number is random each time). If you've been behind the same guy continuously for that number of sectors, and the gap has changed significantly (more than a few tenths I think), then you'll get a gap report. If you're within a tenth or two you'll get a different message ("keep him under pressure" or something). So as you can see, a lot of factors have to be in place to get a gap report.

I'm surprised you didn't get any deltas / gap reports at all. Perhaps it's a bug. Once the kids are in bed I'm going to spend a little time testing.


I got "Good Start!" after taking first. That was all, really. I was pulling 1-2s/lap on second until the rain came. I didn't even know he had pitted for probably several laps as when I checked, he was 38s behind and I was coming up on the back of the field.

Then he proceeded to reel in about 4s/Lap because I was on Worn Drys and he was on New Wets and the rain got worse and worse. It was very intense, but I had to do the mental math since there was no deltas.

Another thing that I noticed was the worry about my tire wear when I was being an insane madman driving on very soaked and worn slicks. "That left front will be past its best soon" and I'm a bit "Yeah, ten laps ago when this monsoon started innit."



The problem here is that if I make them more regular, it sounds better near the start of the race, but once the race settles down you quickly grow tired of hearing them. Clearly the time between gap reports should be varied a bit more smartly based on what's happening in the race - the random approach isn't really good enough.

I'd prefer a toggle key for Deltas Constant/Random/Off since I don't want to set up my mic/recording equipment to faff with voice recognition (nor do I really have any more room on my controller for push to talk)



Opponent lap times are a ball ache. The app has to estimate them (I only know when each lap starts - the app has to time the actual laps so pausing the game buggers it all up), and they can be off by as much as a tenth of a second. It's also hard for the app to guess which driver's laptime you might want to hear. Perhaps I can implement this in the voice recognition stuff - you have to ask the app "what was Bob's laptime?".

Mmmhh this is good info, and a pretty good idea. I wish the lap times had a flag or something. You can see them fine in the monitor mode.



Opponent pitting... yes, another ball ache. Again this isn't in the shared data. But I do know what track we're racing on (that's in the data block), so can do some data gathering to establish the X/Y co-ordinates of the centre point of the pit entrance speed limit line at each and every circuit, then I can set some boolean flag when an opponent gets within a short distance of that point. Lots of faff but do-able.


This too you can see in the monitor mode (entering/exiting pits or in garage) so it's weird. Though I guess that makes a fairly good workaround, but it seems like a ton of work since there's a bajillion tracks in the game and only one you.



Oh, and if you want to hurl abuse, the Crew Chief is call Jim :)

Righto ;)

mr_belowski
22-09-2015, 19:29
The tyre wear warnings are always going to be a hard to synch with the weather because, even though there's a ton of tyre data in the memory block the *actual sodding tyre type you're using* isn't in there. So I've no way to know if the current tyre is a slick or a wet. I kid you not :(

Sounds like there's a bug somewhere in the gap reporting - i'll see if I can kill it tonight.

Toggle button for deltas... I'll give it some thought.

Lap times... I can read off the leader's time and times of the guy in front and behind I guess, but it risks making the app a bit too talkative. Maybe I could get the best laptime for each of these 3 cars over 2 or 3 laps and read it out as "leader's pace is around the 1:31 mark", or something like that.

Getting the pit entrance location like I suggested is a non-starter because the track name in the data block will be different depending on the language you've got the game set to. So there's like 50 tracks in the game, multiplied by as many languages. Yes, this is both stupid and infuriating...

Shinzah
22-09-2015, 19:36
The tyre wear warnings are always going to be a hard to synch with the weather because, even though there's a ton of tyre data in the memory block the *actual sodding tyre type you're using* isn't in there. So I've no way to know if the current tyre is a slick or a wet. I kid you not :(

Welp.



Sounds like there's a bug somewhere in the gap reporting - i'll see if I can kill it tonight.


Mmm. Good luck! ^^;



Toggle button for deltas... I'll give it some thought.

Yay!



Lap times... I can read off the leader's time and times of the guy in front and behind I guess, but it risks making the app a bit too talkative. Maybe I could get the best laptime for each of these 3 cars over 2 or 3 laps and read it out as "leader's pace is around the 1:31 mark", or something like that.


This would be extraordinary helpful. You could use the 2lap average, and then maybe report on it when it changes by greater than a second or two in either direction.



Getting the pit entrance location like I suggested is a non-starter because the track name in the data block will be different depending on the language you've got the game set to. So there's like 50 tracks in the game, multiplied by as many languages. Yes, this is both stupid and infuriating...

Question: Could you fudge this if you were to say, check the delta to the car behind and if it had lost more than (let's say) fifteen seconds to you the lap before have a key in that so-and-so car behind you has pitted? Is there a way to do this so that you can do that and make the distinction between incident and pit somehow? Probably not, but it would be a more accurate than not fudging I think. Since 15s a lap would be a pretty ridiculous gain during a race.

mr_belowski
22-09-2015, 19:49
the alternative for the pit detection is to use the track position - if it's changing at a rate that suggests the car is on the pit speed limiter for more than a few seconds then that car is pitting

Shinzah
22-09-2015, 19:54
the alternative for the pit detection is to use the track position - if it's changing at a rate that suggests the car is on the pit speed limiter for more than a few seconds then that car is pitting

Worth looking into?

mr_belowski
22-09-2015, 20:15
coding it now

GPF1 Did
23-09-2015, 09:52
I wish I could help you, but my English is too poor to do ... :(
but I 'm looking forward to see more , congratulations.
I like this.

GPF1 Did
23-09-2015, 12:39
Petit feedback en français, en espérant que quelqu'un qui puisse traduire le fasse correctement car la traduction via google n'est pas très bonne malheureusement, je la mettrais tout de même à la suite ....

J'ai eu un soucis avec des essais libre avant une course, essais libre 1 de 1h30, j'ai fais quelques tours pour lesquels tout allait bien, j'avais les bonnes infos ...
puis j'ai fais echap et retour aux stands pour modifier mon setup voiture, là il m'a dit "end of session" alors qu'il restait plus d'une heure d'essais libre encore et quand je ressors des pits il ne me dit plus rien, comme si la session était bel et bien terminée, plus aucune info, même en lui demandant de me tenir informé avec les commandes "keep me informed" ou "keep me posted" et "keep me updated" ....

Traduction avec google (désolé je ne suis pas très bon en anglais)

I have had trouble with the free practice before a race , free practice 1 to 1:30, I made a few turns where everything was fine, I had the good info ...
then I 'm esc and return to the pits to change my car setup , then he said "end of session" while he remained a free practice time yet and when I come out of the pits there was nothing said, as if the session was definitely over , no more info , even asking him to keep me informed with the controls: "keep me informed" ou "keep me posted" et "keep me updated" ....

Voilà, merci.

mr_belowski
23-09-2015, 12:57
Will look into that. Detecting when a session ends is really difficult.

I've been looking a bit at the weather data in the block, and the RainDensity parameter is either 0 or 1, nothing in between. The CloudBrightness seems to vary randomly between 2 and 3 and doesn't appear to have any connection to how bright or rainy it actually is. It looks like the weather data are pretty much unusable.

TassyDevil
23-09-2015, 13:08
Oh, and if you want to hurl abuse, the Crew Chief is call Jim :)

And does Jim reside in UK?

mr_belowski
23-09-2015, 13:17
He might do....

Shinzah
23-09-2015, 14:57
Might need to script some catches so certain things don't trigger and make ole Jim sound a bit bipolar.

I got a message while having a horrendous TC race that the game decided had to storm at one of my worst tracks, that went a bit:

"Keep focused you're still in this. That was your fastest lap! Tire temps look good. Come on mate, this is hopeless."

mr_belowski
23-09-2015, 15:24
Yes, that one's actually a simple bug and I know what's causing it - it's on the list :)

b_akerlite
23-09-2015, 18:41
I am loving this thanks! I mostly race solo due to bad Internet at peal times so it improves the game play.

What I would like to make is a preset for free practice that can tell me things like purple sectors .. too long in top gear.... excessive bottoming out... tires up to temp... tyres wearing quickly... locking up to much on the brakes?
So it would basically like an engineer chatting to you while you dial the car in. Don't know if half those things are possible but I spend most my time in free practice before I go at the time attacks so it would help!

mr_belowski
23-09-2015, 19:33
Some of them *are* possible, but will take a while :)

TassyDevil
23-09-2015, 22:14
OMG "Jim" have you got others helping on this project?

The effort put in so far is fantastic and I would of expected more ppl who don't like the pcars engineer to be posting on this thread.

Thanks again mate.

mr_belowski
24-09-2015, 07:23
Glad you like it :)

I've not 'released' it yet, so it's not surprising that it's not that well known or commented on.

The pit detection stuff has proved to be a bigger pain than expected. The data I'm using - the opponents' 'mCurrentLapDistance' is actually full of rubbish. Just good enough to look like it might work, but far to noisy to actually work. And because the detection is quite vague it's taken a lot of arsing about to realise that I can't use this data.

But fear not. The spotter uses the 'mWorldPosition' data, which are X/Y/Z co-ordinates for each car. This appears to be usable (the spotter works, and M. -VIPER- Morgan's really rather awesome track map overlay stuff works too). So I just need to do some simple maths to get the speed and directino from these co-ordinates. If, over a 3 second period, the speed is fairly constant between, say, 13m/s and 40 m/s (each track has its own speed limit), and the direction doesn't change much, and the car is in sector 3, then it's on the limiter entering the pits.

Sounds simple enough :)


Other stuff's progressing. I've fixed the bug where it was giving encouragement while moaning about being last (that was an issue specific to the being last message, not a general problem), and I've fixed the practice sessions being interpreted as finished when you go back to the pits (stupid nonsensical data in the block again).

I keep getting side tracked by real life - mostly my poorly kids coughing and complaining :(

TassyDevil
24-09-2015, 12:30
I keep getting side tracked by real life - mostly my poorly kids coughing and complaining :(

The kids are more important than this mate, spend time with them.
:yes:

mr_belowski
24-09-2015, 15:39
Just uploaded a new 3.1 version. This has opponent pitting detection and some other things. But be warned, its massively lacking in testing.

I won't be able to test it until tomorrow at the earliest but if anyone wants to take a peek, feedback would be helpful

Link is same as before - https://drive.google.com/file/d/0B4KQS820QNFbN1VfZHRZMDdSc1k/view?usp=sharing

When I get some time I'll also write a long and tedious rant about the quality of the data in the shared memory. Its a noisy unreliable mess and is a complete pain to work with

Shinzah
24-09-2015, 15:46
Just uploaded a new 3.1 version. This has opponent pitting detection and some other things. But be warned, its massively lacking in testing.

I won't be able to test it until tomorrow at the earliest but if anyone wants to take a peek, feedback would be helpful

...Where did you upload it?

The same place? O-o

You should put updates in the OP, even if its not officially released yet ^^;

Edit: I see now, ninja'd by your edit ^^; Downloading now

mr_belowski
24-09-2015, 15:50
Yeah, I probably should. If this version isn't a complete mess and (mostly) works I'll sort out the first post and start documenting the changes

Shinzah
24-09-2015, 15:52
Going to go and give it a good thorough testing right now with my career weekend 320 TC race at Imola. Will report back.

mr_belowski
24-09-2015, 15:54
Thank you, you're helping a lot. I must warn you though, I've really not tested this properly - back up the previous version just in case and don't hate me when it all collapses

Shinzah
24-09-2015, 15:57
Thank you, you're helping a lot. I must warn you though, I've really not tested this properly - back up the previous version just in case and don't hate me when it all collapses

Well that didn't take long...the app crashes outright during free practice, lol

At the start of the session it crashed. Tabbed out and restarted the app. Tabbed back in and it crashed.

App does not like free practice :|

Edit: This version crashes immediately after the "initializing spotter" message when in any session for me.

mr_belowski
24-09-2015, 15:59
Buggeration. Can't look at it till later on, maybe tomorrow now :(

Shinzah
24-09-2015, 16:02
Buggeration. Can't look at it till later on, maybe tomorrow now :(

No worries. I can revert back to the previous version and wait out your findings ^^;

mr_belowski
24-09-2015, 16:08
It'll be something tiny and stupid with a one line fix. The worst kind of bug, sorry for the wasted download

Shinzah
24-09-2015, 16:10
Not a waste, I've already spent years testing pcars and its API apps. It happens sometimes. ^^;

Edit: Actually during development of Project Cars was an API app that did something similar. Would it help you any to look at it and rip it apart? (It doesn't work with pcars anymore because of version mismatch.)

mr_belowski
24-09-2015, 17:28
Might do I suppose :)

I think I've fixed it - was an issue with the spotter. Same link

Shinzah
24-09-2015, 17:31
Here's the app mate:
http://www.planetpointy.co.uk/downloads/pCars_LogiLCD_a0700.zip

I'm not sure how similar it is to yours, but you could probably reverse engineer it or something. In any case, if it helps ^^;

I'll go test the fix now!

Edit:
Ran my TC race at Imola, 15 laps, no issues. Spotter worked. Names seemed to work. Pit detection worked. Deltas to the car in front worked (never to the car behind, though.) Mechanical stuff worked, lap times worked. Everything seems functioning as intended. Will see about practice/qualifying sessions in my next event. Excellent stuff.

mr_belowski
24-09-2015, 18:28
Great stuff, thanks for that. The gap behind stuff might be OK, but the rules might need a tweak - it won't read the gap behind if it just read the gap in front

mr_belowski
24-09-2015, 20:08
Aaahhhh I found the reason the app wasn't reading out the gaps behind. if (isLast) {...} should have been if (!isLast) {...}

Doh :)

mr_belowski
24-09-2015, 21:22
Managed to give it a decent check over tonight.

I fixed the broken race start message (was always moaning about a bad start, even after a good one), made a small change to the gap reporting so reporting on a gap in front doesn't make it ignore the gap behind for the whole of the lap, made it so position change messages don't play when you're pitting, and a few other bits and bobs.

The reports on opponent lap times don't appear to be working at all (it should say "bob's just done a 1:23.1" if bob is in front or behind you and this is his best lap of the previous 3). No idea why, but it's not a high priority.

I think this version is now the 'release candidate'. I've re-uploaded it to the same link with these fixes -
https://drive.google.com/file/d/0B4KQS820QNFbN1VfZHRZMDdSc1k/view?usp=sharing

I'm going to use this as version 3.0 (but with a revised readme file), unless I spot something awful. I'll sort out the readme file tomorrow and re-write the first post and thread titles to reflect the status update.


It's been a right sod to work around the noise in the data and the omission of important information like opponent laptimes and pit status. But I think it's (finally...) getting there and reaching a point where it's better than the built in race engineer, and has a ton of potential to improve it.

Thanks for the help with testing Shinzah. Any more bug reports or suggestions will be gratefully received :)

Shinzah
25-09-2015, 02:30
This version works great too, had no bugs,errors or weirdness, during two practices and a qualifying session. Still hoping for a constant deltas toggle, but that's just me being hopeful.

The only other suggestion besides ones I've made before is a pedantic one - that when the soundfiles for "P1" ect play (during practice and qualifying) that if you ran a slower lap than PB it doesn't sound like you've just put in the P1 lap time. But that's just picking nits.

Great work and I'm glad it'll have an official release soon ^^; I look forward to any updates and new versions along the way!

TassyDevil
25-09-2015, 05:31
Same as Shinzah, this version is working much better.

Just one at the moment; "how is my fuel' did not receive an answer. This was in a offline race.

Will keep testing....

thomasjohansen
25-09-2015, 07:05
cant wait to try it out tonight....

Flihp
25-09-2015, 08:29
gonna give this a try, sounds great from what i read.

Phil

TassyDevil
25-09-2015, 08:38
It is great, and with the work to be done by mr_belowski it will be something a lot of pCars owners will want. ��

Flihp
25-09-2015, 09:23
It is great, and with the work to be done by mr_belowski it will be something a lot of pCars owners will want. ��

totally agree, just had a quick race with its fantabulous..Great work mr_belowski.

also just passing this on...

i was running second and had to stop to do other stuff, and just happened to spin, so i drove the wrong way and crashed head on and got disqualified, with a message " great work, you are on the podium" or something to that effect. :), love it ...

mr_belowski
25-09-2015, 09:42
Ah yes, I need to add another race finish status for disqualified, thanks for the info :)

Pyromaniak666
25-09-2015, 10:09
Not sure if this has been responded to already but any chance this can be implemented on Consoles, PS4 more specific?
Great work, by the feedback here this is truly amazing
Thanks

mr_belowski
25-09-2015, 10:16
Nah, its PC only - the consoles don't work the same way, no memory mapped file or anything

Rober
25-09-2015, 12:39
This is truly amazing indeed... and fast, almost no time to test the changes! A really must-have for PCars ;)

TassyDevil
25-09-2015, 13:40
mr_belowski Trying to get my brother set up with this also but am having a problem and have a copy of the error on the crewchiefv3 application.

23:27:48.437 : Voice dir full path = E:\spotter\CrewChiefV3\sounds\voice
23:27:48.442 : FX dir full path = E:\spotter\CrewChiefV3\sounds\fx
23:27:48.442 : driver names full path = E:\spotter\CrewChiefV3\sounds\driver_names
23:27:48.443 : Background sound dir full path = E:\spotter\CrewChiefV3\sounds\background_sounds
23:27:48.444 : Minimum sound pack version = 3 using sound pack version 3
23:27:48.475 : Cached 939 clips
23:27:49.345 : Unable to initialise speech recognition engine, check that SpeechPlatformRuntime.msi is installed
23:27:49.345 : Exception message: No recognizer of the required ID found.
Parameter name: culture
23:27:49.346 : Attempted to initialise speech engine - success = False
23:27:49.358 : Unable to initialise speech recognition engine, check that SpeechPlatformRuntime.msi is installed
23:27:49.359 : Exception message: No recognizer of the required ID found.
Parameter name: culture
23:27:49.360 : Attempted to initialise speech engine - success = False


He has windows10 installed and just wondering whether the error which shows that .. "attempted to initialise speech engine - success = False" is what is stopping SpeechPlatformRuntime.msi being installed?

mr_belowski
25-09-2015, 13:48
I think this means it can't find the cultural info object. In the 'Properties' interface, there should be a "speech_recognition_location" field. By default this is en-GB. If he's left it at en-GB, has he installed the MSSpeech_SR_en-GB_TELE.msi package? If he's changed it to en-US, has he installed the MSSpeech_SR_en-US_TELE.msi package?

TassyDevil
25-09-2015, 13:53
Just had a thought, I don't know whether we turned on pCars shared memory on his PC.

Could that be it?

Too late to ask him now he has gone offline... late in Aus at the moment.
Will let you know.:rolleyes:

mr_belowski
25-09-2015, 13:57
Nah, it won't be that - it's definitely something to do with the cultural info object. Either the speech_recognition_location field is wrong or he's not installed the package

mr_belowski
25-09-2015, 14:09
First post is now updated, the release is now 'official'.


Hope it works :)

TassyDevil
25-09-2015, 14:09
Ok will see if MSSpeech_SR_en-GB_TELE has been installed.
Tomorrow.... gn

GPF1 Did
25-09-2015, 14:19
under windows10 pro 64 bits it did not work ( I had the same message: Attempted to initialise speech engine - success = False)
I installed "SpeechPlatformRuntime.msi" and "MSSpeech_SR_en-GB_TELE.msi"
now it works very well , even with my poor English accent ;)

optimalspieler
25-09-2015, 16:36
That plugin sounds really awesome!

A nice addition for multi class racing would be this:
Warning if car of higher/different class is approaching ("you are about to be lapped by an LMP")

However this will probably be really tricky to implement, since you would need to constantly calculate car positions relative to the driver.

Shinzah
25-09-2015, 16:50
That plugin sounds really awesome!

A nice addition for multi class racing would be this:
Warning if car of higher/different class is approaching ("you are about to be lapped by an LMP")

However this will probably be really tricky to implement, since you would need to constantly calculate car positions relative to the driver.

It'd be nice to have lapping calls in general, whether you're the lapper or the lappee.

But this would be really great. I wonder if the data block can support it.

Cuba
25-09-2015, 16:52
I can't wait to try this out. This could be a significant as the Jack Spades FFB.... Great work! Maybe worth a "Sticky" in the near future.

thomasjohansen
25-09-2015, 21:59
Have been using it all night, what a wonderful program.

though, had to turn down volume of engine sound and efftects to hear.

love the spotter, so a missing feature in the game which you just broad in the game... but why is it saying clear al the time when nobody is near me?


Its amazing that you made such a great tool, when SMS only could make 5% of what yours have.

Flihp
26-09-2015, 00:16
Have been using it all night, what a wonderful program.

though, had to turn down volume of engine sound and efftects to hear

Yes I did the same, from memory I dropped engine volume and sound effects to 80% so far.

kingsti
26-09-2015, 01:43
This is fantastic.. thanks for releasing it, the game has become even more immersive. The configuration options are excellent too. I switched off the spotter for the left/right calls but will use that for Ovals.

If I were to make suggestions for future upgrades, I'd say to a. Increase the master volume range - it's a bit low at moment. b. Decrease the beep volume. c. Announce the race leader (as well as those close by) d. Announce what tyres the close competitor is running, e. Add more variety of calls -e.g the Rfactor 1 spotter (my benchmark for years) says things like - 'Are you alright' (after a crash), 'Let's show them what we're made of', 'Let's put those settings to good use - it's your show out there' etc.

I haven't heard all the calls yet but so far this is absolutely stirling work.

Shinzah
26-09-2015, 01:59
This is fantastic.. thanks for releasing it, the game has become even more immersive. The configuration options are excellent too. I switched off the spotter for the left/right calls but will use that for Ovals.

If I were to make suggestions for future upgrades, I'd say to a. Increase the master volume range - it's a bit low at moment. b. Decrease the beep volume. c. Announce the race leader (as well as those close by) d. Announce what tyres the close competitor is running, e. Add more variety of calls -e.g the Rfactor 1 spotter (my benchmark for years) says things like - 'Are you alright' (after a crash), 'Let's show them what we're made of', 'Let's put those settings to good use - it's your show out there' etc.

I haven't heard all the calls yet but so far this is absolutely stirling work.

Making a small report on top of this.

Absolutely knackered my car for the first time while using the app.

Jim, ever the optimist said "Got some minor Aero damage, just stay out." when...anything that creates downforce was busy raining down on the moon someplace... ;)

Animera
26-09-2015, 05:31
Frikkin' awesome! Well done! I'm loving it and have recommended that everyone in our league gets it.
I can't wait to see future enhancements. You've made the game come alive for me!

mr_belowski
26-09-2015, 07:04
The volume controls are a bit limited. The slider in the app is the full range available. If the app is still too quiet, you need to turn PCars down a bit. Not sure if there's a simple way to make the beep volume separately adjustable but I'll look into it.

The car position data is really noisy so the spotter will think a car is along side one update then think it's clear the next, then along side, then clear, etc. It's a bit of a ball ache to be honest. I've tried to make it cope with this but there's one more thing I can add which should remove those 'clear' calls. The app only calls 'car left' or whatever if that car's been there for 150ms continuously. The 'clear' call has a similar check, but I also need to disable the 'clear' calls in cases where the previous spotter state wasn't 'overlapping'. If that makes sense :)

I do try and announce the race leader when the lead changes and the app has the sound file for the lead car driver's name. AFAIK this was working, but will need more driver name recordings to be consistenly heard.

I don't know what tyres any of the cars are on - this is a surprising omission from the data block.

I will look into adding crash responses - it looks like there's some decent crash data in the block.

Perhaps the damage reporting needs a tweak :)


Expect a new version with the spotter 'clear' fix in over the next day or two, and maybe some fixes to the damage reporting rules - make it only play the worst damage you have, for example (so if you have minor aero and knackered engine, it won't mention the aero), and tweak the trivial / minor / major / knackered thresholds.

Finally, it's great to get some good feedback, bug reports, and suggestions. Keep 'em coming folks :D

Shinzah
26-09-2015, 07:08
I've been really lucky so far, the spotter seems to work perfectly fine for me and in a pleasant surprise of random irony I managed to get a field of (mostly) named drivers in one of my series.

Would like the session over/position reporting to come back for Practice and Qualifying. The session just....ends. Even if you pound on pole on the final lap. The messages used to be there, albeit when you entered pit lane or paddock.

mr_belowski
26-09-2015, 07:33
Man, detecting session end without false positives is such a sod. I'll work it out :)

TassyDevil
26-09-2015, 10:59
Jim, btw got my brother going, had not ran MSSpeech_SR_en-GB_TELE.

Just noticed also you have recorded 562 driver names, I would not be able to pronounce half those names mate, good job.

mr_belowski
26-09-2015, 11:01
Think I've killed that spotter bug, and I've changed the way I detect session end for practice and qual sessions. This should work better, but if you're on accelerated time when the session ends the app might miss the trigger.

I've uploaded version 3.0.1 and updated the first post with the changelog. There are no changes to the sound pack or driver names pack for this version. If you already have version 3.0.0, all you need to do is download the version with no bundled sound pack and unzip it over the top of the existing installation. This will update the app without changing the sound files.

thomasjohansen
26-09-2015, 11:09
will test v.3.0.1 now, hopefully I can trough some beer money at you soon, just to show my apriciation.

mr_belowski
26-09-2015, 11:19
Ah balls, I left some debug code in there - the spotter ignores the time-before-starting parameter. Will sort it now...

mr_belowski
26-09-2015, 11:34
Sorted now, sorry about that :)

Shinzah
26-09-2015, 13:06
will test v.3.0.1 now, hopefully I can trough some beer money at you soon, just to show my apriciation.

No kidding. If I'd had any extra quid I'd definitely donate a bit too.

Cuba
26-09-2015, 14:49
Mr Belowski great work. Is it possible to have a version number visible in the app while open so we can see the version we are running? Thx!

Shinzah
26-09-2015, 14:57
Just reporting in that session end reporting for Practice and Qualifying work perfectly on V3.0.1 ^^;

mr_belowski
26-09-2015, 15:09
Glad that appears to be working, hopefully it doesn't tell you that the session's over when it isn't.

Any feedback on the spotter tweaks? Is it still randomly saying "clear"?

Shinzah
26-09-2015, 15:10
Still having no issues at all with the spotter

mr_belowski
26-09-2015, 15:15
Good stuff.

Out on the sauce in a bit so will check back tomorrow :very_drunk:

Shinzah
26-09-2015, 15:37
Still having no issues at all with the spotter

Actually - There's a couple things that could be improved with the spotter but they are very small. The first being the delay between race start and spotter messages can be long enough at some tracks that he'll miss calling the first corner, which can be crazy at times. The other thing being that instead of playing two messages "Clear Left - Clear Right" after a three wide, it might be better to have a check for one message "Clear all around" or "Clear wherever you need".

mr_belowski
26-09-2015, 15:45
It does have a 'clear all round' but the logic needs sorting - it'll only play this if both sides go clear at the same time (within 50 milliseconds).

Varying the spotter start delay by track might be do-able - some function of the total track length or something. Will think about it.

Stones
27-09-2015, 02:48
Hats off to you, mr b! And all the rest w/ their feedback. It's a brand new sim again, for me.

Thanks

TassyDevil
27-09-2015, 04:57
Hey Jim, set up a donation button on the 1st post mate.
I'm happy to hit the button as this app is great.
Keep up the work we appreciate it.;)

xxTheGoDxx
27-09-2015, 19:40
I am sadly not able to get this to work. I downloaded CrewChiefV3.0.1b_with_sound_pack.zip, unzipped and started the app. I changed the paths under properities to my Steam paths and start the app. I get the radio check speech but no other messages ingame. If I hold the speech recognition key it seems to understand me but answers only with brief background noise. Memory Mapping is active and other Project Cars apps work fine with it. I use the 32 bit starting parameter because 64 bit Pcars never run for me. I tried the 64 bit setting in your app too but nothing changes.

21:26:54.078 : Voice dir full path = F:\Games\CrewChiefV3\sounds\voice
21:26:54.084 : FX dir full path = F:\Games\CrewChiefV3\sounds\fx
21:26:54.084 : driver names full path = F:\Games\CrewChiefV3\sounds\driver_names
21:26:54.085 : Background sound dir full path = F:\Games\CrewChiefV3\sounds\background_sounds
21:26:54.086 : Minimum sound pack version = 3 using sound pack version 30
21:26:54.171 : Cached 951 clips
21:26:54.907 : Attempted to initialise speech engine - success = True
21:26:57.603 : Using game definition Project Cars (32 bit)
21:26:57.621 : Running speech recognition in 'always on' mode
21:26:57.627 : Listening for buttons
21:26:57.632 : Starting queue monitor
21:26:57.641 : Monitor starting
21:26:57.647 : Polling for shared data every 100ms, pausing 11ms between invocations
21:26:57.676 : Processing queue of 1 event(s)
21:26:57.682 : None of the 1 message(s) in this queue is due or valid
21:26:58.653 : Processing queue of 1 event(s)
21:26:58.661 : *** Opening channel, using bleep start_bleep at position 0
21:26:59.071 : Playing sounds, events: radio_check/test
21:26:59.992 : Processed radio_check/test
21:27:00.000 : *** Closing channel
21:27:13.197 : Stopping listening...
21:27:13.328 : Application stopped
21:27:13.336 : Stopping queue monitor
21:27:20.905 : Got button at index 14
21:27:30.704 : Got button at index 14
21:27:41.195 : Using game definition Project Cars (32 bit)
21:27:41.219 : Running speech recognition in 'always on' mode
21:27:41.229 : Starting queue monitor
21:27:41.247 : Monitor starting
21:27:41.264 : Polling for shared data every 100ms, pausing 11ms between invocations
21:27:41.284 : Processing queue of 1 event(s)
21:27:41.295 : None of the 1 message(s) in this queue is due or valid
21:27:42.268 : Processing queue of 1 event(s)
21:27:42.279 : *** Opening channel, using bleep start_bleep at position 0
21:27:42.682 : Playing sounds, events: radio_check/test
21:27:43.608 : Processed radio_check/test
21:27:43.620 : *** Closing channel
21:31:29.596 : Stopping listening...
21:31:29.728 : Application stopped
21:31:29.740 : Stopping queue monitor
21:31:32.359 : Using game definition Project Cars (64 bit)
21:31:32.385 : Running speech recognition in 'always on' mode
21:31:32.398 : Starting queue monitor
21:31:32.415 : Monitor starting
21:31:32.426 : Polling for shared data every 100ms, pausing 11ms between invocations
21:31:32.448 : Processing queue of 1 event(s)
21:31:32.459 : None of the 1 message(s) in this queue is due or valid
21:31:33.432 : Processing queue of 1 event(s)
21:31:33.444 : *** Opening channel, using bleep start_bleep at position 0
21:31:33.849 : Playing sounds, events: radio_check/test
21:31:34.775 : Processed radio_check/test
21:31:34.787 : *** Closing channel
21:31:36.633 : Stopping listening...
21:31:36.766 : Application stopped
21:31:36.778 : Stopping queue monitor
21:31:40.709 : Using game definition Project Cars (64 bit)
21:31:40.738 : Listening on default audio input device
21:31:40.749 : Starting queue monitor
21:31:40.766 : Running speech recognition in 'hold button' mode
21:31:40.782 : Monitor starting
21:31:40.795 : Polling for shared data every 100ms, pausing 11ms between invocations
21:31:40.815 : Processing queue of 1 event(s)
21:31:40.827 : None of the 1 message(s) in this queue is due or valid
21:31:41.803 : Processing queue of 1 event(s)
21:31:41.815 : *** Opening channel, using bleep start_bleep at position 0
21:31:42.213 : Playing sounds, events: radio_check/test
21:31:43.211 : Processed radio_check/test
21:31:43.224 : *** Closing channel
21:32:05.696 : Listening...
21:32:07.222 : Stopping listening...
21:32:07.349 : recognised : what's my lap time confidence = 0,6691101
21:32:07.388 : *** Opening channel, using bleep start_bleep at position 0
21:32:08.281 : Processing queue of 1 event(s)
21:32:08.301 : Exception processing immediate clips: Object reference not set to an instance of an object.
21:32:08.320 : *** Closing channel
21:32:10.448 : Listening...
21:32:12.571 : recognised : what's my lap time confidence = 0,8408003
21:32:12.602 : *** Opening channel, using bleep start_bleep at position 0
21:32:13.500 : Processing queue of 1 event(s)
21:32:13.519 : Exception processing immediate clips: Object reference not set to an instance of an object.
21:32:13.538 : *** Closing channel
21:32:14.074 : Stopping listening...

Stones
27-09-2015, 20:51
Just in case you haven't done this:

in pcars - options/visuals/hardware/ used shared memory - yes

xxTheGoDxx
27-09-2015, 21:08
Thanks, but did that already. Like I said, all other apps like vDash work normally.

jim jonez
27-09-2015, 21:28
Great app!! Ma Friend!!!!

The engineer's vox sounds a little bit thin even with the engine turned down. Think you need to take out some of the harsh frequency/hollow sound from the engineers vox ,help cut through the sound of the engine.
Is it possible to request for just delta info from the engineer?

Keep up the good work!

Shinzah
27-09-2015, 21:39
Great app!! Ma Friend!!!!

The engineer's vox sounds a little bit thin even with the engine turned down. Think you need to take out some of the harsh frequency/hollow sound from the engineers vox ,help cut through the sound of the engine.
Is it possible to request for just delta info from the engineer?

Keep up the good work!

You can voice request your gaps to the front and back. My audio equipment is bulky so I don't use it much unless I'm recording something else and I want to play.

I asked for a hotkey toggle for constant deltas, I hope its considered and implemented ^^;

DeliriumTr
27-09-2015, 23:49
Great program mate! Works like a charm! :yes:

Big Thanks, Ill make sure I buy you a couple of drinks ;)

Ryzza5
28-09-2015, 01:09
It would be great to add a demo YouTube video to the first post.

mr_belowski
28-09-2015, 06:44
Wow, lots of feedback, thanks guys. I'll respond to the points you've raised later when I get some time. I think the most pressing is the issue with the app not working with 32 bit pcars, so I'll look at that first but will get to the other questions too :)

mr_belowski
28-09-2015, 07:03
a bit more info while I have me brekkie...

For 'deltas only' mode, I'm not entirely sure I understand what you want. Press a button (or make a voice request) and the app will stop telling you about pit stops, fuel / tyre use, damage, etc etc and only give delta info? Or do you want press this button and have the app give you this info on top of what it already tells you?

What info should be in the 'deltas mode'? Time delta to the guy in front / behind? Sector delta to these opponents? Sector delta to the leader? Sector delta to yourself?

I think I can add something here but I want to be sure it's what folks want before getting stuck in.

Regarding the voice being a bit thin, there was a mod for the RaceRoom version which filtered the sounds to make them much more radio-y. Boosted the middle and cut off the bass and some of the treble I think. It made them sound more 'old school' but they did cut through a little better. I'll have a chat with the guy who did it we'll see if we can get a version for the current app (which has lots more sound files to process)

mr_belowski
28-09-2015, 09:06
OK, version 3.0.2 is now up. This contains *only* the fix for running in 32bit mode (the app was looking for the wrong process name when running in 32 bit mode, sorry). There are no other changes except the addition of a 'donate' link to the readme. I also added a Donate button to the first post in time-honoured internet pan-handling tradition :)

https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif (https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=LW33XFXP4DPZE)

mr_belowski
28-09-2015, 11:04
Righty, I did a quick-n-dirty sound processing chain that band-pass filters the sounds a bit more aggressively and a couple of other bits and bobs. The resulting sound pack can be downloaded here -

https://drive.google.com/file/d/0B4KQS820QNFbcTUwajh4N3p6RTQ/view?usp=sharing

Replace the 'sounds' folder in your existing install with this one.

These sounds are a bit more 'radio like' and should cut through a bit more easily. I also trimmed a bit of leading and trailing silence off these

Stones
28-09-2015, 15:10
Alternative sounds are good. I think a lot of people just need to turn the engine sounds down a bit and they wouldn't struggle as much to hear. Imho... ;)

I run engine sounds @ 45% w/ fx sounds @ 75%. It's a nice balance for me.

mr_belowski
28-09-2015, 15:19
Are the alternative sounds substantially better, or just different? I'm happy to maintain 2 versions of the sound pack but it's a bit of a faff to be honest. If there's a general feeling that having both versions available is a good idea then I might put the driver names pack back into the sound pack. So rather than having a sounds pack and a driver names pack, instead I'll have a sound pack and a lo-fi sound pack (both of which include the latest driver names). Does that make sense? Otherwise I'd need to maintain a sound pack, a driver names pack, a lo-fi sound pack and a lo-fi driver names pack. Which I'm bound to screw up at some point...

Also, a massive thankyou to the folks who've donated a beer. I shall pop down the off-licence and spend it wisely :)

Stones
28-09-2015, 15:32
The alt sounds are a bit more "vibrant", imho. So, I think they're better, in that sense. I can imagine this is quite a project as it is, please don't make yourself anymore work than you need to. Much appreciated on this side of the pond. ;)

Shinzah
28-09-2015, 15:50
a bit more info while I have me brekkie...

For 'deltas only' mode, I'm not entirely sure I understand what you want. Press a button (or make a voice request) and the app will stop telling you about pit stops, fuel / tyre use, damage, etc etc and only give delta info? Or do you want press this button and have the app give you this info on top of what it already tells you?

What info should be in the 'deltas mode'? Time delta to the guy in front / behind? Sector delta to these opponents? Sector delta to the leader? Sector delta to yourself?

I think I can add something here but I want to be sure it's what folks want before getting stuck in.

Regarding the voice being a bit thin, there was a mod for the RaceRoom version which filtered the sounds to make them much more radio-y. Boosted the middle and cut off the bass and some of the treble I think. It made them sound more 'old school' but they did cut through a little better. I'll have a chat with the guy who did it we'll see if we can get a version for the current app (which has lots more sound files to process)

I can only elaborate as to what *I* would like to see, but here's the specific.
Gaps to the front/back every lap
Toggle works like spotter/race updates so on top of
Can already toggle race updates and spotter off/on
I think it'd be a nice feature to have deltas to the front and back every lap (especially during important endurance racing pit cycles/near the end of a stint) without having to ask Jim every lap what the gap front/back is. Just "Give me gaps every lap please." one time, or button ;)


I like the new sounds, I think they should become the standard.


Edit: I know this would probably annoy some drivers, but to an endurance driver in some situations this is almost crucial. E.G If you're in front of a car that's pitted and you haven't you need to know exactly how fast to maintain or create a pit gap so you don't get undercut. ^^;

mr_belowski
28-09-2015, 16:00
OK fella, I'll give it some thought. The kids are still ill so actually getting time to think is a bit of a luxury at the moment :rolleyes:

mr_belowski
28-09-2015, 17:10
i've added that now - there's a toggle button which makes the app read the time gap to the guy in front whenever you cross the line, and the gap to the guy behind whenever he crosses the line. When the app is in this 'mode' it will still do all the other stuff, but the other gap messages ("the gap in front is increasing" etc) are disabled.

The toggle can also be made by a voice message - "tell me the gaps" and "don't tell me the gaps".

I've only just put this in and haven't tested it, so if I've misunderstood what you're asking for, now's the time to tell me :)

Shinzah
28-09-2015, 18:51
i've added that now - there's a toggle button which makes the app read the time gap to the guy in front whenever you cross the line, and the gap to the guy behind whenever he crosses the line. When the app is in this 'mode' it will still do all the other stuff, but the other gap messages ("the gap in front is increasing" etc) are disabled.

The toggle can also be made by a voice message - "tell me the gaps" and "don't tell me the gaps".

I've only just put this in and haven't tested it, so if I've misunderstood what you're asking for, now's the time to tell me :)

That's exactly what I want! looking forward to the update ^^;

Bobobski
28-09-2015, 19:59
Just tried it and it's brilliant! - wish I had more time to test these things out, but 'Real Life' isn't cutting me much slack at the moment - loving what I've experienced of it so far though, great app.

Pamellaaa
28-09-2015, 20:21
Wow!, This is incredible I didn't think something like this would even be possible. I sort of stumbled upon it by accident in the forum and decided to give it a go and was blown away by how well this works, great work and thank you so much for sharing this.

I currently have a League on the go for TGC and I have already recommended this to everyone in the league to try out :)

mr_belowski
28-09-2015, 20:58
Pamellaaa - if they like it, give me their steam IDs and (for any non-obvious ones) what they'd like to be called and I'll add their driver names to the driver names recording set. Bear in mind that these names should be recognisable from their steam name (the steam names are shown on the leader boards etc - the names the app speaks and listens for should be recognisable from that list).

Shinzah - that deltas-only mode looks good. I've configured it so if it's in deltas only mode, it will still play all the other messages unless you tell it to keep quiet. So if you want nothing but the deltas you'll have to ask it to stop spotting and stop race-updates. Does that work for you?

Also, I tried my lo-fi sounds pack and it really doesn't cut through like it did. Back to the drawing board on that one I think

Shinzah
28-09-2015, 21:00
Shinzah - that deltas-only mode looks good. I've configured it so if it's in deltas only mode, it will still play all the other messages unless you tell it to keep quiet. So if you want nothing but the deltas you'll have to ask it to stop spotting and stop race-updates. Does that work for you?


Yep, perfect.

Timmynator
28-09-2015, 21:20
Somebody from SMS give this man a call! An amazing app, just gave it a quick whirl in a quick race with AI opponents - this crew chief tells you anything you need to know.

And from what I heard in our MP testing it also works very well in MP.

Pamellaaa
28-09-2015, 21:28
Pamellaaa - if they like it, give me their steam IDs and (for any non-obvious ones) what they'd like to be called and I'll add their driver names to the driver names recording set. Bear in mind that these names should be recognisable from their steam name (the steam names are shown on the leader boards etc - the names the app speaks and listens for should be recognisable from that list).

Shinzah - that deltas-only mode looks good. I've configured it so if it's in deltas only mode, it will still play all the other messages unless you tell it to keep quiet. So if you want nothing but the deltas you'll have to ask it to stop spotting and stop race-updates. Does that work for you?

Also, I tried my lo-fi sounds pack and it really doesn't cut through like it did. Back to the drawing board on that one I think

Great thank you, I have figured out where the mappings are and added one which seems to work, do you have any objection to me making a list of drivers that we need and distributing it around our guys to use or would you rather it was only you making changes?

mr_belowski
28-09-2015, 21:29
great to hear it works in MP cos, er, I've kind of forgotten to test it in MP :culpability:

I'll do a bit of general testing tomorrow and release 3.1.0. This will need a new sound pack for the new 'deltas mode' messages. I might even get the time to do a little testing, but that might be a bit optimistic

mr_belowski
28-09-2015, 21:34
Pamellaaa - have you added your guys to driver_names/names.txt?

This can be used to tell the voice recognition engine what name to listen for for each steamID. If you want to keep those changes just distributed within your league that's fine. If you want the app to be able to say the names ("Bob is pitting now" etc) then I'll need those mappings to make the recordings, but I won't need to add your IDs to the global names.txt.

TBH I didn't consider if folks would be uncomfortable having their steam IDs in my global names.txt. I'll give it some thought, but I'd be happy to record the names anyway and leave the steamID:name mappings out of stuff I create. This way I can add the names to the sound pack and if you want the app to read them you just have to add your steamID:name stuff to your own version of names.txt.

Bear in mind that I'm not looking for proper names or anything - just something to read out and listen for. So "[SOME_CLAN] Tootles69" can just map to "tootles" or whatever

Pamellaaa
28-09-2015, 21:35
great to hear it works in MP cos, er, I've kind of forgotten to test it in MP :culpability:

I'll do a bit of general testing tomorrow and release 3.1.0. This will need a new sound pack for the new 'deltas mode' messages. I might even get the time to do a little testing, but that might be a bit optimistic

It mostly works in Multiplayer, there are a couple of incidents I have had of the spotter telling me about cars that aren't there but I suspect this is an API issue as every single external app I have used has issues in online MP at the moment.

We will certainly get plenty of feedback for you on Wednesday after out next round of league racing.

TassyDevil
28-09-2015, 21:37
Jim, been testing and am really impressed with the latest extras.

I was having a offline race last night and had a big off and seeing I do all my driving from the cockpit I requested "how is my aero" and the spotter came back that all was fine when in fact the wheel had fallen off.
You may be working on the damage etc area so I just thought I would highlight this bug.

Pamellaaa
28-09-2015, 21:37
Pamellaaa - have you added your guys to driver_names/names.txt?

This can be used to tell the voice recognition engine what name to listen for for each steamID. If you want to keep those changes just distributed within your league that's fine. If you want the app to be able to say the names ("Bob is pitting now" etc) then I'll need those mappings to make the recordings, but I won't need to add your IDs to the global names.txt.

TBH I didn't consider if folks would be uncomfortable having their steam IDs in my global names.txt. I'll give it some thought, but I'd be happy to record the names anyway and leave the steamID:name mappings out of stuff I create. This way I can add the names to the sound pack and if you want the app to read them you just have to add your steamID:name stuff to your own version of names.txt.

Bear in mind that I'm not looking for proper names or anything - just something to read out and listen for. So "[SOME_CLAN] Tootles69" can just map to "tootles" or whatever

That would be incredible, I will compile a list soon and get it sent over to you. Thank you for this.

mr_belowski
28-09-2015, 21:38
Haha, yes Tassy, that's not idea... But then, you did specifically ask about aero :)

Damage is due for a big overhaul so I'll get to it soon

Shinzah
28-09-2015, 21:38
Jim, been testing and am really impressed with the latest extras.

I was having a offline race last night and had a big off and seeing I do all my driving from the cockpit I requested "how is my aero" and the spotter came back that all was fine when in fact the wheel had fallen off.
You may be working on the damage etc area so I just thought I would highlight this bug.

Your aero might have been fine.

Perhaps should have asked how your suspension was doing ;)

mr_belowski
28-09-2015, 21:39
you could have, but the response wouldn't have been any more helpful ;)

TassyDevil
28-09-2015, 22:03
Ha, yes you are right there, obviously the aero is ok lol.
When I changed camera to look outside the wheel and bodywork was laying all over the place. ��

PCars had indicated that I had to pit and had damage so perhaps when that box comes on the screen is there anyway the spotter can indicate where that damage is on the car, like "suspension is stuffed" or "aero is damaged".
Irl the driver would be told by his engineer what the problem is because he would not be able to just pop out of the car to have a quick look ��

Perhaps the game engine would not be able to give you that info, or others may think this would not be needed.

kingsti
28-09-2015, 22:43
Are the alternative sounds substantially better, or just different? I'm happy to maintain 2 versions of the sound pack but it's a bit of a faff to be honest. If there's a general feeling that having both versions available is a good idea then I might put the driver names pack back into the sound pack. So rather than having a sounds pack and a driver names pack, instead I'll have a sound pack and a lo-fi sound pack (both of which include the latest driver names). Does that make sense? Otherwise I'd need to maintain a sound pack, a driver names pack, a lo-fi sound pack and a lo-fi driver names pack. Which I'm bound to screw up at some point...

Also, a massive thankyou to the folks who've donated a beer. I shall pop down the off-licence and spend it wisely :)

I really like the alternative sounds - sounds more radio-like.


Ha, yes you are right there, obviously the aero is ok lol.
When I changed camera to look outside the wheel and bodywork was laying all over the place. ��

PCars had indicated that I had to pit and had damage so perhaps when that box comes on the screen is there anyway the spotter can indicate where that damage is on the car, like "suspension is stuffed" or "aero is damaged".
Irl the driver would be told by his engineer what the problem is because he would not be able to just pop out of the car to have a quick look ��

Perhaps the game engine would not be able to give you that info, or others may think this would not be needed.

Great idea.

Gopher04
29-09-2015, 08:31
@mr_belowski, nice to see this app here man, use it for RRE and its great, but just to clear something up for myself, we don't need separate installs for each game? just the 1 install works for all.

mr_belowski
29-09-2015, 08:33
yes, one install. There might be some issues using the current version with R3E as I've added a bunch of stuff for PCars and have a backlog of testing with R3E to get through. If you use version 3.x for R3E I'd appreciate it if you could tell me about any issues you find

Nevil Wigbels
29-09-2015, 09:39
I tried the app and I am very impressed! I use an Oculus Rift and it's a huge benefit to have all the extra information, especially in cars without Motec. The (your?) voice is pleasant too. I didn't try the voice recognition yet, but will certainly try that later!

driftoz
29-09-2015, 10:45
just installed this app and like it havent tested it out properly yet but the voice recognition is cool, one thing id like to ask and sorry if someone else has said it but is it possible to make the app audo play through my headphones? while game sounds are through speakers please.

mr_belowski
29-09-2015, 12:12
There are ways to do this but it's a real faff, requiring some undocumented Win32 API hacks. I've googled around a bit and I think it's possible but it's not high on the priorities list (yet...)

I managed to get a bit of work done on the damage stuff so hopefully that'll be in the next release, which should be today

inthebagbud
29-09-2015, 12:17
mr_belowski

(http://forum.projectcarsgame.com/member.php?99072-mr_belowski)This kind of stuff makes me so want to go and ditch the xbox and get a PC , it is amazing what people like you will do for others.

Over in console land it has been confirmed that both Sony & MS are going to allow access to data for use in apps etc as detailed below, so the big question is would your system work in an external device environment for consoles as that would be amazing

We've had to enter into some quite complex negotiation with 1st Party's to be able to do this (I'm not aware of any other application that has been allowed to do this), however everyone has been very accommodating. We've had to make a number of changes due to security concerns, but we now have the waivers in-place to enable the following:

1) There will be a GUI option that will enable UDP (It will probably just consist of off/0/1/2/3 etc. to allow for various different versions in future).
2) A UDP port will be opened and packets sent to local broadcast address.
3) Various packets will be sent, based on the existing 'shared memory' api.
4) The actual contents of the packets, data layout etc. will be published.
5) You are free to interpret the data in any way which you wish.
6) This will be enabled on ALL platforms. (I'm including PC although this wasn't part of the original plan, as it would be a fairly trivial addition and would allow phone apps. etc. to work directly.)

Apart from the GUI bit, it will all be implemented by me as I don't want to impact anyone else's workload. As far as a time line goes I will try and implement it as soon as possible now we have the go ahead. I've had offers from a few app developers for various testing applications, I will call on you again shortly to help test the implementation.

NemethR
29-09-2015, 12:25
I just want to say, how much I like the idea, and find this very-very useful!

mr_belowski
29-09-2015, 12:47
Hmm... sounds interesting and there might be some possibilities there, but it'd certainly be a challenge. First, I don't have an XBone or PS4 and have no intention of getting either or PCars for them, so testing might be a pain (but if it's also implemented for the PC, then I could try using the UDP multicast packets the PC version spits out).

The main challenge, though, is the unreliability of the data. The current shared memory data are quite noisy and frequently don't contain what they should contain. Working around these bugs is difficult but not impossible. My app regularly gets tripped up by unexpected data in the shared memory but it's not enough to render it useless or immersion breaking (most of the time...). If you have a similar set of problems, then send that noisy data over UDP, I'd be worried about how usable the data would be. Packets would go missing and arrive out of order. There'd be a lot of work to do to make sense of the data

inthebagbud
29-09-2015, 13:16
Hmm... sounds interesting and there might be some possibilities there, but it'd certainly be a challenge. First, I don't have an XBone or PS4 and have no intention of getting either or PCars for them, so testing might be a pain (but if it's also implemented for the PC, then I could try using the UDP multicast packets the PC version spits out).

The main challenge, though, is the unreliability of the data. The current shared memory data are quite noisy and frequently don't contain what they should contain. Working around these bugs is difficult but not impossible. My app regularly gets tripped up by unexpected data in the shared memory but it's not enough to render it useless or immersion breaking (most of the time...). If you have a similar set of problems, then send that noisy data over UDP, I'd be worried about how usable the data would be. Packets would go missing and arrive out of order. There'd be a lot of work to do to make sense of the data

this is not my field at all but a maybe is better than an outright no and it would be so cool

If you need a tester - I am good at that - count me in, hell I'd even lend you my xbox:cool:

Kawalsky
29-09-2015, 15:03
This app is so useful. Thanks for creating this.

t0daY
29-09-2015, 18:29
is there a possibility to turn off the spotter but still using the voice commands for example about my fuel or how big my gap is?

mr_belowski
29-09-2015, 18:34
Yes. You can turn the spotter off with the toggle button or by saying "don't spot". Race updates like position and stuff will still be played. If you want to turn race updates off theres a toggle for that - or say " keep quiet".

These can be combined however you like. The app will still respond to direct voice requests for info

Shinzah
29-09-2015, 18:34
is there a possibility to turn off the spotter but still using the voice commands for example about my fuel or how big my gap is?

In the main window there's an ability to assign this to a hotkey. I think you can also use a voice command for it.

Edit: Ninja'd

t0daY
29-09-2015, 18:45
Yes. You can turn the spotter off with the toggle button or by saying "don't spot". Race updates like position and stuff will still be played. If you want to turn race updates off theres a toggle for that - or say " keep quiet".

These can be combined however you like. The app will still respond to direct voice requests for info


In the main window there's an ability to assign this to a hotkey. I think you can also use a voice command for it.

Edit: Ninja'd

That sounds amazing :) Thanks for the fast answers, gonna test it out tomorroooow :)

mr_belowski
29-09-2015, 20:24
Righty... who's feeling brave?

I've uploaded version 3.1.0. This adds the 'tell me the gaps' mode to read the front & behind deltas on each lap instead of the regular gap messages (it does this even if other messages have been disabled).

I also did a first cut of the damage rework. Damage handling should now be a lot better, and include missing wheel warnings along with brake and suspension damage and other fixes.

I also reworked the tyre temp monitoring, and added brake temp monitoring. And some spotter tweaks / fixes.

Basically, this is much bigger update than I'd planned. I've tested it 'a bit' - I expect some of the new stuff will need a bit of tuning or fixing.

Brake temps are a tricky one. The app will log the brake temps all around at the instant it sees the highest single brake temp over a lap. The thresholds for the various states (cold, good, hot, cooking) are in the config file - they're <150, 150 - 650, 650 - 850, >850 celcius (bear in mind these are peaks, not averages). This is global for all cars, which I think I'm going to have to revisit.

The brake temp check stuff is refreshed on each lap at the start of sector 3 (just to keep the s/f line from getting too cluttered with messages).

As usual, readme's in the first post

Oh, and this one has a new sound pack - just grab the V3.1.0_with_sound_pack version


edit... missed a couple of things from the readme. The voice recognition now include "how's my brakes" (gives damage info) and "how's my brake temps"

Yorkie065
29-09-2015, 20:58
You've truely out-done yourself on this one dude!! This is amazing stuff and so useful!

The devs should really look into getting this into the main game as console players are missing out on a really neat feature here!

mr_belowski
29-09-2015, 21:35
the broken time gaps when you asked "Where's [some driver name]?" were annoying me - rather than giving the time gap, it was giving the time since the session started, which is a bit rubbish. So I fixed them. At least, I appear to have fixed them. It's late and I've cut *way* too much code today. Version 3.1.1 is now uploading with this fix - will be a few more minutes

falcon2081
29-09-2015, 22:21
Great program my friend. Expect a donation in the next couple of days for some beer! My only suggestion and I'm sure you have heard this already is to be able to "map" the audio input to a specific playback device in windows. So instead of having the sounds play through my windows speakers I can route it through my virtual input cable. That way I can separate the audio on the recordings with ShadowPlay

Stones
29-09-2015, 22:55
Toggle opponent deltas on/off for each lap, when button is assigned, the response is the same as for spotter/ no spotter. Is this intentional?

Thanks

Tested further. It appears both button assignments are turning the spotter off/on between them.

Shinzah
29-09-2015, 22:57
Toggle opponent deltas on/off for each lap, when button is assigned, the response is the same as for spotter/ no spotter. Is this intentional?

Thanks

Do you mean that it actually doesn't work and shuts off the spotter, or it does work but the spotter off message goes (and the spotter stays working)?

-carbo-
29-09-2015, 23:59
Mate, just wanted to say - awesome work!

Stones
30-09-2015, 00:07
Do you mean that it actually doesn't work and shuts off the spotter, or it does work but the spotter off message goes (and the spotter stays working)?

Yes to the 1st part of your question. My guess is the spotter and delta assignments are assigning to the spotter on/off only. I'll try a few more tests.

Quick race - Brands Hatch Indy - 5 Laps - 10 opponents. Button assignment to spotter only. No delta info was given each lap.

Shinzah
30-09-2015, 00:24
Mmmh, will check later on tonight probably. Hopefully would not be too much of a bother for him to fix.

chimpyman
30-09-2015, 03:32
what does background noise bar meter do exactly. not sure if im deaf or what, but i havent figured that out

Shinzah
30-09-2015, 03:42
what does background noise bar meter do exactly. not sure if im deaf or what, but i havent figured that out

The sound of the file that plays in the background of the radio that sounds like a race is happening.

chimpyman
30-09-2015, 03:57
ah ok, might make that 0 since i just wanted the spotter. which is amazing btw. thanks

THFS
30-09-2015, 06:01
Amazing work, really appreciate the effort that's gone into this. Will be happy to donate once I've had a chance to really test it out. Just wondering if it would be possible (if it's not already implemented) to have something like "you're locking the fronts/rears", sometimes it's hard to tell what exactly is locking up under brakes.

mr_belowski
30-09-2015, 06:19
Will check the deltas button stuff this morning - deltas mode does work when you request it with a voice command so maybe I mucked up the button function

mr_belowski
30-09-2015, 06:35
doh, yes, it's not right, sorry about that. I'll sort it this morning

nhitrac
30-09-2015, 07:39
Wow - Just tried this out and wow! Truly amazing.

I've never 'donated' to a mod/app before but consider this changed.

Question though - How do I get Mr Belowski to speak louder/closer into the mic? I can barely hear the guy even with the message volume cranked up max. I use my A40s headphones 100% of the time.

mr_belowski
30-09-2015, 08:03
You need to lower the volume in PCars I'm afraid.

Also, with the app running click the little speaker icon in your Windows system tray (bottom right corner of the screen) and click "mixer". There should be a separate volume slider for "Crew Chief" - if it's not already at the top, put it there. If it is already at the top then I'm afraid it's as loud as it'll go and you'll need to turn down project cars' sound. I have to have PCars on about 50%.

I'm going to make another release this morning with the deltas mode toggle button bug fix, and a fix for when you ask "how long's left" in a prac or qual session (it was always saying "this is the last lap"). This will include separate confirm voice files for deltas mode on / off. And some more pearls-of-wisdom as they're getting a bit samey.

Coming up with pearls of wisdom is hard, so if anyone's got any suggestions I'd be happy to include them. I have 3 types or pearl - one played when good things happen ("keep it up" type stuff), one for bad things ("try bloody harder"), and one for medium things ("this is OK, keep the exit speeds up").

Shinzah
30-09-2015, 08:17
I don't think you can go wrong with the pearls as long as it doesn't repeatedly tell you to build a gap to second until the last lap as though second place is some kind of skunk you need to get as far away from as humanly possible.

....or mention "The slow corner".

I do really love Ben to death, but I'm pretty sure hiring Jim was the best thing for my sanity. Also he comes with me on my career adventures to invitational land.


Anyway personally I was always a fan of "Keep digging". But how well this translates to British I'm not quite sure ^^;

mr_belowski
30-09-2015, 08:20
Funnily enough, that "the slow corner" message was the very thing that inspired me to make Crew Chief in the first place. It was so plainly retarded that I figured even a halfwit like myself *must* be able to do better :)

On the 'todo' list is to map the track length parameter in the block to the actual track, then I can make my own version of "the slow corner" message, but with the actual sodding corner's name, and maybe even say something sensible about this corner.

I do have "keep digging" message

Shinzah
30-09-2015, 08:23
You do?! I've not heard it yet ^^;

mr_belowski
30-09-2015, 08:31
I'll add a couple more, just for you ;)

Shinzah
30-09-2015, 08:32
Yay!

Djinn
30-09-2015, 09:12
Just stumbled over this thread, this app sounds amazing. Can't wait to try it out. Thanks for all your efforts to make this happen! :)

mr_belowski
30-09-2015, 09:17
Righty, version 3.2.0 is now up (same link). This adds a few more pearls-of-wisdom, some random fixes, fixes the session time remaining response in prac and qual (when you ask "how long's left?"), and fixes the 'deltas mode' button assignment stuff - this should now work properly.

This version requires a new sound pack

vin_KaiZen
30-09-2015, 09:50
Any chance to see an introduction of the project & ingame in a video (youtube) ?

mr_belowski
30-09-2015, 09:53
Planning to do that today

madnesbrah
30-09-2015, 09:57
this should be great for me because i hate when you are online and someone is sort of beside you and you cannot see them, so when you turn you crash into them

madnesbrah
30-09-2015, 10:02
Then fire up the game and be amazed at my poor voice acting. Oh so you are the crew chief???:confused-new:

TassyDevil
30-09-2015, 10:13
That is him, call him Jim;)

Cuba
30-09-2015, 11:57
Wow - Just tried this out and wow! Truly amazing.

I've never 'donated' to a mod/app before but consider this changed.

Question though - How do I get Mr Belowski to speak louder/closer into the mic? I can barely hear the guy even with the message volume cranked up max. I use my A40s headphones 100% of the time.

I use the Astro A40 Headset and I can hear the crewchief fine. But I can't get my voice recognition to work right. It'll work with just the CrewChief App open, not with PCars running (still difficult to get crewchief to understand, but it works). As soon as try to use the voice recognition in game, crewchief doesn't hear me, like the game noise itself is blocking my voice even though I'm only using a headset (no additional speakers or outside noise). Anyone have tips on getting voice recognition to work well (settings, radio buttons in realtek etc.) Thanks!

-carbo-
30-09-2015, 12:10
Just tested this again, this time with the voice recognition. Seriously, this is the best thing since sliced bread.

mr_belowski
30-09-2015, 12:19
Found some annoying bugs today - some messages which are supposed to be disabled when you're in the pit lane are being played, which needs sorting, and the tyre wear warnings aren't being played (I moved them so they play at the end of sector 2 but it's not right)

mr_belowski
30-09-2015, 12:40
Added a quick and (very) dirty video, but this kind of thing isn't my strong point - it looks really grotty but at least you can hear the app. I made a few voice commands, but it sounds a bit weird as the command and response are (obviously) exactly the same voice :)


https://www.youtube.com/watch?v=-PQwALKGpMk&feature=youtu.be

Shinzah
30-09-2015, 12:45
Hehe, Jim's gone so mad he's talking to himself ^^;

falcon2081
30-09-2015, 14:03
I made a quick test video in case anyone is curious how it works. Btw is there anyway to delay or pause the spotter a little when there is a car next to me? I don't see a need for it to remind me so much that the car is there. I saw something in the properties page but I don't know if those numbers are in seconds or what?


http://youtu.be/1mNoaIjL04Y

mr_belowski
30-09-2015, 14:05
the spotter_hold_repeat_frequency property should do that - it'll say "still there" every 3 seconds by default. If you're getting lots of "car left" messages then these are 'new' overlaps

TonyR
30-09-2015, 15:10
Hey, really nice and professional app.

Will it be possible to add numbers for temps and damage % in the future?
I know it's less realistic maybe but it would be more useful to get a damage % or a straight tire temp number instead of "they are ok" or "they are too cold" :)

nicenada
30-09-2015, 16:12
Hi... This app rly looks great :D looove the idea...
But have a problem, i drive in career mode, and when i say the thinks he answers, like. "keep me informed" he answers, "ill keep you poste or something like that"... but i dont get the updates from him. when i ask. "how is my fuel" "answer is just "Bip Bip" Is it becouse im in Career mode ?

I have tried to se in forum if any have the same problem. but cant find it :(

Thx NiceNaDa

mr_belowski
30-09-2015, 16:14
Sounds like a bug. I got a bunch to get through, I'll add it to the list

mr_belowski
30-09-2015, 16:37
Hmmm... the fuel code looks OK. Have you enabled 'shared memory' in PCars? Is so, can you paste the app's console messages please?

nicenada
30-09-2015, 16:45
Hmmm... the fuel code looks OK. Have you enabled 'shared memory' in PCars? Is so, can you paste the app's console messages please?

yeah. i have Shared memory. And i have tried to turn off and on the Engineere ingame. no help...
its the same when i ask about tires.

Think more the bug is me :D

mr_belowski
30-09-2015, 16:50
Message me the first 100-ish lines of the console output from the app and I'll have a look

nicenada
30-09-2015, 17:04
:45.145 : Voice dir full path = C:\Users\NaDa\Downloads\Ny mappe\CrewChief\CrewChiefV3\sounds\voice
18:59:45.152 : FX dir full path = C:\Users\NaDa\Downloads\Ny mappe\CrewChief\CrewChiefV3\sounds\fx
18:59:45.152 : driver names full path = C:\Users\NaDa\Downloads\Ny mappe\CrewChief\CrewChiefV3\sounds\driver_names
18:59:45.152 : Background sound dir full path = C:\Users\NaDa\Downloads\Ny mappe\CrewChief\CrewChiefV3\sounds\background_sounds
18:59:45.153 : Minimum sound pack version = 31 using sound pack version 31
18:59:45.215 : Cached 1072 clips
18:59:46.913 : Attempted to initialise speech engine - success = True
19:00:02.162 : Using game definition Project Cars (32 bit)
19:00:02.188 : Listening on default audio input device
19:00:02.194 : Running speech recognition in 'hold button' mode
19:00:02.202 : Starting queue monitor
19:00:02.211 : Monitor starting
19:00:02.218 : Polling for shared data every 100ms, pausing 11ms between invocations
19:00:02.246 : Processing queue of 1 event(s)
19:00:02.251 : None of the 1 message(s) in this queue is due or valid
19:00:03.240 : Processing queue of 1 event(s)
19:00:03.259 : *** Opening channel, using bleep start_bleep at position 0
19:00:03.677 : Playing sounds, events: radio_check/test
19:00:04.687 : Processed radio_check/test
19:00:04.703 : *** Closing channel
19:00:33.113 : Listening...
19:00:34.124 : Stopping listening...
19:00:37.534 : Listening...
19:00:38.543 : Stopping listening...
19:00:38.625 : recognised : keep quiet confidence = 0,9340287
19:00:38.651 : Processing queue of 1 event(s)
19:00:39.160 : *** Opening channel, using bleep start_bleep at position 0
19:00:39.555 : Playing sounds, events: acknowledge/keepQuietEnabled
19:00:40.850 : Processed acknowledge/keepQuietEnabled
19:00:40.859 : *** Closing channel
19:00:48.495 : Listening...
19:00:49.206 : Stopping listening...
19:00:49.218 : recognised : spot confidence = 0,9264937
19:00:49.236 : Processing queue of 1 event(s)
19:00:49.742 : *** Opening channel, using bleep start_bleep at position 0
19:00:50.139 : Playing sounds, events: acknowledge/spotterEnabled
19:00:51.434 : Processed acknowledge/spotterEnabled
19:00:51.444 : *** Closing channel
19:00:54.322 : Listening...
19:00:55.235 : Stopping listening...
19:00:55.250 : recognised : spot confidence = 0,9003778
19:00:55.280 : Processing queue of 1 event(s)
19:00:55.772 : *** Opening channel, using bleep start_bleep at position 0
19:00:56.169 : Playing sounds, events: acknowledge/spotterEnabled
19:00:57.912 : Processed acknowledge/spotterEnabled
19:00:57.922 : *** Closing channel
19:01:00.852 : Listening...
19:01:01.963 : Stopping listening...
19:01:01.978 : recognised : keep me informed confidence = 0,8445023
19:01:01.996 : Processing queue of 1 event(s)
19:01:02.498 : *** Opening channel, using bleep start_bleep at position 0
19:01:02.893 : Playing sounds, events: acknowledge/keepQuietDisabled
19:01:04.487 : Processed acknowledge/keepQuietDisabled
19:01:04.497 : *** Closing channel
19:01:27.980 : Listening...
19:01:29.093 : Stopping listening...
19:01:29.108 : recognised : spot confidence = 0,9206954
19:01:29.140 : Processing queue of 1 event(s)
19:01:29.641 : *** Opening channel, using bleep start_bleep at position 0
19:01:30.055 : Playing sounds, events: acknowledge/spotterEnabled
19:01:31.352 : Processed acknowledge/spotterEnabled
19:01:31.363 : *** Closing channel
19:01:35.815 : Listening...
19:01:37.130 : Stopping listening...
19:01:37.149 : recognised : tell me the gaps confidence = 0,7804121
19:01:37.164 : Processing queue of 1 event(s)
19:01:37.673 : *** Opening channel, using bleep start_bleep at position 0
19:01:38.074 : Playing sounds, events: acknowledge/deltasEnabled
19:01:39.522 : Processed acknowledge/deltasEnabled
19:01:39.532 : *** Closing channel
19:01:56.351 : Listening...
19:01:57.563 : Stopping listening...
19:01:57.585 : recognised : what's my position confidence = 0,9399246
19:01:57.605 : *** Opening channel, using bleep start_bleep at position 0
19:01:58.498 : *** Closing channel

i think there is no communication whit the app and my race :( he only answers ok ill keep you informed... so i think its on me :(

nicenada
30-09-2015, 17:15
i must have mest up someware :(

"how is my [fuel / tyre temps / tyre wear / body work / aero / engine / transmission / suspension / brakes / brake temps / pace / engine temps]" answer... biip biip
"what's my [gap in front / gap ahead / gap behind / last lap / last lap time / lap time / position]" answer... biip biip
"how long's left / how many laps are left / how many laps to go" answer... biip biip

no answer between thee biip´s

mr_belowski
30-09-2015, 17:16
Its not mapping the shared data. Are you running pcars in 32bit mode? The app is expecting the 32bit exe - make sure crew chief and pcars are both 32bit or both 64bit.

If you're running pcars 32bit and crew chief is using the 32 bit game definition and it still no workie, can you pop task manager up and tell me the name of the running pcars exe?

nicenada
30-09-2015, 17:29
Wooow... as i knew... i was the BUG :)
its was as you said running in 32 bit. and i should run in 64. now it works :D

Daaamn love the voice :D just ned a " ITS HAMMER TIME" :D :D :D

Great work. and thx for the help... ill donate you for sure 10£ on the way ;)

mr_belowski
30-09-2015, 17:41
Glad it works. I've got a few fixes to add so there'll be a new version tomorrow with less bugs.

I guess I could add something about hammers too ;)

miagi
30-09-2015, 17:56
Incredibly good tool! Surprising to see a user pulling of something that good. Even with voice files.
Go SMS hire that guy!!!

Hawke78
30-09-2015, 18:06
Nice One :-)! Use the app a while for Raceroom. Its amazing thanks a lot guy :-)

cheers

jim jonez
30-09-2015, 20:12
Apologies if this has been asked already ,is there any way one can use an iPad as a button box for the commands ?

mr_belowski
30-09-2015, 20:19
not that i know of. The app listens for directInput devices - I don't know of any tool that will let Windows 'see' an iPad as a directInput device. Something might be out there I suppose, but I've not seen it

mr_belowski
30-09-2015, 20:49
just uploaded 3.2.1. This fixes some the bugs that have been annoying me - no more blue flag warnings in the pit lane, the tyre and brake temp warnings now work, and lots of other little irritations.

If you've been using version 3.2.0, this new version will moan about the sound pack version number being wrong - it was actually wrong in the 3.2.0 release. The sound pack hasn't changed, but the version number in the version_info file was wrong. Either re-download the sound pack (or the app with sound pack) or just edit /sounds/version_info and change the 31 to 32.

Meekstaaa
30-09-2015, 21:14
Just popping a message to say a massive thank you mr_belowski. This app is amazing! We have started using it for our league events and everyone has nothing but good things to say about it!

You are doing amazing work!

mr_belowski
30-09-2015, 21:21
i'm still on the look out for a league who want their drivers' names in the app - if you want the app to be able to read the names of your competitors (rather than just "the car in front is...") then message me their SteamIDs and I'll take a look. Each steam ID would need a sensible name too (which is similar to the steam ID so can be recognised easily, but can also be spoken easily and recognised but the voice recognition engine)

kingsti
30-09-2015, 21:45
Great updates.
I've not used the voice recognition yet, but looking at the Youtube videos I have some wild suggestions! It would be nice if when you ask a question the answer is not always immediate. Instead it might say something like 'I'll check' and then after sometime it will give the answer. Also some two way interaction, like sometimes it might say - 'I didn't quite hear you.. can you repeat that please'. If you ask the same thing 2 or three times, it might respond with 'nothing's changed - same as before'.