This is an old revision of the document!
Table of Contents
Audio Recording With Linux
Choosing the right jack
The microphone jack
In the 70s - at the time of analog amplifiers, in the pre-computer age - the standard jack for microphones were the mono one, with the diameter of 1/4 inches (6,35 mm). Only two conductors were present: the tip for the signal and the sleeve for the ground. This is the so called TS jack:
The natural evolution of that jack, is the 3.5 mm TS mono jack:
These jacks have only two poles, because they were used mainly with dynamic microphones (see below) which do not require any external power supply, or with condenser microphones with an integrated battery, where the battery is sufficient to provide the required power to the mic.
With the advent of audio in personal computers, electret microphones have become very popular. Very often these microphones integrate a preamplifier that requires a supply voltage or they require a bias current necessary to power the internal Field Effect Transistor (FET) buffer; these currents are in the range of 2.5 - 5.0 volt. The solution adopted e.g. by the early Sound Blaster sound cards, was to use a three poles microphone socket, so requiring a 3.5 mm TRS jack (Tip, Ring and Sleeve) despite the microphone being mono.
Sometimes a separate pole for supplying the voltage is not available (e.g. when you want to connect a stereo microphone using a three poles TRS jack, or when you use a four poles TRRS jack for an headset with earphones and mic), so it is common practice to supply the bias voltage through the tip, on the same connector for the microphone signal.
In the following picture you see the de facto standard imposed by Creative Labs in the 90s on their SoundBlaster audio cards (from SB16 to AWE64), and the AC'97 standard proposed in 1997 by Intel. Notice that the bias current can be different, varying from 2.5 to 5 V, and sometimes it can be controlled in software.
Socket on modern notebooks and smartphones
Recent laptops and smartphones have a single 3.5 mm socket for the headphones and the microphone. It requires a TRRS jack (meaning tip, ring, ring and sleeve) because it have to accomodate two audio lines, one microphone line and the ground. Unfortunatelly there exist two competing standards about the jack pinout, the CTIA and the OMTP one:
The CTIA (Cellular Telephone Industries Association) pinout is the one used in modern smartphones, whereas the Open Mobile Terminal Platform was used by old Nokia, Sony and Samsung phones (till 2012).
Headphone/microphone cable splitter
So if you have a recent notebook with the CTIA combined socket, yuo have to use a cable splitter to connect a standard microphone jack. Here it is the electrical schema of such adapter cable:
Dynamic, condenser and electret microphones
There are basically three types of microphones on the market: dynamic, condenser and electret ones. In the world of computers and smartphones, the electret ones are by far the most common type.
Dynamic
A small movable induction coil, positioned in the magnetic field of a permanent magnet, is attached to the diaphragm. The sound wave moves the diaphragm and the coil moves in the magnetic field, producing a varying current in the coil through electromagnetic induction. No power is required: the current is carried directly on two poles to the mic input. These microphones generally have a 1/4“ mono jack.
Condenser
The diaphragm acts as one plate of a capacitor, and the vibrations produce changes in the distance between the plates. The plates are biased with a fixed charge, so the voltage maintained across the capacitor plates changes with the vibrations in the air.
This type of microphone requires a power source, provided either as phantom power by the equipment via microphone inputs or from a small battery inside the mic. Generally these type of microphones have an XLR connector when they are intended to be connected to professional audio equipment, which will provide the phantom power. If they have an internal battery they may have the old 1/4” mono jack.
As it is easy to imagine, there are many possible problems regarding the supply of phantom power to dynamic microphones (which do not require it, but can be instead damaged by it) or to condenser microphones which have a power provided by a built-in battery. Problems are exacerbated in turn by audio devices that can supply or not such power and by mechanically compatible cables and connectors, but with incompatible electrical characteristics.
Electret
Unlike capacitor ones, electret microphones do not require polarizing voltage, but generally they contain an integrated preamplifier that does require power. In this cases a TRS jack can be used, where the ring carries power via a resistor from, normally, a 5 V supply in the computer (often incorrectly called polarizing power or bias). Generally these microphones built to be plugged into computers and electronic audio devices, have a TRS 3.5 mm jack, carrying the mic signal and the required current.
External mic on the Acer Travelmate B113-E
Running Debian GNU/Linux 9 Stretch, it seems that the use of the headphone/microphone split cable does not abilitate the use of the microphone. In fac, if you run the acpi_listen tool (from the acpid Debian package), you can see when you insert the split cable:
jack/headphone HEADPHONE plug jack/headphone HEADPHONE unplug
but nothing is reported about the plug of a microphone. Beside that, no bias current appear on the microphone jack. The solution is to run the hdajackretask tool (from the alsa-tools-gui Debian package), then force the connection of Pin 0x19:
- Enable the Show unconnected pins option.
- Click Pin ID: 0x19 ⇒ Override ⇒ Microphone.
- Apply now (it asks for the root password, as it has to run a script with superuser privileges).
the running acpi_listen will print:
jack/microphone MICROPHONE plug
Now you can also measure a bias current of 2.85 V between the ground (sleeve) and the ring or the tip.
Is not clear how to disable the external microphone: even setting Pin 0x19 to Not connected does not generate the ACPI microphone unplug event, and the bias current is not cleared. May be after a reboot?
Wireless microphone
Ugreen USB audio adapter
The device is detected by the Linux Kernel 4.9.0 in this way:
usb 2-1.3: new full-speed USB device number 5 using ehci-pci usb 2-1.3: New USB device found, idVendor=0d8c, idProduct=0024 usb 2-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 2-1.3: Product: USB Advanced Audio Device usb 2-1.3: Manufacturer: C-Media Electronics Inc. input: C-Media Electronics Inc. USB Advanced Audio Device as /devices/pci0000:00/0000:00:1d.0 /usb2/2-1/2-1.3/2-1.3:1.3/0003:0D8C:0024.0004/input/input18 hid-generic 0003:0D8C:0024.0004: input,hidraw2: USB HID v1.11 Device [C-Media Electronics Inc. USB Advanced Audio Device] on usb-0000:00:1d.0-1.3/input3
Launching alsamixer and hitting F6 you can select the USB Advanced Audio Device sound card. Hit F4 to view the only one capture device, i.e. the microphone input line. Press Space to enable/disable the capture and Up/Down arrows to increase/decrease the gain.
The microphone socket is a 3.5 mm TRS type (three poles), it provides a bias current of 2.6 V on both the tip and the ring, so it is advisable, as reported in the device manual, to NOT use a simple two poles mono jack (TS type), because it will short-circuit the bias current on the ring with the ground on the sleeve.
Problem: silence gaps using a cheap USB dongle
I was unable to use the microphone connector on my Acer TravelMate, so I tried to use an USB dongle, marked LinQ. The device was detected by the Linux Kernel 4.9.0:
usb 2-1.3: new full-speed USB device number 9 using ehci-pci usb 2-1.3: New USB device found, idVendor=0c76, idProduct=1607 usb 2-1.3: New USB device strings: Mfr=0, Product=1, SerialNumber=0 usb 2-1.3: Product: USB Headphone Set input: USB Headphone Set as /devices/pci0000:00/0000:00:1d.0 /usb2/2-1/2-1.3/2-1.3:1.3/0003:0C76:1607.0004/input/input92 hid-generic 0003:0C76:1607.0004: input,hidraw2: USB HID v1.00 Device [USB Headphone Set] on usb-0000:00:1d.0-1.3/input3
The USB audio adapter worked quite nicely at playing audio, I use it on a QNAP TS-120 NAS, transformed into a media player installing Debian GNU/Linux on it. The Linux kernel and the ALSA audio subsystem works well on setting the levels for playback.
Once started Audacity, I was able to select the microphone line of the USB dongle as a capture device:
Recording a sample track revealed an annoying problem: about every 0.4 seconds you can see a gap of silence in the audio track of about two hundredths of a second. The audio track is unusable!