Okay, so supporting audio on your embedded board. So basically how to actually get sound out of your custom design, right? So who am I? I'm Alexandre Belloni, I'm an embedded Linux developer at FreeElectrons. Nous sommes principalement focussé sur nos expériences sur les devices d'embêtement, surtout les armes. Nous sommes principalement spécialisés dans le développement en armes. Donc nous faisons le développement en consultant. Nous avons aussi des entraînements. Peut-être que vous avez déjà vu ça. Nous sommes vraiment focussé sur l'open source, et spécifiquement, le kernel Linux. Moi-même, je suis aussi un grand contributaire. Je suis la maintenance de l'article sub-system, donc dans le kernel. Donc l'article pour réel clock, rien à faire avec l'audio. Et je suis aussi en train de maintenir le support kernel pour les armes processeurs. Donc quelque chose qui est 80, 91, quelque chose, ou quelque chose d'a5, d3, d2, d4, d'exemple. Donc ASOC, peut-être que vous avez attendu la dernière présentation ce matin. Donc sur votre bord, vous avez quelque chose comme ça. Évidemment, je ne parlerai pas de tous les cas, mais ils sont assez similaires. Donc, nous allons parler de ça. Donc vous avez votre ASOC. Et cet ASOC a plusieurs interfaces qui connectent à un codec particulier. La première sera l'interface de l'audio digital. C'est généralement un port serial, ou parfois c'est un interface synchroniste serial. Et puis vous avez aussi une façon de configurer votre codec. Donc généralement, vous avez ça sur i2c ou spi. C'est un simple bus serial, aussi. Et enfin, votre codec va either output un audio analog à un amplifier, ou peut-être directement à un connecteur, selon ce que vous faites avec ça. Donc comme je l'ai dit, la configuration de codec s'occupe sur cette bus i2c ou spi. Vous pouvez trouver d'autres... Je vais parler d'autres. Par exemple, vous avez quelques ASOC qui a un connecteur à l'inside de l'ASOC. Donc évidemment, ce n'est pas connecté sur l'i2c ou spi. C'est directement connecté sur les bus armes, par exemple. Et donc vous accesserez ceux avec MMIOs en utilisant un access serial. Donc l'ASOC, comme je l'ai dit, s'appelle parfois le synchronisation serial interface. Les formats que vous verrez sont les AC-97, ou l'I2S, ou des PCM, ou des TDM, donc la division de temps, ou des modes de network, et vous avez aussi des modes qui sont appelés DSPA ou DSPB. Je pense que c'est seulement en TI. Je ne sais pas si vous le voyez, mais je pense que c'est seulement en TI. Donc quelques exemples pour ces interfaces. Par exemple, l'ASOC, donc la synchronisation serial, je ne sais pas... NXP, SSI, ou TI, MC, ASP, ou ce genre d'interfaces. C'est assez utile, c'est juste une interface audio. Vous avez aussi des SOCs qui vont avoir un contrôle SPDIF, donc celui-ci va mettre la interface Sony Phillips digital. Donc ça peut être séparé, ça ne peut pas être séparé selon votre SOC. Les amplifiers que je vous montre sont en fait optionnels, mais vous pouvez le voir, c'est plus important. ASOC, c'est ASA pour système en chip. C'est donc un design pour donner un meilleur moyen d'intégrer les drivers. Donc, en fait, pour avoir un driver pour votre codec, pour chaque SOC que vous voulez supporter pour votre codec, vous pourrez avoir un driver pour votre codec et un driver pour chaque SOC, et vous pourrez pouvoir connecter votre codec avec votre SOC ou votre SOC avec votre codec. Donc, vous avez deux différents API, vous avez un API pour le codec des drivers, et vous avez aussi un API pour les drivers d'interfaces. Et c'est... Donc, vous avez les drivers de codec, et pour votre codec, vous avez les drivers de plateformes pour votre interface ASOC audio. Et puis, vous voulez quelque chose d'autre, vous avez aussi besoin d'un dernier driver, qui s'appelle le driver de machine, le driver de fabrique, le driver de glu. Et ce driver va être connecté à votre driver ASOC avec votre driver codec. Parce que vous voulez dire que vous avez ce particular SOC, vous avez ce particular codec, et ce sera votre soncard audio. Donc, vous vous décriverez que nous sommes connectés, et généralement, si vous avez choisi les propres composants, vous devez juste avoir to write ce codec. Vous devez avoir to write le driver de codec ou le driver ASOC. Ce particular driver de glu. Vous devez aussi voir que le codec ne peut pas être un codec standalone. Il peut aussi être une partie d'un autre IC. C'est ce que vous voyez pour la chip Bluetooth. Quand vous voulez mettre l'audio sur Bluetooth, parfois vous devez avoir un codec sur la chip modem. Et ce genre de choses. Donc, le driver de machine c'est une chose qu'on veut faire et c'est de régister une structure, et cette structure est un SOC donc, elle va créer un codec audio. Et évidemment, la structure est vraiment grande. Elle est définie et inclure un codec audio.h Pour le régister vous devez utiliser un codec audio. C'est un codec audio.h On va utiliser une interface de Devm donc, vous devez utiliser un codec audio.h Vous devez régister et vous ne vous devez pas régister. Donc, cette structure ressemble à ça. Elle contient quelques noms. Elle contient aussi un système de structure parce que c'est un système de structure et surtout, elle contient deux différents listes. Donc, elle contient les links d'AI. Et ces links c'est en fait un liste de links qui vont linker votre SOC avec votre codec. Donc, on va avoir un look à cette. Donc, c'est le link d'AI.h et cette elle contient aussi un nom aussi un nom de stream et j'ai regardé les commentaires parce que ces commentaires sont vraiment importants. Donc, vous avez plusieurs manières de définir quel SOC vous devez utiliser et quel codec vous devez utiliser et vous ne ne pouvez pas utiliser plusieurs manières spécifiant ce SOC en même temps. Donc, ces commentaires sont vraiment importants. Donc, vous devez spécifier votre site de CPU, donc le site de SOC seulement par le nom de device ou par le nom de la deviserie mais vous ne pouvez pas faire les deux. Donc, vous devez utiliser ce nom de CPU ou le nom de CPU et vous devez spécifier le nom d'AI de votre CPU d'AI par l'interface, vous devez avoir plusieurs portes, par exemple, donc vous devez sélectionner le propre port sur lequel votre codec est connecté. Donc, euh... Ouais, donc, basiquement les commentaires et c'est toujours bon. C'est le même chose, donc un peu plus tard dans cette structure vous devez trouver le nom de codec ou le nom de codec ou vous pouvez aussi spécifier le nom de codec d'AI qui est le complet nom pour votre codec. Donc, de nouveau, vous devez choisir l'un ou l'autre mais pas les deux. Finalement, vous avez aussi la plateforme PCM ou DMA driver, donc basiquement il y a une autre partie de votre SOC qui va copier l'audio data de la mémoire d'AI interface, et votre interface d'AI va mettre l'audio data sur le bus mais vous devez sélectionner votre plateforme nom de votre plateforme interface. Donc, j'ai un exemple, j'ai pris celui-là parce que c'est en fait un driver qui est assez simple de lire parce que il ne fait pas trop de fantaisies donc, let's have a look at what's what it's doing. So, basically what we want there is to have WM 8904 connect connected on an atmel board, because it will work on any atmel board, almost any atmel board, because basically the atmel SSC didn't change between SOCs. So, it will basically work on any atmel board if you use Wolfson 8904 obviously. So, how do you select that? So, it will create that soundsoc dAI link it gives it a name, a stream name, and then you will use a codec dAI name which is that one and that one is coming from the codec. The codec driver is registering itself then you will actually see that it's using that name, that particular name. So, quite simple to say ok, I want to use WM8904 codec and it actually has that dAI name. Then you can select a particular format so I will talk about that a bit more later so basically you just say ok, I want to use that codec and that codec is on that interface and I will use I2S so that's the one, so you will use I2S NBNF is basically just how your signal phases are done so usually you will use NBNF but if you have some particular cases you may change that and then finally you have NFM which says which part of it is the slave and which part of it is the master I will talk about that a bit later you will also register some operations and again I will talk about that later right so finally you really want to register one soundsock card and that soundsock card is created like that so you give it a name so basically we just say asoc that is using asoc and that particular codec and we are using that dailink which is just a structure I defined before we can also register some widgets and I will talk about those a bit later but basically they will define what connectors are available on your sound card right so a bit later so we want to actually register that sound card and how do we get it so we use a function that is called init and it's actually called from prob a bit later I guess I have it somewhere so that's the prob function on that driver we just call the dt let me get it somewhere oh I don't have it yeah it's calling the dt init right so the dt init what it's doing it's just basically parsing the device tree and when parsing the device tree it will actually try to find what ssccontroller are you actually trying to use on which ssccontroller your codec is connected so we parse that property so the atmail ssccontroller and from that we actually get a pointer to the node of our socdai right so that's the soc part there the same there we want also to get the codec part so we get the atmail audio codec and when we parse that property we just get a node pointer to the codec device tree node so once we get both node pointers and we can continue and fill the link and that's what is happening there right and because both of those are filled now we can register that dai link using the sound card if you have any question at some point just shout finally we we get the the sscid which is something completely atmail specific but so I will not talk more about that and the final step is to actually register that card so we filled the structure and those structures are describing how things are connected on the board or at least how we want the codec we want the soc to talk to the codec so after linking your codec driver with your soc driver you still have to define what are the codec outputs or inputs that you want to use because your codec may have I don't know 3 or 4 analog outputs and maybe you only connected one of those on your board so you just have to say oh on my board I have that particular codec output that is actually connected to something so you want to use the roots for that so you just you have two ways of doing it so you can use the DAPM roots inside a strict sound card son soc card but usually what you can do is just use a son soc or fpar audio routing and give it your property name and that will just under standard device tree properties that will define roots for you so let's have a look at how it's done so there I have an example statically basically you have an array of strict sound soc DAPM roots and that array will define ok I have that input on my codec and I will want to connect that input on this output on this input on my board and for example you may have I guess those outputs from your codec and they are connected on those outputs from your board and it's simple you just register them like that so basically you have a pointer to your array and then you can use array size for example or if you want you can just put a number but array size a bit cleaner so just to say ok I have that number of different roots on my board so the device tree how to do it with device tree it's kind of simpler at some point in DT init you just use sound soc or if pass out your routing like I was saying you give it the property name that you are using for those roots and how does that look like in your device tree it's actually well documented so if you have a look at the device tree binding for the Atmel WM8904 you will get all the different pins from your codec that you can use and actually all the pins from your board that you can also use and then it's a simple matter of giving a list of pairs of strings to that property so basically a bit the same as before the codec out so HP out is actually going to the headphone jack the line in jack from your board is going to the intu L and intu R input of your codec right so how to define or how to find your codec pins you will have to if it's not documented like I just showed you will have to actually find it in your codec driver for soundsock DAPM input and soundsock DAPM output and you will find the name that you can actually use unfortunately I don't think there is any way to actually know which actual input and output from your codec are used until you can read the code and actually see in the data sheet what is done in the driver but so have a look for those two kind of definitions and you will find all your inputs and all your outputs hopefully the writer of your driver will use names that you can relate with your data sheet so the board connectors how do you define them so they are part of your board so they will actually live in your machine driver and so you will have to define them so you just define a strict soundsock DAPM widgets and it's actually part of the registered soundsock card I guess I have it just before so there it's part of your soundsock card so just the same as before you just create an array of structure and you just register it inside your soundsock card so you will just give names so you have outputs so headphone outputs microphone input and line input so clocking so now we defined all the roots we defined how your codec and your SOC are connected and one huge part of audio is actually getting the correct clocks to or from your codec Dépendant WSMProtent Dépendant les caractéristiques audio data ou le sound que tu es tentant de jouer ou que tu es tentant de récorder tu vas avoir d'adjuster les clocs par exemple tu ne peux pas utiliser les clocs pour quelque chose qui est à 44 1100 kHz et je pense que c'est à 48 kHz c'est pas le même cloc donc tu vas avoir les caractéristiques de ton audio donc les températures et les dévots sont les facteurs les plus importants et c'est l'un des parts les plus difficiles d'éteindre ton driver donc on va essayer d'éteindre ça donc par exemple tu as un exemple avec i2s donc quand tu utilises i2s tu usually as quelque chose comme ça donc tu as ton codec sur l'arrière ce codec va prendre un cloc master le cloc master ne peut pas venir de ton SOC il peut venir de un cristal mais juste savoir que ton codec va en need 1h00 pour pouvoir travailler un codec va peut-être déderir mclk c'est aussi parfois appelé cclk de bclk donc bclk c'est partie de l'interface audio et bclk c'est le cloc de bit donc sur chaque cloc de bclk tu vas avoir 1 bit qui sera transférée sur les pins donc tu as 2 pins de data tu as data in, data out c'est souvent appelé comme ça mais de taie c'est souvent appelé transmite et recil donc le transmite va être data in et le recil va venir de data out et puis tu as un dernier cloc c'est wclk c'est aussi appelé lrclk pour le cloc de la droite ou aussi tu peux trouver fsclk c'est en fait le frame rate de tes audio samples oui et ce que je veux montrer c'est que tu peux faire les clocs pour tous tes clocs ou tu peux trouver les clocs pour les clocs donc c'est important de savoir parce que le cloc de la droite c'est le master et je sais que c'est normal mais les SOCs n'ont pas toutes les séances pour les clocs de la droite donc et généralement tu veux être le master de cloc c'est pas toujours le cas mais généralement tu veux être le master de cloc la dernière note donc si tu regardes ce diagramme tu verras c'est un exemple c'est un exemple c'est pas toujours le cas mais c'est généralement le cas et donc tu as la droite de la droite donc quand c'est down tu transmites la droite et quand c'est up tu transmites la droite c'est un exemple c'est normal c'est ça parfois WCLK est juste une étape pour tous les canaux donc c'est ce que j'ai dit je n'ai pas oublié la relation finale entre BCLK et WCLK donc ton cloc de la droite est votre cloc de la droite donc si tu es en mono c'est 1, si tu es en stereo c'est 2 et puis c'est un peu de faim c'est juste la taille de ta sample donc c'est peut-être 16 ou 32 ou même plus grand si tu as le nécessaire hardware donc comme je l'ai dit WCLK est aussi parfois refert comme Fs et BCLK ou MCLK c'est généralement un multiple de Fs ce n'est pas toujours le cas donc comment tu définis quel est le master et quel est le slave comme je l'ai dit c'est partie de ton link donc c'est ce que j'ai dit juste avant et c'est la partie qui dit ok, ceci est codec bit master et codec frame master il y a 4 different ways of doing it so you can say that your codec is master for the bit clock but you want your SOC to be master for the frame clock for example I guess it's a really unusual configuration but it's something that you can do so finally just before I said that you could also register some operations so it's just basically a structure a few function pointers and those function pointers there is one that is really important it's actually called hwparams and that's I guess the most important one and that's the one that will allow you to dynamically change your clocks so hwparams is actually called each time you are trying to play a new stream and in that callback you can actually are able to get the parameters from your streams so that's important you can use so params rate params channels and params formats to get the sample rate the number of channels and the format of it inside the format you actually have the bit depth so with those parameters you can actually but sometimes you really want to have bclk but sometimes your codec will actually want multiple of the frame rate so you don't have to actually compute bclk you just have to know the number of channels and the sample rate itself if you want to compute bclk you can also use that function so sandsack params to bclk that will just give you the bclk rate for that particular stream so I have an example just after what I guess there so basically that one is just saying ok I want to set my pll for my codec at 256 times the rate of my stream because the codec wants that so each time you get a new stream that is played you will get new params and you will get those params and actually say ok I want to set the plls to 256 times the rate of your stream so you have two functions too you have three functions I think to actually set the clock speed, clock rate for both your codec and your SOC depending on which one is master and sometimes you actually need to set both we'll see that so you can use the most common one that is used is sandsackdai and that one should be used and that one should actually give you the proper result but sometimes it's not always easy to know which actual dividers you want to use or which actual pll you want to use from the driver so maybe the driver is not able to do that so you actually have two other functions that will allow you to specify a specific divider and some specific plls for the codecs or the SOC so that will take different parameters so the DAI is simply the DAI from either your codec or your SOC then you have clock ID so CLK ID that one is a bit complicated to to use because it actually is implementation specific so that one will actually depend on your SOC or on your codec so usually you will see that people are using 0 but sometimes the codec is able to derive its own clock from inputs and then you will have to use something that is dependent on your codec and you will actually have to read the codec driver to know which one you have to use then you have the frequency itself and you have the direction so the direction is basically saying ok I want my clock to come from the codec or to come from the SOC so that one so there we set the PLL for the codec and then we actually want to set the CCLK for the codec afterwards and we say ok that one is soundsock clock in so the clock is coming from the SOC finally you see that HW param callback is just filled that way and that structure was actually part of I guess I have it somewhere it was actually part of my DAI link which is just before I guess oh I can't find it it was part of my DAI link that structure that I just filled yeah so finally you may not need to know all that you may not need to do that because if your design is let's say common enough or simple enough but you will have a driver that is called simple card it's also called simple audio card depending on where you are looking at in the code it's referred to as simple card and in the device tree it's a simple audio card so that driver will actually allow you to specify directly the connection between your SOC and your codec and do that configuration so instead of writing code you will just have to write a device tree which is good so it looks like that so it's fairly well documented because it's a binding so it's correctly documented you will be able to pass so I square S or left justify, right justify or DSP you will specify which side of your sound card is actually the clock master so the bit clock master the frame master so on that side it's actually the codec because we can find it there finally you have the audio card widgets so those are then you can do your routing just like we saw before right and then you can define two sub nodes and one sub node will be the CPU side so the SOC side and the other one will be the codec side and you just basically with that it's just basically doing everything I've been showing to you so you may not need a line of code just by writing that device tree it may not fit your particular use case so that's why we still have some machine drivers depending on what you are doing so like I was saying there was an amplifier on my first diagram how do you support that it actually depends on what you want to do but if you want to really integrate it well with ALZA you are able to register a strict that is a strict ox dev and it's actually an array of structures and you will be able to pass multiple different codecs there and all those codecs will expose their widgets, their control widgets as controls from your sound card so your amplifier will be part of your sound card using that so you can do with the simple card binding so that's good so obviously you wrote a bunch of code and it's not working so how do you troubleshoot that so if you don't have any sound afterwards you have multiple cases so maybe you have some sound your audio seems to be playing it's actually playing for the correct duration it's important you know that your clocks are somewhat right and the usual mistake there is just that you have to unmute master but usually it's fine it's unmuted but usually what you will see is that your codec may have some controls and for example it will have a control for the HP out and that one may be muted so you will want to unmute it and obviously you will also want to turn up the volume for that control you will also want to check what are the mixing and mixing capabilities of your codec and actually control those from other mixer for example because some codecs are able to say I can take input 1 and put it on output 3 for example and you could also take input 1 and output it on output 2 and you actually want to be that set to the correct output so that's something you also want to check the amplifier configuration because basically at some point I had everything working but I didn't add the amplifier in my sound card so but it was off basically I didn't have audio because my amplifier wasn't working and you also want to check the routing that's also something maybe you thought that out1 was your HP jack but it's actually your amplifier output or something like that so maybe you mixed something there so you have another case where you don't have any sound but it's actually seem stuck so you wait for 10 minutes and you still don't have anything what do you have to do there it's probably an issue with the clocks meaning that either your codec is not sending a clock to your SOC or your clock is not finding that it actually has to send some data on the bus or something like that so usually what you want to do first is to check your pin waxing and then you will want to also check how you configure the clock direction because if you put clock direction as both inputs you will not have any clocks on there you will want to check the master slave configuration too because if for example you say oh ok my codec will be the master and then you don't configure it to actually output any clock then your SOCDAI will not know when to send any data on the bus so that's also a usual issue so the best things to do is to actually check that you have clocks using an oscilloscope for example that's the best thing to do and then again check again your pin waxing it's always the pin waxing so check again right and also know that some SOCs will actually have more waxing than that so some SOCs will actually will actually be able to test one serial port to one audio bus or that kind of thing it's specifically the case for NXP so that's something you have to configure it's quite SOC specific so I will not talk about that too much but that's also something that you actually want to check right so you may also find that kind of error so it doesn't say much but basically when you have write error and that that one is coming from one of your driver so it may come from your machine driver but I really doubt that it may come from your SOC driver or from your codec driver so usually it will be caused by an issue with routing because at some point your codec will not find a route or something like that maybe you are trying to use a route or you are trying to use an input or an output that doesn't exist on your codec so that's usually what's happening there also check that the codec driver actually exposes a stream name playback because when you are trying to play audio the first stream that is use this playback if you don't have that basically you will not have any audio out and I actually had the issue with some mainline drivers for codecs they didn't have any playback stream one good tool to actually see what's happening with the routes and if everything is connected everything is connected correctly is this Dappem so it's a simple script that you can run on your target on it's actually meant to be run on PC but you can actually get it to run on your target and generate the graphics on your PC it's quite simple it's using gravvis to actually say ok when you were playing your audio stream all those routes were connected and then it will stop somewhere and that's where you will have to check so it's quite nice it's showing everything that is activated in green everything that is not activated in red it's quite easy to know what's wrong there so finally you may find something like that so some overruns and underruns it's usually caused by a BCLK that is not precise enough so that usually is happening when you are using your SOC as the clock master so we add that you may not care about it depending on what is your application but it may generate unpleasant sounds so you may want to actually switch to use your codec as a master you may not be able to do that depending on your hardware but usually it's always better to use the codec as a master again so if you want to go further and it's still not working you probably want to have a look at the CPU, DI, driver and also the SOC driver and also the codec driver in particular you will want to have a look at CELK ADV and CELK because that's where the clocks are actually set up on your SOC so that's a bit more complicated but it's still doable so basically you take the data sheet from your SOC yeah so most important functions to look at are those and then you can also have a look at HW params and set the AI FMT because they will do some mixing if your SOC is capable of that so you may also have an issue there for the codec callbacks you want to have a look at set a CCL key and in particular like I was saying the CLK ID parameter is actually codec specific so you will want to know what it's actually doing with it so maybe it will select a particular clock input or maybe it will be doing something else but it's that's where you will know also remember that using your codec as a slave like I was saying it's usually best to use it as master and it's even worse because sometimes it's not even tested but maybe the driver is not meant to be used with a codec as a slave and sometimes it leads to some crashes or that kind of things so remember that using the codec as a slave is quite uncommon so you may have trouble with that if you want to do that when in doubt and you don't know what configuration you got what is the final configuration of your codec or of your amplifier for example devmem or i2c yet so basically what those tools allow you to do is just to read directly the registers so you will know when playing for example you start playing a stream and when playing you will just have a look at okay how does my codec how does my driver configure my codec for example and that's usually really useful you may also be able to actually write there so with devmem it's also possible and with i2c set that's usually what I'm doing when developing a codec driver basically you just start your stream with a play something and then you do i2c set until you find the correct configuration and then yeah at least you have a feedback direct feedback you don't have to compile anything so it's quite convenient to do that let's not try random configuration but that's something you can do oh I have 2 times the same slide so references documentation sounds so most of it will just explain what I just explained it also has a good documentation for how to avoid those click sounds or plop sounds when starting a stream or something like that and if you want to know more about the common interfaces that you will find you have a good documentation on the analog website and finally the I2S specifications that I use for that particular talk you will not be able to find it on the website from Philips and it's not on the website from NXP either so yeah archive.org is where you will be able to find it it's quite simple if you have any question I think I have 10 minutes something yeah so I've been recently trying to get a board working where we had 2 codecs connected to the same dialing so ADC and DAC simultaneously and I tried to use a simple card which doesn't support that and there were some patches on the mailing list which didn't get merged and nobody commented on them so I wonder is this out of scope for a simple card and I'll be better off writing my own driver or other plans to extend that someday in that case I will just write my own driver but I guess Mark may be able to comment on why it was not taken if there are no comments did somebody actually send the patches to me cause that's usually the reason why things get no comments okay yeah if it wasn't in my inbox that's probably why it didn't get comments was it too to 2 dies going to one codec yeah it's probably out of scope write your own driver another question oh ok so you were talking about the routing earlier between the codecs basically your card and the widgets defined in your card and setting up the routing yeah is there any incentive to do that except being shiny because it will work if you don't do any kind of routing actually yeah it works ok like Lars said in his talk it's part of trying to standardize the output names so that your application will be able to find its way without being dependent on a particular codec or a particular SOC I think if you set the card to fully routed then if you have no routes the card doesn't come up yeah if you set it to fully routed and you don't have any routes you will not expose anything so don't set it to fully routed yeah always set it right it's about troubleshooting I have a weird problem if you have any idea my left and right channel are overlapping it happens only in a short period which produces a cracky noise which is the best place to look for that pack it happens only on higher sample rates which means 41 kHz and 48 kHz yeah cracky noise I'm usually not investigating those much but it's usually caused by DAPM so maybe Mark you have some comments there your clocking is probably wrong the codec master clock is not synchronized with the audio bus clocks I guess I could see what's used in this case so that should make a difference but there's probably an M clock into the codec which there's usually a requirement that all the clocks in the codec including the audio bus clocks be from a single route clock source if there's a slight drift then that sounds like what happens when that goes wrong just comment about you use itc get and set to debug things you may want to have a look at the rec map rp which exposes the registers and debug fs which is quite useful yeah indeed so thank you


