Sound > ALSA / MIDI

Installing the Necessary Packages


Hardware SoundFont

Some soundcards come with onboard MIDI synthesizers( hardware synthesizer). To use them, you must first install the awesfx package:

 apt-get install awesfx

If you have a collection of sound fonts somewhere, place them in /usr/share/sfbank. For instance, the ?SBLive has a sound font file called 8mbgmsfx.sf2, ct4gmsfx.sf2, ct4mgm.sf2 or ct8mgm.sf2.

After copying over the sound font, load it using asfxload:

 asfxload /usr/share/sfbank/ct8mgm.sf2

You must have this command run every time you boot, so it is advisable to add it to /etc/rc.local (before the last line!) as well.

If you can't find soundfonts on your driver CD you can download some online from

Virtual Synthesizer (Software SoundFonts).

If your sound card does not come with a hardware synthesizer (or you don't want to use it), you can use timidity to provide you with a virtual synthesizer. Start by installing this package:

 apt-get install timidity

For timidity to play sounds, it needs a soundfont. One such, freepats, is installed when you install timidity. You can have multiple soundfont configurations installed, and you can place your own in some suitable location, e.g. /usr/local/share/timidity/ (which you'll need to create); edit /etc/timidity/timidity.cfg as needed.

timidity can also use sound font files such as those provided on SBLive CDs.

You can test (and tune) timidity without starting it as a system service and by using aplaymidi (see the next section). This command starts it, with output via ALSA pcm:

 timidity -Os -iA

(You can interrupt it and restart it with extra parameters such as -EFreverb=d if you find that the CPU load is too high.)

Don't forget to edit /etc/default/timidity to enable the server on the next boot or to set default parameters. (ALSA input is selected anyway, so there's no need to include -iA.)

Testing MIDI Support

You can use ?aplaymidi from the ?AlsaUtils to test your MIDI configuration.

To see what MIDI output ports are available on your system, use the -l option:

Viewing the MIDI output ports

 aplaymidi -l

If all looks fine, try playing a MIDI file to make sure everything works. With the -p option you define what MIDI port you want to use.

Playing a MIDI file

 aplaymidi -p 65:0 "Final Fantasy 7 - Aerith' Theme.mid"

You can use too ?XMMS with MIDI plug-in to play midi files.

Tools and Firmware

Some specific sound cards can benefit from certain tools provided by the alsa-tools and alsa-firmware-loader packages.

Comments and Questions

This article was heavily based on Gentoo Linux ALSA Guide, which is licensed under Creative Commons - Attribution / Share Alike. The author was even careless enough to leave terms and commands like 'emerging' and 'rc-update ...', which characterises a Gentoo-like documentation. I suggest a rewrite of this article or the inclusion of the original source/license. I would do it myself, but I do not have access to a Debian-based distro at the moment, therefore preventing me to verify how this task would have to be performed on it. -- ?MarceloMartins