 All right All right What is today September 2nd? All right, here. We are at the dovesync and Derek's gonna go first All right. Well, as you know been doing this these videos for marketing last couple of days So this morning really was unpacking everything finish We reorganizing the shop from my mad Prototyping week to get to get the the device Get this this guy for For its close-up So, yeah, morning was just kind of putting things back in order after all that And then this afternoon is mostly kind of catching up Basically been kind of out for The whole week until now Doing all that stuff So catching up with Dwayne and we had a discussion about Only time parts So yeah, it's just kind of a catch-up day for me. Okay Let's see well, let's go go to guess The most exciting news is that the new skill update got merged, which is very happy for me It even I submitted to the marketplace and it's all the VK tests are passing which is also very exciting Which also confused me a little bit because you know the timer tests were failing elsewhere, but But I don't know if Chris is gonna talk about that. We've been digging into that a little bit and found some issues particularly with stop the not the stop process but the Stop beeping custom step for the for the timer skill So the beeper in the timer is actually like the timer skill calling play WAV like play this WAV file Just on a repeating schedule every every second or something Or a couple of seconds It's not using the audio service No, no, well, and I For it for a second I thought about you know, oh, why isn't it using the audio service? We should just do that, but then if there was anything else playing it would It would not be able to play over the top of it, right? Because it would it would have to send out a audio service pause Play its wave and then sound I send out an audio service resume. Yeah, so it it would be Quite weird. Well, and you need to like mess around with the track listing Anyway, I figured that that came like how we structure that behavior really came in the skills interaction sprint that's coming up and we've talked about The desire for Like both internally and and in the community there's been conversations about the need for you know particular handling of Other types of sound so like notification sounds and things like that because they're not they're clearly quite different to like play this music track Anyway, so I decided to leave that alone But but the way that we use that play WAV thing it actually just initiates a process and then leaves it hanging It never stops it and so and then the way that we check for it is does that process exist and because the process is forever Hanging it will forever exist So I'm actually impressed that it's been passing for as at all That's horrifying, but yeah, yeah We need to okay. We'll have to leave so we're fixing that Audio service to make that work. Yeah. Yeah. Yeah, so we're fixing like we're doing the temporary fix for the time of skill, but I think you know important for the for the For a proper fix to come in the skill interaction spring And The other thing I started looking into was so Chris did the the new docker container for for 21 O2.1 And then we discovered this this very tiny but significant bug And so we had a quick check last night about whether we needed to do a new Release of micro core, but the bug itself literally only like it's it's in the vk test Files so it only pertains to the void conf tests. So Kind of decided to Modify the the docker container to just fix this single character rather than doing an entire micro core release But then when I once I'd done that the pulse audio daemon has started failing Consistently every time which is something that I've seen sporadically, but now it's happening every single time on this dog container So and that's where I ended up last night and I haven't Haven't gotten past there So yeah, that was a big part of yesterday. I've started I've been posting the job around and Yeah, more more chats with different community members around, you know, what our priorities are and I've made the the project board the new sprint project board public But I haven't posted it anywhere yet. So people probably don't know about that yet, but I'll leave I'll even add a link in the description. So if you haven't seen it for our other channels then check that out and The idea being you know the So the sprint project board is a list of all of our upcoming sprints that we've been organizing internally and under each column each columns a sprint and then under each column there are cards for either PRs or issues or links to downstream Projects and particular bits of their code that we think are relevant. Well that I've I've thought are relevant for those sprints and so At the moment, it's just been me like putting things that I think are relevant in there But the idea is that everyone Should jump in there and have a look and if there's things that you think are relevant Then we want to add them on there as well. I don't think Random people can do that themselves, but ping me and we'll get it on there What do we use pulse audio for Audio we use pulse audio for what? Right for for all the audio As in we it's kind of it's it's a little bit of We've kind of ended up in this situation where some things are like Doing things on the Alson mixer and and but a lot of stuff Uses pulse audio so you audio service use pulse audio Okay, we I'm fairly sure we use pulse audio But well, there's I've seen references to pulse audio and config files and throughout the code That's why I'm questioning. What do we use it for because pulse also like say that um pulse like talks to also You know anyway, right? Yes. It's on top of also. That's correct. Yeah. Yeah Um So I know that it in different places. We're like talking to also directly, but then in other places. I'm 95% sure that we're we're using pulse and I mean that's what we've What I've started looking out for like pie crop for example Because it's much easier to configure different Devices using the the pulse audio utilities rather than Also, well one of the changes I remember having to make the volume skill was to put a check for the enclosure type to make sure That it wasn't a mark to so it wouldn't try to mess with also and change the volume that way it would send out a message on the message bus that the enclosure would pick up and basically forward on to the hardware so I recall doing that but I I mean I recall also being a problem some people directly talk to also in certain places I've had to you know, put an if then else around it with the enclosure type But as far as pulse that wasn't aware that we were using pulse directly But maybe like you said pie crop or something. I don't know I've seen references to it I've seen config values to it. It's yeah, I mean I have to double check but don't we don't we use PA play as a as one of the base level Programs we use a play for playing stuff, right? We play But we use MPG one two three For M pegs we use a play for waves That's what I was kind of wondering we'd use pulse for now there's certainly all sorts of other code out there that Possibly is another Positor use or other skills that may directly use pulse or rely on it. I don't know that's why I asked the question hmm, what happened what seems to happen is when the pulse audio daemon fails then the the Volume skill starts failing because presumably it can't well what I thought was happening is that it couldn't find The mixes but Well, he's the guy that throw used to throw the also can't find also mixer exceptions on boot, but Thought I fixed that anyway. Alright, so I just find it odd that we have some That use the low-level a plays an MPG one two threes and some want to use Elsa and someone use pulse audio, but they all should be using the audio service. So yeah Yes, they all should be using the audio service and but they should also You know, we should be trying to move towards, you know, using a single service whether that's if like if it's also then and we should be using also or if it's also we should be using pulse rather than You know doing this mismatch thing, but it's it's one another one of those things. That's just sort of grown over Over the years. I'm 99% certain that the correct answer is that we need to make everything move to a Microp-defined audio service, which is a wrapper for whatever the platform has underneath on Linux It'll be you know, pulse audio or Elsa, whatever, you know, but on a more embedded system They don't have that heavyweight stuff. It'll be just direct to the hardware, you know, totally and it seems like our Audio services migrated recently to a plug-in architecture. So if that is the direction, we should probably get the issues With that plug-in system fixed Okay, if there are if you know of issues with the plug-in system, then that would be good to know but But yes, I agree with everything people have said Is it running on my is my mark to running the plug-in audio service right now It is Yeah, it has the the plug-in system, but the audio services like the default Audio services are all still included in core at the moment, but so it's installed, but I'm not using it Yeah, unless you use the GUI player, that's that's in store. That's plug-in That's the only plug-in on there by default at the moment But you can install other audio service plugins if you so choose and The GUI player is used by what right now and in mark 2 At the moment unless you unless you set it to use it it It won't it won't automatically use it So I had it switched over for the for the latest channel for a little while But then we had the the whole audio system failing requiring a complete restart so For when we did the stable build, I switched it back so that we could do the stable release So it's still there and available for use, but like for the stable Build it's not it's not the default Okay, so I wouldn't have found any problems with it personally because I haven't been using probably Okay But yeah, it's it's particularly, you know, we're at August We could take this opportunity to you know at some point we've been wanting to pull out all the all the other Older systems that I just have just been added to microt over the years for And pull them out as plugins and So that would be a useful thing to do at some point and would you know make the code base of my whole bunch cleaner we'd get rid of some, you know weird things like the One of the one of the audio services doesn't even exist you have to install this pip package if for a tact for it to run and Which was Jarvis's pip package and he thought that we'd maintain it You know, we'd but we're not it's not a At all a priority for us So we kind of came to the decision to to deprecate it, but it's still in there. We haven't removed it. So Yeah And then we can do the same for the TTS and the STT, you know pull out pull out all those things and and slim it right down and and push them out as as plugins if we are going to support them or encourage other people to Create plugins if we If we're not going to spot them which open voice have also made a whole bunch of plugins because they've gone down, you know They've done they've pulled everything out because yeah, they don't need to worry about backwards compatibility at all. So Okay Nice That things on because would everyone who's trying to use that anyway, okay So Chris again, so you was that Yeah, like they have a they have a plug-in manager so they've kind of done a bunch of work to like make that plug-in system more usable by by end users in a way, but Yeah Yeah, anyway, I'll shut up. I think that's about me All right Chris there. Yeah, so Following on from Gez's comments There the VK test the test to see if the If the if the timer noise has stopped are basically worthless right now because Of the way it was not one long-wave file that continuously beeps it beeps and then it stops and it beeps So I mean did any whenever that code what it does is it looks for the Yeah, the file being played on the file system on the system Using a PSU till so depending on when it makes that check it may or may not actually be playing So those tests are just Not great right now. So that's kind of I've been working on today I want to get rid of the test to see if the audio is playing or not My current approach is to add a An event to the timer skill that says that expired timers have been removed And check for that So but that then led to Me looking at Okay, implemented a little while ago a criteria waiter for VK that You know it says when this event happens check this criteria, but it requires a criteria And I just want to check and see if the event got Got published on the bus So I'm kind of reworking that a little bit to see if I can just I can make it So the criteria is not required So you can either say, you know, it is this event move the bus or not And then you that's one way to do it and the other way to do it would be this event come across the bus And if it did then it'd be this criteria So I've been looking at that Actually have code written that's what I'm gonna kind of coding on today I thought there was a wait for message method or is that is that a custom one in there's a way And there's a wait for but it's not a wait for message it's not that I do you review the poll request I put in for the Wikipedia step file. I thought you reviewed that PR. That's in the Wikipedia scale. This is for the timer scale. I understand In there is the message bus handling for determining that a dialogue has completed being by the underlying audio service saying, you know, it sends out a message, you know I'm starting to play this wave file and I'm done playing this way file and I pick off the I'm done playing this wave file to determine whether or not the stop Was actually affected So that's a way of doing it but if the Timer is playing the wave file directly Unless it's sending out a message saying I'm getting ready to play a wave file and I'm getting ready to stop or I'm done playing the way file kind of like the audio service does Then yeah, I mean, I don't know what you could trigger on what wouldn't you have an event that's you know alarm has stopped and then The alarm has that the alarm has alarm playing alarm stopped but it also in the vk tests I put a trigger in for wiki to Determine that the audio service is discontinued playing right so if I say stop and I wait for it to say yeah, I'm stopped now, right? Yeah, this comes back to the like the limitation of using the audio service for the time of beep though Whereas like the alarm is kind of like a continuous Thing so I think it kind of makes a little bit more sense to you know Pause the audio and just play this alarm kind of a thing But maybe we do the same thing for the timer, I don't know But anyway, I think Chris's approach is that is the minimal is the minimal, you know thing needed to get us moving forward right now Yeah, I don't think it matters much if the beeping stopped, you know Yeah, it does matter but It's a question of where can you make the assumptions, you know Do I actually need to check and see if the beeping stopped or is the fact that the code that it doesn't expire the timers executed Okay, you know, did the beeping stop or not maybe it's a better unit test problem with With that approach in Pandora was that If the process got hung it took out the also out channel and Then nothing would ever play again because it would throw exceptions and say the vice busy And I'm wondering if you're running into that Because you're doing the same thing that it's doing you're firing up a process That's probably doing an a re an a play wave file out And if you terminate that and it doesn't terminate Then it's held on to the output channel, right? Anyway, I'm just I don't know what's going on here. It sounds like you're on top of it. So yeah, so I'm trying to implement this. We actually we have a If you look in in this file with weight code, we have weight for dialogue We have then weight we have then we have a lot of different weighting mechanisms and I think Okay's criteria waiter was an attempt to consolidate those but I think he missed a case So that's kind of what I'm working on now is is making this case work and then And then emitting an event out of the timer so these tests work We're literally work the way they're supposed to right now. They they fail You know unreliably because you know, it's just a race condition So yeah, and this is all in in service of getting a timer skill Three written timer skill out into the marketplace but until then You know we can't We can't be promoted until we can get The stable vk test which is kind of why I'm spending time with vk tests, right? But my understanding then is that but this is kind of a patch, right? We're gonna have to Make this more robust in the future well, I'm actually Trying to make it robust on that so Trying to make it so that it the race conditions are don't exist anymore Yeah, I'm trying to do it right instead of just patching what we have again So we'll see like I'm up with but But if this does work, it may mean another minor cord. This is not a one-line change It may mean we need to have another call at least for this story to work The the issue of pulse audio gives and Docker are pretty well documented but Part of it is not clearing out temporary directories between Runs, so there's some good information out there on the web for that Yeah, right. I've run across it in the prior like previous life. Yeah, cool Chris can we not include whatever requirements are needed to make this work in the timer step file like Rather than having to put it in the core It's gonna have to go to core eventually Should go eventually I could put it in the timer skill for now I'll just you know as an as a one-off, but I'm trying to code it to be a universally useful event waiter code. Yeah, well understood, but I mean that's what I did with wiki, right? I put the Feature of the function that rightfully belongs in vk tests in the step file for now And then later, you know, we can move them up to vk tests if so Yeah, we'll win later I that always drives me nuts because we'll never get around to fixing that Anyway, I Yeah, I don't want to try and solve solve things now I am I'm gonna See how I like have a poking because I feel like we must have done this many times before I feel like I have done this many times before so they must Yeah, but I'll Okay, yeah, I guess I'm just a little concerned that you know, I says we were just talking about you know redefining the audio The audio interfaces and tightening that up and making sure that that's a clear spec that will be consistent and how we want the skills to interact and all that That I just took a note for myself to make sure that we also have the mechanisms for testing that when it comes to That part of the project I don't know. I'm just concerned that Well, there's nothing nothing to be done about it like you've got to fix the test now and we're not gonna get to that for a while So, you know, I suspect something's gonna have to be redone anyway Yeah, I mean, I would love to add like a then condition that says yes the the beeping stopped but You know when we get to that point but for now Yeah, I think that would be a much more involved change than what I'm trying to do Okay, oh and I'll be on Instagram live tomorrow because Yeah Chris at air called me and said she wanted me to Be able to answer any questions about the latest release so and she also said that I'm bubbly so Take that for what you will So yeah, if you want to see my ugly mug on Instagram live tomorrow, I'll be there talking about the new release cool All right Any other good news to share? I don't know if it's good. I won't be at the meeting tomorrow. My daughter's doing the Friday night lights thing so I'll be supporting her and that But just tomorrow I'll be continuing working on this I'm gonna keep on the VK tests until we can get them to stable and Get the timer thing on the new timer stuff installed. All right Well, thanks, I think we better go before the dogs go crazy and Did you end up getting dogs or are you just babysitting other people's dogs? I've got four dogs No, Michael. Oh, I just have the one dog. Yeah, but you did get a dog dog. Yeah, yeah We got a baby sitting one and you're on the fence whether you're gonna get one or not Yeah, and we were not on the fence for more than a couple of days that that dog became ours very quickly Yeah, as soon as another we were fostering it and as soon as another Person showed interest in wanting to perhaps adopt the dog. We were like nope. We're doing it That's how dogs behave they'll take a bone and bury it in the backyard and forget about it But then when another dog comes within a mile they're willing to fight to the death for it I did want to mention I'm putting together the mark two that was sent to me and doing it slowly as I have time But I noticed and I don't know if this is a widespread issue or if it's just something that happened with my acrylics but Some of the holes aren't completely like I've had to use the screws and a screwdriver to pokes, you know acrylic holes the right way And you know pieces of acrylic are popping out of the hole. So I don't it didn't seem to be an issue the last time I did it Um, I don't know who's doing our laser cutting, but it's all the same batch of laser cut stuff. So that's weird. Yeah well, there were some uh concerns in one of the channels that Large enough to get like something through because it was a screw that was obstructing it. It's in the um I told I showed Derek, uh It's in the Yeah, uh It's in the the general room Okay. Yeah, I generally use the like philips head edge to like Um, just give all the holes a clean up Um, because it's kind of like left left some craft there But I haven't had any major issues other than just like you know a little bit of plasticky crap being in there No, in this case, I actually punched out entire cylinders of acrylic out of could have been all Um, and that was in some cases some cases there was just like a little craft left and I yeah, so Well, we should one of them we're probably not sending out anymore. So Well other than the ones for you know our team and stuff, but Yeah, I just I wanted to mention it. I know if it was even a big mean You know, it's not that hard to figure out the VA just you poke it through I don't have I if I could figure it out. I would hope anyone else can get to figure it out, but Worth no when you peel that feel film off. I expect all that stuff to just kind of fall out But because it wasn't cut all the way through. Yeah But yeah, no, it wasn't even a new new run-up laser cut parts. It was those were all done at the same time. So