Volunteer St. Lucia is joining Volunteers worldwide and embracing the special initiatives project, aimed at fostering community engagement and improving the lives of others. In recognition of Reading Month and under the theme doing good, leaving no one behind, Volunteer St. Lucia has launched the BookSwap Party initiative. The concept welcomes students to freely walk into the library and exchange books they're old for new. Volunteer St. Lucia lead Justine St. Croix says that the objectives of the initiative is to promote how book swapping is easy, cost-efficient and contributes to saving the planet by supporting the movement and recycling of books.   We offer them cheats based on the number of books they come with. They can come up with as many as three books. Some are coming with more, we are allowing it. And we give them the cheats where they can walk around, if you look at the room, they can walk around and they can select their books from the different sections. We have for tiny thoughts, we have for the intermediates, we have the juvenile, and the parents of course ask us to cater for them. So we also have an adult section and we also have an educational section which are bringing in books that the children never use which will be of benefit to the younger ones coming. Volunteer St. Lucia is looking forward to expanding the initiative to all libraries island wide and collaborating with schools in the district. All books are welcomed and the initiative is not exclusive to students only but anyone willing to hand over books that are not in use. Volunteer St. Lucia, the volunteers coming, they give off their time to be here where they can register the students and walk them through the process and assist them with selection of their books. The Central Library is the pilot. After this we are moving on to the other 16 libraries island wide so the next libraries we will be going to is the Miko library and the Moshi public library. The National Volunteer Program is primarily a youth-led volunteer program dedicated to expanding opportunities for all citizens. The program is under the patron Her Excellency Dame Pellet-Louise which supports the creative industries and culture department within the Ministry of Tourism, Investment, Creative Industries, Culture and Information. From the Communications Unit of the Ministry of Education, Sustainable Development, Innovation, Science, Technology and Vocational Training I am Daniel Dubois reporting.


