AudioStream provides PCM audio streaming for Unity AudioSources from many sources/formats, can stream to/from system non default inputs/outputs + their channels, in 3D, access Icecast server, and moreThe asset can help you with streaming from any connected system device (microphones, Line-In inputs, loopback interfaces, including ASIO on Windows..) and decoding audio files and streams from local file system and networkAs new feature it supports multiple audio listeners in scene (based on Resonance spatialization, see below and online docs for details)Please be aware that somehow advanced knowledge of Unity audio is required and is not aimed at novice users in general.Please download demo builds from the following links to test all functionality first - they contain testing scenes for all included components; most of the scenes allow custom parameters such as filepath/urls to be set in order to test with your audio assets (on Windows ASIO support can be enabled, see online docs link below for details on how to configure the driver in order to work with the demo):Demo builds for v 3.4Windows x64 | macOS Universal | Android_ChromeOS | Linux x64(On macOS please allow running applications from unverified developers in System Preferences, and Allow the app to run, or alternatively codesign downloaded app on newer macOS(s): runxattr -d com.apple.quarantine AudioStreamDemo.appcodesign --deep -s - -f AudioStreamDemo.appchmod +x AudioStreamDemo.app/Contents/MacOS/AudioStreamDemoin the folder where it was downloaded - Unity ad-hoc builds might require this)Support forum is here, but please read below firstcurrent documentation is also available herePlease read included !!README1ST!! INITIAL IMPORT ERRORS.txt after importing the package for the first time which explains how to properly install and setup FMOD for UnityAudioStream can stream and play from:* internet radios M3U/8 and PLS playlists (+)* audio files hosted on the internet/cloud such as podcasts* local audio files on a regular filesystem (according to platform)* non realtime and realtime streams from network / filesystem with caching for later usage, realtime streams can optionally play back while downloading* memory locations containing encoded audio* any connected input audio device (Microphone, Line-In inputs) including multichannel ones* has broader HW support than Unity's Microphone class* ASIO driver enabled devices on Windows* non default devices on iOS, such as AirPods* any input/microphone directly into spatialized Resonance AudioSourceAdditionally it can- save content streamed from network into local disk cache for offline playback- stream/push any of the above into connected Icecast mountpoint- stream between two LAN instances either Opus encoded audio up to two channels, or uncompressed AudioSource/AudioListener PCM audio- play/redirect common Unity AudioSource to other than default system output, targeting specific channel/s/speakers- play FMOD sounds directly on specified output and its channels/speakers using customized mix matrix[FMOD sounds means audio files in all formats supported by FMOD, including multichannel ones above 8 channels which Unity currently can't import - either from local disk or from network URI, using FMOD networking only (i.e. no HTTPS)]- redirect Unity MixerGroup to other than default system output with reasonable latency (++)- has network proxy support via UnityWebRequestUnity and other assets compatibility:- compatible with all other audio packages when using AudioSource enabled, and networked components- corresponding AudioSource can be used as usual including Unity spatialization, effecting and mixer routing - this means it can be used as AudioSource for e.g. Resonance/Oculus/Steam spatialization plugins, or any Unity Mixer in general (+++)- fully IL2CPP compatible including standalones (Unity 2018.1 and up)- has no PM dependencies on other optional Unity packages, not even builtin UGUI or TextMeshPro- please be aware that the asset does not support WebGLIncluded Documentation contains comprehensive install and usage guides such as building and recording on iOS, basic support for mobile background audio modes (++++), considerations regarding Unity latency modes and DSP buffer settings, setting up Icecast source and mountpoint and each relevant setting is fully documented in the Editor via e.g. member fields tooltips.Runs almost on all platforms Unity currently has audio support for (+++++), at the time being tested on Windows, macOS and mobiles - iOS and Android.There is a separate test/demo scene for each component/functionality and all source code is included.Source is Unity API upgrader friendly (i.e. should not trigger any automatic source upgrades) and has no warnings once everything is set up.* The whole package is as much unobtrusive as possible, there are no Editor customizations, except custom inspectors.The asset is built upon FMOD Engine API and with all its source available it's also a good example on how to work with FMOD Engine and Unity in general- please note that no FMOD Studio functionality is used, however.–––––––––––––––––––––––––––Uses FMOD Studio by Firelight TechnologiesNOTE: Agreement to FMOD EULA is required before downloading the FMOD Unity Intergration package directly from FMOD (they have very friendly indie policy though).In general the asset should work with latest official FMOD release, either from the Asset Store, or from fmod.com (Unity Verified is recommended, though not necessarily required)–––––––––––––––––––––––––––Submitted with 2021.3.0 LTS Unity versionmainly for netstandard 2.1 support needed by OscCorethe rest of sources are not checked for compatibility with previous versions extensively, but initially 5.3.5 was recommended minimal version for mobiles, and earlier versions starting with 5.0 were OK for standalones.see LICENSE for each asset used in the demo–––––––––––––––––––––––––––(+) Please note that M3U/8 support is currently limited to nonrecursive, nonchunked, direct streams only (in other words HLS is not supported). does not sprovide tags support for Icecast/SHOUTcast sources(++) Unity AudioMixer native plugin is currently built for 64- and 32-bit Windows and macOS, sources are included(+++) Unity Mixer works with all components, except AudioSourceOutputDevice (redirection to non default device and multichannel output separation)(++++) User modifications of generated Xcode/Android Studio projects are required based on freely available information on the internet / e.g. RemoteCommandCenter is not included and must be implemented by user on iOS to get full player experience /, Android support is limited(+++++) FMOD Studio Unity Integration officially has support for Android, macOS, iOS, tvOS, Metro, UWP, Windows and Linux (both x86 and x86_64) in publicly available version, with access to consoles version available upon request.Please note that FMOD functionality required by this asset is not currently supported on WebGL due to - for now - missing threading support.For streaming and access to audio devices only the low/Core level API of FMOD Studio is used directly where appropriate (please note that no authoring FMOD Studio functionality is used)- each output driver can be configured separately, on Windows ASIO support can be enabled, with customizable buffer size- for list of supported audio formats please see formats and platforms FMOD recognizes (see e.g. Wikipedia or FMOD Documentation, for example on iOS and Android m4a/AAC is supported).It aims at zero GC allocation at runtime and is suitable for long running automatically recoverable streaming.For network retrieval is used Unity provided UnityWebRequest - that means all sensible connection scenarios such as secure connections, redirects, custom headers and proxies,... supported by it are available now.Note: being streaming oriented it does not provide typical offline audio processing such as advanced audio clip offline signal manipulation - these are reserved for Unity AudioClip where appropriate.List of included components (note they are all in the demo builds):AudioStream - can stream supported formats from networked or local filesystem sources and play it via Unity AudioSource; supports saving content into local disk cacheAudioStreamMinimal - same as above, but plays the audio saparately via FMOD, not going through Unity audio system.AudioStreamRuntimeImport - can download at faster than realtime playback speeds, caches decoded PCM data which can be retrieved and played back later as an AudioClip without touching the networkAudioStreamMemory - decodes audio data stored at IntPtr memory location and plays them as an AudioClip, can use cache with user identifier to retrieve immediately laterIcecastSource - pushes playing Unity AudioSource content encoded as uncompressed PCM, OGGOPUS, or OGGVORBIS into opened Icecast mountpointAudioSourceOutputDevice - redirects playing Unity AudioSource to specified/non default system output- can perform multichannel separation of output, demo scene shows how to play a MONO AudioClip on selected channel of multichannel output deviceAudioStreamInput - streams any connected input device into an AudioSource including multichannel microphones- can open and stream from [loopback] devices meaning you can e.g. capture currently being played overall audio on system output on standalone platforms (which have loopback or are setup to be available)AudioStreamInput2D - same as above, except is optimized for latency and doesn't go through Unity spatializationAudioStreamInput_iOS - can stream from all connected devices on iOS into an Unity AudioSource, including e.g. AirPodsResonanceSource - positional streamed audio using FMOD's provided Google Resonance native pluginResonanceSoundfield - can play a- and b- format ambisonics files using FMOD's provided Google Resonance native pluginResonanceInput - provides spatialized microphone input - streams any audio input similar to AudioStreamInput components to 3D positioned AudioSource using FMOD's provided Google Resonance native pluginAudioStreamListener - can be used as standalone audio listener for AudioStreamListenerSource(s), with its own system audio output and number of GameObjects with this components is not limited (technically there is only limit now because of constrained FMOD resources)AudioStreamListenerSource - serves as source audio for AudioStreamListener, with all user adjustable Resonance 3D parameters, requires Unity AudioSource,AudioStreamOscSource - OSC transport for AudioStreamNetworkSourceAudioStreamNetMQSource - NetMQ transport for AudioStreamNetworkSource- these act as network source for client components providing OPUS encoded (max. 2-channels) or PCM stream over LANAudioStreamOscClient - OSC transport for AudioStreamNetworkClientAudioStreamNetMQClient - NetMQ transport for AudioStreamNetworkClient- LAN clients for the above sources which are played via normal Unity AudioClip either 2D or spatializedGOAudioSaveToFile - saves audio of any AudioSource into a PCM16 WAV fileAudioSourceCaptureBuffer - small utility component for exposing audio filter buffer of a game objectMediaSourceOutputDevice - direct FMOD API playback not using Unity audio system - an audio file can be played on any available system output, and can play multichannel audio files - two demo scenes are included for this componentthree simple playback channels separating components for AudioSource, AudioClip and AudioStreamInput:AudioStreamInputChannelsSeparation - splits recording channels of audio being recorded from an AudioStreamInput* into separate single channel AudioSources prefabs and instantiates them in the sceneAudioSourceChannelsSeparation - splits audio of an AudioSource/AudioClip being played on current Unity output into separate single channel AudioSources prefabs and instantiates them in the sceneAudioClipChannelsSeparation - splits original channels of (a multichannel) AudioSource/AudioClip being played into separate single channel AudioSources prefabs and instantiates them in the sceneAudioStreamDevice native mixer plugin:AudioStream OutputDevice effect - redirects AudioMixerGroup to specified/non default system outputAudioStream InputDevice effect* - records from a system audio input directly into AudioMixerGroup* currently Windows only- on Windows both above effects have ASIO alternatives