Skip to content

hartwork/visdriver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Build on Linux Build on Windows Enforce clang-format

screenshots/visdriver_geiss_804x627.png

(Re-titled with wmctrl -r 'Default - Wine desktop' -N 'Geiss @ visdriver (800x600)')

What is visdriver?

visdriver is a Wine/Windows application that uses Winamp plug-ins to visualize audio without actual Winamp/WACUP, in particular with MinGW on GNU/Linux. It is written in C99, uses plain win32api, and is licensed under the "GPL v3 or later" license.

It needs:

Download

If would you like to download ready-to-run Windows binaries built by the CI off the latest code on branch main, there are two options:

Just click the latest workflow run there for either of these, and its page will list artifacts for download near the bottom.

How to Compile

With MinGW/GCC

# cmake -DCMAKE_TOOLCHAIN_FILE=cmake/mingw-toolchain.cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B build
# make -C build -j$(nproc) VERBOSE=1

With Visual Studio

# cmake -G "Visual Studio 17 2022" -A Win32 -DCMAKE_BUILD_TYPE=RelWithDebInfo -S . -B build
# cmake --build build

How to Run

Let visdriver tell you what it needs:

# WINEDEBUG=-all wine ./build/visdriver.exe --help
Usage: visdriver [OPTIONS] --in PATH/IN.dll --out PATH/OUT.dll --vis PATH/VIS.dll [--] [AUDIO_FILE ..]
   or: visdriver --help
   or: visdriver --version

visdriver uses Winamp plug-ins to visualize audio.

    -h, --help        show this help message and exit
    -V, --version     show the version and exit

Plug-in related arguments:
    -I, --in=<str>    input plug-in to use
    -O, --out=<str>   output plug-in to use
    -W, --vis=<str>   vis plug-in to use

Software libre licensed under GPL v3 or later.
Brought to you by Sebastian Pipping <sebastian@pipping.org>.

Please report bugs at https://github.com/hartwork/visdriver -- thank you!

If you end up with errors about missing DLLs, copying these files in place should help. E.g. for MinGW DLLs on Ubuntu 24.04 it would be:

# cp -v \
    /usr/i686-w64-mingw32/lib/libwinpthread-1.dll \
    /usr/lib/gcc/i686-w64-mingw32/*-posix/libgcc_s_dw2-1.dll \
    /usr/lib/gcc/i686-w64-mingw32/*-posix/libstdc++-6.dll \
    .

The locations of these files vary among GNU/Linux distros.

How to Force Fullscreen Visualization into a Window

If you would like to force a fullscreen vis plugin into using a Window, there are two options:

  • a) Wine's built-in virtual desktop feature
  • b) Using Xephyr for a quick way to a nested Xorg server, that your distro has already packaged.

For Wine's virtual desktop feature, this wrapper should do:

#! /usr/bin/env bash
exec wine explorer /desktop=visdriver,1024x768 ./build/visdriver.exe "$@"

For Xephyr, a wrapper script like this should do:

#! /usr/bin/env bash
set -x -e -u
NESTED_DISPLAY=:1
Xephyr -screen 1024x768 "${NESTED_DISPLAY}" &
xorg_pid=$!
kill_xorg() { kill -2 "${xorg_pid}"; }
trap kill_xorg EXIT
export DISPLAY=${NESTED_DISPLAY}

wine ./build/visdriver.exe "$@"

If you need help getting that set up, please reach out.

Known Limitations

Please expect some rough edges, and potentially even crashes with some plug-ins.

In particular, known limitations are:

  • Waveform/spectrum needs 16bit stereo samples input, at the moment.
  • Unicode in- and output plug-ins are yet to be supported.
  • in_linein.dll (SHA1 7ab08fcc5bc9ebfcc9a8e3d729fadf2cb05e173a) of Winamp 5.66 crashes right after loading for an unknown reason.

Sebastian Pipping, Berlin, 2023

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy