Well, there we have the sound and everything, you can only check it from here, go live. So normally do it on another device, just pop it in a different window for a sec. Hello, Rohan, I haven't started yet, I'm starting a second. Checking my sound and everything, can you hear anything? Yeah, that's the problem of testing on the same device that the sound will go into the stream, which is not cool. Okay, I'll just close this. Probably do we have to monitor on another device? Music. We'll start by reviewing some literature, some papers on EG to music conversion. Using these plugins in GPT-4, can I get this Scholar AI, Scholar AI. So GPT-4 using the plugins, and that's how it looks like today. It will probably look very different tomorrow, no one knows. But when you use the plugins, you can select your plugins. I have these three selected. I did a review before this, code your later. It was kind of working okay. It was integrating with my Visual Studio Code. But yeah, I do have a GitHub co-pilot as well, so yeah, so I'm not sure which one's better. You can probably guess. And then, yeah, I haven't used this YouTube summaries. It actually wasn't working, I think. I have to try it again. But yeah, this Scholar AI says, Unleash Scientific Research. Search 200 million plus peer-reviewed papers and explore images and text from Scientific PDFs. Okay, that's fine. So when asking for EG to music generator, it's generated this general overview. That's fine, we covered it in previous streams. Keep suggesting anything with EG or ECG. Keep suggesting M&E library, which we're actually trying to avoid for various reasons. For many, because we want to do things ourselves. And I think M&E is quite outdated as well. So that's the same problem with papers at the end. Yeah, so here it's using this Scholar AI. It has its own API. It's using these keywords. The choir is paper on EG to music generation, sold by relevance. It's not why it's given offset of four, assuming there's three other papers. It did give a list of papers. However, I wasn't able to replicate that search myself. So if I do a general search, EG to music generator, I get a whole different list of papers. Well, at least the first one is not on the list. The other four are actually not quite relevant. So I guess it's because of the brain computer interfaces, so I'm using a keyword in there. Yeah, so then I tried doing an advanced search, which you can do from here. Where is it again? Why is it going away? Is it or or? Oh, come on. Well, that's how advanced search line looks like in Google Scholar. Really, because you change, it's really hard to get there. Yes, we have music generation. Should be in quotation marks, I don't know. But anyway, this Scholar API is obviously different. Well, because the actual Scholar Google.com doesn't give me the same papers. So that's something to further explore. Maybe we're spending like five minutes on it. So the first paper is the only one that is actually somehow relevant. But then it's actually talking about a more clinical case. Very generic and a pre-processing EG signal. You can see by looking at this figure, you can kind of guess what year is this paper from. So doing wavelength decomposition, I think they actually go into the details of how it's actually done. We have it reconstruction, filtering into subbands, extraction of discriminative features. To actually say what the features are. I don't think so. I had a look at this paper before, comparison between wavelength and Fourier transform. Okay. I can tell it's quite generic stuff. Okay, so going straight into methods section. And make it bigger. Let's read this quickly. Processes performed using EEG cap that consists of EEG electrodes, which will be in accordance with international system of electrode placement. The arrangement of electrodes will be in a way that they're received at correct position on the scalp IE occipital lobe. Okay, no information there. A look at the project structure which has an amplifier pipeline with differential instrumentation amplifier attached to an operational amplifier and filters for removing noise. Then the signals are passed onto the microcontroller for digitalization. After all the conversion signals are sent to computer via USB, then signal processing is done and desired result is tried to obtain. It's illustrated by the block diagram figure five. It feels like it was written by a change of PTO survey. There's another very low quality figure. Yeah, it's just a very low res. Can barely read it. Might close that. Okay, where's the actual results? An intelligent way. Yeah, if you have an intelligent way in the title, that should be your red flag. CVT using break-through interface. Okay. Yeah, it's like very generic stuff. There's actually no details on what the system actually is. Is it the research conference? Sorry, I should have looked at this first. This is the conference paper. It's well-closed. But that's the first way as for papers. That's the first thing that this add-on in GPT-4 Scholar AI gives us. First, we're asking for papers. It's not really a paper. And then other things are not really relevant. Because it's mainly focusing on break-through interfaces. This is games. So no music mentioned. So yeah. So I've played with this before. It seems like just better at this stage use Google Scholar directly instead of this Scholar AI. Exactly what it does. When we do use Scholar AI, there are actually more irrelevant papers. Let's have a look at the first one from 2006. Wait a second. This has a very similar image. I'm feeling the authors are different. The PDF is available. There's some Japanese website. Yeah, this actually has more details than that. Not too much. The image is not there anymore. So it's estimating emotions. Doing a music generator out of emotions. It's interesting. Yeah, it's reading the whole thing. Anyway, let's get back to what we were doing. Currently, music was playing quite a lot of time. But without much progress, it was generating something. It was generating noise. It wasn't very musical. So I thought we'll give it another go. This time, we'll start not from scratch as previously. So previously, we did learn quite a bit about music generation, MIDI, music fonts, things like that. You can see previous videos. The idea here is to take an existing tool. This is already on the website. You can go try this out. We'll also start a new GPT-4. We use GitHub Copilot as well. Copilot has trouble keeping overall context. And I have to do it directly with GPT-4 as well. It's generally much faster as well, which makes me think it's not GPT-4. It's 3.5. Do I use two functions? Right, this is the coordinates. The function takes four parameters, low-cut, high-cut, assembly frequency, and order. It has order 5 by default. The function is calculated in Nyquist frequency, which is half of the sampling frequencies. It then normalizes the low-cut and high-frequency by dividing them into Nyquist frequency. The battle function from side-by-signal modules then used to calculate the coefficients of the bottom-war filter. We get the coefficients in A and B. And the next function is actually using those coefficients. No, it does not. Why not? No, yes, it does. It has the same inputs. Then it's actually generating B and A and using L-filter, one-dimension IAR or FIR, which one is it by default? Sure, this would be parameters B array, array like... Okay, it's not actually telling us which one is it. Is it IAR or FIR? Sure, it's IAR. That's just a guess. We have the same description by GPT-4 for comparison. Yes, GPT-4 has a better, more generic explanation, which is better for purposes. Filter data is returned. It didn't actually explain the whole code, did it? Yeah, GPT-4 giving a more general, overall description, which is better. But we'll get into actual prompts in a second. This is obviously the HTML. We probably don't need to specify the name. Maybe we should index HTML. We used to always say this is for reference only to not generate anything else, but that the prompt has kind of mixed results. Sometimes GPT-4 just ignores it outright. Let's explain this with GitHub Copilot, GPT-4 as well. Quickly. Then we'll also have JavaScript. It's called e.g. JavaScript. It's a static folder. Remove this thing at the bottom. Again, that prompt doesn't... It's being ignored most of the time or some of the time. Let's see what it gets to say because we haven't dealt with this tool in a while now. Data filtering and processing functions. Functions are defined for applying a button with bandpass filter. The script includes the capability for wavelet denoising using the PyWT library. Flask roots. The main root serves an HTML page. Get underscore data. Root handles get requests to process and return IEG data based on specified parameters like channel, filter size, filter settings, and wavelet transform options. Data processing in the get underscore data root. It extracts data based on the start second and window size from the request. It processes the IEG data by applying the trending, wavelet denoising, and calculating the fast Fourier transform, FFT, for spectral analysis. The script filters the data into different frequency bands, Delta, Theta, Alpha, Beta, and computes the power spectral density, PSD. It returns processed data, including raw and denoised signals, spectrums, signal-to-noise ratio, SNR, and mean squared error, MSE, as JSON. Error handling. There's a validation for the wavelet transform type, returning an error if an invalid type is provided. Running the app. The script is set to run the Flask app in debug mode. This script is well structured for a web-based application aimed at analysing and visualising IEG data with options for filtering, denoising, and spectral analysis. It's good GPT-4 says it's a good script considering it wrote it itself. The provided HTML document is for an index page of a web application that visualises EEG, electroencephalography, data. The document has several key components. Head section. Meta tags for open-graph protocol, providing title, description, and image for rich previews on social media platforms. Responsive design settings and character encodings set to UTF-8. Links to external starships in the Plotli JavaScript library for data visualisation. Header. A navigation bar with a logo, menu toggle for mobile devices, and links to home, about, and contact pages. Body content. A main section containing controls for data visualisation such as wavelet denoising options, wavelet types, levels, and a trend toggle. Spectrum control options including whole spectrum display, frequency scale, and filter order. General controls like channel selector, window size, and a scroll bar for navigating through the data. Plot containers for displaying the raw signal and frequency spectrum. Output containers showing the signal to noise ratio, SNR, and mean square error, MSE. Content section. Detailed descriptions and features of the IEG spectrum visualisation application. Explanations of the different aspects of the IEG data visualisation, including technical details and data source information. Closing note discussing the application's utility. Scripts. JavaScript for additional functionality and a script for Google Adsense ads loading. This API. The JavaScript file you provided is a crucial part of your IEG underscore spectrum underscore 16 underscore Chan underscore denoise underscore music web application. It handles user interactions and data visualisation in the browser. Here's an overview of its functionality. Initial setup. The script listens for the DOM content loaded event to ensure it runs after the full HTML document has been loaded. It initialises variables for application state, such as is playing, current second, and update interval. DOM element references. It obtains references to various HTML elements like sliders, checkboxes, and selectors that users will interact with. Environment check. A check to determine if the application is running in a production environment, which influences the API endpoint used for data fetching. Data fetching and rendering. The fetch data and render function is defined to fetch data from the flask back end and render it using plotly, JS. This function constructs a query string with parameters from the UI elements and sends a request to the back end. Upon receiving the data, it uses plotly to plot raw EEG signals and frequency spectrums and displays SNR and MSE values. Event listeners. Event listeners are added to various UI elements. When a user interacts with these elements, e.g., changing a value or tumbling a switch, fetch data and render is called to update the visualisations with new parameters. A listener on the file scroller allows users to navigate through the EEG data. Listeners on other controls like the channel selector, window size slider, and wavelet settings trigger data fetching and re-rendering based on the selected options. Initial data rendering. Finally, fetch data and render is called at the end to load and display data when the page is first loaded. This script effectively integrates user interface elements with data processing and visualisation, offering an interactive and dynamic experience for users exploring EEG data. It makes good use of a synchronous JavaScript for fetching data and leverages the powerful plotly library for rendering complex data visualisations in the browser. The whole spectrum. We have the delta, theta, alpha, beta. It seems to work okay. This is during seizure. It's actually an error at the edge there. And this is during non-seizure. That is the weird thing in it. Yeah, this is the end of the seizure. So there's seizure, there's no seizure. It's a tricky business because the spectrum is actually similar. But it's similar because of different reasons. You have to look at the power in it. So yes, when I improve this tool, but we also want to generate music out of it. So we don't have to review EEG manually like this. Just hit the play button and listen to it. Hopefully it's not too annoying to listen to. Need to write prompt for it. This tool is working well. It's fast and responsive. I would like to add an option to play musical notes. When we are scrolling through the file, the notes could be retrieved out of the power in each frequency component and potentially played as chords. So multiple notes together. Let's just see what it says. When you write something unstructured like that, the good thing about it is that it also organizes it. It says integrating a feature to play musical notes based on the power of frequency components in EEG data. This would turn the data into an auditor experience. High level data mapping, frequency to note mapping, scaling and the power of each frequency could control the volume or dynamics of the corresponding note. Chord generation based on selected frequencies from chords can be done by grouping notes that harmonize well together. That's the help from a musician here. Implement logic to decide how chords change over time. Audio synthesis.  Integrating with existing application. Add a play button. Using a play button. Yeah, we don't want to do that. The question is do we just want to play frequencies by actually musical notes which we tried doing previously. So in the code we already should have the power for each EEG frequency component, delta, theta, alpha, beta, when scrolling through the file, can we use this to generate musical notes? Kind of the same thing again, but it's not actually doing it. So if we assign a specific note or a range of note to each EEG frequency band, it doesn't mean that we will only have four notes to actually start generating a JavaScript using Web Audio API. Yeah, this one's using sinusoids. If you assign one note to each EEG frequency band, delta, theta, alpha, beta, you would indeed only have four distinct notes each representing the activity within its respective band. However, there are several ways to expand this into a richer auditory experience. Node variation within each band. Instead of assigning a single node to each band, you can map the power within each band to a range of notes. This way, variations in power lead to different notes within the band's range. For example, delta band, power variations mapped to a range of low notes. Theta band, power variations mapped to a range of slightly higher notes, and so on. This approach allows for more variability and a more complex sound as the EEG data changes. Choose a musical scale and assign a range of notes from that scale to each frequency band. For instance, Eh, this sounds like a better idea. Each band will play notes within its assigned range based on the power in that band. If you're playing notes from multiple bands simultaneously, you're effectively creating chords. The specific notes played from each band at any given moment can combine to form a chord, which changes as the EEG data changes. You can add a rhythmic element by varying the duration and onset of each note based on the EEG data, adding another dimension to the auditory representation. Harmonization, implement rules for harmonizing notes played simultaneously from different bands. Octave variation, play the same note but in different octaves depending on the intensity or other characteristics of the EEG signal. This approach provides a dynamic and engaging way to represent EEG data through sound, with each EEG band contributing to a composite auditory experience that changes with the EEG data. Another main question is, should we do this in front end or back end, mainly? Or both? Or both? Siding whether to implement the EEG to music feature predominantly on the front end or back end, or both, depends on various factors including performance, complexity of processing, real-time responsiveness, and scalability. Let's consider the pros and cons of each approach. Front end implementation, pros, real-time interaction, directly mapping EEG data to sound in the browser allows for immediate auditory feedback as the user interacts with the data. Reduced server load, processing is done on the client side, reducing the load on your server. Client side libraries, leverage powerful client side libraries like the Web Audio API for audio synthesis and playback. Cons, performance dependency on client's device, the processing load is entirely on the user's device, which might not be ideal for low-end devices. Browser compatibility, you need to ensure compatibility across different browsers and devices. Limited processing power, complex audio processing might be limited by the client's hardware. At this stage, because we're running the server for other things as well, we want to do as much as possible on the front end. So yes, the performance will highly depend on the device you are using to access the web application. Back-end implementation, pros, controlled environment. Processing on the server side can be more predictable and efficient, especially if you have powerful server resources. Complex processing, more complex algorithms for sound synthesis can be implemented. Consistency across devices, independent of the client's device capabilities. Cons, network latency, requires sending data back and forth between the server and client, which might introduce latency, affecting real-time responsiveness. Server load, increases the computational load on the server, which could be a concern if many users access the service simultaneously. Yeah, probably go for some sort of hybrid, well, obviously, for hybrid approach. Question is, what's the ratio between back-end and front-end processing? Pros, balance of load, distribute tasks based on their nature and complexity. For instance, basic audio processing and playback can be handled in the front-end, while more complex data analysis and transformation can be done on the back-end. Optimized performance, utilize the strengths of both server and client side processing. Cons, complexity, requires careful coordination between front-end and back-end, which can increase the complexity of your application. Front-end heavy approach for scenarios where real-time user interaction and responsiveness are crucial. This is ideal if the audio processing is not overly complex and if you can ensure reasonable browser and device compatibility. Back-end heavy approach for scenarios requiring complex data analysis and transformation, or when you need to manage the computational load away from the client. Hybrid approach if you have both complex processing needs and a requirement for real-time interactivity. This approach can help balance the load and optimize performance. In conclusion, the choice largely depends on the specific requirements and constraints of your application. A front-end approach is typically more suitable for real-time interactive applications, while a back-end approach is better for heavy processing tasks. A hybrid approach can offer a balance between the two, leveraging the strengths of both client and server side processing. Okay, so my question is that some recommendations for how the code could look like, since they would not work, doesn't have necessary libraries, to make it work, we would like to change the code, so it plays the chords, the notes, musical notes, as we scroll through the EEG data. To modify your application, so it plays musical notes or chords as you scroll through the EEG data, you need to integrate audio synthesis and playback into your existing JavaScript code. This can be done predominantly on the front-end using the Web Audio API, which is suitable for real-time audio processing in web applications. Why is this conceptual stuff not actual code? First, set up a function to play individual notes using the Web Audio API. Create a function to map the power in each EEG frequency band to a musical note. This function should take EEG data as input and return frequencies, notes, to be played. Modify the existing scroll event listener to trigger the note playing function based on the current EEG data. Let's go from the bottom, modifying this event listener, assuming the patch and render date in the second bit here. Patch and render should be accessible after the file scroll updated this function. In JavaScript, the order is important. So we're using play frequency here, play frequency there, and we can issue with the WebKit audio contextual sorted in a sec. And we have the map EEG data, and the event scroller. You need to fine-tune map EEG data to notes to create an enjoyable and meaningful auditory experience. The mapping from EEG data to musical notes can be complex and may require experimentation to get right. Performance, ensure the sound synthesis doesn't impact the app's responsiveness. Test across different devices. User control, provide controls to enable, disable sound, adjust volume, or change the mapping logic. Musicality, adjust the mapping to ensure the resulting sound is harmonious and reflects the EEG data meaningfully. Fine-tuning the map EEG data to notes function requires a thoughtful approach to effectively translate EEG data into musical notes. Here's a more detailed strategy to refine this mapping. Not writing the code. Firstly, decide the musical scale and range you want to use. For simplicity, you might start with a C major scale spanning one or two octaves. You can later expand to more complex scales or a wider range. By this writing it. EEG data can vary significantly in amplitude. Normalize these values to a consistent range that maps well to your musical scale. For example, you could map EEG power values to a range of 0 to 1. Divide your chosen musical scale into segments corresponding to the EEG frequency bands. Delta, Theta, Alpha, Beta. For instance, for each EEG band, map the normalized power value to a specific note in its range. Higher power could map to higher notes within the band's range. Use the power values not just to determine pitch, but also dynamics, loudness. A higher power might result in a louder note. Question when we normalize. It's normalizing within the certain window, so the time window there is important. Use the power values not just to determine pitch, but also dynamics, loudness. A higher power might result in a louder note. If playing chords, multiple notes simultaneously, ensure the combination of notes from different bands harmonizes well. This might involve selective note choices or octave adjustments. We're replacing all this map data to notes. Musical scales experiment with different scales, major, minor, pentatonic, etc. to find what best represents your data. Timing, consider how the duration of each note relates to the time scale of EEG data. User feedback, iteratively refine the mapping based on user feedback, especially from those familiar with EEG data interpretation. We're having errors. Remember, this process involves both technical implementation and creative choices. The goal is to create an auditory representation of the EEG data that is both informative and aesthetically pleasing. That's fine. We have in show script airline 142. Currently, it replaced this with the data value. I'm feeling this should be happening elsewhere. Can GPT or help with this? Based on the code snippets and context provided earlier, it looks like current EEG data is intended to hold the EEG data at the current position of the file scroller. To resolve this issue, you need to ensure the current EEG data is correctly assigned the EEG data before it's used in the function attached to the file scroller event listener. Declare current EEG data as a global variable at the top of your JavaScript file. This makes it accessible throughout the file. Ensure the current EEG data is updated with the latest EEG data whenever new data is fetched. This should be done within the fetch data and render function, or equivalent, which fetches and processes the EEG data. The current EEG data is now properly defined and updated. You can use it within your event listener. Let's look at how this was done before. Transreturning the data. How do I do that? Now the current EEG data is properly defined and updated. You can use it within your event listener. Error handling. Add checks to ensure current EEG data is not null or undefined before using it. Data synchronization. Make sure current EEG data is synchronized with the current position of the scroller and is updated every time new data is fetched. Debugging. Use console.log statements or browser developer tools to track the value of current EEG data and ensure it's being updated correctly. This approach should resolve the reference error by ensuring current EEG data is defined and accessible when needed. We haven't sorted this yet. So the function is this time second. Start time. This is fetching that the fetcher rail. Okay, I'm confused. Which data in render probably should split this function. We have to modify this. To modify the fetch data and render function to include playing musical notes based on the EEG data, you need to update the function to process the data for musical note generation and then trigger the note playing mechanism. This involves a few additional steps after fetching and processing the data. You need a function that takes EEG data and returns the corresponding musical notes. This function, map EEG data to notes, should be defined based on how you choose to map EEG frequency bands to musical notes. Now we have that. After plotting the EEG data, use the map EEG data to notes function to get the notes that correspond to the current data segment and then play them. This one is the actual function. Existing code fetched plot data. Then when we have fetch API URL, response json data. That's the code for plotting the signal. We have a constant of notes to play. Okay, we'll be able to integrate the whole generator, the whole function. We'll need to integrate. Ensure that fetch data and render is called when the user scrolls through the file, which will automatically trigger the note playing mechanism. Right, so we don't need all that, do we? Still generating... Performance, test the application to ensure that playing notes does not adversely affect performance, especially when scrolling rapidly through the data. Mapping logic, fine-tune the map EEG data to notes function to create a meaningful auditory representation of the EEG data. This might require some experimentation. User control, provide options for users to enable, disable the sound or adjust parameters like volume or the mapping strategy. To create the fetch data and render function that includes playing musical notes based on EEG data as you scroll, you need to integrate several components, fetching the data, plotting it using plotly, and then converting specific EEG data points into musical notes. Here's a complete function based on the context and requirements you've provided. Okay, so we already have play, frequency and map EEG data to notes. Now with function, keep adding more and more functions. Extract each data from music. And the main one is fetch data and render, which we are replacing. The audio context was not allowed to start. And another function is not defined. Not 69. Note range. We have note range. Implicate a function. Right, this is actually similar to what we had in the previous code. I have a feeling we need to change the back end as well. We have power to note. Ensure that notes array and get note range contains all the notes you plan to use. If you're using a simplified scale or a different notation, like flats instead of sharps, adjust the array accordingly. This implementation assumes a linear traversal through the notes. If you have a different mapping in mind, like using a specific scale or skipping certain notes, you need to modify the logic. The implementation of get note range here is a basic version. Depending on your musical requirements, you might want to refine this further. It's just the warning. It's not an actual error. And that's fine. It's the info. Audio context was not allowed to start. I said why we can't hear anything. The JavaScript 129 in a webkit may not exist. The error message you're encountering, the audio context was not allowed to start. It must be resumed while created after a user gesture on the page is a security feature implemented in modern web browsers. It prevents audio from automatically playing without user interaction to avoid unexpected sounds when a web page loads. To resolve this issue, you should modify your code to create or resume the audio context in response to a user gesture, such as a button click. Here's how you can implement this. I should be able to not have an additional button. Audio context initialization. The audio context is now initialized only after the user clicks the enable audio button. This is in line with the browser's requirement for user initiated action. Button removal, optionally, you can remove the button after the audio is enabled to clean up the UE. Safety check, the play frequency function includes a check to ensure the audio context is initialized. If not, it logs a message and does not attempt to play audio. Additional note, user experience, it's important to clearly communicate to the user why they need to click the button to enable audio. This helps in providing a smooth user experience. With these changes, your application should comply with the browser's autoplay policy and the audio context will be allowed to start after the user's explicit action. Okay, I actually don't want the button. I'm just getting this error, which doesn't seem to be related to the button. I want an extra button. The TypeScript error you're encountering is related to TypeScript's type checking. The WebKit audio context is a prefix version of audio context used in older versions of certain browsers, like Safari. However, TypeScript's type definitions for the window object might not include WebKit audio context, as it's a non-standard feature. You can assert the type of window daily to bypass the type checking for WebKit audio context. This is a quick solution, but bypasses the benefits of TypeScript's type safety. A more type safe approach is to check if WebKit audio context exists on the window object before using it. This way, you won't bypass TypeScript's type checking. So when does this go? So it's in a TypeScript file. I recommend the second approach. It maintains type safety and ensures compatibility with browsers that may still use the prefix version. The first approach is quicker but less safe in terms of type checking. The third approach is more suitable for larger projects where you frequently need to deal with non-standard features and want to maintain type safety. We don't particularly care about TypeScript. That error is okay, but the browser is not playing anything at the moment. We also do not want to add an additional button. It is not needed. Can we make sure the sound is played when the scroller is moved? If you want to ensure that sound plays when the scroller is moved, without adding an additional button for initializing the audio context, you can create or resume the audio context as part of the scroller's event listener. However, due to modern web browsers' auto-play policies, audio might not play until there's some form of user interaction with the page. The scroll is an interaction with the page. Here's a revised approach that attempts to initialize audio context on the first user interaction, i.e., the first scroll event, and then plays the sound accordingly. Play sound on scroll event, the sound should play when the scroller is moved. Yes, that's right. User interaction, modern browsers may still restrict audio playback until there has been explicit interaction with the page. Scrolling is generally considered a passive interaction that might not be enough to enable audio playback on all browsers. A more reliable approach is to have some form of active interaction, like a button click or a toggle switch. Page load experience, automatically playing audio on page interaction might be unexpected for users. It's often a good practice to inform users that audio will play and provide them with control over it. Testing across browsers, make sure to test this implementation across different browsers to ensure consistent behavior as auto-play policies can vary. This approach tries to circumvent the limitation by initializing and resuming the audio context during the first scroll event, but keep in mind that browser restrictions on auto-play might still apply. At this stage, I'm happy to take the risk of annoying the user. We are having trouble with this one. Anyway, so we have audio context, initialize false, initialize audio context, then play, frequency. Now, problem is that I can't get rid of that. Why frequency? Is this the whole function? Yeah, let's use that. That should initialize the audio context in this scroll event, fetch and render. Yeah, we don't need all that. It keeps adding more functions. It's ridiculous. We already have that. User interaction, modern browsers may still restrict audio playback until there has been explicit interaction with the page. Scrolling is generally considered a passive interaction that might not be enough to enable audio playback on all browsers. A more reliable approach is to have some form of active interaction, like a button click or a toggle switch. Page load experience, automatically playing audio on page interaction might be unexpected for users. It's often a good practice to inform users that audio will play and provide them with control over it. Testing across browsers, make sure to test this implementation across different browsers to ensure consistent behavior as auto-play policies can vary. Play policies, preventing us from playing in the browser. Every time I ask for something, it's generating a new function, which is not great. We'll try fixing this next time. See you in a bit.


