SMMIXER(8)

πŸ“¦
version 1.1.0 Β· 2 versions
  • 1.1.0 Β· alpine 3.24, debian bookworm, debian trixie, nixos 26.05, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking (latest)
  • 1.0.4 Β· fedora 43, fedora 44
, in alpine 3.24, debian bookworm, debian trixie, nixos 26.05, ubuntu jammy, ubuntu noble, ubuntu questing, ubuntu resolute, ubuntu stonking

πŸ’… SMMIXER(8) β€” like, the Linux Programmer's Manual one, bestie ✨

okay so this is smmixer, and it lives in section 8 of the Linux Programmer's Manual. very demure, very manual-page. let's get into it πŸŽ€


✨ NAME ✨

smmixer β€” get/set the Linux soundcard packet radio modem driver mixer. that's it, that's the whole vibe. you're either reading the mixer settings or you're writing them. main character energy either way πŸ’œ


πŸ¦‹ SYNOPSIS πŸ¦‹

smmixer [-i device] [ params ]

🌸 DESCRIPTION 🌸

so what does smmixer actually do? it displays and/or sets the input source, plus the input and output levels, of a soundcard modem port. that's the whole thing. it's giving "tiny utility, big responsibility" πŸ”₯


πŸ‘‘ OPTIONS πŸ‘‘

smmixer accepts the following option β€” yes, just the one, she's lowkey minimal:

  • -i β€” the device argument specifies the soundcard modem device that should be configured or interrogated. it will usually have the following form: sm[0-3]. so like, sm0, sm1, sm2, sm3. pick your fighter 🫢

🌈 PARAMETERS 🌈

okay now the actual fun part, the parameters. heads up though β€” which parameters you get depends on which mixer chip your card has, so scroll to your chip, bestie πŸ‘‡

🌼 The AD1848 (WSS) mixer 🌼

this one accepts the following parameters:

  • ol=val β€” sets the level of the left output to the specified value. legal values are from -100..0dB.
  • or=val β€” sets the level of the right output to the specified value. legal values are from -100..0dB.
  • o=val β€” sets the level of both outputs to the specified value. legal values are from -100..0dB.
  • il=val β€” sets the level of the left input to the specified value. legal values are from 0..43dB.
  • ir=val β€” sets the level of the right input to the specified value. legal values are from 0..43dB.
  • i=val β€” sets the level of both inputs to the specified value. legal values are from 0..43dB.
  • sl=val β€” sets the source of the left input to the specified value. legal values are line, aux1, mic or dac.
  • sr=val β€” sets the source of the right input to the specified value. legal values are line, aux1, mic or dac.
  • s=val β€” sets the source of both inputs to the specified value. legal values are line, aux1, mic or dac.

see the pattern? l = left, r = right, no suffix = both. iconic design tbh πŸ’…

πŸ“ The CT1335 (SB2.x) mixer πŸ“

this one accepts the following parameter β€” singular, she's a one-trick pony and we respect it:

  • o=val β€” sets the output level to the specified value. legal values are from -46..0dB.

🧚 The CT1345 (SBPro) mixer 🧚

this one accepts the following parameters:

  • ol=val β€” sets the level of the left output to the specified value. legal values are from -46..0dB.
  • or=val β€” sets the level of the right output to the specified value. legal values are from -46..0dB.
  • o=val β€” sets the level of both outputs to the specified value. legal values are from -46..0dB.
  • s=val β€” sets the input source to the specified value. legal values are mic, cd or line.

⭐ The CT1745 (SB16, SB32 AWE) mixer ⭐

this one accepts the following parameters:

  • ol=val β€” sets the level of the left output to the specified value. legal values are from -62..18dB.
  • or=val β€” sets the level of the right output to the specified value. legal values are from -62..18dB.
  • o=val β€” sets the level of both outputs to the specified value. legal values are from -62..18dB.
  • il=val β€” sets the level of the left input to the specified value. legal values are from -62..18dB.
  • ir=val β€” sets the level of the right input to the specified value. legal values are from -62..18dB.
  • i=val β€” sets the level of both inputs to the specified value. legal values are from -62..18dB.
  • s=val β€” enables the specified value as a source. legal values are line, line.l, line.r, midi, midi.l, midi.r, cd, cd.l, cd.r or mic.

ngl the .l / .r suffixes on this one are a whole mood. we love a granular queen πŸ‘‘


πŸ’€ CONSIDERATIONS πŸ’€

okay bestie, gather round, this part is the serious part, no cap πŸ™ˆ

  • it is important that the audio levels of your radio match those of the soundcard. to help achieve this, use the smdiag utility. fr fr, smdiag is your bestie here.
  • this utility can only be used after the interface is started up, i.e. after ifconfig sm? up.
  • the sound driver and the soundcard modem driver are mutually exclusive, i.e. they cannot both access the same soundcard at the same time. and it gets worse β€” the sound driver reserves the soundcard as soon as it gets loaded. the souncard modem driver however reserves the card only when the interface is started, i.e. during ifconfig if up.
πŸ’€ and one more thing: 9600 baud may not currently work on SoundBlaster cards with DSP revision 4.x, i.e. SB16 and SB32 AWE. this is because they seem to not be fully backwards compatible. not me finding out the hard way 😭

πŸŽ€ SEE ALSO πŸŽ€

  • smdiag (8)
  • sethdlc (8)
  • linux/drivers/net/soundmodem.c

go read those next, iykyk πŸ“š


πŸ’– AUTHOR πŸ’–

smmixer was written by Thomas Sailer (t.sailer@alumni.ethz.ch). thank you king, we appreciate you 🫢


and that's the whole page!! smmixer 0.1, dated 27 April 2008 β€” vintage but still slaying. go forth and configure your mixer, bestie, you've got this πŸ’œβœ¨