{"id":26328571,"url":"https://github.com/remyzerems/alsa-osc","last_synced_at":"2025-07-11T03:33:15.506Z","repository":{"id":282329674,"uuid":"948221028","full_name":"remyzerems/alsa-osc","owner":"remyzerems","description":"Control audio interface ALSA parameters (volume, mute, record...) using OSC","archived":false,"fork":false,"pushed_at":"2025-03-14T01:06:57.000Z","size":8,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-17T00:47:59.842Z","etag":null,"topics":["alsa","alsamixer","audio","audio-interface","audio-interface-linux","audio-interface-tool","linux","osc"],"latest_commit_sha":null,"homepage":"","language":"Python","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/remyzerems.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}},"created_at":"2025-03-14T00:28:45.000Z","updated_at":"2025-03-14T01:18:43.000Z","dependencies_parsed_at":"2025-03-14T04:00:19.095Z","dependency_job_id":null,"html_url":"https://github.com/remyzerems/alsa-osc","commit_stats":null,"previous_names":["remyzerems/alsa-osc"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/remyzerems/alsa-osc","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remyzerems%2Falsa-osc","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remyzerems%2Falsa-osc/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remyzerems%2Falsa-osc/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remyzerems%2Falsa-osc/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/remyzerems","download_url":"https://codeload.github.com/remyzerems/alsa-osc/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/remyzerems%2Falsa-osc/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264721525,"owners_count":23653949,"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":["alsa","alsamixer","audio","audio-interface","audio-interface-linux","audio-interface-tool","linux","osc"],"created_at":"2025-03-15T21:17:37.735Z","updated_at":"2025-07-11T03:33:15.476Z","avatar_url":"https://github.com/remyzerems.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# alsa-osc bridge\nControl audio interface ALSA parameters (like volume, mute, record...) using OSC protocol.\n\n# What is it for ?\nThis script allows controlling any available parameter of any audio interface connected to a Linux computer running ALSA audio backend.\nThe control is made using [OSC protocol](https://fr.wikipedia.org/wiki/Open_Sound_Control) commands.\n\nIn other words, you can for example install [TouchOSC](https://play.google.com/store/apps/details?id=net.hexler.lex\u0026hl=fr) or [OSC Controller](https://play.google.com/store/apps/details?id=com.ffsmultimedia.osccontroller\u0026hl=fr) on your Android phone and control the playback volume of your computer.\n\n# Who is this for ?\nIt's intended to be used by audio engineers or music makers, but could of course be used by many other people who'd like to control their audio interface parameters from an OSC capable application/device.\n\n\n# Prerequisites\nIn order to get this working, you need to have Python3 installed which should already be installed if you're using Linux.\nYou also need to have pip3 installed. It's the Python package manager.\n\nThen you need to install the Python libraries\n* pyalsaaudio\n```bash\npip3 install --no-cache-dir --upgrade pyalsaaudio\n```\n* python-osc\n```bash\npip3 install python-osc\n```\n\n# Installing\nSimply download the alsa-osc files and place the files in the folder of you choice.\n\n# Running\nOpen a terminal.\nUsing cd command, move to the folder where the script files are stored and run the script:\n```bash\npython3 alsa-osc.py\n```\n\nThe script enumerates all the OSC routes found, that you can call to change a parameter for example:\n```bash\nCreating OSC routes for ALSA controls:\nAudio interface: USB Audio CODEC\n        'PCM' control\n                Volume control route: /alsa/interface/USB Audio CODEC/PCM\n                        Channel 0 control: /alsa/interface/USB Audio CODEC/PCM/CH0\n                        Channel 1 control: /alsa/interface/USB Audio CODEC/PCM/CH1\n                        Min value: 0\n                        Max value: 128\n                Volume control in dB route: /alsa/interface/USB Audio CODEC/PCM/dB\n                        Channel 0 control: /alsa/interface/USB Audio CODEC/PCM/dB/CH0\n                        Channel 1 control: /alsa/interface/USB Audio CODEC/PCM/dB/CH1\n                        Min value: -128.0\n                        Max value: 0.0\n                Mute control route: /alsa/interface/USB Audio CODEC/PCM/mute\n                        1 to mute, 0 to unmute\n\nServing OSC on ('0.0.0.0', 8000)\n```\n\nOn the OSC controller, you'll have to type in the routes so that the software knows which route to use to control a given parameter.\n\n# Testing\nIf you don't have an OSC controller at hand, you can run the test-alsa-osc.py script which will call a route.\nYou'll have to tweak it a little bit so that it matches the routes found on your interfaces.\nChange those lines to match what has been detected from your interfaces.\n```python\ncard_name = \"USB Audio CODEC\"  # Name of the audio interface\ncontrol = \"PCM\"  # ALSA control name (e.g. \"Master\", \"PCM\", etc.)\n```\n\nThen run the script:\n```bash\npython3 test-alsa-osc.py\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremyzerems%2Falsa-osc","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fremyzerems%2Falsa-osc","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fremyzerems%2Falsa-osc/lists"}