Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save diyism/5959444e324a1b38509d956beb760e6a to your computer and use it in GitHub Desktop.
Save diyism/5959444e324a1b38509d956beb760e6a to your computer and use it in GitHub Desktop.
Use your android phone as a karaoke microphone in Linux

micclient+WoMic is close source, while Mumble is open source, so on armbian tv, I can only use Mumble+Murmurd+Plumble.

===================="mumble+murmurd"(on arm64 armbian linux tv)+plumble(on android/ios)==================== refer: https://github.com/diyism/mic_over_mumble

sudo apt install mumble mumble-server

sudo systemctl stop mumble-server.service

sudo /lib/systemd/systemd-sysv-install disable mumble-server

wget https://github.com/pzmarzly/mic_over_mumble/raw/master/mic_over_mumble

chmod 744 mic_over_mumble

./mic_over_mumble

#config echo cancellation

#config minimal delay 20ms

#next next and exit and murmurd server started

#muble client started, input a random user name

#install plumble free version on your phone

#start plumble and cancel certification generation

#input a random user name that is different to the mumble client user name on armbian tv

#now you can sing to your phone, and your voice will be played on the armbian tv immediately

===================="micclient-x86_64.AppImage"(on amd64 linux pc)+Wo Mic(on android)====================

If your linux release is using pavucontrol(pulseaudio), you should do:

$ pulseaudio -k
$ killall micclient-x86_64.AppImage
$ sudo modprobe -r snd-aloop
$ sudo vi /etc/pulse/default.pa

add into default.pa:

load-module module-alsa-source device=hw:CARD=Loopback,DEV=1,SUBDEV=0
$ sudo modprobe snd-aloop
$ pulseaudio --start
$ wget https://wolicheng.com/womic/softwares/micclient-x86_64.AppImage
$ sudo chmod 777 /usr/bin/MicClient
$ sudo mv micclient-x86_64.AppImage /usr/bin/MicClient
$ while true; do nohup MicClient -t Wifi 192.168.1.100 > /dev/null 2>&1; sleep 1; done &

192.168.1.100 is my phone IP in local network, you should change it to your phone's LAN ip.

In pavucontrol(Volume Control), in "Input Devices" tab, enable "Built-in Audio"(not "Built-in Audio Analog Stereo") as input device.

And redirect MicClient audio to virtual output device, first in "pavucontrol/Input Devices" to tick "Built-in Audio" to "Set as fallback" and then:

$ pactl load-module module-loopback latency_msec=1

Now with WoMic in android and micclient-x86_64.AppImage in x64 linux, you have a set of home karaoke equipment with near 0 latency.

If you hear many noises, you could try to switch the "WO Mic Settings/Audio source" in your android phone, for example: nexus 6p should choose "Mic(mode 2)".

To disable redirecting MicCleint audio to Output Device:

$ pactl unload-module module-loopback
@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

did u try to enable usb debugging !

@juniorohanyere
Copy link

yeah, of course, you can recheck the screen recording

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment