{"id":16557672,"url":"https://github.com/patrickkfkan/volumio-peppy-alsa-pipe","last_synced_at":"2026-05-31T22:31:42.635Z","repository":{"id":199571751,"uuid":"703178903","full_name":"patrickkfkan/volumio-peppy-alsa-pipe","owner":"patrickkfkan","description":null,"archived":false,"fork":false,"pushed_at":"2023-10-25T20:18:31.000Z","size":381,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-04T23:41:49.491Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/patrickkfkan.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-10-10T18:37:34.000Z","updated_at":"2023-10-10T18:45:31.000Z","dependencies_parsed_at":null,"dependency_job_id":"e2b9688a-ce85-472a-88ca-ff4f9afc6f25","html_url":"https://github.com/patrickkfkan/volumio-peppy-alsa-pipe","commit_stats":null,"previous_names":["patrickkfkan/volumio-peppy-alsa-pipe"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/patrickkfkan/volumio-peppy-alsa-pipe","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickkfkan%2Fvolumio-peppy-alsa-pipe","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickkfkan%2Fvolumio-peppy-alsa-pipe/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickkfkan%2Fvolumio-peppy-alsa-pipe/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickkfkan%2Fvolumio-peppy-alsa-pipe/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/patrickkfkan","download_url":"https://codeload.github.com/patrickkfkan/volumio-peppy-alsa-pipe/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/patrickkfkan%2Fvolumio-peppy-alsa-pipe/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33752286,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-31T02:00:06.040Z","response_time":95,"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":[],"created_at":"2024-10-11T20:08:12.053Z","updated_at":"2026-05-31T22:31:42.616Z","avatar_url":"https://github.com/patrickkfkan.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Peppy ALSA Pipe for Volumio\n\nA Volumio plugin that adds the [Peppy ALSA Plugin](https://github.com/project-owner/peppyalsa) to Volumio's ALSA pipeline. The Peppy ALSA Plugin provides VU meter and spectrum analyzer data via named pipes.\n\n## How it works\n\n1. Audio data enters Volumio's ALSA pipeline.\n2. At some point in the pipeline, the data is duplicated. One copy travels through the rest of the pipeline and arrives at its final destination — the sound card. The other copy gets consumed by the Peppy ALSA plugin.\n4. The Peppy ALSA plugin analyzes the data it receives and dumps VU meter units and spectrum bar values to named pipes. Named pipes, or FIFO, are special files on the system used for inter-process communication. In this context, the FIFO data can be read by software such as [PeppyMeter](https://github.com/project-owner/PeppyMeter) and [PeppySpectrum](https://github.com/project-owner/PeppySpectrum) to display a VU meter and spectrum analyzer respectively.\n\n## FIFO Paths\n\nDefined as follows:\n\n- VU meter units: `/tmp/peppy_meter_fifo`\n- Spectrum data: `/tmp/peppy_spectrum_fifo`\n\n## ALSA Devices\n\nThe default entry point into Volumio's ALSA pipeline is the `volumio` ALSA device. If you click the \"Show Status\" button in the settings page of Peppy ALSA Pipe, you will see there are two additional devices for \"Peppy Bypass\" and \"Peppy Only\".\n\n### Peppy Bypass\n\nPipeline with Peppy ALSA only works for PCM streams. If you throw a native DSD stream into the pipeline, for instance, you will get an error.\n\nPeppy Bypass creates a separate pipeline that does not incorporate Peppy ALSA. The entry point into this pipeline is the `volumioNoPeppy` ALSA device. Players that fail to play with the default `volumio` ALSA device can try with `volumioNoPeppy` instead. The obvious downside is that, without special facilitation, playback through these players will lack visualizer data from Peppy ALSA.\n\n\u003e**FusionDSP**\n\u003e\n\u003ePeppy Bypass is not available when the FusionDSP plugin is enabled. This is because FusionDSP processes audio and outputs PCM streams in the end. ***Tip***: if you encounter playback issues such as MPD hanging, try enabling **Resampling** in FusionDSP settings.\n\n### Peppy Only\n\nWhile \"Peppy Bypass\" is for bypassing Peppy ALSA, \"Peppy Only\" sends audio *only* to Peppy ALSA. The relevant ALSA device for Peppy Only is `peppy_fifo`.\n\nThis is useful for players such as MPD that are able to send audio to more than one ALSA device. By configuring one output to `volumioNoPeppy` (Peppy Bypass) and another to `peppy_fifo` (Peppy Only), you would be able to achieve native playback + visualizer data.\n\n\u003e By default, Peppy ALSA Pipe automatically configures MPD this way, so you don't have to do it yourself. This can be disabled in the settings.\n\n## Exported Vars\n\nPeppy ALSA Pipe exports relevant information through Volumio's `sharedVars` object, which other plugins can access as follows:\n\n```\n// Don't get this wrong!\nconst SHARED_VAR_KEY = 'plugin.peppy_alsa_pipe.exports';\n\n// Constructor of your plugin\nconstructor(context) {\n    const exports = context.coreCommand.sharedVars.get(SHARED_VAR_KEY, null);\n\n    // `exports` will be a JSON string if Peppy ALSA Pipe has fully started; `null` otherwise.\n    if (exports) { \n        const data = JSON.parse(exports);\n\n        // Parsed `data` can also be `null` if Peppy ALSA Pipe was subsequenetly disabled\n        if (data) {\n            const meterFifo = data.fifoPaths.meter;\n            ...\n        }\n    }\n}\n\n/* \ndata: {\n    fifoPaths: {\n        meter: string;\n        spectrum: string;\n    },\n    alsaDevices: {\n        fullPipeline: string;\n        peppyBypass: string | null;\n        peppyOnly: string;\n    }\n}\n*/\n\n```\n\n\u003e To account for different plugin start times and possibility that exported values might change,\nyou should make use of `sharedVars.registerCallback(...)`.\n\n\n## Changelog\n\n0.1.0\n- Initial release\n\n## License\n\nGPL v3.0\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickkfkan%2Fvolumio-peppy-alsa-pipe","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpatrickkfkan%2Fvolumio-peppy-alsa-pipe","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpatrickkfkan%2Fvolumio-peppy-alsa-pipe/lists"}