{"id":49084134,"url":"https://github.com/drajabr/audio-matrix-router","last_synced_at":"2026-04-26T04:01:01.785Z","repository":{"id":352338636,"uuid":"1214776953","full_name":"drajabr/audio-matrix-router","owner":"drajabr","description":"Grid style audio router ","archived":false,"fork":false,"pushed_at":"2026-04-20T12:47:31.000Z","size":198,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-20T14:50:47.266Z","etag":null,"topics":["audio","audio-routing","multi-speaker","speaker-array","virtual-audio"],"latest_commit_sha":null,"homepage":"https://drajabr.github.io/audio-matrix-router/","language":"JavaScript","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/drajabr.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,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-19T03:11:22.000Z","updated_at":"2026-04-20T12:45:45.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/drajabr/audio-matrix-router","commit_stats":null,"previous_names":["drajabr/audio-matrix-router"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/drajabr/audio-matrix-router","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drajabr%2Faudio-matrix-router","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drajabr%2Faudio-matrix-router/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drajabr%2Faudio-matrix-router/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drajabr%2Faudio-matrix-router/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drajabr","download_url":"https://codeload.github.com/drajabr/audio-matrix-router/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drajabr%2Faudio-matrix-router/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32285283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"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","audio-routing","multi-speaker","speaker-array","virtual-audio"],"created_at":"2026-04-20T14:13:02.773Z","updated_at":"2026-04-26T04:01:01.779Z","avatar_url":"https://github.com/drajabr.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Audio Router Matrix\n\nAudio Router Matrix is a Windows desktop patchbay for WASAPI devices.\nIt lets you route any input channel to any output channel using a live crosspoint matrix, with per-route gain, phase inversion, and real-time level metering.\n\n\u003cimg width=\"1086\" height=\"743\" alt=\"image\" src=\"https://github.com/user-attachments/assets/83e1af22-4f78-44dd-968d-9a4009eb53f1\" /\u003e\n\n\n## What This Tool Does\n\n- Builds a channel-level routing matrix across selected input and output devices.\n- Mixes multiple sources into the same destination channel when multiple crosspoints are enabled.\n- Applies gain per crosspoint in dB.\n- Supports phase inversion controls from the UI.\n- Shows live meters so you can monitor signal activity while routing.\n- Persists device selection, routes, lock state, and window state to config.json.\n- Runs in the system tray and can start with Windows.\n\n## Typical Use Cases\n\n- Route a multi-channel interface input into a different hardware output map.\n- Build quick monitor mixes without opening a DAW.\n- Repatch channels between USB interfaces for streaming, recording, or testing.\n- Keep a stable routing setup that restores automatically on restart.\n\n## Architecture\n\n- Desktop host: WinForms (.NET 9) with WebView2.\n- Audio engine: NAudio + WASAPI device enumeration and mixing.\n- UI: React + Vite.\n- Config persistence: JSON file beside the executable.\n\nCore project folders:\n\n- AudioMatrixRouter/Audio: audio engine, routing matrix, mixing, ring buffer.\n- AudioMatrixRouter/WebUI: React frontend.\n- AudioMatrixRouter/Models: config models and serialization.\n- .github/workflows: CI, Pages, and release automation.\n\n## Requirements\n\n- Windows 10/11.\n- .NET 9 SDK for building from source.\n- Node.js 20+ and npm for WebUI builds.\n- WebView2 Runtime installed (normally present on modern Windows).\n\n## Quick Start (Build And Run)\n\n```powershell\ngit clone https://github.com/drajabr/audio-matrix-router.git\ncd audio-matrix-router\n./build-all.ps1\n./build/desktop/AudioMatrixRouter.exe\n```\n\nThe build script outputs:\n\n- build/web: static web build (Pages mode).\n- build/desktop: desktop app publish output.\n\n## Run In Development\n\nFrontend only:\n\n```powershell\ncd AudioMatrixRouter/WebUI\nnpm ci\nnpm run dev\n```\n\nDesktop app with local build output:\n\n```powershell\ndotnet run --project AudioMatrixRouter\n```\n\n## How Routing Works\n\n- Rows are global input channels.\n- Columns are global output channels.\n- Each active tile represents one enabled crosspoint from input channel to output channel.\n- Multiple active tiles targeting the same output channel are mixed.\n- Gain is stored per crosspoint and restored from config.\n- Route edits can be locked to prevent accidental changes.\n\n## Startup And Tray Behavior\n\n- Closing the window minimizes to tray by default.\n- You can quit from the tray menu.\n- Startup at boot is controlled from the app and stored in the Windows Run registry key.\n- Supported startup args:\n\t- --startup\n\t- --minimized\n\n## Configuration\n\nApp state is saved to:\n\n- config.json next to AudioMatrixRouter.exe\n\nSaved fields include:\n\n- Window position/size and start-minimized preference.\n- Selected input and output devices.\n- Active crosspoints and gain values.\n- Lock state.\n\n## CI/CD\n\n- Build and release workflow: .github/workflows/ci.yml\n- Pages deployment workflow: .github/workflows/pages.yml\n\nGitHub Pages base path is resolved from repository name during CI so assets load correctly for current and renamed repos.\n\n## Troubleshooting\n\n- Git add fails with Cookies permission denied:\n\t- Close the running app first so WebView2 file locks are released.\n\t- The build output folders should be ignored by git.\n\n- Pages site loads but JS/CSS 404 or wrong MIME type:\n\t- This means the built base path does not match the repository Pages path.\n\t- Re-run the Pages workflow after the latest workflow and Vite config updates.\n\n- No audio after device changes:\n\t- Refresh devices from the UI.\n\t- Re-check active crosspoints and gain values.\n\n## Links\n\n- Repository: https://github.com/drajabr/audio-matrix-router\n- Releases: https://github.com/drajabr/audio-matrix-router/releases\n- Pages preview: https://drajabr.github.io/audio-matrix-router/\n\n## License\n\nMIT License. See LICENSE.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrajabr%2Faudio-matrix-router","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrajabr%2Faudio-matrix-router","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrajabr%2Faudio-matrix-router/lists"}