[Part 3] ALSA Speech Compression and FT-857D

This is an update of my previous post

As testing goes on, the .asoundrc file is getting more complexed in its setup. This is where we are up to now, we have 2 profiles going for ‘local’ and ‘DX’ and we select between the profiles by running in terminal

Local:

$ arecord -B 12000 -D local_eq_ -r 44100 -f S16_LE | aplay -B 12000 -D ladcomp

DX:

$ arecord -B 12000 -D dx_eq_ -r 44100 -f S16_LE | aplay -B 12000 -D ladcomp

And now for the dreaded .asoundrc file.

pcm.ladcomp {
      type plug
      slave.pcm "ladcomp_compressor";
}

pcm.local_eq_ {
	type plug
	slave.pcm "local_eq";
}
pcm.dx_eq_ {
	type plug
	slave.pcm "dx_eq";
}
  
pcm.ladcomp_compressor {
      type ladspa
      slave.pcm "plughw:3,0";
      path "/usr/lib/ladspa";
      plugins [
          {
              label tap_dynamics_m
              input {
                        #attack, release, offset gain, makeup gain, function
                        #http://tap-plugins.sourceforge.net/ladspa/dynamics.html
                        controls [5 15 15 0 10]
              }
          }
      ]
  }

pcm.local_eq {
      type ladspa
      slave.pcm "plughw:3,0";
      path "/usr/lib/ladspa";
      plugins [
          {
              label tap_equalizer
              input {
                        #1-8 are gain -50dB to +20dB, 9-16 are frequency Hz
                        #http://tap-plugins.sourceforge.net/ladspa/eq.html
                        controls [-50 -15 0 10 10 0 0 0 100 200 400 800 1600 3000 12000 15000]
              }
          }
      ]
  }

pcm.dx_eq {
      type ladspa
      slave.pcm "plughw:3,0";
      path "/usr/lib/ladspa";
      plugins [
          {
              label tap_equalizer
              input {
                        #1-8 are gain -50dB to +20dB, 9-16 are frequency Hz 
                        #http://tap-plugins.sourceforge.net/ladspa/eq.html
                        controls [-50 -20 0 10 12 10 0 0 100 200 400 800 1600 3200 12000 15000]
              }
          }
      ]
  }

ctl.equal {
        type equal;
}

pcm.equalrec {
        type plug;
        slave {
                pcm "plugequal";
        }
}

pcm.plugequal {
        type equal;
        slave.pcm "plughw:3,0";
}

Note:
if you getting errors like

overrun!!! (at least 0.017 ms long)
underrun!!! (at least 1.208 ms long)
underrun!!! (at least 0.232 ms long)
overrun!!! (at least 0.001 ms long)
underrun!!! (at least 0.007 ms long)

You need to increase the -B option in arecord and or aplay in the run string

Leave a Reply