Sound System Setup for Acoustic Guitar Recording and Streaming #
This is my rather unprofessional sound system setup for internally recording and streaming guitar performances on my computer.
In summary, it consists of an amplifier that picks up sounds through a guitar pickup and then transmits them to my laptop through a 3.5mm cable. Recording and streaming are mainly to the credit of OBS and a PulseAudio setup.
Guitar pickup #
Turn the humbucker pickup volume as high as possible without distortion. To see if there's distortion, listen to the sounds from the amp rather than the computer.
If available, turn up the internal microphone to a relative high level to be able to pick up percussive sounds.
Amplifier #
Turn input volume to maximum (100%), but do not tweak the bass or treble knobs.
Disable the loudspeaker, then turn the output volume to maximum (100%) to ensure highest S/N ratio in the analog transmission.
Cabling is a bit tricky. Thanks to my ThinkPad having only a combo jack, I had to use a 4-pole audio cable.
Recording #
In OBS sources, create an Audio Input Capture (PulseAudio) and choose the input device. Do not rely on global audio devices (the ones in the Audio Mixer by default), since they follow the system default, which may automatically change when unplugging the cable. Global audio devices can be disabled in the settings.
In the Audio Mixer, always keep the PulseAudio capture at 100% volume. When there's a need to otherwise turn input volume up or down, use pavucontrol instead. Doing that in system settings is also okay, but is not as straightforward compared to the dedicated PulseAudio volume controller.
Despite recording internally, there may still be much noise due to analog input. To tackle this, add Noise Suppression to audio filters, preferably with Speex method, which works best for me. Additionally, unplugging my laptop from power seems to magically reduce noise sometimes.
Streaming #
Regular streaming with OBS should be as simple as recording. However, in conferencing software such as Jitsi, where direct access to microphone is the only option, the following PulseAudio tricks need to be applied.
First, create a virtual microphone named VirtualMic which pipes audio from the virtual output device SinkForVirtualMic:
pactl load-module module-null-sink sink_name=Source sink_properties=device.description="SinkForVirtualMic"
pactl load-module module-virtual-source source_name=VirtualMic master=Source.monitor
Then, go to OBS settings > Audio > Advanced, and select SinkForVirtualMic for Monitoring Device.
Finally, open Advanced Audio Properties, locate the actual input device, and switch its Audio Monitoring to Monitor and Output.
Now, VirtualMic can be used as the input device for the conferencing software. To get optimal volume, also make sure volumes for VirtualMic and SinkForVirtualMic are set to 100% in Pavucontrol.
This page is released into the public domain under CC0 1.0.