I will be talking about research I did for my master thesis, yeah, about camels. And also camels are, as you all know, not indigenous to Europe, there's a surprising large amount of camel finds from the Roman Empire in central Europe and Iberia. They start from the 1st century AD to the 4th century AD, and as I use toothed animal for my study, it is important to know that there are 14 sites with teeth, including basal, which isn't indicated on this map because the tooth was only found last year. There are both species present, so we have dromedaries, we have bactrian camels, and we have also some indication of a hybrid camel from Turkey. But in most of the cases the species is unknown because different species identification on camels is very difficult when you only have osteological methods. Now what were these camels used for? There has been a little bit of research and of course they were used as beasts of burden in both trade and military contexts. They could also have been used in agriculture as we have depictions of camels that were harnessed to plows, for example from a Roman tombstone from Girsá, from Libya. We also have written evidence that they played a role in the Ludi, the Roman games, they were used in camel fights and camel races, and of course also camel products were used, their hair was used to create textiles, and also we have some written evidence that their meat and their milk was consumed occasionally. Now the overall goals of the study were very generally to investigate camel husbandry in the Roman Empire, and to do this we wanted to reconstruct their life history and their mobility pattern from a couple of camels that were found at these Roman sites in central Europe, and with our study also test how we can use carbon and oxygen to get an idea about mobility of these animals. As we have heard, when we are using toothed animal we get information about the early years of the camel's life. This is a chart that shows a rough estimation which time periods the different teeth represent. I didn't sample deciduous teeth but only permanent teeth, and these are the estimations based on tooth eruption times that we came up with, and then we use the variation in the water to infer differences in the climate, and as camels obtain most of the water from the plants they eat, I have here a picture of the global mean delta oxygen 18 values of leaf water, and we can already see that there is a decent amount of variation even on this global scale with much higher values in northern Africa than in central Asia, and of course the lowest values in central Europe. And these are the distributions of the two camel species that are quite distinct, so we probably can also not only see where the camels come from but maybe also get an indication about what camel species this could be. Okay, so the material I used comes from this area indicated in the right corner from central Europe. We had four individuals from four sites, the first of which is Innsport-Milton settlement from the second to third century AD, and we had the third molar and the fourth premolar. Then we have a dromedary from Luxembourg, from Maméa de Troche, from the third century AD. Here we had all three molars present from the mandible, and another camel dromedary from the first half of the fourth century AD from Tongeren in nowadays Belgium, and the fourth one is from the second half of the third century AD. Yeah, species couldn't be identified there either, and it's from here in Germany. All four of them were adult individuals, no cat marks were present on the bone, and all in all I took 73 samples along the tooth crowns. The reference material I used to get a sense of different kinds of habitats are indicated on this map, and they span a large area. The sites indicated in bold letters are sites where I analyzed reference material from. The other ones I used published later in the literature. Now the research questions I wanted to address with the study was, first of all, if I can find out roughly the area where the camels originated from, and to see if the camels were all imported to Europe or if they were even bred there, because this was suggested in the literature based on some finds of juvenile camel bones in Tanaïs on the Black Sea shore. Yeah, and also I wanted to see if all the individuals show a similar mobility pattern or if they all behave completely differently, and in hindsight also check if I can use my data as an additional proxy for species identification. Yeah, I took introduced serial samples along the tooth crown axis and to obtain a continuous record, and then used the data to see any shifts in the habitat. Now this is the reference data, the mean with plus minus one sigma. On the x-axis we have the carbon-13, and on the y-axis we have the oxygen-18, and we see central Europe clearly has the lowest oxygen and carbon values, with an increase towards north African Arabia, which has the highest values, which is the driest and most warm habitat. Now where do our camels now come from? These are the M1s from three of the camels. Yeah, Mamé Bertrand shows a clear association to like north African habitats. In this case it aligns with Chad. Then we have Tria, which has lower values and probably this doesn't originate from north Africa, but more like near to Middle Eastern area, and then Tongaren is the one, the camel that was most close to Europe, but probably not originated from central Europe, but more like outside of Europe, probably the Mediterranean area. But as you can see we have kind of a gap of the reference material there, so we can't really say with confidence where this camel came from. Now I want to talk a bit about the similar multi-migration or mobility pattern of the camel from Mamé Bertrand and Tria. They both show a continuous approximation throughout the lifetime from very warm and dry habitats towards central European values with Mamé Bertrand's originating from north Africa and yeah the journey of the camel from Tria probably starts in the near or middle east. Interestingly we can link both of them with a specific military unit, the Ligio 8 Augusta. This unit was present and active in the Middle East in the third century AD and we have some written evidence, we have some inscriptions from both Tria and Mamé that proves that this military unit was also present at these two sites where the camels were found in the third century AD, so probably they were picked up by this military unit and then took back to central Europe sometime after they were five years old. To complete the picture I also added the other two camels. The things are a bit more complicated here, we don't really see any shifts in diet between C3 and C4 plants for the camel from Tonga then but we see quite a large variation of the oxygen values which could mean that it moved from a warmer habitat towards a more temperate one between the ages of four to five years. The camel from Innsbruck Milton, it doesn't show a large variation of either the oxygen or the carbon values. They are very stable and we also don't see any sign of seasonal variation of the oxygen values which could indicate that it moved in a way that avoided this high, just avoided seasonal temperature variation. So to conclude we didn't find any real evidence that camels were bred at any of these four sites or in central Europe. They originated from different sites so there also was in one place where all the camels originated from and were brought to Europe. We could find a similar mobility pattern of the camels from Maméa Bertrand and Trier and link them to a military unit and we also saw that we can probably use it as an additional proxy for species identification as now we can see that the individual from Trier most likely is a dromedary as it's from the near to middle east. And yeah, we have quite a decent amount of variation and can get quite a lot of information about right life history and mobility of these individuals. Whoops, I would like to thank my collaborators and also the funding body, the Sankenberg Institute and thank you for your attention.


