Jump to content
The simFlight Network Forums

SpeechBuddy over LAN


Recommended Posts

Hi Pete! Need some help if you would. Here's what I have going: FSX running on PC1. ASE and Radar Contact running on PC2 (Wireless LAN). Both machines are running Windows 7. ASE and RC4 work fine, but I want to control RC4 with phrases like "Get clearance" etc. to push the buttons 1 through 9 as needed.

So, I heard that SpeechBuddy could do this but I don't know how. When I run SpeechBuddy on PC2 and I load the FS2004.dws file, I can control FSX with no problem. But I do not want to control FSX, I want to control RC4 ONLY. I have a HOTAS setup and am fully comfortable controlling the sim.

I cannot get SpeechBuddy to send, for instance, a "1" to get clearance from RC4. Can you provide any assistance?

Thanks in advance,

Dolph

Link to comment
Share on other sites

Here's what I have going: FSX running on PC1. ASE and Radar Contact running on PC2 (Wireless LAN). Both machines are running Windows 7. ASE and RC4 work fine, but I want to control RC4 with phrases like "Get clearance" etc. to push the buttons 1 through 9 as needed.

I do that with Its Your Plane, which isn't free, but you might have missed your opportunity to get the same maker's "SuperATC" which would do the same. That was free till the end of 2010.

Incidentally, in general it is best to change the RC assignments to Ctrl+Shift+0 to 9, as 0-9 are used for many other things. IYP and SuperATC assume the CS0-9 settings by default, I think.

So, I heard that SpeechBuddy could do this but I don't know how. When I run SpeechBuddy on PC2 and I load the FS2004.dws file, I can control FSX with no problem. But I do not want to control FSX, I want to control RC4 ONLY.

So how is SpeechBuddy talking to FSX on the other PC?

I cannot get SpeechBuddy to send, for instance, a "1" to get clearance from RC4. Can you provide any assistance?

Sorry, I've no idea. Doesn't it have any documentation to tell you how to program it to send keystrokes?

Bear in mind that RC gets its keypresses from FSUIPC, on the FSX PC, not on the Client PC. So you'd presumably need to run SpeechBuddy on PC1 not PC2. That's why I was wondering how you got SpeechBuddy to control FSX from PC2.

In the end I can only really help with programs I write, and maybe use. I don't know anything about SpeechBuddy I'm afraid.

Regards

Pete

Link to comment
Share on other sites

That was free till the end of 2010.

OH NO! Dang, I didn't know that or I woulda grabbed it!

Incidentally, in general it is best to change the RC assignments to Ctrl+Shift+0 to 9, as 0-9 are used for many other things. IYP and SuperATC assume the CS0-9 settings by default, I think.

Will do, thanks! I will have to reprogram my stick as well then.

So how is SpeechBuddy talking to FSX on the other PC?

Through WideFS. Works well for all functions using the 5 digit codes for each function as listed in List of FSX controls.pdf.

Sorry, I've no idea. Doesn't it have any documentation to tell you how to program it to send keystrokes?

There is a "SendKey" function but I'll have to read up on it and try it I guess.

Bear in mind that RC gets its keypresses from FSUIPC, on the FSX PC, not on the Client PC. So you'd presumably need to run SpeechBuddy on PC1 not PC2. That's why I was wondering how you got SpeechBuddy to control FSX from PC2.

I'm glad it works, but I don't know how exactly. Still playing with it. All functions I've tried work just fine. But I am not interested in controlling FSX, only RC4.

In the end I can only really help with programs I write, and maybe use. I don't know anything about SpeechBuddy I'm afraid.

Thought I'd ask. There's another program called Shoot that supposedly does not use FSUIPC, but that one won't work over the LAN.

Link to comment
Share on other sites

So how is SpeechBuddy talking to FSX on the other PC?

Through WideFS. Works well for all functions using the 5 digit codes for each function as listed in List of FSX controls.pdf.

So SpeechBuddy is an FSUIPC client? Really? They've never contacted me. I'm not sure where the FS control numbers come into it. Written via offset 3110?

Pete

Link to comment
Share on other sites

Version 2.2 gave you credit for FSUIPC: "Peter Dowson for FSUIPC and its free registration key for SpeechBuddy."

I think SpeechBuddy is abandonware and it is not exactly supported anymore. I wish it were because I don't know how to generate a .dws file it uses. I am modifying another .dws to do what I want instead.

Link to comment
Share on other sites

SpeechBuddy's not working for me. RC4 works fine over WideFS but the commands to control it do not. I have looked at IYP and that program is not exactly what I want right now. Plus I don't have $60CD to part with. I need to fly for awhile and look at this some more over the weekend. Too bad I am a day late and a dollar short getting that free SuperATC package. I remember seeing something about it some time ago but I wasn't interested in voice activation at the time.