Recall that a matrix is normal if A A Hermitian equals A Hermitian A. It commutes with its Hermitian and we saw that it is a generalization of unitary real symmetric and Hermitian matrices and we saw a simple 2 cross 2 example of a matrix that is normal but not unitary Hermitian or skew Hermitian. You also defined unitary diagonalizability. So a matrix is said to be unitary diagonalizable if it is unitary equivalent to a diagonal matrix. So the similarity transform that will take the matrix to a diagonal matrix is in fact a unitary matrix. Okay, so this is the theorem which gives us some fundamental properties of normal matrices. So if the matrix A which is of size n cross n has eigenvalues lambda 1 to lambda n, then these four properties are equivalent. First is that A is a normal matrix. The second is that A is unitary diagonalizable and the third is that the sum of the squares of all the entries of A which is also the Frobenius norm squared of the matrix A is equal to the sum of the squares of its eigenvalues. And the fourth is that there is an orthonormal set of n eigenvectors of A that is n has a full set of eigenvectors which are orthonormal to each other. Okay, so we will see how to show this. So if, so the starting point is again shows unitary triangularization theorem. So let t be upper triangular of size n cross n such that u Hermitian A u equals t. So this means that t is unitary equivalent to A. Okay, that means that this when we say A is normal then that is the same as saying that t must be normal. So that is something you can immediately verify that. So A normality of A is equivalent to normality. So you can easily check that if A is normal then t is normal and this is an if and only if condition. Yes, go ahead please. Sir what is normality of A and normality of t? Normality is the property that the matrix commutes with its conjugate transpose. So normality of A is the property that A A Hermitian equals A Hermitian A. Normality of t is the property that t t Hermitian equals t Hermitian t. So if A is normal then t is normal. Okay, but t is upper triangular. Okay, so if I look at upper triangular matrix and I write out this condition t t Hermitian equals t Hermitian t that looks like this. So I will write t t Hermitian. So t Hermitian would be a lower triangular matrix and t is an upper triangular matrix t Hermitian. So this is t Hermitian, this is t and that is the same as t t Hermitian. Okay, and now if you see what happens when you equate the entries of these two products, what I am going to argue is that if t is normal and upper triangular then it must be diagonal. So if I take the one-one element of both the left hand side and the right hand side here then what we get is the one comma one element of this is going to be t11 times t11 star. And so that will be t11 t11 star and the one comma one element here would be this column times this row which is t11 t11 star plus the summation j equal to 2 to n t1j t1j star. Okay, so now this is mod t11 squared and it cancels with this mod t11 square and this is mod t1j square. So this means that summation j equal to 2 to n mod t1j square equals 0 which in turn means that these are all non-negative quantities. So if you add up all of these and you are still getting 0, every one of them must be 0. So t1j equals 0, j equals 2 through n. So basically other than the one comma one element, all other entries in the first row must be equal to 0. Similarly, if you equate the 2 comma 2th entry, what you will get is that t2j equals 0 for j equal to 3, 4 up to n and so on. So just proceeding this way, we get tij equals 0 for j greater than i and i going from 1 to n and of course tij equals 0 for j less than i and i going from 1 to n because t is upper triangular. Okay, so for j less than i, the entries are always equal to 0. So this means that t is diagonal which means that a is uniterally diagonalizable. The other way is actually much simpler. So p implies a. So what we need to show is that if a is uniterally diagonalizable, then a is a normal matrix. So basically any diagonal matrix is already normal. For any diagonal matrix D, D-homission D just contains mod di squared along the diagonals and so that is equal to D-D-homission for any diagonal. So all diagonal matrices are normal and unitary equivalence preserves normality. So basically therefore b implies a. So a and b are done. Now if you want to show b implies c, what we need to show is that if a is uniterally diagonalizable, then summation of mod aij squared equals the summation of lambda i squared. If a is uniterally diagonalizable, then the resulting diagonal matrix will have the eigenvalues lambda i on the diagonal because after all it's a similarity transform and if you are using a similarity transform to get a diagonal form, then the diagonal entries must be lambda i. So and further, I will just show this in a second, unitary equivalence is a property that preserves Frobenius norm. So that means that sigma ij equal to 1 to n mod aij square is equal to the trace of a-homission a which is equal to sigma i equal to 1 to n mod lambda i squared. So to see this, I mean this is simple. Basically if a is uniterally diagonalizable, then there exists a diagonal D containing eigenvalues of a and unitary u such that D equals u-homission a-u and so then summation of lambda i squared which is equal to the trace of d-homission d is equal to trace of and substitute for d, u-homission, a-homission, u-u-homission a-u which is equal to the trace of this is just the identity matrix. So u-homission a-homission a-u and this trace is a similarity invariant and this u-homission times u is a similarity transform and so you have trace of a-homission a which is equal to sigma ij 1 to n mod aij square. To go the other way, okay so to show the other way, so specifically that we want to show that if summation of aij squared equals summation of lambda i square, then a is uniterally diagonalizable. So when you use the Schur's triangularization theorem to find unitary transform such that u-homission a-u equals t, lambda i, i going from 1 to n are the diagonal elements of t or will be the diagonal elements of t. So that is basically how the eigenvalues are related to the matrix a. So there exists a u such that u-homission a-u equals t and the diagonal entries of t are these lambda i's. So basically if somebody told us that summation so i equal to 1, okay ij both, ij equal to 1 to n, aij square. So if we were to try to compute this, this is equal to the trace of a-homission a which is in turn equal to, I will just write it so that it is clear, trace of a-homission a and I will substitute for u and I will write this as trace of u-homission t-homission u-u-homission t-u which is equal to trace of u-homission t-homission t-u which is equal to the trace of because trace is uniterally invariant to this kind of a similarity transform. This is a similarity transform on t-homission t and the trace is invariant to similarity transformation. So this is the same as the trace of t-homission t which I can write as since the diagonal entries are lambda i so the trace of t-homission t can be written as sigma it's the sum of the mod of all the entries in t, mod square of all the entries in t and I keep the diagonal entries separate lambda i square plus sigma i less than j mod t ij square okay this these two this equality is coming because of c so we are assuming c is true and we are trying to show that the matrix must be uniterally diagonalizable so this immediately implies that sorry let me put it this way this this quantity here and this quantity here are equal because of our assumption that summation aij squared equals summation lambda i squared so that immediately implies that sigma i less than j mod tij squared equals zero or tij equals zero for i less than j and of course tij equals zero for i greater than j because t is upper triangular okay so if the row index is bigger than the column index all these entries are always zero so t is diagonal so that means that the upper triangular matrix we got by applying a unitary transformation of a through the sure triangularization theorem is in fact diagonal so which implies that a matrix a is uniterally diagonalizable which is the statement b then b implies d so if a is uniterally diagonalizable we want to show that there is an orthonormal set of n eigenvectors of a so if a is uniterally diagonalizable then it means there exists a u such that u Hermitian a u equals lambda which is equal to this diagonal matrix containing lambda 1 through lambda n that so if i take u to the other side or rather multiply by u on both sides I will get a u equals u lambda or each of these columns of u are actually so this lambda is a diagonal matrix so it means that a ui equals lambda i ui or there exists an orthonormal eigenvectors of a and the other way is also exactly the same if there exists an orthonormal eigenvectors um so if there exists an orthonormal all these steps are reversible and so basically it follows of a then a u equals u lambda where lambda is a diagonal matrix containing the eigenvectors of it so that implies u Hermitian a u since these eigenvectors are orthonormal u Hermitian equals or u Hermitian u equals equals the identity matrix so if I do u Hermitian from multiply by u Hermitian on the left then I get u Hermitian a u equals lambda which is a diagonal matrix so which means that a is uniterally diagonalizable sir yeah sir this i1 lambda i1 lambda 1 lambda to lambda n how are you saying that they are distinct always they are not that's a crucial point actually so the this is the main one of the main differences between what we said earlier and what we are saying now earlier for diagonalizability one of the conditions was that one of the sufficient conditions was that the eigenvalues need to be distinct we don't need that here so the important consequence of this is that normal matrices are non-defective okay they're always diagonalizable and the algebraic multiplicity equals the geometric multiplicity of the matrix so we've seen that Hermitian matrices are a special case of normal matrices if a is Hermitian then it means a equals a Hermitian and therefore a a Hermitian equals a Hermitian a which is both equal to a square and so Hermitian matrices are normal and for Hermitian matrices we can say one small extra thing which is known as the spectral theorem for Hermitian matrices so if a and c to the n cross n is Hermitian then all eigenvalues of a are what what can we say about the eigenvalues of real exactly and b a is uniterally diagonalizable see this is useful because all covariance matrices are Hermitian symmetric okay by definition the covariance metric is the expected value of xx Hermitian where x is a vector and so since covariance matrices are Hermitian symmetric matrices all eigenvalues of a covariance matrix are real and any covariance matrix is uniterally diagonalizable now the statement b here immediately follows from the fact that the matrix is any Hermitian matrix is normal and a normal matrix we just showed this that any normal matrix is uniterally diagonalizable now the point a that the eigenvalues are real follows because if it's if a matrix any diagonal and Hermitian symmetric matrix must be real and so and uniterally if I mean this unitary equivalence preserves Hermitian symmetric and so if I find a matrix that is uniterally equivalent to the matrix a and is diagonal then the matrix t which is uniterally equivalent to a must be Hermitian symmetric as well and if it's Hermitian symmetric and diagonal it is a real valued matrix so all the eigenvalues are real between unitary diagonalizability here and diagonalizability that we discussed earlier which was through similarity transforms is that we no longer need distinct eigenvalues in other words normality is enough