Hey, what's up, Moe? What was that? Moe? Moe! That was you that was making your phone say that we're maximum 3, max 11, or something like that. What's up, Moe? Hey, not much, man. Sorry I've been in Sabato for so long. Just been trying to grind some deals out. Well, now you see, Moe, you come back and now you got 55 people on a Tuesday call. Woo! Congrats. We're smoking, baby. We're smoking. Hey, I have something I'm working on and I wanted to get your thoughts on it. I've been introduced to, or I'm going to be introduced to a contracting officer for the Department of State. And I want to know how to handle that introduction and how to stay politically correct in a sense, where I don't shoot myself in the foot. So tell me what's the, I guess, some background that you can publicly share. So the background is a friend of mine has been circulating my work with the federal government and winning government contracts and so forth. And she has a friend that is a procurement specialist overseas and she tried to connect us and we connected. We talked a little bit. We got some background information. And then she said, you know, there's somebody else that can possibly help us in terms of advising and pointing us in the right direction. And they're looking to make that introduction probably between the end of this week. But what is it that you want from them? It's like, basically I'm looking for any type of advice that they could share without kind of put themself in jeopardy or put us in jeopardy in terms of. I guess, are you looking at overseas contracts? I guess it's more of my question. I'm looking at contracts wherever they are, even at March. You know what, that's a good one. I like it, though. Yeah, I know. I mean, one of my contracts right now, I shipped to six different countries in the Pacific. Yeah, I know. But it was sort of elated, Mo. Come on. It was educational materials. Well, you know, the government, you've got to be able to do work anywhere, right? If you're working with the federal government? I agree. I agree. Well, I guess for me, one of the questions, I guess, that's never a bad question is what kind of challenges they're facing that they need help with. I can tell you, and again, speaking even today with one of my podcast guests, who's Alaska Native Corporation, before we close out, I asked her, I go, what do you need help with? And she opened up to me and she told me what she needed help with. And so one of the things that I can tell you, and Justin Harris, you may be able to give some insight, because Justin Harris, his aunt is a contracting officer. And I know we met with her before. And what I did in the conversation, Justin, I don't know if you remember, we talked about where are some of the areas where they had challenges at with companies and contracts and things like that. Justin, do you remember the conversation? Talking about with Christian? Yeah. Yeah, so yeah, it was pretty much we tried to find the problem areas of insider agencies to see if we could pull somebody else from GoCon to be back to help solve that.   Are there any type of repetitive issues that are occurring that you wish would solve? Is there anything itched that needs to be scratched, any voids or gaps that need to be fulfilled? And then just let them talk and listen. And then you listen for things that which you think you can help solve. And what I learned was not to over talk and not to put all you, I do this, I do that, more so trying to figure out what they need help with. Yeah, I don't ever go in trying to tell people whatever stuff that I do. I ask them the kind of stuff they need.  We don't need that. That's my- Exactly. And I learned that from one of your podcasts also. I think the doctor from, forgot what, I think she does on one of your podcasts, the woman from Florida. Okay. What's up, Kate? What does she do? Tell me her, you know her industry? Pharmaceutical consulting. Oh yeah, yeah, deep. No, that's not deep. Kate or Caddy? Cat? Cat? Cat? No. Marisa's trying to- Beverly Kay Kendo. Yeah, Beverly. Yes, anyway, remember that scenario that she asked the contracting officer, you know, how can I help you? And he said he had a laboratory. He's trying to move for months and he couldn't get it moves. Right. I definitely have those type of, you know, questions in my pitch. And again, you know, keep it very general. Don't pigeonhole myself. So yeah, definitely. Yeah, I mean, I think, and by the way, Mo, thank you for asking that because that's great for everyone out here listening. And right in my new book, Maria, someone gave a feedback that said, what are things that Eric doesn't like people to say? And it's like, hey, I'm a small business. I could do it all. That is the worst thing that anyone could say to the government agents, right? Is that I'm a small business. I'm a woman-owned. I'm an A&A. I'm a hub zone. I'm a minority-owned, blah, blah, blah. I could do everything. That's just the worst thing to do. But I will say, Mo, not just in that podcast, but we were at the Hub Zone National Council and I was having lunch or dinner with a lady who said to me that she had broken into this agency exactly what she just said, Mo. She did things that were not related to her business at first just to help them until they finally came out with something that matched her skill set. And so she just referred people. And that's a lot like what Maria does now. Maria is just a facilitator. She's helping, she's being a resource specialist to the government agencies, not just to us. I gotta get on a one-on-one with Maria. You do. You do. Maria, why don't you tell us the story what happened today? What did you say to the guy? I think it's a great example for people to learn because she even surprised me. And you know, that's hard to do. So I went to a walk-through slash site visit of it's something that came across Eric from like an old, old contact.  I don't know if it's even worth our time. Because all he was told to us is we're moving furniture. It was one of my old contact and officer buddy. So I met with a guy today and he was telling me how this is just one project. It was a lot of stuff by the way. But he goes, yeah, I'm like, it's interesting because the first time I went to a site visit was this office they was in Marathon and I thought I was lost. So he started asking me, did you do anything over there? And I'm like, actually we were, I do construction. So no, we didn't get a lot of stuff over there. So then afterwards he kept asking like, he's like, there's a lot of stuff to do over there but we just can't figure out like it's hard to find if something's wrong with the roof, I have to go get a roofer. And then I have to get it through the process. So I go, why don't you guys do a BPA and just assign task order? He's like, huh, that's a very good idea. That's true. Because if we get a BPA and just if I need a roofer you're gonna go find it for me. And I'm like, that's basically, and then I'm like, yeah. And if you can't do a BPA, because it's like BPA, it's a little bit complicated. I'm like, just get an A&A company and still source it out. I'm like, that's exactly what I do with the Coast Guard. He has all these little contracts that are not big enough, but they're small enough. And I have done everywhere from carpet to tile to repairing a ram to doing an ADA door. But if everything he needs, he just has to call me. I'll find the person and we just soul source it out to an ADA company. But I'm the one that's doing the actual work. I'm the project manager. I'll find the stuff, everything's through me. So it's funny cause I was gonna show you guys the text message. Cause right when I left, he texted me cause I gave him my business card. So he, I guess he goes, hi Maria. It was nice to meet you today. I'm like, likewise. Thank you for taking the time to talk to me. I will follow about the possibility to do the GC stuff at Marathon. So you have to like, and Eric's like, oh really? I'm like, don't think that this idea came from me. Cause he gave me the same idea when I started at the Coast Guard. It's like, if they're just giving you all these little taps, why don't they just do a BPA? So after he explained it to me, I was able to regurgitate that same thing to somebody else. Click the join button now to find out all of the different membership options. You can start off as a fan supporter and move your way all the way up to a GovCon Insider.


We can easily forgive a child who is afraid of the dark the real tragedy of life is when men are afraid of the light Hello, everyone. Welcome back today. We're taking another turn on the what if highway similar to our recent episode about chakras This time though, we're getting real sci-fi. We're talking warp engines teleportation and time travel kind of stuff at the risk of triggering some Einstein enthusiasts or Neil deGrasse Tyson Well, scientist discretion is advised. Let's talk about the speed of light and more specifically What if anything is faster than it? To begin this episode was inspired by an early Joe Rogan podcast where he featured Dr. Steven Greer the founder of C-Ceti the Center for the Study of Extraterrestrial Intelligence as well as the disclosure project He's a man who has brought to light over 4,000 cases of UFO landings and over 3,500 pilot cases of UFO sightings and over 500 reports of whistleblowers from military and government officials Reporting on both UFOs as well as ET encounters including over a hundred of these reports on video tape and on a completely side note Joe if you're watching please bring Dr. Greer back on your show Anyways, what he described in this podcast is that all of these ETS who are visiting the planet and they're definitely real By the way are not coming here in methods that are within the confines of the speed of light or slower because it would take Millennia to actually travel across the universe at these abysmally slow speeds. They're actually moving faster than light Somehow now he explains that after passing the speed of light It's an entirely different and new kind of physics different than anything. We currently know While the prevalence of light being the fastest thing has been Experimentally proven by our current model of physics if there are aspects of the universe that are unseen by us and based in undiscovered laws Then perhaps the belief of light above all is limiting us from perceiving an even greater truth The constant interpretation of people looking at this information saying it's debunked and then ridiculing it is actually holding us back socially and Technologically in one particular moving section of this interview Stephen explains that at one time He sat down with the CIA director's family and the director's wife asked him Well, how are they getting here referring to the aliens and he answered that they have this advanced technology that interfaces between thought and Consciousness he describes that just like crossing the sound barrier was a big deal The light barrier is going to be an even bigger deal and when we do we're going to cross into these sort of Multiphazic resonant dimensions part of which hook into the singularity of mind and thought The CIA director's wife looked at him with wide eyes and just went wow I knew it had to be something like that and it was right then in that moment that I decided we had to make this video Part of the challenge of understanding the faster than light conundrum is getting to know the initial problem in the first place And why do scientists believe that there's nothing faster to quote Neil deGrasse Tyson in his book Astrophysics for people in a hurry we find the following Among all constants the speed of light is the most famous no matter how fast you go You will never overtake a beam of light. Why not? No experiment ever conducted has ever revealed an object of any form reaching the speed of light Well-tested laws of physics predict and account for that fact I know these statements sound closed-minded some of the most bone-headed Science-based proclamations in the past have underestimated the ingenuity of inventors and engineers. We will never fly Flying will never be commercially feasible. We will never split the out of we will never break the sound barrier We will never go to the moon what they have in common is that no established law of physics stood in their way The claim we will never outrun a beam of light is a qualitatively different prediction It flows from basic time-tested physical principles Highway signs for interstellar travelers of the future will justifiably read the speed of light. It's not just a good idea It's the law To actually get into the science of light and the whole deal here is honestly a whole video on its own But basically the speed of light is this curious property of light where it travels at a particular speed no matter what Even if you were flying a spaceship at half the speed of light and had headlights in front of the ship That light would still travel at the speed of light no faster measured from any perspective moving or not As neil wrote no modern physics experiment has ever found any evidence of anything moving faster But then again as Steven Greer described on the other side of that barrier may be an entirely different kind of physics Perhaps we don't even have the tools to measure the mysteries beyond that barrier with a new kind of physics Perhaps we get into a more quantum understanding of the universe again being able to move forwards and backwards through time and Leap massive distances through space that would be impossible on this side of the light speed barrier So, okay, maybe there is some way that is beyond our understanding on how to move through this faster than light dimension Which of course opens the doors of curiosity for all of us But then the question becomes what else is out there A very big question in science right now is concerned with the mysterious cosmic substances dark matter and dark energy Could these mysterious things virtually undetectable to us besides that they produce gravity be waiting for us on the other side of the light barrier Now what's especially curious about this is that we find a link to the mysteries of dark matter and energy in a place That you might not expect the work of dr rick strassman phd This is a man who has pioneered psychedelic research for all of us in a profound way with his work with dmt Which he coined the spirit molecule leading to the publishing of his book and movie of the same name In his writings, he challenges all conventional thinking about science Consciousness and dimensions with some absolutely profound and groundbreaking research Which any scientist today should take special note of because of the implications of his incredible studies Over the course of several years rick led the expedition to administer several hundred doses of dmt to participants in a study To see if there were any clinical benefits of using dmt What the study revealed however opened up a wormhole of possibilities that could potentially change our understanding of ourselves And the universe forever Over and over rick's participants all experienced these incredible psychedelic voyages that often included seeing Environments and realms that were outside of what could physically exist in our universe Or meeting alien beings in many sizes and shapes who interacted with the participants rick tried over and over to rationalize this for the conventional thinking says that psychedelics simply reveals in your mind What is already within you but enough participants reported meeting the same or similar beings that seemed outlandish To think that these experiences were all just happening inside of people's heads Not only did the research suggest that the participants consciousness was actually being taken to another dimension of sorts Meeting beings who are not from the same plane that we exist in but the participants also said the exact same thing They claimed definitively that this was not an experience isolated within them But they knew without a shadow of a doubt that they actually met these other beings for real To any scientist who outright denies this suggestion. I challenge you to go exploring with plant medicine in a sacred and ceremonial way I know rithmia will take you and see if you feel the same way after That's not to say that psychedelics are exclusively a cosmic and external experience But that it seems to open you up for conscious expansion both internally and externally in both this dimension and others The reason that I bring all this up is because dr. Strassman describes this may even relate with the mysteries of dark matter and dark energy Aha, you see we've come full circle in dmt the spirit molecule He wrote the following the strangest realms to which dmt might lead are those that exist within the mysterious realms of dark matter There which may indeed be here. No one knows what we will find Dark matter comprises at least 95 percent of this universe's mass In other words, nearly all of the matter in the universe is invisible We cannot see it. It neither generates nor reflects radiation of any type visible or otherwise The only way we know it is there is by its gravitational effects It must exist by virtue of a fact that the visible universe maintains its particular shape Without this mass there would not be enough gravity to hold the universe together. It would fly apart Scientists have nominated several candidates for the stuff that comprises dark matter Normal matter that radiates little or no light Planets dead or unborn stars and black holes may account for about 20 percent of dark matter However, it's likely that most if not all dark matter consists of particles quite different from our familiar protons electrons and neutrons These black particles may obey entirely different laws of physics unlike those in parallel universes Finding ourselves in a world comprised of them. We most likely would not recognize much Either of these invisible levels of existence Parallel universes or dark matter are present at the same time as this reality Thus they both are options We must consider for where DMT takes us when our consciousness is no longer in this plane of existence The immediacy of the transition makes appealing these two alternate viewpoints regarding the incredibly unusual places our volunteers describe This is because they're as much here as there So the question about inside versus outside as many volunteers posed it really no longer has any meaning Before performing the DMT research I never would have suggested that familiarity with alien abduction phenomena would be important in providing the best possible supervision for these sessions However, I do now I also believe it's helpful to know everything about current theories regarding invisible realms like dark matter and parallel universes Equipped with these types of training and experiences Research scientists and staff will be ready to understand Except and react to nearly everything that might come up during deep psychedelic sessions And so bringing things to a close we must strive to answer the question from the beginning What if anything can go faster than light? It seems that with certain technology perhaps even physical objects can as we've seen with the stories of the ships But as far as our own bodies and minds go At least what dr. Strassman has discovered It seems very possible that even if our bodies are limited here Perhaps consciousness is the one thing that permeates everywhere Including beyond the speed of light perhaps at least with some help from a little bit of DMT that is I feel with all of this information the biggest thing for me is that when scientists make definitive statements about absolutes in the universe the proper response seems to be healthy skepticism That there are so many mysteries in the cosmos that it seems arrogant to suggest that we understand everything perfectly Especially when the standard model quantum mechanics and even gravity are incomplete and do not fully connect with each other Especially with the work of some of these great people we've discussed today It would seem as though there's something going on to suggest not only that there's another reality waiting for us beyond the light barrier But that we may even be naturally equipped to explore these realms within us Thank you so much for watching. We'll see you next time