Link to comment
Share on other sites

Version 2.2 gave you credit for FSUIPC: "Peter Dowson for FSUIPC and its free registration key for SpeechBuddy."

Oh, right ... Interesting. My memory's seems to failing me more and more in these days of decrepitude, and it was probably quite a while back.

SpeechBuddy's not working for me. RC4 works fine over WideFS but the commands to control it do not.

If you can make it action joystick button presses, then WideClient will send them to FSUIPC and you can program them there for RC's keypresses.

Alternatively, if you can send any FS control number then maybe you can send the FS control numbers -- those added numbers listed in the Advanced User's guide. If you can, and you can send the parameter to go with it, you can send encoded keypresses that way.

Regards

Pete

Link to comment
Share on other sites

Thanks Pete. Yes, the file is dated Dec. 2006. It's available at AVSIM but it takes some doing to make it work under Windows 7.

It has been a pleasure reaping the benefits of FSUIPC over the years, and this latest add-on, voice activated ATC for cheap, will not beat me down.

Link to comment
Share on other sites

Well I went ahead and experimented using SpeechBuddy on my FSX machine. Again, it controls all FSX functions but does not work with RC4 at all. I reprogrammed the keys as you suggested to Ctl SH 1 etc. with no joy. I made up a quick fake interface just to play with the flaps and was able to move the flaps up and down with any command I speak, but I cannot get it to control the RC4 input buttons no matter how I program them in FSX or RC4. Something tells me I'm close but I can't quite put my finger on it. I don't get what is different about the RC4 menu - it gets it's input through FSUIPC so it should be working. Thanks for your replies. I may give up until I can shell out for IYP.

Link to comment
Share on other sites

Well I went ahead and experimented using SpeechBuddy on my FSX machine. Again, it controls all FSX functions but does not work with RC4 at all. I reprogrammed the keys as you suggested to Ctl SH 1 etc. with no joy. I made up a quick fake interface just to play with the flaps and was able to move the flaps up and down with any command I speak, but I cannot get it to control the RC4 input buttons no matter how I program them in FSX or RC4.

But what exactly are you telling SpeechBuddy to send, and where to? It sounds like it sends keypresses locally, which won't help.

Something tells me I'm close but I can't quite put my finger on it. I don't get what is different about the RC4 menu - it gets it's input through FSUIPC so it should be working

The "input" it gets is via keypresses on the FS PC, intercepted by FSUIPC. To get keypresses on the FS PC you need to use some special FSUIPC-added controls as I pointed out. Those are detailed in the FSUIPC Advanced users Guide.

Pete

Link to comment
Share on other sites

Hey Pete! I finally got it! It was right under my nose the whole time. SpeechBuddy does not seem to send the "+^1" (CTL SHF 1) properly. But it does send "+1" (SHF 1) if I program it as "!" or two would be "@". I'm very happy now.

BTW it will also do checklist reading for me so that's my next step in my programming adventure after I work out all of Radar Contact's possible responses. Thanks for your help in this. And thanks very much for FSUIPC - that was probably the best purchase I ever made. It helps with my weather issues with ASE and now it will help with my voice activation. You probably don't get thanked enough for that magical piece of software.

Dolph

Link to comment
Share on other sites

And thanks very much for FSUIPC - that was probably the best purchase I ever made. It helps with my weather issues with ASE ...

On that note you might want to try FSUIPC version 4.649, just this evening posted in the Download Links subforum. It handles Radar Contact's weather requests more efficiently when running ASE in DWC mode. At least it looks better here.

Regards

Pete

Link to comment
Share on other sites

I did download the new version .dll. Thanks. Well, after I wrote that last comment about being very happy, I'm very sad. Seems I misled myself and it only worked that one time, I can't get a repeat performance no matter what I try. Also, that one time was with it running on the FSX machine, so when I tried it on the laptop and it failed to control RC4, I tried again on the FSX machine and it would not work. I have no idea how or why it worked in the first place. I may wait until I have $60CD and get IYP but that could be months. Wife has other ideas for the money. Flight Sim Experience Improvement comes after Home Improvement ya know.

Link to comment
Share on other sites

I did download the new version .dll. Thanks. Well, after I wrote that last comment about being very happy, I'm very sad. Seems I misled myself and it only worked that one time, I can't get a repeat performance no matter what I try. Also, that one time was with it running on the FSX machine, so when I tried it on the laptop and it failed to control RC4, I tried again on the FSX machine and it would not work. I have no idea how or why it worked in the first place

