FT991/A DSP in Linux
Using the FT-991/A USB audio port for voice input in Linux PC
Project goals
Replicate the functionality of VoiceMeeter configuration (Windows) using Linux OS
Use any standard USB computer headset or microphone connected to the computer to process voice audio before sending to radio
Use the radio hands-free and PTT via CAT, Vox, or external switch
Playback pre-recorded CQ calls
Record and playback sound from the radio
Software used
Jack (Jack Audio Connection Kit)
Carla (fully-featured modular audio plugin host, with support for many audio drivers and plugin formats)
Calf Studio Gear (one of the first projects to bring graphical audio plugins to Linux)
ALSA (Advanced Linux Sound Architecture - provides audio and MIDI functionality to the Linux operating system)
Pulseaudio (general purpose sound server intended to run as a middleware between your applications and your hardware devices)
Connections diagram
Linux audio configuration
Obtain PLAYBACK audio devices [Outputs] (card names in bold):
$ aplay -l
**** List of PLAYBACK Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 0: PCH [HDA Intel PCH], device 3: HDMI 0 [HDMI 0]
Subdevices: 1/1
Subdevice #0: subdevice #0
card 1: headset [Sennheiser USB headset], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 2: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
Obtain RECORDING audio devices [Inputs] (card names in bold):
$ arecord -l
**** List of CAPTURE Hardware Devices ****
card 0: PCH [HDA Intel PCH], device 0: ALC269VC Analog [ALC269VC Analog]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 1: headset [Sennheiser USB headset], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 2: CODEC [USB Audio CODEC], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
card 3: Microphone [Logitech USB Microphone], device 0: USB Audio [USB Audio]
Subdevices: 0/1
Subdevice #0: subdevice #0
Starting JACK and audio devices with jack_start.sh script (using card names from the above lists):
-> CODEC is the FT-991A sound card <-
#!/bin/sh
# starting JACK dbus
jackdbus auto >/dev/null &
# starting JACK server
sleep 3
/usr/bin/jackd -m -dalsa -dhw:0 -r44100 -p512 -n2 -H -M -Xraw >/dev/null &
# creating and connecting the default jack sinks
sleep 3
pactl load-module module-jack-sink channels=2 connect=yes
pactl load-module module-jack-source channels=2 connect=yes
sleep 3
pacmd set-default-sink jack_out
pacmd set-default-source jack_in
# creating the audio inputs using card names instead of ids
sleep 3
alsa_in -j HeadsetMic -d hw:CARD=headset -r 48000 >/dev/null &
alsa_in -j Microphone -d hw:CARD=Microphone -r 44100 >/dev/null &
alsa_in -j FromRadio -d hw:CARD=CODEC -r 44100 >/dev/null &
# creating the audio outputs using card names instead of ids
sleep 3
alsa_out -j ExtSpk -d hw:CARD=PCH -r 44100 >/dev/null &
alsa_out -j HeadsetSpk -d hw:CARD=headset -r 48000 >/dev/null &
alsa_out -j ToRadio -d hw:CARD=CODEC -r 44100 >/dev/null &
Carla patchbay
Carla rack
Mike equaliser settings
FT-991/A Menu settings
These are the settings needed to accept mike audio via USB port and use VOX PTT activation (if turned on via F-key or CAT.)
Alternatively PTT can be achieved via CAT (FLrig)
045 AM MIC SELECT -> REAR
048 AM PORT SELECT -> USB
074 FM MIC SELECT -> REAR
077 FM PORT SELECT -> USB
106 SSB MIC SELECT -> REAR
109 SSB PORT SELECT -> USB
142 VOX SELECT -> DATA
146 DATA VOX GAIN -> 90
147 DATA VOX DELAY -> 1000msec