Last active
May 11, 2023 19:36
-
-
Save italic-r/619c4003ccd6422dc5960106ac10069e to your computer and use it in GitHub Desktop.
ALSA - Signalink USB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Use this file for a user-configurable ALSA soundcard setup. | |
# Place in the user's home folder (/home/ham/.asoundrc). | |
# This file is built for a Tigertronics Signalink USB, a USB | |
# soundcard designed to interface a computer with an amateur | |
# radio transceiver for digital mode operation. This | |
# configuration allows multiple programs to access the same | |
# sound device simultaneously without blocking the device. | |
# This configuration is built on a custom modprobe | |
# configuration file (/etc/modprobe.d/alsa-base.conf) to | |
# force consistent device labeling. While adjusting parameters, | |
# it is not necessary to reboot or log out to see changes. | |
# Simply save this file, restart the programs using the card | |
# and select the device in the software (if naming changed). | |
# Some notes about the Signalink USB: | |
# Different programs require different sampling rates, ie | |
# WSJT-X _requires_ 48 kHz sampling (thanks to K9YC for the tip!), | |
# while fldigi allows custom sampling rates (given the device | |
# supports them). The native sampling rate for the SLUSB is | |
# 44.1 kHz, but it supports up to 48 kHz. For this config, | |
# I used 48 kHz to satisfy WSJT-X, then adjusted fldigi to match. | |
# Other software requires various numbers of channels, ie qsstv. | |
# While the device has only 1 channel for each input and output, | |
# ALSA may split or join streams with plugins. | |
##################################################################### | |
# Software settings: | |
##################################################################### | |
# Fldigi: | |
# Mono or stereo io | |
# In stereo mode, tx audio is on right channel, so will require | |
# channels to be swapped in audio settings. | |
# WSJT-X: | |
# Mono or stereo io | |
# In stereo mode, tx audio is on right channel only. | |
# Rx audio may use either channel but not both or mono. | |
# QSSTV: | |
# Stereo-only io | |
# Rx audio pulls from one channel only, so splitting the stream to | |
# stereo mode results in audio in all cases. | |
# Tx audio is only one channel, likely right, so must be swapped in | |
# audio settings. | |
# Direwolf: | |
# Mono or stereo io, depending on the number of modems to run. | |
# Each modem requires its own tx and rx channel, so channel count | |
# must match. | |
# ARDOP: | |
# Modem requires a special 12ks/s rate, but is able to use | |
# mono (preferred) or stereo io. | |
# SIGNALINK | |
pcm.SIG { | |
type hw | |
card "SIGNALINK" | |
rate 48000 | |
channels 1 | |
nonblock 0 | |
hint.show off | |
hint.description "SLUSB hw device" | |
} | |
pcm.SIG_AUTO { | |
type plug | |
slave.pcm "SIG" | |
hint.show on | |
hint.description "Signalink auto device conversion" | |
} | |
# XONAR U5 | |
pcm.XONAR { | |
type hw | |
card "U5" | |
rate 192000 | |
channels 2 | |
nonblock 1 | |
hint.show off | |
hint.description "Xonar U5" | |
} | |
pcm.XON_AUTO { | |
type plug | |
slave.pcm "XONAR" | |
hint.show on | |
hint.description "XONAR auto device conversion" | |
} | |
# XONAR device is full-duplex stereo. FT-736R uses a stereo jack to input and | |
# output data on opposite channels (right, left respectively). Simple hardware | |
# solution is to run a Y-splitter to I/O ports and downmix to proper channel. | |
pcm.736_TX { | |
type route | |
slave.pcm "XON_AUTO" | |
slave.channels 2 | |
ttable { | |
0.0 0.5 | |
1.0 0.5 | |
0.1 0 | |
1.1 0 | |
} | |
hint.show off | |
hint.description "Mix to left channel" | |
} | |
pcm.736_RX { | |
type route | |
slave.pcm "XON_AUTO" | |
slave.channels 2 | |
ttable { | |
0.0 0 | |
1.0 0 | |
0.1 0.5 | |
1.1 0.5 | |
} | |
hint.show off | |
hint.description "Mix to right channel" | |
} | |
pcm.XON_736 { | |
type asym | |
playback.pcm "736_TX" | |
capture.pcm "736_RX" | |
hint.show on | |
hint.description "XONAR device for FT-736R" | |
} | |
# SDR Loopback device | |
# This device consumes audio from SDR_IN and spits it out SDR_OUT. | |
# This allows local software to consume audio exactly as if it were | |
# coming from a physical card. As with the Signalink, use dmix and | |
# dsnoop plugins to allow multiple clients to use the device. Since | |
# there is no transmit capability in most SDRs, only one consumer | |
# is needed and no transmit audio is needed. | |
pcm.SDR_IN { | |
type hw | |
card "SDRLB" | |
device 0 | |
subdevice 0 | |
format "S16_LE" | |
channels 1 | |
rate 48000 | |
nonblock 1 | |
hint.show on | |
hint.description "Send nc packets here" | |
} | |
pcm.SDR_OUT { | |
type hw | |
card "SDRLB" | |
device 1 | |
subdevice 0 | |
format "S16_LE" | |
channels 1 | |
rate 48000 | |
nonblock 1 | |
hint.show on | |
hint.description "SDR Rx audio" | |
} | |
pcm.SDR_ARDOP { | |
type plug | |
slave { | |
pcm "SDR_OUT" | |
} | |
hint.show on | |
hint.description "SDR device for ARDOP" | |
} | |
pcm.SDR_IN_AUTO { | |
type plug | |
slave { | |
pcm "SDR_IN" | |
} | |
hint.show on | |
hint.description "Send nc packets here" | |
} | |
pcm.SDR_OUT_AUTO { | |
type plug | |
slave { | |
pcm "SDR_OUT" | |
} | |
hint.show on | |
hint.description "Connect decoder here" | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# udev rules for soundcard names. This file does nothing but make | |
# sound device names more human-readable. Place in: | |
# /etc/udev/rules.d/70-alsa-permanent.rules | |
SUBSYSTEM!="sound", GOTO="usb_audio" | |
ACTION!="add", GOTO="usb_audio" | |
ATTRS{idVendor}=="08bb", ATTRS{idProduct}=="2904", ATTR{id}="SIGNALINK" | |
ATTRS{idVendor}=="046d", ATTRS{idProduct}=="081a", ATTR{id}="WEBCAM" | |
ATTRS{idVendor}=="0b05", ATTRS{idProduct}=="17f5", ATTR{id}="U5" | |
ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0a87", ATTR{id}="G935" | |
LABEL="usb_audio" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This is a configuration file for modprobe (/etc/modprobe.d/alsa-base.conf) | |
# to force specific device ordering and indexing. This then exposes the devices | |
# to ALSA in the proper order regardless of the number of devices plugged in or | |
# the order they were connected. | |
# 0: HDMI | |
# 1: SIGNALINK: 08bb:2904 | |
# 2: Asus Xonar U5: 0b05:17f5 | |
# 3: WEBCAM: 046d:081a | |
# 4: SDR_LB: virtual loopback device | |
# 5: Logitech G935: 046d:0a87 | |
# Force snd-usb-audio to be second loaded sound module in modprobe | |
options snd slots=,snd-usb-audio,snd-aloop | |
# Force index order of specific sound cards for predictable ordering and indexing | |
options snd-usb-audio index=1,2,3,5 vid=0x08bb,0x0b05,0x046d,0x046d pid=0x2904,0x17f5,0x081a,0x0a87 | |
options snd-aloop enable=1 index=4 pcm_substreams=4 id=SDRLB | |
# Hide on-board Intel audio chip (I don't use it) | |
options snd-hda-intel probe_mask=0xffff |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment