[Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.75 (Buttplug.IO) - Latest Update: 30.04.2024

Webteases are great, but what if you're in the mood for a slightly more immersive experience? Chat about Tease AI and other offline tease software.

Moderator: 1885

pepsifreak
Explorer At Heart
Explorer At Heart
Posts: 129
Joined: Fri May 08, 2009 8:50 pm
Gender: Male
Sexual Orientation: Straight

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by pepsifreak »

Looks like I found a minor bug with how a couple settings are stored.
Everything relating to domme and sub birthdays, as well as sub cock size is set to 0 internally. This doesn't match what the UI defaults to, and if the user doesn't change them then they remain 0. This becomes a problem if a script uses them since 0 isn't intended.

Code: Select all

@SystemMessage #DomName is age #DomAge. Birthday is #DomBirthdayMonth #DomBirthdayDay, #DomBirthdayYear and has #DomHair hair with #DomEyes eyes. Cup size is #DomCup.
@SystemMessage #SubName is age #SubAge. Birthday is #SubBirthdayMonth #SubBirthdayDay, #SubBirthdayYear and has #SubHair hair with #SubEyes eyes. Cock size is #SubCockSize inches.
@EndTease
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 667
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by markus »

pepsifreak wrote: Sat Jun 24, 2023 3:52 pm Looks like I found a minor bug with how a couple settings are stored.
Everything relating to domme and sub birthdays, as well as sub cock size is set to 0 internally. This doesn't match what the UI defaults to, and if the user doesn't change them then they remain 0. This becomes a problem if a script uses them since 0 isn't intended.
Thx, ... noted (!!!), but don't expect a fix for that anytime soon.
(Minor bugs, minor priority).

Best greetings,
Markus
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 326
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by FrozenWolf »

Hey markus,

Thanks for the extensive amount of work you've put into TAI-Awakening.

I thought I'd have a go at getting it to run under Linux and found a few issues. These issues may be specific to Linux since I haven't seen anyone else reporting these problems. I appreciate that your target audience is Windows and therefore it doesn't make much sense to try and fix any Linux specific issues. Anyway, I thought I'd list them here in case they affect both systems.

System
  • Tease AI Awakening 0.3.17
  • HouseOfTease 8.0
  • Linux 5.15.0-76-generic x86_64 GNU/Linux
  • wine-8.11 (Staging)
  • WINE_ARCH=win32
Chat Window Scrolling

Whenever a new chat message is appended to the chat window, the window scrolls back up to the top. I can scroll down to the bottom again to see the new message, but then another new message always scrolls back to the top.
This might be an issue with wine-gecko, assuming the chat window is rendered with an HTML control such as WebBrowser or WebView2.

ArgumentNullException

When selecting
File->Settings
, a null parameter exception is raised. If I choose 'Continue', it seems to carry on OK.

Exception details
Spoiler: show

Code: Select all

System.ArgumentNullException: Value cannot be null.
Parameter name: item
   at System.Windows.Forms.ComboBox.ObjectCollection.AddInternal(Object item)
   at System.Windows.Forms.ComboBox.ObjectCollection.Add(Object item)
   at TAI_Awakening.Form2.Form2_Load(Object sender, EventArgs e) in M:\Tease AI - A Sharp Awakening\TaiAwake\TAI Awakening 0 3 17 LabelChkBox\Form2.cs:line 405
   at System.Windows.Forms.Form.OnLoad(EventArgs e)
   at System.Windows.Forms.Form.OnCreateControl()
   at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
   at System.Windows.Forms.Control.CreateControl()
   at System.Windows.Forms.Control.WmShowWindow(Message& m)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at System.Windows.Forms.Form.WmShowWindow(Message& m)
   at System.Windows.Forms.Form.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
----------------------------------------
TAI Awakening
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///Y:/TAI%20Awakening.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Speech
    Assembly Version: 4.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Speech/v4.0_4.0.0.0__31bf3856ad364e35/System.Speech.dll
----------------------------------------
NAudio.Core
    Assembly Version: 2.1.0.0
    Win32 Version: 2.1.0.0
    CodeBase: file:///Y:/lib/NAudio.Core.DLL
----------------------------------------
netstandard
    Assembly Version: 2.0.0.0
    Win32 Version: 4.8.3761.0
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/netstandard/v4.0_2.0.0.0__cc7b13ffcd2ddd51/netstandard.dll
----------------------------------------
NAudio.WinMM
    Assembly Version: 2.1.0.0
    Win32 Version: 2.1.0.0
    CodeBase: file:///Y:/lib/NAudio.WinMM.DLL
----------------------------------------
Buttplug
    Assembly Version: 3.0.0.0
    Win32 Version: 3.0.0.0
    CodeBase: file:///Y:/lib/Buttplug.DLL
----------------------------------------
LibVLCSharp
    Assembly Version: 3.6.6.0
    Win32 Version: 3.6.6.0
    CodeBase: file:///Y:/lib/LibVLCSharp.DLL
----------------------------------------
LibVLCSharp.WinForms
    Assembly Version: 3.6.6.0
    Win32 Version: 3.6.6.0
    CodeBase: file:///Y:/lib/LibVLCSharp.WinForms.DLL
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
NAudio
    Assembly Version: 2.1.0.0
    Win32 Version: 2.1.0.0
    CodeBase: file:///Y:/lib/NAudio.DLL
----------------------------------------
NAudio.Wasapi
    Assembly Version: 2.1.0.0
    Win32 Version: 2.1.0.0
    CodeBase: file:///Y:/lib/NAudio.Wasapi.DLL
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
Microsoft.GeneratedCode
    Assembly Version: 1.0.0.0
    Win32 Version: 4.8.3761.0 built by: NET48REL1
    CodeBase: file:///C:/windows/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
EndTease/End behaviour

At the end of the HouseOfTease setup, it stops with "Jodie is typing..." when I think it's supposed to end the script.

Chatlog

Code: Select all

18:01 Jodie: If you are stucked, try to type "fix", a CBT will be called *for some reason, its the only thing able to unlock teaseai*
18:01 Jodie: and try to type your safeword after the cbt part.
18:01 Jodie: And remember to play safe...Dont do anything you think you should not.
Jodie is typing...
Script Log

Code: Select all

Sun, 09.07.2023 - 17:33:59:7403
Scripts\House of Tease\Stroke\Start\Extended_Start.txt
Sun, 09.07.2023 - 17:34:00:0625
Scripts\House of Tease\Custom\AV_Scripts\HoTSetup.txt
Script

Scripts/House of Tease/Custom/AV_Scripts/HoTSetup.txt

Code: Select all

If you are stucked, try to type "fix", a CBT will be called *for some reason, its the only thing able to unlock teaseai*
 and try to type your safeword after the cbt part.
<Font color="red">And remember to play safe...Dont do anything you think you should not.</Font> @UnlockImages
@EndTease
@End
-FW
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 667
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by markus »

FrozenWolf wrote: Sun Jul 09, 2023 6:56 pm
I thought I'd have a go at getting it to run under Linux and found a few issues.
Hi and thanks for the try, IIRC this is the very first feedback of someone who tested it on Linux.

I am sorry and a bit disappointed that Wine doesn't 'simply' play it, ... honestly, ... Awakening might have a few tricks, but basically it's quite a simple Windows-Forms-App, ... no rocket-sience involved.

I appreciate that your target audience is Windows and therefore it doesn't make much sense to try and fix any Linux specific issues.
It's not that I sat there and thought: 'Mhhhh, ... should I make it Linux-compatible or not?'.
The truth is that I am a bloody-Noob when it comes to Linux, I don't have it installed, I never tested Awakening on Wine/Linux, and to be honest, I have no motivation to do so.
Even if I would have, there are so many other things which would have a higher priority.

These issues may be specific to Linux since I haven't seen anyone else reporting these problems. Anyway, I thought I'd list them here in case they affect both systems.
You have actually found one thing which I wouldn't call an issue, ... it's just the way Awakening works, this behaviour can even help to find script-errors (or better call them script-issues):
At the end of the HouseOfTease setup, it stops with "Jodie is typing..." when I think it's supposed to end the script.
What causes that behaviour is this:

@EndTease
@End

---> '@EndTease' is a Tai-Script command, (while '@End' is more of a marker) and every script command has to come either with text in that script line OR with a '@NullResponse'.
In most cases, when you have a Tai-Script command without text and without a '@NullResponse', then this "Dommename is typing..." shows up longer than it should be, ... and that's when you could recognize a missing '@NullResponse'.
So normally that behaviour makes sense, but in this specific case, when the tease ends, it doesn't -> noted on the To-Do-List! :-)

Correct would be either:

@NullResponse @EndTease
@End

Or (just as an example):

Let's end this, see you tomorrow! @EndTease
@End




Whenever a new chat message is appended to the chat window, the window scrolls back up to the top. I can scroll down to the bottom again to see the new message, but then another new message always scrolls back to the top.
This might be an issue with wine-gecko, assuming the chat window is rendered with an HTML control such as WebBrowser or WebView2.
It's a 'WebBrowser'-control, that doesn't happen on windows, no idea to solve this for you, sorry.


ArgumentNullException

When selecting
File->Settings
, a null parameter exception is raised. If I choose 'Continue', it seems to carry on OK.

Exception details

System.ArgumentNullException: Value cannot be null.
Parameter name: item
at System.Windows.Forms.ComboBox.ObjectCollection.AddInternal(Object item)
at System.Windows.Forms.ComboBox.ObjectCollection.Add(Object item)
at TAI_Awakening.Form2.Form2_Load(Object sender, EventArgs e) in M:\Tease AI - A Sharp Awakening\TaiAwake\TAI Awakening 0 3 17 LabelChkBox\Form2.cs:line 405
This seems to be about installed TTS-Voices, will catch that in the next update.


Best greetings,
Markus
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 326
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by FrozenWolf »

markus wrote: Mon Jul 10, 2023 5:37 pm Hi and thanks for the try, IIRC this is the very first feedback of someone who tested it on Linux.

I am sorry and a bit disappointed that Wine doesn't 'simply' play it, ... honestly, ... Awakening might have a few tricks, but basically it's quite a simple Windows-Forms-App, ... no rocket-sience involved.
It was definitely worth a try! Running TAI-Awakening in Windows under VirtualBox unfortunately has issues with sound stuttering and eventually giving up altogether, so I thought I'd try wine instead, Some of the aspects that wine tends to struggle include Web Rendering and SAPI, so you're hitting a couple of weak areas.
markus wrote: Mon Jul 10, 2023 5:37 pm It's not that I sat there and thought: 'Mhhhh, ... should I make it Linux-compatible or not?'.
The truth is that I am a bloody-Noob when it comes to Linux, I don't have it installed, I never tested Awakening on Wine/Linux, and to be honest, I have no motivation to do so.
Even if I would have, there are so many other things which would have a higher priority.
That's absolutely fine; I was hoping, like you, that it would just work under wine, and I didn't expect you to have tested it under Linux or any other operating system. Lots of applications do work well under wine, some work after a few tweaks, some work with a few issues, and some just go up in smoke.
I used Windows for over 30 years and was developing applications for it for 20 years with a wide variety of languages and frameworks. I've been playing with Linux since the early days of its existence and it was only in the last couple of years that I finally decided to make the full switch to Linux, but that's primarily because I haven't needed to develop .NET applications for some time now (and I was getting a bit bored of Windows and Microsoft shenanigans!).
markus wrote: Mon Jul 10, 2023 5:37 pm
Whenever a new chat message is appended to the chat window, the window scrolls back up to the top. I can scroll down to the bottom again to see the new message, but then another new message always scrolls back to the top.
This might be an issue with wine-gecko, assuming the chat window is rendered with an HTML control such as WebBrowser or WebView2.
It's a 'WebBrowser'-control, that doesn't happen on windows, no idea to solve this for you, sorry.
That's no problem! I'm assuming you're using either
theControl.Document.Body.ScrollIntoView(false);
or
webBrowser1.Document.Window.ScrollTo(...)
which I expect is passed as a direct command to wine-gecko which it doesn't quite understand. I can't think of a workaround for that without debugging wine itself, which I might try on some rainy Sunday afternoon.
markus wrote: Mon Jul 10, 2023 5:37 pm
ArgumentNullException

When selecting
File->Settings
, a null parameter exception is raised. If I choose 'Continue', it seems to carry on OK.
This seems to be about installed TTS-Voices, will catch that in the next update.
That makes sense. I think my wine configuration doesn't include any voices at all, so even the 'default' voice is probably null.

Thanks for taking the time to have a look, it was certainly an interesting experiment.
-FW
appelsinsaft
Curious Newbie
Curious Newbie
Posts: 1
Joined: Tue Sep 08, 2020 3:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by appelsinsaft »

Very cool, thanks for your hard work! Are you planning on re-introducing the save feature from the original tease AI? I seldom have time to do a session in one sitting, so I can't really play without it.
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 667
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by markus »

FrozenWolf wrote: Mon Jul 10, 2023 8:47 pm Running TAI-Awakening in Windows under VirtualBox unfortunately has issues with sound stuttering
I have never tested it in a VirtualBox, but there is something around the metronome which bothers me sometimes, ... i.e. when my Avira-AntiVir (or Win 10 itself) is updating, the metro can stutter (this became worse on win 10, on win 7 that wasn't really a problem), I sometimes thought about a better way of playing the metro, ... but that would be something like you call it 'which I might try on some rainy Sunday afternoon'.

Anyway, ... the question is:
When you talk about 'sound stuttering', do you mean the metronome, or sounds in general? (???)

(Audio playback is powered by NAudio while the metro is still that poor old 'SoundPlayer' class.)

or
webBrowser1.Document.Window.ScrollTo(...)
This.

Thanks for taking the time to have a look, it was certainly an interesting experiment.
No problem, it is an interesting topic (thx for bringing it up), and as long as a small fix here and there would be enough, then I happily would be up for it.
I just don't have the time for bigger changes right now, my focus is more and more on my new personality / scripting than on the coding part.

Best greetings,
Markus
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 667
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by markus »

appelsinsaft wrote: Wed Jul 12, 2023 6:32 pm Are you planning on re-introducing the save feature from the original tease AI? I seldom have time to do a session in one sitting, so I can't really play without it.
Hi and welcome to the forum! :wave:

It's not planned, but I didn't decided against it also.
Technically it's just a matter of effort / work I would have to put into such a feature.

But other things (see i.e. my post above) have a much higher priority to me right now.
Which means, ... if that comes, then not anytime soon, that's for sure, ... sorry.


So in the meantime all I have are these hints:
You could lower the values in the settings (-> 'Ranges') for:
- 'Tease Length Minimum' and 'Tease Length Maximum'
- 'Taunt Cycle Minimum' and 'Taunt Cycle Maximum'

And set the 'Stroke Taunt Frequency' to 5 (Verbose)


I hope that helps at least just a little bit, ...

best greetings,
Markus
leezer3
Explorer
Explorer
Posts: 38
Joined: Sat Mar 28, 2020 10:31 am

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by leezer3 »

markus wrote: Wed Jul 12, 2023 7:21 pm I have never tested it in a VirtualBox, but there is something around the metronome which bothers me sometimes, ... i.e. when my Avira-AntiVir (or Win 10 itself) is updating, the metro can stutter (this became worse on win 10, on win 7 that wasn't really a problem), I sometimes thought about a better way of playing the metro, ... but that would be something like you call it 'which I might try on some rainy Sunday afternoon'.
This sounds like you're most likely using one of the built in .Net timers, at a guess I'd say the basic Timer class?
Presumably doing something along the lines of varying the audio frequency through NAudio to give your beat frequency (not bothering dissasembling to figure out what / how exactly)

These do not have guaranteed precision in their update times, hence the audio stutters under heavy load (normal deviation is going to be somewhere +/- 15ms / tick, but somewhat more under non-optimatal conditions).
The stopwatch class is *better* but it's still not really high-precision accuracy in terms of milliseconds :)
I'd also suspect that you're running the sound updates in the main loop thread. With WinForms, this is going to be an issue at times, as if you block the event loop with something else, the sound update may get delayed slightly causing a stutter.

Essentially, for audio manipulation, you really want to be looking into something using the kernel ticks (as the 'true' time), not something derived from it such as the default C# timer / stopwatch classes.
You also want a separate loop thread to the UI to actually run the sounds, and from the UI just send signals to said thread.

This may (or may well not) help:
https://github.com/leezer3/OpenBVE/blob ... /Timers.cs

Only time elapsed and similar functions I'm afraid, but it's full kernel level precision and fully multi-platform.


Also, as a multi-platform note:
The current build won't even launch on pure Mono / Linux, and requires WINE with all the associated messes.
This is because you're using System.Speech, which is not available for non-Windows platforms, and something immediately makes a call to it on startup :)
It should be possible to platform detect and no-op any speech calls without much difficulty, and I can't see anything else that would really have much if any difficulty on non-Windows.
Basic platform detection:
https://github.com/leezer3/OpenBVE/blob ... sts.cs#L86
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 326
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by FrozenWolf »

markus wrote: Wed Jul 12, 2023 7:21 pm
FrozenWolf wrote: Mon Jul 10, 2023 8:47 pm Running TAI-Awakening in Windows under VirtualBox unfortunately has issues with sound stuttering
I have never tested it in a VirtualBox, but there is something around the metronome which bothers me sometimes, ... i.e. when my Avira-AntiVir (or Win 10 itself) is updating, the metro can stutter (this became worse on win 10, on win 7 that wasn't really a problem), I sometimes thought about a better way of playing the metro, ... but that would be something like you call it 'which I might try on some rainy Sunday afternoon'.

Anyway, ... the question is:
When you talk about 'sound stuttering', do you mean the metronome, or sounds in general? (???)
Sound in general is a problem under VirtualBox/VMWare/QEmu etc. due to the high data rate of sound streams. There are a whole load of buffering, timing, and latency issues that accumulate, especially when the hardware timing used by Windows itself isn't actually coming from the real hardware, but from another emulation by VirtualBox. I've seen instances of VirtualBox where the monotonic clock was running faster than real-time which caused some real headaches for time critical testing. Even playing back uncompressed WAV files through media player or VLC in Windows on VirtualBox crackles and stutters. So that aspect is not any issue with TAI-A.

Under a native Windows installation, the sound normally follows the path:
  Application
      -> Windows Subsystem
          -> Windows Device Driver
              -> Sound Hardware
                  -> Speakers


Under VirtualBox, it follows the path:
  Application
      -> Windows Subsystem
          -> Windows Device Driver
              -> VirtualBox Hardware Emulation
                  -> Linux PulseAudio
                      -> Linux Device Driver
                          -> Sound Hardware
                              -> Speakers


The metronome on the other hand has more distinct issues that may be exacerbated by the general sound issues. The metronome tends to have high latency and sporadic rhythm, frequently tripping over itself (such as playing two beats at nearly the same) and then periods of silence. Eventually the metronome gives up altogether along with all other sounds. This might be related to resource management/disposal. I see leezer3 has provided some very useful insights into the variety of timer systems that exist in Windows and .NET; those are definitely worth exploring. Certainly he (if he's got the time) or I could work on replacing the metronome code if you'd like to send us the piece of code that handles the metronome.
markus wrote: Wed Jul 12, 2023 7:21 pm
or
webBrowser1.Document.Window.ScrollTo(...)
This.
Ah, thanks I did find a workaround for it in the end by installing Internet Explorer 8 into Wine which replaces wine-gecko as the default web renderer. For the moment, that means that I've got a (nearly) fully working TAI Awakening running on Wine in Linux, and the sound playback so far seems to be smooth and without issue. The only anomaly is the exception when opening the settings menu which is likely due to not having any TTS voices installed, but fortunately that doesn't seem to affect the operation of TAI.

-FW
User avatar
FrozenWolf
Explorer At Heart
Explorer At Heart
Posts: 326
Joined: Tue Oct 30, 2018 7:50 pm
Gender: Male
Sexual Orientation: Straight
I am a: Switch
Dom/me(s): None
Sub/Slave(s): None
Location: UK

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by FrozenWolf »

leezer3 wrote: Thu Jul 13, 2023 10:13 am
markus wrote: Wed Jul 12, 2023 7:21 pm I have never tested it in a VirtualBox, but there is something around the metronome which bothers me sometimes, ... i.e. when my Avira-AntiVir (or Win 10 itself) is updating, the metro can stutter (this became worse on win 10, on win 7 that wasn't really a problem), I sometimes thought about a better way of playing the metro, ... but that would be something like you call it 'which I might try on some rainy Sunday afternoon'.
This sounds like you're most likely using one of the built in .Net timers, at a guess I'd say the basic Timer class?
Presumably doing something along the lines of varying the audio frequency through NAudio to give your beat frequency (not bothering dissasembling to figure out what / how exactly)

These do not have guaranteed precision in their update times, hence the audio stutters under heavy load (normal deviation is going to be somewhere +/- 15ms / tick, but somewhat more under non-optimatal conditions).
The stopwatch class is *better* but it's still not really high-precision accuracy in terms of milliseconds :)
I'd also suspect that you're running the sound updates in the main loop thread. With WinForms, this is going to be an issue at times, as if you block the event loop with something else, the sound update may get delayed slightly causing a stutter.

Essentially, for audio manipulation, you really want to be looking into something using the kernel ticks (as the 'true' time), not something derived from it such as the default C# timer / stopwatch classes.
You also want a separate loop thread to the UI to actually run the sounds, and from the UI just send signals to said thread.

This may (or may well not) help:
https://github.com/leezer3/OpenBVE/blob ... /Timers.cs

Only time elapsed and similar functions I'm afraid, but it's full kernel level precision and fully multi-platform.
That's good insight into the plethora of timing APIs. I know they all seem to have slightly different granularity that doesn't seem to be consistent across operating systems, or even different versions of the same operating system.
leezer3 wrote: Thu Jul 13, 2023 10:13 am Also, as a multi-platform note:
The current build won't even launch on pure Mono / Linux, and requires WINE with all the associated messes.
This is because you're using System.Speech, which is not available for non-Windows platforms, and something immediately makes a call to it on startup :)
It should be possible to platform detect and no-op any speech calls without much difficulty, and I can't see anything else that would really have much if any difficulty on non-Windows.
Basic platform detection:
https://github.com/leezer3/OpenBVE/blob ... sts.cs#L86
You might have already done this, but if you're interested, my solution to get it working under Wine is:

Code: Select all

export WINEARCH=win32
export WINEPREFIX=/some/where/
wineboot
winetricks dotnet48 sapi ie8
After that I find it works quite well.

-FW
leezer3
Explorer
Explorer
Posts: 38
Joined: Sat Mar 28, 2020 10:31 am

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by leezer3 »

I'm primarily Windows based, but these days have 10 odd years of experience maintaining a game engine, and all the associated fun and games that comes with that (fallen into many of these sorts of holes already), although I'm only really a hobbyist.

Honestly, not especially interested in WINE- Didn't even try any major digging, other than the observations on native launching :)
I just float around and offer (un)helpful suggestions from time to time :P
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 667
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by markus »

leezer3 wrote: Thu Jul 13, 2023 10:13 am This sounds like you're most likely using one of the built in .Net timers, at a guess I'd say the basic Timer class?
Presumably doing something along the lines of varying the audio frequency through NAudio to give your beat frequency (not bothering dissasembling to figure out what / how exactly)
Hi there! :wave:

I have the feeling (or maybe I just misunderstand?) that things get mixed up here, or maybe I just explained it badly, ... anyway, to clarify:
For the @PlayAudio-Command I use an own written audio-player which utilizes the NAudio-lib.

The metronome is played with the SoundPlayer by an async method, no timer involved.

and something immediately makes a call to it on startup :)
One possible problem will be solved with the next update (it is solved already, but not released yet), that was an easy fix, we will see if that's already enough or if such a platform detection is needed.


Thx for those links anyway, ... noted in my To-Do-document, will look that up one day. :smile:



FrozenWolf wrote: Fri Jul 14, 2023 3:38 pmCertainly he (if he's got the time) or I could work on replacing the metronome code if you'd like to send us the piece of code that handles the metronome.
Mostly I try all I can think of on my own first, try to solve problems on my own (well, my friend google sometimes assists me :-D ), ... and I don't think that this is urgent, it stutters for me only when such updates are running (Avira/Win10), ... but every other application get's stucked or stuttering as well.
But thx for that offer, I'll keep it in mind! :yes:

For the moment, that means that I've got a (nearly) fully working TAI Awakening running on Wine in Linux, and the sound playback so far seems to be smooth and without issue. The only anomaly is the exception when opening the settings menu which is likely due to not having any TTS voices installed, but fortunately that doesn't seem to affect the operation of TAI.
Sounds great! :-)
Like I wrote above, that exception should be gone with the next update, if not, just report back.


Best greetings, :wave:
Markus
yky989
Explorer
Explorer
Posts: 16
Joined: Sun Dec 09, 2018 2:46 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by yky989 »

Hey, just wanted to give some quick feedback:
I love Tease AI Awakening, its so nice and you did a really great job!

However i have 1 small problem. Im not really into denial so i set my setting as "Always allows" & "Rarely ruins" but she still denies a lot. Do you know a fix of that, or is that a bug in the software?

Kind Regards
yky
User avatar
markus
Explorer At Heart
Explorer At Heart
Posts: 667
Joined: Tue Nov 18, 2008 11:09 pm

Re: [Tease AI Awakening] - A Sharp Awakening - Release: Remote Toy Control v0.3.17 (Buttplug.IO) - Latest Update: 01.06.

Post by markus »

yky989 wrote: Sun Aug 06, 2023 6:09 pm Hey, just wanted to give some quick feedback:
I love Tease AI Awakening, its so nice and you did a really great job!
Hi and thanks!

However i have 1 small problem. Im not really into denial so i set my setting as "Always allows" & "Rarely ruins" but she still denies a lot. Do you know a fix of that, or is that a bug in the software?


This is not bug, it depends on the personality you are playing.

Technically spoken, there are commands which can be used in the scripts of those personalities which can 'overwrite' your settings
Also those settings must be used in a personality, it's not an automatism.

I am not 100% sure, but I think I saw scripts in Miss Blue and House of Tease which do change those orgasm and ruin chances.


For AliceMerged and AliceAwaked, there these settings will be ignored completely, ... you could start these in a new/fresh install, so that the intro-scripts are running again.
In those intro-scripts there are questions about for how long a period of denial can last.
But I never thought of the possibility to always allow an orgasm, maybe the best you could get out of that would be a 'often'.


What you could do is to edit the end-scripts on your own, of course a bit of scripting-knowlege would be required, but that's quite easy to learn.


Good luck and best greetings,
Markus
Post Reply

Who is online

Users browsing this forum: No registered users and 20 guests