Sound card not recognized. Ardour defaults to onboard sound (if enabled) or no card at all (if onboard sound disabled)

I have an i386 system with onboard sound (usually recognized as “Nvidia Nforce2”) and a plug-in sound card (PCI, I think… Yamaha YMF744B-Y) running on Hardy 8.04. Ardour has had difficulty recognizing recording streams, or playing them back, right from the start. There was a brief moment when everything worked perfectly (except the half-second lag in monitoring) but after a reboot it all went back to dysfunctional. I think the current problem is that Ardour will not recognize the YMF744. In the System>Preferences>Sound dialog, this has been a problem, too (the Nvidia was re-selected after reboot, even when I selected the YMF744).

I did cat proc/asound/modules and found this:
0 snd_intel8x0
1 snd_ymfpci
2 snd_mpu401

Following online instructions, I did created the file “etc/modprobe.d/sound” and added the following lines:

options snd_ymfpci index=0
options snd_intel8x0 index=1
options snd_mpu401 index=2

Still, Ardour seemed to only recognize the Nvidia driver that one when creating a new session. That is, Session Control > Audio Setup > Advanced > Input Device/Output device. gave me only the Nvidia option in each of the two fields, no matter what was selected in the System preferences, even if the Yamaha was also the card being edited in Alsamixer GUI. Perhaps for this reason, Ardour would give no audio when playing back recorded tracks (though the waveform seemed OK, and the indicators jumped around predictably).

In desperation, I removed Ardour from the system (through Synaptic), then rebooted, then disabled the onboard sound in BIOS, then went on to Ubuntu and reinstalled Ardour. Now, when I try to start a new session, I have no options available in Session Control > Audio Setup > Advanced > Input Device/Output device. Blank spaces, no selection possible. And of course I can’t start a new session (“programming error: true hardware name for device missing” or something when I try).

I also note that when I run cat proc/asound/modules it looks like this:
0 snd_ymfpci
2 snd_mpu401

That doesn’t look right… shouldn’t skip over #1 like that. But I’m at a loss.

Any ideas? Guidance? Ultimately, I would just like Ardour to recognize my Yamaha sound card for both recording and playback.

Note: I’ve done some searching here and on the Goog, but haven’t found anything that seems to answer my questions; however, if I’ve missed some threads or FAQs, please feel free to direct me to them.

Also Note: I’m a total Linux n00b. I have learned everything (no, really; EVERYTHING) here through searching online forums in the last 2 days. If you have something helpful, please do not think you will insult my intelligence by dumbing down your explanation. The dumber, the better.

OK. Not sure if this is useful, but this is the output when I press the “start” button on the JACK GUI, if nothing else is running:

------------------------------------
16:33:25.210 Patchbay deactivated.
16:33:25.384 Statistics reset.
16:33:25.397 ALSA connection graph change.
16:33:25.594 ALSA connection change.
16:33:31.070 Startup script…
16:33:31.071 artsshell -q terminate
16:33:31.499 Startup script terminated with exit status=256.
16:33:31.500 JACK is starting…
16:33:31.500 /usr/bin/jackd -R -dalsa -dhw:0 -r48000 -p1024 -n2 -i2 -o2
jackd 0.109.2
Copyright 2001-2005 Paul Davis and others.
jackd comes with ABSOLUTELY NO WARRANTY
This is free software, and you are welcome to redistribute it
under certain conditions; see the file COPYING for details
JACK compiled with System V SHM support.
cannot use real-time scheduling (FIFO at priority 10) [for thread -1210636624, from thread -1210636624] (1: Operation not permitted)
cannot create engine
16:33:31.514 JACK was started with PID=7156.
16:33:31.516 JACK was stopped successfully.
16:33:31.516 Post-shutdown script…
16:33:31.517 killall jackd
jackd: no process killed
16:33:31.927 Post-shutdown script terminated with exit status=256.
16:33:33.603 Could not connect to JACK server as client. - Overall operation failed. - Unable to connect to server. Please check the messages window for more info.
----------------------------------

If I try to start Ardour (with or without the JACK GUI running), I am unable to choose my Yamaha soundcard in most of the dialog options. However, if I choose it in the Device>Interface field, then press the “new session” button, I now get this message:

