A complete and open-source "radio" system with tuning, code API and code-free events, broadcasters, stations/nested tracks, procedural audio, extensive documentation + sample tutorials, and more!The demo and sample scenes use materials from URP, so they'll be invalid in other SRPs. The rest of the package is SRP-agnostic though.Ryle Radio is an open-source system for Unity that allows for custom "radios" to be created that can be tuned through like a real-world radio!You know how in real life, a radio can be smoothly tuned between different frequencies? How depending on where the radio is, some stations can and can't be heard? How stations that play many songs exist in the first place? Ryle Radio exists to emulate that, and more!If you want to create a radio that can be played at different frequencies, like a smooth GTA-style system, Ryle Radio can do it. If you want a dynamic radio that plays different stations depending on where you are, Ryle Radio can do it. If you want a smaller radio for puzzle rooms that's locked to certain areas and frequencies, Ryle Radio can do it! And if it can't, I'm open to contact of all kinds to help rectify that issue :)))The package is open-source and is hosted on GitHub. It's been extensively documented for users, with complete commenting and documentation for the source code also! There are three separate and thorough sample scenes, each with their own documentation and guides.To demonstrate the package in action, I've developed a game centered around the radio for Game Off 2025! Check it out here :)Hopefully this sounds like a cool tool for your needs or ideas. Even if not, it's completely free- so you can just uninstall if it doesn't work for you. My contact information is in the user documentation, so please talk to me with any questions or problems- hope you like the package!Tuning/panning between concurrent tracks- akin to tuning an actual radioIndependent tune range controls (tracks can occupy certain limited areas in the tuning)Manual and automatic playback of tracksEasily controllable play/pause/stop/reset through InteractorsIntegrated with Unity's built-in audio system- plays through AudioSources, allowing usage of Mixers and EffectsBroadcasters- allowing spatial audio that gets louder (or audible at all) depending on the position of the radioInsulators- backwards broadcasters, makes audio quieter depending on the positionBuilt-in event components through Observers for events in the radio (e.g: track volume, tune in range, track ends)Custom inspectorsIncludes Handles/Gizmos for relevant componentsIncludes custom-built Multiselect attributeProcedural tracks for noise, waveforms and moreAudioClip integration for simple playback of tracks in line with Unity import settingsStation tracks- tracks containing tracks, allowing dynamically switching audio at runtime and automatic full/partial shufflingEditable curves for basically everything an editable curve would be useful for(Partial) WebGL supportExtensive documentation and samplesFully open-sourceDocumentation is available online! Docs for users are hosted on GitHub Pages here, and docs for developers working with the source code is hosted here.(Note: The demo and samples for this package use third-party assets, with licenses outlined in Third-Party Assets.txt)All of the code and content is created by me, however I used AI for some smaller idea generation.I've utilised Google Gemini for ideas and working out some specific methodologies. Places I've used it for assistance are as follows:Explanation of noise generation methods (I had a day of brain-farts and couldn't work out how pink noise worked)Methodology for sample speed balancing- the currently implemented version is rewritten as my own work due to changes over developmentSome failed attempts at weird modularity that did not end up in the published versionSmaller troubleshooting issues with documentation publishing processMethodology springboard for WebGL implementation- the final implementation is entirely my own workAll of the code in this project is mine.

