Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 08/25/25 in all areas

  1. Hi all, I have just uploaded the project EdgeAudio integrate mic capture, audio playback, a high‑pass filter, VAD, hysteresis, and a “Talkover” mode from Delphi, orchestrated through a bidirectional JS bridge inside TEdgeBrowser. The architecture centers on TEdgeAudioControl and TAudioSettings, applied in real time on the WebAudio side, with clean VCL integration (virtual host, typed events). Key points Clear architecture: capture (TEdgeAudioCapture), playback (TEdgeAudioPlayer with VAD/Talkover), filtering (THighPassFilter), and a WebView2 bridge; TEdgeAudioControl exposes settings and ready‑to‑use events. Extensible event engine: aggregates/routes JSON events (audio_play, audio_pause, audio_segment, etc.) via TEventEngineManager and IAudioEventHandler. Capabilities: tunable VAD (threshold/silenceMs/timeslice), Talkover with cooldown/ratios to avoid “ping‑pong,” playback/streaming (play/pause/seek/stop), setSinkId, volume boost, built‑in notifications/animations, and optional auto‑blocking of capture during playback. Quick start Install the EdgeAudioDesign.dproj package to register TEdgeAudioControl in the Palette. Two paths: (1) already have TEdgeBrowser → use the Edge.Audio unit; (2) drop TEdgeAudioControl. Copy the web/tools folders into your project and place WebView2Loader.dll (x86/x64) next to the executable. Sample projects (AudioEdgeTest1/2.zip) are provided; add “EDGEAUDIO\SOURCE” (and “OPENAI\SOURCE”) to your project search paths. Dependencies: Delphi 12+, WebView2 Runtime, and ffmpeg if you need audio conversion (configurable ffmpegPath). Learn more Diagrams, event flow, and extension points are detailed in the “Dev note – Architecture & Mechanics” sections and the deep‑dive in the repo. Preview
  2. DelphiUdIT

    Compiler directives for line number?

    May be this can help: https://en.delphipraxis.net/topic/11249-embed-line-number-at-design-time/?do=findComment&comment=89256 P.S:: those work at runtime not like preprocessors directive.
  3. Angus Robertson

    TSslCertTools for generate CSR

    If you read my message properly, you'll see I specifically mentioned RSA_public_encrypt as the functions ICS has used for 15 years. But it is deprecated and no longer loaded by the latest ICS. If you are going to make comments about the ICS library, which I understand you do not actually use, please do some minimal research first. Some of your comments are useful, many just confuse real ICS users. Angus
  4. Hi, thanks again for your insightful feedback and questions! Delphi Version: All my GitHub projects (including EdgeAudio) are developed and tested with Delphi Community Edition (CE) (currently 12.1) , which is freely available. So you don’t need Delphi 12 Pro/Enterprise to try it. Why this technical choice / Why VCL? My main goal was to learn WebView2 and Edge. VCL was the only practical option, since Embarcadero hasn’t provided an FMX wrapper for WebView2 yet. WebRTC & AEC: I haven’t integrated WebRTC/AEC yet, but it’s next on my roadmap, especially as I plan to experiment with OpenAI’s realtime API (https://platform.openai.com/docs/api-reference/realtime). Your questions are very relevant. I’ll report back once I explore those aspects. JSBridge compatibility & asset loading: Yes, EdgeAudio’s JSBridge is designed to control WebAudio in WebView2 via ExecuteScript and to receive JSON events via OnWebMessageReceived. That’s its native mode. For the UI, EdgeAudio expects an index HTML and all assets from a local WebPath. The recommended approach is to use NavigateToIndex, mapping a virtual host for a secure context and proper CORS handling. Using NavigateToString (i.e., injecting everything from memory) is technically possible but not aligned with the current architecture. Without the virtual host, you lose the “secure context” and CORS protection; and if assets aren’t served via WebPath, the audio UI doesn’t function as intended. Many of your questions are the same ones I’ll be tackling soon as I move forward with EdgeAudio. Your feedback is a great help, and I’ll be sure to share findings and updates as I continue development! Thanks again!
  5. Angus Robertson

    Amazon Echoes

    The server does have a certificate on that address, for pc21-tele.magenta, signed by the ICS intermediate and ICS root, but the Echo would not accept that. The server redirects from 70 to 443, but that would have been logged. Client certificates are not requested. Strange that six Echo devices all decided to go web server hunting within two hours, just once in a week, although I rarely look at the server logs unless debugging ICS. A pity SSL failed, would be very interesting to know what URL it was looking for. That server has another address on the public internet that currently has 615 hackers blocked, mostly accessing the server by IP address. Just added an ASN database to ICS, so the logs will shortly list ISP names as well as countries, I expect to be blocking some connected with China but running in the USA and other western countries. Angus
  6. dummzeuch

    Rad Studio 13?

    That's not quite true. They will usually allow you to continue your subscription if it run out not too long ago. But of course starting with the date it run out. Also, there are some special offers from time to time, where you can save part of the price for a new license. But for a while keeping the subscription active has been the cheapest way to update (if you can call that "cheap"). And every time you have to remove "platinum support" from the order. The one thing that has annoyed me the most, is that you need an active subscription to even download an install bugfixes.
  7. David Heffernan

    Rad Studio 13?

    If you let your subscription lapse then they charge you full price for a new license because they are unscrupulous and hate their customers
  8. JackT

    procedure of class

    Thanks for the replies. I appreciate the effort you have all put into answering my question.
  9. PeaShooter_OMO

    canvas.TextWidth not working in Win 11

    It is always a good idea to not hard code any widths related to the visual apsects of controls. They might change when the OS changes version. You have to get the width of the non-client area of a ComboBox so that you can add it your calculated MaxTextWidth to get a proper control width. But... ComboBox does not play nicely and getting its ClientWidth is not possible with functions like GetClientRect thus ComboBox does not have a properly calculated ClientWidth for it so you will have to make another plan to get it. There is a Win32 function called GetComboBoxInfo. It returns a record with details about the combobox like size of the control, the size and position of the button and size of position of the edit control in it. You will use the width of the edit control and deduct that from the width of the ComboBox and there you have the non-client area width. Just add that to the MaxTextWidth and you have the size the ComboBox should be. Remember to do these calculations and setting of the ComboBox size again when the Windows theme or settings change or the font changes.
  10. 🔥 Who can accurately recreate this UI in Delphi VCL? 🔥 ---- 👉 Rules of the challenge: No third-party components – Only pure VCL! Windows API calls only – No hacks like setting a blurred wallpaper. True glass blur effect – The UI must feature real-time Gaussian Blur, not a fake overlay. Resizable & smooth movement – The form should be fully resizable and draggable without lag. Performance separation – The blur effect must run on a separate thread, ensuring that UI interactions stay smooth. Native Windows 11 style – The form should have real rounded corners, using the native Windows 11 API. Update on the challenge requirements: Regarding Resizing, and even Moving, the developer may revert the form’s design to be Normal in terms of background and borders (to make it easier for everyone to participate and to minimize code for smoother application performance). Regarding updating the background when the form does not move, you are also not required to provide this background capture (meaning we want everyone to participate, thank you). --- Happy birthday and a new year for Delphi—and every year, becomes stronger and better... --- 🚀 Fun fact: The login form shown in the image is actually running on Windows XP! 🤯 💬 Can you achieve this in Delphi VCL? Post your best attempt below! 👇 ----
  11. kabiri

    VCL UI Design Challenge for Delphi Developers 💡

    I tried a little to do it in VCL, but the result wasn’t very good. Actually, I used the Windows API. I think if I capture the background and draw it on the form’s canvas, the result will be better.
×