{"id":16573349,"url":"https://github.com/zoomoid/waveman","last_synced_at":"2025-04-13T13:32:49.974Z","repository":{"id":47175174,"uuid":"205402878","full_name":"zoomoid/waveman","owner":"zoomoid","description":"Generates visual audio representation with python + soundfile + libcairo","archived":false,"fork":false,"pushed_at":"2024-03-25T12:52:03.000Z","size":128,"stargazers_count":3,"open_issues_count":0,"forks_count":2,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-03-27T04:33:31.517Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Python","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/zoomoid.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,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2019-08-30T14:54:07.000Z","updated_at":"2024-06-17T13:37:18.000Z","dependencies_parsed_at":"2024-11-15T15:46:34.880Z","dependency_job_id":"e9dafcfd-0304-443d-bda6-96ce506d6cec","html_url":"https://github.com/zoomoid/waveman","commit_stats":{"total_commits":118,"total_committers":3,"mean_commits":"39.333333333333336","dds":"0.10169491525423724","last_synced_commit":"3d4d14a0a111bcabbd4bf0721c52d685e3920794"},"previous_names":[],"tags_count":54,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomoid%2Fwaveman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomoid%2Fwaveman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomoid%2Fwaveman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoomoid%2Fwaveman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoomoid","download_url":"https://codeload.github.com/zoomoid/waveman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248721208,"owners_count":21151063,"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":[],"created_at":"2024-10-11T21:41:57.037Z","updated_at":"2025-04-13T13:32:49.946Z","avatar_url":"https://github.com/zoomoid.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# wave-man\n\n![Demo waveform visualization](demo/demo.png \"Demo waveform visualization\")\n\nGenerates visualizations of audio files like SoundCloud with some Python magic.\n\nRequires `libsndfile` \u0026 `ffmpeg` to read audio formats other than pure waves if used in host mode.\n\nOtherwise just run the docker image and mount the audio file as volume.\n\n```bash\nusage: main.py [-h] --input INPUT [--steps STEPS] [--totalwidth TOTALWIDTH]\n               [--stepwidth STEPWIDTH] [--height HEIGHT] [--output OUTPUT]\n               [--color COLOR] [--rounded ROUNDED] [--mode {avg,max}]\n               [--align {bottom,center}]\n\nCreates cool-lookin audio waveform visualisations to use as assets in players\nand videos.\n\noptional arguments:\n  -h, --help            show this help message and exit\n  --input INPUT         Input file path. Required\n  --steps STEPS         The total number of steps done. [Default 200]\n  --totalwidth TOTALWIDTH\n                        The total width of the image. [Default 2000]\n  --stepwidth STEPWIDTH\n                        Width of each step. Can derive the total width by\n                        providing --steps and --stepwidth. [Default 10]\n  --height HEIGHT       The total height of the image. [Default 128]\n  --output OUTPUT       Output file path. [Default $input]\n  --color COLOR         The fill color for the bars. [Default 'black']\n  --rounded ROUNDED     Rounded corner radius. [Default 0]\n  --mode {avg,max,rounded_avg}      Sample visualization mode. Either 'avg', 'rounded_avg', or 'max'\n                        [Default 'avg']\n  --align {bottom,center}\n                        Vertical bar alignment. Either 'center' or 'bottom'\n                        [Default 'bottom']\n```\n\n## Docker Mode\n\nBuild the Docker image from the provided Dockerfile and run it like this \n\n```bash\n# Build the Docker image yourself OR\n$ docker build -t wave-man:latest src/\n\n# Pull the official image from the Github Docker Registry\n$ docker pull docker.pkg.github.com/occloxium/wave-man/wave-man:latest\n\n# Run wave-man inside the image\n$ docker run -ti -v \u003cDirectory of audio file\u003e:/app/files python3 main.py --input \u003cAudio file\u003e [ARGS...]\n```\n\n## HTTP Server\n\nWave-Man is available as a standalone http backend that waits for an mp3 file to be submitted and returns SVG code according to the config.json file\n\nNote that the URI has to be local, i.e., come from for example a mounted volume when running as a \ncontainer or a valid filename for any mp3 located in ./files.\n\n```\nHTTP/1.1 POST /wavify {\"uri\": \"\u003cURL TO YOUR MP3\u003e\"}\n```\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoomoid%2Fwaveman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoomoid%2Fwaveman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoomoid%2Fwaveman/lists"}