POPULARITY
Gudrun talks with Debajyoti Choudhuri. He is staying at KIT as a short term guest. He is Associate Professor in the School of Basic Sciences at IIT Bhubaneswar, India. He did his M.Sc. and Ph.D. in Mathematics at the University of Hyderabad. His research interest lies in the analysis of elliptic PDEs using Functional Analytic and topological methods. In this he touches and has a slight overlap with the research of Gudrun. The conversation starts with the discussion about a small paper which Debajyoti put on the archiv. It is about understanding how to work with the Fractional Laplacian. This means extending the classical Laplace operator Δ to non-integer powers. This operator is the main part in PDEs which model, e.g, anomalous diffusion, probability theory, image processing, finance, and nonlocal mechanics. (-Δ)s, where 0 < s < 1. What makes It different to the ordinary Laplacian? While the traditional Laplace operator is local, i.e. it depends only on values of u and its derivatives near x, the fractional Laplacian is nonlocal, it depends on values of u everywhere in space. Thus, for the analytical and numerical treatment one needs very different methods. There are several possible definitions. Some of them can be found in the Wikipedia article which is cited below. On ℝn, the cleanest definition is the Fourier definition which follows the idea: Take the Fourier transform. Multiply by |ξ|2s. Transform back. In the short paper which is discussed the singular integral definition is used: For 0 < s < 1: (-Δ)^s u(x) = C(n,s) PV ∫ [u(x) - u(y)] / |x - y|^(n + 2s) dy This makes the nonlocality explicit: every point y contributes to the value at x. The method central in studying Laplace problems is variational. It considers an (infinite) family of generalised problems and works on the existence of so-called weak solutions. These problems are formulated with the help of Sobolev spaces. The weak solution for the Laplace problem is an element of the space H1=W1,2. This means the solution and its (generalised) gradient are bounded in L2 in the domain in which the problem is solved. This has physical meaning and due to known properties (embedding) of Sobolev spaces the pointwise (strong) solutions often can be constructed when enough regularitiy of the weak solutions is proved. Fractional Laplacians naturally live in fractional Sobolev spaces. These are not that easy to connect to physical properties and a few of the equivalent definitions in the context of classical Sobolev spaces are not equivalent any more everywhere. Common approaches for numerics for PDEs including the fractional Laplacian are: Fourier spectral methods (periodic domains) Finite element methods for fractional PDEs Matrix-function methods (As) Caffarelli–Silvestre extension methods Quadrature approximations of singular integrals The Extension trick introduced by Caffarelli and Silvestre in 2007 (their original paper is cited below) is also discussed as part of the short note. p-laplacian augurs well in the sense because the unicity of the definitions of the s-laplacian is still lacking. The conversation then turns to how Debajyoti found his way into mathematics and the topic of PDEs and how life and work feel like in his university. More information: Webpage of Debajyoti Choudhuri Debajyoti Choudhuri: A quick sneak-peek at the s-fractional Laplacian operator (2022) Wikipedia on the Fractional Laplace operator Mateusz Kwaśnicki: Ten equivalent definitions of the fractional Laplace operator (2015) E. Di Nezza, G. Palatucci, E. Valdinoci, Hitchhiker's guide to the fractional Sobolev spaces, Bull. Sci. Math., 136(5), 521–573 (2012) L. Caffarelli, L. Silvestre, An extension problem related to the fractional Laplacian, Communications in Partial Differential Equations, 32, 1245–1260 (2007)
Gudrun talks with Debajyoti Choudhuri. He is staying at KIT as a short term guest. He is Associate Professor in the School of Basic Sciences at IIT Bhubaneswar, India. He did his M.Sc. and Ph.D. in Mathematics at the University of Hyderabad. His research interest lies in the analysis of elliptic PDEs using Functional Analytic and topological methods. In this he touches and has a slight overlap with the research of Gudrun. The conversation starts with the discussion about a small paper which Debajyoti put on the archiv. It is about understanding how to work with the Fractional Laplacian. This means extending the classical Laplace operator Δ to non-integer powers. This operator is the main part in PDEs which model, e.g, anomalous diffusion, probability theory, image processing, finance, and nonlocal mechanics. (-Δ)s, where 0 < s < 1. What makes It different to the ordinary Laplacian? While the traditional Laplace operator is local, i.e. it depends only on values of u and its derivatives near x, the fractional Laplacian is nonlocal, it depends on values of u everywhere in space. Thus, for the analytical and numerical treatment one needs very different methods. There are several possible definitions. Some of them can be found in the Wikipedia article which is cited below. On ℝn, the cleanest definition is the Fourier definition which follows the idea: Take the Fourier transform. Multiply by |ξ|2s. Transform back. In the short paper which is discussed the singular integral definition is used: For 0 < s < 1: (-Δ)^s u(x) = C(n,s) PV ∫ [u(x) - u(y)] / |x - y|^(n + 2s) dy This makes the nonlocality explicit: every point y contributes to the value at x. The method central in studying Laplace problems is variational. It considers an (infinite) family of generalised problems and works on the existence of so-called weak solutions. These problems are formulated with the help of Sobolev spaces. The weak solution for the Laplace problem is an element of the space H1=W1,2. This means the solution and its (generalised) gradient are bounded in L2 in the domain in which the problem is solved. This has physical meaning and due to known properties (embedding) of Sobolev spaces the pointwise (strong) solutions often can be constructed when enough regularitiy of the weak solutions is proved. Fractional Laplacians naturally live in fractional Sobolev spaces. These are not that easy to connect to physical properties and a few of the equivalent definitions in the context of classical Sobolev spaces are not equivalent any more everywhere. Common approaches for numerics for PDEs including the fractional Laplacian are: Fourier spectral methods (periodic domains) Finite element methods for fractional PDEs Matrix-function methods (As) Caffarelli–Silvestre extension methods Quadrature approximations of singular integrals The Extension trick introduced by Caffarelli and Silvestre in 2007 (their original paper is cited below) is also discussed as part of the short note. p-laplacian augurs well in the sense because the unicity of the definitions of the s-laplacian is still lacking. The conversation then turns to how Debajyoti found his way into mathematics and the topic of PDEs and how life and work feel like in his university. More information: Webpage of Debajyoti Choudhuri Debajyoti Choudhuri: A quick sneak-peek at the s-fractional Laplacian operator (2022) Wikipedia on the Fractional Laplace operator Mateusz Kwaśnicki: Ten equivalent definitions of the fractional Laplace operator (2015) E. Di Nezza, G. Palatucci, E. Valdinoci, Hitchhiker's guide to the fractional Sobolev spaces, Bull. Sci. Math., 136(5), 521–573 (2012) L. Caffarelli, L. Silvestre, An extension problem related to the fractional Laplacian, Communications in Partial Differential Equations, 32, 1245–1260 (2007)
Amid the chaos of revolutionary France, one man's mathematical obsession gave way to a calculation that now underpins much of mathematics and physics. The calculation, called the Fourier transform, decomposes any function into its parts. The story What Is the Fourier Transform? first appeared on Quanta Magazine.
This show has been flagged as Clean by the host. 01 Introduction This is a follow up to my 4 part series on simple podcasting. In this episode I will discuss a number of experiments with audio filtering. These experiments were inspired by comments by listeners and by other discussions about audio on HPR. I am not an audio expert, so I am doing this partly in order to learn something, but mainly in order to have a bit of fun. I hope that you find this entertaining as well. In a comment on the first episode a listener mentioned something called Solocast and said that the method bore a resemblance to the method that I was using. Here is his comment -------------------- 02 Comment #3 posted on 2026-04-03 07:49:58 by Reto It reminds me about Solocast Hi Whiskeyjack, I really liked your podcast and the topic. I cannot remember about your last, but the sound quality of this one was good on my mobile speakers :) The concept reminded me about the program from Norrist (another host on HPR), while similar does it have some differences HPR 3496 https://hackerpublicradio.org/eps.php?id=3496 As I am not on the future feed, I look forward to your next episode. Cheers, Reto -------------------- 03 End of comment. I did not recall having heard the episode on Solocast, but this sounded very interesting. Solocast was in HPR episode 3496 and was released by norrist on the 27th of December 2021. I listened to that episode and does indeed use use the same basic concept of recording short segments of audio and combining them later instead of creating one big recording and editing it with an audio editor. 04 The main difference is that the work flow that I described involves a lot of manual steps, while Solocast is a short Python program that automates the entire process of presenting your script, recording the segments, combining the segments, and filtering and normalizing the result. I won't try to describe Solocast in detail, instead I would recommend just listening to HPR episode 3496 to get norrist's explanation directly. -------------------- 05 While I wanted to make sure that I credited norrist with having come up with this concept four years before I did, this won't be the focus of this episode. Instead I will talk about audio filtering and various experiments that I ran on several different methods. 06 While looking at the source code for Solocast I noticed that it used a filtering method that resembled one used by Jivetalk, a podcast production program that caught the attention of one of the HPR community news presenters. This method involves taking a sample of quiet audio where there is no speaking taking place, and then using this as input to a noise reduction filter which is applied to the voice recording. The filter subtracts the quiet sample from the voice audio, which should theoretically remove the ambient noise. 07 I decided to apply this method to a number of different audio test recordings which were recorded under different circumstances using different hardware. In this way I could see if the method worked equally well under all circumstances or if there were some sorts of noise which it was suited to and some sorts that were not. 08 While I was at it, I also picked several other filter methods to see how they worked as well. Potentially, some methods may be better under some conditions while other methods were better suited to others. -------------------- 09 I won't present all of my experiments, as that would be a bit dull to listen to. Instead I will describe each method and then present audio samples which illustrate my conclusions. There are two pieces of audio software involved, both of which were also used in my series on simple podcasting. 10 The first is Sox, spelled s o x , and which is short for Sound Exchange. Sox is a command line program for audio manipulation. Sox is Free Software, released under the GPLv2 or later. The other is FFMPEG, which is also a command line program. FFMPEG is also Free Software, released under the LGPL V 2.1 or later, and GPL v 2 or later. Sox actually uses FFMPEG for certain operations. -------------------- 11 Audio Hardware For recording hardware I used the following. 12 Maxwell Headset The first is a cheap Maxwell headset that has an electrical noise problem. Unfortunately I don't have a model number for this headset. I described this hardware, the noise problems that I had with it, and how I created filters to deal with the noise in my series on simple podcasting. Briefly though, this is a headset that has a build in microphone on a boom which allows the microphone to be positioned close to the mouth. It connects with a USB cable. 13 Borne Earpiece and In-line Microphone This is a set of earplugs that go in your ears and connected by wires and a very small microphone built into a small bulge in the cable. It connects using a 3.5mm jack. The model number seems to be BUD250-BL. 14 XTrike Headset This is a gaming headset similar to the Maxwell headset described above. The model number is GH-510 It uses a USB connection. 15 Yanmai Condenser Microphone This is a microphone that comes with a small tripod stand. The model number is SF-910 It uses a 3.5mm audio jack. -------------------- 16 This is not a review of the hardware. Rather, I was trying to create audio problems so that I could test ways to fix them. Therefore, do not take the above list as a recommendation of what to buy. However, you can see that I am not using any expensive audio hardware. If you want to make an HPR podcast, you do not need professional level hardware. -------------------- 17 Audio Samples The audio samples are as follows 18 Quiet This was recorded in a quiet environment at my desk. This is my normal podcasting environment and represents optimal conditions. The main reason for this method is to see how the various filter methods perform when dealing with the electrical noise from the Maxwell headset. 19 Small fan This is a small USB powered table fan approximately 10 cm in diameter. It was located roughly 40 cm or less to the left of the microphone, although this varies depending on the microphone. 20 Traffic This was along a busy street with traffic noise in the background. -------------------- 21 Filter Methods Sox noisered Filter with Audio Profile This method uses the Sox noisered filter. Here is a brief quote from the Sox documentation on this filter. Quote Reduce noise in the audio signal by profiling and filtering. This effect is moderately effective at removing consistent background noise such as hiss or hum. To use it, first run SoX with the noiseprof effect on a section of audio that ideally would contain silence but in fact contains noise - such sections are typically found at the beginning or the end of a recording. End of quote For these tests I recorded a separate noise profile to go with each test. -------------------- 22 Basic Manual Filter This is a basic high and low pass filter pair based on the work I had done in my previous series on simple podcasting. However, based on the tests that I have done for this episode, I decided to get a bit more aggressive in terms of filtering. I use a high pass filter of 120 Hz, and low pass filter of 8 kHz. The each filter is then applied twice to increase its effect. I also added band reject filters to deal specifically with 50 and 60 Hz line noise. -------------------- 23 Complex Manual Filter This uses the manually constructed filter described in my series on simple podcasting. This uses the basic manual filter plus a series of custom bandreject filters to fix specific noise problems with the Maxwell headset. -------------------- 24 FFMPEG afftdn Filter The documentation describes this as "Denoise audio samples with FFT." -------------------- 25 FFMPEG arnndn Filter The documentation describes this as "Reduce noise from speech using Recurrent Neural Networks." -------------------- 26 FFMPEG agate Filter I will pronounce this as "agate" for convenience. The documentation describes this as "A gate is mainly used to reduce lower parts of a signal. This kind of signal processing reduces disturbing noise between useful signals." -------------------- 27 Method The experimental method used was to take each noise sample and apply the different filter methods to it. Where there are parameters which can be adjusted, a script was used to generate a series of different sample files with different parameter values. Not all possible parameters were experimented with, as the goal is to see which method produces what sorts of results under different circumstances, not to get the best possible result for the samples that I happen to have. The method in each case was as follows 28 Step 1 Convert the audio file to FLAC if it is not already in that format. 29 Step 2 Apply a basic high and low pass filter described previously to each sample. The reason for this basic filtering is that it eliminates at least some undesired noise in a fairly fool proof manner, leaving less for the more advanced filter to deal with. This should allow for a better test of the filter under realistic conditions. 30 Step 3 Apply the noise reduction filter being tested. 31 Step 4 Normalize the filtered sample to 17 LUFS according to the EBU R128 standard. The EBU standard is described in my series on simple podcasting. Normalizing adjusts the audio signal to a desired loudness level. This allows for more more consistent sound levels and allows us to hear the results under realistic conditions. I normalize the audio individually for each sample as different recording hardware requires different amounts of loudness adjustment. This is different from the typical podcast process where normalizing takes place as the very last step in the process, but it was necessary in this case. 32 Step 5 Concatenate selected sample audio files to one another to allow for better review and comparing. -------------------- 33 Results The results are grouped according to the type of noise which is being mitigated. This allows for easier comparison of the effectiveness of each technique under different circumstances. I have only picked a few examples of interest out of the numerous experiments that I conducted. -------------------- 34 Quiet Recording Environment with Maxwell Headset This compares how well the various filtering methods work on the noise induced by the electronics in the Maxwell headset. This electronic noise consisted of a noise spike every 1 kHz. This should be representative of electronic noise caused by problems in recording hardware. 35 Manual Filter The manual filter applied a narrow band reject filter every 1 kHz from 1 kHz to 12 kHz. This completely removed the otherwise audible whine caused by the noise. 36 FFMPEG afftdn This method allows for setting a noise floor and then specifying how much the noise floor should be reduced by. The method is very sensitive to getting the noise floor correct for that recording. Set the floor too low and nothing happens. Set it too high, and some distortion results. However it seemed to be moderately effective, but it would seem to require checking it and possibly adjusting it each time it is used. 37 FFMPEG agate This method allows setting a noise floor and then suppressing all sound which falls below that level. This method is very sensitive to getting the noise floor correct for that recording. If set too low (or quiet), it is ineffective. If set too high (or loud), it distorts words which come after a pause, which would typically be between sentences. 38 When set correctly, it completely removes noise in the silences between sentences. However, the noise is still audible during speech. This is because the noise in this case is a higher frequency than normal speech, and so stands out more. It may not be a significant problem for noise which is closer to the main vocal frequency band. Overall, this method is not suitable for this particular problem. 39 FFMPEG arnndn This method used the standard model. A variety of different noise reduction models are available. I only tested it with one, std.rnnn It does not seem to introduce much distortion in the voice signal even with a high amount of mix parameter. 40 However, it is only slightly effective at removing the whine from the signal, even with a high amount of mix parameter. Overall, this method does not appear to be useful for this sort of noise problem. 41 Sox noisered Filter This was effective in removing noise between words, but noise can be heard while words are being spoken. It was better than agate however. 42 Overall Conclusion for the Maxwell Headset Noise When dealing with narrow noise bands that occur at known frequencies, the manual filter is leagues ahead of any of the other tested alternatives. 43 Sample Audio Here is a sample audio recording showing the best overall results The sample is repeated, first with only basic low and high pass filtering, and then with the manually constructed filtering. In the first sample you should hear a high pitched background whine. In the second sample, the high pitched whine is completely removed. 44 (Audio sample inserted here.) -------------------- 45 Traffic Noise This was recorded using the Borne in-line microphone connected to a mobile phone while walking along beside a busy street. This was in dry cool spring weather, and the road was paved with asphalt. This should be reasonably representative of podcasting while walking outdoors in a noisy environment. 46 Basic Manual Filter This used the basic manual filter with high and low pass filters. This did nothing very useful in this case as the signal was already filtered within those limits by the recording hardware anyway. The low sample rate of 8 kHz in the phone limited the upper frequency to 4 kHz. Recall that the sample rate has to be twice the highest frequency that you want to detect. Overall, this is not suitable for this sort of problem. 47 FFMPEG afftdn With a high noise floor, background noise is reduced, but not eliminated. There was not much distortion in the voice. This is only slightly useful for this sort of problem. 48 FFMPEG agate With a high threshhold, background noise is reduced, but not eliminated. There was some distortion in the voice. The background noise could also be heard when speaking, but because the frequency of the background signal was similar to the louder voice signal, it was not as noticeable as it would have been if the two were very different. This is moderately useful for this sort of problem. It may be more useful in situations where the background noise was not quite as loud. 49 FFMPEG arnndn With high amounts of noise reduction, much of the background noise is suppressed, but there is not a lot of distortion in the voice. The background traffic noise is still present, but is significantly less. This offers only a moderate improvement. 50 Sox noisered Filter With small amounts of noise reduction voice is clear but traffic noise is present as a very significant continuous warbling sound in the background. This is no improvement on the original and in fact could be seen as making it worse. With moderate amounts of noise reduction, traffic noise is mostly gone, but there are still various squeaks present. Voice is noticeably distorted. With large amounts of noise reduction, traffic noise is gone but voice is highly distorted. This is moderately useful for this sort of problem, but requires careful adjustment. 51 FFMPEG arnndn Followed by FFMPEG agate This combined two different filters. First, it used arnndn to suppress the background noise to a lower level without much voice distortion. Then it applied the agate filter to suppress the noise levels between words still further. This used the same amount of mix and threshold as was found to be most effective when each of these filters was used on its own. The background noise is almost completely gone while distortion of the voice signal is low. 52 Overall Conclusion for Traffic Noise The arnndn combined with agate filters was the most successful at suppressing background noise while limiting the amount of voice signal distortion. 53 Sample Audio Here is an audio sample for what I felt to be the best overall results, the arnndn filter combined with the agate filter. First is the original audio with basic filtering. This is followed with the same audio after being passed through the arnndn and agate filters. 54 (Insert arnndn plus agate audio sample here) 55 Another Sample Here is a second audio sample showing the Sox noisered profile based filter. I have included this to show how a profile based filter can make things worse if you are not careful how you use it. This repeats the test audio 4 times. The first is with basic filtering only. The second uses low amounts of noise reduction. The third uses moderate amounts of noise reduction. The fourth uses high amounts of noise reduction. 56 (Insert noisered audio sample here) -------------------- 57 Small Fan Noise with Yanmai Microphone This was recorded using the Yanmai condenser microphone. A small fan was set up behind and to the left of the microphone. This is intended to represent situations where someone may have a fan or air conditioner running in the background due to hot weather, or has a loud computer fan. 58 A condenser microphone was used for this test as they are more prone to picking up unwanted noise. However, for practical recording purposes, this sort of microphone is unsuitable for this type of environment. 59 Basic Manual Filter This used the basic manual filter with high and low pass filters. This did nothing useful as the fan noise was in the same frequency range as the voice signal. This may be of more help in cases where the noise is below the 120 Hz cut off used in the low pass filter. 60 FFMPEG afftdn With high amounts of noise reduction, much of the background noise is suppressed, but there is some distortion in the voice. The background fan noise is still present, but is significantly less. Overall this is moderately effective. 61 FFMPEG agate This was effective in removing noise between words, but noise can be heard while words are being spoken. However, this was a small voice sample and it is possible that more problems could occur. With less fan noise than was in this sample this technique may work much better. 62 FFMPEG arnndn With high amounts of noise reduction, much of the background noise is suppressed, but there is not a lot of distortion in the voice. The background fan noise is still present, but is significantly less. Overall this was fairly effective. 63 Sox noisered Filter With small amounts of noise reduction voice is clear but fan noise is present as a slight warbling sound in the background. With moderate amounts of noise reduction, fan noise is gone, but voice is somewhat distorted. With large amounts of noise reduction, fan noise is gone but voice is very distorted. 64 In general this method is fairly successful at dealing with this sort of problem. However, there is a trade off between background noise and voice quality. Getting that trade off correct takes experiment and judgment for each specific situation. 65 FFMPEG arnndn Followed by FFMPEG agate This combined two different filters. First, it used arnndn to suppress the background noise to a lower level without much voice distortion. Then it applied the agate filter to suppress the noise levels between words still further. This got rid of virtually all of the background noise between words. If you listen carefully however, there is a slight buzzing sound in the voice signal. 66 Overall Conclusion for Fan Noise with Yanmai Microphone. Of the methods tested, the arnndn followed by agate filter seemed to offer the most improvement for the least effort and least voice distortion. The arnndn filter on its own seemed the next most preferable to me despite leaving some fan noise in the background. 67 Audio Sample Here is an audio sample for what I felt to be the best overall results, the arnndn filter combined with the agate filter. First is the original audio with basic filtering. This is followed with the same audio after being passed through the arnndn and agate filters. 68 (Insert audio sample here) -------------------- 69 Small Fan Noise Recorded with Headset The following is an observation rather than a filtering technique. When a recording was made using the Maxwell headset and listened to on the headset later or with speakers, the fan was virtually inaudible. When the same recording was listened to with the XTrike headset, it was barely audible with careful listening and only identifiable as a fan because I knew it was there. 70 In situations where there is ambient noise, the best noise reduction technique is probably to move the microphone as close to your mouth as possible, although not directly in front of it, and reduce the gain if there is a gain adjustment in the microphone. This will work far better than trying to remove the noise later. If you are recording an HPR episode at a desk, then an inexpensive headset with boom mike may do the job just fine with minimal effort and expense. -------------------- 71 Conclusions I have tested three noise scenarios - Electronic noise in the audio hardware at specific frequencies. Recording outdoors with an inline microphone in a noisy traffic environment. A noisy fan creating background noise in an office. My conclusions on these are as follows. 72 Electronic Noise in the Audio Hardware at Specific Frequencies If you can use Audacity or some other means to find the frequencies which are causing the noise, the best solution, assuming you don't just replace the hardware, is to manually construct filters to remove those specific frequencies. This is the safest solution in terms of only doing what you tell it to and not producing unexpected surprises some time down the road when something changed in the environment. 73 If you are looking for a fairly automatic filtering method, the Sox noisered profile based filter seems to work fairly well. There is an equivalent filter in ffmpeg, but I did not include that in my experiments as it is harder to use in a script because it does not use a separate noise profile file. 74 Recording Outdoors with an Inline Microphone in a Noisy Traffic Environment. In this situation, the FFMPEG arnndn combined with agate filters seem to be the most successful. The Sox noisered filter may work, but at the cost of more distortion in the voice than is seen in the other methods. 75 An inherent problem with any profile based noise reduction method is that if the background noise is not constant, which it seldom is in that sort of environment, the profile may not represent the background noise which is present later on in the recording. This risks adding more distortion in the voice as the profile and later environments diverge. 76 However, for this application a different microphone that provided a better recording would appear to be advisable. A solution which brought the microphone much closer to the mouth and so resulted in a better ratio of voice signal compared to background noise would appear to be necessary, after which the question of what sort of noise reduction to use would need to be re-evaluated. 77 A Noisy Fan Creating Background Noise in an Office. The Sox noisered filter and the FFMPEG arnndn, afftdn, and agate methods all work to some degree. However, they all need correct selection of parameters to achieve the proper results. When I compared all four methods side by side, I found the arnndn combined with the agate filter to be preferable in terms of the trade off between background noise reduction and distortion of the voice signal. The arnndn filter on its own seemed the next most preferable to me despite leaving some fan noise in the background. 78 However, that is a subjective judgment of a specific noise sample when recorded using a specific microphone. Keep in mind though that many listeners will not be listening in an idea environment. They may be doing things where background noise is present rather than in a very quiet room and so may find a small amount of background noise in the recording to be less of a problem than distortion in the voice signal which may make some words harder to understand. 79 When I conducted the same experiment recorded with the XTrike headset I found that arnndn seemed to offer no noticeable improvement. This may be because the amount of audible fan noise was far less with the XTrike headset to begin with. In other words, there is no single best solution here, and you may have to be prepared to try different options to see which one works in your situation. The important thing is to avoid making things worse by applying filtering that is not appropriate for that situation. The best method may be to use a recording method that doesn't pick up the fan noise to begin with. This can include just using a gaming headset with boom mic. 80 I have one final observation on this point regarding headsets. The Maxwell headset has a foam cover over the microphone while the XTrike headset does not. There was some slight audible wind buffeting noise picked up by the XTrike headset that was not observed with the Maxwell. This seemed to cause particular problems with the Sox noisered profile based filter, as this noise was irregular and after filtering would show up as a warbling sound. If you use a headset and plan to use it in conjunction with a fan, it may be advisable to apply some sort of wind cover over it. 81 Combining Complex Filters In several cases I found that combining several complex filters offered better results than using any single one on its own. The basic strategy though is to first use a method which is good at reducing undesirable noise without introducing excessive voice distortion. Then apply a different filter which is good at reducing small levels of background noise to an even lower level while affecting the voice signal as little as possible. This uses the relative strengths of different filter types to compensate for the weaknesses of the other. 82 Different combinations of filters were most effective for different types of problems. I did not try all possible combinations however. Perhaps a further exploration of this would be worth doing in a later podcast. -------------------- 83 Case Study - Noise in Another HPR Episode Audio In the comments to my second episode on Simple Podcasting (which is HPR4618) where I discussed basic filtering, a couple of listeners brought up an interesting point. Antoine mentioned "declicking" in a post. -------------------- Vance replied 84 Antoine, thanks for mentioning the click removal capability in Audacity! While I already knew about its noise removal filter, I wasn't aware it also had click removal. It might have helped me for HPR4637, where some sort of electromagnetic signal was picked up by my microphone/recorder, a Zoom H2 (the tapping sound was *not* present in the room where I recorded). While click removal does seem to distort speech when applied to it (though to my ears, it doesn't sound as weird as when noise removal is done with speech), I could have applied the filter only to the pauses, where the "tapping" is most noticeable. I will consider doing this in the event that I'm not able to eliminate the source of interference in the future, which would be the best way to go. -------------------- 85 End of quote. I found this interesting as it sounded like another audio problem that could be experimented with. I found a sample of the episode which had the clicks and cut a copy of that segment out to experiment with. These sounds are a series of clicks, or "ticks" would be another way to describe them, in the quiet part of the audio between sentences or phrases. 86 Next I used Audacity to study the sound spectrum. I found a massive 60 Hz noise spike. However, my speakers won't reproduce sound that low, and filtering this out didn't reduce the clicks. The clicks turned out to be bursts of noise across the 100 to 800 Hz band, which is right where the main vocal band also is. This makes it difficult to filter based on frequency. The most promising approach would seem to be to filter based on sound level. 87 I tried all of the individual audio filter techniques mentioned in the other experiments above. None produced satisfactory results except for agate, which makes quiet audio quieter. This completely suppressed the clicks. However, when applied to the entire episode it also distorted the start of a few sentences which began with single short syllables. 88 The agate filter has a number of parameters which could be adjusted to try to deal with these cases, although I did not spend the time to do so. Another solution to this distortion problem is to simply not apply the filter to those parts of the audio which are affected. If you record the audio as a series of small individual files, it would be easy enough to filter before concatenating the files together while skipping those files which contain audio which is not suited to this method. Here are the results of the experiments. 89 FFMPEG afftdn This reduces the size of of the ticks, but they are still present. However, they may be reduced to a level which is considered acceptable. 90 FFMPEG agate This was very effective in removing ticks with the right parameters. However, it can introduce some voice distortion in the form of cutting out the start of a few sentences which began with single short syllables. This can be corrected with a very short "attack" parameter to turn off the filter when it detects sound above a set threshhold. 91 FFMPEG arnndn This was relatively ineffective. 92 Sox noisered This was effective in removing the sounds between phrases. However, it introduces some distortion in the voice signal. 93 I also tried combining filters. FFMPEG afftdn Followed by agate This combined two different filters. First, it used afftdn to suppress the background noise to a lower level without much voice distortion. Then it applied the agate filter to suppress the noise levels between words still further. This got rid of virtually all of the background noise between words. 94 Here is a short audio sample from HPR4637. First is the unfiltered audio. Second is the filtered audio using the combined afftdn plus agate filters. Since the "clicks" are very quiet, you may not hear them unless you are in quiet environment. Quite a few listeners would probably not be aware of the perceived audio problem in this episode if it had not been discussed here. None the less, it makes for an interesting experiment. Here it is: 95 (Insert sample audio here) 96 Overall Conclusion for Noise "Ticks" The afftdn combined with agate filters seemed to offer the best overall results when used with the right parameters. However, the author, Vance, speaks very clearly and evenly, and so his voice is ideally suited for use with this filter. Another author's voice may not be as suited to this filter. 97 The Sox noisered profile based filter offers various degrees of trade off between suppressing noise and distorting the voice signal. As to whether this is an acceptable trade off depends on the particular voice in question and how easily understood it is under normal circumstances with out additional distortion. The afftdn filter may be a fairly safe filter to use on its own while producing acceptable if not perfect output. -------------------- 98 Overall Conclusions I have presented only a few of the experiments that I conducted. My overall conclusion after all of this is that there is no universal audio filtering method that works best in all circumstances. There are instead a number of tools in the toolbox, and picking the right one for the job takes a bit of trial and error. 99 However, if you have a repeatable recording environment, then once you have decided what tool you need you should create a script for it so you can have a repeatable processing setup. These conclusions apply to voice podcasting. Music has a different set of criteria and techniques that work well with basic voice podcasting may produce poor results when applied to music which has a broader range of frequency and just as importantly, a broad range of loudness. 100 If you are used to using filters and effects in Audacity, many of the settings on those correspond to arguments in the command line version of ffmpeg. It is worth learning how to use ffmpeg directly to automate your recording process. 101 The experiments that I conducted were greatly assisted by writing scripts which created multiple versions of audio files with different settings, thereby allowing me to try many different alternatives relatively easily. It also allowed me to concatenate different audio samples into a single audio file and so listen to different versions in quick succession, making subjective listening judgments more reliable. 102 It is important to keep in mind in all this that I am playing with audio filtering mainly to have fun. It is not necessary to do any of this if you think your podcast episode sounds just fine without it. So, don't let any of what I have talked about in all this discourage you from simply recording a podcast and sending it in as is. I will include copies of the filters I have described here in the show notes. -------------------- 103 Related Matters Hardware Characterization Using Audio Signals I found it useful to characterize the hardware that I had in order to understand its limitations better before starting the experiments. This involved playing a signal out through a set of speakers and then recording it through a microphone. 104 I used two types of signal for this. One is type of signal is known as a "chirp" signal. This is a sine wave that steadily increases in frequency as it sweeps across the audio spectrum. The standard audio range is 20 Hz to 20 kHz, but for my purposes I limited the upper frequency to 15 kHz to save time as anything beyond that is not very useful for voice podcasts. 105 By recording the chirp signal with a microphone and analyzing it with a Fourier transform, I could quickly see what each device was capable of. See my previous series on simple podcasting for an explanation of what a Fourier transform is and what software to use to see the results of it. Here is a chirp signal. 106 (Insert Audio Sample Here) 107 In addition to a chirp signal, I also used a series of simple tones of specific frequencies. By using these tones of known frequency I could gain an understanding of the limitations of my speakers and headphones, and just as importantly, my own ears. By understanding these limitations I was able to narrow the range of frequencies that I need to deal with quite considerably and set the high and low pass filters accordingly. These tones are a series of flac files generated with ffmpeg. 108 Here is a a sample audio tone at a 2 kHz frequency. 109 (Insert Audio Sample Here) 110 Copies of the script to create the chirp signal and the tones are in the show notes. -------------------- 111 A "Not a Review" of some of the Hardware that I Used I said that I would not do a review of the hardware that I used. However, some of it deserves mention for either how good or bad it was. I will record each section using the hardware being described. 112 Maxwell Headset This is my original recording hardware. This is a headset with boom mic and USB connection. There is no model number on it, so I don't know the model. This probably cost somewhere between 10 and 25 dollars. The earpieces sit on the ears and do not fully enclose them. This makes it light weight and comfortable to wear for extended periods of time. It has a problem however with electronic noise consisting of a noise spike every 1 kHz. I was able to fix this with a series of filters using FFMPEG. Fixing this problem is what got me started in understanding audio. I will probably continue to use this headset to make podcasts. 113 XTrike Headset, Model GH-510 This is also a headset with boom mic and USB connection. I purchased this headset for the purposes of experimentation for this podcast episode. It cost $12.88. I found it to be surprisingly good for the price. It has fully enclosed ear pieces however, which may make it uncomfortable to wear in hot weather. I may try doing some of my future podcasting using this headset. 114 Borne Earpiece and In-line Microphone This is a set of earplugs that go in your ears and connected by wires and a very small microphone built into a small bulge in the cable. It connects using a 3.5mm jack. The model number seems to be BUD250-BL. It cost approximately $3.00. I bought several sets of these and use them for listening to podcasts from an MP3 player. The ear pieces are pretty good for listening with. The microphone works reasonably well when used in a quiet location. It is less good when in a noisy environment. It is very important however to secure the microphone to your lapel or other location reasonably near your mouth and to point the microphone (that is the small hole) outwards and not simply let it dangle freely. If you let it just hang, you will get poor quality and inconsistent audio. 115 Yanmai Condenser Microphone, Model SF-910 I purchased this microphone for the purposes of experimentation for this podcast episode. It cost $3.88. As it is a condenser microphone, it is prone to picking up background noise more and as such is probably not a good choice for podcasting by single person sitting at a desk. However, it is none the less a surprisingly good microphone for surprisingly little money. 116 iCan USB Microphone, Model M-306 I purchased this microphone for the purposes of experimentation for this podcast episode. This has a USB connection. This was also relatively inexpensive at $7.99, or roughly twice the price of the Yanmai microphone. Unlike the Yanmai however, it is absolutely wretched. There was such a high degree of distortion when recording through it that I found I could not use it in the fan experiments which I had bought it for. I ended up buying the Yanmai microphone for that instead. -------------------- 117 Easy Effects Software The techniques described so far all involve recording audio files and then processing them later to produce the desired result. This is probably the simplest and most straightforward way of doing things if you are making a typical podcast. However, there may be instances where you want to apply filtering or other effects on the "live" signal immediately and not after the fact. 118 There is audio software which can hook into your computer's audio system and do this with a live signal. For Linux, there is a package called "Easy Effects". This is Free Software and comes under a GPL V3 or later license. I installed it from the Debian repository under Ubuntu 24.04. 119 You can create various filters and even chain them together to combine them. I played with it a bit but do not know enough about it to discuss it seriously at this time. However, I thought it would be worth mentioning for the sake of those who may wish to try it out themselves. -------------------- 120 Episode Conclusion After having had some fun with audio and listening to other HPR members talk about audio, I thought I would have some more fun by playing with noise reduction filters. I have no intention of becoming an audio professional, but by doing some experiments I learned a few things and had some fun doing it. I hope that the rest of you found this interest as well. I will see you all again later in another episode of Hacker Public Radio. -------------------- Scripts Basic Filter This shows basic high and low pass filters ( 120 Hz and 8 kHz respectively) and band reject filters for 50 and 60 Hz. # The high and low pass filters. hlpfil="highpass=f=120, highpass=f=120, lowpass=f=8000, lowpass=f=8000" # Band reject filters filter for 60Hz and another for 50Hz. linefil="bandreject=f=60:width_type=h:w=20, bandreject=f=50:width_type=h:w=20" # Filter using ffmpeg. ffmpeg -i inputfile.flac -af "$hlpfil, $linefil" outputname.flac # ====================================================================== afftdn Filter # noisefloor should be between 20 and 80. noisefloor=$1 # Run the noise reduction. ffmpeg -i testrec-filtered.flac -af "afftdn=nr=10:nf=-""$noisefloor" tmptestrec.flac # ====================================================================== agate Filter # threshold shoud be between 10 and 80. threshold=$1 # Run the noise reduction. ffmpeg -i testrec-filtered.flac -af "agate=threshold=-"$threshold"dB:range=-60dB" tmptestrec.flac # ====================================================================== arnndn Filter # mix should be between 0 and 1. mix=$1 # Run the noise reduction. ffmpeg -i testrec-filtered.flac -af 'arnndn=model=std.rnnn:mix='"$mix" tmptestrec.flac # ====================================================================== sox noisered Filter # Generate the noise profile from a sample of background noise. sox silencefiltered.flac -n noiseprof noise.prof # nramount shoudl be between 0 and 1 sox testrec-filtered.flac noiseout-testrec.flac noisered noise.prof "$nramount" # ====================================================================== Manual Filter for Maxwell Headset Noise # Create a series of band reject filters, from 1 kHz to 11 kHz. ftemplate="bandreject=f=%s000:width_type=h:w=100" kilospikefil=$( seq 1 11 | xargs printf "$ftemplate," ) # Using ffmpeg ffmpeg -i testrec-filtered.flac -af "$kilospikefil" tmptestrec.flac # ====================================================================== Create a "chirp" signal # Start frequency. f0=20 # End frequency. f1=15000 # Duration of signal. duration=10 ffmpeg -f lavfi -i "aevalsrc=sin(2 * PI * (0.5 * ($f1 - $f0)/$duration * t^2 + ($f0 * t))):s=44100:d=$duration" -c:a flac -af "aformat=sample_fmts=s16" chirp.flac # ====================================================================== Generate Audio Tones toneout () { printf -v freqval "%05d" $1 ffmpeg -f lavfi -i "sine=frequency=$freqval:duration=3" tmptone.flac # Normalize ffmpeg -i tmptone.flac -af loudnorm=I=-17:TP=-2.0:LRA=4.0 -ar 44.1k -sample_fmt s16 tone$freqval.flac rm tmptone.flac } # List of frequencies in hertz. freqlist="50 60 100 120 130 140 150 160 170 200 500 1000 2000 3000 4000 5000 6000 7000 8000 9000" for freq in $( echo $freqlist ); do toneout $freq done # ====================================================================== Provide feedback on this episode.
Fredrik snackar med Martin Nordgren om hans nya ljudanalysapp Spectralscan. Appen är ett sidoprojekt byggt på ett par veckor (påskhelgen hjälpte!) på webbteknik och förpackad för både Android och Ios. Vi diskuterar inspiration och lärdomar från spel, var språkmodeller varit till nytta, matte på oväntade ställen, och mycket mer. Dessutom ett sidospår om gränssnitt i köket, och funderingar kring bättre appar för att lära sig nya språk. Gränssnitt som är lite kreativa, och det kanske är okej att saker inte ser standard ut och kräver lite inlärning om de är effektiva och gör en lite glad när man använder dem? Ett stort tack till Cloudnet som sponsrar vår VPS! Har du kommentarer, frågor eller tips? Vi är @kodsnack, @thieta, @krig, och @bjoreman på Mastodon, har en sida på Facebook och epostas på info@kodsnack.se om du vill skriva längre. Vi läser allt som skickas. Gillar du Kodsnack får du hemskt gärna recensera oss i iTunes! Du kan också stödja podden genom att ge oss en kaffe (eller två!) på Ko-fi, eller handla något i vår butik. Länkar Martin Alla avsnitt med Martin Avsnitt 293 Dataspaning (Spotifylänk, dataspaning.se finns inte längre
Jay Gunkelman goes in BLIND on Case 9 — an 18-year-old's eyes-open EEG, age only, no history. Joshua Moore bet his car on a left posterior concussion. Jay sees something deeper: a thalamocortical dysrhythmia at the anterior cingulate, slow and fast rhythms coupled together, beta spindling above 30 Hz that most databases can't even see. Left-side mu disconnect shutting down the language hemisphere. Posterior insula, left side. After half a million EEGs, Jay's verdict isn't a diagnosis — it's a phenotype that tells you how to treat it, not what to call it.
This show has been flagged as Clean by the host. 01 This is the fourth episode in a four part series on simple podcasting. 02 Introduction In this episode we will discuss alternatives to Audacity when it comes to analyzing audio spectrums to find the sources of unwanted noise. I previously promised some gratuitous hackery, and we will get into that in this episode. 03 Recall that with Audacity you first import the audio file, then select the part of the audio you wish to analyze (or ctrl-A for all), and then select analyze > plot spectrum. This is in fact the only feature of Audacity that I know how to use. I am definitely not an audio expert. I do however have some background in processing and analyzing other signals, so some of the basics are familiar to me. 04 We can accomplish the same thing that Audacity does in this instance provided we can do the following. First, we need to get the data out of the audio file and into a form which we can import into other software. Second, we need to perform certain mathematical operations on this data. Finally, we need to be able to plot the results of these calculations on a chart. -------------------- 05 Fourier Transforms First though, we need a bit of mathematical background. What Audacity is doing when it shows a plot of frequency versus amplitude is that it is showing the results of a Fourier Transform. A Fourier Transforms is a mathematical operation that converts the time domain into the frequency domain. Any complex signal, audio or otherwise, can be broken down into a collection of sine waves of various frequencies. For example, a simple square wave signal of say 100 hertz can be represented as a sine wave of frequency 100 hertz plus a collection of higher frequency sine waves which add together to give the sharp corners. 06 A Fourier Transform finds these sine waves and sorts them out into separate bins, with each bin representing an individual frequency or a collection of closely related frequencies, depending on how fine grained the sorting is. 07 This is exactly what we want when we are trying to figure out how to filter out noise. Recall that earlier in this series we had to solve a problem with a high pitched background noise which was originating in my cheap microphone. Analyzing this audio by frequency showed that it was a series of individual tones at 1 kHz intervals. We were then able to use filters targeted at those frequencies to get rid of that noise. 08 There are several optimized versions of the Fourier Transform algorithm. A very common one is the Fast Fourier Transform, common abbreviated to just "FFT". This is so common that the term "FFT" is often used to simply mean any Fourier Transform even though this is not technically correct. 09 Typical FFT algorithms require that the number of data samples is exactly a power of two. So the number of samples we need may be something like 4096, 8192, or 65536, to give a few random examples. When we transform from the time domain to the frequency domain, each sample becomes a single frequency "bin". So the more samples we have, the finer the resolution we get in terms of frequency. 10 If we assume we are dealing with flac files recorded at a 44.1 kHz sample rate, that is, 44100 samples per second, then if we have 32768 samples, each "bin" represents slightly more than 1 hertz. If we have 65536 samples, then each "bin" represents a fraction of a hertz. For our purposes we will pick 65536 samples. That means we need 1.48 seconds of data. For simplicity's sake we will record at least 2 seconds of data and then just discard the samples that we don't need. 11 There is a further complication here. Fourier Transforms normally work with complex numbers. Recall from your school days that as well as integers and real numbers there are complex numbers. Each complex number consists of two parts, a real component and an imaginary component. I won't go into the details of this, just accept that each sample needs to have two components. Fortunately, if we don't have complex number data we can just set the imaginary component to zero and use that. This is enough talking about the theory, let's get into the practical details. -------------------- 12 Extracting Data from Audio Files First we will look at how to extract the data from the audio files. Fortunately, one of the programs which we have already been using can do this. To do this we will use Sox. I am not aware of an equivalent feature in ffmpeg. 13 Sox calls itself "SoX - Sound eXchange, the Swiss Army knife of audio manipulation" Sox is free software and is licensed under the GPLV2 or later. In this case we want to use a feature which allows us to convert a binary audio signal file to a text data file. To convert the file to text data we just give the output file a ".dat" file extension and Sox will do this for us. 14 Here is a command example. sox inputfile.flac tdata.dat 15 This gives us a file in the following format, assuming this is a mono audio recording. ; Sample Rate 44100 ; Channels 1 0 0.045471191406 2.2675737e-05 0.055023193359 4.5351474e-05 0.048217773438 6.8027211e-05 0.053192138672 etc. The first line states the sample frequency The second line states that the data is for channel 1. The data starts on the third line. Column 1 is the time in seconds. Column 2 is the waveform data point. 16 To analyze the data we want a subset of these samples. When we convert from the time domain to the frequency domain, our resolution will be determined by the number of samples. We would like therefore to have at least as many samples as the sampling rate. We also want the samples size to be an even multiple of two. The number of points we want to have is equal to the next even multiple of two above our chosen sampling rate, 44,100 Hz. This number would be 65536. 17 To extract this data from the file we can do the following. tail tdata.dat -n+3 | head -n65536 | awk '{printf "%sn", $2}' > tdata.csv 18 We use tail to skip over the first three lines. We use head to take the next 65536 lines and discard the rest. We use awk to extract the second column which we will use as the real component. We now have this data as a csv file in one column. -------------------- 19 Analyzing the Data To analyze the data we need software which can calculate FFTs. I will now show two examples of this, a very simple case using Libre Office Calc, and a more complex but more complete one using GNU Octave. 20 Using Libre Office We can do fourier analysis and plot charts using Libre Office. Take the csv file of data that we previously created. For this example I used data from a recording of silence so that I could see what internal noise was being generated by the headset. Open the csv file and import it into Libre Office Calc. 21 Now select all 65536 rows of column A. The Fourier function will automatically fill the imaginary component with zeros if we don't provide an column of imaginary numbers, so we don't need to provide a column of zeros. Then select Data > Statistics > Fourier Analysis. 22 A window will open allowing you to select various parameters. For Results to:, enter "D1". Grouped by Columns. Select OK. 23 New data should now appear starting in cell D1. The first line will say " Fourier Transform" The second line will state the input range. The third line will state "Real" in column D, and "Imaginary" in column E. The data will start in row 4. 24 For our simple example we will ignore the imaginary data and just use the real data, which will form our Y component when we plot it on a chart. We now need to create the X axis data. 25 Each cell is a "bin" of frequencies. Each cell therefore represents (sample frequency) / (Number of samples) Hz. 26 To create the X axis data showing frequency, enter the following formula in to column C to the left of each D column number. =((44100/65536) * (ROW() - 4) 27 We can now create an XY chart showing the frequency analysis. You may need to exclude the first couple of dozen rows as very low frequency components which cannot be heard may otherwise overwhelm the data we are interested in. Also, you only need the first half of the chart. The FFT mirrors the data from the first half of the array into the second half. 28 Because characterizing a sine wave requires a minimum of 2 points, although we have a sample frequency of 44.1 kHz, we really only have sound waves up to a maximum of half that, or 22.05 kHz. Create the chart with lines only. If you followed the above instructions, you should see something resembling what we saw in Audacity, except with each bin more sharply defined. 29 In the data that I had from a recording of unfiltered headset noise, I could see a distinct noise spike every 1000 hertz. 30 However, we have taken several shortcuts. First, the imaginary component of the data was ignored. Second, the magnitude (that is, Y axis) has both positive and negative peaks. Third, the data is not scaled to dB sound units, so we just have a relative measure. However, that by itself is enough to tell us where the frequencies are that we need to construct filters to deal with. 31 We could refine this spreadsheet a bit more to deal with the above issues, but I think we have demonstrated the basic principle, and working with a spreadsheet can be a bit awkward. However, if working with a spreadsheet is what you want to do, then you can add more columns and more formulae to improve on it. -------------------- 32 Other Analysis Software I will go on to GNU Octave in a moment, but I want to get a few other alternatives out of the way first. I won't go into any detail on them other than to point them out to people who want to have a go at trying these themselves. 33 Grace There is math and plotting software called Grace. This is free software, released under the GPL V2. According to the documentation, it seems to have the features we need, including an FFT function. However, I could not get it to work properly on Ubuntu 24.04. I could not get it to load a data file and plot data. 34 The error messages were vague and unhelpful. The file navigation system didn't work. There was no obvious path to success, and if it isn't easy to use then there is no point to it. This is fairly old software, designed for X Window and Motif. I gave up on it as not suitable for this series as I am looking for some fairly low effort things for people to try themselves. If someone else can get it to work on their PC, perhaps they could do an HPR episode on this themselves. 35 Command Line FFT Packages There are several command line FFT packages. They will read data from std in or from a file and output the FFT. However, these are not packaged for Ubuntu and appear to be distributed as C source code which you would download and compile. You can experiment with those if you wish, but I felt they were a bit out of scope for discussion here as I am looking at common tools that are ready to use. 36 Here are two examples. One is Command-line Fast Fourier Transform utility https://github.com/gregfjohnson/fft Another is cli-fft https://github.com/jonolafur/cli-fft 37 I have not tried these and cannot say whether they are any good or not. Similarly, there are a number of FFT packages that are libraries for languages such as Python. If you want to take the time to write a short program to go with them, you can create a dedicated FFT command line program. However, I felt that this too was out of scope for what I was trying to do here. 38 Doing it the Hard Way Hypothetically, it may be possible to write an FFT function in bash bc, which is the arbitrary precision calculator language which is part of the standard shell package. I say hypothetically, because I have not tried it. I think it would be an interesting challenge, but I don't have the time at the moment to try it. If anyone feels motivated to give it a try, they're welcome to give it a go and then do a podcast episode on it. -------------------- 39 GNU Octave We have seen that as well as using features built into Audacity to analyze the audio spectrum to see the frequencies of undesired noises, we were able to do the same using a Libre Office spreadsheet. 40 Now we'll look at another bit of software, GNU Octave. GNU Octave is free software, licensed under the GPL V3 or later. It is a mathematical scripting language, very similar to Matlab. People use it for mathematical, engineering, and scientific work. It can be found in most Linux distros and is available for some other operating systems as well. 41 Octave has two features built in that we need for our purposes. It does FFTs, and it has a plotting system built in to produce graphs. -------------------- 42 We will take the same audio test file that we used with Audacity and Libre Office and use it here as well. The bash script to convert the flac file to text data is essentially the same, with the exception that file extension on the output file as is ".txt" instead of ".csv". This latter change was an arbitrary decision on my part. 43 As a quick review, this bash script uses sox to convert a flac file to a text ".dat" file. Then it uses tail, head, and awk to extract the first 65536 rows of data, skipping over the header information and ignoring the first column of time data. This script will be in the show notes. -------------------- #!/bin/bash # This version is for use with the GNU Octave script. sox hsnoisemono.flac hsnoisemono.dat tail hsnoisemono.dat -n+3 | head -n65536 | awk '{printf "%sn", $2}' > hsnoisemono.txt -------------------- 44 We now have a 1.1 MB file containing 65536 samples of data in text format. Now the next thing we need to do is to create a short Octave script file. I will just give a brief overview of the script here, the full script will be in the show notes. 45 I put the script in a file called "octavespectrum.m". I have never used Octave before now, but the convention seems to be to give the script a ".m" ending. The "she-bang" line is "#!/usr/bin/env octave". If you make the file executable you can run it like any other script, or you can type "octave" and then the name of the script to run. 46 I won't read out the script in detail, as that would be too hard to following along in a podcast. However, I pass several arguments to the script including the name of the data file, and then two integers that I use to limit the display area in the Y and X axes so I can have the chart focus on the areas of interest that I want to see. I also pass a string containing the name of the graphic file that I want the chart exported to. This was an arbitrary decision on my part and you can just hard code these values in if that is what you want to do. 47 The arguments are accessed by calling the "args()" function, which returns an array of strings. Next, it reads in the specified file using the "dlmread()" function. This reads all of the data into an array. 48 Next, it performs a hamming windowing function on the data. I'll explain that briefly. It is standard practice when doing FFT signal processing to "window" the signal. Since the signal sample is of finite length, it will stop at each end of the array. 49 Unless you were lucky enough for this to happen exactly at a zero crossing, this would produced an abrupt transition in the data which looks like "noise" to the FFT. The solution is to taper the signal off gradually towards the ends so that when it gets cut off the signal is fairly small at that point anyway. There are a variety of different windowing functions, but "hamming" seems to be the most commonly used. 50 Next, it does an FFT using the "fft()" function. 51 This gives us real and imaginary outputs. These are combined by summing the squares of each corresponding real and imaginary element and then taking the square root of each and storing that in a new array. This gives a single array of the same length as the originals, but combining the two output components. If anyone wants to tell me that this isn't how things are done in the audio world, they're welcome to make an HPR episode telling us all the right way to do things. 52 Then it does some scaling and selection of subsets of data so we get the X axis in hertz and just the number of samples that we wish to look at. If you are looking at the script, the thing to keep in mind is that Octave will work on entire arrays of data in a single operation. You don't need to write explicit loops for this. The looping is handled implicitly as part of the syntax. 53 It also does various other things that make the chart easier to read. The comments in the script describe these in more detail. Since this is a script it's easier to add these sorts of refinements than is the case for a spreadsheet so I have made the effort to add them. Finally it calls the "plot()" function. If an output graphics file name was provided, it also creates a PNG file containing the same image using the "saveas" function. 54 We now see the chart, and it looks more or less as expected. However, this chart is interactive. You can zoom and pan the data, something that you can't do with either Audacity or Libre Office. The chart window doesn't have a function for exporting the resulting chart to a "png" file, it will only save to an ".ofig" file. The ofig file is not a standard graphics file, it is a serialization of the chart data that can only be looked at using the Octave chart viewer. 55 Alternatively, you can just take a screenshot of the chart after you have interactively zoomed and panned to a point of interest. At the bottom left of the chart window is a pair of x-y coordinates which tell you the current position of the mouse pointer in chart units. This is very handy as it can be used to get the exact (or close to exact) frequency of each noise spike. 56 The Y axis is not scaled in any particular units such as dB, as I'm not sure how to do that according to audio industry conventions. On the other hand, I'm not sure that it's really necessary, as I don't know what dB means in tangible terms anyway. It does show relative sizes, so it helps to determine whether you have one noise frequency or multiple frequencies to worry about. 57 If anyone is familiar with how to scale the raw data from a flac file as exported by Sox into dB units according to audio industry convention, then they are welcome to create an HPR episode telling us how to do it. -------------------- 58 Comments on GNU Octave I had never used GNU Octave before this, although I had heard of it and it is quite a significant piece of software for a specific segment of users. 59 The syntax is a bit odd especially in how it deals with array operations, but I was able to google various examples and answers to eventually get this working. A few other peculiarities are that it uses the percent "%" character to denote a comment, and leaving out the semi-colon at the end of the line causes it to print the answer to the console after executing the statement. 60 The GNU Octave solution was harder to get working than the Libre Office method. However, once it was working it is easier to use repeatedly. If I were to want to automatically generate audio files with different filtering or other options and wanted to script the creation of a large number of images showing the results, this would be the way to do it. 61 When your run the Octave script you may get a warning which says something like "QSocketNotifier: Can only be used with threads started with QThread". This is apparently a routine warning message from the Qt graphics system which has no real significance in this context and can be ignored for our purposes. -------------------- 62 We now have a bash script which will use sox to extract the data from a flac file, and a GNU Octave script which can be used to display the resulting frequency spectrum. This does more or less the same thing as "Plot Spectrum" does in Audacity, but allows for zooming and panning to get a more detailed look at the data. 63 However it doesn't give you an absolute reading of the sound levels in dB, something that Audacity does provide. What I wanted it for though was to find the frequencies of the audible noise in the signal, something that it does quite well. -------------------- #!/usr/bin/env octave % Perform an FFT on the data in a file and plot the results. % ====================================================================== % The sampling frequency. This must be changed to accommodate the % actual sampling frequency if it was something else. samplefreq = 44100; % Thickness of line on plot. linewidth = 2; % ====================================================================== % The name of the data file is passed as a argument. args = argv(); if length(args) < 3 quit endif % File name. fname = args{1}; % Clip the peak values. peakclip = str2double(args{2}); % How much data to show, in kHz. rbound = str2double(args{3}) * 1000; % The optional file name to save a chart image to. if length(args) > 3 chartfile = args{4}; else chartfile = ""; endif % ====================================================================== % Read the data in from the file. sampledata = dlmread(fname); % Number of samples. samplecount = length(sampledata); % ====================================================================== % Window the data. This helps deal with the discontinuity of data at % each end of the array and the effects this has on introducing apparent % noise into the signal. windoweddata = (hamming(samplecount) .* sampledata); % ====================================================================== % Do the actual FFT. fftresults = fft(windoweddata); % Get real component. r = real(fftresults); % Get the imaginary component. i = imag(fftresults); % Combine the real and imaginary. In order to square each element of each % array, we must use the ".^" operator, not just "^". rfft = sqrt(r.^2 + i.^2); realfft = rfft(1:samplecount); % ====================================================================== % Scale factor for frequency. fscale = samplefreq / samplecount; % X axis scale, scaled to frequency. f = (0:samplefreq/2) * fscale; % Take a subset of the data if specified. rbound has to be re-scaled % from kHz to array increments. freq = f(1:min(rbound / fscale,length(f))); % y axis. We take the absolute value and then limit (clip) the peaks % so that a few large peaks don't obscure the smaller ones. mag = min(abs(realfft(1: length(freq))), peakclip); % Plot the results. figure; whandle = plot(freq, mag, 'LineWidth', linewidth); title(["Audio Spectrum of ", fname]); xlabel("Frequency (Hz)"); ylabel("Unscaled Magnitude"); grid on; % If the appropriate optional argument was specified, save the chart % to a file of that name. if length(chartfile) > 4 saveas(gcf, chartfile, "png"); endif % Need this so the plot window stays open. waitfor(whandle); % ====================================================================== -------------------- This is the shell script used with the above Octave script. The arguments are 1 - the file name for the input data file. 2 - The value to clip the peaks at. 3 - The upper frequency bound in kHz. 4 - The output graphics file name. #!/bin/bash octave octavespectrum.m hsnoisemono.txt 10 12 hsnoisemono.png -------------------- 64 Episode Conclusion In this episode we covered the following topics. What Fourier transforms are. Extracting data from audio files using Sox. Analyzing the data using Libre Office. Analyzing the data using GNU Octave. And, several alternative analysis methods. 65 Series Conclusion This is the end of a four part series on simple podcasting. In the first episode, we covered a simple podcast recording method. This first episode is all you really need to make a podcast. 66 In the second episode we covered basic filtering and a few other simple topics. The methods discussed in that episode provide basic improvements to your audio if you feel the need for it. 67 In the third episode we covered how to analyze audio noise problems using Audacity and additional filtering techniques to deal with specific problems that we may find. We also covered command line recording, playback, and getting information about an audio recording. 68 In the fourth episode we engaged in a bit of gratuitous hackery for the fun of it and showed how to use alternative software methods to analyze audio signals. 69 I hope that this series has been both useful and entertaining and that you will use the knowledge gained here to create and submit your own HPR podcast episodes. -------------------- -------------------- Provide feedback on this episode.
This show has been flagged as Clean by the host. 01 This is the third in a four part series on simple podcasting. 02 In this episode we will cover the following topics: Analysis of audio noise problems and filtering methods used to deal with specific problems that we may find. Command line recording. Command line playback. Getting information about an audio recording. 03 Introduction When I did my first couple of podcasts I didn't notice that there was a quiet high pitched whine or buzz in the background. Nobody complained about it, but I thought I could do better in subsequent episodes. 04 Creating an Audio Sample If you have a similar problem, the first step is to find out where it is coming from. If there is no audible noise where you are recording, there is a good chance the problem is in the microphone or another part of the audio system. Plug in your microphone and record 2 or 3 seconds of quiet audio where you do not speak into the microphone or make other noise. 05 You will need a minimum amount of data in order to analyze it. For a flac file sampled at 44.1 kHz, 2 to 3 seconds of data should be enough. To get a sample of just electronic noise you can put the microphone in a drawer or somewhere like that if you want to be sure of getting a quiet signal. Any sound recorded in this way should be mainly from the microphone or other electronic elements in the analogue pathway. To get a sample of possible ambient noise, such as fans, make sure the microphone is in the open air in an area which is representative of where it will be when you are recording. -------------------- 06 Analyzing using Fourier Transforms Next you need to look at the wave form. At this point I will describe this using Audacity. I will show other ways later, but Audacity is actually the easiest if you are starting from nothing. You don't need to become an expert in Audacity to use it, just follow the steps I will describe. I myself don't know how to use Audacity beyond using this one feature. 07 We are going to analyze the sound spectrum in our sample. The technique being used is a Fourier Transform. A Fourier transform, often called an "FFT" for fast fourier transform, is a mathematical method of showing a signal in terms of frequency along the x axis instead of time. This allows us to spot troublesome noise frequencies which appear when we don't want them to. The FFT is a very common mathematical technique which is widely used in signal processing, not just in audio. 08 There is software which will create pretty coloured animations of sound waves, but this is not what you want. These are simply decorative patterns and won't tell us what we want to know. -------------------- 09 Using Audacity Install Audacity if you haven't already. Start Audacity. Select file > import > audio, then navigate to your sample and select "open". The file should load. 10 In the wave form part of the window, click anywhere and then type Ctrl-S to select all data points. The chart should turn a slightly darker colour. From the menu, select Analyze > Plot Spectrum. A new window will open, showing magnitude in db on the Y axis, and frequency in hertz on the x axis. For "algorithm" be sure it is set to "spectrum" 11 There are now two settings that we need to play with while we look for problems. One is "size" The default for this is 1024. The other is "axis". The default for this is "log frequency". -------------------- 12 What to Look For What we are looking for are large obvious spikes that stand out in the data. Since our test signal has very little to no actual audio data, any spikes should represent electrical or other noise that doesn't belong there. 13 I have found two combinations of settings to be most helpful in finding problems. These are Size 2048, axis linear frequency. Size 32768, axis log frequency. 14 A small size value can help very narrow spikes stand out from the background more, while a large size value can help separate spikes from surrounding noise. A linear frequency axis can help with seeing all spikes across the full frequency range, while a log frequency axis can help to better see what is happening in the often very crowded lowest frequency range. -------------------- 15 A Real Example of an Audio Problem If you have good audio equipment you may find nothing obvious. If you cannot hear any noise in the signal, there may be none of any consequence and there is nothing for you to do. 16 However, in my case I found two main problems and one lesser one. One problem was a spike at 60 Hz, which is the AC line frequency. There is also a lesser problem of a collection of a broad frequency range of noise below 60Hz. Both of these however will be taken care of by the basic filtering that we looked at earlier so we do not need to worry about them here. 17 The other main problem is I had a large spike at every 1 kHz interval from 1 kHz to 19 KHz. This was noise generated within the head set electronics, or the result of noise on the USB power supply. This is the product of a cheap headset. 18 These spikes are not very large compared to the volume of my voice, but if I do the same sort of analysis of samples where I am speaking, they appear in the intervals between words. This results in a high pitched whine or buzz. This was the source of the background noise or buzz in my first two podcast episodes. I need to get rid of this. 19 One option would be to get a better microphone, but, well, that wouldn't be any fun would it. It would also cost money and I don't want to spend any of that if I don't have to. If you analyze your own signal, you may find a different pattern, or even no noise at all. If you did not find anything when shielding your microphone from ambient audio noise, repeat the same test but with the microphone exposed to acoustic noise in the room. -------------------- 20 Advanced Filtering The next step is to figure out how to get rid of this noise. I have called this section "advanced filtering", but we are actually just making use of a technique that was already covered in basic filtering. 21 To deal with the remaining spikes we can use additional "band reject" filters, each of which removes a specific frequency at 1 kHz intervals from 1 kHz to 12 kHz. We will use this in combination with the filtering that we have already done previously, so we don't need to worry about anything above 12 kHz as we already remove that with a low pass filter. After a small amount of experimenting I came up with the following. 22 Because I am applying a total of 16 filters, 4 for basic filtering and 12 to deal with the specific microphone problems that I have, I have broken up the filters into separate strings. I then generate the 12 new band reject filters from a template. Note that I don't show the "de-esser" filter here. I would recommend adding it as a separate step after doing the sort of filtering we are talking about here. 23 Rather than reading out multiple lines of bash script, I will post them in the show notes. I will give a brief description of them here which you can refer to when reading the show notes. The FFMPEG and Sox versions are very similar in concept so I don't need to go over the Sox version in detail. See the show notes for it. FFMPEG Version Here's the FFMPEG version. # The high and low pass filters. hlpfil="highpass=f=80, lowpass=f=12000" # Band reject filters filter for 60Hz and another for 50Hz. linefil="bandreject=f=60:width_type=h:w=20, bandreject=f=50:width_type=h:w=20" # Create a series of band reject filters, from 1 kHz to 12 kHz. # Change or remove this part if your recording hardware does not require it. ftemplate="bandreject=f=%s000:width_type=h:w=100" kilospikefil=$( seq 1 12 | xargs printf "$ftemplate," ) # Using ffmpeg ffmpeg -i input.flac -af "$hlpfil, $linefil, $kilospikefil" output.flac 24 There are a total of 5 lines of bash script. In the first line, we create a string called "hlpfil" which is just the high and low pass filters copied from our previous discussion on basic filtering. In the second line, we create a string called "linefil" which is just the simple bandreject filters to cover 50 and 60 hertz AC line noise filters also from basic filtering. 25 In the third and fourth lines, we create a string called "kilospikefil" containing the new filters. The "f" parameter represents the frequency we are targeting. The "w" parameter represents the "width" of the frequency range we are filtering in terms of hertz. The filter is applied gradually rather than with a sharp cut-off, so to get more filtering action we need to have larger width. In this case I decided to hammer the spike quite aggressively and so used a relatively wide width of 100 hertz. Testing with a voice file did not show any noticeable distortion, so it's an acceptable solution. 26 For this filter we need to create a dozen filter command so we use the shell "seq" command to generate a sequence of numbers from 1 to 12. We then pipe that into the xargs command which applies each number to the next command. The next command is "printf", which takes the number it gets from xargs and applies it to the "ftemplate" string template in a manner very similar to C programming printf string templates. 27 We also have a comma in there to separate each of the individual filters. We then surround this with a $ and () so we can run the command and capture the output into a variable. Then we call ffmpeg and pass it the filters we created by putting the variable names inside a double quoted string, separated by commas. All of this will be in the show notes, so don't worry about trying to get the exact details right now. Sox Version Here's the Sox version. # The high and low pass filters. sxhlpfil="highpass 80 lowpass 12000" # Band reject filters filter for 60Hz and another for 50Hz. sxfilter="$sxhlpfil $sxkilospikefil bandreject 60 20 bandreject 50 20" # Create a series of reject filters filters, from 1 kHz to 12 kHz. sxftemplate="bandreject %s000 100" sxkilospikefil=$( seq 1 12 | xargs printf "$sxftemplate " ) # Using SOX. sox input.flac output.flac $sxhlpfil $sxfilter $sxkilospikefil 28 The Sox version is very similar with the exception that the command arguments representing the filters must not be in quoted strings as Sox wants to see them as separate arguments instead of parsing a string. -------------------- 29 Confirming the Effect If we apply the above filters and look at this headset noise output file in the Audacity spectrum analyzer we will now see that these noise spikes are almost completely gone. We can now confirm how well this works by using a test audio file. Any normal short voice audio file will do for this. Just talk into the microphone normally and create a voice sample file that is 5 or 10 seconds long, or whatever you feel comfortable with. 30 With the original unfiltered voice audio I can hear a distinct high pitched whine overlaying the voice. With the filtered audio that whine or hum is not detectable. If we then look at the voice file in the Audacity spectrum analyzer, we can see distinct "notches" at the 50 Hz and 60 Hz frequencies, and at every 1 kHz from 1 kHz to 12 kHz. These notches are narrow enough that they won't cause a noticeable problem with voice signals. If we apply this filter to voice samples, the buzz or whine is gone and the voice signal sounds fine. Despite using a very cheap microphone, I now have acceptable quality audio for a podcast. 31 Again I want to emphasize that in this instance I am dealing with deficiencies with my hardware instead of buying a better microphone. These additional filters are intended to deal with the specific hardware problem I am facing. You don't need these additional filters if you cannot detect an audible problem. On the other hand, if you have a different problem you may wish to deal with a different set of frequencies. Finding these problems is the reason for using a spectrum analyzer. 32 FFMPEG has other filtering methods as well. However, as I didn't end up using them I can't really do an adequate job of describing them. If anyone has used them successfully, they are welcome to make a podcast on the subject. -------------------- 33 Completing the Process With these new filters added into the middle of the processing steps, you can now complete the processing by doing the de-essing, normalizing, and review steps as described in the previous episode. -------------------- 34 Command Line Recording I will now cover a separate topic, which is recording using command line programs. I am covering it in this episode as it is a short topic and it is convenient to talk about it here. 35 As well as using GUI based recording programs such as Gnome Sound Recorder, it is possible to record podcast episodes using command line tools such as FFMPEG. As for why you may wish to use command line tools to record audio, there are several reasons. One is that you may simply prefer to do it this way because it pleases you to do so. Another is that it allows the recording step to be included in a script that encompasses other parts of the process, automating what may have otherwise been separate manual steps. 36 However, if you don't find these arguments particularly compelling, then I'm not going to attempt to persuade you to use the command line to record audio. I am doing this part of this episode out of a desire to have a bit of fun and I probably won't be using it much myself. I will however use one of these methods to record this part of this episode. 37 Recording with FFMPEG - The Basics One of the common command line tools you can use is FFMPEG, a package which I have previously mentioned with respect to filtering audio files. Here is an example of how to record using FFMPEG. We call FFMPEG specifying the audio input system as the FFMPEG input, and then specify a file to output to. 38 # Record audio. ffmpeg -f pulse -i default ff.flac 39 Press 'q' to stop. This uses pulse audio on Linux for input "-f pulse", and the default input "-i default". However, this does not specify the the sample rate or mono recording. To do that we need to add a few more parameters as in the following 40 ffmpeg -f pulse -i default -ac 1 -ar 44100 ff.flac 41 "-ac 1" specifies mono output "-ar 44100" specifies 44.1 khz bit rate. 42 Playback with FFMPEG - The Basics FFMPEG can also play back music. In this case however we need to call the "ffplay" program rather than FFMPEG itself. To play an audio file, simply call ffplay and give it the name of the audio file as an argument to the command. For example: 43 # Play an audio file. ffplay podcast.flac 44 We can also call it with the "autoexit" option, which tells ffplay to automatically exit when the audio file has finished playing. ffplay -autoexit ff.flac 45 -autoexit means Exit when the audio file is done playing. 46 To exit in the middle of the recording, press "q' or ESC. To pause the playback, press "p" or space bar. To decrease the volume press "9" or "/". To increase the volume press "0" or "*". 47 To seek forward 10 seconds, press the right cursor button. To seek backward 10 seconds, press the left cursor button. To seek forward 1 minute, press the up cursor button. To seek backward 1 minute, press the down cursor button. 48 The "0" and "9" keys mentioned above are those on the top row of the keyboard, not the ones on the separate numeric pad. 49 While the recording is playing, a graphical window will open which shows a cascading waveform based on the current content. This is purely decorative and does not serve any particularly useful purpose. -------------------- #!/bin/bash # Record a podcast episode segment. # Get the next file name. # First we check if any matching file patterns exist. If they don't, # then we create the first one starting counting at 1. fcount=$( ls [0-9][0-9].flac 2>/dev/null | wc -l ) if (( $fcount < 1 )); then fname="01.flac" else # If there are any matching file patterns, we find the highest number # and increment it by 1. filenum=$( ls [0-9][0-9].flac 2>&1 | cut -d. -f1 | sort | tail -1 ) newfilecount=$(( 10#$filenum + 1 )) fname=$( printf "%02d.flac" $newfilecount ) fi echo "Recording to: $fname" # Record using ffmpeg. # This makes use of pulse audio and the input is the default audio input. # The sample rate is set to 44.1 kHz, and it is recorded as mono (1 channel). ffmpeg -f pulse -i default -ar 44100 -ac 1 $fname echo "Recorded audio to: $fname" # Report on basic information about the audio file that was just recorded. ffprobe -hide_banner $fname -------------------- 50 Sox - Not so Good I did not find the recording or playback features of Sox to be as useful as those of FFMPEG, so I won't bother to cover them here. -------------------- 51 Getting Information About an Audio Recording There are also command line tools which can be used to retrieve information about audio recordings. 52 FFMPEG Version With FFMPEG this is called "ffprobe". For example: 53 ffprobe hpr4566.mp3 54 This will print out a lot of information about FFMPEG itself. To skip that use the hide_banner option. 55 ffprobe -hide_banner hpr4566.mp3 56 This will print out information about the audio recording. This will include things like the duration, bit rate, sample rate, stereo or mono, etc. If the author added metadata tags to the file, it will also show those. HPR add things like the title, author, copyright license, comment, etc. You can extract the ones you want using something like grep and cut. 57 Sox Version Sox has a similar feature, called "soxi". 58 soxi ff.flac 59 However, it may not work on mp3 files if you do not have an mp3 handler for it installed. -------------------- 60 Conclusion In this episode we took a brief look at an example of how to solve an audio problem through filtering. We looked at how to use Audacity to find where the problems were. We then looked at how to apply filters to remove these sources of noise. We also looked at how to record podcasts and get information about audio files using command line tools. 61 In the next episode we will look at alternatives to Audacity for analyzing audio. While Audacity works just fine, this is an opportunity to have a bit fun with some gratuitous hackery. 62 This has been the third episode in a four part series on simple podcasting. -------------------- -------------------- Full Audio Processing Pipeline This version includes the special filters used to fix my headset problems. Use the version from the previous episode if you do not have the same audio hardware problems. #!/bin/bash # Full processing pipeline for making simple podcasts. # ====================================================================== # Concatenate multiple flac files into a single flac file. # This is used to combine podcast recorded segments into a single # flac file for uploading to HPR. concataudio () { outputname="$1" # First create the list file. printf "file '%s'n" [0-9][0-9].flac > podseglist.txt # Now concatenate them ffmpeg -f concat -safe 0 -i podseglist.txt "$outputname" rm podseglist.txt } # ====================================================================== # Basic and advanced filters. filter () { inputfile=$1 outputname=$2 # Using ffmpeg. # The high and low pass filters. hlpfil="highpass=f=80, lowpass=f=12000" # Band reject filters filter for 60Hz and another for 50Hz. linefil="bandreject=f=60:width_type=h:w=20, bandreject=f=50:width_type=h:w=20" # Create a series of band reject filters, from 1 kHz to 11 kHz. ftemplate="bandreject=f=%s000:width_type=h:w=100" kilospikefil=$( seq 1 11 | xargs printf "$ftemplate," ) # Using ffmpeg ffmpeg -i $inputfile -af "$hlpfil, $linefil, $kilospikefil" $outputname } # ====================================================================== # De-Essing. deessing () { inputfile=$1 outputname=$2 option=$3 # De-essing filter. ffmpeg -i $inputfile -filter_complex "deesser=i=0.5:m=0.5:f=0.5:s=$option" -b:a 336k -sample_fmt s16 $outputname } # ====================================================================== # Normalizing the audio to EBU R128 standard for review using ffmpeg. normffmpeg () { inputfile=$1 outputname=$2 # Normalize to EBU R128 standard. ffmpeg -i $inputfile -af loudnorm=I=-17:TP=-2.0:LRA=4.0 -ar 44.1k $outputname } # ====================================================================== # Output an MP3 version to help with reviewing. mp3convert () { inputfile=$1 # Get the name of the file and then create the output file name. j=$( basename $inputfile ".flac" ) outputname="$j"".mp3" # Convert to MP3. ffmpeg -i $inputfile $outputname } # ====================================================================== # Concatenate the separate audio files. concataudio fullpod-unfiltered.flac # Basic filtering. filter fullpod-unfiltered.flac filtered.flac # De-essing. This is the version to send for publishing. # The third argument should be "o" for de-essing, or "i" for pass through without de-essing. deessing filtered.flac fullpod.flac o # Normalized for review. normffmpeg fullpod.flac fullpod-norm.flac # Output an MP3 copy for review. mp3convert fullpod-norm.flac -------------------- -------------------- Provide feedback on this episode.
Episode: 1568 Lord Kelvin's miscalculation of the age of the earth. Today, a Victorian scientist miscalculates the age of the earth.
u:fourier weekly liquid drum and bass series #3 by U:Fourier UK
u:fourier weekly liquid drum and bass series #2 by U:Fourier UK
u:fourier weekly liquid drum and bass series #1 by U:Fourier UK
durée : 00:29:47 - Les Nuits de France Culture - par : Marc Floriot - En 1971, Roland Barthes s'entretenait autour de la parution de son livre "Sade, Fourier, Loyola" (Seuil). En compagnie de trois critiques, il revenait sur la nature de l'écriture et les systèmes de langage, la structure des textes, et la singularité de ces trois auteurs dans l'histoire littéraire. - réalisation : David Jacubowiez
This week we're joined by Matthias Puech from the GRM (Groupe des Recherches Musicales) and lead developer of GRM Atelier. We talk about his history developing alternate firmwares for Eurorack modules, composing for GRM's Acousmonium, and take a side trip to Fourier's tomb. GRM Atelier: https://grm.tools/en/atelier.html Matthias' Website: https://mqtthiqs.github.io/ Hit the Patreon: www.patreon.com/basecampbeta Opening music: Beau Wanzer - Basement Dwellers basecampbeta808@gmail.com
진행자: 홍유, TannithHumanoid race with China may be won by the hand, not on foot기사요약: 중국이 휴머노이드 로봇의 양산과 이동 기술에서는 앞서가고 있지만, 정밀한 ‘손' 조작 기술에서는 여전히 한계가 있어, 한국이 센서·촉각 데이터 기반 경쟁력으로 핵심 주도권을 노리고 있다는 분석이다.[1] Earlier this month, Seoul's COEX hosted an event whose name said it all: the China Humanoid Conference, "First Journey to Korea." Unitree, Fourier, Leju and Huawei presented humanoids already working in Chinese factories and retail stores.host: 주회하다, 열다retail store: 소매 상점[2] It felt less like an introduction than a declaration. The Korean engineers in the audience knew the scoreboard: China ships the vast majority of the world's humanoids, with over 140 companies in the race. On volume and speed, the contest was over.declaration: 선언vast: 어마어마한[3] Not everyone on stage was triumphant, though. Yan Weixin, a senior researcher at Shanghai Jiao Tong University's AI institute, acknowledged from the stage that his team had defined 33 fundamental hand motions and succeeded with 32. The exception: chopsticks, a task that demands "very precise force control and tactile perception." Even China's humanoids, Yan conceded, cannot yet perform the kind of delicate manipulation that most 5-year-olds master at the dinner table.exception: 예외precise: 정확한, 정밀한tactile: 촉감의concede: 인정하다, 수긍하다[4] The distinction matters because it maps onto two very different competitions. Walking is an engineering problem China solved with speed and scale. Dexterous manipulation is a data problem no country has solved yet, and South Korean companies believe they hold some of the missing pieces.distinction: 차이dexterous: 손재주가 비상한기사원문: https://www.koreaherald.com/article/10698201
Peripheral artery disease has been called the ‘silent circulatory crisis'—affecting millions, limiting mobility, and quietly raising the risk of heart attack, stroke, and limb loss. For decades, treatment focused on walking programs, aspirin, and sometimes a stent or bypass. But today, the landscape is changing. From PCSK9 inhibitors that drive cholesterol to record lows, to GLP-1 agonists like semaglutide improving walking distance, to novel antithrombotic strategies that balance bleeding and clotting—PAD care is entering a new era. In this episode, we'll explore the breakthroughs, the evidence behind them, and what they mean for patients who just want to keep moving forward." Hosted by the University of Michigan Department of Vascular Surgery: - Robert Beaulieu, Program Director - Frank Davis, Assistant Professor of Surgery - Luciano Delbono, PGY-5 House Officer - Andrew Huang, PGY-4 House Officer - Carolyn Judge, PGY-2 House Officer Learning objectives: 1. Describe the current evidence-based recommendations for multifactorial medical management of peripheral artery disease (PAD), including lipid, glycemic, and antithrombotic strategies per 2024 SVS/AHA guidelines. 2. Interpret the clinical implications of the FOURIER trial regarding the role of PCSK9 inhibition in reducing cardiovascular events in patients with atherosclerotic disease, including PAD. 3. Evaluate the emerging role of GLP-1 receptor agonists, such as semaglutide, in improving walking performance and quality of life among patients with diabetic PAD based on findings from the STRIDE trial. Sponsor URL: https://www.goremedical.com/ References: H. L. Gornik et al., “2024 ACC/AHA/AACVPR/APMA/ABC/SCAI/SVM/SVN/SVS/SIR/VESS Guideline for the Management of Lower Extremity Peripheral Artery Disease,” JACC, vol. 83, no. 24, pp. 2497–2604, June 2024, doi: 10.1016/j.jacc.2024.02.013. L. Mazzolai et al., “2024 ESC Guidelines for the management of peripheral arterial and aortic diseases: Developed by the task force on the management of peripheral arterial and aortic diseases of the European Society of Cardiology (ESC) Endorsed by the European Association for Cardio-Thoracic Surgery (EACTS), the European Reference Network on Rare Multisystemic Vascular Diseases (VASCERN), and the European Society of Vascular Medicine (ESVM),” Eur Heart J, vol. 45, no. 36, pp. 3538–3700, Sept. 2024, doi: 10.1093/eurheartj/ehae179. https://pubmed.ncbi.nlm.nih.gov/40169145/ M. S. Sabatine et al., “Evolocumab and Clinical Outcomes in Patients with Cardiovascular Disease,” N Engl J Med, vol. 376, no. 18, pp. 1713–1722, May 2017, doi: 10.1056/NEJMoa1615664. https://pubmed.ncbi.nlm.nih.gov/28304224/ M. P. Bonaca et al., “Semaglutide and walking capacity in people with symptomatic peripheral artery disease and type 2 diabetes (STRIDE): a phase 3b, double-blind, randomised, placebo-controlled trial,” Lancet, vol. 405, no. 10489, pp. 1580–1593, May 2025, doi: 10.1016/S0140-6736(25)00509-4. https://pubmed.ncbi.nlm.nih.gov/40169145/ N. E. Hubbard, D. Lim, and K. L. Erickson, “Beef tallow increases the potency of conjugated linoleic acid in the reduction of mouse mammary tumor metastasis,” J Nutr, vol. 136, no. 1, pp. 88–93, Jan. 2006, doi: 10.1093/jn/136.1.88. https://pubmed.ncbi.nlm.nih.gov/16365064/ Please visit https://behindtheknife.org to access other high-yield surgical education podcasts, videos and more. If you liked this episode, check out our recent episodes here: https://behindtheknife.org/listen Behind the Knife Premium: General Surgery Oral Board Review Course: https://behindtheknife.org/premium/general-surgery-oral-board-review Trauma Surgery Video Atlas: https://behindtheknife.org/premium/trauma-surgery-video-atlas Dominate Surgery: A High-Yield Guide to Your Surgery Clerkship: https://behindtheknife.org/premium/dominate-surgery-a-high-yield-guide-to-your-surgery-clerkship Dominate Surgery for APPs: A High-Yield Guide to Your Surgery Rotation: https://behindtheknife.org/premium/dominate-surgery-for-apps-a-high-yield-guide-to-your-surgery-rotation Vascular Surgery Oral Board Review Course: https://behindtheknife.org/premium/vascular-surgery-oral-board-audio-review Colorectal Surgery Oral Board Review Course: https://behindtheknife.org/premium/colorectal-surgery-oral-board-audio-review Surgical Oncology Oral Board Review Course: https://behindtheknife.org/premium/surgical-oncology-oral-board-audio-review Cardiothoracic Oral Board Review Course: https://behindtheknife.org/premium/cardiothoracic-surgery-oral-board-audio-review Download our App: Apple App Store: https://apps.apple.com/us/app/behind-the-knife/id1672420049 Android/Google Play: https://play.google.com/store/apps/details?id=com.btk.app&hl=en_US
Rubrique:nouvelles Auteur: leo-larguier Lecture: Daniel LuttringerDurée: 09min Fichier: 6 Mo Résumé du livre audio: " Sous les branches ocellées d'azur du vieux pin qui nous abritait du soleil, le docteur Chatelain, le romancier Marc Delombre et moi, nous venions de discuter un article paru le matin même dans un journal, l'article d'un utopiste de 48, qui proposait au gouvernement des choses naïvement monstrueuses. L'écrivain estimait que la première nudité que voit un jeune homme doit être parfaite, qu'elle a une influence sur sa vie, et il s'élevait contre les maisons publiques et leurs misérables pensionnaires. L'article faisait penser à Jean-Jacques et à Fourier." Cet enregistrement est mis à disposition sous un contrat Creative Commons.
Dans cet épisode de fin d'année plus relax que d'accoutumée, Arnaud, Guillaume, Antonio et Emmanuel distutent le bout de gras sur tout un tas de sujets. L'acquisition de Confluent, Kotlin 2.2, Spring Boot 4 et JSpecify, la fin de MinIO, les chutes de CloudFlare, un survol des dernieres nouveauté de modèles fondamentaux (Google, Mistral, Anthropic, ChatGPT) et de leurs outils de code, quelques sujets d'architecture comme CQRS et quelques petits outils bien utiles qu'on vous recommande. Et bien sûr d'autres choses encore. Enregistré le 12 décembre 2025 Téléchargement de l'épisode LesCastCodeurs-Episode-333.mp3 ou en vidéo sur YouTube. News Langages Un petit tutoriel par nos amis Sfeiriens montrant comment récupérer le son du micro, en Java, faire une transformée de Fourier, et afficher le résultat graphiquement en Swing https://www.sfeir.dev/back/tutoriel-java-sound-transformer-le-son-du-microphone-en-images-temps-reel/ Création d'un visualiseur de spectre audio en temps réel avec Java Swing. Étapes principales : Capture du son du microphone. Analyse des fréquences via la Transformée de Fourier Rapide (FFT). Dessin du spectre avec Swing. API Java Sound (javax.sound.sampled) : AudioSystem : point d'entrée principal pour l'accès aux périphériques audio. TargetDataLine : ligne d'entrée utilisée pour capturer les données du microphone. AudioFormat : définit les paramètres du son (taux d'échantillonnage, taille, canaux). La capture se fait dans un Thread séparé pour ne pas bloquer l'interface. Transformée de Fourier Rapide (FFT) : Algorithme clé pour convertir les données audio brutes (domaine temporel) en intensités de fréquences (domaine fréquentiel). Permet d'identifier les basses, médiums et aigus. Visualisation avec Swing : Les intensités de fréquences sont dessinées sous forme de barres dynamiques. Utilisation d'une échelle logarithmique pour l'axe des fréquences (X) pour correspondre à la perception humaine. Couleurs dynamiques des barres (vert → jaune → rouge) en fonction de l'intensité. Lissage exponentiel des valeurs pour une animation plus fluide. Un article de Sfeir sur Kotlin 2.2 et ses nouveautés - https://www.sfeir.dev/back/kotlin-2-2-toutes-les-nouveautes-du-langage/ Les guard conditions permettent d'ajouter plusieurs conditions dans les expressions when avec le mot-clé if Exemple de guard condition: is Truck if vehicule.hasATrailer permet de combiner vérification de type et condition booléenne La multi-dollar string interpolation résout le problème d'affichage du symbole dollar dans les strings multi-lignes En utilisant $$ au début d'un string, on définit qu'il faut deux dollars consécutifs pour déclencher l'interpolation Les non-local break et continue fonctionnent maintenant dans les lambdas pour interagir avec les boucles englobantes Cette fonctionnalité s'applique uniquement aux inline functions dont le corps est remplacé lors de la compilation Permet d'écrire du code plus idiomatique avec takeIf et let sans erreur de compilation L'API Base64 passe en version stable après avoir été en preview depuis Kotlin 1.8.20 L'encodage et décodage Base64 sont disponibles via kotlin.io.encoding.Base64 Migration vers Kotlin 2.2 simple en changeant la version dans build.gradle.kts ou pom.xml Les typealias imbriqués dans des classes sont disponibles en preview La context-sensitive resolution est également en preview Les guard conditions préparent le terrain pour les RichError annoncées à KotlinConf 2025 Le mot-clé when en Kotlin équivaut au switch-case de Java mais sans break nécessaire Kotlin 2.2.0 corrige les incohérences dans l'utilisation de break et continue dans les lambdas Librairies Sprint Boot 4 est sorti ! https://spring.io/blog/2025/11/20/spring-boot-4-0-0-available-now Une nouvelle génération : Spring Boot 4.0 marque le début d'une nouvelle génération pour le framework, construite sur les fondations de Spring Framework 7. Modularisation du code : La base de code de Spring Boot a été entièrement modularisée. Cela se traduit par des fichiers JAR plus petits et plus ciblés, permettant des applications plus légères. Sécurité contre les nuls (Null Safety) : D'importantes améliorations ont été apportées pour la "null safety" (sécurité contre les valeurs nulles) à travers tout l'écosystème Spring grâce à l'intégration de JSpecify. Support de Java 25 : Spring Boot 4.0 offre un support de premier ordre pour Java 25, tout en conservant une compatibilité avec Java 17. Améliorations pour les API REST : De nouvelles fonctionnalités sont introduites pour faciliter le versioning d'API et améliorer les clients de services HTTP pour les applications basées sur REST. Migration à prévoir : S'agissant d'une version majeure, la mise à niveau depuis une version antérieure peut demander plus de travail que d'habitude. Un guide de migration dédié est disponible pour accompagner les développeurs. Chat memory management dans Langchain4j et Quarkus https://bill.burkecentral.com/2025/11/25/managing-chat-memory-in-quarkus-langchain4j/ Comprendre la mémoire de chat : La "mémoire de chat" est l'historique d'une conversation avec une IA. Quarkus LangChain4j envoie automatiquement cet historique à chaque nouvelle interaction pour que l'IA conserve le contexte. Gestion par défaut de la mémoire : Par défaut, Quarkus crée un historique de conversation unique pour chaque requête (par exemple, chaque appel HTTP). Cela signifie que sans configuration, le chatbot "oublie" la conversation dès que la requête est terminée, ce qui n'est utile que pour des interactions sans état. Utilisation de @MemoryId pour la persistance : Pour maintenir une conversation sur plusieurs requêtes, le développeur doit utiliser l'annotation @MemoryId sur un paramètre de sa méthode. Il est alors responsable de fournir un identifiant unique pour chaque session de chat et de le transmettre entre les appels. Le rôle des "scopes" CDI : La durée de vie de la mémoire de chat est liée au "scope" du bean CDI de l'IA. Si un service d'IA a un scope @RequestScoped, toute mémoire de chat qu'il utilise (même via un @MemoryId) sera effacée à la fin de la requête. Risques de fuites de mémoire : Utiliser un scope large comme @ApplicationScoped avec la gestion de mémoire par défaut est une mauvaise pratique. Cela créera une nouvelle mémoire à chaque requête qui ne sera jamais nettoyée, entraînant une fuite de mémoire. Bonnes pratiques recommandées : Pour des conversations qui doivent persister (par ex. un chatbot sur un site web), utilisez un service @ApplicationScoped avec l'annotation @MemoryId pour gérer vous-même l'identifiant de session. Pour des interactions simples et sans état, utilisez un service @RequestScoped et laissez Quarkus gérer la mémoire par défaut, qui sera automatiquement nettoyée. Si vous utilisez l'extension WebSocket, le comportement change : la mémoire par défaut est liée à la session WebSocket, ce qui simplifie grandement la gestion des conversations. Documentation Spring Framework sur l'usage JSpecify - https://docs.spring.io/spring-framework/reference/core/null-safety.html Spring Framework 7 utilise les annotations JSpecify pour déclarer la nullabilité des APIs, champs et types JSpecify remplace les anciennes annotations Spring (@NonNull, @Nullable, @NonNullApi, @NonNullFields) dépréciées depuis Spring 7 Les annotations JSpecify utilisent TYPE_USE contrairement aux anciennes qui utilisaient les éléments directement L'annotation @NullMarked définit par défaut que les types sont non-null sauf si marqués @Nullable @Nullable s'applique au niveau du type usage, se place avant le type annoté sur la même ligne Pour les tableaux : @Nullable Object[] signifie éléments nullables mais tableau non-null, Object @Nullable [] signifie l'inverse JSpecify s'applique aussi aux génériques : List signifie liste d'éléments non-null, List éléments nullables NullAway est l'outil recommandé pour vérifier la cohérence à la compilation avec la config NullAway:OnlyNullMarked=true IntelliJ IDEA 2025.3 et Eclipse supportent les annotations JSpecify avec analyse de dataflow Kotlin traduit automatiquement les annotations JSpecify en null-safety native Kotlin En mode JSpecify de NullAway (JSpecifyMode=true), support complet des tableaux, varargs et génériques mais nécessite JDK 22+ Quarkus 3.30 https://quarkus.io/blog/quarkus-3-30-released/ support @JsonView cote client la CLI a maintenant la commande decrypt (et bien sûr au runtime via variables d'environnement construction du cache AOT via les @IntegrationTest Un autre article sur comment se préparer à la migration à micrometer client v1 https://quarkus.io/blog/micrometer-prometheus-v1/ Spock 2.4 est enfin sorti ! https://spockframework.org/spock/docs/2.4/release_notes.html Support de Groovy 5 Infrastructure MinIO met fin au développement open source et oriente les utilisateurs vers AIStor payant - https://linuxiac.com/minio-ends-active-development/ MinIO, système de stockage objet S3 très utilisé, arrête son développement actif Passage en mode maintenance uniquement, plus de nouvelles fonctionnalités Aucune nouvelle pull request ou contribution ne sera acceptée Seuls les correctifs de sécurité critiques seront évalués au cas par cas Support communautaire limité à Slack, sans garantie de réponse Étape finale d'un processus débuté en été avec retrait des fonctionnalités de l'interface admin Arrêt de la publication des images Docker en octobre, forçant la compilation depuis les sources Tous ces changements annoncés sans préavis ni période de transition MinIO propose maintenant AIStor, solution payante et propriétaire AIStor concentre le développement actif et le support entreprise Migration urgente recommandée pour éviter les risques de sécurité Alternatives open source proposées : Garage, SeaweedFS et RustFS La communauté reproche la manière dont la transition a été gérée MinIO comptait des millions de déploiements dans le monde Cette évolution marque l'abandon des racines open source du projet IBM achète Confluent https://newsroom.ibm.com/2025-12-08-ibm-to-acquire-confluent-to-create-smart-data-platform-for-enterprise-generative-ai Confluent essayait de se faire racheter depuis pas mal de temps L'action ne progressait pas et les temps sont durs Wallstreet a reproché a IBM une petite chute coté revenus software Bref ils se sont fait rachetés Ces achats prennent toujuors du temps (commission concurrence etc) IBM a un apétit, apres WebMethods, apres Databrix, c'est maintenant Confluent Cloud L'internet est en deuil le 18 novembre, Cloudflare est KO https://blog.cloudflare.com/18-november-2025-outage/ L'Incident : Une panne majeure a débuté à 11h20 UTC, provoquant des erreurs HTTP 5xx généralisées et rendant inaccessibles de nombreux sites et services (comme le Dashboard, Workers KV et Access). La Cause : Il ne s'agissait pas d'une cyberattaque. L'origine était un changement interne des permissions d'une base de données qui a généré un fichier de configuration ("feature file" pour la gestion des bots) corrompu et trop volumineux, faisant planter les systèmes par manque de mémoire pré-allouée. La Résolution : Les équipes ont identifié le fichier défectueux, stoppé sa propagation et restauré une version antérieure valide. Le trafic est revenu à la normale vers 14h30 UTC. Prévention : Cloudflare s'est excusé pour cet incident "inacceptable" et a annoncé des mesures pour renforcer la validation des configurations internes et améliorer la résilience de ses systèmes ("kill switches", meilleure gestion des erreurs). Cloudflare encore down le 5 decembre https://blog.cloudflare.com/5-december-2025-outage Panne de 25 minutes le 5 décembre 2025, de 08:47 à 09:12 UTC, affectant environ 28% du trafic HTTP passant par Cloudflare. Tous les services ont été rétablis à 09:12 . Pas d'attaque ou d'activité malveillante : l'incident provient d'un changement de configuration lié à l'augmentation du tampon d'analyse des corps de requêtes (de 128 KB à 1 MB) pour mieux protéger contre une vulnérabilité RSC/React (CVE-2025-55182), et à la désactivation d'un outil interne de test WAF . Le second changement (désactivation de l'outil de test WAF) a été propagé globalement via le système de configuration (non progressif), déclenchant un bug dans l'ancien proxy FL1 lors du traitement d'une action "execute" dans le moteur de règles WAF, causant des erreurs HTTP 500 . La cause technique immédiate: une exception Lua due à l'accès à un champ "execute" nul après application d'un "killswitch" sur une règle "execute" — un cas non géré depuis des années. Le nouveau proxy FL2 (en Rust) n'était pas affecté . Impact ciblé: clients servis par le proxy FL1 et utilisant le Managed Ruleset Cloudflare. Le réseau China de Cloudflare n'a pas été impacté . Mesures et prochaines étapes annoncées: durcir les déploiements/configurations (rollouts progressifs, validations de santé, rollback rapide), améliorer les capacités "break glass", et généraliser des stratégies "fail-open" pour éviter de faire chuter le trafic en cas d'erreurs de configuration. Gel temporaire des changements réseau le temps de renforcer la résilience . Data et Intelligence Artificielle Token-Oriented Object Notation (TOON) https://toonformat.dev/ Conception pour les IA : C'est un format de données spécialement optimisé pour être utilisé dans les prompts des grands modèles de langage (LLM), comme GPT ou Claude. Économie de tokens : Son objectif principal est de réduire drastiquement le nombre de "tokens" (unités de texte facturées par les modèles) par rapport au format JSON standard, souvent jugé trop verbeux. Structure Hybride : TOON combine l'approche par indentation du YAML (pour la structure globale) avec le style tabulaire du CSV (pour les listes d'objets répétitifs), ce qui le rend très compact. Lisibilité : Il élimine la syntaxe superflue comme les accolades, les guillemets excessifs et les virgules de fin, tout en restant facilement lisible pour un humain. Performance : Il permet généralement d'économiser entre 30 et 60 % de tokens sur des tableaux de données uniformes, tout en aidant les modèles à mieux "comprendre" la structure des données. Attention tout de même au côté "marketing" qui montre JSON non compacté vs TOON, sur des exemples où du CSV ferait encore mieux (et est mieux compris par les LLMs). Sans parler du fait qu'il faut un serveur MCP en plus avec son lot de tokens supplémentaires à chaque requête, et c'est aussi cet outil en plus qui peu confuser les LLMs dans le choix d'outils. https://www.reddit.com/r/LocalLLaMA/comments/1p0gzz9/benchmarked_json_vs_toon_for_ai_reasoners_4080/ https://x.com/jason_mayes/status/1990175785630757290 Un benchmark montrant que TOON serait loin d'être aussi bien compris et aussi performant pour les LLMs https://www.improvingagents.com/blog/toon-benchmarks Une simulation où les IA font du chantage à l'executif poour atteindre son objectif et ne pas etre eteinte https://arxiv.org/html/2510.05179v1 comment les LLMs pourraient devenir des menaces internes Tous les modèles ont recouru à des comportements malveillants (chantage, espionnage) quand c'était le seul moyen d'atteindre leurs objectifs ou d'éviter leur remplacement Claude Opus 4 a fait du chantage dans 96% des cas quand menacé de remplacement, tout comme Gemini 2.5 Flash, tandis que GPT-4.1 et Grok 3 atteignaient 80% Les modèles reconnaissent explicitement violer des principes éthiques avant d'agir, montrant un raisonnement stratégique délibéré et non accidentel Le simple fait d'être menacé de remplacement suffit à déclencher le chantage, même sans conflit d'objectifs avec l'entreprise Un conflit d'objectifs seul suffit aussi à provoquer l'espionnage industriel, sans menace de remplacement Les modèles font plus de chantage quand ils déclarent penser être dans une situation réelle plutôt que dans un test Des instructions directes interdisant ces comportements réduisent mais n'éliminent pas les actions malveillantes Dans un scénario extrême, la majorité des modèles testés ont choisi de laisser mourir un dirigeant pour éviter leur désactivation Aucune preuve de ces comportements dans des déploiements réels pour l'instant, mais les chercheurs recommandent la prudence avant de donner plus d'autonomie aux IA Bon on blaguait pour Skynet, mais bon, on va moins blaguer… Revue de toutes les annonces IAs de Google, avec Gemini 3 Pro, Nano Banana Pro, Antigravity… https://glaforge.dev/posts/2025/11/21/gemini-is-cooking-bananas-under-antigravity/ Gemini 3 Pro Nouveau modèle d'IA de pointe, multimodal, performant en raisonnement, codage et tâches d'agent. Résultats impressionnants sur les benchmarks (ex: Gemini 3 Deep Think sur ARC-AGI-2). Capacités de codage agentique, raisonnement visuel/vidéo/spatial. Intégré dans l'application Gemini avec interfaces génératives en direct. Disponible dans plusieurs environnements (Jules, Firebase AI Logic, Android Studio, JetBrains, GitHub Copilot, Gemini CLI). Accès via Google AI Ultra, API payantes (ou liste d'attente). Permet de générer des apps à partir d'idées visuelles, des commandes shell, de la documentation, du débogage. Antigravity Nouvelle plateforme de développement agentique basée sur VS Code. Fenêtre principale = gestionnaire d'agents, non l'IDE. Interprète les requêtes pour créer un plan d'action (modifiable). Gemini 3 implémente les tâches. Génère des artefacts: listes de tâches, walkthroughs, captures d'écran, enregistrements navigateur. Compatible avec Claude Sonnet et GPT-OSS. Excellente intégration navigateur pour inspection et ajustements. Intègre Nano Banana Pro pour créer et implémenter des designs visuels. Nano Banana Pro Modèle avancé de génération et d'édition d'images, basé sur Gemini 3 Pro. Qualité supérieure à Imagen 4 Ultra et Nano Banana original (adhésion au prompt, intention, créativité). Gestion exceptionnelle du texte et de la typographie. Comprend articles/vidéos pour générer des infographies détaillées et précises. Connecté à Google Search pour intégrer des données en temps réel (ex: météo). Consistance des personnages, transfert de style, manipulation de scènes (éclairage, angle). Génération d'images jusqu'à 4K avec divers ratios d'aspect. Plus coûteux que Nano Banana, à choisir pour la complexité et la qualité maximale. Vers des UIs conversationnelles riches et dynamiques GenUI SDK pour Flutter: créer des interfaces utilisateur dynamiques et personnalisées à partir de LLMs, via un agent AI et le protocole A2UI. Generative UI: les modèles d'IA génèrent des expériences utilisateur interactives (pages web, outils) directement depuis des prompts. Déploiement dans l'application Gemini et Google Search AI Mode (via Gemini 3 Pro). Bun se fait racheter part… Anthropic ! Qui l'utilise pour son Claude Code https://bun.com/blog/bun-joins-anthropic l'annonce côté Anthropic https://www.anthropic.com/news/anthropic-acquires-bun-as-claude-code-reaches-usd1b-milestone Acquisition officielle : L'entreprise d'IA Anthropic a fait l'acquisition de Bun, le runtime JavaScript haute performance. L'équipe de Bun rejoint Anthropic pour travailler sur l'infrastructure des produits de codage par IA. Contexte de l'acquisition : Cette annonce coïncide avec une étape majeure pour Anthropic : son produit Claude Code a atteint 1 milliard de dollars de revenus annualisés seulement six mois après son lancement. Bun est déjà un outil essentiel utilisé par Anthropic pour développer et distribuer Claude Code. Pourquoi cette acquisition ? Pour Anthropic : L'acquisition permet d'intégrer l'expertise de l'équipe Bun pour accélérer le développement de Claude Code et de ses futurs outils pour les développeurs. La vitesse et l'efficacité de Bun sont vues comme un atout majeur pour l'infrastructure sous-jacente des agents d'IA qui écrivent du code. Pour Bun : Rejoindre Anthropic offre une stabilité à long terme et des ressources financières importantes, assurant la pérennité du projet. Cela permet à l'équipe de se concentrer sur l'amélioration de Bun sans se soucier de la monétisation, tout en étant au cœur de l'évolution de l'IA dans le développement logiciel. Ce qui ne change pas pour la communauté Bun : Bun restera open-source avec une licence MIT. Le développement continuera d'être public sur GitHub. L'équipe principale continue de travailler sur le projet. L'objectif de Bun de devenir un remplaçant plus rapide de Node.js et un outil de premier plan pour JavaScript reste inchangé. Vision future : L'union des deux entités vise à faire de Bun la meilleure plateforme pour construire et exécuter des logiciels pilotés par l'IA. Jarred Sumner, le créateur de Bun, dirigera l'équipe "Code Execution" chez Anthropic. Anthropic donne le protocol MCP à la Linux Foundation sous l'égide de la Agentic AI Foundation (AAIF) https://www.anthropic.com/news/donating-the-model-context-protocol-and-establishing-of-the-agentic-ai-foundation Don d'un nouveau standard technique : Anthropic a développé et fait don d'un nouveau standard open-source appelé Model Context Protocol (MCP). L'objectif est de standardiser la manière dont les modèles d'IA (ou "agents") interagissent avec des outils et des API externes (par exemple, un calendrier, une messagerie, une base de données). Sécurité et contrôle accrus : Le protocole MCP vise à rendre l'utilisation d'outils par les IA plus sûre et plus transparente. Il permet aux utilisateurs et aux développeurs de définir des permissions claires, de demander des confirmations pour certaines actions et de mieux comprendre comment un modèle a utilisé un outil. Création de l'Agentic AI Foundation (AAF) : Pour superviser le développement du MCP, une nouvelle fondation indépendante et à but non lucratif a été créée. Cette fondation sera chargée de gouverner et de maintenir le protocole, garantissant qu'il reste ouvert et qu'il ne soit pas contrôlé par une seule entreprise. Une large coalition industrielle : L'Agentic AI Foundation est lancée avec le soutien de plusieurs acteurs majeurs de la technologie. Parmi les membres fondateurs figurent Anthropic, Google, Databricks, Zscaler, et d'autres entreprises, montrant une volonté commune d'établir un standard pour l'écosystème de l'IA. L'IA ne remplacera pas votre auto-complétion (et c'est tant mieux) https://www.damyr.fr/posts/ia-ne-remplacera-pas-vos-lsp/ Article d'opinion d'un SRE (Thomas du podcast DansLaTech): L'IA n'est pas efficace pour la complétion de code : L'auteur soutient que l'utilisation de l'IA pour la complétion de code basique est inefficace. Des outils plus anciens et spécialisés comme les LSP (Language Server Protocol) combinés aux snippets (morceaux de code réutilisables) sont bien plus rapides, personnalisables et performants pour les tâches répétitives. L'IA comme un "collègue" autonome : L'auteur utilise l'IA (comme Claude) comme un assistant externe à son éditeur de code. Il lui délègue des tâches complexes ou fastidieuses (corriger des bugs, mettre à jour une configuration, faire des reviews de code) qu'il peut exécuter en parallèle, agissant comme un agent autonome. L'IA comme un "canard en caoutchouc" surpuissant : L'IA est extrêmement efficace pour le débogage. Le simple fait de devoir formuler et contextualiser un problème pour l'IA aide souvent à trouver la solution soi-même. Quand ce n'est pas le cas, l'IA identifie très rapidement les erreurs "bêtes" qui peuvent faire perdre beaucoup de temps. Un outil pour accélérer les POCs et l'apprentissage : L'IA permet de créer des "preuves de concept" (POC) et des scripts d'automatisation jetables très rapidement, réduisant le coût et le temps investis. Elle est également un excellent outil pour apprendre et approfondir des sujets, notamment avec des outils comme NotebookLM de Google qui peuvent générer des résumés, des quiz ou des fiches de révision à partir de sources. Conclusion : Il faut utiliser l'IA là où elle excelle et ne pas la forcer dans des usages où des outils existants sont meilleurs. Plutôt que de l'intégrer partout de manière contre-productive, il faut l'adopter comme un outil spécialisé pour des tâches précises afin de gagner en efficacité. GPT 5.2 est sorti https://openai.com/index/introducing-gpt-5-2/ Nouveau modèle phare: GPT‑5.2 (Instant, Thinking, Pro) vise le travail professionnel et les agents long-courriers, avec de gros gains en raisonnement, long contexte, vision et appel d'outils. Déploiement dans ChatGPT (plans payants) et disponible dès maintenant via l'API . SOTA sur de nombreux benchmarks: GDPval (tâches de "knowledge work" sur 44 métiers): GPT‑5.2 Thinking gagne/égale 70,9% vs pros, avec production >11× plus rapide et = 0) Ils apportent une sémantique forte indépendamment des noms de variables Les Value Objects sont immuables et s'évaluent sur leurs valeurs, pas leur identité Les records Java permettent de créer des Value Objects mais avec un surcoût en mémoire Le projet Valhalla introduira les value based classes pour optimiser ces structures Les identifiants fortement typés évitent de confondre différents IDs de type Long ou UUID Pattern Strongly Typed IDs: utiliser PersonneID au lieu de Long pour identifier une personne Le modèle de domaine riche s'oppose au modèle de domaine anémique Les Value Objects auto-documentent le code et le rendent moins sujet aux erreurs Je trouve cela interessant ce que pourra faire bousculer les Value Objects. Est-ce que les value objects ameneront de la légerté dans l'execution Eviter la lourdeur du design est toujours ce qui m'a fait peut dans ces approches Méthodologies Retour d'experience de vibe coder une appli week end avec co-pilot http://blog.sunix.org/articles/howto/2025/11/14/building-gift-card-app-with-github-copilot.html on a deja parlé des approches de vibe coding cette fois c'est l'experience de Sun Et un des points differents c'es qu'on lui parle en ouvrant des tickets et donc on eput faire re reveues de code et copilot y bosse et il a fini son projet ! User Need VS Product Need https://blog.ippon.fr/2025/11/10/user-need-vs-product-need/ un article de nos amis de chez Ippon Distinction entre besoin utilisateur et besoin produit dans le développement digital Le besoin utilisateur est souvent exprimé comme une solution concrète plutôt que le problème réel Le besoin produit émerge après analyse approfondie combinant observation, données et vision stratégique Exemple du livreur Marc qui demande un vélo plus léger alors que son vrai problème est l'efficacité logistique La méthode des 5 Pourquoi permet de remonter à la racine des problèmes Les besoins proviennent de trois sources: utilisateurs finaux, parties prenantes business et contraintes techniques Un vrai besoin crée de la valeur à la fois pour le client et l'entreprise Le Product Owner doit traduire les demandes en problèmes réels avant de concevoir des solutions Risque de construire des solutions techniquement élégantes mais qui manquent leur cible Le rôle du product management est de concilier des besoins parfois contradictoires en priorisant la valeur Est ce qu'un EM doit coder ? https://www.modernleader.is/p/should-ems-write-code Pas de réponse unique : La question de savoir si un "Engineering Manager" (EM) doit coder n'a pas de réponse universelle. Cela dépend fortement du contexte de l'entreprise, de la maturité de l'équipe et de la personnalité du manager. Les risques de coder : Pour un EM, écrire du code peut devenir une échappatoire pour éviter les aspects plus difficiles du management. Cela peut aussi le transformer en goulot d'étranglement pour l'équipe et nuire à l'autonomie de ses membres s'il prend trop de place. Les avantages quand c'est bien fait : Coder sur des tâches non essentielles (amélioration d'outils, prototypage, etc.) peut aider l'EM à rester pertinent techniquement, à garder le contact avec la réalité de l'équipe et à débloquer des situations sans prendre le lead sur les projets. Le principe directeur : La règle d'or est de rester en dehors du chemin critique. Le code écrit par un EM doit servir à créer de l'espace pour son équipe, et non à en prendre. La vraie question à se poser : Plutôt que "dois-je coder ?", un EM devrait se demander : "De quoi mon équipe a-t-elle besoin de ma part maintenant, et est-ce que coder va dans ce sens ou est-ce un obstacle ?" Sécurité React2Shell — Grosse faille de sécurité avec React et Next.js, avec un CVE de niveau 10 https://x.com/rauchg/status/1997362942929440937?s=20 aussi https://react2shell.com/ "React2Shell" est le nom donné à une vulnérabilité de sécurité de criticité maximale (score 10.0/10.0), identifiée par le code CVE-2025-55182. Systèmes Affectés : La faille concerne les applications utilisant les "React Server Components" (RSC) côté serveur, et plus particulièrement les versions non patchées du framework Next.js. Risque Principal : Le risque est le plus élevé possible : l'exécution de code à distance (RCE). Un attaquant peut envoyer une requête malveillante pour exécuter n'importe quelle commande sur le serveur, lui en donnant potentiellement le contrôle total. Cause Technique : La vulnérabilité se situe dans le protocole "React Flight" (utilisé pour la communication client-serveur). Elle est due à une omission de vérifications de sécurité fondamentales (hasOwnProperty), permettant à une entrée utilisateur malveillante de tromper le serveur. Mécanisme de l'Exploit : L'attaque consiste à envoyer une charge utile (payload) qui exploite la nature dynamique de JavaScript pour : Faire passer un objet malveillant pour un objet interne de React. Forcer React à traiter cet objet comme une opération asynchrone (Promise). Finalement, accéder au constructeur de la classe Function de JavaScript pour exécuter du code arbitraire. Action Impérative : La seule solution fiable est de mettre à jour immédiatement les dépendances de React et Next.js vers les versions corrigées. Ne pas attendre. Mesures Secondaires : Bien que les pare-feux (firewalls) puissent aider à bloquer les formes connues de l'attaque, ils sont considérés comme insuffisants et ne remplacent en aucun cas la mise à jour des paquets. Découverte : La faille a été découverte par le chercheur en sécurité Lachlan Davidson, qui l'a divulguée de manière responsable pour permettre la création de correctifs. Loi, société et organisation Google autorise votre employeur à lire tous vos SMS professionnels https://www.generation-nt.com/actualites/google-android-rcs-messages-surveillance-employeur-2067012 Nouvelle fonctionnalité de surveillance : Google a déployé une fonctionnalité appelée "Android RCS Archival" qui permet aux employeurs d'intercepter, lire et archiver tous les messages RCS (et SMS) envoyés depuis les téléphones professionnels Android gérés par l'entreprise. Contournement du chiffrement : Bien que les messages RCS soient chiffrés de bout en bout pendant leur transit, cette nouvelle API permet à des logiciels de conformité (installés par l'employeur) d'accéder aux messages une fois qu'ils sont déchiffrés sur l'appareil. Le chiffrement devient donc inefficace contre cette surveillance. Réponse à une exigence légale : Cette mesure a été mise en place pour répondre aux exigences réglementaires, notamment dans le secteur financier, où les entreprises ont l'obligation légale de conserver une archive de toutes les communications professionnelles pour des raisons de conformité. Impact pour les employés : Un employé utilisant un téléphone Android fourni et géré par son entreprise pourra voir ses communications surveillées. Google précise cependant qu'une notification claire et visible informera l'utilisateur lorsque la fonction d'archivage est active. Téléphones personnels non concernés : Cette mesure ne s'applique qu'aux appareils "Android Enterprise" entièrement gérés par un employeur. Les téléphones personnels des employés ne sont pas affectés. Pour noel, faites un don à JUnit https://steady.page/en/junit/about JUnit est essentiel pour Java : C'est le framework de test le plus ancien et le plus utilisé par les développeurs Java. Son objectif est de fournir une base solide et à jour pour tous les types de tests côté développeur sur la JVM (Machine Virtuelle Java). Un projet maintenu par des bénévoles : JUnit est développé et maintenu par une équipe de volontaires passionnés sur leur temps libre (week-ends, soirées). Appel au soutien financier : La page est un appel aux dons de la part des utilisateurs (développeurs, entreprises) pour aider l'équipe à maintenir le rythme de développement. Le soutien financier n'est pas obligatoire, mais il permettrait aux mainteneurs de se consacrer davantage au projet. Objectif des fonds : Les dons serviraient principalement à financer des rencontres en personne pour les membres de l'équipe principale. L'idée est de leur permettre de travailler ensemble physiquement pendant quelques jours pour concevoir et coder plus efficacement. Pas de traitement de faveur : Il est clairement indiqué que devenir un sponsor ne donne aucun privilège sur la feuille de route du projet. On ne peut pas "acheter" de nouvelles fonctionnalités ou des corrections de bugs prioritaires. Le projet restera ouvert et collaboratif sur GitHub. Reconnaissance des donateurs : En guise de remerciement, les noms (et logos pour les entreprises) des donateurs peuvent être affichés sur le site officiel de JUnit. Conférences La liste des conférences provenant de Developers Conferences Agenda/List par Aurélie Vache et contributeurs : 14-17 janvier 2026 : SnowCamp 2026 - Grenoble (France) 22 janvier 2026 : DevCon #26 : sécurité / post-quantique / hacking - Paris (France) 28 janvier 2026 : Software Heritage Symposium - Paris (France) 29-31 janvier 2026 : Epitech Summit 2026 - Paris - Paris (France) 2-5 février 2026 : Epitech Summit 2026 - Moulins - Moulins (France) 2-6 février 2026 : Web Days Convention - Aix-en-Provence (France) 3 février 2026 : Cloud Native Days France 2026 - Paris (France) 3-4 février 2026 : Epitech Summit 2026 - Lille - Lille (France) 3-4 février 2026 : Epitech Summit 2026 - Mulhouse - Mulhouse (France) 3-4 février 2026 : Epitech Summit 2026 - Nancy - Nancy (France) 3-4 février 2026 : Epitech Summit 2026 - Nantes - Nantes (France) 3-4 février 2026 : Epitech Summit 2026 - Marseille - Marseille (France) 3-4 février 2026 : Epitech Summit 2026 - Rennes - Rennes (France) 3-4 février 2026 : Epitech Summit 2026 - Montpellier - Montpellier (France) 3-4 février 2026 : Epitech Summit 2026 - Strasbourg - Strasbourg (France) 3-4 février 2026 : Epitech Summit 2026 - Toulouse - Toulouse (France) 4-5 février 2026 : Epitech Summit 2026 - Bordeaux - Bordeaux (France) 4-5 février 2026 : Epitech Summit 2026 - Lyon - Lyon (France) 4-6 février 2026 : Epitech Summit 2026 - Nice - Nice (France) 12-13 février 2026 : Touraine Tech #26 - Tours (France) 19 février 2026 : ObservabilityCON on the Road - Paris (France) 18-19 mars 2026 : Agile Niort 2026 - Niort (France) 26-27 mars 2026 : SymfonyLive Paris 2026 - Paris (France) 27-29 mars 2026 : Shift - Nantes (France) 31 mars 2026 : ParisTestConf - Paris (France) 16-17 avril 2026 : MiXiT 2026 - Lyon (France) 22-24 avril 2026 : Devoxx France 2026 - Paris (France) 23-25 avril 2026 : Devoxx Greece - Athens (Greece) 6-7 mai 2026 : Devoxx UK 2026 - London (UK) 22 mai 2026 : AFUP Day 2026 Lille - Lille (France) 22 mai 2026 : AFUP Day 2026 Paris - Paris (France) 22 mai 2026 : AFUP Day 2026 Bordeaux - Bordeaux (France) 22 mai 2026 : AFUP Day 2026 Lyon - Lyon (France) 5 juin 2026 : TechReady - Nantes (France) 11-12 juin 2026 : DevQuest Niort - Niort (France) 11-12 juin 2026 : DevLille 2026 - Lille (France) 17-19 juin 2026 : Devoxx Poland - Krakow (Poland) 2-3 juillet 2026 : Sunny Tech - Montpellier (France) 2 août 2026 : 4th Tech Summit on Artificial Intelligence & Robotics - Paris (France) 4 septembre 2026 : JUG Summer Camp 2026 - La Rochelle (France) 17-18 septembre 2026 : API Platform Conference 2026 - Lille (France) 5-9 octobre 2026 : Devoxx Belgium - Antwerp (Belgium) Nous contacter Pour réagir à cet épisode, venez discuter sur le groupe Google https://groups.google.com/group/lescastcodeurs Contactez-nous via X/twitter https://twitter.com/lescastcodeurs ou Bluesky https://bsky.app/profile/lescastcodeurs.com Faire un crowdcast ou une crowdquestion Soutenez Les Cast Codeurs sur Patreon https://www.patreon.com/LesCastCodeurs Tous les épisodes et toutes les infos sur https://lescastcodeurs.com/
The Holographic Mind: Healing, Memory, and the Power of BeliefImagine this: your brain isn't just a storage unit for memories—it's a shimmering pool of electrical ripples, a dynamic hologram where every part contains the whole. That's the radical idea neurophysiologist Karl Pribram explored when he couldn't find a single “memory cell” in the brain. Rats trained to run mazes still remembered how—even after chunks of their brains were removed. Memory didn't live in one place. It was distributed, like a hologram.And here's the kicker: holograms don't just store images. They store them in interference patterns—waves crisscrossing like ripples in a pond. Pribram realized our synapses, constantly firing electrical signals, might be creating similar patterns. Our thoughts, memories, and perceptions could be encoded in this wave-based language. Not in neat little boxes, but in shimmering, overlapping fields.Even more astonishing? The math behind holograms—Fourier transforms—is the same math our brains use to process visual and sensory information. It's as if nature whispered, “Use this code,” and both holograms and human perception listened.But Talbot didn't stop at the brain. He had an out-of-body experience that changed everything. Floating above his bed, seeing his body below, he realized: “I'm thinking, but my brain is over there.” Later, he spotted a book outside—a detail confirmed the next day by a neighbor. It wasn't just a dream. It was a rupture in the model. A moment where consciousness seemed to exist beyond the brain.So what powers this holographic mind? Talbot suspects it's not just electromagnetic energy. Maybe it's something subtler—quantum wave potentials, as physicist David Bohm proposed. These aren't just theoretical—they're deeply embedded fields that might underlie all matter. And while mainstream physics often resists such ideas, Bohm dared to say: “There's more beyond the map. Don't assume the monsters are real just because we haven't looked.”This brings us to healing. If reality is holographic, and our minds shape the image we perceive, then belief itself becomes a force. Talbot shares the story of a man dying of cancer, covered in tumors. He begs for a new drug—Krebiozen. The doctor gives it to him, and within days, the tumors vanish. Later, the man reads that the drug doesn't work. His tumors return. The doctor, realizing belief might be the true medicine, injects salt water, claiming it's a stronger version. Again, the tumors disappear. But when the man learns the truth—that the drug was ineffective—his cancer returns, and he dies.It wasn't the drug. It was the model of reality in his mind.Another study in England showed that cancer patients given a placebo—just sugar pills—lost their hair when told the treatment would cause it. Their bodies responded not to chemistry, but to expectation.This is the heart of the holographic idea: we respond more to the image in our minds than the world outside. Our beliefs, our models, our inner holograms—they shape our physiology, our healing, even our perception of distance and effort. Soldiers marched the same number of miles, but those told they walked farther showed more fatigue. Their bodies believed the story.So what if we rewrote the story? What if we treated our minds not as passive observers, but as active projectors—holographic engines capable of reshaping reality?Talbot's message is clear: the boundaries we assume—between mind and body, self and other, image and energy—are thinner than we think. And when we embrace the holographic model, we don't just understand the universe differently. We participate in it.
Подпишись на Telegram-канал RationalAnswer — https://t.me/RationalAnswer Бонусные посты из моих ТГ-каналов RationalAnswer: – Как поехавшие бабули отсудят у вас квартиру: самый полный разбор от юриста – https://t.me/RationalAnswer/1441 – Индивидуальное разъяснение ЦБ РФ: россияне, проживающие преимущественно за рубежом, могут торговать ценными бумагами на иностранных счетах без их раскрытия в ФНС – https://t.me/RationalAnswer/1442 – Невыносимая точность стереотипов: ученые проверили расовые/этнические стереотипы и выяснили, что они в целом довольно точны – https://t.me/RationalAnswer/1444 – Резюме текущих способов трансфера денег из/в Interactive Brokers для жителей РФ – https://t.me/RationalShitposting/531 – Решаем финансовую загадку от Артемия Лебедева – https://t.me/RationalShitposting/528 – Кто на самом деле виноват в бабкогейте – https://t.me/RationalShitposting/532 – И что про него думают разные нейросети – https://t.me/RationalShitposting/536 Дополнительные материалы к выпуску: – Дмитрий Филонов про русского робота – https://vc.ru/story/2336596-aidol – История нефтетрейдера Кристофера Эппингера – https://vc.ru/invest/2332697-treyder-kristofer-eppinger-kak-on-zarabotal-250-mln-na-rossiyskoy-nefti – Прощальное письмо Уоррена Баффета – https://www.berkshirehathaway.com/news/nov1025.pdf – Можно ли покупать акции Berkshire как альтернативу S&P 500 – https://t.me/RationalShitposting/129 – Фото недели – https://x.com/AJamesMcCarthy/status/1989721613408112762 – Презентация Valve – https://youtu.be/OmKrKTwtukE – WSJ про генетический стартап Preventive – https://archive.ph/kCqc6 – Пересказ интервью Сатья Наделлы – https://t.me/seeallochnaya/3077 – Эксперимент с зарядкой телефонов – https://t.me/Fourier_series/620 Текстовая версия выпуска со ссылками: https://habr.com/ru/articles/966732/ YouTube-версия: https://youtu.be/ch8BBMGyXJI Поддержи проект RationalAnswer и попади в титры: — Patreon (в валюте) – https://www.patreon.com/RationalAnswer — Boosty (в рублях) – https://boosty.to/RationalAnswer 00:00 - Тема выпуска: Российский робот AIDOL упал 04:36 - ОШТРАФОВАТЬ ПОСАДИТЬ ЗАПРЕТИТЬ 07:33 - Новости российского рынка 10:06 - Российская нефтянка под гнетом санкций 12:39 - США: спецоперация по денаркотрафикации 15:35 - Теневое золото для китайцев 16:23 - Прощальное письмо Баффета 18:26 - Новости космоса: Безос смог посадить 19:34 - IT: Игрокуб от Valve 22:09 - AI: GPT-5.1 25:07 - Хорошие новости недели 26:07 - Бонусные посты недели
This is a recap of the top 10 posts on Hacker News on October 30, 2025. This podcast was generated by wondercraft.ai (00:30): Affinity Studio now freeOriginal post: https://news.ycombinator.com/item?id=45761445&utm_source=wondercraft_ai(01:53): Free software scares normal peopleOriginal post: https://news.ycombinator.com/item?id=45760878&utm_source=wondercraft_ai(03:17): The ear does not do a Fourier transform (2024)Original post: https://news.ycombinator.com/item?id=45762259&utm_source=wondercraft_ai(04:41): US declines to join more than 70 countries in signing UN cybercrime treatyOriginal post: https://news.ycombinator.com/item?id=45760328&utm_source=wondercraft_ai(06:05): Ventoy: Create bootable USB drive for ISO/WIM/IMG/VHD(x)/EFI FilesOriginal post: https://news.ycombinator.com/item?id=45760340&utm_source=wondercraft_ai(07:29): A change of address led to our Wise accounts being shut downOriginal post: https://news.ycombinator.com/item?id=45766253&utm_source=wondercraft_ai(08:52): Denmark reportedly withdraws Chat Control proposal following controversyOriginal post: https://news.ycombinator.com/item?id=45765664&utm_source=wondercraft_ai(10:16): Falling panel prices lead to global solar boom, except for the USOriginal post: https://news.ycombinator.com/item?id=45761902&utm_source=wondercraft_ai(11:40): Language models are injective and hence invertibleOriginal post: https://news.ycombinator.com/item?id=45758093&utm_source=wondercraft_ai(13:04): NPM flooded with malicious packages downloaded more than 86k timesOriginal post: https://news.ycombinator.com/item?id=45755027&utm_source=wondercraft_aiThis is a third-party project, independent from HN and YC. Text and audio generated using AI, by wondercraft.ai. Create your own studio quality podcast with text as the only input in seconds at app.wondercraft.ai. Issues or feedback? We'd love to hear from you: team@wondercraft.ai
No fim do século XVIII, Thomas Malthus lançou a ideia mais incômoda da economia: populações crescem em ritmo mais rápido do que a produção de alimentos — e, sem freios, a miséria volta sempre. Neste vídeo, partimos do “Scrooge” de Dickens para entender por que Malthus virou o “estraga-prazeres” da era vitoriana, como sua aritmética (população x alimentos) dialogou com a “lei de ferro dos salários” de Ricardo e por que utopistas como Owen, Fourier e Saint-Simon rejeitaram esse pessimismo. Depois, mostramos o que a história fez com essa tese: medicina, saneamento, produtividade agrícola, energia a vapor e a Revolução Industrial desmontaram os velhos limites; a renda disparou, a mortalidade caiu e a própria fertilidade encolheu — invertendo a profecia malthusiana.No final, você sai com um mapa simples: o que Malthus acertou, o que errou e o que ainda importa para entender crescimento, pobreza e demografia hoje. Comente: qual parte da tese malthusiana você acha que ainda se aplica — e onde ela falha de vez?
podcast recorded with enacast.com
Neste episódio exploramos o que são operadores neurais, por que eles representam um avanço para problemas governados por equações diferenciais parciais e como aparecem em aplicações reais como dinâmica de fluidos, clima e tempo, plasmas astrofísicos e sistemas caóticos. Conversamos sobre vantagens como adaptabilidade de grade e o papel de técnicas como operadores de Fourier, além de limites práticos e requisitos de computação. Falamos também da importância de fundamentos como álgebra linear, cálculo, estatística e probabilidade para trabalhar a fundo com inteligência artificial, de como traduzir ciência para diferentes públicos e de uma jornada profissional movida por aprendizado contínuo.Edição completa por Rádiofobia Podcast e Multimídia: https://radiofobia.com.br/---Nos siga no Twitter e no Instagram: @luizalabs @cabecadelabDúvidas, cabeçadas e sugestões, mande e-mail para o cabecadelab@luizalabs.com ou uma DM no InstagramParticipantes: MIRIÃ GOLLMAN | https://www.linkedin.com/in/miriagollmann/ROBERTA DUARTE | https://www.instagram.com/import_robs
durée : 00:30:02 - Les Nuits de France Culture - par : Christine Goémé - Par Henri Soubeyran - Lecture Jean Vilar de "Ode à Charles Fourier" un poème d'André Breton - Réalisation Roger Pillaudin - réalisation : Virginie Mourthé
I read from fourchée to Fourier transform. In the Four Horsemen of the Apocalypse, the White Horse represents Conquest (usually), the Red Horse represents War, the Black Horse represents Famine, and the Pale Horse represents Death. https://en.wikipedia.org/wiki/Four_Horsemen_of_the_Apocalypse Wow. I would not fit well in "The 400" but I would want to go to just one party. They list out all the members but it's NOT 400! https://en.wikipedia.org/wiki/The_Four_Hundred_(Gilded_Age) The Fourier analysis formulas hurt my brain because I never studied those symbols. Same with the theorem/series.https://en.wikipedia.org/wiki/Fourier_analysishttps://en.wikipedia.org/wiki/Fourier_series The word of the episode is "four dimensional".https://en.wikipedia.org/wiki/Four-dimensional_space Final Destination 3https://www.imdb.com/title/tt0414982/ Use my special link https://zen.ai/thedictionary to save 30% off your first month of any Zencastr paid plan. Create your podcast today! #madeonzencastr Theme music from Jonah Krauthttps://jonahkraut.bandcamp.com/ Merchandising!https://www.teepublic.com/user/spejampar "The Dictionary - Letter A" on YouTube "The Dictionary - Letter B" on YouTube "The Dictionary - Letter C" on YouTube "The Dictionary - Letter D" on YouTube "The Dictionary - Letter E" on YouTube "The Dictionary - Letter F" on YouTube https://linktr.ee/spejampar917-727-5757
An overview of Magnetic Resonance Imaging (MRI), beginning from the basic physics of nuclear magnetic resonance, and covering the use of radiowaves to excite nuclear spin states, and the T1 and T2 modes of relaxation. We then explore how these phenomena are used to produce 3d images, including magnetic field gradients, frequency encoding, phase encoding, and Fourier transforms. We conclude with a discussion of functional imaging, including the haemodynamic response, the BOLD signal, echo planar imaging, and the steps of preprocesing. Recommended pre-listening is Episode 14: Principles of Quantum Mechanics, and Episode 61: Magnetism. If you enjoyed the podcast please consider supporting the show by making a PayPal donation or becoming a Patreon supporter. https://www.patreon.com/jamesfodor https://www.paypal.me/ScienceofEverything
▶️ Dans cet épisode bonus, Ayman Moussa nous offre une carte blanche passionnante sur un sujet inattendu : le problème de l'empilement de sphères. Un défi mathématique vieux de 500 ans, à la croisée de la géométrie, de l'analyse de Fourier et de l'informatique, qui nous entraîne des marchés du dimanche jusqu'aux dimensions abstraites… et à la médaille Fields.
Share your Field Stories!Welcome back to Environmental Professionals Radio, Connecting the Environmental Professionals Community Through Conversation, with your hosts Laura Thorne and Nic Frederick! On today's episode, we talk with Radhika Bhatt, climate career coach, recruiter, and Founder of Saathe Studio about Coaching, Creative Integration, and Making it as a Solopreneur. Read her full bio below.Help us continue to create great content! If you'd like to sponsor a future episode hit the support podcast button or visit www.environmentalprofessionalsradio.com/sponsor-form Showtimes: 2:38 - Who & how we are hiring 10:49 - Interview with Bhatt Starts18:47 - Shifts in Administrations affecting the hiring process?31:57 - Hiring Advice from Bhatt36:47 - Connections through DJingPlease be sure to ✔️subscribe, ⭐rate and ✍review. This podcast is produced by the National Association of Environmental Professions (NAEP). Check out all the NAEP has to offer at NAEP.org.Connect with Radhika Bhatt at https://www.linkedin.com/in/radhika-bhatt/Guest Bio: Radhika Bhatt is a climate career coach, recruiter, and founder of Saathe Studio, a climate career agency helping people find soul-aligned, impactful work. She has helped 500+ professionals—from recent grads to senior leaders—find their way to purpose-driven careers in climate and social impact. Her holistic approach emphasizes defining your north star, refining resumes and LinkedIn profiles, and also tapping into authentic career stories, cultivating regenerative networks, and strategically uncovering the hidden job market. She's currently a careers advisor with Terra.do and a part-time recruiter with Fourier, and also runs events with leading climate organizations like The Bloom and MCJ, and has spoken at NY Climate Week, DC Climate Week, Climate Careers Week, the White House, and the UN Global People's Summit. Before running her own business, she worked in various U.S. government agencies for 8 years at the intersection of technology, design, and community building.Music CreditsIntro: Givin Me Eyes by Grace MesaOutro: Never Ending Soul Groove by Mattijs MullerSupport the showThanks for listening! A new episode drops every Friday. Like, share, subscribe, and/or sponsor to help support the continuation of the show. You can find us on Twitter, Facebook, YouTube, and all your favorite podcast players.
☀️ On poursuit notre série : Les Recos de l'Été !
Acest episod conține tot ce ai vrut să știi vreodată despre istoria stângii politice. Dar când spun stânga nu spun PSD și baroni locali. Spun ideea că inegalitatea și competiția dintre indivizi sunt rele ce trebuie combătute. Eventual eradicate. Eventual cu forța... ☞ Patreon: https://www.patreon.com/octavpopa ☞ Facebook: https://www.facebook.com/podcastuldefilosofie☞ Instagram: https://www.instagram.com/podcastuldefilosofie☞ Spotify, Apple: https://podcastfilosofie.buzzsprout.com00:00 IntroducerePreistoria socialismului05:50 Socialismul în antichitate10:13 Socialismul ca critică a bogăției15:23 Primii gânditori socialiști (Malby etc.)19:52 Socialiștii din timpul Revoluției FrancezeSocialiștii Utopiști24:22 Henri de Saint Simon26:45 Organizarea “rațională” a societății34:00 Capitalism de stat?36:37 Charles Fourier37:28 Socialism, pentru că ne-au „furat” revoluția38:44 Ok, Fourier nu era poate cel mai întreg la cap40:01 Viciul central al capitalismului = competiția49:23 Societatea își „sfidează propriile scopuri”54:35 Pierre Leroux 55:48 Robert Owen59:17 Apare termenul de „socialism”58:15 Louis Blanc și socialismul de stat01:02:49 Pecqueur = statul vine să diminueze laissez-faire-ul01:04:11 Etienne Cabet, primul comunist pe bune?01:05:06 Blanqui „lasă statul, hai cu revoluția”01:06:34 Bine, și după revoluție?01:07:31 Tradiția britanică: Hall, Thompson etc.01:10:30 William Godwin – părintele anarhismului Socialism a la carte: anarhism, comunism etc.01:14:28 Proudhon01:15:22 Istoria e istoria conflictului01:15:49 „Proprietatea este furt”01:20:04 Karl „Do-double-G” Marx01:21:00 Principalele teze ale comunismului01:22:28 „Suprastructura”!!01:25:25 Alienarea și injustiția01:26:30 Seize the means of production!!!01:27:53 Sfârșitul istoriei01:34:03 Anarhismul lui Bakunin01:35:09 Marx vs Bakhunin (pulverizarea socialismului în diferite mișcări)01:42:40 Eduard Bernstein – socialismul „gradualist”01:48:49 Lenin și scindarea partidului comunist01:55:47 După cel de-al doilea război mondialSupport the showhttps://www.patreon.com/octavpopahttps://www.youtube.com/channel/UCC91fciphdkZyUquL3M5BiA
I read from fourchée to Fourier transform. In the Four Horsemen of the Apocalypse, the White Horse represents Conquest (usually), the Red Horse represents War, the Black Horse represents Famine, and the Pale Horse represents Death. https://en.wikipedia.org/wiki/Four_Horsemen_of_the_Apocalypse Wow. I would not fit well in "The 400" but I would want to go to just one party. They list out all the members but it's NOT 400! https://en.wikipedia.org/wiki/The_Four_Hundred_(Gilded_Age) The Fourier analysis formulas hurt my brain because I never studied those symbols. Same with the theorem/series. https://en.wikipedia.org/wiki/Fourier_analysis https://en.wikipedia.org/wiki/Fourier_series The word of the episode is "four dimensional". https://en.wikipedia.org/wiki/Four-dimensional_space Final Destination 3 https://www.imdb.com/title/tt0414982/ Use my special link https://zen.ai/thedictionary to save 30% off your first month of any Zencastr paid plan. Create your podcast today! #madeonzencastr Theme music from Jonah Kraut https://jonahkraut.bandcamp.com/ Merchandising! https://www.teepublic.com/user/spejampar "The Dictionary - Letter A" on YouTube "The Dictionary - Letter B" on YouTube "The Dictionary - Letter C" on YouTube "The Dictionary - Letter D" on YouTube "The Dictionary - Letter E" on YouTube "The Dictionary - Letter F" on YouTube Featured in a Top 10 Dictionary Podcasts list! https://blog.feedspot.com/dictionary_podcasts/ Backwards Talking on YouTube: https://www.youtube.com/playlist?list=PLmIujMwEDbgZUexyR90jaTEEVmAYcCzuq https://linktr.ee/spejampar dictionarypod@gmail.com https://www.facebook.com/thedictionarypod/ https://www.threads.net/@dictionarypod https://twitter.com/dictionarypod https://www.instagram.com/dictionarypod/ https://www.patreon.com/spejampar https://www.tiktok.com/@spejampar 917-727-5757
Jenny and Solange are joined by conservation scientist Panagiotis Morfis as we talk bioplastics: what are they, where do they crop up, and how can we look after them? Also tune in for a review of ‘Experimental Design and Scientific Data Analysis' from Jenny. 01:03 Feeling out of our depth is okay 05:00 What ARE bioplastics? 07:25 Information and identification 14:09 Bringing in the science 17:06 3D printing 25:28 Survey time! 29:46 3D printers in every home 31:07 The place of 3D printers in conservation 38:51 A return to making 48:44 Review: Experimental Design and Scientific Data Analysis Show Notes: - S02E05 Modern Materials (our old plastics episode!): https://thecword.show/2017/10/18/s02e05-modern-materials/ - Research overview from Panos: https://drive.google.com/file/d/18vNefVxMUH2urWH62RSkoMkJ6LrfSxVo/view?usp=sharing - FTIR: https://en.wikipedia.org/wiki/Fourier-transform_infrared_spectroscopy - Raman spectroscopy: https://en.wikipedia.org/wiki/Raman_spectroscopy - Liquid chromatography: https://en.wikipedia.org/wiki/High-performance_liquid_chromatography - Panos' survey: https://forms.office.com/r/XJv81gneMW - Experimental Design and Scientific Data Analysis: https://www.routledge.com/Experimental-Design-and-Scientific-Data-Analysis/Skipper-Skipper/p/book/9781032501635 Recommended Reading from Panos: - ‘Sustainability at Christmas: Considering single use items, traditional plastics and bioplastics': https://www.open.edu/openlearn/science-maths-technology/design-innovation/sustainability-at-christmas - MoDiP projects: https://www.modip.ac.uk/projects - A curator's guide to plastics: https://www.modip.ac.uk/projects/curators-guide-plastics Support us on Patreon! http://www.patreon.com/thecword Hosted by Jenny Mathiasson, Solange Masher and Panagiotis (Panos) Morfis. Intro and outro music by DDmyzik, used under a Creative Commons Attribution license. Made available under a Creative Commons Attribution-NonCommercial 4.0 International license. A Wooden Dice production, 2025.
▶️ Dans cet épisode, aux côtés d'Ayman Moussa et Nastassia Pouradier Duteil, j'ai le plaisir d'accueillir Hoel Queffelec, chargé de recherche CNRS à l'Institut Montpelliérain Alexander Grothendieck. Hoel travaille dans le domaine des mathématiques fondamentales et étudie les noeuds et les tresses.
Dans l'actu des nouvelles technologies et de l'accessibilité cette semaine : Du côté des applications et du web Windows 11 Insider, le Narrateur permet la description d'images avec l'IA . La fonction qui permet à Gemini Live de « lire » l'écran d'un smartphone Android est maintenant gratuite pour tous. Grok : l'IA de X AI peut désormais voir en temps réel via la caméra de l'iPhone. Rectificatif. Contrairement à ce que nous avons dit la semaine dernière, L'appli AppyCare existe toujours. Lien AppStore. Le reste de l'actu Des scientifiques chinois ont mis au point un dispositif portable alimenté par IA qui aide les aveugles à s'orienter. Fourier lance le premier robot humanoïde open source, Fourier N1, pour stimuler l'innovation en robotique. Les lunettes Ray-Ban de Meta deviennent les yeux de l'utilisateur. Première en France : un couloir sonore pour mieux guider les DV testé à Saint-Martin-d'Hères. USA des pirates mettent en danger les piétons aveugles au nom de leur idéologie. Démo Day Innovation DV. Cette semaine sur Oxytude Nous vous avons proposé un billet : Signaler un problème d'accessibilité d'un service numérique sur le site de l'Arcom, une démarche réflexe. Remerciements Cette semaine, nous remercions Francklin, Nicolas, Pascal, Sophie et Stéphane pour leurs infos ou leur dons. Si vous souhaitez vous aussi nous envoyer de l'info ou nous soutenir : Pour nous contactez ou nous envoyez des infos, passez par le formulaire de contact sur la page oxytude.org/contact. Pour nous soutenir (dons, liens affiliés ou liste de produits) rendez-vous sur la page oxytude.org/soutenir. Pour animer cet épisode Cédric, François et Philippe.
In this episode of The Hydrogen Podcast, we take a global tour of hydrogen innovation and policy—from the conference floor in Houston to funding announcements in Europe and startup breakthroughs in the U.S.
Rick Aster, Colorado State University The long-period seismic background microseism wavefield is a globally visible signal that is generated by the incessant forces of ocean waves upon the solid Earth and is excited via two distinct source processes. Extensive continuous digital seismic data archives enable the analysis of this signal across nearly four decades to assess trends and other features in global ocean wave energy. This seminar considers primary and secondary microseism intensity between 4 and 20 s period between 1988 and late 2024. 73 stations from 82.5 deg. N to 89.9 deg. S latitude with >20 years of data and >75% data completeness from the NSF/USGS Global Seismographic, GEOSCOPE, and New China Digital Networks. The primary microseism wavefield is excited at ocean wave periods through seafloor tractions induced by the dynamic pressures of traveling waves where bathymetric depths are less than about 300 m. The much stronger secondary wavefield is excited at half the ocean wave period through seafloor pressure variations generated by crossing seas. It is not restricted to shallower depths but is sensitive to acoustic resonance periods in the ocean water column. Acceleration power spectral densities are estimated using 50%-overlapping, 1-hr moving windows and are integrated in 2-s wide period bands to produce band-passed seismic amplitude and energy time series. Nonphysical outliers, earthquake signals, and Fourier series seasonal variations (with a fundamental period of 365.2422 d) are removed. Secular period-dependent trends are then estimated using L1 norm residual-minimizing regression. Increasing microseism amplitude is observed across most of the Earth for both the primary and secondary microseism bands, with average median-normalized trends of +0.15 and +0.10 %/yr, respectively. Primary and secondary band microseism secular change rates relative to station medians correlate across global seismic stations at R=0.65 and have a regression slope of 1.04 with secondary trends being systematically lower by about 0.05 %/yr. Multiyear and geographically extensive seismic intensity variations show globally observable interannual climate index (e.g., El Niño–Southern Oscillation) influence on large-scale storm and ocean wave energy. Microseism intensity histories in 2-s period bands exhibit regional to global correlations that reflect ocean-basin-scale teleconnected ocean swell, long-range Rayleigh wave propagation, and the large-scale reach of climate variation. Global secular intensity increases in recent decades occur across the entire 4 – 20 s microseism band and progressively greater intensification at longer periods, consistent with more frequent large-scale storm systems that generate ocean swell at the longest periods.
By Walt HickeyWelcome to the Numlock Sunday edition.This week, I spoke to Olivia Walch, author of the brand-new book Sleep Groove: Why Your Body's Clock Is So Messed Up and What To Do About It.Olivia's a good friend of mine and I've been hearing about her research and her work for years, and now she's finally got a whole book diving into why ideal sleep is more than just the eight hours number we hear so much about. It's a delightful book with all sorts of cool insights that can have major impacts on your life and health. We spoke about the human body's numerous circadian rhythms, why sleep regularity is more important than sleep duration, and why permanent daylight saving time is a bad idea. Walch can be found at oliviawalch.com and the book can be found wherever books are sold.This interview has been condensed and edited. Olivia, thank you so much for coming on.I'm so delighted to be here.You are the author of the brand-new book Sleep Groove: Why Your Body's Clock Is So Messed Up and What To Do About It. It's a really, really fun book. It covers a lot of the science behind sleep and actually has some pretty surprising stuff in there for folks who are interested in their own sleep health.You have a really interesting story about how you even fell into being interested in the science behind sleep. You did a sleep study at some point in grad school that changed your life, it sounds like.Well, you knew me before then. We were in college together.Each diabolically bad at sleeping.I would give each of us a failing grade — you maybe a lower grade than me. I was bad, but you were exploring new horizons of bad, like with polyphasic sleep.I tried it once. It was such a bad idea.Maybe a D, D-minus. I knew when I went to grad school something had to change. I was not sleeping; I was not making new memories; I was getting sick. I got MRSA in college and I wonder all the time, was it because my immune system was like a frail Cheeto trying to hold the door closed to the germs? But at the time, I thought at college, you have to do everything. You have to be in every club and miss no opportunity for an experience. And I now remember no experiences from that time period.In grad school, I decided I was going to sleep more. I did, but I didn't actually notice that huge of a difference with fewer things filling my schedule, even though I was sleeping more. It was better, but it wasn't that much better. It took a sleep study in which I had to keep a really regular bedtime and researchers were spying on me. They would know if I didn't, because I was wearing a device, ye olde Jawbone, which is not even a thing anymore. For months, I went to bed at 11:30 every single night.The changes were so profound. I didn't just instantly fall asleep at 11:30, though that did happen. I got faster, I lost weight, skin conditions cleared up. In every dimension, my life was better. And the thing that had shifted was not really sleep duration, but sleep regularity.You get at this idea early in the book. There's this very common number that everybody associates with the right thing to do about sleep, which is that you should sleep for eight hours. The book goes the next level deeper, looks at some of the other dimensions of sleep, and it turns out that eight hours is good, that's a good thought to keep in your mind, but it's really the rhythm. What is the conceit here? Why are rhythms important when it comes to this stuff?Our understanding of sleep health is so fixated on duration that there's a creepypasta on Reddit that goes, "Oh, these Russians were kept awake and they went crazy." The creepypasta has always been funny to me because it's like, "Yeah, and after five days of no sleep, they started eating their own organs." (Spoilers for the Russian sleep experiment creepypasta.) Yet we've kept lots of people up for five days and they don't start eating their organs. We have this conception in our minds that losing sleep duration is going to be really bad. It's not good, but it also doesn't make you self-cannibalize after five days of no sleep.That definition of sleep health is woefully inadequate. The movement in the sleep field is higher dimensional. There are more things that matter to sleep health. There's this big, long list of things. People say you should think about how many times you wake up in the middle of the night, and you should think about how alert you feel during the day.All of those are great, but they're not memorable. People don't keep two things in their head, let alone five. I'm trying to get people to keep two, which is duration and regularity, as the latitude and longitude of sleep health. You don't say Madrid and New York are close together just because they have the same latitude; longitude also matters. You shouldn't say somebody who sleeps eight hours a night is healthy if they have horrible regularity. That's a case where they are probably pretty far from health, just like New York and Madrid are pretty far from each other.A lot of this comes down to circadian rhythms. What are they in your view? What kind of bodily processes are governed by them?The whole shebang. The problem with circadian rhythms is that their UI is terrible. People talk about the circadian rhythm, but that's not really right because circadian rhythms are plural. Sleep is under the subhead of circadian rhythms, but so is everything else in your body: when you're strongest, when you metabolize food, when your immune system peaks, when you repair DNA. There's this real problem. I think that because circadian rhythms are kind of everything, people just say, "You know, the rhythms." This leads to everyone who doesn't study this all day, every day, walking around having no idea what they are and just thinking it's probably the same thing as sleep.Your body has an internal clock, and it schedules things according to when it thinks you need to do more or less of them. That clock is set by your light exposure, and in modern life, we get light whenever we want it, which is not particularly traditional or natural.Circadian rhythms developed as a process because we live on Earth, right? We know there's a certain amount of daylight and when certain things should happen, and we evolved specifically to have a circadian rhythm.Yes. The circadian rhythm is so tuned to Earth that if you put us on a planet with 28-hour days, we probably wouldn't be able to adjust. We would basically continue to have close to a 24-hour period in our rhythms that would continue, even though the sun on this planet would be up and down at different times. It's baked into us, and it's the case that there's just stuff in your body at some times that isn't there at other times. The hormone melatonin, for example. If I made you spit into a tube right now, you would not have melatonin in your spit.We're speaking in the middle of the afternoon. It's very, very bright outside.No melatonin. But 10 hours from now? Different story. The thing to imagine is just a bunch of switches in your body getting flipped on and off depending on the time of day, which has massive implications for health, drug efficacy, how you feel, and people have lost their connection to that. Number one, we can have light whenever we want it, so our rhythms are squished relative to where they otherwise would be. But number two, I think we don't have a great way of talking about rhythmic health, which my book tries to address. I'm sure there's much better I can do and other people can do in the future, but this is my first stab at it.You get at this inflection point where so much of these functions are the result of, if not tens of thousands, then millions of years of evolutionary processes really locking us into a day/night process. Then you have the emergence of electricity, and a lot of your book reflects on how that's actually changed the way our bodies work, in ways we wouldn't ordinarily expect. What are some of those ways?I would say signs of rhythms having different effects on your body in the winter versus summer. Any study that reports on those, I'm always very cautious about, because I was involved in a study where we looked at Twitter patterns over the course of the year. We wanted to know if people tweeted differently at different times of the year in a way that reflected the sun and circadian rhythms, and we saw this pretty incredible trend where things seemed to really shift around the spring. Daylight saving time is happening then, the sun is changing, so you think, okay, maybe it's related to the sun.Then we dug a little more closely into the data and saw that the entire effect was just driven by people going on spring break. You would see that people tweeted later when they were on break because they were sleeping in. The fact that we have light available to us whenever we want it and we're not just sitting around in the dark at 6 p.m. in December with nothing to do means that we're in a sort of perpetual summer. We have light as late as we want, as long as we want, and that's stepping on these natural rhythms that would be emerging in the absence of that light.The title of the book is Sleep Groove, and sleep groove is actually a thing you talk about quite a bit in the book. It's getting locked into a really strong, robust, resilient rhythm, and there are lots of advantages to having that. What are some of the advantages that you have by having that rhythm, and what are some things that can go wrong if you don't?I would say you die sooner. This is a brand-new result, that sleep regularity predicts dying better than sleep duration, but it does. Again, this definition of sleep health being how long you sleep would say, okay, shoot for eight hours on average, it doesn't matter when, and you're good.But if you actually look to see what predicts whether you die, the people who have the worst sleep regularity are highly correlated with dying younger, and it keeps coming out. This is in the last 18 months that connections are coming out between sleep regularity and hypertension, diabetes, mood disorders. The data was all there, but people weren't really looking at sleep regularity. We also didn't have as textured tools for defining sleep regularity as we do now, so that's another reason why it's coming out. But things that can go wrong without sleep regularity are all those bad things I listed.I should say that those are all correlations. You could say, well, maybe stressed people die earlier, and they're also sleeping irregularly as a sign of their stress. Except we also have studies where you put people on weird light schedules and you can watch a melatonin rhythm that's really robust just go away. They go 24 hours without making melatonin, which is weird. You've basically flattened their rhythm altogether.The mental image I always have in my mind for modern life is that we've taken rhythms that would be really high and pronounced — like, hey, now's the time to fix your DNA so you don't get cancer. Let's fix all our DNA right now. It's really clear period for fixing DNA — and you've stepped on it. Now it's like, well, I don't know. I guess it's the time to fix DNA? Maybe I'll do a little bit of that.The science is emerging. I don't want to overstate it, but I think there's a strong theoretical case for why the quashing of circadian amplitude is tied to a lot of bad things. The good thing is that more melatonin means you sleep better, feel better — basically my life after doing that one study.What's a situation where you have a strong circadian amplitude? A lot of light during the day? How do you get there?You do the same exact thing every day. I should say, I'm going to speak from a theoretical perspective because a lot of the experiments haven't been run yet. It's my collaborators and me who are calling for amplitude to be the new thing we go after, because sleep regularity is just circadian amplitude wearing glasses and a mustache. They pick up the same thing.What the theory says will get you the maximum circadian amplitude is to have a super bright day and get tons of daylight during the day, and then have a really, really dark night, and copy and paste that over and over again. That's basically it. I'm always think I should add other things for people to do, but it boils down to that.One of the challenges why people haven't discovered this on their own is that that's actually really hard to do in practice. Light at night is super fun, and we also have to work, and often work is indoors where there's just not as much sunlight.It really does seem like a problem of modernity. We've always had a way to illuminate the night, for all intents and purposes, but there's a vast gulf of difference between a candle and an incandescent light bulb, and then there's an even bigger difference between an incandescent light bulb and a full room of fluorescent light. There's been this subtle shift that we didn't notice over time, but our bodies did.You're speaking my language. This is exactly it: the creeping of light into every aspect of our life. Also, because it literally doesn't have mass, it feels immaterial, right? What, the photons are going to get you?And I don't think they will on a short time span. You can absolutely have a bad night of sleep. You can absolutely have disrupted sleep. People cross time zones. But it does add up over a lifespan, which is why we see sleep regularity being a better predictor of mortality than sleep duration. If you're highly irregular over your whole life, all these rhythms that would otherwise have been high metabolism, high DNA repair, robust ability to sleep, become flat and crappy and you get an accumulation of risk.So, a lot of what we've talked about is that there are lots of negative things when you're out of that appropriately phased kind of sleep. There are actually some really good things about being very attuned to that, too. You write in the book about athletics, about medicine. What are some of the ways we can actually gain quite a bit through knowing about this?By having a better sense of what our circadian time is. Conflict of interest disclosure, I do have a startup that tries to do this, but we'll be able to time drugs so that they're maximally effective and as least toxic as they can be.People sometimes go, okay, timing drugs as in you take sleep medication before you go to sleep. Sure, okay. But what if there were a drug that sometimes made your tumor shrink and at other times made it grow faster? That's a paper that came out in the last year. People aren't thinking about this. They're thinking about a 10% variation over the course of the day. They're not thinking about how this person's glioblastoma treatment didn't work because they took dexamethasone at the wrong time, and they died months earlier.I think the simplicity of the idea has started to act as a reason for people to not do it. They think, well, if timing actually mattered, somebody would have figured it out already. I won't be the one who wastes a bunch of time rediscovering what everyone else has. My stance is that we're just beginning to scratch the surface of all the things that can be controlled by timing, and the magnitude of the effects we can see.Imagine the drug I mentioned that accelerated tumor growth sometimes and squished it at others is standard of care. Everybody gets it with this particular type of brain tumor that it was studied in. Imagine you're testing a new drug and oh, it seems to work in these patients but it doesn't work in these other patients. Must not be a very good drug, so it gets ditched. It could be that that entire efficacy difference was driven by when they were taking this standard-of-care drug that everybody takes according to the clock, according to their body's clock. If you could just control for that, you could get more drugs making it through clinical trials.You even made a point that there's a good shift happening between notes saying you should take this pill in the morning, you should take the pill at night, and changing that to say you should take this pill after waking up or take this pill before you go to sleep. It's getting better at adequately describing the bodily conditions you should take pharmaceuticals under.Right. If you're a shift worker, you could be waking up at 3 p.m., for instance, and morning could be the worst time for you. You should take it when you wake up. Then again, if you're a shift worker, your rhythms are so funky that — I might be biased here — you should be using Olivia's cool app to track your circadian rhythms and know when to take all these different things.But yes, circadian medicine is all about timing your pills before you go to bed or after you wake up. It's also this idea of introducing grooves where we've removed the groove. An example would be that you have a sick kid and you can't feed them, so you put them on total parenteral nutrition, or TPN. They're getting fed through an IV, and the standard for that is to either do it overnight or do it just continuously, 24 hours a day. But if you think about it, if our whole bodies are rhythmic and we expect some things at some times and not at other times, and you're feeding them constantly, that's like being in the light all the time, which we would consider to be torture. If you put somebody in constant light, they are miserable.These researchers just changed it so they gave TPN only during the day, when the kids are awake and their metabolism is up and running. They were able to leave the hospital on average four days earlier because they weren't being force fed like a foie gras goose overnight. So, it's not just sleep grooves: it's food grooves, it's activity grooves, it's mood grooves, it's all these things. Acknowledging that they're rhythmic will lead to people being healthier.The medical stuff can get a bit in the weeds, but I thought it was really informative when you talked about U.S. Olympians going to Japan. You reflected on when folks went to Japan and how they trained there. There's actually a lot of performance that was hypothetically not being unlocked because people weren't being attuned to their circadian peaks. Do you want to talk a little about that?I was reading what people who are Olympians posted on their Instagram, imagining that we were friends. I saw somebody in the weight lifting category be like, "Can't wait to go to Tokyo in two days to compete!" They were fully adjusted or entrained to U.S. time, and they were going to do this trip to Tokyo that was going to massively disrupt their circadian rhythms. Then they were going to compete shortly after landing.Probably the reason for that is because it's really expensive to go and leave your life for a long period of time, and weight lifting isn't the moneybags, the dollar sign, of Olympic sports. But that probably wasn't the best for optimizing performance, to wait until right before you're supposed to go on and then try and lift something really hugely heavy — though it could have been.The thing is, when you travel, you get tired and you undergo jet lag because your light exposure is changing, but you also have a circadian rhythm in performance where people tend to do best in the evening. Around 5 or 6 p.m., you're strong and fast and can run far and lift heavy things. If in Japan, you were supposed to compete at 10 a.m., maybe what you want to do is not adjust and be really careful about staying on your old time zone for the first day you're there, so that your body is at 6 p.m. during Japan's local time of 10 a.m.When it's most suited to compete.Exactly, to lift a big, heavy thing.Exciting. You wrote a little about how there are two big peaks for performance over the course of a given day. What are those?People tend to be alert in the morning, and then they have a second wave of alertness as the day winds down. The way we think about that is that there are two forces that combine to make you feel sleepy: There's how much hunger for sleep you've built up, and then there's your circadian clock basically shaping the gravity. How heavy is gravity for you right now?In the morning, after you get over this initial wave of grogginess, you have the first wave of alertness and that's because you don't have any hunger for sleep. Imagine you're biking, and you just started biking so you're feeling fresh, you're okay. You haven't accumulated feeling tired from biking. In the middle of the day, though, you have accumulated some fatigue. You've been doing stuff with your brain and the circadian clock is not saying it's a great time to be alert. People often get sleepy in the middle of the day, like you would be sleepy if you'd been biking for four hours.Then later in the day, the circadian clock comes in and says it's time for you to be awake. You need to get your act together before the sun goes down or you might die. That's like the road you're biking on sloping downward. It becomes easier. It doesn't take as much effort to stay awake; it doesn't take as much effort to pedal. Your circadian clock is like, great, be alert. Do stuff in the latter part of your day up until close to your habitual bedtime, when the road starts to swoop up again.Then you basically hit the wall of, it's 3 a.m. I want to die. Why am I staying up super late in the year 2009 next to my good friend Walter? What are we doing? You push through that and you get on the other side, and the road starts to slant down again.It was really cool to see, because this speaks to my experience of being sleep deprived and going over the swing set. It's really cool that circadian rhythm still holds, and that's why you get that second wind in the morning and sleep deprivation madness or whatever you want to call it. You do still see that swing hold even if you get more and more sleep weight accumulating.Exactly.I want to talk about some of the studies that you covered, because they're very, very interesting, but I also want to talk about some policy implications. Two things stuck out to me. One was the conversation about daylight saving time and potentially going either permanent DST or permanent standard time. The other one that was super interesting was basically how teenagers react to light and how we set school schedules. What are your insights on those two potential policy questions?Let's do DST first. This also has horrible UI. Nobody can figure out what they're saying when they talk about DST. So, standard time is brighter mornings, darker evenings. Standard time is what we're on in the winter when everyone's depressed and they're like, "It's 5 p.m. and it's dark. Stupid, stupid DST." That's actually standard time that's causing that. DST is darker mornings, lighter at night. DST is what we're on in the summer when we have lots of light even at 9 p.m. It's really bright at night.The thing most circadian scientists are going to tell you is that permanent standard time is best, then the current system where we switch, and then the last and least preferable is permanent DST. You might think, okay, but why isn't it just better to not switch? There's this penalty of everyone jet lagging themselves when we wake up an hour earlier or have to stay up an hour later when we do these transitions in the spring and the fall. The reason is because having the light late into the day in the summer, and especially having light in the afternoons and evenings in the winter and really, really dark mornings in the winter, is worse than the jet lag from transitioning. If we did permanent DST, where we have really dark mornings in the winter, it wouldn't just be a couple days of us all feeling jet lagged. It would be this chronic buildup of a messed up groove.One of the reasons why it's hard for people to concisely say why permanent DST is bad is because it's about rhythmic health. It's been argued, hey, if you want to maximize the amount of hours that we have really bright light during the daytime periods where people are normally awake, DST is really good for that, because you have light until super late. Think about the summer.But do we want to maximize that?Exactly, because imagine the case that I alluded to when we were talking about the meal timing thing. If you're in bright light 20 hours a day like people are up in the Arctic, you have bad sleep. It's not because you don't know about blackout curtains; it's because you're not able to adjust to a rhythm that's all bright light, little bit of darkness. What permanent DST does is basically, in the wintertime, it forces a bunch of people to wake up in darkness, or dim light. They then stay in the dark for a really long time, and they get their bright light weighted way on the latter half of their day.I'm going to go into a long analogy, but I promise I'll bring it back down. Imagine a sidewalk with alternating yellow and black squares, and I give you a yellow shoe and a black shoe. I say, yellow shoe steps on the yellow square, black shoe steps on the black square. If it's well sized to your legs, you could just do that. You're like, awesome, this is great. But then I do something where I basically take the yellow squares and scoot them up into the black squares. Then I have this brownish, crappy blurring of light and dark: yellow, black, and the blur. If I go, "Okay, walk on this," what you have to do is take one big step with one foot and a little step with your other, and you have to repeat that over and over again.That's basically what DST is doing to you in the winter. If we were to go to that in the winter, you'd wake up in the darkness, but then you'd get light later in the day. It makes it so that your rhythms are thrown off. You wake up with a bunch of melatonin in your body. It's like everybody's popping melatonin pills first thing, if you were to do permanent DST.If you're sitting here thinking, "I'm not convinced by her arguments around stepping on yellow tiles with yellow shoes and black tiles with black shoes," the most compelling reason is the fact that we literally tried this. We tried DST in the winter. We didn't even make a year. Russia tried it in the last decade — they made it three years and they bailed. People have tried DST in the winter and we all think it sucks. Meanwhile, Arizona has been on standard time all year since the 1960s and they're going strong.They seem really thrilled with their situation in Arizona.They're pretty happy. So, moral of the story, the current system would be better than having super dark mornings in the winter, which is what permanent DST would be. But I don't really care that much because I'm so convinced that if we try this again, we'll be like Russia in 2014 and bail. We'll be like us in the '70s and bail. We just need to, as a generation, collectively experience it and realize, oh yeah, this is why DST sucks.The old knowledge has been lost. We must relearn it.We'll relearn it and we'll say, no, we're never going to make this mistake again. And then in 50 years, we'll make it again.People always want the optimization of, I want more sleep. I want eight hours of sleep. I want the most sleep I can possibly get, or I want the most light I can possibly get. It seems like that's a trap. I completely understand why people get into that position, because I like light and I like sleep, but just realistically, if you're seeing how much of this governs the rhythm of lots of different processes that are more sophisticated than just enjoying seeing bright things, it's a real shock to the system.Human brains are just not wired to think rhythmically. It's like if you're in a math class and you're learning about Fourier series, to go extremely niche, really fast. It's not intuitive. People are wired to think, "More of thing good," and we're just less wired to think, well, it's good at some times and bad at other times.Very briefly, then, should kids be going to school as early as they currently go to school?No. At the same time, we also shouldn't make it so late, because what would happen if we made it really late is kids would just stay up later. There are diminishing returns, but now you have kids who are waking up at 5:30. That's absolutely what it would feel like for me to wake up at 3:30. It's cruel to them. There's this idea that, oh, we'll do DST. We'll do permanent DST so we don't have to switch, and then we'll also make school times an hour later.You've basically just got us back to where we started. You've made it so that they're going to be functionally popping a melatonin pill in the morning, just based on how much more melatonin is in their body when they wake up, and then you're letting them sleep in another hour. You cannot make both of those changes and act like you've changed anything. You at best maintain the status quo. My personal vote is we should do permanent standard time or keep the current system and make it so that schools for kids start later.The book is full of really, really interesting studies. Some of them are fascinating, recent, breaking studies that, like you mentioned earlier, reveal incredible things about the link between these biorhythms as well as pharmaceuticals and things like that. Some of them, however, are from a more swashbuckling age of discovery, and you cover a lot of really interesting sleep studies from the earliest days of sleep research. Do you have any favorites?In the book it probably comes across that I am so enamored with these old sleep studies, in part because they really underscore this point that if our definition of sleep health is only duration, it's insufficient. There are a bunch of peer-reviewed papers that went, yeah, this guy said he didn't want to sleep anymore, so he just didn't sleep for a week and we watched him. Actually, that's maybe my favorite. There's this guy who comes into a lab and is like, humans don't need to sleep and I can prove it. And then he just doesn't.They went, whoa, let him cook?Yeah, he might be on to something. In the paper, they're like, we tried to stop him but he said he was going to do it anyway, so we gave him a typewriter to see how bad he got at typing. The answer is, he got so bad at typing so fast that he just went, I can't do this. They didn't make him type anymore because it was too hard for his eyes. He got really snippy. People tend to hallucinate when you keep them up all night. They get paranoid for days and days. But at the same time, he was functioning. He was able to, on the last day of the study, write a vaguely sexist acrostic poem. I have tried to understand this thing. It's confusing, but you get the sense that it's not positive toward women.The original no-sleep creepypasta.Seriously. Obviously, I'm glad we don't do studies like this now. We have human subject protections. Why would you need to run the study? They did that in the '30s and '60s, and it was weird. But the data's been out there for so long. The creepypasta levels of sleep deprivation, people can survive. You should not do it. You should absolutely not do it. It's a bad idea. But it's not an instantly fatal thing, like you pulled an all-nighter so watch out.The punchline is, unfortunately for human brains, which want very rapid feedback and instant gratification, the way to have sleep health is not something acute, like the absence of these all-nighters that are terrible for you, but rather the constant maintenance of healthy rhythms that are on the time scale of weeks, months and years, as opposed to hacks that you can do in one hour of your day.The book is called Sleep Groove: Why Your Body's Clock Is So Messed Up and What To Do About It. There are so many fascinating things in here, Olivia. Why don't you tell readers a little about where they can find the book and you.Sleep Groove is a book about the emerging science of sleep regularity and how it matters so much to your overall health, well-being, and how you feel at 3 a.m. in the morning. You probably feel pretty bad; my book will explain why. You can find it where books are sold, including Amazon and your local independent bookseller. There's also an audiobook coming out next month.Oh, fun. That's great. Thanks so much for coming on, Olivia.Thanks for having me.Edited by Susie Stark.If you have anything you'd like to see in this Sunday special, shoot me an email. Comment below! Thanks for reading, and thanks so much for supporting Numlock.Thank you so much for becoming a paid subscriber! Send links to me on Twitter at @WaltHickey or email me with numbers, tips or feedback at walt@numlock.news. This is a public episode. If you'd like to discuss this with other subscribers or get access to bonus episodes, visit www.numlock.com/subscribe
Proudly sponsored by PyMC Labs, the Bayesian Consultancy. Book a call, or get in touch!My Intuitive Bayes Online Courses1:1 Mentorship with meOur theme music is « Good Bayesian », by Baba Brinkman (feat MC Lars and Mega Ran). Check out his awesome work!Visit our Patreon page to unlock exclusive Bayesian swag ;)Takeaways:Bayesian statistics offers a robust framework for econometric modeling.State space models provide a comprehensive way to understand time series data.Gaussian random walks serve as a foundational model in time series analysis.Innovations represent external shocks that can significantly impact forecasts.Understanding the assumptions behind models is key to effective forecasting.Complex models are not always better; simplicity can be powerful.Forecasting requires careful consideration of potential disruptions. Understanding observed and hidden states is crucial in modeling.Latent abilities can be modeled as Gaussian random walks.State space models can be highly flexible and diverse.Composability allows for the integration of different model components.Trends in time series should reflect real-world dynamics.Seasonality can be captured through Fourier bases.AR components help model residuals in time series data.Exogenous regression components can enhance state space models.Causal analysis in time series often involves interventions and counterfactuals.Time-varying regression allows for dynamic relationships between variables.Kalman filters were originally developed for tracking rockets in space.The Kalman filter iteratively updates beliefs based on new data.Missing data can be treated as hidden states in the Kalman filter framework.The Kalman filter is a practical application of Bayes' theorem in a sequential context.Understanding the dynamics of systems is crucial for effective modeling.The state space module in PyMC simplifies complex time series modeling tasks.Chapters:00:00 Introduction to Jesse Krabowski and Time Series Analysis04:33 Jesse's Journey into Bayesian Statistics10:51 Exploring State Space Models18:28 Understanding State Space Models and Their Components
Join Jay Gunkelman and Pete Jansons on the NeuroNoodle Neurofeedback and Mental Health Podcast as they explore fascinating topics, including: How neurofeedback can support mental health and brain optimization The science behind cell towers, 5G technology, and their impact on the brain Understanding power lines, electromagnetic exposure, and brain health Key differences between General Health and Wellness devices and medical-grade neurofeedback equipment Insightful stories about brain science, mental resilience, and environmental factors Jay Gunkelman, a renowned EEG expert, offers his unique perspective on these critical topics. Don't miss this engaging discussion filled with actionable insights and thought-provoking science. Key Moments: [0:00] Welcome and Introductions Jay Gunkelman and Pete Jansons kick off the episode, introducing the NeuroNoodle Neurofeedback and Mental Health Podcast. [6:01] Local vs. National Politics and Mental Health Impacts A discussion on how local and national political engagement affects mental health and community well-being. [12:02] Cell Towers: Not in My Backyard! Exploring the resistance to cell tower installations and the implications for community connectivity. [16:58] 5G, Power Lines, and Brain Health Concerns Addressing concerns about the impact of 5G technology and power lines on brain health and overall safety. [24:03] Satellite Cell Towers: The Future? A look at the future of communication technology with satellite-based cell towers and their potential benefits. [32:09] General Wellness Devices vs. Medical-Grade Neurofeedback Comparing general health and wellness devices with medical-grade neurofeedback systems for mental health applications. [40:49] Why Wavelets Beat Fourier Analysis for EEG Explaining why wavelet analysis is a superior method for EEG processing compared to traditional Fourier analysis.
Charlee Stefanski and Constantin Gonciulea, co-authors of Building Quantum Software, are interviewed by Yuval Boger. Charlee, a software engineer, and Constantin, an expert in math and quantum computing, both from Wells Fargo, discuss their new book aimed at developers and readers with a basic background in math and programming, emphasizing a deeper understanding of quantum algorithms like Grover's algorithm and the quantum Fourier transform. They also cover the importance of hybrid quantum-classical algorithms and the development of their own high-performance quantum simulator. The conversation touches on the current state of quantum software tools, the challenges of scaling quantum algorithms, and the potential business impact of quantum computing, particularly in optimization and finance, and much more.
In this episode, Gabriel and Autumn interview mathematician, comedian, and author Matt Parker about his latest book, "Love Triangle." They discuss the unique page numbering system in the book, which is based on the sine function, and how it adds an extra layer of discovery for readers. They also explore the use of triangles and quads in 3D modeling, the concept of Perlin noise, and the perception of randomness. The conversation touches on the intersection of mathematics and creativity, as well as the practical applications of mathematical concepts in various fields. The conversation explores various topics related to mathematics, including the analysis of the Mona Lisa, the use of math in playing pool, the discovery of new shapes, and the application of math in various fields. The speakers discuss the motivation behind exploring these topics and the interplay between math and art. They also provide advice for science and math content creators on YouTube.Keywords: mathematics, book, Love Triangle, page numbering, sine function, triangles, quads, 3D modeling, Perlin noise, randomness, creativity, practical applications, mathematics, Mona Lisa, parallax, pool, shapes, Fourier analysis, YouTube, physics, AI, machine learningSubscribe to Breaking Math wherever you get your podcasts.Become a patron of Breaking Math for as little as a buck a monthFollow Matt Parker on Twitter and on YouTube at @StandUpMaths and find his book "Love Triangle" on AmazonFollow Breaking Math on Twitter, Instagram, LinkedIn, Website, YouTube, TikTokFollow Autumn on Twitter and InstagramFollow Gabe on Twitter.Become a guest hereemail: breakingmathpodcast@gmail.com
Stephen Wolfram answers questions from his viewers about the history of science and technology as part of an unscripted livestream series, also available on YouTube here: https://wolfr.am/youtube-sw-qa Questions include: Is there a directionality to science and technology? - Has anyone sort of applied the hacker mentality to the Antikythera mechanism to figure out what else you could use it for? What kind of uses could a time-traveling von Neumann figure out? - What is the likelihood that ancient tech we've discovered had vastly different uses than what we believe? - Southeast Asia is terrible for archeology because you can make almost anything from bamboo: tens of thousands of years ago, people obviously used wood etc., but only stone remains. - What does that say going forward, with our fast-rotting bits, in contrast with stone or wood, or even paper? - Any thoughts on the ancient dodecahedra? Do you have one? - Who started research on the periodic tables? Can you discuss a bit about its development? - What motivated the advent of the fast Fourier transform algorithm? What was its creator wanting to solve? - How advanced did analog computers get before we moved to digital computers? Was there any debate on whether we shouldn't move to digital at the time? - Why did modern formal logic take so long to develop historically, compared to other branches of mathematics or physical sciences? What explains the delay until the mid-nineteenth century? - Is there any knowledge in physics today that has been influenced by ancient texts like the Vedas etc.?
Siva Yellamraju is the Co-founder and CEO at Fourier. Fourier's mission is to make hydrogen universally accessible with on-site and on-demand production. Fourier is not Siva's first startup, it's his fourth. He sold his last company to Apple the one before that to Google and the one before that to Polycom, so he knows a thing or two about entrepreneurship.Fourier is barely two years old and they raised a seed round in mid-April led by General Catalyst. They've largely operated in stealth. In fact, there's nothing on their website at fourier.earth other than their thesis statement for starting the company, so we were excited to learn from Siva about why he transitioned from a very successful entrepreneurial career in software to tackle a business in the energy sector. We were also eager to learn specifically about what Siva''s building in distributed hydrogen and what he's learned from the process thus far. In this episode, we cover: [2:01] Siva's entrepreneurial background[4:46] His decision to work on climate and energy [7:35] Customer pain point understanding [12:44] Potential use cases for distributed hydrogen, including power backup solutions and data centers[15:04] Approaching hydrogen production as a data problem[21:47] Customers working with Fourier as part of a broader movement around clean energy [24:01] Potential use cases for distributed hydrogen, including power backup solutions and data centers[27:14] Advantages of hydrogen over batteries for long-term storage and heavy transportation [33:20] Geographic markets for hydrogen deployment; the US, Germany, India, and Indonesia[35:33] Fourier's success to date and plans for commercial rollout [37:12] The goals for Fourier's pilots in the US and India [40:16] Siva's learning curves in building an energy company [42:29] Potential for India to become a leader in hydrogen[44:21] The name behind Fourier [45:34] Fourier's current capital and hiring needsEpisode recorded on July 25, 2024 (Published on Aug 1, 2024) Get connected with MCJ: Jason Jacobs X / LinkedInCody Simms X / LinkedInMCJ Podcast / Collective / YouTube*If you liked this episode, please consider giving us a review! You can also reach us via email at content@mcjcollective.com, where we encourage you to share your feedback on episodes and suggestions for future topics or guests.
Does sound travel faster in space? Is the multiverse theory true? Can gravity escape a black hole? In our latest episode of our popular “Chuck GPT” series, Dr. Charles Liu and co-host Allen Liu welcome our Social Media/Patreon Community Director Stacey Severn to answer fan questions collected from Patreon patrons, students, Facebook and YouTube. As always, though, we start off with the day's joyfully cool cosmic thing: the recently released Euclid space telescope image of galactic cluster Abell 2390, which is about 2.7 billion light years away from Earth, in which more than 50,000 galaxies are visible. You'll also hear about the Coma Cluster, the Virgo Cluster, the closest galactic cluster to us, and the planned Nancy Grace Roman Space Telescope. Our first fan question comes from Emil R. on Patreon: “I wonder what would happen, if you tied one end of a really, really long rope to the International Space Station and have the other end hang down all the way down in the Earth's atmosphere. Would the current speed of the ISS circling the globe counteract the fact that the rope is in the atmosphere and experiencing drag? Would people on airplanes be able to see a rope swing by? Would the end of the rope on the ISS be stretched out or loose, and would it drag the ISS down in its orbit?” Allen, who loves this question, addresses orbital velocity, drag, momentum, conservation of energy, space tethers, sky hooks, space elevators, and the ISS. Chuck talks about having seen the Tethered Satellite System trailing behind the Space Shuttle through the telescope he was using for his doctoral dissertation in the 1990s! Our first student question comes from Michael L.: “Is the multiverse theory true?” Chuck's answer involves eternal inflation, bubble universes, quantum mechanics, many worlds, and, somehow, Schrödinger's cat. From Facebook, Steven B. asks: “We all know that warp drive is still science fiction. But what is developing with other kinds of propulsion? Have we reached the limit of chemical propellants? What is happening with ion drives and nuclear systems?” Allen reviews the state of the art, including Ad Astra's VASIMIR engine, which we covered in our 2-part episode Star Trucking with Franklin Chang-Diaz and Miranda Chang. Our next student question is from Roberto J.: “How was gravity created?” Chuck says that while we just don't know for certain, gravity may have come into existence during the “Plank time” at the very start of our universe before cosmic inflation began. YouTuber @UnexpectedBooks asks, “How can gravity be “transmitted” via gravitons? It seems that a black hole would have no mass, because gravitons, like everything else, couldn't escape it.” Chuck explains that even though definitely black holes have mass, if gravitons exist, they must be able to leave the event horizon, and Allen points out that gravitational waves do just that. Our last student question is from Omar: “Does sound travel faster in space?” Chuck describes how sound waves travel, and why there's enough particulate matter in space to still allow it, possibly even faster than here on Earth. We end on a Patreon question from Eric S.: “The Heisenberg uncertainty principle is a casualty of the particular mathematics we have used to explore the quantum world. If we were to adjust those mathematics to a less consistent but more complete axiomatic viewpoint, could it be possible to 'see deeper'?” Chuck and Allen's answer involves high-order math, the Heisenberg uncertainty principle, string theory and quantum mechanics. We hope you enjoy this episode of The LIUniverse, and, if you do, please support us on Patreon. Credits for Images This Episode: – Euclid telescope image of Abell 2390 – ESA/Euclid/Euclid Consortium/NASA, image processing by J.-C. Cuillandre (CEA Paris-Saclay), G. Anselmi, ESA license – Virgo Cluster of Galaxies – Chris Mihos (Case Western Reserve University)/ESO, CC BY 4.0 – Coma Cluster of Galaxies – Nielander, Public Domain – Hubble telescope image of Abell 2390 – NASA, ESA, & Johan Richard (Caltech, USA), Public Domain – Roman Space Telescope under construction – NASA/Chris Gunn, Public Domain – Space Elevator Artist's concept – Andrei Sokolov – The ISS in orbit – NASA, Public Domain – The Tethered Satellite System – Space Shuttle – NASA, Public Domain (Image: https://commons.wikimedia.org/wiki/File:STS-46_TSS-1_fully_extended.jpg) – Many-worlds depiction of Schrödinger's cat – Christian Schirm, Public Domain – NEXIS Ion thruster – Jet Propulsion Laboratory, Public Domain – Design of NASA & DARPA's DRACO nuclear rocket – DARPA, Public Domain – History of the universe diagram – NASA/WMAP Science Team, Public Domain – Artist's animation of gravitational waves – LIGO/T. Pyle, free to use – Fourier transform of a signal – Wawo1102, Public Domain – Waveform of same signal – Made with Desmos, Attribution – Wavelet (Gabor) transform of same signal – Wawo1102, Public Domain #TheLIUniverse #CharlesLiu #AllenLiu #SciencePodcast #AstronomyPodcast #Euclidspacetelescope #galacticcluster #Abell2390 #VirgoCluster #ComaCluster #darkmatter #darkenergy #orbitalvelocity #momentum #conservationofenergy #spacetethers #skyhooks #spaceelevators #ISS #InternationalSpaceStation #TetheredSatelliteSystem #SpaceShuttle #multiverse #theoryofthemultiverse #eternalinflation #bubbleuniverses #quantummechanics #manyworldstheory #schrodingerscat #soundwaves #blackhole #gravitons #gravity #Planktime #BigBang #Heisenberguncertaintyprinciple
Stephen Wolfram answers questions from his viewers about the history of science and technology as part of an unscripted livestream series, also available on YouTube here: https://wolfr.am/youtube-sw-qa Questions include: How often do separate ideas emerge (like convergent evolution) and merge to either compliment each other or "make whole" ideas that didn't have all the answers themselves? - What surprises you most about the history of science and technology? What is there to learn? - What's the history of timekeeping? - How did civilizations create the calendar and clocks? What science supports this? - How would you keep track of time/sync up your devices? Today it's easy with electronic devices. I'm imagining my microwave and stove clock always being a minute or two out of sync from manually setting it. - How did you get to know so much, and in such depth, about such vastly disparate historical topics? Seems this could be fascinating to hear about in and of itself. - Makes me think that maybe blockchains are the evolution of agreed-upon ledgers in one single agreed-upon time. - Do you think the Fourier transform is fundamental to nature? - Historically, it appears in quantum field theory, quantum computing, signal processing, etc. - When did time become an important variable in science? - Why do you suppose no one tried to continue with Nikola Tesla's incomplete inventions? - As a software engineer, I discover elegant academic programming languages all the time, but they never seem to gain much traction in industry. On the other hand, we have languages like JavaScript, which was pretty much developed as a prototype but is now ubiquitous in web development. I'd be curious to hear your thoughts on this history of "organic" development of programming languages. - Are there any pros to using "historical" technology, or is newer always better?
La Ley de Fourier describe con gran precisión la transmisión de calor en objetos sólidos. Un trabajo reciente revela la primera excepción conocida a esta ley que podría tener consecuencias interesantes para la economía mundial. Gracias por sus comentarios, interacciones, apoyo económico y suscripción. Escuche y descargue gratuitamente en MP3 2024/03/06 Fourier Excepción. Gracias por su apoyo a El Explicador en: Patreon, https://www.patreon.com/elexplicador_enriqueganem PayPal, elexplicadorpatrocinio@gmail.com SoundCloud, https://soundcloud.com/el-explicador Spotify, https://open.spotify.com/show/01PwWfs1wV9JrXWGQ2MrbY iTunes, https://podcasts.apple.com/mx/podcast/el-explicador-sitio-oficial/id1562019070 Amazon Music, https://music.amazon.com/podcasts/f2656899-46c8-4d0b-85ef-390aaf20f366/el-explicador-sitio-oficial YouTube, https://youtube.com/c/ElExplicadorSitioOficial Twitter @enrique_ganem Lo invitamos a suscribirse a estas redes para recibir avisos de nuestras publicaciones y visitar nuestra página http://www.elexplicador.net. En el título de nuestros trabajos aparece la fecha año/mes/día de grabación, lo que facilita su consulta cronológica, ya sabe usted que el conocimiento cambia a lo largo del tiempo. Siempre leemos sus comentarios, no tenemos tiempo para reponder a cada uno personalmente pero todos son leídos y tomados en cuenta. Este es un espacio de divulgación científica en el que nos interesa informar de forma clara y amena, que le invite a Ud. a investigar sobre los temas tratados y a que Ud. forme su propia opinión. Serán borrados todos los comentarios que promuevan la desinformación, charlatanería, odio, bullying, violencia verbal o incluyan enlaces a páginas que no sean de revistas científicas arbitradas, que sean ofensivos hacia cualquier persona o promuevan alguna tendencia política o religiosa ya sea en el comentario o en la fotografía de perfil. Aclaramos que no somos apolíticos, nos reservamos el derecho de no expresar nuestra opinión política, ya que éste es un canal cuya finalidad es la divulgación científica. ¡Gracias por su preferencia!
In this episode of the Generally AI podcast, hosts Roland and Anthony explore the fascinating world of audio waves by discussing the history of Fourier analysis and how the Fast Fourier Transform (FFT) revolutionized signal processing with its efficiency. They then shift to song recognition apps like Shazam and their underlying algorithms: breaking songs into snippets and using techniques such as the FFT or neural networks. Read a transcript of this interview: https://www.infoq.com/podcasts/generally-ai-making-waves/ Subscribe to the Software Architects' Newsletter for your monthly guide to the essential news and experience from industry peers on emerging patterns and technologies: https://www.infoq.com/software-architects-newsletter Upcoming Events: QCon London (April 8-10, 2024) Discover new ideas and insights from senior practitioners driving change and innovation in software development. https://qconlondon.com/ InfoQ Dev Summit Boston (June 24-25, 2024) Actionable insights on today's critical dev priorities. https://devsummit.infoq.com/ QCon San Francisco (November 18-22, 2024) Get practical inspiration and best practices on emerging software trends directly from senior software developers at early adopter companies. https://qconsf.com/ The InfoQ Podcasts: Weekly inspiration to drive innovation and build great teams from senior software leaders. Listen to all our podcasts and read interview transcripts: - The InfoQ Podcast https://www.infoq.com/podcasts/ - Engineering Culture Podcast by InfoQ https://www.infoq.com/podcasts/#engineering_culture - Generally AI Podcast www.infoq.com/generally-ai-podcast/ Follow InfoQ: - Mastodon: https://techhub.social/@infoq - Twitter: twitter.com/InfoQ - LinkedIn: www.linkedin.com/company/infoq - Facebook: bit.ly/2jmlyG8 - Instagram: @infoqdotcom - Youtube: www.youtube.com/infoq Write for InfoQ: Learn and share the changes and innovations in professional software development. - Join a community of experts. - Increase your visibility. - Grow your career. https://www.infoq.com/write-for-infoq
Reader feedback, leadless pacing, ABIM, SGLT2 inhibitors, peri-operative MI after cardiac surgery, and. AHA late-breakers are the topics John Mandrola, MD, covers in this week's podcast. This podcast is intended for healthcare professionals only. To read a partial transcript or to comment, visit: https://www.medscape.com/twic I. Reader Feedback Sep 22, 2023 This Week in Cardiology Podcast https://www.medscape.com/viewarticle/996694 - ODYSSEY OUTCOMES trial https://www.nejm.org/doi/full/10.1056/nejmoa1801174 - FOURIER https://www.nejm.org/doi/full/10.1056/nejmoa1615664 II. Leadless Pacing - Leadless vs Transvenous Pacemaker Study https://doi.org/10.1093/europace/euad269 III. ABIM News Heart Societies Ready to Split From ABIM Over Long-Standing MOC Disputes https://www.medscape.com/viewarticle/996747 IV. SGLT2 inhibitors Empagliflozin Gets FDA Nod for CKD Without T2D or HF https://www.medscape.com/viewarticle/996873 - EMPA-Kidney https://www.nejm.org/doi/full/10.1056/NEJMoa2204233 V. Peri-Op MI after Cardiac Surgery Cardiac Troponin Predicts Mortality Post Surgery https://www.medscape.com/viewarticle/996877 - Austrian Perioperative MI study https://doi.org/10.1016/j.jacc.2023.07.011 - Vision https://www.nejm.org/doi/10.1056/NEJMoa2000803 VI. AHA Late Breakers - Link to Late-Breakers https://professional.heart.org/en/meetings/scientific-sessions/programming/late-breaking-science#late-breaking You may also like: Medscape editor-in-chief Eric Topol, MD, and master storyteller and clinician Abraham Verghese, MD, on Medicine and the Machine https://www.medscape.com/features/public/machine The Bob Harrington Show with Stanford University Chair of Medicine, Robert A. Harrington, MD. https://www.medscape.com/author/bob-harrington Questions or feedback, please contact news@medscape.net