----------------------------------
Ardour could not start JACK

There are several possible reasons:

  1. You requested audio parameters that are not supported…
  2. JACK is running as another user.

Please consider the possibilities, and perhaps try different parameters.
---------------------------------

From what you’ve said about Ardour–that it doesn’t much care, in itself, which devices are used–maybe my problem is with JACK?

Thanks, Paul. I’ll check that out when I get home tonight. But I did get similar advice from someone on IRC last night, and (possibly due to my own ignorance) couldn’t make it work. I have the JACK GUI, which is (I think) what you mean by qjackctl. On someone else’s advice I actually switched to the full UbuntuStudio, which reinstalled Ardour plus the Jack control. I start it (JACK GUI) up, and was able to specify in the options “hw:0” (which should be my Yamaha soundcard, now that I have modified the list). But when I press the “start” button, Jack generates an error. I’ll post it here later; can’t remember the details. Anyway, it won’t start.

Jack starts fine if Ardour is already running, however. But the only way Ardour will run is if I specify the Nvidia onboard soundcard in the advanced audio options when I create a new session. And then I cannot hear any audio played within Ardour (though the EV levels jump around nicely, for an imported .wav file). More importantly, I would prefer to use the Yamaha soundcard.

I’ll post the detailed JACK error info after work.

Install qjackctl. Use that to start JACK. Its the better way for all kinds of reasons. Its setup dialog is a bit more complex than the one Ardour presents for JACK, but if it doesn’t show the YMF card, then there is definitely a deeper problem with your system.

You need to understand that other than this “Audio Setup” dialog, Ardour doesn’t interact with audio h/w at all. That dialog controls the startup of JACK, which is actually responsible for all audio I/O (See the Further Reading -> JACK link over there on the right hand side of this page for more info on JACK). I don’t know why it would not show your YMF card - the only reason Ardour will exclude a device is if it cannot be used in duplex mode (i.e. simultaneous playback & capture with the same configuration for both directions).

Finally, note that JACK (and Ardour, to whatever extent it interacts with h/w) do not care at all about your desktop audio device settings. There are several reasons for this, and rather than provide you with a lengthy and mostly irrelevant justification, I’ll just let you know that this is the case. JACK does not consider itself to be a “desktop” application, and thus ignores settings that are chosen mostly for media players, system sounds etc etc.

you might edit the /etc/security/limits.conf file.
just add following at the end of the file:

@audio - rtprio 99
@audio - memlock 250000
@audio - nice -10

End of file

and restart your system. also you should make sure that the user (you) is in the audio group.
than jack should be able to start.
you can find a lot more if you search for ‘limits.conf’ in google or in this site

cheers,
doc

Thanks. Things are still behaving oddly (probably because I don’t know what the #$@% I’m doing), but your advice seems to have fixed that problem. I really appreciate it.

There are two ways that you can start the jack sound server (/usr/bin/jackd -options) (well, there are more, but for what it matters):

Either through the Audio setup dialog in ardour or through qjackctl. (BTW, yes, qjackctl is the same as JACK Control, try typing qjackctl at the teminal).

The exact command to start the jack server (this is, the options) is defined according to the selections you make in the setup button of qjackctl OR in the ardour dialog. The ardour dialog is simpler, but in the end, it calls jackd just the same as qjackctl.
(The manual says the recommended way is qjackctl. Notice that not only ardour but more than a few more linux audio apps are “jack-aware” and you can make connections between them thanks to jack). In your case:

/usr/bin/jackd -R -dalsa -dhw:0 -r48000 -p1024 -n2 -i2 -o2

Realtime (OK if you boot with the realtime kernel), with the alsa driver (OK), interface hardware device number 0 (OK, that’s for the yamaha), sample rate 48.000 (most probably OK, check your audio card specs), 1024 frames, (rather conservative, but again, it depends in your audio card, you shouldn’t have problems but maybe a latency a bit too high, you can try to decrease that value once you get it up and running) , periods 2 (OK for most devices). BUT, don’t define input and output numbers. Leave them “default”. Why, I don’t know. The rest, leave it alone by the moment. You might want to look deeper into it later.

Cheers

Pablo