Remember a hallmark card when you carry enough to send the very best. From Hollywood the makers of hallmark greeting cards bring you an exciting dramatization of an unforgettable story. On the hallmark playhouse chosen from the whole world of fiction by one of the world's most popular authors whose knowledge of stories that will entertain you and stir your imagination is universally recognized. Hallmark is proud to present the distinguished novelist Mr. James Hilton. Good evening ladies and gentlemen. Tonight on the hallmark playhouse we offer for the first time on the air a dramatization of a story which captured my fancy rather neatly when I first read it. It's called Girls Are Like Boats and it's by Charles Rawlings. And because we all liked it so much we thought it quite a good idea to talk to Mr. Rawlings himself about it. So he finally located him in a small village in the state of Maine and we found as we guessed that he was something of an expert about boats. Perhaps when you heard Girls Are Like Boats you will wonder if he was equally an expert about girls. Anyhow he still says they're like boats. So let's leave it at that especially since his story has two heroines a girl and a boat and our hero was emotionally involved with both of them. Mr. Rawlings also told us he had raced many boats himself both on Lake Ontario and Long Island Sound. However the main thing is as I think you'll agree when the program is over that he can weave a yarn as smartly as he can trim a mainsail. But before we begin a few words from Frank Gott. I'd just like to remind you that there are hallmark cards for any memorable occasion you can think of. For birthdays, anniversaries, holidays. Yes for every occasion that calls for remembrance there is a hallmark card that says just what you want to say the way you want to say it and those three identifying words on the back. A hallmark card. Well they say you cared enough to send the very best. Thank you Mr. Hilton and now it's all yours. The moment George saw her it was that most exciting cliche of life under popular literature loves at first sight. She was slim and graceful, impudent, smart and indescribably beautiful but let George tell it it was his affair. George? Like you say Mr. Hilton, love at first sight. My ventricles went pity and my oracles went pat. She was class all over and every inch a lady and there was thirty feet of her and she didn't weigh an ounce over seven tons. She was a dream boat. Her decks were robin's egg blue.  Ah she was a charmer. Built for speed. There was only one thing wrong with it. The minks just wouldn't sail. A cotton blossom wouldn't win a race. Everyone tried. Everyone gave up. Until finally they hauled her out of the water in disgrace. There she sat all through the fall and winter and into the spring. Glow and what have you, there she was a float again and her old birth and men working all over her. A little man with horn-rimmed spectacles was watching her the way a cat watches its first floor and absorb its first mouth. Well, hello there. Not the cotton blossom. Yeah, she's her. I've seen you around the yacht club haven't I? I come around Sunday afternoon. That's right. You and your wife I believe. Sort of tall one. Yeah. Wide and pushy. I remember. Twice my size. Yeah. Lassie, Lassie do little. I'm Pete do little. I'm George Bemis. I'm on the racing committee. How are you do little? Racing committee, huh? Uh huh. Well, Mr. U-Chap and the Arbos are going to have something to beat this year. Not the cotton blossom. I just bought it. No. I'm just getting back in. It's my sport you know. Are you a yachtsman? Why not? There's nothing. Nothing. Oh, I know.  I look like the funny pictures of John public. I know. Or maybe Bonnie Google. Oh no, no you don't. Oh, I do too. Yes, I do. I do. But not when I'm sailing. Well, we're glad somebody took an interest in the cotton blossom. We want to see her go. Oh, she'll go. Oh, she'll go. If I have to give her the hot foot. That's the talk. Well, it isn't just talk. Well, our first club race is Saturday. I'll be in the art debt at 36 footer. Well, I'll be in the cotton blossom. So watch out. You just watch out for Pete Doolittle. There's a little guy in the cartoon. And we got a white squall two minutes before our starting gun. And pretty soon I lost track of the cotton blossom. When I had a minute to look around, hanged if she wasn't in a good berth up to the weather. Then I got very busy again. And when I could look around again, she was up in the wind, very close alongside us with her crew hauling down the mainsail. And she was in trouble. Her mask cracked up the deck line, was leaning like a vent sapling. And Pete Doolittle was standing up in the cockpit, screaming at the whole world. Was that little fellow indignant? I thought so. I thought so. A spoiled society boat, blue deck. A sailor like a hope chest. Ahoy, cotton blossom. Can we help you? Pet it, baby cotton. No, you can't help it. Mask off from the bill. Give her a first real chance and she cracks her mask. How did it happen, Doolittle? You were doing great. Oh, I had to do it. She's got to face the facts of life. I'll take her down. I'll show her. I'll get a race out of her. I'll relax, Pete. Relax. I'll make her go. I'll kick her in the slaps. Maybe the little guy's right. Maybe that's the way to handle temperamental females like the cotton blossom. Maybe so. I thought you might like coming down here for a little talk in my boat, Pete. Ah, it's a nice little boat. It's ship-shaped. Have a drink of something? A root beer. I just happened to have a bottle I bought in 1929. Ah, there she is. Ah, the blossom should have taken that score. Oh, still brooding about the cracked mask? She's a good boat, but they babied her. Who did it then? Well, drown your rage in root beer. She's all laced up. That spar should never have broken. But I'll teach her. I'll get her if I live long enough. There you are, a root beer. Oh, thanks, thanks. What do you mean if you live long enough? Well, I promised my wife when we were married that I'd never race again. Backslider. Well, I just had to get back to the boats. Sea fever. I must go down to the seas again to the lonely sea in the sky. That's right. What'd you sail before? Oh, skiffs, dinghies. Really? Where? Oh, we raced on the Thames once. We beat the Royal Norfolk and Suffolk in a four-boat team series. Really? Mm-hmm. What skiff championship at Alexandria Bay? What championship was that? The National. The National? Oh, wow. That was years ago. Pete. On behalf of the Middle Long Island Sound Yacht Association of which I am race committeeman, welcome home. Ted, come in. You wouldn't drown yourself out like that. You are, Mr. George Bemis. Uh, yes, ma'am. On the race committee of this yacht club? I am. Now, I presume you're in this piece of treachery with Peter. Here? Treachery. Peter. Look, I don't... Ah, don't deny it. You've been encouraging him about that miserable sailboat he bought here. Oh. Yes. Oh. I found out, you see. I ought to break every bone in your body. How much did such things cost? Boats or damaged suits. Peter's bank statement shows that he withdrew $4,000 three weeks ago. Well, there's your answer then. Now you listen to the young man. I am not going to have it. I had my reasons when I made Peter promise me not to race again. He's a very nervous man. Racing makes him dream at night. But it was a full year after we were married before he stopped being profane in his sleep. Now he started again. The sea, ma'am, is a hard master, ma'am. Do you drink? Well, I take a little cooking whiskey on cold rainy nights. Oh. Those boats are floating bar rooms.  I hold several committee posts of importance. Why, to have my husband publicize on the sporting pages? Breaking of sweat and alcohol and liniments. Yes, dear lady, I understand utterly. Peter is a good man. For 25 years we've lived happily together. This demoralizing foolishness is therefore something I will not have. I am not going to have it. It's not girl. Not for my height and build. Good day, Mr. Beaton. What's on your nautical mind? I've just been scrimmaging with a forward wall of the Green Bay Packers. Huh? Yeah, lady, who keeps on shrieking, she will not have it. Oh, dear, my wife. Uh-huh. I just spoke to her. No one ever speaks to my wife. Now, you just listen. Now, you listen, Pete. You've raced some good races for us and you've raced some bad ones. Well, the bad ones are because I keep on worrying that my wife will find out. Well, you can stop worrying. She has found out. Oh, dear. It seems you've started swearing in your sleep again. Oh, dear, dear, dear. Pete, tonight you're going home to the crisis of your life. But there's one thing you've got to promise me. You're not going to quit racing. Now, promise. Well, suppose she murders me. Well, Teller will never have a drop of liquor aboard. Tell her you'll be home Saturday and Sunday night. Anything she wants. Give it to her. But you can't stop sailing. Oh, dear me, dear me. Rough language isn't going to save you. Now, you come with me. Oh, wow. To the back room, I want to talk to you. Now, come on. Why don't you try to feel as tough and uncompromising as you felt that day when you pulled the mess out of the cotton blossom? Well, what am I going to do? Lassie's twice my size. Ah, yes. Why is it that the Providence gives such great gifts to timid little men? Well, she's no gift. No, no, no. I mean your gift of seamanship.  Well, look at Napoleon. He was little. Napoleon's dead. I think I can match that. You have this great gift and you don't know what to do with it. Lassie'll tell me what I can do with it. Pete, promise me you won't weaken. When was I strong? You. You, Peter, do little.  Yours is the heritage of the Vikings, of Columbus, of the seafaring Phoenicians. I call upon you to think of the men who have fought and conquered the sea before you. You do little. You're one of them. Me? They are your preference. Yeah? Think of the great heroes of the sea. Think of the seahawks. Drake, probisher, Hawkins, sailing their Elizabethan thunderbolts to eternal glory. Think. Yeah, yeah. And the bounty. Think of the epic of the bounty of old Ironside, the Alabama. That's right. And the Mayflower. What about the Mayflower? Like Henry Hudson in the half moon. Paragate in the Mississippi. Damn the torpedoes, full speed ahead! Harry on Lake Erie. We have met the enemy and they are ours. Captain Lawrence in the Chesapeake. You don't give up the ship. Adder boy, Pete. And what about John Macefield, co-at Laureate of England, and sea fever, huh? I must go down to the seas again to the lonely sea in the sky. Do it, do it. And all I ask is a tall ship. The cotton blossoms. The stars... A tall ship. The cotton blossoms. The stars... Had a boy, Pete Bass, for the win for Crane. Columbia, Dad! Had a boy, Pete! Had a boy! Out of my way! I'll probably get killed, but I'm off to the war! And if anything goes wrong... Don't you worry! We'll bury him at sea. You are listening to a dramatization of girls alike boats on the Hallmark Playhouse, a story selected for you by the distinguished novelist James Hilton. Before Mr. Hilton introduces the second act, I'd like to introduce a great Italian sculptor of two centuries ago. His name was Antonio Canova, and his studio was a monk cell. One day a friend came visiting and burst into praise of an apparently completed statue. But Canova calmly continued to make minute refinements with what seemed to be trivial taps of his melon. And when the visitor chided him for wasting time on such small details, the sculptor replied, these final touches make the difference between failure and perfection. Yes, whether it's a statue or a greeting card, it's the extra touches, the small refinements that make the difference. And the folks who make Hallmark cards know just how to give their greeting card that extra something that you and your friends will most appreciate. You see, they're not making just cards. They're creating Hallmark cards, greeting cards that go out of their way to be warm and friendly and sincere. Cards that have a wonderful way of saying just what you want to say, the way you want to say it. That's why Hallmark cards are America's favorite greeting cards. And that's why those three identifying words on the back, a Hallmark card, tell your friends you've cared enough to send the very best. Now James Hilton, the famous writer who selects the stories for the Hallmark Playhouse, takes you back to girls are like folks. So here we are with Peter Doolittle in quite a serious dilemma for anyone like Pete who takes his voting seriously. Well, Mr. Rowling's got him into it. Maybe he can get him out of it. Because as I said before, he can weave a yarn as smartly as he can trim a mental. So let's see how he does it. He has Pete's wife talk to the Commodore of the Yacht Club. She pretends to have a nervous breakdown. She advertises cotton brothels for sale. At her own property, she pleads firmly against Yacht Club. Week after week after week, it wore Pete down. But somehow he never quite gave in, but it was hurting his racing form. And George finally had to speak to Pete about it. Pete, life's just not worth living to you, is it? Not very nice. Want to quit? Well, the only happiness I have is racing my boat. If I quit, I won't have anything.  She's a wussess. Oh, now we ought not to talk like that, George. Well, she isn't so bad. Well, not so awful bad. Well, what that woman needs is what you said the cotton blossom needed once and you were dead right. Rough handling occasionally. Discipline. Women are like boats. Yeah, they've got to be paddled every so often. Women are like boats, all sizes, all shapes, all temperaments.  They're like boats and they've got to be treated like boats. You took the cotton blossom and actually wrestled the performance out of it. Oh, well, she's a great boat. Yeah, she's a great boat.  I know. Nothing you can do about it?  Well, in that case, Pete, I'm afraid I've got bad news for you. We picked the boat that's the race against Montaigne's dandelion up at Lodgecrest. Oh, you are dead, I suppose. No, the cotton blossom. The cotton blossom? You call that bad? Wait a minute, Pete, wait a minute. I tried to get the race committee to let you sail us and she's your boat. Well, she is my boat. Pete, the club comes first. You know that. Well, to put it bluntly, they just couldn't see a hen-packed husband in the role of a winner, a victorious hero. You mean I'm not going to sail it? No. That youngster, Parks, is going to sail the cotton blossom. Oh, no. I'm sorry, Pete. You're sorry. I'll never race again. I wouldn't say that. I am saying it. I'm going right home. I'm going to promise Lassie I'll never race a yacht again. Well, I'll send you my letter resignation when I get around to... They fly the budding and swish the brass polishing rags when you come up to a race. Monty, their champion, was wearing a snow-white polo coat that year. Parks and the cotton blossom made all the right motions and by a miracle of some kind, we took the first race. But it didn't mean anything. Parks was sailing better than he knew how and had a reputation for blowing up. The next day, Parks flew up. We lost by two and a half minutes, shivering and unnerved. Parks stepped into the dinghy to take him ashore and slipped, dislocated his shoulder. The next morning, he couldn't move his arm. The day was perfect for racing. No chance for a postponement. So I got the sailing secretary of our own club on the phone and I said, deliver this message for me in your official capacity, will you? Just get Pete to do a little of the news that I want him right away. Tell Pete that George wants it. He'll understand. Don't fail me. Get going now. Good morning. Peter, do a little speaking. Secretary's... Yeah? George? He wants me right away. I see. Oh, I get it. Sure. Oh, please. I gotta go someplace. It's very important. In your long life, despite of your promise to me never to race again. I want my clothes. Now where's my pants? Now look before I get... The boat was coming toward us. I shoved the cotton blossom slowly into the wind. The ten-minute gun. And then the mahogany launch swung alongside us and... There was Pete in the files in his underwear and glasses. Pete! I maybe killed my wife. How? I hit her. Yeah, I bumped her right on the schnoz. She tried to stop me as I was crossing the yard to the garage and I let her have it. But it begins to reach away at about three minutes before the start. And then comes back broad and hardens down and gets going. Well, leave us get going too. I feel wrecked. I shoved into the cotton blossom six sheets and Pete got underway toward the starting line. Then, between Montauk Point and Staten Island, to this day the encounter is known as the meeting of the long Bal Brighan draws and the snow-white polo coat. For Pete's sake, you barely missed the following, boy. I haven't got... I forgot how funny Pete's a little look in the cockpit of that racing yacht. A little husk of a man wearing shell-rimmed glasses in a sea-soaked Union suit. Casper Milk-toast snuck down to the lured, watching the jib like the master that he was. You forgot how small and meek he was. You forgot the Bal Brighan Union suit. You forgot everything, except that there was something heroic about that little man. Something timeless, something in a blood. Yes, as far back as Drake and Probisher and Hawkins, and we have met the enemy and they are ours. Don't give up the ship and all that. All that. Of course we won. Pete swept the finnaker lifting and bow wave, crooning across that finish line, and a gun welcomed the victor. I was waiting for you in the club room, Pete. And how are you? Oh, Pete, dearie, you all... Is it broken? It's not broken. You're snot. I mean your nose. Oh, I won the race and I am not coming home. And what is more, I'm going to stay out all night. Yeah, he's here. Well, let me... She wants to talk to you. I'm dead. A wave washed me overboard. No, no, she's a different woman. Go on, talk to her.  Where to take a taxi, George? Pete wants you with him. In his...in his hour of trouble.  Oh. Right back in style again. Just like you and me. I think Mr. Rawlings must have enjoyed writing that story almost as much as we've enjoyed it tonight. And we were certainly lucky to have such fine players in our cast as Lois Corbett, who played Lassie Doolittle, Joseph Kearns, who was Pete, and Gerald Moore, who was George. ...to tell you about next week's story. Meantime, I'd like to remind you that there's nothing like one of those charming hallmark dolls in the land of make-believe to make a child's eyes light up with joy. There are 16 dolls in all, Little Miss Muffet, Cinderella, Little Boy Blue, and 13 other childhood favorites. Each one wears a hat topped off by a jaunty plume that's a real feather. Each doll stands up by itself, and each one has a clever rhyme story about the doll inside. But that's not all. No, indeed. There's also a big, beautiful album to put them in. The hallmark dolls are as easy to send as any hallmark greeting card, and cost only 25 cents each. And the big hallmark doll collector's album, which you'd expect to cost at least a dollar, is also only 25 cents when you buy one or more of the hallmark dolls. That means you can give some little friend of yours the album with three dolls in it to start a collection for only $1. See all 16 of the charming and colorful hallmark dolls and the beautiful new hallmark doll collector's album. Tomorrow at the store where you buy your hallmark greeting card. Now here again is Mr. Hilton. Next week we have a story which could truthfully be called a modern classic. It's the Citadel by A.J. Cronin. A great story about a doctor written by a doctor who became a great writer. And now let me take just a moment to remind you that there's a great shortage of nurses in our American hospital, and that a fine opportunity awaits young women between the ages of 17 and 35 who are high school or college graduates. You can apply to your nearest hospital or school of nursing. Thank you very much, and now until next week this is James Hilton saying good night. Tonight's story was adapted for radio by Milton Geiger. Our music was arranged and conducted by Lynn Murray. To be doubly sure of the finest quality always look on the back of a greeting card for those three identifying words a hallmark card. Remember hallmark cards when you carry enough to send the very best. Next week James Hilton's story selection for the hallmark playhouse is the Citadel by A.J. Cronin. And the week following you will hear George Agnew Chamberlain's Phantom Fillet. So until next Thursday at the same time this is Frank Goss saying good night to you all. This program came to you from the hallmark playhouse. This is CBS, the Columbia Broadcasting System. This is KMBC, Kansas City, Missouri. Earl Smith and the news after this announcement.


