{"id":13530448,"url":"https://github.com/dechamps/FlexASIO","last_synced_at":"2025-04-01T18:31:45.808Z","repository":{"id":14184939,"uuid":"16891206","full_name":"dechamps/FlexASIO","owner":"dechamps","description":"A flexible universal ASIO driver that uses the PortAudio sound I/O library. Supports WASAPI (shared and exclusive), KS, DirectSound and MME.","archived":false,"fork":false,"pushed_at":"2024-06-27T18:48:58.000Z","size":662,"stargazers_count":1521,"open_issues_count":55,"forks_count":83,"subscribers_count":48,"default_branch":"master","last_synced_at":"2025-04-01T08:44:40.159Z","etag":null,"topics":["asio","asio-drivers","audio","audio-plugin","c-plus-plus","directsound","mme","portaudio","wasapi","windows"],"latest_commit_sha":null,"homepage":"","language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dechamps.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.txt","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}},"created_at":"2014-02-16T18:34:20.000Z","updated_at":"2025-03-31T10:00:56.000Z","dependencies_parsed_at":"2023-02-18T16:01:17.143Z","dependency_job_id":"fb71a907-7b00-425d-8bec-aee982321ba0","html_url":"https://github.com/dechamps/FlexASIO","commit_stats":null,"previous_names":[],"tags_count":27,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dechamps%2FFlexASIO","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dechamps%2FFlexASIO/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dechamps%2FFlexASIO/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dechamps%2FFlexASIO/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dechamps","download_url":"https://codeload.github.com/dechamps/FlexASIO/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":246691585,"owners_count":20818538,"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","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":["asio","asio-drivers","audio","audio-plugin","c-plus-plus","directsound","mme","portaudio","wasapi","windows"],"created_at":"2024-08-01T07:00:50.020Z","updated_at":"2025-04-01T18:31:45.789Z","avatar_url":"https://github.com/dechamps.png","language":"C++","readme":"# FlexASIO, the flexible universal ASIO driver\n*Brought to you by [Etienne Dechamps][] - [GitHub][]*\n\n*ASIO is a trademark and software of Steinberg Media Technologies GmbH*\n\n**If you are looking for an installer, see the\n[GitHub releases page][releases].**\n\n## Description\n\nFlexASIO is a *universal [ASIO][] driver*, meaning that it is not tied to\nspecific audio hardware. Other examples of universal ASIO drivers include\n[ASIO4ALL][], [ASIO2KS][], [ASIO2WASAPI][]. [KoordASIO][] is a derivative of\nFlexASIO that focuses on WASAPI and user convenience.\n\nUniversal ASIO drivers use hardware-agnostic audio interfaces provided by the\noperating system to produce and consume sound. The typical use case for such a\ndriver is to make ASIO usable with audio hardware that doesn't come with its own\nASIO drivers, or where the bundled ASIO drivers don't provide the desired\nfunctionality.\n\nWhile ASIO4ALL and ASIO2KS use a low-level Windows audio API known as\n*[Kernel Streaming]* (also called \"DirectKS\", \"WDM-KS\") to operate, and\nASIO2WASAPI uses [WASAPI][] (in exclusive mode only), FlexASIO differentiates\nitself by using an intermediate library called [PortAudio][] that itself\nsupports a large number of operating system sound APIs, which includes Kernel\nStreaming and WASAPI (in shared *and* exclusive mode), but also the more mundane\nAPIs [MME][] and [DirectSound][]. Thus FlexASIO can be used to interface with\n*any* sound API available on a Windows system. For more information, see the\n[backends documentation][BACKENDS].\n\nAmong other things, this makes it possible to emulate a typical Windows\napplication that opens an audio device in *shared mode*. This means other\napplications can use the same audio devices at the same time, with the\nWindows audio engine mixing the various audio streams. Other universal ASIO\ndrivers do not offer this functionality as they always open audio devices in\n*exclusive mode*.\n\n## Requirements\n\n - Windows Vista or later\n - Compatible with 32-bit and 64-bit ASIO Host Applications\n\n## Usage\n\nAfter running the [installer][releases], FlexASIO should appear in the ASIO\ndriver list of any ASIO Host Application (e.g. Cubase, Sound Forge, Room EQ\nWizard).\n\nThe default settings are as follows:\n\n - DirectSound [backend][BACKENDS]\n - Uses the Windows default recording and playback audio devices\n - 32-bit float sample type\n - 20 ms \"preferred\" buffer size\n\nAll of the above can be customized using a [configuration file][CONFIGURATION].\nYou might want to use a third-party tool such as flipswitchingmonkey's\n[FlexASIO GUI][FlexASIO_GUI] to make this easier.\n\nFor more advanced use cases, such as low-latency operation and bit-perfect\nstreaming, see the [FAQ][].\n\n## Troubleshooting\n\nThe [FAQ][] provides information on how to deal with common issues. Otherwise,\nFlexASIO provides a number of troubleshooting tools described below.\n\n### Logging\n\nFlexASIO includes a logging system that describes everything that is\nhappening within the driver in an excruciating amount of detail. It is\nespecially useful for troubleshooting driver initialization failures and\nother issues. It can also be used for verification (e.g. to double-check\nthat FlexASIO is using the device and audio format that you expect).\n\nTo enable logging, simply create an empty file (e.g. with Notepad) named\n`FlexASIO.log` directly under your user directory (e.g.\n`C:\\Users\\Your Name Here\\FlexASIO.log`). Then restart your ASIO Host\nApplication. FlexASIO will notice the presence of the file and start\nlogging to it.\n\nNote that the contents of the log file are intended for consumption by\ndevelopers. That said, grave errors should stick out in an obvious way\n(especially if you look towards the end of the log). If you are having\ntrouble interpreting the contents of the log, feel free to\n[ask for help][report].\n\n*Do not forget to remove the logfile once you're done with it* (or move\nit elsewhere). Indeed, logging slows down FlexASIO, which can lead to\ndiscontinuities (audio glitches). The logfile can also grow to a very\nlarge size over time. To prevent accidental disk space exhaustion, FlexASIO will\nstop logging if the logfile exceeds 1 GB.\n\n### Device list program\n\nFlexASIO includes a program that can be used to get the list of all the audio\ndevices that PortAudio (and therefore FlexASIO) knows about, as well as detailed\ninformation about each device.\n\nThe program is called `PortAudioDevices.exe` and can be found in the `x64`\n(64-bit) or `x86` (32-bit) subfolder in the FlexASIO installation\nfolder. It is a console program that should be run from the command line. It\ndoesn't matter much which one you use.\n\n### Test program\n\nFlexASIO includes a rudimentary self-test program that can help diagnose\nissues in some cases. It attempts to emulate what a basic ASIO host\napplication would do in a controlled, easily reproducible environment.\n\nThe program is called `FlexASIOTest.exe` and can be found in the `x64`\n(64-bit) or `x86` (32-bit) subfolder in the FlexASIO installation\nfolder. It is a console program that should be run from the command\nline.\n\nIt is a good idea to have [logging][] enabled while running the test.\n\nNote that a successful test run does not necessarily mean FlexASIO is\nnot at fault. Indeed it might be that the ASIO host application that\nyou're using is triggering a pathological case in FlexASIO. If you\nsuspect that's the case, please feel free to [ask for help][report].\n\n## Reporting issues, feedback, feature requests\n\nFlexASIO welcomes feedback. Feel free to [file an issue][] in the\n[GitHub issue tracker][], if there isn't one already.\n\nWhen asking for help, it is strongly recommended to [produce a log][logging]\nwhile the problem is occurring, and attach it to your report. The output of\n[`FlexASIOTest`][test], along with its log output, might also help.\n\n---\n\n![ASIO logo](ASIO.jpg)\n\n[ASIO]: http://en.wikipedia.org/wiki/Audio_Stream_Input/Output\n[ASIO2KS]: http://www.asio2ks.de/\n[ASIO2WASAPI]: https://github.com/levmin/ASIO2WASAPI\n[ASIO4ALL]: http://www.asio4all.org/\n[BACKENDS]: BACKENDS.md\n[CONFIGURATION]: CONFIGURATION.md\n[DirectSound]: https://en.wikipedia.org/wiki/DirectSound\n[Etienne Dechamps]: mailto:etienne@edechamps.fr\n[FAQ]: FAQ.md\n[FlexASIO_GUI]: https://github.com/flipswitchingmonkey/FlexASIO_GUI\n[file an issue]: https://github.com/dechamps/FlexASIO/issues/new\n[GitHub]: https://github.com/dechamps/FlexASIO\n[GitHub issue tracker]: https://github.com/dechamps/FlexASIO/issues\n[logging]: #logging\n[MME]: https://en.wikipedia.org/wiki/Windows_legacy_audio_components#Multimedia_Extensions_(MME)\n[Kernel Streaming]: https://en.wikipedia.org/wiki/Windows_legacy_audio_components#Kernel_Streaming\n[KoordASIO]: https://github.com/koord-live/KoordASIO\n[PortAudio]: http://www.portaudio.com/\n[releases]: https://github.com/dechamps/FlexASIO/releases\n[report]: #reporting-issues-feedback-feature-requests\n[test]: #test-program\n[WASAPI]: https://docs.microsoft.com/en-us/windows/desktop/coreaudio/wasapi\n","funding_links":[],"categories":["Uncategorized","C++","windows"],"sub_categories":["Uncategorized"],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdechamps%2FFlexASIO","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdechamps%2FFlexASIO","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdechamps%2FFlexASIO/lists"}