{"id":17928448,"url":"https://github.com/hartwork/visdriver","last_synced_at":"2025-09-18T01:32:18.544Z","repository":{"id":65936011,"uuid":"602829177","full_name":"hartwork/visdriver","owner":"hartwork","description":":cinema: visdriver uses Winamp plug-ins to visualize audio; targets Wine on GNU/Linux primarily","archived":false,"fork":false,"pushed_at":"2025-08-18T16:23:58.000Z","size":426,"stargazers_count":11,"open_issues_count":1,"forks_count":0,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-08-18T18:24:52.064Z","etag":null,"topics":["audio-applications","audio-playback","audio-player","audio-visualization","audio-visualizer","c99","gplv3-licensing","mingw","music-player","music-visualisation","music-visualizer","win32api","winamp","winamp-plugins","winamp-visualization","winamp-visuals","windows","wine"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/hartwork.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"COPYING","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}},"created_at":"2023-02-17T02:49:28.000Z","updated_at":"2025-08-18T16:23:55.000Z","dependencies_parsed_at":null,"dependency_job_id":"db3de9d7-2add-46de-927c-f89fa76793c8","html_url":"https://github.com/hartwork/visdriver","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/hartwork/visdriver","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fvisdriver","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fvisdriver/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fvisdriver/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fvisdriver/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hartwork","download_url":"https://codeload.github.com/hartwork/visdriver/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hartwork%2Fvisdriver/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":275695798,"owners_count":25511349,"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","status":"online","status_checked_at":"2025-09-17T02:00:09.119Z","response_time":84,"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-applications","audio-playback","audio-player","audio-visualization","audio-visualizer","c99","gplv3-licensing","mingw","music-player","music-visualisation","music-visualizer","win32api","winamp","winamp-plugins","winamp-visualization","winamp-visuals","windows","wine"],"created_at":"2024-10-28T21:02:57.595Z","updated_at":"2025-09-18T01:32:18.494Z","avatar_url":"https://github.com/hartwork.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"[![Build on Linux](https://github.com/hartwork/visdriver/actions/workflows/linux-mingw.yml/badge.svg)](https://github.com/hartwork/visdriver/actions/workflows/linux-mingw.yml)\n[![Build on Windows](https://github.com/hartwork/visdriver/actions/workflows/windows-msvc.yml/badge.svg)](https://github.com/hartwork/visdriver/actions/workflows/windows-msvc.yml)\n[![Enforce clang-format](https://github.com/hartwork/visdriver/actions/workflows/clang-format.yml/badge.svg)](https://github.com/hartwork/visdriver/actions/workflows/clang-format.yml)\n\n\n[![screenshots/visdriver_geiss_804x627.png](https://raw.githubusercontent.com/hartwork/visdriver/main/screenshots/visdriver_geiss_804x627.png)](https://github.com/hartwork/visdriver/blob/main/screenshots/visdriver_geiss_804x627.png)\n\n(Re-titled with `wmctrl -r 'Default - Wine desktop' -N 'Geiss @ visdriver (800x600)'`)\n\n\n# What is visdriver?\n\n**visdriver** is\na Wine/Windows application\nthat uses **Winamp plug-ins**\nto **visualize audio** without actual Winamp/WACUP,\nin particular with MinGW on GNU/Linux.\nIt is written in C99,\nuses plain win32api, and\nis licensed under the \"GPL v3 or later\" license.\n\nIt needs:\n- One input plug-in binary\n  (e.g. `in_line.dll`\n  [[source]](https://github.com/jaspervdg/lineinWA)\n  [[binary]](https://home.hccnet.nl/th.v.d.gronde/dev/lineinWA2/)\n  or `in_mad.dll`\n  [[source]](https://sourceforge.net/projects/plainamp/files/in_mad/)\n  [[binary]](https://www.mars.org/home/rob/proj/mpeg/mad-plugin/#install) for MP3 playback),\n- One output plugin binary\n  (e.g. `out_wave_gpl.dll`\n  [[source]](https://sourceforge.net/projects/plainamp/files/out_wave_gpl/)\n  [[binary]](https://sourceforge.net/projects/plainamp/files/Plainamp/0.2.3/)),\n- One vis plugin binary\n  (e.g. `vis_geis.dll`\n  [[source]](https://github.com/geissomatik/geiss)\n  [[binary]](https://github.com/geissomatik/geiss/releases)\n  or `vis_avs.dll`\n  [[source]](https://github.com/grandchild/vis_avs)\n  [[binary]](https://github.com/grandchild/vis_avs/actions)),\n- A MinGW compiler (or Visual Studio),\n- Wine (or Windows),\n- CMake \u003e=3.0 (and potentially GNU make or Ninja).\n\n\n# Download\n\nIf would you like to download ready-to-run Windows binaries\nbuilt by the CI off the latest code on branch `main`,\nthere are two options:\n- [Binaries built by MinGW/GCC](https://github.com/hartwork/visdriver/actions/workflows/linux-mingw.yml?query=branch%3Amain)\n- [Binaries built by Visual Studio](https://github.com/hartwork/visdriver/actions/workflows/windows-msvc.yml?query=branch%3Amain)\n\nJust click the latest workflow run there for either of these, and\nits page will list artifacts for download near the bottom.\n\n\n# How to Compile\n\n## With MinGW/GCC\n\n```console\n# cmake -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-toolchain.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B build\n# make -C build -j$(nproc) VERBOSE=1\n```\n\n## With Visual Studio\n\n```console\n# cmake -G \"Visual Studio 17 2022\" -A Win32 -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B build\n# cmake --build build\n```\n\n\n# How to Run\n\nLet **visdriver** tell you what it needs:\n```console\n# WINEDEBUG=-all wine ./build/visdriver.exe --help\nUsage: visdriver [OPTIONS] --in PATH/IN.dll --out PATH/OUT.dll --vis PATH/VIS.dll [--] [AUDIO_FILE ..]\n   or: visdriver --help\n   or: visdriver --version\n\nvisdriver uses Winamp plug-ins to visualize audio.\n\n    -h, --help        show this help message and exit\n    -V, --version     show the version and exit\n\nPlug-in related arguments:\n    -I, --in=\u003cstr\u003e    input plug-in to use\n    -O, --out=\u003cstr\u003e   output plug-in to use\n    -W, --vis=\u003cstr\u003e   vis plug-in to use\n\nSoftware libre licensed under GPL v3 or later.\nBrought to you by Sebastian Pipping \u003csebastian@pipping.org\u003e.\n\nPlease report bugs at https://github.com/hartwork/visdriver -- thank you!\n```\n\nIf you end up with errors about missing DLLs, copying these files in place\nshould help.  E.g. for MinGW DLLs on Ubuntu 24.04 it would be:\n\n```console\n# cp -v \\\n    /usr/i686-w64-mingw32/lib/libwinpthread-1.dll \\\n    /usr/lib/gcc/i686-w64-mingw32/*-posix/libgcc_s_dw2-1.dll \\\n    /usr/lib/gcc/i686-w64-mingw32/*-posix/libstdc++-6.dll \\\n    .\n```\n\nThe locations of these files vary among GNU/Linux distros.\n\n\n# How to Force Fullscreen Visualization into a Window\n\nIf you would like to force a fullscreen vis plugin into using a Window, there are two options:\n- a) Wine's built-in [virtual desktop](https://wiki.winehq.org/FAQ#How_do_I_get_Wine_to_launch_an_application_in_a_virtual_desktop.3F) feature\n- b) Using [Xephyr](https://en.wikipedia.org/wiki/Xephyr) for a quick way to a nested Xorg server,\n     that your distro has already packaged.\n\nFor Wine's [virtual desktop](https://wiki.winehq.org/FAQ#How_do_I_get_Wine_to_launch_an_application_in_a_virtual_desktop.3F) feature, this wrapper should do:\n```bash\n#! /usr/bin/env bash\nexec wine explorer /desktop=visdriver,1024x768 ./build/visdriver.exe \"$@\"\n```\n\nFor Xephyr, a wrapper script like this should do:\n```bash\n#! /usr/bin/env bash\nset -x -e -u\nNESTED_DISPLAY=:1\nXephyr -screen 1024x768 \"${NESTED_DISPLAY}\" \u0026\nxorg_pid=$!\nkill_xorg() { kill -2 \"${xorg_pid}\"; }\ntrap kill_xorg EXIT\nexport DISPLAY=${NESTED_DISPLAY}\n\nwine ./build/visdriver.exe \"$@\"\n```\n\nIf you need help getting that set up, please reach out.\n\n\n# Known Limitations\n\nPlease expect some rough edges, and potentially even crashes with some plug-ins.\n\nIn particular, known limitations are:\n- Waveform/spectrum needs 16bit stereo samples input, at the moment.\n- Unicode in- and output plug-ins are yet to be supported.\n- `in_linein.dll` (SHA1 `7ab08fcc5bc9ebfcc9a8e3d729fadf2cb05e173a`)\n  of Winamp 5.66 crashes right after loading for an unknown reason.\n\n---\n[Sebastian Pipping](https://github.com/hartwork), Berlin, 2023\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhartwork%2Fvisdriver","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhartwork%2Fvisdriver","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhartwork%2Fvisdriver/lists"}