Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 11 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • 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
@eepykate
Copy link

eepykate commented Jul 4, 2020

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

I'm confused, what do you mean by this?

For me, the device is there, but there's no volume feedback line. There's also no enable button, even if i right click everything.

No matter what I do, I cannot manage to get womic to appear as a pulseaudio device that I can select in an app like discord, however this command which uses alsa (arecord -c 1 -r 48000 -f S16_LE -D "hw:CARD=Loopback,DEV=1,SUBDEV=0" foo.wav) works fine.

my output of pactl list: http://0x0.st/iyTm.txt

@eepykate
Copy link

eepykate commented Jul 4, 2020

Update: I ended up trying https://github.com/pzmarzly/mic_over_mumble and it worked easily.

@diyism
Copy link
Author

diyism commented Jul 5, 2020

Update: I ended up trying https://github.com/pzmarzly/mic_over_mumble and it worked easily.

Thanks for your feedback.
WoMic is close source, while Mumble is open source,
so in armbian(arm64) system, I can only use Mumble.

@eepykate
Copy link

eepykate commented Jul 7, 2020

(I know I'm replying to edits that are now gone)

It's been extremely stable for me. It was also super easy to set up since the script does most of the work. I basically just set mumble up (basically changing quality/latency to be max/min) like it tells me to (It even automatically opens it), then every time after that I just need to run the script and connect from my phone using plumble.

@3DRaven
Copy link

3DRaven commented Mar 13, 2021

Do not need any software (unsafe blobs in you linux! :))
If you have jack3.5-jack3.5 cable. You can just setup application from google market as

https://play.google.com/store/apps/details?id=com.ozan.netbooster&hl=en_ZA&gl=US

This app can route mic input to audio output of your phone, so, you can connect phone output by jack3.5-jack3.5 cable to PC mic input. It is all :)

@JINMORIX
Copy link

JINMORIX commented Jun 2, 2023

can someone help me im dumb !

@juniorohanyere
Copy link

juniorohanyere commented Dec 5, 2023

After trying the micclient-x86_64.AppImage"(on amd64 linux pc)+Wo Mic(on android), nothing worked, apart from arecord. However, I was still playing around with the fix, until I did killed pulseaudio and started it again, then the Buitl-in Audio appeared in the pavucontrol settings (which does not usually appear, usually Built-in Audio Analog Stereo and Loopback). And then it works. I played with the success for sometime using cheese, and then decided to give it a try on Whatsapp, then I noticed some obnoxious sound result, until it no longer works. Worst part was that even my built-in audio output no longer works. I made a reboot, and all the settings were gone. I don't know how I came about the Built-in Audio, as it's the obvious solution. So please if there's a definite way of activating the Builtin-Audio instead of Builtin-Audio Analog stereo, I'll be glad to know.

Plus after rebooting, even arecord no long records any sound using the micclient loopback device, which initially does. Please I really need this to work, or if there's another best option for me, since my laptop's mic is malfunctioning. Thanks

EDIT:
arecord now works with the micclient loopback device
Would have tried out mumble but the plumble is not available for my andriod device, it says it's meant for older devices

@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

@juniorohanyere
Copy link

Thanks, I'll give it a try

@juniorohanyere
Copy link

After successfully installing the audio source application on my andriod device, the app does not open. I'm not sure I understand how it works

@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

the app work like a tray icon , just open the app one time and u will see waiting for connection !

@juniorohanyere
Copy link

the app does not open, definitely it crashes on my phone

@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

Device with at least Android 4.0 (API level 14), but fully tested only on Android 10 (API level 29) so your mileage may vary.

@juniorohanyere
Copy link

My device is based on Android 9 Pie

@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

actually worked on my phone with android 4 and custom rom android 6

@juniorohanyere
Copy link

😥

@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

share me a record !

@juniorohanyere
Copy link

WhatsApp.Video.2023-12-06.at.3.39.45.PM.mp4

@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

so sad : ( , i will try the app on my friend phone

@juniorohanyere
Copy link

thanks @JINMORIX

@JINMORIX
Copy link

JINMORIX commented Dec 6, 2023

386826786_648366290838889_8039828218965543393_n

its working , he also using wo mic

@juniorohanyere
Copy link

do you think it has something to do with installing from the prebuilt app provided on the release page

@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