Setting Up Microphone Input to Jack

Still new to all of this? Feel free to post in any of the subforums on this site, but in this subforum newbie questions are especially encouraged!

Moderators: MattKingUSA, khz

Post Reply
VarstrayPl
Established Member
Posts: 3
Joined: Wed Sep 02, 2020 1:18 pm

Setting Up Microphone Input to Jack

Post by VarstrayPl »

Hello!

I posted a post a long time ago on this forum requesting help. Due to life circumstances, I was never able to respond to the help I did receive. I feel bad about that, but want you to know that I will be able to properly respond now. My life just... took a wild turn for a while.

In any case, I would like some help with setting up my microphone for Jack, as I can't figure out what's going on with it.

My setup:

I have Jack2, Patchage, and Meterec installed on a Slackware 14.2+ Current system. It's not a "true" current system, as it's fairly far behind the "current" current. (Sadly, I am not able to install qjackctl, as I can not install the qt framework on this system). On boot, my system calls

Code: Select all

/sbin/modprobe snd-aloop
to load the loopback modules, and then calls another script in my home directory, "audiorc.sh".

The contents of audiorc.sh are fairly straightforward:

Code: Select all

jackd --silent -R -d alsa -d hw:XFi -p 1024 -n 2 -r 44100 -X seq &
sleep 1
loop2jack
sleep 1
jack_load netmanager
My sound card is a SoundBlaster X-Fi Card. I don't know the precise model, though running 'aplay -l' I *think* yields "ctxfi" as the kernel module that governs it?

Running aplay -l yields:

Code: Select all

**** List of PLAYBACK Hardware Devices ****
card 0: XFi [Creative X-Fi], device 0: ctxfi [Front/WaveIn]
  Subdevices: 255/256
  Subdevice #0: subdevice #0
  Subdevice #1: subdevice #1
  Subdevice #2: subdevice #2
  Subdevice #3: subdevice #3
  Subdevice #4: subdevice #4
  Subdevice #5: subdevice #5
  Subdevice #6: subdevice #6
  Subdevice #7: subdevice #7
  Subdevice #8: subdevice #8
  Subdevice #9: subdevice #9
  Subdevice #10: subdevice #10
  Subdevice #11: subdevice #11
  Subdevice #12: subdevice #12
  Subdevice #13: subdevice #13
And it goes on and on for about 256 subdevices. There are multiple sections like this, with changes in values for the device number and the values inside the brackets. e.g:

Code: Select all

device 0: ctxfi [Front/WaveIn]
device 1: ctxfi [Surround]
device 2: ctxfi [Center/LFE]
device 3: ctxfi [Side]
device 4: ctxfi [IEC958 Non-Audio]
Now then, I don't actually know if I am starting Jackd with the right hardware device descriptor. If not, what would be the right way to start jackd so that the microphones are available. Also, I would love if someone could explain to me the proper purpose and usage of all of those subdevices, as I have no idea how to interpret them.

All right, so once I have started jackd from audiorc.sh, patchage lists the following jack clients as available:

Image

(Note: More clients were available than shown here. I cropped the screenshot to save space and ignore irrelevant clients for the time being.)

Playing music from Sound Exchange using the ALSA driver and Aduplex pcm (the cloop client) properly sends audible sound through my sound card and to my speakers. Yay!

Now, the issue comes when I try to use meterec to record from my microphone. By the way, I am using a condenser microphone with phantom power. I have double checked that the fantom power is on, and I have tried to record audio from every single port I can find that fits a 3.5 mm jack. I have also gotten an adapter for the bigger version of the 3.5mm jack, I think 5.25mm? But yeah. I've tried those as well.

I start meterec with the following command line parameters:

Code: Select all

meterec -r +4 -o wav -s tmp -j meterec -f 16 -p -c 
So, the '-r' flag sets the reference level of the port vu-meter. I don't know much about reference levels, but I have tried values of +4, +10, and -10, with no change in microphone sensitivity as far as I can tell.

-o and -s and -j flags are just the recording output, meterec's local session config file name, and the jack client name in patchage respectively. '-f' also just refers to the refresh rate of the gui but has no sound relevance.

'-p' and '-c' just tell meterec to start in playback mode and to not manage connection to other jack clients. I handle the connections between clients myself via patchage and then start the recording session manually from within the meterec gui client here:
Image

and the patchage client connection graph can be seen here:
Image

All right. Now here's the issue. Meterec is currently in record mode for both channels because of the [>ONGOING] message in the upper left of the gui. But down on the lower right, we can see that for both channels, meterec is currently receiving a signal of -infdB, or basically no mic input at all.

From my research, I can think of some possible issues:

1. The sound card manual says that the 3.5mm socket for the mic is a multipurpose flexijack port, capable of being a line-in, microphone. So there could be an issue with the sound card driver. Maybe ctxfi is a generic kernel driver and a more specific one capable of handling specialized ports is needed? This is perhaps unlikely, as I *have* successfully been able to record microphone input from the pulseaudio sound system, though understandable I want to stop using pulseaudio as soon as possible, as it introduces difficulties elsewhere. <_<

2. I'm perhaps not starting the jack sound server with the correct configuration options. In the man page, it says that the default number of inputs and outputs is the maximum supported by the hardware, so ostensibly I shouldn't need to specify. But then, there are multiple devices and sub-devices associated to card 0, so maybe I need to specify something more specific? Or perhaps there is some sort of other configuration option I need to specify that I'm completely unaware of?

3. Maybe the reference level isn't set appropriately on meterec? I know that reference level has to do with how loud a particular input signal is treated in the recording, but beyond that, I don't really understand reference levels, vbu meters, et al, at all.

I wish I could think of any other possibilities, but maybe it's something else? Either way, I just want to be able to capture microphone input through jack. What on earth am I missing?

Thank you for staying with me through this fairly long post, and thank you very much for your time.
VarstrayPl
Established Member
Posts: 3
Joined: Wed Sep 02, 2020 1:18 pm

Re: Setting Up Microphone Input to Jack

Post by VarstrayPl »

Is there anything I said in that first post that upset anyone at all? Is there anything else I can do to get help? Any pointing in the right direction at all? Even a general resource on getting microphones to work with jack, perhaps?
User avatar
Michael Willis
Established Member
Posts: 1451
Joined: Mon Oct 03, 2016 3:27 pm
Location: Rocky Mountains, North America
Has thanked: 68 times
Been thanked: 162 times
Contact:

Re: Setting Up Microphone Input to Jack

Post by Michael Willis »

@VarstrayPl, I don't think anybody is upset. More likely, those that have read your message may not be certain how to help.

There are several things that might be going wrong.
I don't know anything about meterec or your specific hardware, but I can suggest some things to try in order to isolate the problem.

Try recording without JACK. You can do this with Ardour, by setting it up to directly use ALSA.

If you know somebody that has another audio interface, try using your mic on their hardware to see if it works.

You can also try a different mic with your hardware.
Post Reply