MDKwiki 🌻

main page, file list (847), stats, random article

# VoIRC

VoIRC (short for Voice over Internet Relay Chat) is a project that allows users to transmit voice over IRC by encoding a low bitrate audio codec over text. It works better than you would expect despite it being a joke. I like it and more importantly think it's funny. It was created by Adrian Siekierka (asiekierka on GitHub).

Its only glaring flaw is being written in an older version of Nim. While it seems easy enough to install Nim with little destruction to your computer, the builds appear to either randomly break or need library nursing as the march of technological «progress» continues. The use of ncurses is also a ding; I've had issues on some terminals with F12 being recognized.

This is how messages appear to a conventional IRC client (try playing it, though you'll need to strip the newlines):

VoiRC01]TCgTk[]V6WA|&Id1_X..M+@hm(/'*Ts?)iQa^0AT4Nkkk\)OG-\Xvfuk/)
@+>zs_D<J=C#>7,Ym8#4MG/+wda=FSAxgjq>i}m%QpSd:LuxDc$8qzgdT:i]Vx@N)%
ezwL?U2rw"QpHR]Nb;4fQKA#msM.A+F:A@V:8\u1DF>xnakV@<`PZ)XhR^,nw]u&.L
^Bj9A8l>e5a]usf7i~$ns\,0RZ_!<hU<tPug&\Z?3vt<9b($u]igEzZD73'@i~0JgG
(0r58$8c2Isr3LC0T]v*Cy/UdjN>k!q[\vA41+a~5hIO?>lHu>+J(4w:?|*p3Xr~t%
&6^)1@J^pBJk`}wHJ8LGaDJ<Q}TbVUi^]X5ENZJVrW_"X(XcV'dD$GP^lxa+Ne

There are great side effects to text messages being voice: you can splice up audio much like a cassette tape, and conventional IRC logs and bouncers allow conversations to be replayed if missed.

If the links in this file are broken, see the bottom for archive.org URLs, which presumably have a longer life.

# Running

It is possible to run VoIRC without building it by running a compiled build:

  1. Download the provided archive from VoIRC's author (archive links below):

https://asie.pl/files/voirc_build2_linux_x64.zip

  1. Edit launch.sh and change the irc.aspie.pl server and #voirc channel to appropriate values.

  2. Navigate to the directory in a terminal and run the script:

$ ./launch.sh <nick>

  1. Once connected to the server, press F12 to toggle microphone broadcast.

TROUBLESHOOTING: If you receive an error about the required files being missing, I recommend you try and build the project; see instructions below.

# Building

There are two parts that require building: the VoIRC Nim project itself, and then the two libraries (libsoundio and libcodec2) that it depends on.

I have failed to get VoIRC working with my own builds of the two libraries, so I have also included the pre-built versions provided by the author of VoIRC.

The following are complete build instructions.

  1. Because VoIRC requires an older version of Nim, I recommend installing Nim with the official choosenim utility. It only places files in your home folder and can be easily removed after compiling.

Install the Nim version manager, choosenim:

$ curl https://nim-lang.org/choosenim/init.sh -sSf | sh

In every open terminal, add Nim to PATH:

$ export PATH="$HOME/.nimble/bin:$PATH"

Then install 0.19.2 (it will most likely need to compile; ensure you have build tools installed):

$ choosenim 0.19.2

  1. Download the VoIRC source code (if you wish to compile the two libraries, see the instructions below):

https://github.com/asiekierka/voirc

And the libsoundio and libcodec2 builds (disregard the VoIRC build in this case):

https://asie.pl/files/voirc_build2_linux_x64.zip

... or source code:

https://launchpad.net/ubuntu/+archive/primary/+sourcefiles/codec2/0.8.1-2/codec2_0.8.1.orig.tar.xz https://github.com/andrewrk/libsoundio/archive/1.1.0.tar.gz

  1. Ensure you have all the required dependencies; please research the appropriate packages under your distribution:
  1. In the directory containing the VoIRC source code, install the dependencies, answering y to every question:

$ nimble install irc soundio ncurses

TROUBLESHOOTING: If you receive an error about failing to load libcrypto.so or libssl.so, link the latest installed version to the current directory and adjust the library path:

 $ ln -s /usr/lib/x86_64-linux-gnu/libcrypto.so.3 libcrypto.so.1.1
 $ ln -s /usr/lib/x86_64-linux-gnu/libssl.so.3 libssl.so.1.1
 $ LD_LIBRARY_PATH=. nimble install irc soundio ncurses
  1. Build the project:

$ make

  1. When running, VoIRC requires libsoundio.so and libcodec2.so to be present in the library path. First, copy the .so files you built (or downloaded) into the same directory where the new voirc build can be found, then run:

$ LD_LIBRARY_PATH=. ./voirc <host> <nick> <channel>

TROUBLESHOOTING: If you receive an error about failing to load libncursesw.so, check the directory of the library file on your system (as root):

 $ ldconfig -p | grep libncurses
 libncursesw.so (libc6,x86-64) => /usr/lib/libncursesw.so

And then update the LD_LIBRARY_PATH to reflect it:

$ LD_LIBRARY_PATH=.:/usr/lib ./voirc <host> <nick> <channel>

# Building libsoundio

libsoundio is a straight forward cmake project, however changes in GCC require that additional flags be used.

  1. Extract the libsoundio source code (URL found above).

  2. In the directory of libsoundio's source code, create the build directory and configure cmake:

 $ mkdir build && cd build
 $ cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
 -DCMAKE_C_FLAGS="-Wno-error=switch"
  1. Build the library:

$ make

  1. Copy the built .so file to the root of VoIRC's source folder and name it libsoundio.so.

# Building libcodec2

libcodec2 is also a straight forward cmake project, however changes in GCC also require that additional flags be used.

  1. Extract the libcodec2 source code (URL found above).

  2. In the directory of libcodec2's source code, create the build directory and configure cmake:

 $ mkdir build && cd build
 $ cmake .. -DCMAKE_POLICY_VERSION_MINIMUM=3.5 \
 -DCMAKE_INSTALL_PREFIX=$HOME/opt/libcodec2 \
 -DCMAKE_C_FLAGS="-Wno-error=incompatible-pointer-types \
 -Wno-error=implicit-function-declaration -fcommon"
  1. Build the library:

$ make

  1. Copy the built .so file to the root of VoIRC's source folder and name it libcodec2.so.

# Archive

If any of the VoIRC URLs are now broken, try this mirror:

https://archive.org/details/voirc_build2_linux_x64

https://archive.org/details/voirc-src-be94145

# Credits and Notes


This page was last edited on 2026-09-13 21:35:27.

All original text, code, images and content on the MDKwiki is CC0 1.0 - we have a Git and an RSS feed that can be followed.

Let there be peace on Earth.

τ