We won't really worry about who was out. When they said who was out, we was like, okay, we're going to play ball. You know, we're pros too, we can play with them. So we just wanted to come out and play and play hard and we got the win.  I guess when you just talk about the feeling that you got into in the flow of the offense in the fourth, you were in the 21th. Yeah, just staying ready, knowing my opportunity would probably come in the fourth. I had three fouls going, three fouls in the first half, so I guess they wanted to save me. I don't know, but I just wanted to stay ready and get my team the chance to win. And that was the main thing, just getting us the chance to win down the stretch. And I feel like we did that and we got the win. Thank God. For you, what does that mean to you guys? Well, it means everything.   So really just, I'm just glad that I got the trust from the coaching staff and you know, that helps me a lot. So, you know, thank you to those guys for trusting me. There's so much emphasis on the glass. Yeah, yeah, yeah. Did you ever expect a number like that to be 29 offense rebound, especially with a season where there's been so many conversations about the redouting battle? Yeah, not really, but, you know, we're small, we're a small team. So, you know, it happens. So, you know, got to put a body on people and just, you know, just box them out. We could try the best we can, you know, we're a small team, but you know, we just got to fight, have heart, and you know, eventually it's going to turn around for us. It's like, day-round and a wrestler, baby two junior, I think they spent some time with a long islandess, but to see that grow, what did you see growing tonight?  They played real well. I felt like, you know, day-round had a double-double. You know, I expect that out of him every time.  But you know, I'm just proud of those guys, you know, because we all came in together, so we all have a good feel for each other. So, you know, I'm just happy for every single one of those guys. You just talked about the zone.  Should we try something? I mean, we're small. I mean, we're small. We had to try something. We can't just keep, you know, switching one through five and getting rolled down by miles, you know, to mismatch. So, should we try something? So, thanks to Coach, you know, just trying different stuff. You know, I think we did a full-court press, too, one time in the first half. So, you know, that's what it's all about. You have your main guys out.  You know, thank God it worked for us. You know, the zone worked for us in the third or fourth quarter. It really got us into the game, got us into the flow. Got to take some real tough shots. So, I feel like that was a real great adjustment on Coach Park.


Good morning. It's like we don't quite have quorum. Hopefully soon. Good morning. Good morning. Is that a, is that a new virtual background for Katati? It's my virtual background. We're, we're. We're pretty proud of the partitions we put in separating. The, the public. From the staff council area. Very cool. Great. Hopefully we'll get at least one more member soon. So we can start. It would be great if we had all five. Yeah. Does Santa Rosa. Have the ability to do like hybrid. Public meetings. Have some. Remote and some. There. I think things are being checked into to see how it's all going to play out, but. We're almost there. Yeah. There we go. That's starting to look like a meeting. Good morning, Mary Grace. Morning, Jennifer. Morning, Craig. Morning. So. We, we have a quorum now. I don't know if we want to wait another minute or two. I believe everyone was. Accepted the meeting. So. Do you all have a preference? Give it another couple of minutes, maybe. I think so. Okay. We'll do that. The COVID delay. Everything takes that much longer. Yeah. Even though the meeting is just happening down the hallway. Yeah. Jennifer, you have BPU this afternoon. Yes, we do. And we'll be doing a study session. On the budget. All right. Just checking in with the committee again. I have a question. I tried to. Text an email. What would you all like to do? Forgetting started. Okay. My grace, does that work for you? Yep, that works for me. All right. All right. So we will go ahead and. Call the meeting to order at. Oh, nine. And. Secretary Reyes, can you please do a roll call? Okay. Okay. Thank you. Senator Rosal water. Here. City of Katari. Here. City of Verna park. Yeah. Sonoma water. City of subasphal. All right. Thank you. So. Three. Present and two absent. And then Secretary Reyes. Can you report out on the staff and members of the public that are present at the meeting? Senator Roberts. İşte. Joshua Walton. Jason Roberts Janine. Joe Shavoni. John Stinson. Kimberly, Zunino. Gloria or Panik. Peter Martin. Roberto, Shawn McNeil. Tonya Mackvt. Members of the public. Brenda Alderman. All them. Sorry. Thank you. So. Do we have any announcements? All right. Seeing none. We'll move on to item three approval of minutes. Does someone want to move approval? I'll move approval. All right. We've run it apart. Making a motion. Is there a second? Yes. I'll second that. Okay. So we've run it apart making the motion. We'll move on to item three. Are there any. Comments or discussion from the committee. Right. Before we accept the minutes. We will open for public comment. So we are now taking public comments on the minutes approval. If you wish to make a comment by a zoom, please raise your hand. If you're dialing in by a telephone. Please dial star nine to raise your hand. For a public comment. So we will now move on to the public comments on the minutes. We have none. All right. Then can you please do a roll call vote? As a water. I. City of Cotadi. I. City of runner park. Right. No more water. City of sabbatical. All right. Thank you. So those minutes are approved with. to absent. And now we'll move on to item four, public comment. So we are now taking public comments on item four. If you wish to make a comment by Zoom, please raise your hand. If you're dialing in by telephone, please dial star nine to raise your hand. And Secretary Reyes, do we have any live email or voicemail public comments on non-agenda items? We have none. All right. Thank you. Okay. So that takes us to our new business, and this is our only action item for today. And that'll be a presentation for consideration of the fiscal year 21-22 regional budget and allocation of costs. And Kimberly Zanino, Deputy Director of Water Administration, will be leading this presentation. Good morning. I hope everybody's doing well. I am going to take you through pretty much the same presentation we've been through several times now. But we'll go through it quickly and then get to the final numbers so that you can determine whether or not you're ready to make a recommendation. So let me share my screen. All right. So here is our final presentation for budget. Once again, we'll just take a quick look at annual flows. We'll take a look at any of the fund changes, the allocations, the budget schedule, and then the recommendation. Flows for this year's O&M distribution of O&M expenditures are shown here with some previous flows shown as well. Changes in the funds. Once again, we are up by 1.6%. We talked about many of those budget drivers through the last two sessions being O&M projects increasing and professional services increasing for the LIS Tech Agreement. And then also based on the securing of the bond for the replacement of the UV project, we are seeing a 9% increase in debt service this year. Graphic look at the entire fund. This includes the miscellaneous revenues. And it also includes the small increase in the O&M reserve to reach the 15% policy target. For CIP, our cash funding, this just gives you the categories in which that cash funding will be applied. The majority of it being for plant infrastructure. A little bit for the geysers infrastructure and then continuing to work on the master planning. In our fund summary, you can see in the first line, that is the total operating and operations and maintenance expenditures budgeted for this year. The cash funding of $8 million for the capital improvement program. That small increase for bringing the operations reserve up to the 15% level. And then the total operations and maintenance and CIP number there. Down in the bottom right, you will see that we have applied the miscellaneous revenues that will come directly to the sub regional funds. And removed those from that total at the bottom. And then this is the application of fund balance shown here as well as all of the O&M, the CIP contributions and the debt service contributions. With the total, the original difference and then the amount of fund balance that will be applied to each resulting in the total of amount due from each of the agencies. And then the percentage increase for each. We are meeting with you today. We will also be meeting with the Board of Public Utilities this afternoon. In that session, we will be doing a study session on all of our budgets which includes the regional study session. We will be back at the BPU on April 15th to request a recommendation to City Council. And then we will be at City Council on April 27th to receive approval of the preliminary regional budget so that we may notify the partners in the beginning of May. Then City Council will have their budget study sessions on May 11th and 12th. And then they will consider adoption of the entire budget on June 22nd for the entire city. And with that, it is recommended by Santa Rosa Water Staff that the sub regional technical advisory committee recommend the fiscal year 2021-22 budget and allocations to the Board of Public Utilities and City Council. And I believe Kimberly is available. If there are any questions from the committee or if there's any discussion that the committee would like to have. I have no questions. No questions. All right. With no questions, then we are looking for a recommendation if anyone would be still inclined to make a motion. I'll move to approve. I'll second. All right. So we have a motion from Katadi and a second from Rona Park. And now we'll open it up for public comment. So we are now taking public comment on item 5.1. If you wish to make a comment via Zoom, please raise your hand. If you're dialing in via telephone, please dial star 9 to raise your hand. And Secretary Reyes, do we have any live email or voicemail public comments? We have none. Okay. So can we please have a roll call vote? Santa Rosa Water. Hi. City of Katadi. Hi. City of Rona Park. Hi. Sonoma Water. City of Sevastopol. All right. Thank you. So that passes with three eyes and two absent. And that concludes the business for today's subcommittee meetings. So really want to thank you all for your time. I know we had an extra meeting thrown in there, but I think it was really helpful. Appreciate all your work on us with us on the budget. And enjoy the gift of time. Thanks, Jennifer. Great one, everyone. Meeting is adjourned. Take care.