I've no idea how to help at all since I don't know SpeechBuddy and I don't know what you are doing. Earlier on you seemed to imply it could send numerical FS controls with parameters. If so it should be able to send the added FS controls. That should be all you need.

Pete

Link to comment
Share on other sites

"That should be all I need" is right, keyword being should. I've been on time compression here but I had a chance to revert to the original SpeechBuddy .xml that worked yesterday. I can get it to work if I use "!", "@", etc. but those conflict with the shift 1,2,3 etc. that we all use to pop up a window on the 2D panel. So I have some reorganizing to do in the FSX controls setup. I tried remapping simple keys like t, c, x, that I don't use but they don't work for some reason. I am mystified why some keys work and some don't. Any key should work if it is unmapped in FSX and mapped in the SB .xml file. The other mystery is why it works on the FSX machine but not on the laptop. As I said, the FS2004 .xml does indeed work from the laptop to control the FSX functions so why not this .xml?

I'll get there, persistence being my middle name. Again, this is an experiment and learning something should be imminent. I will share with you here what I find so others can use the info.

Link to comment
Share on other sites

"That should be all I need" is right, keyword being should. I've been on time compression here but I had a chance to revert to the original SpeechBuddy .xml that worked yesterday. I can get it to work if I use "!", "@", etc. but those conflict with the shift 1,2,3 etc. that we all use to pop up a window on the 2D panel.

Sorry, I still don't know how you are sending these keypresses. I take it then that you cannot actually send numerical FS controls as you seemed to say right at the beginning?

The other mystery is why it works on the FSX machine but not on the laptop.

If it is SpeechBuddy generating the keystrokes and not FSUIPC (via the use of the controls I keep referring you to), then it will be because RC doesn't see keystrokes on the Client. They have to go to FS so that FSUIPC can detect them on RC's behalf.

As I said, the FS2004 .xml does indeed work from the laptop to control the FSX functions so why not this .xml?

I assume that SpeechBuddy sends FS controls to FS via WideFS and FSUIPC, but it cannot send keystrokes that way unless it is encoding them in the added FSUIPC control for this purpose.

Pete

Link to comment
Share on other sites

Yes, I agree that it has to be the codes and not keypresses that are needed. So I need to figure out what codes to send. I have already cleared certain functions in FSX setup like the ADF, COM, and some others I never use so they are free keys for SpeechBuddy. Since they are common, I should be able to pick them out of the sample files I have already along with your .pdf listing. Will play with it.

Link to comment
Share on other sites

Yes, I agree that it has to be the codes and not keypresses that are needed. So I need to figure out what codes to send.