dedicated to the strength of the nation. Greetings from Hollywood, ladies and gentlemen. This is C.P. McGregor speaking. Welcome again to your theater of stars. Proudly we hail the United States Army and Air Force presentation. Soon to be a newer, bigger program. We'll have the details after the final act. But now, act one of our story, the last voyage of the Kalani Bay, starring the distinguished American actor, Edward Arnold. A hundred years ago, down around New Orleans, Captain Dennis McKee, skipper of the Brig Kalani Bay, cut quite an outstanding figure. Port was said that the venerable captain in 30 years at sea had turned back from no man, Jean Lafitte included, and wherever he was, the crowd followed, particularly the children who worshiped him as a hero. That I can vouch for without being too unseemly. That morning there seemed to be twice as many as before as I headed down to where the Kalani Bay was anchored. The jangling of the children began to get on my nerves a bit, so I threw them a handful of coins and shouted, off with you. There was a fool, because they scurried this way and that for the money, or except one, a measly lad of about 12 who stood watching me closely, household hair and fine brown eyes and all, and then he spoke. Captain McKee, sir. I lad, what's wrong with you there? Why aren't you after a coin for yourself? I don't want it, sir. I want to talk to you. Well, then what is it you want to talk to me about, lad? Come, out with it. I should like to hire out with you, sir. Well, that's a good one. And what would you do, boy, if I was to sign you on? Well, sir, I could keep your clothes neat.  Well, now that's right. And I dare say you could. Well, except when I go to see, I wear anchor chain for me. Watch far here. You do? Sure, lad. And I have mermaids to scour me, cavern and keep my clothes clean. Well, you're joking me. Ah, that I am, lad. But take no offense. I'll tell you what. What? If you intend to go to see, you must get built up. You'll rickety, my lad. Perhaps I am, but I'm very strong.  The skinniest lad in the harbor. You must eat good food. Build up bone and muscle. That I'll try to do, sir. That's the lad. And when you do, then you can hire out. And you can tell whoever you talk to. The Captain Dennis McKee said he was meant for a sailor if ever one lived to breathe. Oh, thank you, sir. Thank you.  Get along now. I boarded the Kalani Bay and both my first mate, Mr. Carson and myself, noticed a pair of wistful brown eyes that followed us from the shore. It was a good eight hours, and after sundown, before we were away, headed for Naples with a stop at Charleston to trade some cotton for tobacco. There's a soft one in check and a sandy store.  Oh, Jenny, I miss you so. But I'll soon head back by the smartest tack with a merc. What made life worth living, a good ship under your feet, the breeze in your hair, and a hand with a turn for a soft one? Well, we were a good day out of New Orleans. I was in McCabbon when there was a knock on the door. Come in, come in. What is it, Mr. Carson? I have a stowaway to report, Captain. A stowaway? It's me, Captain McKee. Well, shades of the devil. If it isn't the pipsqueak. Aye-aye, sir. Reporting for duty. Reporting for duty, are you? I'd like the gall of you and the penalty for stowaway. A smart floggin' at the main, miss. I'm not afraid, sir. I don't believe you. Now, how in the devil did you get a boardland? Well, I bought myself a board last night, and I climbed on. Oh, Mr. Carson. Aye, sir. What sort of a watch are you conducting that would allow this to happen? I'll speak to the men, Captain. And you, lad. Don't you have people in New Orleans? Not they care, sir. There's a fine kettle of fish. Well, Mr. Carson, you haven't got a hand that can keep a watch. It's too late to turn back to New Orleans. There it is, sir. Well, put the boy here off at Charlestown, and in the meantime, give this lad a taste of the sea. Take him to the galley and set him to work scrubbing the pots of the pans. Aye, sir. Well, it was amazing the way that pinch of a lad went down to work and scrubbing the pots of the pans till they shined like emeralds from the Blessed Shore. And all the while, a whistlin' and with a smile, as pretty as her breeze to her every hand unborn. We were three days out of New Orleans, headed for Charlestown when the breeze freshened, and the sea came up again. And it began to get a mite rough with the breeze grown to width and core. I was below for a cup of coffee. Mr. Carson was with me. He's roughened up a bit, Captain. Yeah, that she is. Where's the lad, Mr. Carson? He's on deck. And what's he doin' on deck in this weather? Gettin' his belly acquainted with the gunnel. The lad is a touch seasick. Well, as hard on the pinch of a lad. Get him down here, Mr. Carson, where it's warm. Spoil me cabin floor lad, use the bucket. Aye, sir. Now aren't you sorry you came, lad? No, sir, I'm not. All this bobbin' and pinchin' around, you hadn't anticipated? I'm glad. All this rollin' and humpin' that turns your stomach inside out. Wait, you can't make me feel sorry, sir. Captain, if you look a little green yourself. I do? Oh, nunch. Hey, what you do, sir, you look green. Here's the power of suggestion. Never in 30 years that see have I ever so much as been a hair sink. There's another muckin' by the last rip. I see it, lad, I have eyes. Here's the power of suggestion. I'll tell you, lad. If you ever so much as the word of this region. If you ever reach the truth, I'll be after you with a layin' print. I will. I will. I will. A plea from our story is the last voyage of Kalani Bay, starring Edward Arnold, to bring you an important message. What does it cost to learn radar operation, aeroplane mechanics, or photography? In the Air Force, it costs you nothing. As a matter of fact, you'll be receiving that high pay from the day you enlist. And here's the best part. Under the aviation career plan, you'll be brought enlist until after you've been accepted for the school of your choice. It'll pay you to look into this. Get the details this week at your nearest Army and Air Force recruiting station. Act two of the last voyage of Kalani Bay, starring Edward Arnold as Captain Dennis McKee. Captain McKee was completely chagrin at that little episode which included a bucket in his cabin. And had I another right to be, never was I more ashamed to be as sick as a new hand on the first trip out. But I'll say this for the man, never a word got out, he kept mum, and he tried so hard. It made me feel a might sorry to what I had to do. As on the morning I opened my cabin door. Well, now that, what's going on in here? Well, I was tidying up a bit, sir, and buffing your shoes. And what about your work below? I was all true below, sir. Well, well.  I have my mind made up. Please don't say it, sir. What I will say, you're getting off this ship at Charleston and come to calm or high water. Please, sir. Now, don't start slithering around me. Who won't, sir? That's a good lad. I know what's best for you. This ship was no place for a lad his age. The life was hard, and he was just a grown boy and a wisp at that. It looked like a gentle sow Easter would blow him over any moment. It was the only thing to do. We were about a day out of Charleston when suddenly a herd commotion on deck and the bell began to ring. I ran up on deck. I could smell a smoke, and there it was, poured out of the after-hack. Captain McKee. What's happened there? There's a smoldering fire there in the cotton bales below, sir. We'll have it out in a moment. Quick, will those water buckets? I see you have a line down the hall. Who's down there? I don't know. It's the lads, sir. He was the first down with a water bucket. There's no place for a lad down there. You don't let smoke stand to stay there. I'll pull them out. Hold on, sir. I'll send a man down. Hold on, nothing. What am I? The captain of the ship or a measly hand? Stand back down. I went down into the hall and pulled the lad out. The smoke was very heavy. There was limp and white in me arms.  I laid the lad on the deck where the good breeze could get to him. But he didn't move. Not like he had oven. And suddenly I spoke to one of the hands standing by, watching. Steady, Captain. Aye, aye, sir. You're always rattling everyone's ears with a song. Do you know a good song? What would that be, sir? Domsology? Old hundred? Aye, sir. Then sing it, Snedica. And sing it like you never sang it before. Aye, sir. Praise God for... I knelt there beside him. I never was one for church going. And I wished I was. But I knew a prayer and there were other prayers spoken, I'm sure. It seemed like eternity itself before the lad moved and his eyes opened. How are you, lad? A bit fetched. There, now there. Don't you try to talk too much? Are we near Charles Town, sir? That we are, lad. But we won't be there long. Well, how long? Oh, long enough to get rid of this cotton and to take some tobacco. And that's all, sir? That's all, my lad. Oh, thank you, sir. I did keep the lad on for the trip to Naples and many more that followed. And I guess that run from New Orleans to Charleston was the last trip of the Kalani Bay. For from there on, she became a new ship. A new ship indeed. Our Edward Arnold returns for a curtain call right after this important message from Wendell Niles. The Air Force wants you young men who are interested in aviation as a career. And here's the deal they're offering you. You list the three Air Force technical schools in which you want to train. Then when you've been accepted for one of these, you may enlist for three, four, or five years and attend the school of your choice. It's as simple as that. Get your application right away at your local recruiting station. With our star and our producer. Rare indeed is a great artist who at the same time is a great public servant. Such a man is Edward Arnold, who as one of the founders of the I Am an American Day and as head of the Permanent Charities Committee of the Motion Picture Industry continues to enlarge his impressive record of service to his fellow man. Ed, how do you do it all? Well, it's very easy, CP. I'm the original Hollywood Yes Man. I just can't say no to anything. I'm glad we're delighted you ran true to form on our request. Well, it was a real privilege, CP, to appear for something as timely and as important as Army recruiting. But now tell me, what's on the play bill for next time? Before next week's play bill, here's the good news about Proudly We Hail. Starting the first of the year, your Theater of Stars becomes a full half hour program featuring your favorite star and dedicated to give you the finest radio drama possible. We know you'll look forward to it. Until next week here on Proudly We Hail, we bring you the fine actor of motion pictures, Philip Terry, in a heartwarming story of Thanksgiving. Edward Arnold appears to be courtesy of the Hollywood Coordinating Committee, which arranges the appearances of all motion picture stars on this program. Until next week, thanks for listening. This is CP McGregor saying, Cheerio from Hollywood.