Internal Revenue Service IRS Tax News. IRS completes automatic corrections of tax year 2020 accounts related to unemployment, compensation, exclusion, 12 million refunds issued. Hey, wait a second here. Wasn't that unemployment exclusion thing designed to get money out fast for people in the middle of a pandemic? I mean, like the pandemic's over now, man. Oh, I see, Phil. The government anticipated the recession caused by their massive spending. And so like, they intentionally made the payments take a super long time, so they would help people in the middle of the recession they caused. Honestly, is there any way we can get the government to stop quote helping us end quote?  Sure, it'll clean you out. Leave your hollow inside. I mean, am I wrong? Am I wrong? Am I wrong? No, you're not wrong. Am I wrong? You're not wrong, Walter.  Okay, then. Maybe we should shift our priorities to just having them like stop spending so much dang money. Honestly, like trying to stop the government from spending money is like trying to stop Hunter Biden from going on a shopping spree. Well, visiting the local crack dealer. Actually, those two things might be related now that I think about it. Anyways, whatever. I are 2023 dash 02 January 6 2023 Washington. The internal revenue service recently completed the final corrections of tax year 2020 accounts for taxpayers who overpaid their taxes on unemployment compensation they received in 2020. So let me see if I can give a recap according to my recollection of what has happened with regards to unemployment in tax year 2020, given the fact that it's been so long that people have probably forgot about it at this point in time. So in 2020, they made an adjustment to the unemployment compensation tax ability. In general, the general rule is if you get unemployment, it's usually going to be taxable income. So you still have to include it on income on the tax return income is bad for taxes because that will increase the likelihood that you're going to be paying taxes in 2020 due to due to the pandemic and everything that was going on. Then they wanted to get more money in people's hands. One way they thought they could do that would be to say the unemployment compensation is not going to be something that they're going to include as a taxable line item. And therefore you wouldn't have to pay taxes on it if that was indeed the case. The problem, however, was that they did that very late in the game. So many people had already received their 1099s from the states and whatnot about the unemployment compensation and possibly already filed their tax return by that point in time. So then the question is going to be, well, if I already have the information and it looks like I'm supposed to include the income because I got this form that would indicate that I normally would and it always has been taxable in the past. But now they changed the law and a lot of people might not pick that up and it was changed quite late. So it's not really people's fault if they didn't know about the law that they didn't report it properly on the tax return. And if they included it in income, they would have overstated their income and paid more tax most likely than they otherwise would have. So then the question is, well, what do you do about that? Are you going to file a 1040x an amended return in order to fix it? Filing an amended return is typically a tedious process, especially before they had the electronic filing of it. So it's kind of a burdensome thing to do for people generally to have to file it. So I think that's the reason the IRS then said, well, we're just going to fix it on our end. So if we see we're going to file the tax returns, they're going to process the tax returns and anybody that claimed the unemployment compensation, they're going to try to remove the unemployment compensation and then issue a refund based on the adjustment to the taxes. Now that is a fairly easy process you would expect for many taxpayers if they have a simple tax return. However, we know that the income will also affect the adjusted gross income, which affects all the phase outs that affect potential credits and whatnot that are dependent on the income. So it can actually be quite complex when you reduce and take out the unemployment to many of these other kind of credits like the earned income credit is based on the level of income and can vary greatly depending on income levels and other credits have these phase outs as well. So some of those become more complex. So the IRS, again, tried to handle it themselves to do it, but it obviously took forever to do and now we're still kind of dealing with it at the tail end here with you would think the more complex returns that they're trying to finalize to get this done with. So given that the American Rescue Plan Act of 2021 became law in March 2021 excluded up to 10,200 in 2020 unemployment compensation. There's a link to that here from taxable income calculations up to 10,200 for each spouse if married filing joint. So the exclusion applied to individuals and married couples whose modified adjusted gross income was less than $150,000. So to ease the burden on taxpayers, the IRS took steps to review form 1040 and 1040 SR that were filed prior to the law's enactment to identify taxpayers who had already reported unemployment compensation as income and were eligible for the correction. So the IRS said, hey, look, in essence, this is my interpretation. We're going to try to take care of it ourselves on our end and you don't have to file an amended return because we're going to do it basically was their the general idea. So the IRS determined the correct taxable amount of unemployment compensation and tax. Some taxpayers received refunds while others have the overpayment applied to taxes due or other debts. In some cases, the exclusion only resulted in a reduction in their adjusted gross income. The IRS mailed a letter to these taxpayers to inform them of the correction. Taxpayers should keep that letter with their tax records. Now the other problem with this, of course, is that if the IRS then adjusted your tax return and then you try to file the tax return or go to your tax preparer. They usually start off by rolling over your prior year numbers into the current year tax return. And if there are any rollovers like applied payments or something like that or any other kind of thing that's going to roll over from one year to the other, that could be changed now given the fact that there's a change to the taxes. So you need to make sure that you inform your tax preparer or are understanding the change when you file your tax return for the current year. So the IRS corrected approximately 14 million returns. This resulted in nearly 12 million refunds, totally 14.8 billion, with an average refund of $1,232. Now, again, these numbers are a little deceiving the way they say this because an average refund of $1,232 kind of sounds like everybody got an average refund of that amount. And again, I think that's kind of the intention of the IRS here because they're trying to say they're trying to kind of brag about it seems to me about sending out money, right? They're trying to say, look, the IRS is giving out money during the time period. And so they want to be able to say, look, we gave out in order to help people out 12 million returns, nearly 12 million refunds. But obviously those refunds aren't going to everybody. They're only going to people who had unemployment income and to the people who had unemployment income and then included it in income so that the IRS had to correct it. So it's not like this is a stimulus check that they kind of just sent out to everyone. You know, it's only going to be people that had the unemployment and then they had to file their return. And those are the people that are impacted by it. So you wouldn't expect a refund unless you're in that category is what I'm trying to say. So many of the adjustment adjustments include corrections to the earned income tax credit recovery rebate credit. So notice these are the this is the problem. So you would think it would be a pretty easy thing to just say, I will just take out that income. And then you would think if it was just a flat tax, it wouldn't be a problem. You're like, OK, well, now you're just going to pay, you know, want some percent less tax on that. But no, because it's a progressive tax system. So now you got funny. You got different tax rates and that there's a there's a change to the incomes, which could affect the earned income tax credit, which is the big one. The recovery rebate credit, which is linked to the stimulus payments, additional child tax credit, American opportunity tax credit, the premium tax credit, advanced premium tax credit. So you can see these lower income tax returns are actually getting fairly complex, you know, with all these these credits are not the easiest things to calculate. You kind of need software to do it. And even the IRS took quite some time to make that you would think fairly simple adjustment. So if a taxpayer is eligible for the unemployment compensation exclusion and their account was not corrected by the IRS, they may need to file an amended 2020 tax return to claim the exclusion and any applicable non refundable or refundable credits impacted by the exclusion. So there's a link to that here. So basically the IRS was saying, for most people, you wouldn't need to file an amended return because the IRS is going to handle it on their side. And then they had some exceptions to that general rule. Now it's all played out at this point. So hopefully they sent out the rest of these payments. And if you still haven't received a payment and you had unemployment that was included and they either didn't give you a payment or they did it wrong. What you would like to do ideally is actually take your tax software and and pull out the unemployment income to see what you come up with on your side as as your taxable amount without that amount included. And then see if the government gives you that as the difference in terms of a refund. Do they come to the same conclusion? If they do not, then you might still need to file an amended return. If it would be beneficial, if you don't get the payment at all, then you might still need to file the amended return. So taxpayers should not file an amended return if they previously filed one claiming the exclusion. For more information about this, including eligibility requirements, taxpayers should read the 2020 unemployment compensation exclusion frequently asked questions. There's a link to that here. It's on IRS.gov. If they do not amend tax year 2020 forms 1040 1040 SR taxpayers can file form 1040 X amended US individual income tax return electronically with tax filing software. So that's kind of the new thing. That's fairly new. It's it's crazy that that's a new thing that you can actually file an amended return. It used to be not too long ago that you had to file that with a paper return, which is kind of problematic, especially given the fact that the irises totally was all backed up because of their social distance. In rules and all the changes to the tax code that we're trying to handle. Well, well, not having people in the office because of social distancing rules and whatnot. So that that at least makes it a little easier. You could file that return, although you do typically would like to have software to help you to file the 1040 X if you need to do that. So taxpayers can view their 2020 tax records in the online account. There's a link to that here or request a 2020 tax account transcript be mailed to them. So if you think you're in this group with this unemployment thing, then and you and you haven't received the change, meaning you had unemployment compensation for 2020. You put it on the tax return for 2020 and possibly you didn't need to because the IRS is saying that it should be excluded from income. And then if you didn't get an adjustment from the IRS, then that's when you might want to check your online account and hopefully maybe that that can show you any changes that the IRS made or whatnot. And then you can decide from there what to do, such as possibly filing a form 1040 X and amended return. Remember that if you didn't have any unemployment compensation or you properly didn't record it as income because you filed after the point where you knew about the change to the law. And so you did it, you did it right, then you're then you're not going to get another refund or anything like that. That's it's only going to be for those people that didn't get it, get it right the first time do not impart not to them their own fault, but because the tax law was changed kind of late and so on. And that's who it's applicable to. Okay, that's my explanation of it. So there's links to all that stuff here. There'll be a link to this in the description.


I love solar physics. I've had to move into more of a managerial type role. Once you've done your post-doc work and everything, you can't always do research. You have to find funding. I have these other administrative responsibilities that I don't love as much, but it allows me to do the science and the research is where my heart is. I'm very lucky that I am excited about what I do. My job isn't, I don't really consider it a job.  It's just, it's part of who I am. So if somebody can find that sort of thing that drives them and is their passion, it's worth spending however much time to, you know, incorporate that and make that their career if it's possible.