The "code" number for the "send key press and release" FSUIPC control is 1070, as listed in the table headed "Additional FS controls added by FSUIPC"£ (in the Advanced User's guide).

The parameter to determine the key press is formed (as documented there) by a number

256 x Shift codes + KeyCode.

These codes are listed earlier in the same document, in the Button Programming section. For exaple, "ctrl+Shift+1" would be:

(2 for control + 1 for Shift) x 256 = 768, plus 49 (for '1' on the main keyboard) = 817.

Likewise CS0 = 816,

CS2 to CS9 = 818 to 825.

Pete

Link to comment
Share on other sites

Pete,

Here's the SpeechBuddy handler for atc calls:

// ATC Handler

procedure ATC( sentence : string );

begin

var ATCValue : integer = 65586;

if SpeechDisabled then exit;

case VarValue( 'ATC' ) of

'1' : ATCValue := 817; //ctl + shf + 1 = 817

'2' : ATCValue := 818;

'3' : ATCValue := 819;

'4' : ATCValue := 820;

'5' : ATCValue := 821;

'/' : ATCValue := 959;

'7' : ATCValue := 823;

'6' : ATCValue := 822;

end;

speak(sentence);

FSUIPC_SetInt( $3110, ATCValue ); //should this be 1070?

end;

The question is should I be using $3110 for these commands? If so, it doesn't work. I then tried sending them to $1070 and still nothing.

I am practicing on the FSX PC and will move the script to the laptop later once it works. I have reset the RC4 keys to default.

I also read in the Its Your Plane support forum that the Radar Contact program must be installed on the FSX machine, which is contrary to what I am trying to achieve - unloading the FSX machine to run only FSX. The developer, one Robert Cezar, told a user in no uncertain terms:

"REGARDING: It's too bad , I would like to have radar contact and IYP working together on the client system keeping the fsx system cpu only for fsx.

You are correct. RC needs to be on the Simulator PC. I fail to see why this is so arduous."

This whole voice thing is not going to work for me if that is the case. The audio will then be coming through the FSX PC speakers and I will be wearing a headset for nothing. As it stands, only the FSX audio comes out the PC speakers, and the RC4 voice comes through the headset connected to the laptop. I guess I want too much, eh? I am losing enthusiasm after I read that.

Actually, I got the program "Shoot" to work quite well for the time being, but I have to run it along with RC4 on the FSX PC. I really want to figure this out so everything is offloaded to the laptop.

Cheers!

Link to comment
Share on other sites

Here's the SpeechBuddy handler for atc calls:

// ATC Handler

procedure ATC( sentence : string );

begin

var ATCValue : integer = 65586;

What's 65586 for? If it's meant to be the FS control, that's "MAGNETO"!

FSUIPC_SetInt( $3110, ATCValue ); //should this be 1070?

Ah, so it DOES send commands via FSUIPC.

$3110 is the place where the command NUMBER is sent. Yes, the command NUMBER is 1070. But before writing that you have to send the PARAMETER (your 817's etc) to $3114. So try:

FSUIPC_SetInt( $3114, ATCValue );

FSUIPC_SetInt( $3110, 1070 );

The question is should I be using $3110 for these commands? If so, it doesn't work. I then tried sending them to $1070 and still nothing.

As I kept saying, you need not only the COMMAND or CONTROL number, but also the PARAMETER. The Control number (1070 is decimal by the way, not hex like $1070) only tells FSUIPC to send a key press-and-release, but how would it know what keypress without more information? Hence the parameter, which has to be supplied first because the command is excuted on receipt.

I also read in the Its Your Plane support forum that the Radar Contact program must be installed on the FSX machine, which is contrary to what I am trying to achieve - unloading the FSX machine to run only FSX. The developer, one Robert Cezar, told a user in no uncertain terms:

"REGARDING: It's too bad , I would like to have radar contact and IYP working together on the client system keeping the fsx system cpu only for fsx.

You are correct. RC needs to be on the Simulator PC. I fail to see why this is so arduous."

Really? I've ALWAYS used both IYP and RC on a Client PC, and NEVER on the FS PC! How old is this exchange? IYP most definitely uses the $3110 offset and sends 1070 commands, as I've just described.

If that comment is recent (within the last 18 months or so) please give me the reference (link) so I can refute it. Robert, the IYP author, knows full well it can all run on a Client!

Pete

Link to comment
Share on other sites

My pleasure. Here's the link: http://www.itsyourplane.eu/forums/viewtopic.php?f=3&t=424

Looks like it was posted way way back - yesterday.

Yes, 65586 is left over from the old function I used as a model since I control the magnetos myself from the panel. Since I don't know DWS language (apparently SpeechBuddy's custom native language) and cannot find a syntax guide, I had to "borrow" another function to add RC4 calls - in this case I borrowed the magneto control function. It is used merely to assign a value into the newly declared variable 'ATCValue'. Assigning a variable may or may not be required in DWS language. It gets replaced with whichever key value once the function is called from the XML. I could have used any number, but changed it to 817 now to avoid further confusion.

Why are locations 3110 and 3114 not mentioned in any manual I got with FSUIPC?

I will try your method and let you know. Thanks Pete!

Link to comment
Share on other sites

And the verdict is in. You, Pete, are a hero. Using your suggestion for location pokes, my system works just fine running SpeechBuddy and RC4 on the laptop client and controlling the main FSX machine! So now alls I have to do is come up with a good script and I'm in business, and you saved me $60CD! The only other thing I would like IYP for is the checklist feature and SpeechBuddy does that too so I am satisfied. Thanks again!

Dolph

Link to comment
Share on other sites

My pleasure. Here's the link: http://www.itsyourpl...c.php?f=3&t=424

Looks like it was posted way way back - yesterday.

Thanks, I've posted my refutation and expect Robert to explain himself in due course. Thank you.

[LATER]

He's just retracted it, saying it was an error on his part. In fact he uses RC on a Networked PC with IYP too! ;-)

Why are locations 3110 and 3114 not mentioned in any manual I got with FSUIPC?

None of the programming information is supplied in the normal user pack. There are no offsets mentioned at all, let alone only 3110 and 3114. If you want offset information for programming FSUIPC (and this is effectively what you are doing in Speech Buddy) you need to download the FSUIPC SDK. It contains the complete list of the many thousands of values you can read from, and often write to, FSUIPC offsets. There's the "Programmer's Guide" with details for FS9 and before, and the "FSUIPC4 Offsets Status" document which mostly supersedes it for FSX, ESP and P3D.

Using your suggestion for location pokes, my system works just fine running SpeechBuddy and RC4 on the laptop client and controlling the main FSX machine!

Good.

Regards

Pete

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use. Guidelines Privacy Policy We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.