{"id":13661457,"url":"https://github.com/adrenak/unimic","last_synced_at":"2025-10-07T19:58:09.965Z","repository":{"id":38151079,"uuid":"107081701","full_name":"adrenak/unimic","owner":"adrenak","description":"Unity's Microphone enhanced and made easy.","archived":false,"fork":false,"pushed_at":"2025-07-26T04:31:21.000Z","size":696,"stargazers_count":128,"open_issues_count":2,"forks_count":15,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-07-26T10:49:39.579Z","etag":null,"topics":["audio","mic","microphone","pcm","streaming-audio","unity","unity3d","voice"],"latest_commit_sha":null,"homepage":"http://www.vatsalambastha.com/unimic/","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adrenak.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2017-10-16T05:25:36.000Z","updated_at":"2025-07-26T04:30:19.000Z","dependencies_parsed_at":"2024-12-16T00:21:18.242Z","dependency_job_id":"7b37a8f7-114d-4da8-a3ac-b541adf1b593","html_url":"https://github.com/adrenak/unimic","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/adrenak/unimic","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funimic","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funimic/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funimic/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funimic/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adrenak","download_url":"https://codeload.github.com/adrenak/unimic/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adrenak%2Funimic/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":278838471,"owners_count":26054721,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-07T02:00:06.786Z","response_time":59,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["audio","mic","microphone","pcm","streaming-audio","unity","unity3d","voice"],"created_at":"2024-08-02T05:01:35.020Z","updated_at":"2025-10-07T19:58:09.960Z","avatar_url":"https://github.com/adrenak.png","language":"C#","funding_links":[],"categories":["C\\#","C#","Audio and Sound Systems"],"sub_categories":[],"readme":"## UniMic 🎤\nA wrapper for Unity's Microphone class.  \nProvides easy APIs for mic input and management.  \nAlso includes `StreamedAudioSource`, a (not Microphone related) class that can be used for playing streaming audio by feeding it incoming audio samples.  \n\n## Documentation 📝\n[Refer to the Scripting Reference](https://www.vatsalambastha.com/unimic/api/Adrenak.UniMic.html)\n\n## Installing 📦\n⚠️ [OpenUPM](https://openupm.com/packages/com.adrenak.unimic/?subPage=versions) doesn't have up to date releases. Install using NPM registry instead 👇\n\nEnsure you have the NPM registry in the `packages.json` file of your Unity project with `com.adrenak.unimic` as one of the scopes\n```\n\"scopedRegistries\": [\n    {\n        \"name\": \"npmjs\",\n        \"url\": \"https://registry.npmjs.org\",\n        \"scopes\": [\n            \"com.npmjs\",\n            \"com.adrenak.unimic\"\n        ]\n    }\n}\n```\n\nAdd `\"com.adrenak.unimic\" : \"x.y.z\"` to `dependencies` list in `packages.json` file where `x.y.z` is the version name\n\u003e 💬 You can see the versions on the NPM page [here](https://www.npmjs.com/package/com.adrenak.unimic?activeTab=versions).  \n\u003e Also note that v3.x.x is recommended. v3 has several breaking changes against v1 and v2. Refer to the scripting reference if you're upgrading.  \n\n## Samples 🚀\nGetting started with some samples is the best way to see the features of UniMic, and there are many!\n\nEnsure that atleast one recording device is connected to your PC/Mac for the samples to work.\n\n### Simple MicAudioSource Sample\n- A gameobject called `My Mic` is placed. It has the `MicAudioSource` component. \n- Another gmeobject called `Sample` has `SimpleMicAudioSourceSample`\n    - On start it checks if there are any mic devices available\n    - If yes, it takes the first recording device available and starts the recording using `.StartRecording()`\n    - Then assigns the device to `MicAudioSource`, which then starts playing the audio\n- Play the scene. You should be able to hear your voice in the editor\n\n### Multiple MicAudioSource Sample\n- Run the scene, you should see every mic device connected \n    - On start, all the devices will start recording in parallel and playing back\n    - Toggling the checkbox on or off will start or stop the recording for a device\n- Prefab `MicDeviceCell` is used to represent one device. The `MicDeviceCell.cs` script handles its UI.\n- Check out the `MultipleMicAudioSourceSample` script to see how the UI has been created\n\n### MicAudioSource Switch Sample\n- Run the scene, recording should start on one device and a dropdown will show all the available recording devices\n- Use the dropdown to change to a difference device at runtime\n- Check out the `MicAudioSourceSwitchSample` script to see how the Device of a `MicAudioSource` can be changed at runtime.\n\n### Spatial Blend Sample (for spatial audio)\n- Run the scene, the audio source is a moving ball.\n- When you speak, your audio is played from the balls position. Use headphones to hear the sound moving.\n- Using the slider, you can change the spatial blend from 0 to 1\n\n## Note 📄\n* Some Xiaomi phones may prevent side loaded APKs from functioning.  \n* There is no AEC (Acoustic Echo Cancelletion). If you're trying the samples be sure to use headphones to avoid creating a feedback loop.\n\n## Credits\nMany thanks to [Metater](https://www.github.com/metater)'s repository [MetaVoiceChat](https://github.com/Metater/MetaVoiceChat) and our chat over Discord to help create pitch gain, audio frame lifetime/expiry and other improvements to `StreamedAudioSource.cs` in [version 3.3.0](https://www.npmjs.com/package/com.adrenak.unimic/v/3.3.0)\n\n## Contact 👥\n[@github](https://www.github.com/adrenak)  \n[@website](http://www.vatsalambastha.com)  \n@discord: `adrenak#1934`","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrenak%2Funimic","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadrenak%2Funimic","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadrenak%2Funimic/lists"}