No sound from MIDI softsynths

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view

No sound from MIDI softsynths

I run jackd with the -dalsa -Xseq options. I can play audio files okay through Jack e.g.
   mplayer -ao jack ...
I can see the TiMidity daemon as an ALSA backend to alsaseq using
  aplaymidi -l
and can play MIDI files using aplaymidi through alsaseq.   Under qjackctl MIDI tab I can see the TiMidity ALSA ports mapped to Jack input ports and I can add FluidSynth server input ports using the ALSA->Jack mapping. I can also run aseqdump and see that in Jack. When I play something using e.g. jack-keyboard I can see its output as MIDI note on/off messages when connected to aseqdump. BUT: when I try to connect the output of something like jack-keyboard to the TiMidity or FluidSynth input ports then I get no sound at all. alsamixer shows everything at 100% volume.

Additional: Ubuntu 13.04 with a Linux 3.8 kernel. I've turned PulseAudio off using pasuspender.  TiMidity and FluidSynth seem to be trying the "default" pcm device.  When I start another TiMidity daemon it reports
   ALSA pcm 'default' set buffer size 32768, period size 8192 bytes
FluidSynth "settings" reports
   audio.alsa.device                 default
The "default" pcm device should have been given up by PulseAudio by pasuspender but maybe it hasn't.

If I try to set the pcm device to hw:0 for FluidSynth (by -o  audio.alsa.device=hw:0) I'm told the device is in use. If I set TIMIDITY_PCM_NAME to hw:0 and start TiMidity as daemon then I get a bunch of "/dev/dsp: Bad file descriptor" messages (/dev/dsp does not exist!).

lsof reports that pulseaudio has /dev/snd/controlC0 and /dev/snd/controlC1, while jackd has /dev/snd/pcmC0D0 and /dev/snd/pcmC0D0c, /dev/snd/controlC0 and /dev/snd/seq.

Help appreciated. If solved you'll get a mention in my Linux Sound book :-)
Reply | Threaded
Open this post in threaded view

Re: No sound from MIDI softsynths

A partial solution?

The default TiMidity server is okay for playing MIDI using ALSA only. It doesn't produce any sound when Jack sends MIDI to it. Still don't know if it can play Jack MIDI.

But I can start another TiMidity server with Jack as output (-Oj) using
  timidity -iA -B2,8 -Oj -EFverb=0
Then using qjackctl it shows up under the Audio tab with two output ports. I can connect these to the System playback ports as in

It also shows up under the MID tab (here as midi_playback 28-31) and I can connect jack-keyboard or other MIDI producer such as jack-smf-player as in

Then I can send Jack MIDI to the TiMidity Jack MIDI inputs which send audio out on the TiMidity Jack Audio output ports which is then played by the Jack Audio system playback ports.

Not sure if I can do the same with FluidSynth yet.

Still running Jack by
  jackd -dalsa -Xseq