Solution, for now:
Turns out the libao output drivermode thingamajigger works fine.
Good enough to hold me over to a clean system session eventually.
--------------------------------------------------------------------------------------------------------
I'm sure everyone can taste the vomit in their mouthes at that problem already.
Anyway, I'm using JACK 1 as my everyday audio solution. To get ALSA output I use loopback devices and some copypasted asoundrc voodoo I know naught about.
Here it is:
Code:
# playback PCM device: using loopback subdevice 0,0
pcm.amix {
type dmix
ipc_key 219345
slave.pcm "hw:Loopback,0,0"
slave.period_time 0
slave.buffer_time 0
slave.period_size 2048 # jm: much smoother than 1024/8192!
slave.buffer_size 32768
slave.rate 48000
}
# capture PCM device: using loopback subdevice 0,1
pcm.asnoop {
type dsnoop
ipc_key 219346
slave.pcm "hw:Loopback,0,1"
}
# duplex device combining our PCM devices defined above
pcm.aduplex {
type asym
playback.pcm "amix"
capture.pcm "asnoop"
}
# ------------------------------------------------------
# for jack alsa_in and alsa_out: looped-back signal at other ends
pcm.ploop {
type plug
slave.pcm "hw:Loopback,1,1"
}
pcm.cloop {
type dsnoop
ipc_key 219348
slave.pcm "hw:Loopback,1,0"
}
# ------------------------------------------------------
# default device
pcm.!default {
type plug
slave.pcm "aduplex"
}
pcm.card0 {
type plug
slave.pcm "aduplex"
}
It seems to be one of those standard things Google spits at you when you look for that kinda thing.
This works fine, everything except Timidity++ is working out fine SDL Applications, Firefox, the works.
EVen Timidity++ works fine using its JACK driver, but there are some complications in a certain use case.
Which is using GNU Solfege.
A program for musical ear training and whatnot. It generates a lot of MIDI data and since Timidity++ doesn't seem to have a JACK based daemon mode (very likely PEBKAC, wouldn't be surprised, but alas), the only way to hear anything is spawn a new instance of a "one shot" Timidity++ instance every time.
This wouldn't be so bad in theory but it produces some crackling which isn't so nice on the ears.
I recompiled Timidity++ a bunch of times. I tried it with and without JACK, I tried different SBOpkg repos, etc.
After a big, big update using the "current" branch which I pushed ahead of me for ages and therefore had a metric bleeptonne of new packages, it suddenly stopped.
Checked /etc/asound configs and everything, too.
I can't suss this out. I tried downgrading the alsa libs and whatnot to the stable release and recompiling things, but that too didn't work out. Possibly PEBKAC again since that introduced some weirdness with some other programs I didn't write down.
Any from the top of your heads help to possibly avoid a "clean house" and everything?
Which I will do if this can't be solved more or less effortlessly. Including your efforts.