Yn ymgyrch o'r tîm blynedd, rwy'n ymddi'ch gweithio gael y gallwn i'ch gweithio'r bwysig ymddiadau o'r bwysigau i'ch gweithio'r bwysig sy'n gyfnodol yma i'ch gweithio'r bwysig, o'r ddau'r bwysig ymddiannig o'r bwysig. Yn ymgyrch o'u bwysig o'r rhaid i'ch gweithio'r bwysig o'r bwysig, In 2016 it was estimated that 412 women die per 100,000 life births. Ethiopia being one of the six countries that have contributed to 50% of all maternal deaths worldwide. Let's begin with where this study took place. Since 2007, Medecins Sans Frontières has been working in Dolo's own delivering basic and reproductive health care to this pastoral rural population with the regional health bureau. You may recognise the area in the recent food crisis emergency. In 2016 we worked in nine villages in three districts, Wardair, Lailahoe and Danood. Dolo's own is one of the nine zones in the Somali region, Ethiopia. It is bordered on the north and southeast by Somalia. MSF and the regional health bureau and the public health institute wanted to understand the reasons behind low utilisation of reproductive health services it offered at this time. Let's move on to who we involved in the study. We interviewed purposefully 27 women who kindly shared their life stories and their health specific to childbirth. We followed a method where each woman, pregnant women, women with a child under one year and older women, reflected on their memories from childhood up to the point of becoming mothers themselves. But don't worry men, we haven't left you out. Men's ideas were captured through eight group discussions, also selected purposefully according to whether they were fathers with pregnant wives and or young children as well as older knowledgeable men. Before we go into the findings, I want to share one of the participants Amina's story. In her own words for you to get a glimpse of the common realities. Obviously her name has been changed. I am a mother. I have given birth to nine children. I was born in this same district in Ethiopia as I live now. When I was 12 years of age I travelled to Somalia and I grew up there until 17 years. I was married there. It was about the time at the pregnancy of my first baby. It was the time when the previous regime of Somalia was overthrown. I fled Somalia. I delivered my first child as a refugee while on the road back to my place of birth here in Ethiopia. Even though this country was not as peaceful as we know now, there was luck of peace back then. My baby didn't get any care or service, all the other eight children were born here. I'm 29 years of age. I'm a healthy mother. I had bleeding in two deliveries. My children are healthy, although one son of mine has died. Now I am pregnant. I'm in my fifth month of pregnancy. Note how she describes being used to risk. Living with risks and being a healthy mum simultaneously. The findings may help explain such experience. I'm now going to tell you about the results from the whole participant group. Four key findings emerged. First, we identify a social emphasis on barriers to healthcare and understandings of risk and resilience. Second, we explain how responsible adults manage risk. Thirdly, delays in reaching care describe the urgent case and value given to collective decision making. Lastly, we consider how technologies are perceived to enable access to better knowledge and care. The first findings relates to the adversity of social experiences and life for this population. A population used to pregnancy as a normal occurrence, but also used to risk. Like my own title suggests, hoping for life while fearing death describes and explains an acceptance of levels of risk in pregnancy and childbirth. But like Amina's story, the hope or prospect for a better outcome was judged constantly with risk. This finding is important for the health worker with the responsibility to explain the significance of risks and danger signs in pregnancy. We are like newly grown grass subject to the same fragility and vulnerabilities needed to sustain life. Equally, the concentration of health facilities in more populated areas means that perceptions of people towards using health services were outside their day-to-day experience, unfamiliar and unobtainable. Like all of us, they don't know what they cannot see. Faciliters should be established with people in the bush, just like the capital cities or big towns. Second findings, it was apparent from both male and female respondents that living with and managing risk was part of day-to-day life as pregnancy was and giving birth. For this, importance was given to the presence or not of a responsible adult. This could be the husband or it could be somebody in the community or a health worker, but someone there that could respond and be supportive. It is necessary to act in a way that would save the life of a woman. Our habit is that a husband follows the progress of the pregnancy and his wife. Similarly, the survival of mother and child, especially in drought or instability, is related to the presence of responsible support. There are examples of good support during delivery and for childcare, including hygiene and nutrition and protection, young infants were visibly cared for and nurtured and loved. The third findings, most participants' responses state that referral of a pregnant woman who needs emergency care to be reliant on a group decision making. Yes, we work as a group, search for a vehicle or communicate with a man at the health post. Participants recognise the influence of group decision making contributing to delays in reaching skilled assistance once the case requires attention. Negotiation as part of a collective nature of decision making was complex. There are several parts to the decision, each having a unit of time attached to it, leading to delays. While clearly group decisions carried authority, not all were straightforward and sometimes the negotiation was connected to other priorities, for example other children, animals to look after. The fourth finding, the frequent references to technology by participants suggested that to have more access to it would enable them better knowledge and care. The value placed on technology was twofold. It was described, for example, by the importance given to women to a pregnancy test, proving that they were pregnant before it was visible or physically showing. Or that they could find out their red blood cell count from a test if they had low anemia. They'd know that it was severe. Equipment or technology that can measure and make certain biological events visible is potentially useful to prompt action. We are only seeing in modern times when blood and people is being measured and when children are measured in different ways. This quote, in context, is a good example of wanting to measure and see their illnesses, or in the case of pregnancy, the risks. Secondly, a speedier communication was shared by many participants across male and female respondents. The presence of a transmitter so that radios could be used, or more recently the mobile phones with improved networks available in some villages, were essential for better referral systems and information sharing. The best man in rural areas is the one who requests for radio communication and tells them that his wife is about to deliver and needs assistance. As with qualitative research, our findings aren't generalisable to context, but we do think that the concepts in other nomadic populations living in remote areas would be of youth conclusions. I'm now going to talk about the conclusions. When we were looking at the findings, we realised they suggested a community-based approach was needed to help overcome barriers and enable access to care. So we came up with the idea to match them to the health extension worker programme being rolled out by the health bureau in the region, taking advantage to apply our findings to ensure the effectiveness of the health worker. We believed that access could be improved through increased effectiveness of a health worker, for example the responsible person that we discussed earlier, a female to be trained up. When we presented the findings back to the community, they created this tree with four elements, four elements as the roots of the tree to preserve life, as well as the female health worker that would have skills and equipment to carry out their tasks. That person would also be a broker to direct decision-making, an influencer to improve knowledge and recognise earliest dangerous signs and an enabler with screening tools to detect dangerous signs and earlier referral. Other conclusions included, a contextual analysis of delay is needed to understand socio-political aspects influencing access to health care. Technology is important to identify danger signs and increase access to knowledge and care, and community perceptions are key to understand how best to approach health worker and health systems planning. Next steps. There is a high priority and shared momentum to reach the national public health goal to reduce maternal mortality in Ethiopia, and this may be able to contribute to that. The regional health bureau liked the idea to add these components to support prevention and referral activities. The Public Health Institute has recently done a national survey that would like to combine with these findings for new strategies to address improving emergency obstetric care. Community responsiveness has also been positive to the findings. I would like to thank the research team, the women and men of Dolo and the regional health bureau and the Institute of Public Health and MSF teams for their help with study. Thank you.